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,767 @@
1
+ ---
2
+ summary: "Release lanes, operator checklist, validation boxes, version naming, and cadence"
3
+ title: "Release policy"
4
+ read_when:
5
+ - Looking for public release channel definitions
6
+ - Running release validation or package acceptance
7
+ - Looking for version naming and cadence
8
+ ---
9
+
10
+ Nodmix has three public release lanes:
11
+
12
+ - stable: tagged releases that publish to npm `beta` by default, or to npm `latest` when explicitly requested
13
+ - beta: prerelease tags that publish to npm `beta`
14
+ - dev: the moving head of `main`
15
+
16
+ ## Version naming
17
+
18
+ - Stable release version: `YYYY.M.D`
19
+ - Git tag: `vYYYY.M.D`
20
+ - Stable correction release version: `YYYY.M.D-N`
21
+ - Git tag: `vYYYY.M.D-N`
22
+ - Beta prerelease version: `YYYY.M.D-beta.N`
23
+ - Git tag: `vYYYY.M.D-beta.N`
24
+ - Do not zero-pad month or day
25
+ - `latest` means the current promoted stable npm release
26
+ - `beta` means the current beta install target
27
+ - Stable and stable correction releases publish to npm `beta` by default; release operators can target `latest` explicitly, or promote a vetted beta build later
28
+ - Every stable Nodmix release ships the npm package and macOS app together;
29
+ beta releases normally validate and publish the npm/package path first, with
30
+ mac app build/sign/notarize reserved for stable unless explicitly requested
31
+
32
+ ## Release cadence
33
+
34
+ - Releases move beta-first
35
+ - Stable follows only after the latest beta is validated
36
+ - Maintainers normally cut releases from a `release/YYYY.M.D` branch created
37
+ from current `main`, so release validation and fixes do not block new
38
+ development on `main`
39
+ - If a beta tag has been pushed or published and needs a fix, maintainers cut
40
+ the next `-beta.N` tag instead of deleting or recreating the old beta tag
41
+ - Detailed release procedure, approvals, credentials, and recovery notes are
42
+ maintainer-only
43
+
44
+ ## Release operator checklist
45
+
46
+ This checklist is the public shape of the release flow. Private credentials,
47
+ signing, notarization, dist-tag recovery, and emergency rollback details stay in
48
+ the maintainer-only release runbook.
49
+
50
+ 1. Start from current `main`: pull latest, confirm the target commit is pushed,
51
+ and confirm current `main` CI is green enough to branch from it.
52
+ 2. Rewrite the top `CHANGELOG.md` section from real commit history with
53
+ `/changelog`, keep entries user-facing, commit it, push it, and rebase/pull
54
+ once more before branching.
55
+ 3. Review release compatibility records in
56
+ `src/plugins/compat/registry.ts` and
57
+ `src/commands/doctor/shared/deprecation-compat.ts`. Remove expired
58
+ compatibility only when the upgrade path stays covered, or record why it is
59
+ intentionally carried.
60
+ 4. Create `release/YYYY.M.D` from current `main`; do not do normal release work
61
+ directly on `main`.
62
+ 5. Bump every required version location for the intended tag, then run
63
+ `pnpm release:prep`. It refreshes plugin versions, plugin inventory, config
64
+ schema, bundled channel config metadata, config docs baseline, plugin SDK
65
+ exports, and plugin SDK API baseline in the right order. Commit any generated
66
+ drift before tagging. Then run the local deterministic preflight:
67
+ `pnpm check:test-types`, `pnpm check:architecture`,
68
+ `pnpm build && pnpm ui:build`, and `pnpm release:check`.
69
+ 6. Run `Nodmix NPM Release` with `preflight_only=true`. Before a tag exists,
70
+ a full 40-character release-branch SHA is allowed for validation-only
71
+ preflight. The preflight generates dependency release evidence for the
72
+ exact checked-out dependency graph and stores it in the npm preflight
73
+ artifact. Save the successful `preflight_run_id`.
74
+ 7. Kick off all pre-release tests with `Full Release Validation` for the
75
+ release branch, tag, or full commit SHA. This is the one manual entrypoint
76
+ for the four big release test boxes: Vitest, Docker, QA Lab, and Package.
77
+ 8. If validation fails, fix on the release branch and rerun the smallest failed
78
+ file, lane, workflow job, package profile, provider, or model allowlist that
79
+ proves the fix. Rerun the full umbrella only when the changed surface makes
80
+ prior evidence stale.
81
+ 9. For beta, tag `vYYYY.M.D-beta.N`, then run `pnpm release:candidate -- --tag
82
+ vYYYY.M.D-beta.N` from the matching `release/YYYY.M.D` branch. The helper runs
83
+ the local generated-release checks, dispatches or verifies the full release
84
+ validation and npm preflight evidence, runs Parallels and Telegram package
85
+ proof, records plugin npm and ClawHub plans, and prints the exact
86
+ `Nodmix Release Publish` command only after the evidence bundle is green.
87
+ `Nodmix Release Publish` dispatches the selected or all-publishable plugin
88
+ packages to npm and the same set to ClawHub in parallel, and then promotes the
89
+ prepared Nodmix npm preflight artifact with the matching dist-tag as soon as
90
+ plugin npm publish succeeds.
91
+ After the Nodmix npm publish child succeeds, it creates or updates the
92
+ matching GitHub release/prerelease page from the complete matching
93
+ `CHANGELOG.md` section. Stable releases published to npm `latest` become the
94
+ GitHub latest release; stable maintenance releases kept on npm `beta` are
95
+ created with GitHub `latest=false`. The workflow also uploads the preflight
96
+ dependency evidence to the GitHub release as
97
+ `nodmix-<version>-dependency-evidence.zip` for post-release incident
98
+ response. The publish workflow prints child run IDs immediately, auto-approves
99
+ release environment gates the workflow token is allowed to approve, summarizes
100
+ failed child jobs with log tails, closes out the GitHub release and dependency
101
+ evidence as soon as Nodmix npm publish succeeds, waits for ClawHub whenever
102
+ Nodmix npm is being published, then runs `pnpm release:verify-beta` and
103
+ uploads postpublish evidence for the GitHub release, npm package, selected
104
+ plugin npm packages, selected ClawHub packages, child workflow run IDs, and
105
+ optional NPM Telegram run ID. The ClawHub path retries transient CLI
106
+ dependency install failures, publishes preview-passing plugins even when one
107
+ preview cell flakes, and ends with registry verification for every expected
108
+ plugin version so partial publishes remain visible and retryable. Then run the post-publish
109
+ package acceptance against the published
110
+ `nodmix@YYYY.M.D-beta.N` or
111
+ `nodmix@beta` package. If a pushed or published prerelease needs a fix,
112
+ cut the next matching prerelease number; do not delete or rewrite the old
113
+ prerelease.
114
+ 10. For stable, continue only after the vetted beta or release candidate has the
115
+ required validation evidence. Stable npm publish also goes through
116
+ `Nodmix Release Publish`, reusing the successful preflight artifact via
117
+ `preflight_run_id`; stable macOS release readiness also requires the
118
+ packaged `.zip`, `.dmg`, `.dSYM.zip`, and updated `appcast.xml` on `main`.
119
+ The private macOS publish workflow publishes the signed appcast to public
120
+ `main` automatically after release assets verify; if branch protection blocks
121
+ the direct push, it opens or updates an appcast PR.
122
+ 11. After publish, run the npm post-publish verifier, optional standalone
123
+ published-npm Telegram E2E when you need post-publish channel proof,
124
+ dist-tag promotion when needed, verify the generated GitHub release page,
125
+ and run the release announcement steps.
126
+
127
+ ## Release preflight
128
+
129
+ - Run `pnpm check:test-types` before release preflight so test TypeScript stays
130
+ covered outside the faster local `pnpm check` gate
131
+ - Run `pnpm check:architecture` before release preflight so the broader import
132
+ cycle and architecture boundary checks are green outside the faster local gate
133
+ - Run `pnpm build && pnpm ui:build` before `pnpm release:check` so the expected
134
+ `dist/*` release artifacts and Control UI bundle exist for the pack
135
+ validation step
136
+ - Run `pnpm release:prep` after the root version bump and before tagging. It
137
+ runs every deterministic release generator that commonly drifts after a
138
+ version/config/API change: plugin versions, plugin inventory, base config
139
+ schema, bundled channel config metadata, config docs baseline, plugin SDK
140
+ exports, and plugin SDK API baseline. `pnpm release:check` re-runs those
141
+ guards in check mode and reports every generated drift failure it finds in one
142
+ pass before running package release checks.
143
+ - Run the manual `Full Release Validation` workflow before release approval to
144
+ kick off all pre-release test boxes from one entrypoint. It accepts a branch,
145
+ tag, or full commit SHA, dispatches manual `CI`, and dispatches
146
+ `Nodmix Release Checks` for install smoke, package acceptance, cross-OS
147
+ package checks, QA Lab parity, Matrix, and Telegram lanes. Stable/default runs
148
+ keep exhaustive live/E2E and Docker release-path soak behind
149
+ `run_release_soak=true`; `release_profile=full` forces soak on. With
150
+ `release_profile=full` and `rerun_group=all`, it also runs package Telegram
151
+ E2E against the `release-package-under-test` artifact from release checks.
152
+ Provide `release_package_spec` after publishing a beta to reuse the shipped
153
+ npm package across release checks, Package Acceptance, and package Telegram
154
+ E2E without rebuilding the release tarball. Provide
155
+ `npm_telegram_package_spec` only when Telegram should use a different
156
+ published package from the rest of release validation. Provide
157
+ `package_acceptance_package_spec` when Package Acceptance should use a
158
+ different published package from the release package spec. Provide
159
+ `evidence_package_spec` when the private evidence report should prove that the
160
+ validation matches a published npm package without forcing Telegram E2E.
161
+ Example:
162
+ `gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D`
163
+ - Run the manual `Package Acceptance` workflow when you want side-channel proof
164
+ for a package candidate while release work continues. Use `source=npm` for
165
+ `nodmix@beta`, `nodmix@latest`, or an exact release version; `source=ref`
166
+ to pack a trusted `package_ref` branch/tag/SHA with the current
167
+ `workflow_ref` harness; `source=url` for an HTTPS tarball with a required
168
+ SHA-256; or `source=artifact` for a tarball uploaded by another GitHub
169
+ Actions run. The workflow resolves the candidate to
170
+ `package-under-test`, reuses the Docker E2E release scheduler against that
171
+ tarball, and can run Telegram QA against the same tarball with
172
+ `telegram_mode=mock-openai` or `telegram_mode=live-frontier`. When the
173
+ selected Docker lanes include `published-upgrade-survivor`, the package
174
+ artifact is the candidate and `published_upgrade_survivor_baseline` selects
175
+ the published baseline. `update-restart-auth` uses the candidate package as
176
+ both the installed CLI and the package-under-test so it exercises the
177
+ candidate update command's managed restart path.
178
+ Example: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=nodmix@beta -f suite_profile=product -f published_upgrade_survivor_baseline=nodmix@2026.4.26 -f telegram_mode=mock-openai`
179
+ Common profiles:
180
+ - `smoke`: install/channel/agent, gateway network, and config reload lanes
181
+ - `package`: artifact-native package/update/restart/plugin lanes without OpenWebUI or live ClawHub
182
+ - `product`: package profile plus MCP channels, cron/subagent cleanup,
183
+ OpenAI web search, and OpenWebUI
184
+ - `full`: Docker release-path chunks with OpenWebUI
185
+ - `custom`: exact `docker_lanes` selection for a focused rerun
186
+ - Run the manual `CI` workflow directly when you only need full normal CI
187
+ coverage for the release candidate. Manual CI dispatches bypass changed
188
+ scoping and force the Linux Node shards, bundled-plugin shards, plugin and
189
+ channel contract shards, Node 22 compatibility, `check-*`, `check-additional-*`,
190
+ built-artifact smoke checks, docs checks, Python skills, Windows, macOS,
191
+ Android, and Control UI i18n lanes.
192
+ Example: `gh workflow run ci.yml --ref release/YYYY.M.D`
193
+ - Run `pnpm qa:otel:smoke` when validating release telemetry. It exercises
194
+ QA-lab through a local OTLP/HTTP receiver and verifies the exported trace
195
+ span names, bounded attributes, and content/identifier redaction without
196
+ requiring Opik, Langfuse, or another external collector.
197
+ - Run `pnpm release:check` before every tagged release
198
+ - `Nodmix NPM Release` preflight generates dependency release evidence before
199
+ it packs the npm tarball. The npm advisory vulnerability gate is
200
+ release-blocking. The transitive manifest risk, dependency ownership/install
201
+ surface, and dependency change reports are release evidence only. The
202
+ dependency change report compares the release candidate with the previous
203
+ reachable release tag.
204
+ - The preflight uploads dependency evidence as
205
+ `nodmix-release-dependency-evidence-<tag>` and also embeds it under
206
+ `dependency-evidence/` inside the prepared npm preflight artifact. The real
207
+ publish path reuses that preflight artifact, then attaches the same evidence
208
+ to the GitHub release as `nodmix-<version>-dependency-evidence.zip`.
209
+ - Run `Nodmix Release Publish` for the mutating publish sequence after the
210
+ tag exists. Dispatch it from `release/YYYY.M.D` (or `main` when publishing a
211
+ main-reachable tag), pass the release tag and successful Nodmix npm
212
+ `preflight_run_id`, and keep the default plugin publish scope
213
+ `all-publishable` unless you are deliberately running a focused repair. The
214
+ workflow serializes plugin npm publish, plugin ClawHub publish, and Nodmix
215
+ npm publish so the core package is not published before its externalized
216
+ plugins.
217
+ - Release checks now run in a separate manual workflow:
218
+ `Nodmix Release Checks`
219
+ - `Nodmix Release Checks` also runs the QA Lab mock parity lane plus the fast
220
+ live Matrix profile and Telegram QA lane before release approval. The live
221
+ lanes use the `qa-live-shared` environment; Telegram also uses Convex CI
222
+ credential leases. Run the manual `QA-Lab - All Lanes` workflow with
223
+ `matrix_profile=all` and `matrix_shards=true` when you want full Matrix
224
+ transport, media, and E2EE inventory in parallel.
225
+ - Cross-OS install and upgrade runtime validation is part of public
226
+ `Nodmix Release Checks` and `Full Release Validation`, which call the
227
+ reusable workflow
228
+ `.github/workflows/nodmix-cross-os-release-checks-reusable.yml` directly
229
+ - This split is intentional: keep the real npm release path short,
230
+ deterministic, and artifact-focused, while slower live checks stay in their
231
+ own lane so they do not stall or block publish
232
+ - Secret-bearing release checks should be dispatched through `Full Release
233
+ Validation` or from the `main`/release workflow ref so workflow logic and
234
+ secrets stay controlled
235
+ - `Nodmix Release Checks` accepts a branch, tag, or full commit SHA as long
236
+ as the resolved commit is reachable from an Nodmix branch or release tag
237
+ - `Nodmix NPM Release` validation-only preflight also accepts the current
238
+ full 40-character workflow-branch commit SHA without requiring a pushed tag
239
+ - That SHA path is validation-only and cannot be promoted into a real publish
240
+ - In SHA mode the workflow synthesizes `v<package.json version>` only for the
241
+ package metadata check; real publish still requires a real release tag
242
+ - Both workflows keep the real publish and promotion path on GitHub-hosted
243
+ runners, while the non-mutating validation path can use the larger
244
+ Blacksmith Linux runners
245
+ - That workflow runs
246
+ `NODMIX_LIVE_TEST=1 NODMIX_LIVE_CACHE_TEST=1 pnpm test:live:cache`
247
+ using both `OPENAI_API_KEY` and `ANTHROPIC_API_KEY` workflow secrets
248
+ - npm release preflight no longer waits on the separate release checks lane
249
+ - Before tagging a release candidate locally, run
250
+ `RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-check`. The helper
251
+ runs the fast release guardrails, plugin npm/ClawHub release checks, build,
252
+ UI build, and `release:nodmix:npm:check` in the order that catches common
253
+ approval-blocking mistakes before the GitHub publish workflow starts.
254
+ - Run `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/nodmix-npm-release-check.ts`
255
+ (or the matching beta/correction tag) before approval
256
+ - After npm publish, run
257
+ `node --import tsx scripts/nodmix-npm-postpublish-verify.ts YYYY.M.D`
258
+ (or the matching beta/correction version) to verify the published registry
259
+ install path in a fresh temp prefix
260
+ - After a beta publish, run `NODMIX_NPM_TELEGRAM_PACKAGE_SPEC=nodmix@YYYY.M.D-beta.N NODMIX_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex NODMIX_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-live`
261
+ to verify installed-package onboarding, Telegram setup, and real Telegram E2E
262
+ against the published npm package using the shared leased Telegram credential
263
+ pool. Local maintainer one-offs may omit the Convex vars and pass the three
264
+ `NODMIX_QA_TELEGRAM_*` env credentials directly.
265
+ - To run the full post-publish beta smoke from a maintainer machine, use `pnpm release:beta-smoke -- --beta betaN`. The helper runs Parallels npm update/fresh-target validation, dispatches `NPM Telegram Beta E2E`, polls the exact workflow run, downloads the artifact, and prints the Telegram report.
266
+ - Maintainers can run the same post-publish check from GitHub Actions via the
267
+ manual `NPM Telegram Beta E2E` workflow. It is intentionally manual-only and
268
+ does not run on every merge.
269
+ - Maintainer release automation now uses preflight-then-promote:
270
+ - real npm publish must pass a successful npm `preflight_run_id`
271
+ - the real npm publish must be dispatched from the same `main` or
272
+ `release/YYYY.M.D` branch as the successful preflight run
273
+ - stable npm releases default to `beta`
274
+ - stable npm publish can target `latest` explicitly via workflow input
275
+ - token-based npm dist-tag mutation now lives in
276
+ `nodmix/releases-private/.github/workflows/nodmix-npm-dist-tags.yml`
277
+ for security, because `npm dist-tag add` still needs `NPM_TOKEN` while the
278
+ public repo keeps OIDC-only publish
279
+ - public `macOS Release` is validation-only; when a tag lives only on a
280
+ release branch but the workflow is dispatched from `main`, set
281
+ `public_release_branch=release/YYYY.M.D`
282
+ - real private mac publish must pass successful private mac
283
+ `preflight_run_id` and `validate_run_id`
284
+ - the real publish paths promote prepared artifacts instead of rebuilding
285
+ them again
286
+ - For stable correction releases like `YYYY.M.D-N`, the post-publish verifier
287
+ also checks the same temp-prefix upgrade path from `YYYY.M.D` to `YYYY.M.D-N`
288
+ so release corrections cannot silently leave older global installs on the
289
+ base stable payload
290
+ - npm release preflight fails closed unless the tarball includes both
291
+ `dist/control-ui/index.html` and a non-empty `dist/control-ui/assets/` payload
292
+ so we do not ship an empty browser dashboard again
293
+ - Post-publish verification also checks that published plugin entrypoints and
294
+ package metadata are present in the installed registry layout. A release that
295
+ ships missing plugin runtime payloads fails the postpublish verifier and
296
+ cannot be promoted to `latest`.
297
+ - `pnpm test:install:smoke` also enforces the npm pack `unpackedSize` budget on
298
+ the candidate update tarball, so installer e2e catches accidental pack bloat
299
+ before the release publish path
300
+ - If the release work touched CI planning, extension timing manifests, or
301
+ extension test matrices, regenerate and review the planner-owned
302
+ `plugin-prerelease-extension-shard` matrix outputs from
303
+ `.github/workflows/plugin-prerelease.yml` before approval so release notes do
304
+ not describe a stale CI layout
305
+ - Stable macOS release readiness also includes the updater surfaces:
306
+ - the GitHub release must end up with the packaged `.zip`, `.dmg`, and `.dSYM.zip`
307
+ - `appcast.xml` on `main` must point at the new stable zip after publish; the
308
+ private macOS publish workflow commits it automatically, or opens an appcast
309
+ PR when direct push is blocked
310
+ - the packaged app must keep a non-debug bundle id, a non-empty Sparkle feed
311
+ URL, and a `CFBundleVersion` at or above the canonical Sparkle build floor
312
+ for that release version
313
+
314
+ ## Release test boxes
315
+
316
+ `Full Release Validation` is how operators kick off all pre-release tests from
317
+ one entrypoint. For a pinned commit proof on a fast-moving branch, use the
318
+ helper so every child workflow runs from a temporary branch fixed at the target
319
+ SHA:
320
+
321
+ ```bash
322
+ pnpm ci:full-release --sha <full-sha>
323
+ ```
324
+
325
+ The helper pushes `release-ci/<sha>-...`, dispatches `Full Release Validation`
326
+ from that branch with `ref=<sha>`, verifies every child workflow `headSha`
327
+ matches the target, then deletes the temporary branch. This avoids proving a
328
+ newer `main` child run by accident.
329
+
330
+ For release branch or tag validation, run it from the trusted `main` workflow
331
+ ref and pass the release branch or tag as `ref`:
332
+
333
+ ```bash
334
+ gh workflow run full-release-validation.yml \
335
+ --ref main \
336
+ -f ref=release/YYYY.M.D \
337
+ -f provider=openai \
338
+ -f mode=both \
339
+ -f release_profile=stable \
340
+ -f evidence_package_spec=nodmix@YYYY.M.D-beta.N
341
+ ```
342
+
343
+ The workflow resolves the target ref, dispatches manual `CI` with
344
+ `target_ref=<release-ref>`, dispatches `Nodmix Release Checks`, prepares a
345
+ parent `release-package-under-test` artifact for package-facing checks, and
346
+ dispatches standalone package Telegram E2E when `release_profile=full` with
347
+ `rerun_group=all` or when `release_package_spec` or
348
+ `npm_telegram_package_spec` is set. `Nodmix Release
349
+ Checks` then fans out install smoke, cross-OS release checks, live/E2E Docker
350
+ release-path coverage when soak is enabled, Package Acceptance with Telegram
351
+ package QA, QA Lab parity, live Matrix, and live Telegram. A full run is only acceptable when the
352
+ `Full Release Validation`
353
+ summary shows `normal_ci` and `release_checks` as successful. In full/all mode,
354
+ the `npm_telegram` child must also be successful; outside full/all it is skipped
355
+ unless a published `release_package_spec` or `npm_telegram_package_spec` was
356
+ provided. The final
357
+ verifier summary includes slowest-job tables for each child run, so the release
358
+ manager can see the current critical path without downloading logs.
359
+ See [Full release validation](/reference/full-release-validation) for the
360
+ complete stage matrix, exact workflow job names, stable versus full profile
361
+ differences, artifacts, and focused rerun handles.
362
+ Child workflows are dispatched from the trusted ref that runs `Full Release
363
+ Validation`, normally `--ref main`, even when the target `ref` points at an
364
+ older release branch or tag. There is no separate Full Release Validation
365
+ workflow-ref input; choose the trusted harness by choosing the workflow run ref.
366
+ Do not use `--ref main -f ref=<sha>` for exact commit proof on moving `main`;
367
+ raw commit SHAs cannot be workflow dispatch refs, so use
368
+ `pnpm ci:full-release --sha <sha>` to create the pinned temporary branch.
369
+
370
+ Use `release_profile` to select live/provider breadth:
371
+
372
+ - `minimum`: fastest release-critical OpenAI/core live and Docker path
373
+ - `stable`: minimum plus stable provider/backend coverage for release approval
374
+ - `full`: stable plus broad advisory provider/media coverage
375
+
376
+ Use `run_release_soak=true` with `stable` when the release-blocking lanes are
377
+ green and you want the exhaustive live/E2E, Docker release-path, and
378
+ bounded published upgrade-survivor sweep before promotion. That sweep covers
379
+ the latest four stable packages plus pinned `2026.4.23` and `2026.5.2`
380
+ baselines plus older `2026.4.15` coverage, with duplicate baselines removed and
381
+ each baseline sharded into its own Docker runner job. `full` implies
382
+ `run_release_soak=true`.
383
+
384
+ `Nodmix Release Checks` uses the trusted workflow ref to resolve the target
385
+ ref once as `release-package-under-test` and reuses that artifact in cross-OS,
386
+ Package Acceptance, and release-path Docker checks when soak runs. This keeps
387
+ all package-facing boxes on the same bytes and avoids repeated package builds.
388
+ After a beta is already on npm, set `release_package_spec=nodmix@YYYY.M.D-beta.N`
389
+ so release checks download the shipped package once, extract its build source
390
+ SHA from `dist/build-info.json`, and reuse that artifact for cross-OS,
391
+ Package Acceptance, release-path Docker, and package Telegram lanes.
392
+ The cross-OS OpenAI install smoke uses `NODMIX_CROSS_OS_OPENAI_MODEL` when the
393
+ repo/org variable is set, otherwise `openai/gpt-5.4`, because this lane is
394
+ proving package install, onboarding, gateway startup, and one live agent turn
395
+ rather than benchmarking the slowest default model. The broader live provider
396
+ matrix remains the place for model-specific coverage.
397
+
398
+ Use these variants depending on release stage:
399
+
400
+ ```bash
401
+ # Validate an unpublished release candidate branch.
402
+ gh workflow run full-release-validation.yml \
403
+ --ref main \
404
+ -f ref=release/YYYY.M.D \
405
+ -f provider=openai \
406
+ -f mode=both \
407
+ -f release_profile=stable
408
+
409
+ # Validate an exact pushed commit.
410
+ gh workflow run full-release-validation.yml \
411
+ --ref main \
412
+ -f ref=<40-char-sha> \
413
+ -f provider=openai \
414
+ -f mode=both
415
+
416
+ # After publishing a beta, add published-package Telegram E2E.
417
+ gh workflow run full-release-validation.yml \
418
+ --ref main \
419
+ -f ref=release/YYYY.M.D \
420
+ -f provider=openai \
421
+ -f mode=both \
422
+ -f release_profile=full \
423
+ -f release_package_spec=nodmix@YYYY.M.D-beta.N \
424
+ -f evidence_package_spec=nodmix@YYYY.M.D-beta.N \
425
+ -f npm_telegram_provider_mode=mock-openai
426
+ ```
427
+
428
+ Do not use the full umbrella as the first rerun after a focused fix. If one box
429
+ fails, use the failed child workflow, job, Docker lane, package profile, model
430
+ provider, or QA lane for the next proof. Run the full umbrella again only when
431
+ the fix changed shared release orchestration or made earlier all-box evidence
432
+ stale. The umbrella's final verifier re-checks the recorded child workflow run
433
+ ids, so after a child workflow is rerun successfully, rerun only the failed
434
+ `Verify full validation` parent job.
435
+
436
+ For bounded recovery, pass `rerun_group` to the umbrella. `all` is the real
437
+ release-candidate run, `ci` runs only the normal CI child, `plugin-prerelease`
438
+ runs only the release-only plugin child, `release-checks` runs every release
439
+ box, and the narrower release groups are `install-smoke`, `cross-os`,
440
+ `live-e2e`, `package`, `qa`, `qa-parity`, `qa-live`, and `npm-telegram`.
441
+ Focused `npm-telegram` reruns require `release_package_spec` or
442
+ `npm_telegram_package_spec`; full/all runs with `release_profile=full` use the
443
+ release-checks package artifact. Focused
444
+ cross-OS reruns can add `cross_os_suite_filter=windows/packaged-upgrade` or
445
+ another OS/suite filter. QA release-check failures are advisory except the
446
+ standard runtime tool coverage gate, which blocks release validation when
447
+ required Nodmix dynamic tools drift or disappear from the standard tier
448
+ summary.
449
+
450
+ ### Vitest
451
+
452
+ The Vitest box is the manual `CI` child workflow. Manual CI intentionally
453
+ bypasses changed scoping and forces the normal test graph for the release
454
+ candidate: Linux Node shards, bundled-plugin shards, plugin and channel contract
455
+ shards, Node 22 compatibility, `check-*`, `check-additional-*`,
456
+ built-artifact smoke checks, docs checks, Python skills, Windows, macOS,
457
+ Android, and Control UI i18n.
458
+
459
+ Use this box to answer "did the source tree pass the full normal test suite?"
460
+ It is not the same as release-path product validation. Evidence to keep:
461
+
462
+ - `Full Release Validation` summary showing the dispatched `CI` run URL
463
+ - `CI` run green on the exact target SHA
464
+ - failed or slow shard names from the CI jobs when investigating regressions
465
+ - Vitest timing artifacts such as `.artifacts/vitest-shard-timings.json` when
466
+ a run needs performance analysis
467
+
468
+ Run manual CI directly only when the release needs deterministic normal CI but
469
+ not the Docker, QA Lab, live, cross-OS, or package boxes:
470
+
471
+ ```bash
472
+ gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
473
+ ```
474
+
475
+ ### Docker
476
+
477
+ The Docker box lives in `Nodmix Release Checks` through
478
+ `nodmix-live-and-e2e-checks-reusable.yml`, plus the release-mode
479
+ `install-smoke` workflow. It validates the release candidate through packaged
480
+ Docker environments instead of only source-level tests.
481
+
482
+ Release Docker coverage includes:
483
+
484
+ - full install smoke with the slow Bun global install smoke enabled
485
+ - root Dockerfile smoke image preparation/reuse by target SHA, with QR,
486
+ root/gateway, and installer/Bun smoke jobs running as separate install-smoke
487
+ shards
488
+ - repository E2E lanes
489
+ - release-path Docker chunks: `core`, `package-update-openai`,
490
+ `package-update-anthropic`, `package-update-core`, `plugins-runtime-plugins`,
491
+ `plugins-runtime-services`,
492
+ `plugins-runtime-install-a`, `plugins-runtime-install-b`,
493
+ `plugins-runtime-install-c`, `plugins-runtime-install-d`,
494
+ `plugins-runtime-install-e`, `plugins-runtime-install-f`,
495
+ `plugins-runtime-install-g`, and `plugins-runtime-install-h`
496
+ - OpenWebUI coverage inside the `plugins-runtime-services` chunk when requested
497
+ - split bundled plugin install/uninstall lanes
498
+ `bundled-plugin-install-uninstall-0` through
499
+ `bundled-plugin-install-uninstall-23`
500
+ - live/E2E provider suites and Docker live model coverage when release checks
501
+ include live suites
502
+
503
+ Use Docker artifacts before rerunning. The release-path scheduler uploads
504
+ `.artifacts/docker-tests/` with lane logs, `summary.json`, `failures.json`,
505
+ phase timings, scheduler plan JSON, and rerun commands. For focused recovery,
506
+ use `docker_lanes=<lane[,lane]>` on the reusable live/E2E workflow instead of
507
+ rerunning all release chunks. Generated rerun commands include prior
508
+ `package_artifact_run_id` and prepared Docker image inputs when available, so a
509
+ failed lane can reuse the same tarball and GHCR images.
510
+
511
+ ### QA Lab
512
+
513
+ The QA Lab box is also part of `Nodmix Release Checks`. It is the agentic
514
+ behavior and channel-level release gate, separate from Vitest and Docker
515
+ package mechanics.
516
+
517
+ Release QA Lab coverage includes:
518
+
519
+ - mock parity lane comparing the OpenAI candidate lane against the Opus 4.6
520
+ baseline using the agentic parity pack
521
+ - fast live Matrix QA profile using the `qa-live-shared` environment
522
+ - live Telegram QA lane using Convex CI credential leases
523
+ - `pnpm qa:otel:smoke` when release telemetry needs explicit local proof
524
+
525
+ Use this box to answer "does the release behave correctly in QA scenarios and
526
+ live channel flows?" Keep the artifact URLs for parity, Matrix, and Telegram
527
+ lanes when approving the release. Full Matrix coverage remains available as a
528
+ manual sharded QA-Lab run rather than the default release-critical lane.
529
+
530
+ ### Package
531
+
532
+ The Package box is the installable-product gate. It is backed by
533
+ `Package Acceptance` and the resolver
534
+ `scripts/resolve-nodmix-package-candidate.mjs`. The resolver normalizes a
535
+ candidate into the `package-under-test` tarball consumed by Docker E2E, validates
536
+ the package inventory, records the package version and SHA-256, and keeps the
537
+ workflow harness ref separate from the package source ref.
538
+
539
+ Supported candidate sources:
540
+
541
+ - `source=npm`: `nodmix@beta`, `nodmix@latest`, or an exact Nodmix release
542
+ version
543
+ - `source=ref`: pack a trusted `package_ref` branch, tag, or full commit SHA
544
+ with the selected `workflow_ref` harness
545
+ - `source=url`: download an HTTPS `.tgz` with required `package_sha256`
546
+ - `source=artifact`: reuse a `.tgz` uploaded by another GitHub Actions run
547
+
548
+ `Nodmix Release Checks` runs Package Acceptance with `source=artifact`, the
549
+ prepared release package artifact, `suite_profile=custom`,
550
+ `docker_lanes=doctor-switch update-channel-switch skill-install update-corrupt-plugin upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update`,
551
+ `telegram_mode=mock-openai`. Package Acceptance keeps migration, update,
552
+ configured-auth update restart, live ClawHub skill install, stale plugin dependency cleanup, offline plugin
553
+ fixtures, plugin update, and Telegram package QA against the same resolved
554
+ tarball. Blocking release checks use the default latest published package
555
+ baseline; `run_release_soak=true` or
556
+ `release_profile=full` expands to every stable npm-published baseline from
557
+ `2026.4.23` through `latest` plus reported-issue fixtures. Use
558
+ Package Acceptance with `source=npm` for an already shipped candidate, or
559
+ `source=ref`/`source=artifact` for a SHA-backed local npm tarball before
560
+ publish. It is the GitHub-native
561
+ replacement for most of the package/update coverage that previously required
562
+ Parallels. Cross-OS release checks still matter for OS-specific onboarding,
563
+ installer, and platform behavior, but package/update product validation should
564
+ prefer Package Acceptance.
565
+
566
+ The canonical checklist for update and plugin validation is
567
+ [Testing updates and plugins](/help/testing-updates-plugins). Use it when
568
+ deciding which local, Docker, Package Acceptance, or release-check lane proves a
569
+ plugin install/update, doctor cleanup, or published-package migration change.
570
+ Exhaustive published update migration from every stable `2026.4.23+` package is
571
+ a separate manual `Update Migration` workflow, not part of Full Release CI.
572
+
573
+ Legacy package-acceptance leniency is intentionally time boxed. Packages through
574
+ `2026.4.25` may use the compatibility path for metadata gaps already published
575
+ to npm: private QA inventory entries missing from the tarball, missing
576
+ `gateway install --wrapper`, missing patch files in the tarball-derived git
577
+ fixture, missing persisted `update.channel`, legacy plugin install-record
578
+ locations, missing marketplace install-record persistence, and config metadata
579
+ migration during `plugins update`. The published `2026.4.26` package may warn
580
+ for local build metadata stamp files that were already shipped. Later packages
581
+ must satisfy the modern package contracts; those same gaps fail release
582
+ validation.
583
+
584
+ Use broader Package Acceptance profiles when the release question is about an
585
+ actual installable package:
586
+
587
+ ```bash
588
+ gh workflow run package-acceptance.yml \
589
+ --ref main \
590
+ -f workflow_ref=main \
591
+ -f source=npm \
592
+ -f package_spec=nodmix@beta \
593
+ -f suite_profile=product \
594
+ -f published_upgrade_survivor_baseline=nodmix@2026.4.26
595
+ ```
596
+
597
+ Common package profiles:
598
+
599
+ - `smoke`: quick package install/channel/agent, gateway network, and config
600
+ reload lanes
601
+ - `package`: install/update/restart/plugin package contracts plus live ClawHub
602
+ skill install proof; this is the release-check default
603
+ - `product`: `package` plus MCP channels, cron/subagent cleanup, OpenAI web
604
+ search, and OpenWebUI
605
+ - `full`: Docker release-path chunks with OpenWebUI
606
+ - `custom`: exact `docker_lanes` list for focused reruns
607
+
608
+ For package-candidate Telegram proof, enable `telegram_mode=mock-openai` or
609
+ `telegram_mode=live-frontier` on Package Acceptance. The workflow passes the
610
+ resolved `package-under-test` tarball into the Telegram lane; the standalone
611
+ Telegram workflow still accepts a published npm spec for post-publish checks.
612
+
613
+ ## Release publish automation
614
+
615
+ `Nodmix Release Publish` is the normal mutating publish entrypoint. It
616
+ orchestrates the trusted-publisher workflows in the order the release needs:
617
+
618
+ 1. Check out the release tag and resolve its commit SHA.
619
+ 2. Verify the tag is reachable from `main` or `release/*`.
620
+ 3. Run `pnpm plugins:sync:check`.
621
+ 4. Dispatch `Plugin NPM Release` with `publish_scope=all-publishable` and
622
+ `ref=<release-sha>`.
623
+ 5. Dispatch `Plugin ClawHub Release` with the same scope and SHA.
624
+ 6. Dispatch `Nodmix NPM Release` with the release tag, npm dist-tag, and
625
+ saved `preflight_run_id`.
626
+
627
+ Beta publish example:
628
+
629
+ ```bash
630
+ gh workflow run nodmix-release-publish.yml \
631
+ --ref release/YYYY.M.D \
632
+ -f tag=vYYYY.M.D-beta.N \
633
+ -f preflight_run_id=<successful-nodmix-npm-preflight-run-id> \
634
+ -f npm_dist_tag=beta
635
+ ```
636
+
637
+ Stable publish to the default beta dist-tag:
638
+
639
+ ```bash
640
+ gh workflow run nodmix-release-publish.yml \
641
+ --ref release/YYYY.M.D \
642
+ -f tag=vYYYY.M.D \
643
+ -f preflight_run_id=<successful-nodmix-npm-preflight-run-id> \
644
+ -f npm_dist_tag=beta
645
+ ```
646
+
647
+ Stable promotion directly to `latest` is explicit:
648
+
649
+ ```bash
650
+ gh workflow run nodmix-release-publish.yml \
651
+ --ref release/YYYY.M.D \
652
+ -f tag=vYYYY.M.D \
653
+ -f preflight_run_id=<successful-nodmix-npm-preflight-run-id> \
654
+ -f npm_dist_tag=latest
655
+ ```
656
+
657
+ Use the lower-level `Plugin NPM Release` and `Plugin ClawHub Release` workflows
658
+ only for focused repair or republish work. For a selected plugin repair, pass
659
+ `plugin_publish_scope=selected` and `plugins=@nodmix/name` to
660
+ `Nodmix Release Publish`, or dispatch the child workflow directly when the
661
+ Nodmix package must not be published.
662
+
663
+ ## NPM workflow inputs
664
+
665
+ `Nodmix NPM Release` accepts these operator-controlled inputs:
666
+
667
+ - `tag`: required release tag such as `v2026.4.2`, `v2026.4.2-1`, or
668
+ `v2026.4.2-beta.1`; when `preflight_only=true`, it may also be the current
669
+ full 40-character workflow-branch commit SHA for validation-only preflight
670
+ - `preflight_only`: `true` for validation/build/package only, `false` for the
671
+ real publish path
672
+ - `preflight_run_id`: required on the real publish path so the workflow reuses
673
+ the prepared tarball from the successful preflight run
674
+ - `npm_dist_tag`: npm target tag for the publish path; defaults to `beta`
675
+
676
+ `Nodmix Release Publish` accepts these operator-controlled inputs:
677
+
678
+ - `tag`: required release tag; must already exist
679
+ - `preflight_run_id`: successful `Nodmix NPM Release` preflight run id;
680
+ required when `publish_nodmix_npm=true`
681
+ - `npm_dist_tag`: npm target tag for the Nodmix package
682
+ - `plugin_publish_scope`: defaults to `all-publishable`; use `selected` only
683
+ for focused repair work
684
+ - `plugins`: comma-separated `@nodmix/*` package names when
685
+ `plugin_publish_scope=selected`
686
+ - `publish_nodmix_npm`: defaults to `true`; set `false` only when using the
687
+ workflow as a plugin-only repair orchestrator
688
+ - `wait_for_clawhub`: defaults to `false` so npm availability is not blocked by
689
+ the ClawHub sidecar; set `true` only when workflow completion must include
690
+ ClawHub completion
691
+
692
+ `Nodmix Release Checks` accepts these operator-controlled inputs:
693
+
694
+ - `ref`: branch, tag, or full commit SHA to validate. Secret-bearing checks
695
+ require the resolved commit to be reachable from an Nodmix branch or
696
+ release tag.
697
+ - `run_release_soak`: opt into exhaustive live/E2E, Docker release-path, and
698
+ all-since upgrade-survivor soak on stable/default release checks. It is forced
699
+ on by `release_profile=full`.
700
+
701
+ Rules:
702
+
703
+ - Stable and correction tags may publish to either `beta` or `latest`
704
+ - Beta prerelease tags may publish only to `beta`
705
+ - For `Nodmix NPM Release`, full commit SHA input is allowed only when
706
+ `preflight_only=true`
707
+ - `Nodmix Release Checks` and `Full Release Validation` are always
708
+ validation-only
709
+ - The real publish path must use the same `npm_dist_tag` used during preflight;
710
+ the workflow verifies that metadata before publish continues
711
+
712
+ ## Stable npm release sequence
713
+
714
+ When cutting a stable npm release:
715
+
716
+ 1. Run `Nodmix NPM Release` with `preflight_only=true`
717
+ - Before a tag exists, you may use the current full workflow-branch commit
718
+ SHA for a validation-only dry run of the preflight workflow
719
+ 2. Choose `npm_dist_tag=beta` for the normal beta-first flow, or `latest` only
720
+ when you intentionally want a direct stable publish
721
+ 3. Run `Full Release Validation` on the release branch, release tag, or full
722
+ commit SHA when you want normal CI plus live prompt cache, Docker, QA Lab,
723
+ Matrix, and Telegram coverage from one manual workflow
724
+ 4. If you intentionally only need the deterministic normal test graph, run the
725
+ manual `CI` workflow on the release ref instead
726
+ 5. Save the successful `preflight_run_id`
727
+ 6. Run `Nodmix Release Publish` with the same `tag`, the same `npm_dist_tag`,
728
+ and the saved `preflight_run_id`; it publishes externalized plugins to npm
729
+ and ClawHub before promoting the Nodmix npm package
730
+ 7. If the release landed on `beta`, use the private
731
+ `nodmix/releases-private/.github/workflows/nodmix-npm-dist-tags.yml`
732
+ workflow to promote that stable version from `beta` to `latest`
733
+ 8. If the release intentionally published directly to `latest` and `beta`
734
+ should follow the same stable build immediately, use that same private
735
+ workflow to point both dist-tags at the stable version, or let its scheduled
736
+ self-healing sync move `beta` later
737
+
738
+ The dist-tag mutation lives in the private repo for security because it still
739
+ requires `NPM_TOKEN`, while the public repo keeps OIDC-only publish.
740
+
741
+ That keeps the direct publish path and the beta-first promotion path both
742
+ documented and operator-visible.
743
+
744
+ If a maintainer must fall back to local npm authentication, run any 1Password
745
+ CLI (`op`) commands only inside a dedicated tmux session. Do not call `op`
746
+ directly from the main agent shell; keeping it inside tmux makes prompts,
747
+ alerts, and OTP handling observable and prevents repeated host alerts.
748
+
749
+ ## Public references
750
+
751
+ - [`.github/workflows/full-release-validation.yml`](https://github.com/nodmix/nodmix/blob/main/.github/workflows/full-release-validation.yml)
752
+ - [`.github/workflows/package-acceptance.yml`](https://github.com/nodmix/nodmix/blob/main/.github/workflows/package-acceptance.yml)
753
+ - [`.github/workflows/nodmix-npm-release.yml`](https://github.com/nodmix/nodmix/blob/main/.github/workflows/nodmix-npm-release.yml)
754
+ - [`.github/workflows/nodmix-release-checks.yml`](https://github.com/nodmix/nodmix/blob/main/.github/workflows/nodmix-release-checks.yml)
755
+ - [`.github/workflows/nodmix-cross-os-release-checks-reusable.yml`](https://github.com/nodmix/nodmix/blob/main/.github/workflows/nodmix-cross-os-release-checks-reusable.yml)
756
+ - [`scripts/resolve-nodmix-package-candidate.mjs`](https://github.com/nodmix/nodmix/blob/main/scripts/resolve-nodmix-package-candidate.mjs)
757
+ - [`scripts/nodmix-npm-release-check.ts`](https://github.com/nodmix/nodmix/blob/main/scripts/nodmix-npm-release-check.ts)
758
+ - [`scripts/package-mac-dist.sh`](https://github.com/nodmix/nodmix/blob/main/scripts/package-mac-dist.sh)
759
+ - [`scripts/make_appcast.sh`](https://github.com/nodmix/nodmix/blob/main/scripts/make_appcast.sh)
760
+
761
+ Maintainers use the private release docs in
762
+ [`nodmix/maintainers/release/README.md`](https://github.com/nodmix/maintainers/blob/main/release/README.md)
763
+ for the actual runbook.
764
+
765
+ ## Related
766
+
767
+ - [Release channels](/install/development-channels)