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
package/docs/pi.md ADDED
@@ -0,0 +1,573 @@
1
+ ---
2
+ summary: "Architecture of Nodmix's embedded Pi agent integration and session lifecycle"
3
+ title: "Pi integration architecture"
4
+ read_when:
5
+ - Understanding Pi SDK integration design in Nodmix
6
+ - Modifying agent session lifecycle, tooling, or provider wiring for Pi
7
+ ---
8
+
9
+ Nodmix integrates with [pi-coding-agent](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) and its sibling packages (`pi-ai`, `pi-agent-core`, `pi-tui`) to power its AI agent capabilities.
10
+
11
+ ## Overview
12
+
13
+ Nodmix uses the pi SDK to embed an AI coding agent into its messaging gateway architecture. Instead of spawning pi as a subprocess or using RPC mode, Nodmix directly imports and instantiates pi's `AgentSession` via `createAgentSession()`. This embedded approach provides:
14
+
15
+ - Full control over session lifecycle and event handling
16
+ - Custom tool injection (messaging, sandbox, channel-specific actions)
17
+ - System prompt customization per channel/context
18
+ - Session persistence with branching/compaction support
19
+ - Multi-account auth profile rotation with failover
20
+ - Provider-agnostic model switching
21
+
22
+ ## Package dependencies
23
+
24
+ ```json
25
+ {
26
+ "@earendil-works/pi-agent-core": "0.75.1",
27
+ "@earendil-works/pi-ai": "0.75.1",
28
+ "@earendil-works/pi-coding-agent": "0.75.1",
29
+ "@earendil-works/pi-tui": "0.75.1"
30
+ }
31
+ ```
32
+
33
+ | Package | Purpose |
34
+ | ----------------- | ------------------------------------------------------------------------------------------------------ |
35
+ | `pi-ai` | Core LLM abstractions: `Model`, `streamSimple`, message types, provider APIs |
36
+ | `pi-agent-core` | Agent loop, tool execution, `AgentMessage` types |
37
+ | `pi-coding-agent` | High-level SDK: `createAgentSession`, `SessionManager`, `AuthStorage`, `ModelRegistry`, built-in tools |
38
+ | `pi-tui` | Terminal UI components (used in Nodmix's local TUI mode) |
39
+
40
+ ## File structure
41
+
42
+ ```
43
+ src/agents/
44
+ ├── pi-embedded-runner.ts # Re-exports from pi-embedded-runner/
45
+ ├── pi-embedded-runner/
46
+ │ ├── run.ts # Main entry: runEmbeddedPiAgent()
47
+ │ ├── run/
48
+ │ │ ├── attempt.ts # Single attempt logic with session setup
49
+ │ │ ├── params.ts # RunEmbeddedPiAgentParams type
50
+ │ │ ├── payloads.ts # Build response payloads from run results
51
+ │ │ ├── images.ts # Vision model image injection
52
+ │ │ └── types.ts # EmbeddedRunAttemptResult
53
+ │ ├── abort.ts # Abort error detection
54
+ │ ├── cache-ttl.ts # Cache TTL tracking for context pruning
55
+ │ ├── compact.ts # Manual/auto compaction logic
56
+ │ ├── extensions.ts # Load pi extensions for embedded runs
57
+ │ ├── extra-params.ts # Provider-specific stream params
58
+ │ ├── google.ts # Google/Gemini turn ordering fixes
59
+ │ ├── history.ts # History limiting (DM vs group)
60
+ │ ├── lanes.ts # Session/global command lanes
61
+ │ ├── logger.ts # Subsystem logger
62
+ │ ├── model.ts # Model resolution via ModelRegistry
63
+ │ ├── runs.ts # Active run tracking, abort, queue
64
+ │ ├── sandbox-info.ts # Sandbox info for system prompt
65
+ │ ├── session-manager-cache.ts # SessionManager instance caching
66
+ │ ├── session-manager-init.ts # Session file initialization
67
+ │ ├── system-prompt.ts # System prompt builder
68
+ │ ├── tool-split.ts # Split tools into builtIn vs custom
69
+ │ ├── types.ts # EmbeddedPiAgentMeta, EmbeddedPiRunResult
70
+ │ └── utils.ts # ThinkLevel mapping, error description
71
+ ├── pi-embedded-subscribe.ts # Session event subscription/dispatch
72
+ ├── pi-embedded-subscribe.types.ts # SubscribeEmbeddedPiSessionParams
73
+ ├── pi-embedded-subscribe.handlers.ts # Event handler factory
74
+ ├── pi-embedded-subscribe.handlers.lifecycle.ts
75
+ ├── pi-embedded-subscribe.handlers.types.ts
76
+ ├── pi-embedded-block-chunker.ts # Streaming block reply chunking
77
+ ├── pi-embedded-messaging.ts # Messaging tool sent tracking
78
+ ├── pi-embedded-helpers.ts # Error classification, turn validation
79
+ ├── pi-embedded-helpers/ # Helper modules
80
+ ├── pi-embedded-utils.ts # Formatting utilities
81
+ ├── pi-tools.ts # createNodmixCodingTools()
82
+ ├── pi-tools.abort.ts # AbortSignal wrapping for tools
83
+ ├── pi-tools.policy.ts # Tool allowlist/denylist policy
84
+ ├── pi-tools.read.ts # Read tool customizations
85
+ ├── pi-tools.schema.ts # Tool schema normalization
86
+ ├── pi-tools.types.ts # AnyAgentTool type alias
87
+ ├── pi-tool-definition-adapter.ts # AgentTool -> ToolDefinition adapter
88
+ ├── pi-settings.ts # Settings overrides
89
+ ├── pi-hooks/ # Custom pi hooks
90
+ │ ├── compaction-safeguard.ts # Safeguard extension
91
+ │ ├── compaction-safeguard-runtime.ts
92
+ │ ├── context-pruning.ts # Cache-TTL context pruning extension
93
+ │ └── context-pruning/
94
+ ├── model-auth.ts # Auth profile resolution
95
+ ├── auth-profiles.ts # Profile store, cooldown, failover
96
+ ├── model-selection.ts # Default model resolution
97
+ ├── models-config.ts # models.json generation
98
+ ├── model-catalog.ts # Model catalog cache
99
+ ├── context-window-guard.ts # Context window validation
100
+ ├── failover-error.ts # FailoverError class
101
+ ├── defaults.ts # DEFAULT_PROVIDER, DEFAULT_MODEL
102
+ ├── system-prompt.ts # buildAgentSystemPrompt()
103
+ ├── system-prompt-params.ts # System prompt parameter resolution
104
+ ├── system-prompt-report.ts # Debug report generation
105
+ ├── tool-summaries.ts # Tool description summaries
106
+ ├── tool-policy.ts # Tool policy resolution
107
+ ├── transcript-policy.ts # Transcript validation policy
108
+ ├── skills.ts # Skill snapshot/prompt building
109
+ ├── skills/ # Skill subsystem
110
+ ├── sandbox.ts # Sandbox context resolution
111
+ ├── sandbox/ # Sandbox subsystem
112
+ ├── channel-tools.ts # Channel-specific tool injection
113
+ ├── nodmix-tools.ts # Nodmix-specific tools
114
+ ├── bash-tools.ts # exec/process tools
115
+ ├── apply-patch.ts # apply_patch tool (OpenAI)
116
+ ├── tools/ # Individual tool implementations
117
+ │ ├── browser-tool.ts
118
+ │ ├── canvas-tool.ts
119
+ │ ├── cron-tool.ts
120
+ │ ├── gateway-tool.ts
121
+ │ ├── image-tool.ts
122
+ │ ├── message-tool.ts
123
+ │ ├── nodes-tool.ts
124
+ │ ├── session*.ts
125
+ │ ├── web-*.ts
126
+ │ └── ...
127
+ └── ...
128
+ ```
129
+
130
+ Channel-specific message action runtimes now live in the plugin-owned extension
131
+ directories instead of under `src/agents/tools`, for example:
132
+
133
+ - the Discord plugin action runtime files
134
+ - the Slack plugin action runtime file
135
+ - the Telegram plugin action runtime file
136
+ - the WhatsApp plugin action runtime file
137
+
138
+ ## Core integration flow
139
+
140
+ ### 1. Running an Embedded Agent
141
+
142
+ The main entry point is `runEmbeddedPiAgent()` in `pi-embedded-runner/run.ts`:
143
+
144
+ ```typescript
145
+ import { runEmbeddedPiAgent } from "./agents/pi-embedded-runner.js";
146
+
147
+ const result = await runEmbeddedPiAgent({
148
+ sessionId: "user-123",
149
+ sessionKey: "main:whatsapp:+1234567890",
150
+ sessionFile: "/path/to/session.jsonl",
151
+ workspaceDir: "/path/to/workspace",
152
+ config: nodmixConfig,
153
+ prompt: "Hello, how are you?",
154
+ provider: "anthropic",
155
+ model: "claude-sonnet-4-6",
156
+ timeoutMs: 120_000,
157
+ runId: "run-abc",
158
+ onBlockReply: async (payload) => {
159
+ await sendToChannel(payload.text, payload.mediaUrls);
160
+ },
161
+ });
162
+ ```
163
+
164
+ ### 2. Session Creation
165
+
166
+ Inside `runEmbeddedAttempt()` (called by `runEmbeddedPiAgent()`), the pi SDK is used:
167
+
168
+ ```typescript
169
+ import {
170
+ createAgentSession,
171
+ DefaultResourceLoader,
172
+ SessionManager,
173
+ SettingsManager,
174
+ } from "@earendil-works/pi-coding-agent";
175
+
176
+ const resourceLoader = new DefaultResourceLoader({
177
+ cwd: resolvedWorkspace,
178
+ agentDir,
179
+ settingsManager,
180
+ additionalExtensionPaths,
181
+ });
182
+ await resourceLoader.reload();
183
+
184
+ const { session } = await createAgentSession({
185
+ cwd: resolvedWorkspace,
186
+ agentDir,
187
+ authStorage: params.authStorage,
188
+ modelRegistry: params.modelRegistry,
189
+ model: params.model,
190
+ thinkingLevel: mapThinkingLevel(params.thinkLevel),
191
+ tools: builtInTools,
192
+ customTools: allCustomTools,
193
+ sessionManager,
194
+ settingsManager,
195
+ resourceLoader,
196
+ });
197
+
198
+ applySystemPromptOverrideToSession(session, systemPromptOverride);
199
+ ```
200
+
201
+ ### 3. Event Subscription
202
+
203
+ `subscribeEmbeddedPiSession()` subscribes to pi's `AgentSession` events:
204
+
205
+ ```typescript
206
+ const subscription = subscribeEmbeddedPiSession({
207
+ session: activeSession,
208
+ runId: params.runId,
209
+ verboseLevel: params.verboseLevel,
210
+ reasoningMode: params.reasoningLevel,
211
+ toolResultFormat: params.toolResultFormat,
212
+ onToolResult: params.onToolResult,
213
+ onReasoningStream: params.onReasoningStream,
214
+ onBlockReply: params.onBlockReply,
215
+ onPartialReply: params.onPartialReply,
216
+ onAgentEvent: params.onAgentEvent,
217
+ });
218
+ ```
219
+
220
+ Events handled include:
221
+
222
+ - `message_start` / `message_end` / `message_update` (streaming text/thinking)
223
+ - `tool_execution_start` / `tool_execution_update` / `tool_execution_end`
224
+ - `turn_start` / `turn_end`
225
+ - `agent_start` / `agent_end`
226
+ - `compaction_start` / `compaction_end`
227
+
228
+ ### 4. Prompting
229
+
230
+ After setup, the session is prompted:
231
+
232
+ ```typescript
233
+ await session.prompt(effectivePrompt, { images: imageResult.images });
234
+ ```
235
+
236
+ The SDK handles the full agent loop: sending to LLM, executing tool calls, streaming responses.
237
+
238
+ Image injection is prompt-local: Nodmix loads image refs from the current prompt and
239
+ passes them via `images` for that turn only. It does not re-scan older history turns
240
+ to re-inject image payloads.
241
+
242
+ ## Tool architecture
243
+
244
+ ### Tool pipeline
245
+
246
+ 1. **Base Tools**: pi's `codingTools` (read, bash, edit, write)
247
+ 2. **Custom Replacements**: Nodmix replaces bash with `exec`/`process`, customizes read/edit/write for sandbox
248
+ 3. **Nodmix Tools**: messaging, browser, canvas, sessions, cron, gateway, etc.
249
+ 4. **Channel Tools**: Discord/Telegram/Slack/WhatsApp-specific action tools
250
+ 5. **Policy Filtering**: Tools filtered by profile, provider, agent, group, sandbox policies
251
+ 6. **Schema Normalization**: Schemas cleaned for Gemini/OpenAI quirks
252
+ 7. **AbortSignal Wrapping**: Tools wrapped to respect abort signals
253
+
254
+ ### Tool definition adapter
255
+
256
+ pi-agent-core's `AgentTool` has a different `execute` signature than pi-coding-agent's `ToolDefinition`. The adapter in `pi-tool-definition-adapter.ts` bridges this:
257
+
258
+ ```typescript
259
+ export function toToolDefinitions(tools: AnyAgentTool[]): ToolDefinition[] {
260
+ return tools.map((tool) => ({
261
+ name: tool.name,
262
+ label: tool.label ?? name,
263
+ description: tool.description ?? "",
264
+ parameters: tool.parameters,
265
+ execute: async (toolCallId, params, onUpdate, _ctx, signal) => {
266
+ // pi-coding-agent signature differs from pi-agent-core
267
+ return await tool.execute(toolCallId, params, signal, onUpdate);
268
+ },
269
+ }));
270
+ }
271
+ ```
272
+
273
+ ### Tool split strategy
274
+
275
+ `splitSdkTools()` passes all tools via `customTools`:
276
+
277
+ ```typescript
278
+ export function splitSdkTools(options: { tools: AnyAgentTool[]; sandboxEnabled: boolean }) {
279
+ return {
280
+ builtInTools: [], // Empty. We override everything
281
+ customTools: toToolDefinitions(options.tools),
282
+ };
283
+ }
284
+ ```
285
+
286
+ This ensures Nodmix's policy filtering, sandbox integration, and extended toolset remain consistent across providers.
287
+
288
+ ## System prompt construction
289
+
290
+ The system prompt is built in `buildAgentSystemPrompt()` (`system-prompt.ts`). It assembles a full prompt with sections including Tooling, Tool Call Style, Safety guardrails, Nodmix Control, Skills, Docs, Workspace, Sandbox, Messaging, Assistant Output Directives, Voice, Silent Replies, Heartbeats, Runtime metadata, plus Memory and Reactions when enabled, and optional context files and extra system prompt content. Sections are trimmed for minimal prompt mode used by subagents.
291
+
292
+ The prompt is applied after session creation via `applySystemPromptOverrideToSession()`:
293
+
294
+ ```typescript
295
+ const systemPromptOverride = createSystemPromptOverride(appendPrompt);
296
+ applySystemPromptOverrideToSession(session, systemPromptOverride);
297
+ ```
298
+
299
+ ## Session management
300
+
301
+ ### Session files
302
+
303
+ Sessions are JSONL files with tree structure (id/parentId linking). Pi's `SessionManager` handles persistence:
304
+
305
+ ```typescript
306
+ const sessionManager = SessionManager.open(params.sessionFile);
307
+ ```
308
+
309
+ Nodmix wraps this with `guardSessionManager()` for tool result safety.
310
+
311
+ ### Session caching
312
+
313
+ `session-manager-cache.ts` caches SessionManager instances to avoid repeated file parsing:
314
+
315
+ ```typescript
316
+ await prewarmSessionFile(params.sessionFile);
317
+ sessionManager = SessionManager.open(params.sessionFile);
318
+ trackSessionManagerAccess(params.sessionFile);
319
+ ```
320
+
321
+ ### History limiting
322
+
323
+ `limitHistoryTurns()` trims conversation history based on channel type (DM vs group).
324
+
325
+ ### Compaction
326
+
327
+ Auto-compaction triggers on context overflow. Common overflow signatures
328
+ include `request_too_large`, `context length exceeded`, `input exceeds the
329
+ maximum number of tokens`, `input token count exceeds the maximum number of
330
+ input tokens`, `input is too long for the model`, and `ollama error: context
331
+ length exceeded`. `compactEmbeddedPiSessionDirect()` handles manual
332
+ compaction:
333
+
334
+ ```typescript
335
+ const compactResult = await compactEmbeddedPiSessionDirect({
336
+ sessionId, sessionFile, provider, model, ...
337
+ });
338
+ ```
339
+
340
+ ## Authentication and model resolution
341
+
342
+ ### Auth profiles
343
+
344
+ Nodmix maintains an auth profile store with multiple API keys per provider:
345
+
346
+ ```typescript
347
+ const authStore = ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false });
348
+ const profileOrder = resolveAuthProfileOrder({ cfg, store: authStore, provider, preferredProfile });
349
+ ```
350
+
351
+ Profiles rotate on failures with cooldown tracking:
352
+
353
+ ```typescript
354
+ await markAuthProfileFailure({ store, profileId, reason, cfg, agentDir });
355
+ const rotated = await advanceAuthProfile();
356
+ ```
357
+
358
+ ### Model resolution
359
+
360
+ ```typescript
361
+ import { resolveModel } from "./pi-embedded-runner/model.js";
362
+
363
+ const { model, error, authStorage, modelRegistry } = resolveModel(
364
+ provider,
365
+ modelId,
366
+ agentDir,
367
+ config,
368
+ );
369
+
370
+ // Uses pi's ModelRegistry and AuthStorage
371
+ authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
372
+ ```
373
+
374
+ ### Failover
375
+
376
+ `FailoverError` triggers model fallback when configured:
377
+
378
+ ```typescript
379
+ if (fallbackConfigured && isFailoverErrorMessage(errorText)) {
380
+ throw new FailoverError(errorText, {
381
+ reason: promptFailoverReason ?? "unknown",
382
+ provider,
383
+ model: modelId,
384
+ profileId,
385
+ status: resolveFailoverStatus(promptFailoverReason),
386
+ });
387
+ }
388
+ ```
389
+
390
+ ## Pi extensions
391
+
392
+ Nodmix loads custom pi extensions for specialized behavior:
393
+
394
+ ### Compaction safeguard
395
+
396
+ `src/agents/pi-hooks/compaction-safeguard.ts` adds guardrails to compaction, including adaptive token budgeting plus tool failure and file operation summaries:
397
+
398
+ ```typescript
399
+ if (resolveCompactionMode(params.cfg) === "safeguard") {
400
+ setCompactionSafeguardRuntime(params.sessionManager, { maxHistoryShare });
401
+ paths.push(resolvePiExtensionPath("compaction-safeguard"));
402
+ }
403
+ ```
404
+
405
+ ### Context pruning
406
+
407
+ `src/agents/pi-hooks/context-pruning.ts` implements cache-TTL based context pruning:
408
+
409
+ ```typescript
410
+ if (cfg?.agents?.defaults?.contextPruning?.mode === "cache-ttl") {
411
+ setContextPruningRuntime(params.sessionManager, {
412
+ settings,
413
+ contextWindowTokens,
414
+ isToolPrunable,
415
+ lastCacheTouchAt,
416
+ });
417
+ paths.push(resolvePiExtensionPath("context-pruning"));
418
+ }
419
+ ```
420
+
421
+ ## Streaming and block replies
422
+
423
+ ### Block chunking
424
+
425
+ `EmbeddedBlockChunker` manages streaming text into discrete reply blocks:
426
+
427
+ ```typescript
428
+ const blockChunker = blockChunking ? new EmbeddedBlockChunker(blockChunking) : null;
429
+ ```
430
+
431
+ ### Thinking/Final Tag Stripping
432
+
433
+ Streaming output is processed to strip `<think>`/`<thinking>` blocks and extract `<final>` content:
434
+
435
+ ```typescript
436
+ const stripBlockTags = (text: string, state: { thinking: boolean; final: boolean }) => {
437
+ // Strip <think>...</think> content
438
+ // If enforceFinalTag, only return <final>...</final> content
439
+ };
440
+ ```
441
+
442
+ ### Reply directives
443
+
444
+ Reply directives like `[[media:url]]`, `[[voice]]`, `[[reply:id]]` are parsed and extracted:
445
+
446
+ ```typescript
447
+ const { text: cleanedText, mediaUrls, audioAsVoice, replyToId } = consumeReplyDirectives(chunk);
448
+ ```
449
+
450
+ ## Error handling
451
+
452
+ ### Error classification
453
+
454
+ `pi-embedded-helpers.ts` classifies errors for appropriate handling:
455
+
456
+ ```typescript
457
+ isContextOverflowError(errorText) // Context too large
458
+ isCompactionFailureError(errorText) // Compaction failed
459
+ isAuthAssistantError(lastAssistant) // Auth failure
460
+ isRateLimitAssistantError(...) // Rate limited
461
+ isFailoverAssistantError(...) // Should failover
462
+ classifyFailoverReason(errorText) // "auth" | "rate_limit" | "quota" | "timeout" | ...
463
+ ```
464
+
465
+ ### Thinking level fallback
466
+
467
+ If a thinking level is unsupported, it falls back:
468
+
469
+ ```typescript
470
+ const fallbackThinking = pickFallbackThinkingLevel({
471
+ message: errorText,
472
+ attempted: attemptedThinking,
473
+ });
474
+ if (fallbackThinking) {
475
+ thinkLevel = fallbackThinking;
476
+ continue;
477
+ }
478
+ ```
479
+
480
+ ## Sandbox integration
481
+
482
+ When sandbox mode is enabled, tools and paths are constrained:
483
+
484
+ ```typescript
485
+ const sandbox = await resolveSandboxContext({
486
+ config: params.config,
487
+ sessionKey: sandboxSessionKey,
488
+ workspaceDir: resolvedWorkspace,
489
+ });
490
+
491
+ if (sandboxRoot) {
492
+ // Use sandboxed read/edit/write tools
493
+ // Exec runs in container
494
+ // Browser uses bridge URL
495
+ }
496
+ ```
497
+
498
+ ## Provider-Specific Handling
499
+
500
+ ### Anthropic
501
+
502
+ - Refusal magic string scrubbing
503
+ - Turn validation for consecutive roles
504
+ - Strict upstream Pi tool parameter validation
505
+
506
+ ### Google/Gemini
507
+
508
+ - Plugin-owned tool schema sanitization
509
+
510
+ ### OpenAI
511
+
512
+ - `apply_patch` tool for Codex models
513
+ - Thinking level downgrade handling
514
+
515
+ ## TUI Integration
516
+
517
+ Nodmix also has a local TUI mode that uses pi-tui components directly:
518
+
519
+ ```typescript
520
+ // src/tui/tui.ts
521
+ import { ... } from "@earendil-works/pi-tui";
522
+ ```
523
+
524
+ This provides the interactive terminal experience similar to pi's native mode.
525
+
526
+ ## Key differences from Pi CLI
527
+
528
+ | Aspect | Pi CLI | Nodmix Embedded |
529
+ | --------------- | ----------------------- | ---------------------------------------------------------------------------------------------- |
530
+ | Invocation | `pi` command / RPC | SDK via `createAgentSession()` |
531
+ | Tools | Default coding tools | Custom Nodmix tool suite |
532
+ | System prompt | AGENTS.md + prompts | Dynamic per-channel/context |
533
+ | Session storage | `~/.pi/agent/sessions/` | `~/.nodmix/agents/<agentId>/sessions/` (or `$NODMIX_STATE_DIR/agents/<agentId>/sessions/`) |
534
+ | Auth | Single credential | Multi-profile with rotation |
535
+ | Extensions | Loaded from disk | Programmatic + disk paths |
536
+ | Event handling | TUI rendering | Callback-based (onBlockReply, etc.) |
537
+
538
+ ## Future considerations
539
+
540
+ Areas for potential rework:
541
+
542
+ 1. **Tool signature alignment**: Currently adapting between pi-agent-core and pi-coding-agent signatures
543
+ 2. **Session manager wrapping**: `guardSessionManager` adds safety but increases complexity
544
+ 3. **Extension loading**: Could use pi's `ResourceLoader` more directly
545
+ 4. **Streaming handler complexity**: `subscribeEmbeddedPiSession` has grown large
546
+ 5. **Provider quirks**: Many provider-specific codepaths that pi could potentially handle
547
+
548
+ ## Tests
549
+
550
+ Pi integration coverage spans these suites:
551
+
552
+ - `src/agents/pi-*.test.ts`
553
+ - `src/agents/pi-auth-json.test.ts`
554
+ - `src/agents/pi-embedded-*.test.ts`
555
+ - `src/agents/pi-embedded-helpers*.test.ts`
556
+ - `src/agents/pi-embedded-runner*.test.ts`
557
+ - `src/agents/pi-embedded-runner/**/*.test.ts`
558
+ - `src/agents/pi-embedded-subscribe*.test.ts`
559
+ - `src/agents/pi-tools*.test.ts`
560
+ - `src/agents/pi-tool-definition-adapter*.test.ts`
561
+ - `src/agents/pi-settings.test.ts`
562
+ - `src/agents/pi-hooks/**/*.test.ts`
563
+
564
+ Live/opt-in:
565
+
566
+ - `src/agents/pi-embedded-runner-extraparams.live.test.ts` (enable `NODMIX_LIVE_TEST=1`)
567
+
568
+ For current run commands, see [Pi Development Workflow](/pi-dev).
569
+
570
+ ## Related
571
+
572
+ - [Pi development workflow](/pi-dev)
573
+ - [Install overview](/install)