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.
Files changed (827) hide show
  1. package/CHANGELOG.md +11573 -0
  2. package/LICENSE +21 -0
  3. package/README.md +486 -0
  4. package/docs/.i18n/README.md +81 -0
  5. package/docs/.i18n/ar-navigation.json +18 -0
  6. package/docs/.i18n/de-navigation.json +18 -0
  7. package/docs/.i18n/es-navigation.json +18 -0
  8. package/docs/.i18n/fr-navigation.json +18 -0
  9. package/docs/.i18n/glossary.ar.json +78 -0
  10. package/docs/.i18n/glossary.de.json +78 -0
  11. package/docs/.i18n/glossary.es.json +78 -0
  12. package/docs/.i18n/glossary.fa.json +78 -0
  13. package/docs/.i18n/glossary.fr.json +78 -0
  14. package/docs/.i18n/glossary.id.json +78 -0
  15. package/docs/.i18n/glossary.it.json +78 -0
  16. package/docs/.i18n/glossary.ja-JP.json +98 -0
  17. package/docs/.i18n/glossary.ko.json +78 -0
  18. package/docs/.i18n/glossary.nl.json +78 -0
  19. package/docs/.i18n/glossary.pl.json +78 -0
  20. package/docs/.i18n/glossary.pt-BR.json +78 -0
  21. package/docs/.i18n/glossary.th.json +78 -0
  22. package/docs/.i18n/glossary.tr.json +78 -0
  23. package/docs/.i18n/glossary.uk.json +78 -0
  24. package/docs/.i18n/glossary.vi.json +78 -0
  25. package/docs/.i18n/glossary.zh-CN.json +1002 -0
  26. package/docs/.i18n/glossary.zh-TW.json +78 -0
  27. package/docs/.i18n/id-navigation.json +18 -0
  28. package/docs/.i18n/it-navigation.json +18 -0
  29. package/docs/.i18n/ja-navigation.json +18 -0
  30. package/docs/.i18n/ko-navigation.json +18 -0
  31. package/docs/.i18n/pl-navigation.json +18 -0
  32. package/docs/.i18n/pt-BR-navigation.json +18 -0
  33. package/docs/.i18n/tr-navigation.json +18 -0
  34. package/docs/.i18n/translation-workflow.md +111 -0
  35. package/docs/.i18n/zh-Hans-navigation.json +542 -0
  36. package/docs/AGENTS.md +36 -0
  37. package/docs/announcements/bluebubbles-imessage.md +79 -0
  38. package/docs/assets/install-script.svg +1 -0
  39. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  40. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  41. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  42. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  43. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  44. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  45. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  46. package/docs/assets/openclaw-logo-text.png +0 -0
  47. package/docs/assets/openclaw-logo-text.svg +418 -0
  48. package/docs/assets/pixel-lobster.svg +60 -0
  49. package/docs/assets/pr/quick-settings-browser-tools.png +0 -0
  50. package/docs/assets/showcase/agents-ui.jpg +0 -0
  51. package/docs/assets/showcase/bambu-cli.png +0 -0
  52. package/docs/assets/showcase/codexmonitor.png +0 -0
  53. package/docs/assets/showcase/gohome-grafana.png +0 -0
  54. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  55. package/docs/assets/showcase/oura-health.png +0 -0
  56. package/docs/assets/showcase/padel-cli.svg +11 -0
  57. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/papla-tts.jpg +0 -0
  59. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  60. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  61. package/docs/assets/showcase/roborock-status.svg +13 -0
  62. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  63. package/docs/assets/showcase/snag.png +0 -0
  64. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  65. package/docs/assets/showcase/wienerlinien.png +0 -0
  66. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  67. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  68. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  69. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  70. package/docs/assets/sponsors/blacksmith.svg +14 -0
  71. package/docs/assets/sponsors/convex-light.svg +16 -0
  72. package/docs/assets/sponsors/convex.svg +16 -0
  73. package/docs/assets/sponsors/github-light.svg +3 -0
  74. package/docs/assets/sponsors/github.svg +3 -0
  75. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  76. package/docs/assets/sponsors/nvidia.svg +9 -0
  77. package/docs/assets/sponsors/openai-light.svg +3 -0
  78. package/docs/assets/sponsors/openai.svg +3 -0
  79. package/docs/assets/sponsors/vercel-light.svg +5 -0
  80. package/docs/assets/sponsors/vercel.svg +5 -0
  81. package/docs/auth-credential-semantics.md +124 -0
  82. package/docs/automation/auth-monitoring.md +11 -0
  83. package/docs/automation/clawflow.md +12 -0
  84. package/docs/automation/cron-jobs.md +500 -0
  85. package/docs/automation/cron-vs-heartbeat.md +11 -0
  86. package/docs/automation/gmail-pubsub.md +11 -0
  87. package/docs/automation/hooks.md +365 -0
  88. package/docs/automation/index.md +135 -0
  89. package/docs/automation/poll.md +12 -0
  90. package/docs/automation/standing-orders.md +250 -0
  91. package/docs/automation/taskflow.md +155 -0
  92. package/docs/automation/tasks.md +374 -0
  93. package/docs/automation/troubleshooting.md +12 -0
  94. package/docs/automation/webhook.md +12 -0
  95. package/docs/brave-search.md +11 -0
  96. package/docs/channels/access-groups.md +201 -0
  97. package/docs/channels/ambient-room-events.md +214 -0
  98. package/docs/channels/bot-loop-protection.md +131 -0
  99. package/docs/channels/broadcast-groups.md +472 -0
  100. package/docs/channels/channel-routing.md +162 -0
  101. package/docs/channels/clickclack.md +138 -0
  102. package/docs/channels/discord.md +1762 -0
  103. package/docs/channels/feishu.md +502 -0
  104. package/docs/channels/googlechat.md +284 -0
  105. package/docs/channels/group-messages.md +95 -0
  106. package/docs/channels/groups.md +519 -0
  107. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  108. package/docs/channels/imessage.md +813 -0
  109. package/docs/channels/index.md +64 -0
  110. package/docs/channels/irc.md +253 -0
  111. package/docs/channels/line.md +243 -0
  112. package/docs/channels/location.md +71 -0
  113. package/docs/channels/matrix-migration.md +370 -0
  114. package/docs/channels/matrix-presentation.md +77 -0
  115. package/docs/channels/matrix-push-rules.md +150 -0
  116. package/docs/channels/matrix.md +921 -0
  117. package/docs/channels/mattermost.md +542 -0
  118. package/docs/channels/msteams.md +1042 -0
  119. package/docs/channels/nextcloud-talk.md +176 -0
  120. package/docs/channels/nostr.md +253 -0
  121. package/docs/channels/pairing.md +214 -0
  122. package/docs/channels/qqbot.md +309 -0
  123. package/docs/channels/signal.md +400 -0
  124. package/docs/channels/slack.md +1564 -0
  125. package/docs/channels/synology-chat.md +187 -0
  126. package/docs/channels/telegram.md +1107 -0
  127. package/docs/channels/tlon.md +296 -0
  128. package/docs/channels/troubleshooting.md +161 -0
  129. package/docs/channels/twitch.md +431 -0
  130. package/docs/channels/wechat.md +171 -0
  131. package/docs/channels/whatsapp.md +739 -0
  132. package/docs/channels/yuanbao.md +416 -0
  133. package/docs/channels/zalo.md +253 -0
  134. package/docs/channels/zalouser.md +199 -0
  135. package/docs/ci.md +612 -0
  136. package/docs/clawhub/publishing.md +96 -0
  137. package/docs/cli/acp.md +370 -0
  138. package/docs/cli/agent.md +103 -0
  139. package/docs/cli/agents.md +232 -0
  140. package/docs/cli/approvals.md +190 -0
  141. package/docs/cli/backup.md +97 -0
  142. package/docs/cli/browser.md +307 -0
  143. package/docs/cli/channels.md +154 -0
  144. package/docs/cli/clawbot.md +25 -0
  145. package/docs/cli/commitments.md +90 -0
  146. package/docs/cli/completion.md +39 -0
  147. package/docs/cli/config.md +504 -0
  148. package/docs/cli/configure.md +77 -0
  149. package/docs/cli/crestodian.md +332 -0
  150. package/docs/cli/cron.md +281 -0
  151. package/docs/cli/daemon.md +67 -0
  152. package/docs/cli/dashboard.md +33 -0
  153. package/docs/cli/devices.md +204 -0
  154. package/docs/cli/directory.md +68 -0
  155. package/docs/cli/dns.md +53 -0
  156. package/docs/cli/docs.md +73 -0
  157. package/docs/cli/doctor.md +237 -0
  158. package/docs/cli/flows.md +52 -0
  159. package/docs/cli/gateway.md +567 -0
  160. package/docs/cli/health.md +43 -0
  161. package/docs/cli/hooks.md +345 -0
  162. package/docs/cli/index.md +396 -0
  163. package/docs/cli/infer.md +364 -0
  164. package/docs/cli/logs.md +65 -0
  165. package/docs/cli/mcp.md +529 -0
  166. package/docs/cli/memory.md +183 -0
  167. package/docs/cli/message.md +317 -0
  168. package/docs/cli/migrate.md +290 -0
  169. package/docs/cli/models.md +224 -0
  170. package/docs/cli/node.md +177 -0
  171. package/docs/cli/nodes.md +76 -0
  172. package/docs/cli/onboard.md +245 -0
  173. package/docs/cli/pairing.md +77 -0
  174. package/docs/cli/path.md +502 -0
  175. package/docs/cli/plugins.md +454 -0
  176. package/docs/cli/policy.md +418 -0
  177. package/docs/cli/proxy.md +89 -0
  178. package/docs/cli/qr.md +56 -0
  179. package/docs/cli/reset.md +39 -0
  180. package/docs/cli/sandbox.md +208 -0
  181. package/docs/cli/secrets.md +202 -0
  182. package/docs/cli/security.md +124 -0
  183. package/docs/cli/sessions.md +164 -0
  184. package/docs/cli/setup.md +59 -0
  185. package/docs/cli/skills.md +102 -0
  186. package/docs/cli/status.md +45 -0
  187. package/docs/cli/system.md +89 -0
  188. package/docs/cli/tasks.md +111 -0
  189. package/docs/cli/tui.md +89 -0
  190. package/docs/cli/uninstall.md +44 -0
  191. package/docs/cli/update.md +242 -0
  192. package/docs/cli/voicecall.md +204 -0
  193. package/docs/cli/webhooks.md +117 -0
  194. package/docs/cli/wiki.md +256 -0
  195. package/docs/concepts/active-memory.md +856 -0
  196. package/docs/concepts/agent-loop.md +185 -0
  197. package/docs/concepts/agent-runtimes.md +243 -0
  198. package/docs/concepts/agent-workspace.md +230 -0
  199. package/docs/concepts/agent.md +136 -0
  200. package/docs/concepts/architecture.md +154 -0
  201. package/docs/concepts/channel-docking.md +145 -0
  202. package/docs/concepts/commitments.md +150 -0
  203. package/docs/concepts/compaction.md +203 -0
  204. package/docs/concepts/context-engine.md +306 -0
  205. package/docs/concepts/context.md +199 -0
  206. package/docs/concepts/delegate-architecture.md +319 -0
  207. package/docs/concepts/dreaming.md +261 -0
  208. package/docs/concepts/experimental-features.md +108 -0
  209. package/docs/concepts/features.md +91 -0
  210. package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
  211. package/docs/concepts/mantis.md +740 -0
  212. package/docs/concepts/markdown-formatting.md +139 -0
  213. package/docs/concepts/memory-builtin.md +146 -0
  214. package/docs/concepts/memory-honcho.md +144 -0
  215. package/docs/concepts/memory-qmd.md +271 -0
  216. package/docs/concepts/memory-search.md +166 -0
  217. package/docs/concepts/memory.md +258 -0
  218. package/docs/concepts/message-lifecycle-refactor.md +1128 -0
  219. package/docs/concepts/messages.md +214 -0
  220. package/docs/concepts/model-failover.md +385 -0
  221. package/docs/concepts/model-providers.md +715 -0
  222. package/docs/concepts/models.md +370 -0
  223. package/docs/concepts/multi-agent.md +619 -0
  224. package/docs/concepts/oauth.md +198 -0
  225. package/docs/concepts/openclaw-sdk.md +323 -0
  226. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  227. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  228. package/docs/concepts/presence.md +117 -0
  229. package/docs/concepts/progress-drafts.md +362 -0
  230. package/docs/concepts/qa-e2e-automation.md +820 -0
  231. package/docs/concepts/qa-matrix.md +139 -0
  232. package/docs/concepts/queue-steering.md +90 -0
  233. package/docs/concepts/queue.md +122 -0
  234. package/docs/concepts/retry.md +86 -0
  235. package/docs/concepts/session-pruning.md +104 -0
  236. package/docs/concepts/session-tool.md +190 -0
  237. package/docs/concepts/session.md +164 -0
  238. package/docs/concepts/soul.md +116 -0
  239. package/docs/concepts/streaming.md +251 -0
  240. package/docs/concepts/system-prompt.md +310 -0
  241. package/docs/concepts/timezone.md +47 -0
  242. package/docs/concepts/typebox.md +309 -0
  243. package/docs/concepts/typing-indicators.md +88 -0
  244. package/docs/concepts/usage-tracking.md +66 -0
  245. package/docs/date-time.md +126 -0
  246. package/docs/debug/node-issue.md +90 -0
  247. package/docs/diagnostics/flags.md +138 -0
  248. package/docs/docs.json +1832 -0
  249. package/docs/gateway/authentication.md +239 -0
  250. package/docs/gateway/background-process.md +147 -0
  251. package/docs/gateway/bonjour.md +303 -0
  252. package/docs/gateway/bridge-protocol.md +94 -0
  253. package/docs/gateway/cli-backends.md +420 -0
  254. package/docs/gateway/config-agents.md +1514 -0
  255. package/docs/gateway/config-channels.md +945 -0
  256. package/docs/gateway/config-tools.md +769 -0
  257. package/docs/gateway/configuration-examples.md +705 -0
  258. package/docs/gateway/configuration-reference.md +1393 -0
  259. package/docs/gateway/configuration.md +737 -0
  260. package/docs/gateway/diagnostics.md +213 -0
  261. package/docs/gateway/discovery.md +154 -0
  262. package/docs/gateway/doctor.md +574 -0
  263. package/docs/gateway/gateway-lock.md +37 -0
  264. package/docs/gateway/health.md +73 -0
  265. package/docs/gateway/heartbeat.md +493 -0
  266. package/docs/gateway/index.md +383 -0
  267. package/docs/gateway/local-model-services.md +205 -0
  268. package/docs/gateway/local-models.md +355 -0
  269. package/docs/gateway/logging.md +149 -0
  270. package/docs/gateway/multiple-gateways.md +178 -0
  271. package/docs/gateway/network-model.md +15 -0
  272. package/docs/gateway/openai-http-api.md +350 -0
  273. package/docs/gateway/openresponses-http-api.md +347 -0
  274. package/docs/gateway/openshell.md +316 -0
  275. package/docs/gateway/opentelemetry.md +404 -0
  276. package/docs/gateway/operator-scopes.md +111 -0
  277. package/docs/gateway/pairing.md +207 -0
  278. package/docs/gateway/prometheus.md +230 -0
  279. package/docs/gateway/protocol.md +803 -0
  280. package/docs/gateway/remote-gateway-readme.md +169 -0
  281. package/docs/gateway/remote.md +280 -0
  282. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
  283. package/docs/gateway/sandboxing.md +545 -0
  284. package/docs/gateway/secrets-plan-contract.md +114 -0
  285. package/docs/gateway/secrets.md +609 -0
  286. package/docs/gateway/security/audit-checks.md +127 -0
  287. package/docs/gateway/security/index.md +1326 -0
  288. package/docs/gateway/security/secure-file-operations.md +76 -0
  289. package/docs/gateway/tailscale.md +156 -0
  290. package/docs/gateway/tools-invoke-http-api.md +169 -0
  291. package/docs/gateway/troubleshooting.md +772 -0
  292. package/docs/gateway/trusted-proxy-auth.md +451 -0
  293. package/docs/help/debugging.md +344 -0
  294. package/docs/help/environment.md +214 -0
  295. package/docs/help/faq-first-run.md +867 -0
  296. package/docs/help/faq-models.md +553 -0
  297. package/docs/help/faq.md +1975 -0
  298. package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
  299. package/docs/help/gpt55-codex-agentic-parity.md +230 -0
  300. package/docs/help/index.md +39 -0
  301. package/docs/help/scripts.md +56 -0
  302. package/docs/help/testing-live.md +580 -0
  303. package/docs/help/testing-updates-plugins.md +291 -0
  304. package/docs/help/testing.md +928 -0
  305. package/docs/help/troubleshooting.md +424 -0
  306. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  307. package/docs/images/feishu-get-group-id.png +0 -0
  308. package/docs/images/groups-flow.svg +52 -0
  309. package/docs/images/mobile-ui-screenshot.png +0 -0
  310. package/docs/index.md +196 -0
  311. package/docs/install/ansible.md +233 -0
  312. package/docs/install/azure.md +315 -0
  313. package/docs/install/bun.md +59 -0
  314. package/docs/install/clawdock.md +112 -0
  315. package/docs/install/development-channels.md +135 -0
  316. package/docs/install/digitalocean.md +174 -0
  317. package/docs/install/docker-vm-runtime.md +154 -0
  318. package/docs/install/docker.md +562 -0
  319. package/docs/install/exe-dev.md +201 -0
  320. package/docs/install/fly.md +524 -0
  321. package/docs/install/gcp.md +418 -0
  322. package/docs/install/hetzner.md +285 -0
  323. package/docs/install/hostinger.md +98 -0
  324. package/docs/install/index.md +221 -0
  325. package/docs/install/installer.md +455 -0
  326. package/docs/install/kubernetes.md +196 -0
  327. package/docs/install/macos-vm.md +281 -0
  328. package/docs/install/migrating-claude.md +165 -0
  329. package/docs/install/migrating-hermes.md +177 -0
  330. package/docs/install/migrating.md +137 -0
  331. package/docs/install/nix.md +112 -0
  332. package/docs/install/node.md +142 -0
  333. package/docs/install/northflank.mdx +44 -0
  334. package/docs/install/oracle.md +218 -0
  335. package/docs/install/podman.md +210 -0
  336. package/docs/install/railway.mdx +92 -0
  337. package/docs/install/raspberry-pi.md +234 -0
  338. package/docs/install/render.mdx +167 -0
  339. package/docs/install/uninstall.md +131 -0
  340. package/docs/install/updating.md +280 -0
  341. package/docs/logging.md +318 -0
  342. package/docs/nav-tabs-underline.js +100 -0
  343. package/docs/network.md +72 -0
  344. package/docs/nodes/audio.md +215 -0
  345. package/docs/nodes/camera.md +166 -0
  346. package/docs/nodes/images.md +77 -0
  347. package/docs/nodes/index.md +439 -0
  348. package/docs/nodes/location-command.md +102 -0
  349. package/docs/nodes/media-understanding.md +469 -0
  350. package/docs/nodes/talk.md +154 -0
  351. package/docs/nodes/troubleshooting.md +123 -0
  352. package/docs/nodes/voicewake.md +93 -0
  353. package/docs/perplexity.md +11 -0
  354. package/docs/pi-dev.md +82 -0
  355. package/docs/pi.md +573 -0
  356. package/docs/plan/codex-context-engine-harness.md +624 -0
  357. package/docs/plan/ui-channels.md +284 -0
  358. package/docs/platforms/android.md +285 -0
  359. package/docs/platforms/digitalocean.md +12 -0
  360. package/docs/platforms/index.md +60 -0
  361. package/docs/platforms/ios.md +283 -0
  362. package/docs/platforms/linux.md +141 -0
  363. package/docs/platforms/mac/bundled-gateway.md +79 -0
  364. package/docs/platforms/mac/canvas.md +128 -0
  365. package/docs/platforms/mac/child-process.md +72 -0
  366. package/docs/platforms/mac/dev-setup.md +112 -0
  367. package/docs/platforms/mac/health.md +39 -0
  368. package/docs/platforms/mac/icon.md +36 -0
  369. package/docs/platforms/mac/logging.md +62 -0
  370. package/docs/platforms/mac/menu-bar.md +93 -0
  371. package/docs/platforms/mac/peekaboo.md +92 -0
  372. package/docs/platforms/mac/permissions.md +53 -0
  373. package/docs/platforms/mac/remote.md +123 -0
  374. package/docs/platforms/mac/signing.md +52 -0
  375. package/docs/platforms/mac/skills.md +43 -0
  376. package/docs/platforms/mac/voice-overlay.md +66 -0
  377. package/docs/platforms/mac/voicewake.md +73 -0
  378. package/docs/platforms/mac/webchat.md +54 -0
  379. package/docs/platforms/mac/xpc.md +66 -0
  380. package/docs/platforms/macos.md +226 -0
  381. package/docs/platforms/oracle.md +12 -0
  382. package/docs/platforms/raspberry-pi.md +13 -0
  383. package/docs/platforms/windows.md +286 -0
  384. package/docs/plugins/adding-capabilities.md +133 -0
  385. package/docs/plugins/admin-http-rpc.md +216 -0
  386. package/docs/plugins/agent-tools.md +13 -0
  387. package/docs/plugins/architecture-internals.md +1195 -0
  388. package/docs/plugins/architecture.md +481 -0
  389. package/docs/plugins/building-extensions.md +13 -0
  390. package/docs/plugins/building-plugins.md +330 -0
  391. package/docs/plugins/bundles.md +310 -0
  392. package/docs/plugins/cli-backend-plugins.md +310 -0
  393. package/docs/plugins/codex-computer-use.md +293 -0
  394. package/docs/plugins/codex-harness-reference.md +409 -0
  395. package/docs/plugins/codex-harness-runtime.md +247 -0
  396. package/docs/plugins/codex-harness.md +746 -0
  397. package/docs/plugins/codex-native-plugins.md +276 -0
  398. package/docs/plugins/community.md +77 -0
  399. package/docs/plugins/compatibility.md +164 -0
  400. package/docs/plugins/dependency-resolution.md +143 -0
  401. package/docs/plugins/google-meet.md +1737 -0
  402. package/docs/plugins/hooks.md +459 -0
  403. package/docs/plugins/install-overrides.md +80 -0
  404. package/docs/plugins/manage-plugins.md +210 -0
  405. package/docs/plugins/manifest.md +1359 -0
  406. package/docs/plugins/memory-lancedb.md +385 -0
  407. package/docs/plugins/memory-wiki.md +529 -0
  408. package/docs/plugins/message-presentation.md +473 -0
  409. package/docs/plugins/oc-path.md +166 -0
  410. package/docs/plugins/plugin-inventory.md +182 -0
  411. package/docs/plugins/reference/acpx.md +23 -0
  412. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  413. package/docs/plugins/reference/alibaba.md +23 -0
  414. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  415. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  416. package/docs/plugins/reference/anthropic-vertex.md +19 -0
  417. package/docs/plugins/reference/anthropic.md +23 -0
  418. package/docs/plugins/reference/arcee.md +23 -0
  419. package/docs/plugins/reference/azure-speech.md +23 -0
  420. package/docs/plugins/reference/bonjour.md +19 -0
  421. package/docs/plugins/reference/brave.md +23 -0
  422. package/docs/plugins/reference/browser.md +23 -0
  423. package/docs/plugins/reference/byteplus.md +19 -0
  424. package/docs/plugins/reference/canvas.md +19 -0
  425. package/docs/plugins/reference/cerebras.md +23 -0
  426. package/docs/plugins/reference/chutes.md +23 -0
  427. package/docs/plugins/reference/clickclack.md +23 -0
  428. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  429. package/docs/plugins/reference/codex.md +23 -0
  430. package/docs/plugins/reference/comfy.md +23 -0
  431. package/docs/plugins/reference/copilot-proxy.md +19 -0
  432. package/docs/plugins/reference/deepgram.md +23 -0
  433. package/docs/plugins/reference/deepinfra.md +23 -0
  434. package/docs/plugins/reference/deepseek.md +23 -0
  435. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  436. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  437. package/docs/plugins/reference/diffs.md +19 -0
  438. package/docs/plugins/reference/discord.md +23 -0
  439. package/docs/plugins/reference/document-extract.md +23 -0
  440. package/docs/plugins/reference/duckduckgo.md +23 -0
  441. package/docs/plugins/reference/elevenlabs.md +23 -0
  442. package/docs/plugins/reference/exa.md +23 -0
  443. package/docs/plugins/reference/fal.md +23 -0
  444. package/docs/plugins/reference/feishu.md +23 -0
  445. package/docs/plugins/reference/file-transfer.md +19 -0
  446. package/docs/plugins/reference/firecrawl.md +23 -0
  447. package/docs/plugins/reference/fireworks.md +23 -0
  448. package/docs/plugins/reference/github-copilot.md +23 -0
  449. package/docs/plugins/reference/google-meet.md +23 -0
  450. package/docs/plugins/reference/google.md +23 -0
  451. package/docs/plugins/reference/googlechat.md +23 -0
  452. package/docs/plugins/reference/gradium.md +23 -0
  453. package/docs/plugins/reference/groq.md +23 -0
  454. package/docs/plugins/reference/huggingface.md +23 -0
  455. package/docs/plugins/reference/imessage.md +23 -0
  456. package/docs/plugins/reference/inworld.md +23 -0
  457. package/docs/plugins/reference/irc.md +23 -0
  458. package/docs/plugins/reference/kilocode.md +23 -0
  459. package/docs/plugins/reference/kimi.md +23 -0
  460. package/docs/plugins/reference/line.md +23 -0
  461. package/docs/plugins/reference/litellm.md +23 -0
  462. package/docs/plugins/reference/llm-task.md +19 -0
  463. package/docs/plugins/reference/lmstudio.md +23 -0
  464. package/docs/plugins/reference/lobster.md +19 -0
  465. package/docs/plugins/reference/matrix.md +23 -0
  466. package/docs/plugins/reference/mattermost.md +23 -0
  467. package/docs/plugins/reference/memory-core.md +19 -0
  468. package/docs/plugins/reference/memory-lancedb.md +23 -0
  469. package/docs/plugins/reference/memory-wiki.md +23 -0
  470. package/docs/plugins/reference/microsoft-foundry.md +19 -0
  471. package/docs/plugins/reference/microsoft.md +19 -0
  472. package/docs/plugins/reference/migrate-claude.md +19 -0
  473. package/docs/plugins/reference/migrate-hermes.md +19 -0
  474. package/docs/plugins/reference/minimax.md +23 -0
  475. package/docs/plugins/reference/mistral.md +23 -0
  476. package/docs/plugins/reference/moonshot.md +23 -0
  477. package/docs/plugins/reference/msteams.md +23 -0
  478. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  479. package/docs/plugins/reference/nostr.md +23 -0
  480. package/docs/plugins/reference/nvidia.md +23 -0
  481. package/docs/plugins/reference/oc-path.md +23 -0
  482. package/docs/plugins/reference/ollama.md +23 -0
  483. package/docs/plugins/reference/open-prose.md +19 -0
  484. package/docs/plugins/reference/openai.md +23 -0
  485. package/docs/plugins/reference/opencode-go.md +23 -0
  486. package/docs/plugins/reference/opencode.md +23 -0
  487. package/docs/plugins/reference/openrouter.md +23 -0
  488. package/docs/plugins/reference/openshell.md +19 -0
  489. package/docs/plugins/reference/perplexity.md +23 -0
  490. package/docs/plugins/reference/policy.md +23 -0
  491. package/docs/plugins/reference/qa-channel.md +23 -0
  492. package/docs/plugins/reference/qa-lab.md +19 -0
  493. package/docs/plugins/reference/qa-matrix.md +19 -0
  494. package/docs/plugins/reference/qianfan.md +23 -0
  495. package/docs/plugins/reference/qqbot.md +23 -0
  496. package/docs/plugins/reference/qwen.md +23 -0
  497. package/docs/plugins/reference/runway.md +23 -0
  498. package/docs/plugins/reference/searxng.md +19 -0
  499. package/docs/plugins/reference/senseaudio.md +23 -0
  500. package/docs/plugins/reference/sglang.md +23 -0
  501. package/docs/plugins/reference/signal.md +23 -0
  502. package/docs/plugins/reference/skill-workshop.md +23 -0
  503. package/docs/plugins/reference/slack.md +23 -0
  504. package/docs/plugins/reference/stepfun.md +23 -0
  505. package/docs/plugins/reference/synology-chat.md +23 -0
  506. package/docs/plugins/reference/synthetic.md +23 -0
  507. package/docs/plugins/reference/tavily.md +23 -0
  508. package/docs/plugins/reference/telegram.md +23 -0
  509. package/docs/plugins/reference/tencent.md +23 -0
  510. package/docs/plugins/reference/tlon.md +23 -0
  511. package/docs/plugins/reference/together.md +23 -0
  512. package/docs/plugins/reference/tokenjuice.md +23 -0
  513. package/docs/plugins/reference/tts-local-cli.md +19 -0
  514. package/docs/plugins/reference/twitch.md +23 -0
  515. package/docs/plugins/reference/venice.md +23 -0
  516. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  517. package/docs/plugins/reference/vllm.md +23 -0
  518. package/docs/plugins/reference/voice-call.md +23 -0
  519. package/docs/plugins/reference/volcengine.md +23 -0
  520. package/docs/plugins/reference/voyage.md +19 -0
  521. package/docs/plugins/reference/vydra.md +23 -0
  522. package/docs/plugins/reference/web-readability.md +19 -0
  523. package/docs/plugins/reference/webhooks.md +23 -0
  524. package/docs/plugins/reference/whatsapp.md +23 -0
  525. package/docs/plugins/reference/xai.md +23 -0
  526. package/docs/plugins/reference/xiaomi.md +23 -0
  527. package/docs/plugins/reference/zai.md +23 -0
  528. package/docs/plugins/reference/zalo.md +23 -0
  529. package/docs/plugins/reference/zalouser.md +24 -0
  530. package/docs/plugins/reference.md +138 -0
  531. package/docs/plugins/sdk-agent-harness.md +339 -0
  532. package/docs/plugins/sdk-channel-ingress.md +137 -0
  533. package/docs/plugins/sdk-channel-message.md +458 -0
  534. package/docs/plugins/sdk-channel-plugins.md +762 -0
  535. package/docs/plugins/sdk-channel-turn.md +580 -0
  536. package/docs/plugins/sdk-entrypoints.md +333 -0
  537. package/docs/plugins/sdk-migration.md +949 -0
  538. package/docs/plugins/sdk-overview.md +501 -0
  539. package/docs/plugins/sdk-provider-plugins.md +807 -0
  540. package/docs/plugins/sdk-runtime.md +676 -0
  541. package/docs/plugins/sdk-setup.md +550 -0
  542. package/docs/plugins/sdk-subpaths.md +396 -0
  543. package/docs/plugins/sdk-testing.md +401 -0
  544. package/docs/plugins/skill-workshop.md +713 -0
  545. package/docs/plugins/tool-plugins.md +411 -0
  546. package/docs/plugins/voice-call.md +943 -0
  547. package/docs/plugins/webhooks.md +192 -0
  548. package/docs/plugins/zalouser.md +86 -0
  549. package/docs/prose.md +137 -0
  550. package/docs/providers/alibaba.md +158 -0
  551. package/docs/providers/anthropic.md +344 -0
  552. package/docs/providers/arcee.md +144 -0
  553. package/docs/providers/azure-speech.md +119 -0
  554. package/docs/providers/bedrock-mantle.md +211 -0
  555. package/docs/providers/bedrock.md +414 -0
  556. package/docs/providers/cerebras.md +130 -0
  557. package/docs/providers/chutes.md +153 -0
  558. package/docs/providers/claude-max-api-proxy.md +188 -0
  559. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  560. package/docs/providers/comfy.md +362 -0
  561. package/docs/providers/deepgram.md +184 -0
  562. package/docs/providers/deepinfra.md +87 -0
  563. package/docs/providers/deepseek.md +146 -0
  564. package/docs/providers/ds4.md +309 -0
  565. package/docs/providers/elevenlabs.md +130 -0
  566. package/docs/providers/fal.md +204 -0
  567. package/docs/providers/fireworks.md +144 -0
  568. package/docs/providers/github-copilot.md +225 -0
  569. package/docs/providers/glm.md +137 -0
  570. package/docs/providers/google.md +472 -0
  571. package/docs/providers/gradium.md +123 -0
  572. package/docs/providers/groq.md +180 -0
  573. package/docs/providers/huggingface.md +235 -0
  574. package/docs/providers/index.md +102 -0
  575. package/docs/providers/inferrs.md +272 -0
  576. package/docs/providers/inworld.md +120 -0
  577. package/docs/providers/kilocode.md +135 -0
  578. package/docs/providers/litellm.md +234 -0
  579. package/docs/providers/lmstudio.md +224 -0
  580. package/docs/providers/minimax.md +505 -0
  581. package/docs/providers/mistral.md +235 -0
  582. package/docs/providers/models.md +65 -0
  583. package/docs/providers/moonshot.md +413 -0
  584. package/docs/providers/nvidia.md +140 -0
  585. package/docs/providers/ollama.md +1180 -0
  586. package/docs/providers/openai.md +1057 -0
  587. package/docs/providers/opencode-go.md +123 -0
  588. package/docs/providers/opencode.md +149 -0
  589. package/docs/providers/openrouter.md +349 -0
  590. package/docs/providers/perplexity-provider.md +123 -0
  591. package/docs/providers/qianfan.md +132 -0
  592. package/docs/providers/qwen.md +332 -0
  593. package/docs/providers/runway.md +103 -0
  594. package/docs/providers/senseaudio.md +68 -0
  595. package/docs/providers/sglang.md +161 -0
  596. package/docs/providers/stepfun.md +229 -0
  597. package/docs/providers/synthetic.md +154 -0
  598. package/docs/providers/tencent.md +130 -0
  599. package/docs/providers/together.md +141 -0
  600. package/docs/providers/venice.md +315 -0
  601. package/docs/providers/vercel-ai-gateway.md +128 -0
  602. package/docs/providers/vllm.md +383 -0
  603. package/docs/providers/volcengine.md +199 -0
  604. package/docs/providers/vydra.md +180 -0
  605. package/docs/providers/xai.md +560 -0
  606. package/docs/providers/xiaomi.md +188 -0
  607. package/docs/providers/zai.md +203 -0
  608. package/docs/refactor/access.md +9 -0
  609. package/docs/refactor/acp.md +298 -0
  610. package/docs/refactor/canvas.md +131 -0
  611. package/docs/refactor/ingress-core.md +341 -0
  612. package/docs/reference/AGENTS.default.md +129 -0
  613. package/docs/reference/RELEASING.md +767 -0
  614. package/docs/reference/api-usage-costs.md +202 -0
  615. package/docs/reference/application-modernization-plan.md +208 -0
  616. package/docs/reference/code-mode.md +757 -0
  617. package/docs/reference/credits.md +33 -0
  618. package/docs/reference/device-models.md +50 -0
  619. package/docs/reference/full-release-validation.md +202 -0
  620. package/docs/reference/memory-config.md +630 -0
  621. package/docs/reference/openclaw-sdk-api-design.md +390 -0
  622. package/docs/reference/prompt-caching.md +358 -0
  623. package/docs/reference/rich-output-protocol.md +79 -0
  624. package/docs/reference/rpc.md +43 -0
  625. package/docs/reference/secretref-credential-surface.md +159 -0
  626. package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
  627. package/docs/reference/session-management-compaction.md +461 -0
  628. package/docs/reference/templates/AGENTS.dev.md +89 -0
  629. package/docs/reference/templates/AGENTS.md +225 -0
  630. package/docs/reference/templates/BOOT.md +16 -0
  631. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  632. package/docs/reference/templates/HEARTBEAT.md +16 -0
  633. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  634. package/docs/reference/templates/IDENTITY.md +34 -0
  635. package/docs/reference/templates/SOUL.dev.md +82 -0
  636. package/docs/reference/templates/SOUL.md +49 -0
  637. package/docs/reference/templates/TOOLS.dev.md +29 -0
  638. package/docs/reference/templates/TOOLS.md +51 -0
  639. package/docs/reference/templates/USER.dev.md +23 -0
  640. package/docs/reference/templates/USER.md +28 -0
  641. package/docs/reference/test.md +239 -0
  642. package/docs/reference/token-use.md +233 -0
  643. package/docs/reference/transcript-hygiene.md +214 -0
  644. package/docs/reference/wizard.md +252 -0
  645. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  646. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  647. package/docs/security/formal-verification.md +170 -0
  648. package/docs/security/incident-response.md +59 -0
  649. package/docs/security/network-proxy.md +268 -0
  650. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  651. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  652. package/docs/start/bootstrapping.md +49 -0
  653. package/docs/start/docs-directory.md +69 -0
  654. package/docs/start/getting-started.md +152 -0
  655. package/docs/start/hubs.md +201 -0
  656. package/docs/start/lore.md +223 -0
  657. package/docs/start/onboarding-overview.md +72 -0
  658. package/docs/start/onboarding.md +95 -0
  659. package/docs/start/openclaw.md +244 -0
  660. package/docs/start/quickstart.md +25 -0
  661. package/docs/start/setup.md +178 -0
  662. package/docs/start/showcase.md +383 -0
  663. package/docs/start/wizard-cli-automation.md +232 -0
  664. package/docs/start/wizard-cli-reference.md +331 -0
  665. package/docs/start/wizard.md +141 -0
  666. package/docs/style.css +184 -0
  667. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
  668. package/docs/tools/acp-agents-setup.md +352 -0
  669. package/docs/tools/acp-agents.md +847 -0
  670. package/docs/tools/agent-send.md +112 -0
  671. package/docs/tools/apply-patch.md +64 -0
  672. package/docs/tools/brave-search.md +139 -0
  673. package/docs/tools/browser-control.md +391 -0
  674. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  675. package/docs/tools/browser-login.md +77 -0
  676. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  677. package/docs/tools/browser.md +769 -0
  678. package/docs/tools/btw.md +159 -0
  679. package/docs/tools/capability-cookbook.md +12 -0
  680. package/docs/tools/clawhub.md +5 -0
  681. package/docs/tools/code-execution.md +173 -0
  682. package/docs/tools/creating-skills.md +120 -0
  683. package/docs/tools/diffs.md +506 -0
  684. package/docs/tools/duckduckgo-search.md +109 -0
  685. package/docs/tools/elevated.md +128 -0
  686. package/docs/tools/exa-search.md +152 -0
  687. package/docs/tools/exec-approvals-advanced.md +360 -0
  688. package/docs/tools/exec-approvals.md +474 -0
  689. package/docs/tools/exec.md +282 -0
  690. package/docs/tools/firecrawl.md +155 -0
  691. package/docs/tools/gemini-search.md +114 -0
  692. package/docs/tools/grok-search.md +113 -0
  693. package/docs/tools/image-generation.md +433 -0
  694. package/docs/tools/index.md +178 -0
  695. package/docs/tools/kimi-search.md +105 -0
  696. package/docs/tools/llm-task.md +137 -0
  697. package/docs/tools/lobster.md +365 -0
  698. package/docs/tools/loop-detection.md +154 -0
  699. package/docs/tools/media-overview.md +157 -0
  700. package/docs/tools/minimax-search.md +102 -0
  701. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  702. package/docs/tools/music-generation.md +371 -0
  703. package/docs/tools/ollama-search.md +153 -0
  704. package/docs/tools/pdf.md +195 -0
  705. package/docs/tools/perplexity-search.md +220 -0
  706. package/docs/tools/plugin.md +327 -0
  707. package/docs/tools/reactions.md +100 -0
  708. package/docs/tools/searxng-search.md +141 -0
  709. package/docs/tools/skills-config.md +195 -0
  710. package/docs/tools/skills.md +535 -0
  711. package/docs/tools/slash-commands.md +488 -0
  712. package/docs/tools/steer.md +84 -0
  713. package/docs/tools/subagents.md +650 -0
  714. package/docs/tools/tavily.md +162 -0
  715. package/docs/tools/thinking.md +140 -0
  716. package/docs/tools/tokenjuice.md +81 -0
  717. package/docs/tools/tool-search.md +269 -0
  718. package/docs/tools/trajectory.md +229 -0
  719. package/docs/tools/tts.md +1004 -0
  720. package/docs/tools/video-generation.md +552 -0
  721. package/docs/tools/web-fetch.md +195 -0
  722. package/docs/tools/web.md +459 -0
  723. package/docs/tts.md +11 -0
  724. package/docs/vps.md +139 -0
  725. package/docs/web/control-ui.md +503 -0
  726. package/docs/web/dashboard.md +107 -0
  727. package/docs/web/index.md +133 -0
  728. package/docs/web/tui.md +246 -0
  729. package/docs/web/webchat.md +99 -0
  730. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  731. package/docs/whatsapp-openclaw.jpg +0 -0
  732. package/nodmix.mjs +487 -0
  733. package/package.json +1852 -0
  734. package/patches/.gitkeep +0 -0
  735. package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
  736. package/pnpm-workspace.yaml +63 -0
  737. package/scripts/crabbox-wrapper.mjs +353 -0
  738. package/scripts/lib/official-external-channel-catalog.json +559 -0
  739. package/scripts/lib/official-external-plugin-catalog.json +192 -0
  740. package/scripts/lib/official-external-provider-catalog.json +117 -0
  741. package/scripts/lib/package-dist-imports.mjs +171 -0
  742. package/scripts/npm-runner.mjs +91 -0
  743. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  744. package/scripts/preinstall-package-manager-warning.mjs +64 -0
  745. package/scripts/windows-cmd-helpers.mjs +20 -0
  746. package/skills/1password/SKILL.md +70 -0
  747. package/skills/1password/references/cli-examples.md +29 -0
  748. package/skills/1password/references/get-started.md +17 -0
  749. package/skills/apple-notes/SKILL.md +77 -0
  750. package/skills/apple-reminders/SKILL.md +118 -0
  751. package/skills/bear-notes/SKILL.md +107 -0
  752. package/skills/blogwatcher/SKILL.md +69 -0
  753. package/skills/blucli/SKILL.md +47 -0
  754. package/skills/camsnap/SKILL.md +45 -0
  755. package/skills/canvas/SKILL.md +78 -0
  756. package/skills/clawhub/SKILL.md +77 -0
  757. package/skills/coding-agent/SKILL.md +149 -0
  758. package/skills/diagram-maker/SKILL.md +53 -0
  759. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  760. package/skills/diagram-maker/references/svg-template.md +112 -0
  761. package/skills/discord/SKILL.md +136 -0
  762. package/skills/eightctl/SKILL.md +50 -0
  763. package/skills/gemini/SKILL.md +47 -0
  764. package/skills/gh-issues/SKILL.md +213 -0
  765. package/skills/gifgrep/SKILL.md +85 -0
  766. package/skills/github/SKILL.md +84 -0
  767. package/skills/gog/SKILL.md +116 -0
  768. package/skills/goplaces/SKILL.md +52 -0
  769. package/skills/healthcheck/SKILL.md +105 -0
  770. package/skills/himalaya/SKILL.md +80 -0
  771. package/skills/himalaya/references/configuration.md +184 -0
  772. package/skills/himalaya/references/message-composition.md +199 -0
  773. package/skills/imsg/SKILL.md +122 -0
  774. package/skills/mcporter/SKILL.md +61 -0
  775. package/skills/meme-maker/SKILL.md +42 -0
  776. package/skills/meme-maker/references/templates.json +358 -0
  777. package/skills/meme-maker/scripts/meme.mjs +398 -0
  778. package/skills/model-usage/SKILL.md +69 -0
  779. package/skills/model-usage/references/codexbar-cli.md +33 -0
  780. package/skills/model-usage/scripts/model_usage.py +319 -0
  781. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  782. package/skills/nano-pdf/SKILL.md +38 -0
  783. package/skills/node-connect/SKILL.md +142 -0
  784. package/skills/node-inspect-debugger/SKILL.md +85 -0
  785. package/skills/notion/SKILL.md +150 -0
  786. package/skills/obsidian/SKILL.md +119 -0
  787. package/skills/openai-whisper/SKILL.md +38 -0
  788. package/skills/openai-whisper-api/SKILL.md +71 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  790. package/skills/openhue/SKILL.md +112 -0
  791. package/skills/oracle/SKILL.md +126 -0
  792. package/skills/ordercli/SKILL.md +78 -0
  793. package/skills/peekaboo/SKILL.md +190 -0
  794. package/skills/pyproject.toml +10 -0
  795. package/skills/python-debugpy/SKILL.md +73 -0
  796. package/skills/sag/SKILL.md +87 -0
  797. package/skills/session-logs/SKILL.md +151 -0
  798. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  799. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  800. package/skills/skill-creator/SKILL.md +78 -0
  801. package/skills/skill-creator/license.txt +202 -0
  802. package/skills/skill-creator/scripts/init_skill.py +378 -0
  803. package/skills/skill-creator/scripts/package_skill.py +139 -0
  804. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  805. package/skills/skill-creator/scripts/test_package_skill.py +161 -0
  806. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  807. package/skills/slack/SKILL.md +78 -0
  808. package/skills/songsee/SKILL.md +49 -0
  809. package/skills/sonoscli/SKILL.md +65 -0
  810. package/skills/spike/SKILL.md +51 -0
  811. package/skills/spotify-player/SKILL.md +64 -0
  812. package/skills/summarize/SKILL.md +87 -0
  813. package/skills/taskflow/SKILL.md +149 -0
  814. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  815. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  816. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  817. package/skills/things-mac/SKILL.md +86 -0
  818. package/skills/tmux/SKILL.md +91 -0
  819. package/skills/tmux/scripts/find-sessions.sh +112 -0
  820. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  821. package/skills/trello/SKILL.md +108 -0
  822. package/skills/video-frames/SKILL.md +46 -0
  823. package/skills/video-frames/scripts/frame.sh +81 -0
  824. package/skills/voice-call/SKILL.md +45 -0
  825. package/skills/wacli/SKILL.md +72 -0
  826. package/skills/weather/SKILL.md +64 -0
  827. package/skills/xurl/SKILL.md +120 -0
@@ -0,0 +1,188 @@
1
+ ---
2
+ summary: "Use Xiaomi MiMo models with Nodmix"
3
+ read_when:
4
+ - You want Xiaomi MiMo models in Nodmix
5
+ - You need XIAOMI_API_KEY setup
6
+ title: "Xiaomi MiMo"
7
+ ---
8
+
9
+ Xiaomi MiMo is the API platform for **MiMo** models. Nodmix includes a bundled `xiaomi` plugin that registers both an OpenAI-compatible chat provider and a speech (TTS) provider against the same `XIAOMI_API_KEY`.
10
+
11
+ | Property | Value |
12
+ | --------------- | ---------------------------------------- |
13
+ | Provider id | `xiaomi` |
14
+ | Plugin | bundled, `enabledByDefault: true` |
15
+ | Auth env var | `XIAOMI_API_KEY` |
16
+ | Onboarding flag | `--auth-choice xiaomi-api-key` |
17
+ | Direct CLI flag | `--xiaomi-api-key <key>` |
18
+ | Contracts | chat completions + `speechProviders` |
19
+ | API | OpenAI-compatible (`openai-completions`) |
20
+ | Base URL | `https://api.xiaomimimo.com/v1` |
21
+ | Default model | `xiaomi/mimo-v2-flash` |
22
+ | TTS default | `mimo-v2.5-tts`, voice `mimo_default` |
23
+
24
+ ## Getting started
25
+
26
+ <Steps>
27
+ <Step title="Get an API key">
28
+ Create an API key in the [Xiaomi MiMo console](https://platform.xiaomimimo.com/#/console/api-keys).
29
+ </Step>
30
+ <Step title="Run onboarding">
31
+ ```bash
32
+ nodmix onboard --auth-choice xiaomi-api-key
33
+ ```
34
+
35
+ Or pass the key directly:
36
+
37
+ ```bash
38
+ nodmix onboard --auth-choice xiaomi-api-key --xiaomi-api-key "$XIAOMI_API_KEY"
39
+ ```
40
+
41
+ </Step>
42
+ <Step title="Verify the model is available">
43
+ ```bash
44
+ nodmix models list --provider xiaomi
45
+ ```
46
+ </Step>
47
+ </Steps>
48
+
49
+ ## Built-in catalog
50
+
51
+ | Model ref | Input | Context | Max output | Reasoning | Notes |
52
+ | ---------------------- | ----------- | --------- | ---------- | --------- | ------------- |
53
+ | `xiaomi/mimo-v2-flash` | text | 262,144 | 8,192 | No | Default model |
54
+ | `xiaomi/mimo-v2-pro` | text | 1,048,576 | 32,000 | Yes | Large context |
55
+ | `xiaomi/mimo-v2-omni` | text, image | 262,144 | 32,000 | Yes | Multimodal |
56
+
57
+ <Tip>
58
+ The default model ref is `xiaomi/mimo-v2-flash`. The provider is injected automatically when `XIAOMI_API_KEY` is set or an auth profile exists.
59
+ </Tip>
60
+
61
+ ## Text-to-speech
62
+
63
+ The bundled `xiaomi` plugin also registers Xiaomi MiMo as a speech provider for
64
+ `messages.tts`. It calls Xiaomi's chat-completions TTS contract with the text as
65
+ an `assistant` message and optional style guidance as a `user` message.
66
+
67
+ | Property | Value |
68
+ | -------- | ---------------------------------------- |
69
+ | TTS id | `xiaomi` (`mimo` alias) |
70
+ | Auth | `XIAOMI_API_KEY` |
71
+ | API | `POST /v1/chat/completions` with `audio` |
72
+ | Default | `mimo-v2.5-tts`, voice `mimo_default` |
73
+ | Output | MP3 by default; WAV when configured |
74
+
75
+ ```json5
76
+ {
77
+ messages: {
78
+ tts: {
79
+ auto: "always",
80
+ provider: "xiaomi",
81
+ providers: {
82
+ xiaomi: {
83
+ apiKey: "xiaomi_api_key",
84
+ model: "mimo-v2.5-tts",
85
+ voice: "mimo_default",
86
+ format: "mp3",
87
+ style: "Bright, natural, conversational tone.",
88
+ },
89
+ },
90
+ },
91
+ },
92
+ }
93
+ ```
94
+
95
+ Supported built-in voices include `mimo_default`, `default_zh`, `default_en`,
96
+ `Mia`, `Chloe`, `Milo`, and `Dean`. `mimo-v2-tts` is supported for older MiMo
97
+ TTS accounts; the default uses the current MiMo-V2.5 TTS model. For voice-note
98
+ targets such as Feishu and Telegram, Nodmix transcodes Xiaomi output to 48kHz
99
+ Opus with `ffmpeg` before delivery.
100
+
101
+ ## Config example
102
+
103
+ ```json5
104
+ {
105
+ env: { XIAOMI_API_KEY: "your-key" },
106
+ agents: { defaults: { model: { primary: "xiaomi/mimo-v2-flash" } } },
107
+ models: {
108
+ mode: "merge",
109
+ providers: {
110
+ xiaomi: {
111
+ baseUrl: "https://api.xiaomimimo.com/v1",
112
+ api: "openai-completions",
113
+ apiKey: "XIAOMI_API_KEY",
114
+ models: [
115
+ {
116
+ id: "mimo-v2-flash",
117
+ name: "Xiaomi MiMo V2 Flash",
118
+ reasoning: false,
119
+ input: ["text"],
120
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
121
+ contextWindow: 262144,
122
+ maxTokens: 8192,
123
+ },
124
+ {
125
+ id: "mimo-v2-pro",
126
+ name: "Xiaomi MiMo V2 Pro",
127
+ reasoning: true,
128
+ input: ["text"],
129
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
130
+ contextWindow: 1048576,
131
+ maxTokens: 32000,
132
+ },
133
+ {
134
+ id: "mimo-v2-omni",
135
+ name: "Xiaomi MiMo V2 Omni",
136
+ reasoning: true,
137
+ input: ["text", "image"],
138
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
139
+ contextWindow: 262144,
140
+ maxTokens: 32000,
141
+ },
142
+ ],
143
+ },
144
+ },
145
+ },
146
+ }
147
+ ```
148
+
149
+ <AccordionGroup>
150
+ <Accordion title="Auto-injection behavior">
151
+ The `xiaomi` provider is injected automatically when `XIAOMI_API_KEY` is set in your environment or an auth profile exists. You do not need to manually configure the provider unless you want to override model metadata or the base URL.
152
+ </Accordion>
153
+
154
+ <Accordion title="Model details">
155
+ - **mimo-v2-flash** — lightweight and fast, ideal for general-purpose text tasks. No reasoning support.
156
+ - **mimo-v2-pro** — supports reasoning with a 1M token context window for long-document workloads.
157
+ - **mimo-v2-omni** — reasoning-enabled multimodal model that accepts both text and image inputs.
158
+
159
+ <Note>
160
+ All models use the `xiaomi/` prefix (for example `xiaomi/mimo-v2-pro`).
161
+ </Note>
162
+
163
+ </Accordion>
164
+
165
+ <Accordion title="Troubleshooting">
166
+ - If models do not appear, confirm `XIAOMI_API_KEY` is set and valid.
167
+ - When the Gateway runs as a daemon, ensure the key is available to that process (for example in `~/.nodmix/.env` or via `env.shellEnv`).
168
+
169
+ <Warning>
170
+ Keys set only in your interactive shell are not visible to daemon-managed gateway processes. Use `~/.nodmix/.env` or `env.shellEnv` config for persistent availability.
171
+ </Warning>
172
+
173
+ </Accordion>
174
+ </AccordionGroup>
175
+
176
+ ## Related
177
+
178
+ <CardGroup cols={2}>
179
+ <Card title="Model selection" href="/concepts/model-providers" icon="layers">
180
+ Choosing providers, model refs, and failover behavior.
181
+ </Card>
182
+ <Card title="Configuration reference" href="/gateway/configuration-reference" icon="gear">
183
+ Full Nodmix configuration reference.
184
+ </Card>
185
+ <Card title="Xiaomi MiMo console" href="https://platform.xiaomimimo.com" icon="arrow-up-right-from-square">
186
+ Xiaomi MiMo dashboard and API key management.
187
+ </Card>
188
+ </CardGroup>
@@ -0,0 +1,203 @@
1
+ ---
2
+ summary: "Use Z.AI (GLM models) with Nodmix"
3
+ read_when:
4
+ - You want Z.AI / GLM models in Nodmix
5
+ - You need a simple ZAI_API_KEY setup
6
+ title: "Z.AI"
7
+ ---
8
+
9
+ Z.AI is the API platform for **GLM** models. It provides REST APIs for GLM and uses API keys
10
+ for authentication. Create your API key in the Z.AI console. Nodmix uses the `zai` provider
11
+ with a Z.AI API key.
12
+
13
+ - Provider: `zai`
14
+ - Auth: `ZAI_API_KEY`
15
+ - API: Z.AI Chat Completions (Bearer auth)
16
+
17
+ ## Getting started
18
+
19
+ <Tabs>
20
+ <Tab title="Auto-detect endpoint">
21
+ **Best for:** most users. Nodmix detects the matching Z.AI endpoint from the key and applies the correct base URL automatically.
22
+
23
+ <Steps>
24
+ <Step title="Run onboarding">
25
+ ```bash
26
+ nodmix onboard --auth-choice zai-api-key
27
+ ```
28
+ </Step>
29
+ <Step title="Set a default model">
30
+ ```json5
31
+ {
32
+ env: { ZAI_API_KEY: "sk-..." },
33
+ agents: { defaults: { model: { primary: "zai/glm-5.1" } } },
34
+ }
35
+ ```
36
+ </Step>
37
+ <Step title="Verify the model is listed">
38
+ ```bash
39
+ nodmix models list --all --provider zai
40
+ ```
41
+ </Step>
42
+ </Steps>
43
+
44
+ </Tab>
45
+
46
+ <Tab title="Explicit regional endpoint">
47
+ **Best for:** users who want to force a specific Coding Plan or general API surface.
48
+
49
+ <Steps>
50
+ <Step title="Pick the right onboarding choice">
51
+ ```bash
52
+ # Coding Plan Global (recommended for Coding Plan users)
53
+ nodmix onboard --auth-choice zai-coding-global
54
+
55
+ # Coding Plan CN (China region)
56
+ nodmix onboard --auth-choice zai-coding-cn
57
+
58
+ # General API
59
+ nodmix onboard --auth-choice zai-global
60
+
61
+ # General API CN (China region)
62
+ nodmix onboard --auth-choice zai-cn
63
+ ```
64
+ </Step>
65
+ <Step title="Set a default model">
66
+ ```json5
67
+ {
68
+ env: { ZAI_API_KEY: "sk-..." },
69
+ agents: { defaults: { model: { primary: "zai/glm-5.1" } } },
70
+ }
71
+ ```
72
+ </Step>
73
+ <Step title="Verify the model is listed">
74
+ ```bash
75
+ nodmix models list --all --provider zai
76
+ ```
77
+ </Step>
78
+ </Steps>
79
+
80
+ </Tab>
81
+ </Tabs>
82
+
83
+ ## Built-in catalog
84
+
85
+ Nodmix ships the bundled `zai` provider catalog in the plugin manifest, so read-only
86
+ listing can show known GLM rows without loading provider runtime:
87
+
88
+ ```bash
89
+ nodmix models list --all --provider zai
90
+ ```
91
+
92
+ The manifest-backed catalog currently includes:
93
+
94
+ | Model ref | Notes |
95
+ | -------------------- | ------------- |
96
+ | `zai/glm-5.1` | Default model |
97
+ | `zai/glm-5` | |
98
+ | `zai/glm-5-turbo` | |
99
+ | `zai/glm-5v-turbo` | |
100
+ | `zai/glm-4.7` | |
101
+ | `zai/glm-4.7-flash` | |
102
+ | `zai/glm-4.7-flashx` | |
103
+ | `zai/glm-4.6` | |
104
+ | `zai/glm-4.6v` | |
105
+ | `zai/glm-4.5` | |
106
+ | `zai/glm-4.5-air` | |
107
+ | `zai/glm-4.5-flash` | |
108
+ | `zai/glm-4.5v` | |
109
+
110
+ <Tip>
111
+ GLM models are available as `zai/<model>` (example: `zai/glm-5`). The default bundled model ref is `zai/glm-5.1`.
112
+ </Tip>
113
+
114
+ ## Advanced configuration
115
+
116
+ <AccordionGroup>
117
+ <Accordion title="Forward-resolving unknown GLM-5 models">
118
+ Unknown `glm-5*` ids still forward-resolve on the bundled provider path by
119
+ synthesizing provider-owned metadata from the `glm-4.7` template when the id
120
+ matches the current GLM-5 family shape.
121
+ </Accordion>
122
+
123
+ <Accordion title="Tool-call streaming">
124
+ `tool_stream` is enabled by default for Z.AI tool-call streaming. To disable it:
125
+
126
+ ```json5
127
+ {
128
+ agents: {
129
+ defaults: {
130
+ models: {
131
+ "zai/<model>": {
132
+ params: { tool_stream: false },
133
+ },
134
+ },
135
+ },
136
+ },
137
+ }
138
+ ```
139
+
140
+ </Accordion>
141
+
142
+ <Accordion title="Thinking and preserved thinking">
143
+ Z.AI thinking follows Nodmix's `/think` controls. With thinking off,
144
+ Nodmix sends `thinking: { type: "disabled" }` to avoid responses that
145
+ spend the output budget on `reasoning_content` before visible text.
146
+
147
+ Preserved thinking is opt-in because Z.AI requires the full historical
148
+ `reasoning_content` to be replayed, which increases prompt tokens. Enable it
149
+ per model:
150
+
151
+ ```json5
152
+ {
153
+ agents: {
154
+ defaults: {
155
+ models: {
156
+ "zai/glm-5.1": {
157
+ params: { preserveThinking: true },
158
+ },
159
+ },
160
+ },
161
+ },
162
+ }
163
+ ```
164
+
165
+ When enabled and thinking is on, Nodmix sends
166
+ `thinking: { type: "enabled", clear_thinking: false }` and replays prior
167
+ `reasoning_content` for the same OpenAI-compatible transcript.
168
+
169
+ Advanced users can still override the exact provider payload with
170
+ `params.extra_body.thinking`.
171
+
172
+ </Accordion>
173
+
174
+ <Accordion title="Image understanding">
175
+ The bundled Z.AI plugin registers image understanding.
176
+
177
+ | Property | Value |
178
+ | ------------- | ----------- |
179
+ | Model | `glm-4.6v` |
180
+
181
+ Image understanding is auto-resolved from the configured Z.AI auth — no
182
+ additional config is needed.
183
+
184
+ </Accordion>
185
+
186
+ <Accordion title="Auth details">
187
+ - Z.AI uses Bearer auth with your API key.
188
+ - The `zai-api-key` onboarding choice auto-detects the matching Z.AI endpoint from the key prefix.
189
+ - Use the explicit regional choices (`zai-coding-global`, `zai-coding-cn`, `zai-global`, `zai-cn`) when you want to force a specific API surface.
190
+
191
+ </Accordion>
192
+ </AccordionGroup>
193
+
194
+ ## Related
195
+
196
+ <CardGroup cols={2}>
197
+ <Card title="GLM model family" href="/providers/glm" icon="microchip">
198
+ Model family overview for GLM.
199
+ </Card>
200
+ <Card title="Model selection" href="/concepts/model-providers" icon="layers">
201
+ Choosing providers, model refs, and failover behavior.
202
+ </Card>
203
+ </CardGroup>
@@ -0,0 +1,9 @@
1
+ ---
2
+ summary: "Redirect to /refactor/ingress-core"
3
+ read_when:
4
+ - Changing channel ingress, sender access, command authorization, or access-group handling
5
+ title: "Channel access cleanup"
6
+ sidebarTitle: "Channel access cleanup"
7
+ ---
8
+
9
+ The channel access cleanup plan now lives in [Ingress core deletion plan](/refactor/ingress-core).
@@ -0,0 +1,298 @@
1
+ ---
2
+ summary: "Migration plan for making ACP session and ACPX process ownership explicit"
3
+ read_when:
4
+ - Refactoring ACP session lifecycle or ACPX process cleanup
5
+ - Debugging ACPX orphan processes, PID reuse, or multi-gateway cleanup safety
6
+ - Changing sessions_list visibility for spawned ACP or subagent sessions
7
+ - Designing ownership metadata for background tasks, ACP sessions, or process leases
8
+ title: "ACP lifecycle refactor"
9
+ sidebarTitle: "ACP lifecycle refactor"
10
+ ---
11
+
12
+ ACP lifecycle currently works, but too much of it is inferred after the fact.
13
+ Process cleanup reconstructs ownership from PIDs, command strings, wrapper
14
+ paths, and the live process table. Session visibility reconstructs ownership
15
+ from session-key strings plus secondary `sessions.list({ spawnedBy })` lookups.
16
+ That makes narrow fixes possible, but it also makes edge cases easy to miss:
17
+ PID reuse, quoted commands, adapter grandchildren, multi-gateway state roots,
18
+ `cancel` versus `close`, and `tree` versus `all` visibility all become separate
19
+ places to rediscover the same ownership rules.
20
+
21
+ This refactor makes ownership first-class. The goal is not a new ACP product
22
+ surface; it is a safer internal contract for the existing ACP and ACPX behavior.
23
+
24
+ ## Goals
25
+
26
+ - Cleanup never signals a process unless current live evidence matches an
27
+ Nodmix-owned lease.
28
+ - `cancel`, `close`, and startup reaping have distinct lifecycle intents.
29
+ - `sessions_list`, `sessions_history`, `sessions_send`, and status checks use
30
+ the same requester-owned session model.
31
+ - Multi-gateway installs cannot reap each other's ACPX wrappers.
32
+ - Old ACPX session records keep working during migration.
33
+ - The runtime remains plugin-owned; core does not learn ACPX package details.
34
+
35
+ ## Non-goals
36
+
37
+ - Replacing ACPX or changing the public `/acp` command surface.
38
+ - Moving vendor-specific ACP adapter behavior into core.
39
+ - Requiring users to manually clean state before upgrading.
40
+ - Making `cancel` close reusable ACP sessions.
41
+
42
+ ## Target Model
43
+
44
+ ### Gateway Instance Identity
45
+
46
+ Each Gateway process should have a stable runtime instance id:
47
+
48
+ ```ts
49
+ type GatewayInstanceId = string;
50
+ ```
51
+
52
+ It can be generated on Gateway startup and persisted in state for the life of
53
+ that install. It is not a security secret; it is an ownership discriminator used
54
+ to avoid confusing one Gateway's ACP processes with another Gateway's processes.
55
+
56
+ ### ACP Session Ownership
57
+
58
+ Every spawned ACP session should have normalized ownership metadata:
59
+
60
+ ```ts
61
+ type AcpSessionOwner = {
62
+ sessionKey: string;
63
+ spawnedBy?: string;
64
+ parentSessionKey?: string;
65
+ ownerSessionKey: string;
66
+ agentId: string;
67
+ backend: "acpx";
68
+ gatewayInstanceId: GatewayInstanceId;
69
+ createdAt: number;
70
+ };
71
+ ```
72
+
73
+ The Gateway should return these fields on session rows where they are known.
74
+ Visibility filtering should be a pure check over row metadata:
75
+
76
+ ```ts
77
+ canSeeSessionRow({
78
+ row,
79
+ requesterSessionKey,
80
+ visibility,
81
+ a2aPolicy,
82
+ });
83
+ ```
84
+
85
+ That removes hidden secondary `sessions.list({ spawnedBy })` calls from
86
+ visibility checks. A spawned cross-agent ACP child is requester-owned because
87
+ the row says so, not because a second query happens to find it.
88
+
89
+ ### ACPX Process Leases
90
+
91
+ Every generated wrapper launch should create a lease record:
92
+
93
+ ```ts
94
+ type AcpxProcessLease = {
95
+ leaseId: string;
96
+ gatewayInstanceId: GatewayInstanceId;
97
+ sessionKey: string;
98
+ wrapperRoot: string;
99
+ wrapperPath: string;
100
+ rootPid: number;
101
+ processGroupId?: number;
102
+ commandHash: string;
103
+ startedAt: number;
104
+ state: "open" | "closing" | "closed" | "lost";
105
+ };
106
+ ```
107
+
108
+ The wrapper process should receive the lease id and gateway instance id in its
109
+ environment:
110
+
111
+ ```sh
112
+ NODMIX_ACPX_LEASE_ID=...
113
+ NODMIX_GATEWAY_INSTANCE_ID=...
114
+ ```
115
+
116
+ When the platform allows it, verification should prefer live process metadata
117
+ that cannot be confused by command quoting:
118
+
119
+ - root PID still exists
120
+ - live wrapper path is under `wrapperRoot`
121
+ - process group matches the lease when available
122
+ - environment contains the expected lease id when readable
123
+ - command hash or executable path matches the lease
124
+
125
+ If the live process cannot be verified, cleanup fails closed.
126
+
127
+ ## Lifecycle Controller
128
+
129
+ Introduce one ACPX lifecycle controller that owns process leases and cleanup
130
+ policy:
131
+
132
+ ```ts
133
+ interface AcpxLifecycleController {
134
+ ensureSession(input: AcpRuntimeEnsureInput): Promise<AcpRuntimeHandle>;
135
+ cancelTurn(handle: AcpRuntimeHandle): Promise<void>;
136
+ closeSession(input: {
137
+ handle: AcpRuntimeHandle;
138
+ discardPersistentState?: boolean;
139
+ reason?: string;
140
+ }): Promise<void>;
141
+ reapStartupOrphans(): Promise<void>;
142
+ verifyOwnedTree(lease: AcpxProcessLease): Promise<OwnedProcessTree | null>;
143
+ }
144
+ ```
145
+
146
+ `cancelTurn` requests turn cancellation only. It must not reap reusable wrapper
147
+ or adapter processes.
148
+
149
+ `closeSession` is allowed to reap, but only after loading the session record,
150
+ loading the lease, and verifying the live process tree still belongs to that
151
+ lease.
152
+
153
+ `reapStartupOrphans` starts from open leases in state. It may use the process
154
+ table to find descendants, but it should not scan arbitrary ACP-looking
155
+ commands first and then decide they are probably ours.
156
+
157
+ ## Wrapper Contract
158
+
159
+ Generated wrappers should stay small. They should:
160
+
161
+ - start the adapter in a process group where supported
162
+ - forward normal termination signals to the process group
163
+ - detect parent death
164
+ - on parent death, send SIGTERM, then keep the wrapper alive until the SIGKILL
165
+ fallback runs
166
+ - report root PID and process group id back to the lifecycle controller when
167
+ that is available
168
+
169
+ Wrappers should not decide session policy. They only enforce local process-tree
170
+ cleanup for their own adapter group.
171
+
172
+ ## Session Visibility Contract
173
+
174
+ Visibility should use normalized row ownership:
175
+
176
+ ```ts
177
+ type SessionVisibilityInput = {
178
+ requesterSessionKey: string;
179
+ row: {
180
+ key: string;
181
+ agentId: string;
182
+ ownerSessionKey?: string;
183
+ spawnedBy?: string;
184
+ parentSessionKey?: string;
185
+ };
186
+ visibility: "self" | "tree" | "agent" | "all";
187
+ a2aPolicy: AgentToAgentPolicy;
188
+ };
189
+ ```
190
+
191
+ Rules:
192
+
193
+ - `self`: only the requester session.
194
+ - `tree`: requester session plus rows owned by or spawned from the requester.
195
+ - `all`: all same-agent rows, a2a-allowed cross-agent rows, and requester-owned
196
+ spawned cross-agent rows even when general a2a is disabled.
197
+ - `agent`: same agent only, unless an explicit owner relationship says the row
198
+ belongs to the requester.
199
+
200
+ This makes `tree` and `all` monotonic: `all` must not hide an owned child that
201
+ `tree` would show.
202
+
203
+ ## Migration Plan
204
+
205
+ ### Phase 1: Add Identity And Leases
206
+
207
+ - Add `gatewayInstanceId` to Gateway state.
208
+ - Add an ACPX lease store under the ACPX state directory.
209
+ - Write a lease before spawning a generated wrapper.
210
+ - Store `leaseId` on new ACPX session records.
211
+ - Keep existing PID and command fields for old records.
212
+
213
+ ### Phase 2: Lease-First Cleanup
214
+
215
+ - Change close cleanup to load `leaseId` first.
216
+ - Verify live process ownership against the lease before signaling.
217
+ - Keep the current root PID and wrapper-root fallback only for legacy records.
218
+ - Mark leases `closed` after verified cleanup.
219
+ - Mark leases `lost` when the process is gone before cleanup.
220
+
221
+ ### Phase 3: Lease-First Startup Reaping
222
+
223
+ - Startup reaping scans open leases.
224
+ - For each lease, verify the root process and collect descendants.
225
+ - Reap verified trees children-first.
226
+ - Expire old `closed` and `lost` leases with a bounded retention window.
227
+ - Keep command-marker scanning only as a temporary legacy fallback, guarded by
228
+ wrapper root and Gateway instance where possible.
229
+
230
+ ### Phase 4: Session Ownership Rows
231
+
232
+ - Add ownership metadata to Gateway session rows.
233
+ - Teach ACPX, subagent, background-task, and session-store writers to populate
234
+ `ownerSessionKey` or `spawnedBy`.
235
+ - Convert session visibility checks to use row metadata.
236
+ - Remove visibility-time secondary `sessions.list({ spawnedBy })` lookups.
237
+
238
+ ### Phase 5: Remove Legacy Heuristics
239
+
240
+ After one release window:
241
+
242
+ - stop relying on stored root command strings for non-legacy ACPX cleanup
243
+ - remove command-marker startup scans
244
+ - remove visibility fallback list lookups
245
+ - keep defensive fail-closed behavior for missing or unverifiable leases
246
+
247
+ ## Tests
248
+
249
+ Add two table-driven suites.
250
+
251
+ Process lifecycle simulator:
252
+
253
+ - PID reused by unrelated process
254
+ - PID reused by another Gateway's wrapper root
255
+ - stored wrapper command is shell-quoted, live `ps` command is not
256
+ - adapter child exits, grandchild remains in the process group
257
+ - parent death SIGTERM fallback reaches SIGKILL
258
+ - process listing unavailable
259
+ - stale lease with missing process
260
+ - startup orphan with wrapper, adapter child, and grandchild
261
+
262
+ Session visibility matrix:
263
+
264
+ - `self`, `tree`, `agent`, `all`
265
+ - a2a enabled and disabled
266
+ - same-agent row
267
+ - cross-agent row
268
+ - requester-owned spawned cross-agent ACP row
269
+ - sandboxed requester clamped to `tree`
270
+ - list, history, send, and status actions
271
+
272
+ The important invariant: a requester-owned spawned child is visible wherever
273
+ the configured visibility includes the requester session tree, and `all` is not
274
+ less capable than `tree`.
275
+
276
+ ## Compatibility Notes
277
+
278
+ Old session records may not have `leaseId`. They should use the legacy
279
+ fail-closed cleanup path:
280
+
281
+ - require a live root process
282
+ - require wrapper-root ownership when a generated wrapper is expected
283
+ - require command agreement for non-wrapper roots
284
+ - never signal based only on stale stored PID metadata
285
+
286
+ If a legacy record cannot be verified, leave it alone. Startup lease cleanup and
287
+ the next release window should eventually retire the fallback.
288
+
289
+ ## Success Criteria
290
+
291
+ - Closing an old or stale ACPX session cannot kill another Gateway's process.
292
+ - Parent death does not leave stubborn adapter grandchildren running.
293
+ - `cancel` aborts the active turn without closing reusable sessions.
294
+ - `sessions_list` can show requester-owned cross-agent ACP children under both
295
+ `tree` and `all`.
296
+ - Startup cleanup is driven by leases, not broad command-string scans.
297
+ - The focused process and visibility matrix tests cover every edge case that
298
+ previously required one-off review fixes.