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,501 @@
1
+ ---
2
+ summary: "Import map, registration API reference, and SDK architecture"
3
+ title: "Plugin SDK overview"
4
+ sidebarTitle: "Plugin SDK overview"
5
+ read_when:
6
+ - You need to know which SDK subpath to import from
7
+ - You want a reference for all registration methods on NodmixPluginApi
8
+ - You are looking up a specific SDK export
9
+ ---
10
+
11
+ The plugin SDK is the typed contract between plugins and core. This page is the
12
+ reference for **what to import** and **what you can register**.
13
+
14
+ <Note>
15
+ This page is for plugin authors using `nodmix/plugin-sdk/*` inside
16
+ Nodmix. For external apps, scripts, dashboards, CI jobs, and IDE extensions
17
+ that want to run agents through the Gateway, use the
18
+ [Nodmix App SDK](/concepts/nodmix-sdk) and the `@nodmix/sdk` package
19
+ instead.
20
+ </Note>
21
+
22
+ <Tip>
23
+ Looking for a how-to guide instead? Start with [Building plugins](/plugins/building-plugins), use [Channel plugins](/plugins/sdk-channel-plugins) for channel plugins, [Provider plugins](/plugins/sdk-provider-plugins) for provider plugins, [CLI backend plugins](/plugins/cli-backend-plugins) for local AI CLI backends, and [Plugin hooks](/plugins/hooks) for tool or lifecycle hook plugins.
24
+ </Tip>
25
+
26
+ ## Import convention
27
+
28
+ Always import from a specific subpath:
29
+
30
+ ```typescript
31
+ import { definePluginEntry } from "nodmix/plugin-sdk/plugin-entry";
32
+ import { defineChannelPluginEntry } from "nodmix/plugin-sdk/channel-core";
33
+ ```
34
+
35
+ Each subpath is a small, self-contained module. This keeps startup fast and
36
+ prevents circular dependency issues. For channel-specific entry/build helpers,
37
+ prefer `nodmix/plugin-sdk/channel-core`; keep `nodmix/plugin-sdk/core` for
38
+ the broader umbrella surface and shared helpers such as
39
+ `buildChannelConfigSchema`.
40
+
41
+ For channel config, publish the channel-owned JSON Schema through
42
+ `nodmix.plugin.json#channelConfigs`. The `plugin-sdk/channel-config-schema`
43
+ subpath is for shared schema primitives and the generic builder. Nodmix's
44
+ bundled plugins use `plugin-sdk/bundled-channel-config-schema` for retained
45
+ bundled-channel schemas. Deprecated compatibility exports remain on
46
+ `plugin-sdk/channel-config-schema-legacy`; neither bundled schema subpath is a
47
+ pattern for new plugins.
48
+
49
+ <Warning>
50
+ Do not import provider- or channel-branded convenience seams (for example
51
+ `nodmix/plugin-sdk/slack`, `.../discord`, `.../signal`, `.../whatsapp`).
52
+ Bundled plugins compose generic SDK subpaths inside their own `api.ts` /
53
+ `runtime-api.ts` barrels; core consumers should either use those plugin-local
54
+ barrels or add a narrow generic SDK contract when a need is truly
55
+ cross-channel.
56
+
57
+ A small set of bundled-plugin helper seams still appear in the generated export
58
+ map when they have tracked owner usage. They exist for bundled-plugin
59
+ maintenance only and are not recommended import paths for new third-party
60
+ plugins.
61
+
62
+ `nodmix/plugin-sdk/discord` and `nodmix/plugin-sdk/telegram-account` are
63
+ also kept as deprecated compatibility facades for tracked owner usage. Do not
64
+ copy those import paths into new plugins; use injected runtime helpers and
65
+ generic channel SDK subpaths instead.
66
+ </Warning>
67
+
68
+ ## Subpath reference
69
+
70
+ The plugin SDK is exposed as a set of narrow subpaths grouped by area (plugin
71
+ entry, channel, provider, auth, runtime, capability, memory, and reserved
72
+ bundled-plugin helpers). For the full catalog — grouped and linked — see
73
+ [Plugin SDK subpaths](/plugins/sdk-subpaths).
74
+
75
+ The compiler entrypoint inventory lives in
76
+ `scripts/lib/plugin-sdk-entrypoints.json`; package exports are generated from
77
+ the public subset after subtracting repo-local test/internal subpaths listed in
78
+ `scripts/lib/plugin-sdk-private-local-only-subpaths.json`. Run
79
+ `pnpm plugin-sdk:surface` to audit the public export count. Deprecated public
80
+ subpaths that are old enough and unused by bundled extension production code are
81
+ tracked in `scripts/lib/plugin-sdk-deprecated-public-subpaths.json`; broad
82
+ deprecated re-export barrels are tracked in
83
+ `scripts/lib/plugin-sdk-deprecated-barrel-subpaths.json`.
84
+
85
+ ## Registration API
86
+
87
+ The `register(api)` callback receives an `NodmixPluginApi` object with these
88
+ methods:
89
+
90
+ ### Capability registration
91
+
92
+ | Method | What it registers |
93
+ | ------------------------------------------------ | ------------------------------------- |
94
+ | `api.registerProvider(...)` | Text inference (LLM) |
95
+ | `api.registerAgentHarness(...)` | Experimental low-level agent executor |
96
+ | `api.registerCliBackend(...)` | Local CLI inference backend |
97
+ | `api.registerChannel(...)` | Messaging channel |
98
+ | `api.registerSpeechProvider(...)` | Text-to-speech / STT synthesis |
99
+ | `api.registerRealtimeTranscriptionProvider(...)` | Streaming realtime transcription |
100
+ | `api.registerRealtimeVoiceProvider(...)` | Duplex realtime voice sessions |
101
+ | `api.registerMediaUnderstandingProvider(...)` | Image/audio/video analysis |
102
+ | `api.registerImageGenerationProvider(...)` | Image generation |
103
+ | `api.registerMusicGenerationProvider(...)` | Music generation |
104
+ | `api.registerVideoGenerationProvider(...)` | Video generation |
105
+ | `api.registerWebFetchProvider(...)` | Web fetch / scrape provider |
106
+ | `api.registerWebSearchProvider(...)` | Web search |
107
+
108
+ ### Tools and commands
109
+
110
+ Use [`defineToolPlugin`](/plugins/tool-plugins) for simple tool-only plugins
111
+ with fixed tool names. Use `api.registerTool(...)` directly for mixed plugins
112
+ or fully dynamic tool registration.
113
+
114
+ | Method | What it registers |
115
+ | ------------------------------- | --------------------------------------------- |
116
+ | `api.registerTool(tool, opts?)` | Agent tool (required or `{ optional: true }`) |
117
+ | `api.registerCommand(def)` | Custom command (bypasses the LLM) |
118
+
119
+ Plugin commands can set `agentPromptGuidance` when the agent needs a short,
120
+ command-owned routing hint. Keep that text about the command itself; do not add
121
+ provider- or plugin-specific policy to core prompt builders.
122
+
123
+ Guidance entries may be legacy strings, which apply to every prompt surface, or
124
+ structured entries:
125
+
126
+ ```ts
127
+ agentPromptGuidance: [
128
+ "Global command hint.",
129
+ { text: "Only show this in the main PI prompt.", surfaces: ["pi_main"] },
130
+ ];
131
+ ```
132
+
133
+ Structured `surfaces` may include `pi_main`, `codex_app_server`, `cli_backend`,
134
+ `acp_backend`, or `subagent`. Omit `surfaces` for intentional all-surface
135
+ guidance. Do not pass an empty `surfaces` array; it is rejected so accidental
136
+ scope loss does not become global prompt text.
137
+
138
+ Native Codex app-server developer instructions are stricter than other prompt
139
+ surfaces: only guidance explicitly scoped to `codex_app_server` is promoted into
140
+ that higher-priority lane. Legacy string guidance and unscoped structured
141
+ guidance remain available to non-Codex prompt surfaces for compatibility.
142
+
143
+ ### Infrastructure
144
+
145
+ | Method | What it registers |
146
+ | ---------------------------------------------- | --------------------------------------- |
147
+ | `api.registerHook(events, handler, opts?)` | Event hook |
148
+ | `api.registerHttpRoute(params)` | Gateway HTTP endpoint |
149
+ | `api.registerGatewayMethod(name, handler)` | Gateway RPC method |
150
+ | `api.registerGatewayDiscoveryService(service)` | Local Gateway discovery advertiser |
151
+ | `api.registerCli(registrar, opts?)` | CLI subcommand |
152
+ | `api.registerNodeCliFeature(registrar, opts?)` | Node feature CLI under `nodmix nodes` |
153
+ | `api.registerService(service)` | Background service |
154
+ | `api.registerInteractiveHandler(registration)` | Interactive handler |
155
+ | `api.registerAgentToolResultMiddleware(...)` | Runtime tool-result middleware |
156
+ | `api.registerMemoryPromptSupplement(builder)` | Additive memory-adjacent prompt section |
157
+ | `api.registerMemoryCorpusSupplement(adapter)` | Additive memory search/read corpus |
158
+
159
+ ### Host hooks for workflow plugins
160
+
161
+ Host hooks are the SDK seams for plugins that need to participate in the host
162
+ lifecycle rather than only adding a provider, channel, or tool. They are
163
+ generic contracts; Plan Mode can use them, but so can approval workflows,
164
+ workspace policy gates, background monitors, setup wizards, and UI companion
165
+ plugins.
166
+
167
+ | Method | Contract it owns |
168
+ | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
169
+ | `api.session.state.registerSessionExtension(...)` | Plugin-owned, JSON-compatible session state projected through Gateway sessions |
170
+ | `api.session.workflow.enqueueNextTurnInjection(...)` | Durable exactly-once context injected into the next agent turn for one session |
171
+ | `api.registerTrustedToolPolicy(...)` | Bundled/trusted pre-plugin tool policy that can block or rewrite tool params |
172
+ | `api.registerToolMetadata(...)` | Tool catalog display metadata without changing the tool implementation |
173
+ | `api.registerCommand(...)` | Scoped plugin commands; command results can set `continueAgent: true`; Discord native commands support `descriptionLocalizations` |
174
+ | `api.session.controls.registerControlUiDescriptor(...)` | Control UI contribution descriptors for session, tool, run, or settings surfaces |
175
+ | `api.lifecycle.registerRuntimeLifecycle(...)` | Cleanup callbacks for plugin-owned runtime resources on reset/delete/reload paths |
176
+ | `api.agent.events.registerAgentEventSubscription(...)` | Sanitized event subscriptions for workflow state and monitors |
177
+ | `api.runContext.setRunContext(...)` / `getRunContext(...)` / `clearRunContext(...)` | Per-run plugin scratch state cleared on terminal run lifecycle |
178
+ | `api.session.workflow.registerSessionSchedulerJob(...)` | Cleanup metadata for plugin-owned scheduler jobs; does not schedule work or create task records |
179
+ | `api.session.workflow.sendSessionAttachment(...)` | Bundled-only host-mediated file attachment delivery to the active direct-outbound session route |
180
+ | `api.session.workflow.scheduleSessionTurn(...)` / `unscheduleSessionTurnsByTag(...)` | Bundled-only Cron-backed scheduled session turns plus tag-based cleanup |
181
+ | `api.session.controls.registerSessionAction(...)` | Typed session actions clients can dispatch through the Gateway |
182
+
183
+ Use the grouped namespaces for new plugin code:
184
+
185
+ - `api.session.state.registerSessionExtension(...)`
186
+ - `api.session.workflow.enqueueNextTurnInjection(...)`
187
+ - `api.session.workflow.registerSessionSchedulerJob(...)`
188
+ - `api.session.workflow.sendSessionAttachment(...)`
189
+ - `api.session.workflow.scheduleSessionTurn(...)`
190
+ - `api.session.workflow.unscheduleSessionTurnsByTag(...)`
191
+ - `api.session.controls.registerSessionAction(...)`
192
+ - `api.session.controls.registerControlUiDescriptor(...)`
193
+ - `api.agent.events.registerAgentEventSubscription(...)`
194
+ - `api.agent.events.emitAgentEvent(...)`
195
+ - `api.runContext.setRunContext(...)` / `getRunContext(...)` / `clearRunContext(...)`
196
+ - `api.lifecycle.registerRuntimeLifecycle(...)`
197
+
198
+ The equivalent flat methods remain available as deprecated compatibility
199
+ aliases for existing plugins. Do not add new plugin code that calls
200
+ `api.registerSessionExtension`, `api.enqueueNextTurnInjection`,
201
+ `api.registerControlUiDescriptor`, `api.registerRuntimeLifecycle`,
202
+ `api.registerAgentEventSubscription`, `api.emitAgentEvent`,
203
+ `api.setRunContext`, `api.getRunContext`, `api.clearRunContext`,
204
+ `api.registerSessionSchedulerJob`, `api.registerSessionAction`,
205
+ `api.sendSessionAttachment`, `api.scheduleSessionTurn`, or
206
+ `api.unscheduleSessionTurnsByTag` directly.
207
+
208
+ `scheduleSessionTurn(...)` is a session-scoped convenience over the Gateway
209
+ Cron scheduler. Cron owns timing and creates the background task record when the
210
+ turn runs; the Plugin SDK only constrains the target session, plugin-owned
211
+ naming, and cleanup. Use `api.runtime.tasks.managedFlows` inside the scheduled
212
+ turn when the work itself needs durable multi-step Task Flow state.
213
+
214
+ The contracts intentionally split authority:
215
+
216
+ - External plugins can own session extensions, UI descriptors, commands, tool
217
+ metadata, next-turn injections, and normal hooks.
218
+ - Trusted tool policies run before ordinary `before_tool_call` hooks and are
219
+ bundled-only because they participate in host safety policy.
220
+ - Reserved command ownership is bundled-only. External plugins should use their
221
+ own command names or aliases.
222
+ - `allowPromptInjection=false` disables prompt-mutating hooks including
223
+ `agent_turn_prepare`, `before_prompt_build`, `heartbeat_prompt_contribution`,
224
+ prompt fields from legacy `before_agent_start`, and
225
+ `enqueueNextTurnInjection`.
226
+
227
+ Examples of non-Plan consumers:
228
+
229
+ | Plugin archetype | Hooks used |
230
+ | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
231
+ | Approval workflow | Session extension, command continuation, next-turn injection, UI descriptor |
232
+ | Budget/workspace policy gate | Trusted tool policy, tool metadata, session projection |
233
+ | Background lifecycle monitor | Runtime lifecycle cleanup, agent event subscription, session scheduler ownership/cleanup, heartbeat prompt contribution, UI descriptor |
234
+ | Setup or onboarding wizard | Session extension, scoped commands, Control UI descriptor |
235
+
236
+ <Note>
237
+ Reserved core admin namespaces (`config.*`, `exec.approvals.*`, `wizard.*`,
238
+ `update.*`) always stay `operator.admin`, even if a plugin tries to assign a
239
+ narrower gateway method scope. Prefer plugin-specific prefixes for
240
+ plugin-owned methods.
241
+ </Note>
242
+
243
+ <Accordion title="When to use tool-result middleware">
244
+ Bundled plugins can use `api.registerAgentToolResultMiddleware(...)` when
245
+ they need to rewrite a tool result after execution and before the runtime
246
+ feeds that result back into the model. This is the trusted runtime-neutral
247
+ seam for async output reducers such as tokenjuice.
248
+
249
+ Bundled plugins must declare `contracts.agentToolResultMiddleware` for each
250
+ targeted runtime, for example `["pi", "codex"]`. External plugins
251
+ cannot register this middleware; keep normal Nodmix plugin hooks for work
252
+ that does not need pre-model tool-result timing. The old Pi-only embedded
253
+ extension factory registration path has been removed.
254
+ </Accordion>
255
+
256
+ ### Gateway discovery registration
257
+
258
+ `api.registerGatewayDiscoveryService(...)` lets a plugin advertise the active
259
+ Gateway on a local discovery transport such as mDNS/Bonjour. Nodmix calls the
260
+ service during Gateway startup when local discovery is enabled, passes the
261
+ current Gateway ports and non-secret TXT hint data, and calls the returned
262
+ `stop` handler during Gateway shutdown.
263
+
264
+ ```typescript
265
+ api.registerGatewayDiscoveryService({
266
+ id: "my-discovery",
267
+ async advertise(ctx) {
268
+ const handle = await startMyAdvertiser({
269
+ gatewayPort: ctx.gatewayPort,
270
+ tls: ctx.gatewayTlsEnabled,
271
+ displayName: ctx.machineDisplayName,
272
+ });
273
+ return { stop: () => handle.stop() };
274
+ },
275
+ });
276
+ ```
277
+
278
+ Gateway discovery plugins must not treat advertised TXT values as secrets or
279
+ authentication. Discovery is a routing hint; Gateway auth and TLS pinning still
280
+ own trust.
281
+
282
+ ### CLI registration metadata
283
+
284
+ `api.registerCli(registrar, opts?)` accepts two kinds of command metadata:
285
+
286
+ - `commands`: explicit command names owned by the registrar
287
+ - `descriptors`: parse-time command descriptors used for CLI help,
288
+ routing, and lazy plugin CLI registration
289
+ - `parentPath`: optional parent command path for nested command groups, such as
290
+ `["nodes"]`
291
+
292
+ For paired-node features, prefer
293
+ `api.registerNodeCliFeature(registrar, opts?)`. It is a small wrapper around
294
+ `api.registerCli(..., { parentPath: ["nodes"] })` and makes commands such as
295
+ `nodmix nodes canvas` explicit plugin-owned node features.
296
+
297
+ If you want a plugin command to stay lazy-loaded in the normal root CLI path,
298
+ provide `descriptors` that cover every top-level command root exposed by that
299
+ registrar.
300
+
301
+ ```typescript
302
+ api.registerCli(
303
+ async ({ program }) => {
304
+ const { registerMatrixCli } = await import("./src/cli.js");
305
+ registerMatrixCli({ program });
306
+ },
307
+ {
308
+ descriptors: [
309
+ {
310
+ name: "matrix",
311
+ description: "Manage Matrix accounts, verification, devices, and profile state",
312
+ hasSubcommands: true,
313
+ },
314
+ ],
315
+ },
316
+ );
317
+ ```
318
+
319
+ Nested commands receive the resolved parent command as `program`:
320
+
321
+ ```typescript
322
+ api.registerCli(
323
+ async ({ program }) => {
324
+ const { registerNodesCanvasCommands } = await import("./src/cli.js");
325
+ registerNodesCanvasCommands(program);
326
+ },
327
+ {
328
+ parentPath: ["nodes"],
329
+ descriptors: [
330
+ {
331
+ name: "canvas",
332
+ description: "Capture or render canvas content from a paired node",
333
+ hasSubcommands: true,
334
+ },
335
+ ],
336
+ },
337
+ );
338
+ ```
339
+
340
+ Use `commands` by itself only when you do not need lazy root CLI registration.
341
+ That eager compatibility path remains supported, but it does not install
342
+ descriptor-backed placeholders for parse-time lazy loading.
343
+
344
+ ### CLI backend registration
345
+
346
+ `api.registerCliBackend(...)` lets a plugin own the default config for a local
347
+ AI CLI backend such as `claude-cli` or `my-cli`.
348
+
349
+ - The backend `id` becomes the provider prefix in model refs like `my-cli/gpt-5`.
350
+ - The backend `config` uses the same shape as `agents.defaults.cliBackends.<id>`.
351
+ - User config still wins. Nodmix merges `agents.defaults.cliBackends.<id>` over the
352
+ plugin default before running the CLI.
353
+ - Use `normalizeConfig` when a backend needs compatibility rewrites after merge
354
+ (for example normalizing old flag shapes).
355
+ - Use `resolveExecutionArgs` for request-scoped argv rewrites that belong to
356
+ the CLI dialect, such as mapping Nodmix thinking levels to a native effort
357
+ flag.
358
+
359
+ For an end-to-end authoring guide, see
360
+ [CLI backend plugins](/plugins/cli-backend-plugins).
361
+
362
+ ### Exclusive slots
363
+
364
+ | Method | What it registers |
365
+ | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
366
+ | `api.registerContextEngine(id, factory)` | Context engine (one active at a time). The `assemble()` callback receives `availableTools` and `citationsMode` so the engine can tailor prompt additions. |
367
+ | `api.registerMemoryCapability(capability)` | Unified memory capability |
368
+ | `api.registerMemoryPromptSection(builder)` | Memory prompt section builder |
369
+ | `api.registerMemoryFlushPlan(resolver)` | Memory flush plan resolver |
370
+ | `api.registerMemoryRuntime(runtime)` | Memory runtime adapter |
371
+
372
+ ### Memory embedding adapters
373
+
374
+ | Method | What it registers |
375
+ | ---------------------------------------------- | ---------------------------------------------- |
376
+ | `api.registerMemoryEmbeddingProvider(adapter)` | Memory embedding adapter for the active plugin |
377
+
378
+ - `registerMemoryCapability` is the preferred exclusive memory-plugin API.
379
+ - `registerMemoryCapability` may also expose `publicArtifacts.listArtifacts(...)`
380
+ so companion plugins can consume exported memory artifacts through
381
+ `nodmix/plugin-sdk/memory-host-core` instead of reaching into a specific
382
+ memory plugin's private layout.
383
+ - `registerMemoryPromptSection`, `registerMemoryFlushPlan`, and
384
+ `registerMemoryRuntime` are legacy-compatible exclusive memory-plugin APIs.
385
+ - `MemoryFlushPlan.model` can pin the flush turn to an exact `provider/model`
386
+ reference, such as `ollama/qwen3:8b`, without inheriting the active fallback
387
+ chain.
388
+ - `registerMemoryEmbeddingProvider` lets the active memory plugin register one
389
+ or more embedding adapter ids (for example `openai`, `gemini`, or a custom
390
+ plugin-defined id).
391
+ - User config such as `agents.defaults.memorySearch.provider` and
392
+ `agents.defaults.memorySearch.fallback` resolves against those registered
393
+ adapter ids.
394
+
395
+ ### Events and lifecycle
396
+
397
+ | Method | What it does |
398
+ | -------------------------------------------- | ----------------------------- |
399
+ | `api.on(hookName, handler, opts?)` | Typed lifecycle hook |
400
+ | `api.onConversationBindingResolved(handler)` | Conversation binding callback |
401
+
402
+ See [Plugin hooks](/plugins/hooks) for examples, common hook names, and guard
403
+ semantics.
404
+
405
+ ### Hook decision semantics
406
+
407
+ - `before_tool_call`: returning `{ block: true }` is terminal. Once any handler sets it, lower-priority handlers are skipped.
408
+ - `before_tool_call`: returning `{ block: false }` is treated as no decision (same as omitting `block`), not as an override.
409
+ - `before_install`: returning `{ block: true }` is terminal. Once any handler sets it, lower-priority handlers are skipped.
410
+ - `before_install`: returning `{ block: false }` is treated as no decision (same as omitting `block`), not as an override.
411
+ - `reply_dispatch`: returning `{ handled: true, ... }` is terminal. Once any handler claims dispatch, lower-priority handlers and the default model dispatch path are skipped.
412
+ - `message_sending`: returning `{ cancel: true }` is terminal. Once any handler sets it, lower-priority handlers are skipped.
413
+ - `message_sending`: returning `{ cancel: false }` is treated as no decision (same as omitting `cancel`), not as an override.
414
+ - `message_received`: use the typed `threadId` field when you need inbound thread/topic routing. Keep `metadata` for channel-specific extras.
415
+ - `message_sending`: use typed `replyToId` / `threadId` routing fields before falling back to channel-specific `metadata`.
416
+ - `gateway_start`: use `ctx.config`, `ctx.workspaceDir`, and `ctx.getCron?.()` for gateway-owned startup state instead of relying on internal `gateway:startup` hooks.
417
+ - `cron_changed`: observe gateway-owned cron lifecycle changes. Use `event.job?.state?.nextRunAtMs` and `ctx.getCron?.()` when syncing external wake schedulers, and keep Nodmix as the source of truth for due checks and execution.
418
+
419
+ ### API object fields
420
+
421
+ | Field | Type | Description |
422
+ | ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
423
+ | `api.id` | `string` | Plugin id |
424
+ | `api.name` | `string` | Display name |
425
+ | `api.version` | `string?` | Plugin version (optional) |
426
+ | `api.description` | `string?` | Plugin description (optional) |
427
+ | `api.source` | `string` | Plugin source path |
428
+ | `api.rootDir` | `string?` | Plugin root directory (optional) |
429
+ | `api.config` | `NodmixConfig` | Current config snapshot (active in-memory runtime snapshot when available) |
430
+ | `api.pluginConfig` | `Record<string, unknown>` | Plugin-specific config from `plugins.entries.<id>.config` |
431
+ | `api.runtime` | `PluginRuntime` | [Runtime helpers](/plugins/sdk-runtime) |
432
+ | `api.logger` | `PluginLogger` | Scoped logger (`debug`, `info`, `warn`, `error`) |
433
+ | `api.registrationMode` | `PluginRegistrationMode` | Current load mode; `"setup-runtime"` is the lightweight pre-full-entry startup/setup window |
434
+ | `api.resolvePath(input)` | `(string) => string` | Resolve path relative to plugin root |
435
+
436
+ ## Internal module convention
437
+
438
+ Within your plugin, use local barrel files for internal imports:
439
+
440
+ ```
441
+ my-plugin/
442
+ api.ts # Public exports for external consumers
443
+ runtime-api.ts # Internal-only runtime exports
444
+ index.ts # Plugin entry point
445
+ setup-entry.ts # Lightweight setup-only entry (optional)
446
+ ```
447
+
448
+ <Warning>
449
+ Never import your own plugin through `nodmix/plugin-sdk/<your-plugin>`
450
+ from production code. Route internal imports through `./api.ts` or
451
+ `./runtime-api.ts`. The SDK path is the external contract only.
452
+ </Warning>
453
+
454
+ Facade-loaded bundled plugin public surfaces (`api.ts`, `runtime-api.ts`,
455
+ `index.ts`, `setup-entry.ts`, and similar public entry files) prefer the
456
+ active runtime config snapshot when Nodmix is already running. If no runtime
457
+ snapshot exists yet, they fall back to the resolved config file on disk.
458
+ Packaged bundled plugin facades should be loaded through Nodmix's plugin
459
+ facade loaders; direct imports from `dist/extensions/...` bypass the manifest
460
+ and runtime sidecar checks that packaged installs use for plugin-owned code.
461
+
462
+ Provider plugins can expose a narrow plugin-local contract barrel when a
463
+ helper is intentionally provider-specific and does not belong in a generic SDK
464
+ subpath yet. Bundled examples:
465
+
466
+ - **Anthropic**: public `api.ts` / `contract-api.ts` seam for Claude
467
+ beta-header and `service_tier` stream helpers.
468
+ - **`@nodmix/openai-provider`**: `api.ts` exports provider builders,
469
+ default-model helpers, and realtime provider builders.
470
+ - **`@nodmix/openrouter-provider`**: `api.ts` exports the provider builder
471
+ plus onboarding/config helpers.
472
+
473
+ <Warning>
474
+ Extension production code should also avoid `nodmix/plugin-sdk/<other-plugin>`
475
+ imports. If a helper is truly shared, promote it to a neutral SDK subpath
476
+ such as `nodmix/plugin-sdk/speech`, `.../provider-model-shared`, or another
477
+ capability-oriented surface instead of coupling two plugins together.
478
+ </Warning>
479
+
480
+ ## Related
481
+
482
+ <CardGroup cols={2}>
483
+ <Card title="Entry points" icon="door-open" href="/plugins/sdk-entrypoints">
484
+ `definePluginEntry` and `defineChannelPluginEntry` options.
485
+ </Card>
486
+ <Card title="Runtime helpers" icon="gears" href="/plugins/sdk-runtime">
487
+ Full `api.runtime` namespace reference.
488
+ </Card>
489
+ <Card title="Setup and config" icon="sliders" href="/plugins/sdk-setup">
490
+ Packaging, manifests, and config schemas.
491
+ </Card>
492
+ <Card title="Testing" icon="vial" href="/plugins/sdk-testing">
493
+ Test utilities and lint rules.
494
+ </Card>
495
+ <Card title="SDK migration" icon="arrows-turn-right" href="/plugins/sdk-migration">
496
+ Migrating from deprecated surfaces.
497
+ </Card>
498
+ <Card title="Plugin internals" icon="diagram-project" href="/plugins/architecture">
499
+ Deep architecture and capability model.
500
+ </Card>
501
+ </CardGroup>