@symerian/symi 3.0.21 → 3.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/package.json +1 -1
  4. package/docs/.i18n/README.md +0 -31
  5. package/docs/.i18n/glossary.ja-JP.json +0 -14
  6. package/docs/.i18n/glossary.zh-CN.json +0 -210
  7. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  8. package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
  9. package/docs/CNAME +0 -1
  10. package/docs/assets/install-script.svg +0 -1
  11. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  12. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  13. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  14. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  15. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  16. package/docs/assets/pixel-symi.svg +0 -60
  17. package/docs/assets/showcase/agents-ui.jpg +0 -0
  18. package/docs/assets/showcase/bambu-cli.png +0 -0
  19. package/docs/assets/showcase/codexmonitor.png +0 -0
  20. package/docs/assets/showcase/gohome-grafana.png +0 -0
  21. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  22. package/docs/assets/showcase/oura-health.png +0 -0
  23. package/docs/assets/showcase/padel-cli.svg +0 -11
  24. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  25. package/docs/assets/showcase/papla-tts.jpg +0 -0
  26. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  27. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  28. package/docs/assets/showcase/roborock-status.svg +0 -13
  29. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  30. package/docs/assets/showcase/snag.png +0 -0
  31. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  32. package/docs/assets/showcase/wienerlinien.png +0 -0
  33. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  34. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  35. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  36. package/docs/assets/sponsors/blacksmith.svg +0 -14
  37. package/docs/assets/sponsors/openai.svg +0 -3
  38. package/docs/assets/symi-logo-text-dark.png +0 -0
  39. package/docs/assets/symi-logo-text.png +0 -0
  40. package/docs/automation/auth-monitoring.md +0 -44
  41. package/docs/automation/cron-jobs.md +0 -540
  42. package/docs/automation/cron-vs-heartbeat.md +0 -286
  43. package/docs/automation/gmail-pubsub.md +0 -256
  44. package/docs/automation/hooks.md +0 -998
  45. package/docs/automation/poll.md +0 -61
  46. package/docs/automation/troubleshooting.md +0 -122
  47. package/docs/automation/webhook.md +0 -213
  48. package/docs/brave-search.md +0 -41
  49. package/docs/capabilities.md +0 -151
  50. package/docs/channels/bluebubbles.md +0 -346
  51. package/docs/channels/broadcast-groups.md +0 -441
  52. package/docs/channels/channel-routing.md +0 -112
  53. package/docs/channels/feishu.md +0 -586
  54. package/docs/channels/googlechat.md +0 -253
  55. package/docs/channels/grammy.md +0 -31
  56. package/docs/channels/group-messages.md +0 -82
  57. package/docs/channels/groups.md +0 -364
  58. package/docs/channels/imessage.md +0 -366
  59. package/docs/channels/index.md +0 -46
  60. package/docs/channels/irc.md +0 -234
  61. package/docs/channels/line.md +0 -186
  62. package/docs/channels/location.md +0 -56
  63. package/docs/channels/matrix.md +0 -300
  64. package/docs/channels/mattermost.md +0 -158
  65. package/docs/channels/msteams.md +0 -769
  66. package/docs/channels/nextcloud-talk.md +0 -138
  67. package/docs/channels/nostr.md +0 -233
  68. package/docs/channels/pairing.md +0 -100
  69. package/docs/channels/signal.md +0 -322
  70. package/docs/channels/slack.md +0 -510
  71. package/docs/channels/telegram.md +0 -748
  72. package/docs/channels/tlon.md +0 -148
  73. package/docs/channels/troubleshooting.md +0 -110
  74. package/docs/channels/twitch.md +0 -379
  75. package/docs/channels/whatsapp.md +0 -444
  76. package/docs/channels/zalo.md +0 -192
  77. package/docs/channels/zalouser.md +0 -140
  78. package/docs/ci.md +0 -50
  79. package/docs/cli/acp.md +0 -182
  80. package/docs/cli/agent.md +0 -24
  81. package/docs/cli/agents.md +0 -75
  82. package/docs/cli/approvals.md +0 -50
  83. package/docs/cli/browser.md +0 -107
  84. package/docs/cli/channels.md +0 -73
  85. package/docs/cli/config.md +0 -50
  86. package/docs/cli/configure.md +0 -32
  87. package/docs/cli/cron.md +0 -44
  88. package/docs/cli/dashboard.md +0 -16
  89. package/docs/cli/devices.md +0 -73
  90. package/docs/cli/directory.md +0 -62
  91. package/docs/cli/dns.md +0 -23
  92. package/docs/cli/docs.md +0 -15
  93. package/docs/cli/doctor.md +0 -41
  94. package/docs/cli/gateway.md +0 -202
  95. package/docs/cli/health.md +0 -21
  96. package/docs/cli/hooks.md +0 -313
  97. package/docs/cli/index.md +0 -1029
  98. package/docs/cli/logs.md +0 -28
  99. package/docs/cli/memory.md +0 -45
  100. package/docs/cli/message.md +0 -214
  101. package/docs/cli/models.md +0 -79
  102. package/docs/cli/node.md +0 -112
  103. package/docs/cli/nodes.md +0 -73
  104. package/docs/cli/onboard.md +0 -76
  105. package/docs/cli/pairing.md +0 -21
  106. package/docs/cli/plugins.md +0 -92
  107. package/docs/cli/reset.md +0 -17
  108. package/docs/cli/sandbox.md +0 -152
  109. package/docs/cli/security.md +0 -64
  110. package/docs/cli/sessions.md +0 -16
  111. package/docs/cli/setup.md +0 -29
  112. package/docs/cli/skills.md +0 -26
  113. package/docs/cli/status.md +0 -25
  114. package/docs/cli/system.md +0 -60
  115. package/docs/cli/tui.md +0 -23
  116. package/docs/cli/uninstall.md +0 -17
  117. package/docs/cli/update.md +0 -98
  118. package/docs/cli/voicecall.md +0 -34
  119. package/docs/cli/webhooks.md +0 -25
  120. package/docs/concepts/agent-loop.md +0 -148
  121. package/docs/concepts/agent-workspace.md +0 -234
  122. package/docs/concepts/agent.md +0 -123
  123. package/docs/concepts/architecture.md +0 -135
  124. package/docs/concepts/compaction.md +0 -61
  125. package/docs/concepts/context.md +0 -161
  126. package/docs/concepts/features.md +0 -51
  127. package/docs/concepts/markdown-formatting.md +0 -128
  128. package/docs/concepts/memory.md +0 -729
  129. package/docs/concepts/messages.md +0 -153
  130. package/docs/concepts/model-failover.md +0 -149
  131. package/docs/concepts/model-providers.md +0 -424
  132. package/docs/concepts/models.md +0 -208
  133. package/docs/concepts/multi-agent.md +0 -521
  134. package/docs/concepts/oauth.md +0 -145
  135. package/docs/concepts/presence.md +0 -102
  136. package/docs/concepts/queue.md +0 -86
  137. package/docs/concepts/retry.md +0 -64
  138. package/docs/concepts/session-pruning.md +0 -123
  139. package/docs/concepts/session-tool.md +0 -213
  140. package/docs/concepts/session.md +0 -199
  141. package/docs/concepts/sessions.md +0 -10
  142. package/docs/concepts/streaming.md +0 -129
  143. package/docs/concepts/system-prompt.md +0 -128
  144. package/docs/concepts/timezone.md +0 -90
  145. package/docs/concepts/typebox.md +0 -289
  146. package/docs/concepts/typing-indicators.md +0 -68
  147. package/docs/concepts/usage-tracking.md +0 -35
  148. package/docs/date-time.md +0 -127
  149. package/docs/debug/node-issue.md +0 -85
  150. package/docs/diagnostics/flags.md +0 -91
  151. package/docs/docs.json +0 -1849
  152. package/docs/experiments/onboarding-config-protocol.md +0 -40
  153. package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
  154. package/docs/experiments/plans/cron-add-hardening.md +0 -62
  155. package/docs/experiments/plans/group-policy-hardening.md +0 -40
  156. package/docs/experiments/plans/openresponses-gateway.md +0 -123
  157. package/docs/experiments/plans/pty-process-supervision.md +0 -192
  158. package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
  159. package/docs/experiments/plans/thread-bound-subagents.md +0 -281
  160. package/docs/experiments/proposals/model-config.md +0 -36
  161. package/docs/experiments/research/memory.md +0 -228
  162. package/docs/gateway/authentication.md +0 -162
  163. package/docs/gateway/background-process.md +0 -96
  164. package/docs/gateway/bonjour.md +0 -177
  165. package/docs/gateway/bridge-protocol.md +0 -91
  166. package/docs/gateway/cli-backends.md +0 -225
  167. package/docs/gateway/configuration-examples.md +0 -610
  168. package/docs/gateway/configuration-reference.md +0 -2465
  169. package/docs/gateway/configuration.md +0 -488
  170. package/docs/gateway/discovery.md +0 -123
  171. package/docs/gateway/doctor.md +0 -282
  172. package/docs/gateway/gateway-lock.md +0 -34
  173. package/docs/gateway/health.md +0 -35
  174. package/docs/gateway/heartbeat.md +0 -374
  175. package/docs/gateway/index.md +0 -254
  176. package/docs/gateway/local-models.md +0 -150
  177. package/docs/gateway/logging.md +0 -113
  178. package/docs/gateway/multiple-gateways.md +0 -112
  179. package/docs/gateway/network-model.md +0 -20
  180. package/docs/gateway/openai-http-api.md +0 -119
  181. package/docs/gateway/openresponses-http-api.md +0 -333
  182. package/docs/gateway/pairing.md +0 -99
  183. package/docs/gateway/protocol.md +0 -221
  184. package/docs/gateway/remote-gateway-readme.md +0 -158
  185. package/docs/gateway/remote.md +0 -131
  186. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
  187. package/docs/gateway/sandboxing.md +0 -203
  188. package/docs/gateway/security/index.md +0 -931
  189. package/docs/gateway/tailscale.md +0 -132
  190. package/docs/gateway/tools-invoke-http-api.md +0 -110
  191. package/docs/gateway/troubleshooting.md +0 -317
  192. package/docs/gateway/trusted-proxy-auth.md +0 -270
  193. package/docs/glass-ui-rendering-invariants.md +0 -451
  194. package/docs/help/debugging.md +0 -162
  195. package/docs/help/environment.md +0 -107
  196. package/docs/help/faq.md +0 -2846
  197. package/docs/help/index.md +0 -21
  198. package/docs/help/scripts.md +0 -28
  199. package/docs/help/testing.md +0 -385
  200. package/docs/help/troubleshooting.md +0 -264
  201. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  202. package/docs/images/feishu-step2-create-app.png +0 -0
  203. package/docs/images/feishu-step3-credentials.png +0 -0
  204. package/docs/images/feishu-step4-permissions.png +0 -0
  205. package/docs/images/feishu-step5-bot-capability.png +0 -0
  206. package/docs/images/feishu-step6-event-subscription.png +0 -0
  207. package/docs/images/groups-flow.svg +0 -52
  208. package/docs/images/mobile-ui-screenshot.png +0 -0
  209. package/docs/index.md +0 -186
  210. package/docs/install/ansible.md +0 -207
  211. package/docs/install/bun.md +0 -59
  212. package/docs/install/development-channels.md +0 -75
  213. package/docs/install/docker.md +0 -583
  214. package/docs/install/exe-dev.md +0 -126
  215. package/docs/install/fly.md +0 -472
  216. package/docs/install/gcp.md +0 -499
  217. package/docs/install/hetzner.md +0 -347
  218. package/docs/install/index.md +0 -218
  219. package/docs/install/installer.md +0 -405
  220. package/docs/install/macos-vm.md +0 -281
  221. package/docs/install/migrating.md +0 -192
  222. package/docs/install/nix.md +0 -98
  223. package/docs/install/node.md +0 -138
  224. package/docs/install/northflank.mdx +0 -49
  225. package/docs/install/podman.md +0 -108
  226. package/docs/install/railway.mdx +0 -95
  227. package/docs/install/render.mdx +0 -158
  228. package/docs/install/uninstall.md +0 -128
  229. package/docs/install/updating.md +0 -231
  230. package/docs/ja-JP/AGENTS.md +0 -37
  231. package/docs/ja-JP/index.md +0 -183
  232. package/docs/ja-JP/start/getting-started.md +0 -125
  233. package/docs/ja-JP/start/wizard.md +0 -77
  234. package/docs/logging.md +0 -350
  235. package/docs/nav-tabs-underline.js +0 -100
  236. package/docs/network.md +0 -54
  237. package/docs/nodes/audio.md +0 -133
  238. package/docs/nodes/camera.md +0 -156
  239. package/docs/nodes/images.md +0 -72
  240. package/docs/nodes/index.md +0 -342
  241. package/docs/nodes/location-command.md +0 -113
  242. package/docs/nodes/media-understanding.md +0 -379
  243. package/docs/nodes/talk.md +0 -90
  244. package/docs/nodes/troubleshooting.md +0 -112
  245. package/docs/nodes/voicewake.md +0 -65
  246. package/docs/perplexity.md +0 -80
  247. package/docs/phase-6.5-pre-flight-audit.md +0 -268
  248. package/docs/pi-dev.md +0 -70
  249. package/docs/pi.md +0 -610
  250. package/docs/platforms/android.md +0 -151
  251. package/docs/platforms/digitalocean.md +0 -265
  252. package/docs/platforms/index.md +0 -53
  253. package/docs/platforms/ios.md +0 -108
  254. package/docs/platforms/linux.md +0 -94
  255. package/docs/platforms/mac/bundled-gateway.md +0 -73
  256. package/docs/platforms/mac/canvas.md +0 -125
  257. package/docs/platforms/mac/child-process.md +0 -69
  258. package/docs/platforms/mac/dev-setup.md +0 -104
  259. package/docs/platforms/mac/health.md +0 -34
  260. package/docs/platforms/mac/icon.md +0 -31
  261. package/docs/platforms/mac/logging.md +0 -57
  262. package/docs/platforms/mac/menu-bar.md +0 -81
  263. package/docs/platforms/mac/peekaboo.md +0 -65
  264. package/docs/platforms/mac/permissions.md +0 -50
  265. package/docs/platforms/mac/release.md +0 -85
  266. package/docs/platforms/mac/remote.md +0 -84
  267. package/docs/platforms/mac/signing.md +0 -47
  268. package/docs/platforms/mac/skills.md +0 -33
  269. package/docs/platforms/mac/voice-overlay.md +0 -60
  270. package/docs/platforms/mac/voicewake.md +0 -66
  271. package/docs/platforms/mac/webchat.md +0 -43
  272. package/docs/platforms/mac/xpc.md +0 -61
  273. package/docs/platforms/macos.md +0 -204
  274. package/docs/platforms/oracle.md +0 -303
  275. package/docs/platforms/raspberry-pi.md +0 -358
  276. package/docs/platforms/windows.md +0 -159
  277. package/docs/plugins/agent-tools.md +0 -99
  278. package/docs/plugins/community.md +0 -44
  279. package/docs/plugins/manifest.md +0 -71
  280. package/docs/plugins/voice-call.md +0 -322
  281. package/docs/plugins/zalouser.md +0 -81
  282. package/docs/prose.md +0 -134
  283. package/docs/providers/anthropic.md +0 -174
  284. package/docs/providers/bedrock.md +0 -176
  285. package/docs/providers/claude-max-api-proxy.md +0 -148
  286. package/docs/providers/cloudflare-ai-gateway.md +0 -71
  287. package/docs/providers/deepgram.md +0 -93
  288. package/docs/providers/github-copilot.md +0 -72
  289. package/docs/providers/glm.md +0 -33
  290. package/docs/providers/huggingface.md +0 -209
  291. package/docs/providers/index.md +0 -67
  292. package/docs/providers/litellm.md +0 -153
  293. package/docs/providers/minimax.md +0 -208
  294. package/docs/providers/models.md +0 -52
  295. package/docs/providers/moonshot.md +0 -142
  296. package/docs/providers/nvidia.md +0 -55
  297. package/docs/providers/ollama.md +0 -250
  298. package/docs/providers/openai.md +0 -62
  299. package/docs/providers/opencode.md +0 -36
  300. package/docs/providers/openrouter.md +0 -37
  301. package/docs/providers/qianfan.md +0 -38
  302. package/docs/providers/qwen.md +0 -53
  303. package/docs/providers/synthetic.md +0 -99
  304. package/docs/providers/together.md +0 -65
  305. package/docs/providers/venice.md +0 -267
  306. package/docs/providers/vercel-ai-gateway.md +0 -50
  307. package/docs/providers/vllm.md +0 -92
  308. package/docs/providers/xiaomi.md +0 -64
  309. package/docs/providers/zai.md +0 -38
  310. package/docs/refactor/exec-host.md +0 -316
  311. package/docs/refactor/outbound-session-mirroring.md +0 -83
  312. package/docs/refactor/plugin-sdk.md +0 -214
  313. package/docs/refactor/strict-config.md +0 -93
  314. package/docs/refactor/syminet.md +0 -417
  315. package/docs/reference/AGENTS.default.md +0 -123
  316. package/docs/reference/RELEASING.md +0 -120
  317. package/docs/reference/api-usage-costs.md +0 -138
  318. package/docs/reference/credits.md +0 -28
  319. package/docs/reference/device-models.md +0 -47
  320. package/docs/reference/rpc.md +0 -43
  321. package/docs/reference/session-management-compaction.md +0 -284
  322. package/docs/reference/test.md +0 -51
  323. package/docs/reference/token-use.md +0 -136
  324. package/docs/reference/transcript-hygiene.md +0 -151
  325. package/docs/reference/wizard.md +0 -265
  326. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
  327. package/docs/security/README.md +0 -16
  328. package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
  329. package/docs/security/formal-verification.md +0 -164
  330. package/docs/start/bootstrapping.md +0 -41
  331. package/docs/start/docs-directory.md +0 -63
  332. package/docs/start/getting-started.md +0 -135
  333. package/docs/start/hubs.md +0 -196
  334. package/docs/start/lore.md +0 -216
  335. package/docs/start/onboarding-overview.md +0 -51
  336. package/docs/start/onboarding.md +0 -81
  337. package/docs/start/quickstart.md +0 -22
  338. package/docs/start/setup.md +0 -160
  339. package/docs/start/showcase.md +0 -414
  340. package/docs/start/symi.md +0 -211
  341. package/docs/start/wizard-cli-automation.md +0 -158
  342. package/docs/start/wizard-cli-reference.md +0 -255
  343. package/docs/start/wizard.md +0 -109
  344. package/docs/style.css +0 -37
  345. package/docs/tools/agent-send.md +0 -52
  346. package/docs/tools/apply-patch.md +0 -51
  347. package/docs/tools/browser-linux-troubleshooting.md +0 -139
  348. package/docs/tools/browser-login.md +0 -67
  349. package/docs/tools/browser.md +0 -587
  350. package/docs/tools/chrome-extension.md +0 -183
  351. package/docs/tools/creating-skills.md +0 -54
  352. package/docs/tools/elevated.md +0 -55
  353. package/docs/tools/exec-approvals.md +0 -261
  354. package/docs/tools/exec.md +0 -184
  355. package/docs/tools/firecrawl.md +0 -61
  356. package/docs/tools/index.md +0 -540
  357. package/docs/tools/llm-task.md +0 -115
  358. package/docs/tools/loop-detection.md +0 -98
  359. package/docs/tools/multi-agent-sandbox-tools.md +0 -396
  360. package/docs/tools/pipeline.md +0 -340
  361. package/docs/tools/plugin.md +0 -687
  362. package/docs/tools/reactions.md +0 -21
  363. package/docs/tools/skills-config.md +0 -76
  364. package/docs/tools/skills.md +0 -300
  365. package/docs/tools/slash-commands.md +0 -202
  366. package/docs/tools/subagents.md +0 -232
  367. package/docs/tools/symihub.md +0 -256
  368. package/docs/tools/thinking.md +0 -75
  369. package/docs/tools/web.md +0 -265
  370. package/docs/tts.md +0 -398
  371. package/docs/vps.md +0 -43
  372. package/docs/web/control-ui.md +0 -247
  373. package/docs/web/dashboard.md +0 -46
  374. package/docs/web/index.md +0 -118
  375. package/docs/web/tui.md +0 -162
  376. package/docs/web/webchat.md +0 -53
  377. package/docs/whatsapp-symi-ai-zh.jpg +0 -0
  378. package/docs/whatsapp-symi.jpg +0 -0
  379. package/docs/zh-CN/AGENTS.md +0 -59
  380. package/docs/zh-CN/automation/auth-monitoring.md +0 -47
  381. package/docs/zh-CN/automation/cron-jobs.md +0 -422
  382. package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
  383. package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
  384. package/docs/zh-CN/automation/hooks.md +0 -881
  385. package/docs/zh-CN/automation/poll.md +0 -68
  386. package/docs/zh-CN/automation/troubleshooting.md +0 -8
  387. package/docs/zh-CN/automation/webhook.md +0 -161
  388. package/docs/zh-CN/brave-search.md +0 -48
  389. package/docs/zh-CN/channels/bluebubbles.md +0 -271
  390. package/docs/zh-CN/channels/broadcast-groups.md +0 -448
  391. package/docs/zh-CN/channels/channel-routing.md +0 -112
  392. package/docs/zh-CN/channels/feishu.md +0 -629
  393. package/docs/zh-CN/channels/googlechat.md +0 -257
  394. package/docs/zh-CN/channels/grammy.md +0 -38
  395. package/docs/zh-CN/channels/group-messages.md +0 -89
  396. package/docs/zh-CN/channels/groups.md +0 -369
  397. package/docs/zh-CN/channels/imessage.md +0 -300
  398. package/docs/zh-CN/channels/index.md +0 -52
  399. package/docs/zh-CN/channels/line.md +0 -180
  400. package/docs/zh-CN/channels/location.md +0 -63
  401. package/docs/zh-CN/channels/matrix.md +0 -221
  402. package/docs/zh-CN/channels/mattermost.md +0 -144
  403. package/docs/zh-CN/channels/msteams.md +0 -773
  404. package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
  405. package/docs/zh-CN/channels/nostr.md +0 -240
  406. package/docs/zh-CN/channels/pairing.md +0 -86
  407. package/docs/zh-CN/channels/signal.md +0 -207
  408. package/docs/zh-CN/channels/slack.md +0 -529
  409. package/docs/zh-CN/channels/telegram.md +0 -748
  410. package/docs/zh-CN/channels/tlon.md +0 -136
  411. package/docs/zh-CN/channels/troubleshooting.md +0 -34
  412. package/docs/zh-CN/channels/twitch.md +0 -385
  413. package/docs/zh-CN/channels/whatsapp.md +0 -411
  414. package/docs/zh-CN/channels/zalo.md +0 -196
  415. package/docs/zh-CN/channels/zalouser.md +0 -147
  416. package/docs/zh-CN/cli/acp.md +0 -173
  417. package/docs/zh-CN/cli/agent.md +0 -30
  418. package/docs/zh-CN/cli/agents.md +0 -82
  419. package/docs/zh-CN/cli/approvals.md +0 -57
  420. package/docs/zh-CN/cli/browser.md +0 -114
  421. package/docs/zh-CN/cli/channels.md +0 -80
  422. package/docs/zh-CN/cli/config.md +0 -57
  423. package/docs/zh-CN/cli/configure.md +0 -37
  424. package/docs/zh-CN/cli/cron.md +0 -43
  425. package/docs/zh-CN/cli/dashboard.md +0 -23
  426. package/docs/zh-CN/cli/devices.md +0 -74
  427. package/docs/zh-CN/cli/directory.md +0 -69
  428. package/docs/zh-CN/cli/dns.md +0 -30
  429. package/docs/zh-CN/cli/docs.md +0 -22
  430. package/docs/zh-CN/cli/doctor.md +0 -48
  431. package/docs/zh-CN/cli/gateway.md +0 -206
  432. package/docs/zh-CN/cli/health.md +0 -28
  433. package/docs/zh-CN/cli/hooks.md +0 -298
  434. package/docs/zh-CN/cli/index.md +0 -1025
  435. package/docs/zh-CN/cli/logs.md +0 -31
  436. package/docs/zh-CN/cli/memory.md +0 -52
  437. package/docs/zh-CN/cli/message.md +0 -205
  438. package/docs/zh-CN/cli/models.md +0 -85
  439. package/docs/zh-CN/cli/node.md +0 -115
  440. package/docs/zh-CN/cli/nodes.md +0 -80
  441. package/docs/zh-CN/cli/onboard.md +0 -36
  442. package/docs/zh-CN/cli/pairing.md +0 -28
  443. package/docs/zh-CN/cli/plugins.md +0 -66
  444. package/docs/zh-CN/cli/reset.md +0 -24
  445. package/docs/zh-CN/cli/sandbox.md +0 -158
  446. package/docs/zh-CN/cli/security.md +0 -33
  447. package/docs/zh-CN/cli/sessions.md +0 -23
  448. package/docs/zh-CN/cli/setup.md +0 -36
  449. package/docs/zh-CN/cli/skills.md +0 -33
  450. package/docs/zh-CN/cli/status.md +0 -32
  451. package/docs/zh-CN/cli/system.md +0 -63
  452. package/docs/zh-CN/cli/tui.md +0 -30
  453. package/docs/zh-CN/cli/uninstall.md +0 -24
  454. package/docs/zh-CN/cli/update.md +0 -101
  455. package/docs/zh-CN/cli/voicecall.md +0 -41
  456. package/docs/zh-CN/cli/webhooks.md +0 -32
  457. package/docs/zh-CN/concepts/agent-loop.md +0 -146
  458. package/docs/zh-CN/concepts/agent-workspace.md +0 -219
  459. package/docs/zh-CN/concepts/agent.md +0 -115
  460. package/docs/zh-CN/concepts/architecture.md +0 -122
  461. package/docs/zh-CN/concepts/compaction.md +0 -67
  462. package/docs/zh-CN/concepts/context.md +0 -168
  463. package/docs/zh-CN/concepts/features.md +0 -57
  464. package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
  465. package/docs/zh-CN/concepts/memory.md +0 -412
  466. package/docs/zh-CN/concepts/messages.md +0 -140
  467. package/docs/zh-CN/concepts/model-failover.md +0 -145
  468. package/docs/zh-CN/concepts/model-providers.md +0 -320
  469. package/docs/zh-CN/concepts/models.md +0 -196
  470. package/docs/zh-CN/concepts/multi-agent.md +0 -371
  471. package/docs/zh-CN/concepts/oauth.md +0 -151
  472. package/docs/zh-CN/concepts/presence.md +0 -99
  473. package/docs/zh-CN/concepts/queue.md +0 -91
  474. package/docs/zh-CN/concepts/retry.md +0 -71
  475. package/docs/zh-CN/concepts/session-pruning.md +0 -129
  476. package/docs/zh-CN/concepts/session-tool.md +0 -198
  477. package/docs/zh-CN/concepts/session.md +0 -158
  478. package/docs/zh-CN/concepts/sessions.md +0 -17
  479. package/docs/zh-CN/concepts/streaming.md +0 -131
  480. package/docs/zh-CN/concepts/system-prompt.md +0 -99
  481. package/docs/zh-CN/concepts/timezone.md +0 -94
  482. package/docs/zh-CN/concepts/typebox.md +0 -284
  483. package/docs/zh-CN/concepts/typing-indicators.md +0 -74
  484. package/docs/zh-CN/concepts/usage-tracking.md +0 -42
  485. package/docs/zh-CN/date-time.md +0 -128
  486. package/docs/zh-CN/debug/node-issue.md +0 -90
  487. package/docs/zh-CN/diagnostics/flags.md +0 -98
  488. package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
  489. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
  490. package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
  491. package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
  492. package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
  493. package/docs/zh-CN/experiments/research/memory.md +0 -235
  494. package/docs/zh-CN/gateway/authentication.md +0 -142
  495. package/docs/zh-CN/gateway/background-process.md +0 -100
  496. package/docs/zh-CN/gateway/bonjour.md +0 -174
  497. package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
  498. package/docs/zh-CN/gateway/cli-backends.md +0 -213
  499. package/docs/zh-CN/gateway/configuration-examples.md +0 -580
  500. package/docs/zh-CN/gateway/configuration.md +0 -3284
  501. package/docs/zh-CN/gateway/discovery.md +0 -123
  502. package/docs/zh-CN/gateway/doctor.md +0 -238
  503. package/docs/zh-CN/gateway/gateway-lock.md +0 -41
  504. package/docs/zh-CN/gateway/health.md +0 -42
  505. package/docs/zh-CN/gateway/heartbeat.md +0 -272
  506. package/docs/zh-CN/gateway/index.md +0 -335
  507. package/docs/zh-CN/gateway/local-models.md +0 -157
  508. package/docs/zh-CN/gateway/logging.md +0 -114
  509. package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
  510. package/docs/zh-CN/gateway/network-model.md +0 -23
  511. package/docs/zh-CN/gateway/openai-http-api.md +0 -125
  512. package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
  513. package/docs/zh-CN/gateway/pairing.md +0 -99
  514. package/docs/zh-CN/gateway/protocol.md +0 -220
  515. package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
  516. package/docs/zh-CN/gateway/remote.md +0 -133
  517. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
  518. package/docs/zh-CN/gateway/sandboxing.md +0 -188
  519. package/docs/zh-CN/gateway/security/index.md +0 -772
  520. package/docs/zh-CN/gateway/tailscale.md +0 -124
  521. package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
  522. package/docs/zh-CN/gateway/troubleshooting.md +0 -758
  523. package/docs/zh-CN/help/debugging.md +0 -160
  524. package/docs/zh-CN/help/environment.md +0 -88
  525. package/docs/zh-CN/help/faq.md +0 -2613
  526. package/docs/zh-CN/help/index.md +0 -28
  527. package/docs/zh-CN/help/scripts.md +0 -35
  528. package/docs/zh-CN/help/testing.md +0 -375
  529. package/docs/zh-CN/help/troubleshooting.md +0 -104
  530. package/docs/zh-CN/index.md +0 -183
  531. package/docs/zh-CN/install/ansible.md +0 -214
  532. package/docs/zh-CN/install/bun.md +0 -65
  533. package/docs/zh-CN/install/development-channels.md +0 -81
  534. package/docs/zh-CN/install/docker.md +0 -525
  535. package/docs/zh-CN/install/exe-dev.md +0 -127
  536. package/docs/zh-CN/install/fly.md +0 -476
  537. package/docs/zh-CN/install/gcp.md +0 -509
  538. package/docs/zh-CN/install/hetzner.md +0 -336
  539. package/docs/zh-CN/install/index.md +0 -193
  540. package/docs/zh-CN/install/installer.md +0 -128
  541. package/docs/zh-CN/install/macos-vm.md +0 -288
  542. package/docs/zh-CN/install/migrating.md +0 -199
  543. package/docs/zh-CN/install/nix.md +0 -99
  544. package/docs/zh-CN/install/node.md +0 -8
  545. package/docs/zh-CN/install/northflank.mdx +0 -56
  546. package/docs/zh-CN/install/railway.mdx +0 -102
  547. package/docs/zh-CN/install/render.mdx +0 -168
  548. package/docs/zh-CN/install/uninstall.md +0 -135
  549. package/docs/zh-CN/install/updating.md +0 -233
  550. package/docs/zh-CN/logging.md +0 -329
  551. package/docs/zh-CN/network.md +0 -59
  552. package/docs/zh-CN/nodes/audio.md +0 -120
  553. package/docs/zh-CN/nodes/camera.md +0 -162
  554. package/docs/zh-CN/nodes/images.md +0 -79
  555. package/docs/zh-CN/nodes/index.md +0 -348
  556. package/docs/zh-CN/nodes/location-command.md +0 -120
  557. package/docs/zh-CN/nodes/media-understanding.md +0 -380
  558. package/docs/zh-CN/nodes/talk.md +0 -97
  559. package/docs/zh-CN/nodes/troubleshooting.md +0 -8
  560. package/docs/zh-CN/nodes/voicewake.md +0 -72
  561. package/docs/zh-CN/perplexity.md +0 -84
  562. package/docs/zh-CN/pi-dev.md +0 -77
  563. package/docs/zh-CN/pi.md +0 -617
  564. package/docs/zh-CN/platforms/android.md +0 -155
  565. package/docs/zh-CN/platforms/digitalocean.md +0 -268
  566. package/docs/zh-CN/platforms/index.md +0 -60
  567. package/docs/zh-CN/platforms/ios.md +0 -114
  568. package/docs/zh-CN/platforms/linux.md +0 -101
  569. package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
  570. package/docs/zh-CN/platforms/mac/canvas.md +0 -128
  571. package/docs/zh-CN/platforms/mac/child-process.md +0 -73
  572. package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
  573. package/docs/zh-CN/platforms/mac/health.md +0 -41
  574. package/docs/zh-CN/platforms/mac/icon.md +0 -38
  575. package/docs/zh-CN/platforms/mac/logging.md +0 -64
  576. package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
  577. package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
  578. package/docs/zh-CN/platforms/mac/permissions.md +0 -46
  579. package/docs/zh-CN/platforms/mac/release.md +0 -92
  580. package/docs/zh-CN/platforms/mac/remote.md +0 -90
  581. package/docs/zh-CN/platforms/mac/signing.md +0 -54
  582. package/docs/zh-CN/platforms/mac/skills.md +0 -40
  583. package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
  584. package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
  585. package/docs/zh-CN/platforms/mac/webchat.md +0 -43
  586. package/docs/zh-CN/platforms/mac/xpc.md +0 -68
  587. package/docs/zh-CN/platforms/macos.md +0 -193
  588. package/docs/zh-CN/platforms/oracle.md +0 -310
  589. package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
  590. package/docs/zh-CN/platforms/windows.md +0 -156
  591. package/docs/zh-CN/plugins/agent-tools.md +0 -99
  592. package/docs/zh-CN/plugins/manifest.md +0 -68
  593. package/docs/zh-CN/plugins/voice-call.md +0 -250
  594. package/docs/zh-CN/plugins/zalouser.md +0 -88
  595. package/docs/zh-CN/prose.md +0 -141
  596. package/docs/zh-CN/providers/anthropic.md +0 -159
  597. package/docs/zh-CN/providers/bedrock.md +0 -170
  598. package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
  599. package/docs/zh-CN/providers/deepgram.md +0 -97
  600. package/docs/zh-CN/providers/github-copilot.md +0 -67
  601. package/docs/zh-CN/providers/glm.md +0 -39
  602. package/docs/zh-CN/providers/index.md +0 -66
  603. package/docs/zh-CN/providers/minimax.md +0 -206
  604. package/docs/zh-CN/providers/models.md +0 -55
  605. package/docs/zh-CN/providers/moonshot.md +0 -145
  606. package/docs/zh-CN/providers/ollama.md +0 -230
  607. package/docs/zh-CN/providers/openai.md +0 -68
  608. package/docs/zh-CN/providers/opencode.md +0 -41
  609. package/docs/zh-CN/providers/openrouter.md +0 -43
  610. package/docs/zh-CN/providers/qianfan.md +0 -8
  611. package/docs/zh-CN/providers/qwen.md +0 -55
  612. package/docs/zh-CN/providers/synthetic.md +0 -102
  613. package/docs/zh-CN/providers/venice.md +0 -274
  614. package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
  615. package/docs/zh-CN/providers/xiaomi.md +0 -68
  616. package/docs/zh-CN/providers/zai.md +0 -41
  617. package/docs/zh-CN/refactor/exec-host.md +0 -323
  618. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
  619. package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
  620. package/docs/zh-CN/refactor/strict-config.md +0 -100
  621. package/docs/zh-CN/refactor/syminet.md +0 -424
  622. package/docs/zh-CN/reference/AGENTS.default.md +0 -130
  623. package/docs/zh-CN/reference/RELEASING.md +0 -122
  624. package/docs/zh-CN/reference/api-usage-costs.md +0 -136
  625. package/docs/zh-CN/reference/credits.md +0 -34
  626. package/docs/zh-CN/reference/device-models.md +0 -54
  627. package/docs/zh-CN/reference/rpc.md +0 -48
  628. package/docs/zh-CN/reference/session-management-compaction.md +0 -286
  629. package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
  630. package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
  631. package/docs/zh-CN/reference/templates/BOOT.md +0 -17
  632. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
  633. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
  634. package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
  635. package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
  636. package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
  637. package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
  638. package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
  639. package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
  640. package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
  641. package/docs/zh-CN/reference/templates/USER.md +0 -30
  642. package/docs/zh-CN/reference/test.md +0 -57
  643. package/docs/zh-CN/reference/token-use.md +0 -119
  644. package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
  645. package/docs/zh-CN/reference/wizard.md +0 -9
  646. package/docs/zh-CN/security/formal-verification.md +0 -171
  647. package/docs/zh-CN/start/bootstrapping.md +0 -9
  648. package/docs/zh-CN/start/docs-directory.md +0 -69
  649. package/docs/zh-CN/start/getting-started.md +0 -201
  650. package/docs/zh-CN/start/hubs.md +0 -199
  651. package/docs/zh-CN/start/lore.md +0 -223
  652. package/docs/zh-CN/start/onboarding.md +0 -105
  653. package/docs/zh-CN/start/quickstart.md +0 -88
  654. package/docs/zh-CN/start/setup.md +0 -151
  655. package/docs/zh-CN/start/showcase.md +0 -421
  656. package/docs/zh-CN/start/symi.md +0 -244
  657. package/docs/zh-CN/start/wizard.md +0 -326
  658. package/docs/zh-CN/tools/agent-send.md +0 -58
  659. package/docs/zh-CN/tools/apply-patch.md +0 -57
  660. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
  661. package/docs/zh-CN/tools/browser-login.md +0 -75
  662. package/docs/zh-CN/tools/browser.md +0 -553
  663. package/docs/zh-CN/tools/chrome-extension.md +0 -183
  664. package/docs/zh-CN/tools/creating-skills.md +0 -61
  665. package/docs/zh-CN/tools/elevated.md +0 -62
  666. package/docs/zh-CN/tools/exec-approvals.md +0 -233
  667. package/docs/zh-CN/tools/exec.md +0 -169
  668. package/docs/zh-CN/tools/firecrawl.md +0 -68
  669. package/docs/zh-CN/tools/index.md +0 -508
  670. package/docs/zh-CN/tools/llm-task.md +0 -117
  671. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
  672. package/docs/zh-CN/tools/pipeline.md +0 -349
  673. package/docs/zh-CN/tools/plugin.md +0 -639
  674. package/docs/zh-CN/tools/reactions.md +0 -28
  675. package/docs/zh-CN/tools/skills-config.md +0 -78
  676. package/docs/zh-CN/tools/skills.md +0 -279
  677. package/docs/zh-CN/tools/slash-commands.md +0 -196
  678. package/docs/zh-CN/tools/subagents.md +0 -167
  679. package/docs/zh-CN/tools/symihub.md +0 -209
  680. package/docs/zh-CN/tools/thinking.md +0 -80
  681. package/docs/zh-CN/tools/web.md +0 -257
  682. package/docs/zh-CN/tts.md +0 -373
  683. package/docs/zh-CN/vps.md +0 -47
  684. package/docs/zh-CN/web/control-ui.md +0 -190
  685. package/docs/zh-CN/web/dashboard.md +0 -53
  686. package/docs/zh-CN/web/index.md +0 -118
  687. package/docs/zh-CN/web/tui.md +0 -166
  688. package/docs/zh-CN/web/webchat.md +0 -56
@@ -1,444 +0,0 @@
1
- ---
2
- summary: "WhatsApp channel support, access controls, delivery behavior, and operations"
3
- read_when:
4
- - Working on WhatsApp/web channel behavior or inbox routing
5
- title: "WhatsApp"
6
- ---
7
-
8
- # WhatsApp (Web channel)
9
-
10
- Status: production-ready via WhatsApp Web (Baileys). Gateway owns linked session(s).
11
-
12
- <CardGroup cols={3}>
13
- <Card title="Pairing" icon="link" href="/channels/pairing">
14
- Default DM policy is pairing for unknown senders.
15
- </Card>
16
- <Card title="Channel troubleshooting" icon="wrench" href="/channels/troubleshooting">
17
- Cross-channel diagnostics and repair playbooks.
18
- </Card>
19
- <Card title="Gateway configuration" icon="settings" href="/gateway/configuration">
20
- Full channel config patterns and examples.
21
- </Card>
22
- </CardGroup>
23
-
24
- ## Onboarding
25
-
26
- <Steps>
27
- <Step title="Configure WhatsApp access policy">
28
-
29
- ```json5
30
- {
31
- channels: {
32
- whatsapp: {
33
- dmPolicy: "pairing",
34
- allowFrom: ["+15551234567"],
35
- groupPolicy: "allowlist",
36
- groupAllowFrom: ["+15551234567"],
37
- },
38
- },
39
- }
40
- ```
41
-
42
- </Step>
43
-
44
- <Step title="Link WhatsApp (QR)">
45
-
46
- ```bash
47
- symi channels login --channel whatsapp
48
- ```
49
-
50
- For a specific account:
51
-
52
- ```bash
53
- symi channels login --channel whatsapp --account work
54
- ```
55
-
56
- </Step>
57
-
58
- <Step title="Start the gateway">
59
-
60
- ```bash
61
- symi gateway
62
- ```
63
-
64
- </Step>
65
-
66
- <Step title="Approve first pairing request (if using pairing mode)">
67
-
68
- ```bash
69
- symi pairing list whatsapp
70
- symi pairing approve whatsapp <CODE>
71
- ```
72
-
73
- Pairing requests expire after 1 hour. Pending requests are capped at 3 per channel.
74
-
75
- </Step>
76
- </Steps>
77
-
78
- <Note>
79
- Symi recommends running WhatsApp on a separate number when possible. (The channel metadata and onboarding flow are optimized for that setup, but personal-number setups are also supported.)
80
- </Note>
81
-
82
- ## Deployment patterns
83
-
84
- <AccordionGroup>
85
- <Accordion title="Dedicated number (recommended)">
86
- This is the cleanest operational mode:
87
-
88
- - separate WhatsApp identity for Symi
89
- - clearer DM allowlists and routing boundaries
90
- - lower chance of self-chat confusion
91
-
92
- Minimal policy pattern:
93
-
94
- ```json5
95
- {
96
- channels: {
97
- whatsapp: {
98
- dmPolicy: "allowlist",
99
- allowFrom: ["+15551234567"],
100
- },
101
- },
102
- }
103
- ```
104
-
105
- </Accordion>
106
-
107
- <Accordion title="Personal-number fallback">
108
- Onboarding supports personal-number mode and writes a self-chat-friendly baseline:
109
-
110
- - `dmPolicy: "allowlist"`
111
- - `allowFrom` includes your personal number
112
- - `selfChatMode: true`
113
-
114
- In runtime, self-chat protections key off the linked self number and `allowFrom`.
115
-
116
- </Accordion>
117
-
118
- <Accordion title="WhatsApp Web-only channel scope">
119
- The messaging platform channel is WhatsApp Web-based (`Baileys`) in current Symi channel architecture.
120
-
121
- There is no separate Twilio WhatsApp messaging channel in the built-in chat-channel registry.
122
-
123
- </Accordion>
124
- </AccordionGroup>
125
-
126
- ## Runtime model
127
-
128
- - Gateway owns the WhatsApp socket and reconnect loop.
129
- - Outbound sends require an active WhatsApp listener for the target account.
130
- - Status and broadcast chats are ignored (`@status`, `@broadcast`).
131
- - Direct chats use DM session rules (`session.dmScope`; default `main` collapses DMs to the agent main session).
132
- - Group sessions are isolated (`agent:<agentId>:whatsapp:group:<jid>`).
133
-
134
- ## Access control and activation
135
-
136
- <Tabs>
137
- <Tab title="DM policy">
138
- `channels.whatsapp.dmPolicy` controls direct chat access:
139
-
140
- - `pairing` (default)
141
- - `allowlist`
142
- - `open` (requires `allowFrom` to include `"*"`)
143
- - `disabled`
144
-
145
- `allowFrom` accepts E.164-style numbers (normalized internally).
146
-
147
- Multi-account override: `channels.whatsapp.accounts.<id>.dmPolicy` (and `allowFrom`) take precedence over channel-level defaults for that account.
148
-
149
- Runtime behavior details:
150
-
151
- - pairings are persisted in channel allow-store and merged with configured `allowFrom`
152
- - if no allowlist is configured, the linked self number is allowed by default
153
- - outbound `fromMe` DMs are never auto-paired
154
-
155
- </Tab>
156
-
157
- <Tab title="Group policy + allowlists">
158
- Group access has two layers:
159
-
160
- 1. **Group membership allowlist** (`channels.whatsapp.groups`)
161
- - if `groups` is omitted, all groups are eligible
162
- - if `groups` is present, it acts as a group allowlist (`"*"` allowed)
163
-
164
- 2. **Group sender policy** (`channels.whatsapp.groupPolicy` + `groupAllowFrom`)
165
- - `open`: sender allowlist bypassed
166
- - `allowlist`: sender must match `groupAllowFrom` (or `*`)
167
- - `disabled`: block all group inbound
168
-
169
- Sender allowlist fallback:
170
-
171
- - if `groupAllowFrom` is unset, runtime falls back to `allowFrom` when available
172
- - sender allowlists are evaluated before mention/reply activation
173
-
174
- Note: if no `channels.whatsapp` block exists at all, runtime group-policy fallback is effectively `open`.
175
-
176
- </Tab>
177
-
178
- <Tab title="Mentions + /activation">
179
- Group replies require mention by default.
180
-
181
- Mention detection includes:
182
-
183
- - explicit WhatsApp mentions of the bot identity
184
- - configured mention regex patterns (`agents.list[].groupChat.mentionPatterns`, fallback `messages.groupChat.mentionPatterns`)
185
- - implicit reply-to-bot detection (reply sender matches bot identity)
186
-
187
- Security note:
188
-
189
- - quote/reply only satisfies mention gating; it does **not** grant sender authorization
190
- - with `groupPolicy: "allowlist"`, non-allowlisted senders are still blocked even if they reply to an allowlisted user's message
191
-
192
- Session-level activation command:
193
-
194
- - `/activation mention`
195
- - `/activation always`
196
-
197
- `activation` updates session state (not global config). It is owner-gated.
198
-
199
- </Tab>
200
- </Tabs>
201
-
202
- ## Personal-number and self-chat behavior
203
-
204
- When the linked self number is also present in `allowFrom`, WhatsApp self-chat safeguards activate:
205
-
206
- - skip read receipts for self-chat turns
207
- - ignore mention-JID auto-trigger behavior that would otherwise ping yourself
208
- - if `messages.responsePrefix` is unset, self-chat replies default to `[{identity.name}]` or `[symi]`
209
-
210
- ## Message normalization and context
211
-
212
- <AccordionGroup>
213
- <Accordion title="Inbound envelope + reply context">
214
- Incoming WhatsApp messages are wrapped in the shared inbound envelope.
215
-
216
- If a quoted reply exists, context is appended in this form:
217
-
218
- ```text
219
- [Replying to <sender> id:<stanzaId>]
220
- <quoted body or media placeholder>
221
- [/Replying]
222
- ```
223
-
224
- Reply metadata fields are also populated when available (`ReplyToId`, `ReplyToBody`, `ReplyToSender`, sender JID/E.164).
225
-
226
- </Accordion>
227
-
228
- <Accordion title="Media placeholders and location/contact extraction">
229
- Media-only inbound messages are normalized with placeholders such as:
230
-
231
- - `<media:image>`
232
- - `<media:video>`
233
- - `<media:audio>`
234
- - `<media:document>`
235
- - `<media:sticker>`
236
-
237
- Location and contact payloads are normalized into textual context before routing.
238
-
239
- </Accordion>
240
-
241
- <Accordion title="Pending group history injection">
242
- For groups, unprocessed messages can be buffered and injected as context when the bot is finally triggered.
243
-
244
- - default limit: `50`
245
- - config: `channels.whatsapp.historyLimit`
246
- - fallback: `messages.groupChat.historyLimit`
247
- - `0` disables
248
-
249
- Injection markers:
250
-
251
- - `[Chat messages since your last reply - for context]`
252
- - `[Current message - respond to this]`
253
-
254
- </Accordion>
255
-
256
- <Accordion title="Read receipts">
257
- Read receipts are enabled by default for accepted inbound WhatsApp messages.
258
-
259
- Disable globally:
260
-
261
- ```json5
262
- {
263
- channels: {
264
- whatsapp: {
265
- sendReadReceipts: false,
266
- },
267
- },
268
- }
269
- ```
270
-
271
- Per-account override:
272
-
273
- ```json5
274
- {
275
- channels: {
276
- whatsapp: {
277
- accounts: {
278
- work: {
279
- sendReadReceipts: false,
280
- },
281
- },
282
- },
283
- },
284
- }
285
- ```
286
-
287
- Self-chat turns skip read receipts even when globally enabled.
288
-
289
- </Accordion>
290
- </AccordionGroup>
291
-
292
- ## Delivery, chunking, and media
293
-
294
- <AccordionGroup>
295
- <Accordion title="Text chunking">
296
- - default chunk limit: `channels.whatsapp.textChunkLimit = 4000`
297
- - `channels.whatsapp.chunkMode = "length" | "newline"`
298
- - `newline` mode prefers paragraph boundaries (blank lines), then falls back to length-safe chunking
299
- </Accordion>
300
-
301
- <Accordion title="Outbound media behavior">
302
- - supports image, video, audio (PTT voice-note), and document payloads
303
- - `audio/ogg` is rewritten to `audio/ogg; codecs=opus` for voice-note compatibility
304
- - animated GIF playback is supported via `gifPlayback: true` on video sends
305
- - captions are applied to the first media item when sending multi-media reply payloads
306
- - media source can be HTTP(S), `file://`, or local paths
307
- </Accordion>
308
-
309
- <Accordion title="Media size limits and fallback behavior">
310
- - inbound media save cap: `channels.whatsapp.mediaMaxMb` (default `50`)
311
- - outbound media cap for auto-replies: `agents.defaults.mediaMaxMb` (default `5MB`)
312
- - images are auto-optimized (resize/quality sweep) to fit limits
313
- - on media send failure, first-item fallback sends text warning instead of dropping the response silently
314
- </Accordion>
315
- </AccordionGroup>
316
-
317
- ## Acknowledgment reactions
318
-
319
- WhatsApp supports immediate ack reactions on inbound receipt via `channels.whatsapp.ackReaction`.
320
-
321
- ```json5
322
- {
323
- channels: {
324
- whatsapp: {
325
- ackReaction: {
326
- emoji: "👀",
327
- direct: true,
328
- group: "mentions", // always | mentions | never
329
- },
330
- },
331
- },
332
- }
333
- ```
334
-
335
- Behavior notes:
336
-
337
- - sent immediately after inbound is accepted (pre-reply)
338
- - failures are logged but do not block normal reply delivery
339
- - group mode `mentions` reacts on mention-triggered turns; group activation `always` acts as bypass for this check
340
- - WhatsApp uses `channels.whatsapp.ackReaction` (legacy `messages.ackReaction` is not used here)
341
-
342
- ## Multi-account and credentials
343
-
344
- <AccordionGroup>
345
- <Accordion title="Account selection and defaults">
346
- - account ids come from `channels.whatsapp.accounts`
347
- - default account selection: `default` if present, otherwise first configured account id (sorted)
348
- - account ids are normalized internally for lookup
349
- </Accordion>
350
-
351
- <Accordion title="Credential paths and legacy compatibility">
352
- - current auth path: `~/.symi/credentials/whatsapp/<accountId>/creds.json`
353
- - backup file: `creds.json.bak`
354
- - legacy default auth in `~/.symi/credentials/` is still recognized/migrated for default-account flows
355
- </Accordion>
356
-
357
- <Accordion title="Logout behavior">
358
- `symi channels logout --channel whatsapp [--account <id>]` clears WhatsApp auth state for that account.
359
-
360
- In legacy auth directories, `oauth.json` is preserved while Baileys auth files are removed.
361
-
362
- </Accordion>
363
- </AccordionGroup>
364
-
365
- ## Tools, actions, and config writes
366
-
367
- - Agent tool support includes WhatsApp reaction action (`react`).
368
- - Action gates:
369
- - `channels.whatsapp.actions.reactions`
370
- - `channels.whatsapp.actions.polls`
371
- - Channel-initiated config writes are enabled by default (disable via `channels.whatsapp.configWrites=false`).
372
-
373
- ## Troubleshooting
374
-
375
- <AccordionGroup>
376
- <Accordion title="Not linked (QR required)">
377
- Symptom: channel status reports not linked.
378
-
379
- Fix:
380
-
381
- ```bash
382
- symi channels login --channel whatsapp
383
- symi channels status
384
- ```
385
-
386
- </Accordion>
387
-
388
- <Accordion title="Linked but disconnected / reconnect loop">
389
- Symptom: linked account with repeated disconnects or reconnect attempts.
390
-
391
- Fix:
392
-
393
- ```bash
394
- symi doctor
395
- symi logs --follow
396
- ```
397
-
398
- If needed, re-link with `channels login`.
399
-
400
- </Accordion>
401
-
402
- <Accordion title="No active listener when sending">
403
- Outbound sends fail fast when no active gateway listener exists for the target account.
404
-
405
- Make sure gateway is running and the account is linked.
406
-
407
- </Accordion>
408
-
409
- <Accordion title="Group messages unexpectedly ignored">
410
- Check in this order:
411
-
412
- - `groupPolicy`
413
- - `groupAllowFrom` / `allowFrom`
414
- - `groups` allowlist entries
415
- - mention gating (`requireMention` + mention patterns)
416
- - duplicate keys in `symi.json` (JSON5): later entries override earlier ones, so keep a single `groupPolicy` per scope
417
-
418
- </Accordion>
419
-
420
- <Accordion title="Bun runtime warning">
421
- WhatsApp gateway runtime should use Node. Bun is flagged as incompatible for stable WhatsApp/Telegram gateway operation.
422
- </Accordion>
423
- </AccordionGroup>
424
-
425
- ## Configuration
426
-
427
- Primary reference:
428
-
429
- - [Configuration reference - WhatsApp](/gateway/configuration-reference#whatsapp)
430
-
431
- High-signal WhatsApp fields:
432
-
433
- - access: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`
434
- - delivery: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `sendReadReceipts`, `ackReaction`
435
- - multi-account: `accounts.<id>.enabled`, `accounts.<id>.authDir`, account-level overrides
436
- - operations: `configWrites`, `debounceMs`, `web.enabled`, `web.heartbeatSeconds`, `web.reconnect.*`
437
- - session behavior: `session.dmScope`, `historyLimit`, `dmHistoryLimit`, `dms.<id>.historyLimit`
438
-
439
- ## Related
440
-
441
- - [Pairing](/channels/pairing)
442
- - [Channel routing](/channels/channel-routing)
443
- - [Multi-agent routing](/concepts/multi-agent)
444
- - [Troubleshooting](/channels/troubleshooting)
@@ -1,192 +0,0 @@
1
- ---
2
- summary: "Zalo bot support status, capabilities, and configuration"
3
- read_when:
4
- - Working on Zalo features or webhooks
5
- title: "Zalo"
6
- ---
7
-
8
- # Zalo (Bot API)
9
-
10
- Status: experimental. Direct messages only; groups coming soon per Zalo docs.
11
-
12
- ## Plugin required
13
-
14
- Zalo ships as a plugin and is not bundled with the core install.
15
-
16
- - Install via CLI: `symi plugins install @symi/zalo`
17
- - Or select **Zalo** during onboarding and confirm the install prompt
18
- - Details: [Plugins](/tools/plugin)
19
-
20
- ## Onboarding
21
-
22
- 1. Install the Zalo plugin:
23
- - From a source checkout: `symi plugins install ./extensions/zalo`
24
- - From npm (if published): `symi plugins install @symi/zalo`
25
- - Or pick **Zalo** in onboarding and confirm the install prompt
26
- 2. Set the token:
27
- - Env: `ZALO_BOT_TOKEN=...`
28
- - Or config: `channels.zalo.botToken: "..."`.
29
- 3. Restart the gateway (or finish onboarding).
30
- 4. DM access is pairing by default; approve the pairing code on first contact.
31
-
32
- Minimal config:
33
-
34
- ```json5
35
- {
36
- channels: {
37
- zalo: {
38
- enabled: true,
39
- botToken: "12345689:abc-xyz",
40
- dmPolicy: "pairing",
41
- },
42
- },
43
- }
44
- ```
45
-
46
- ## What it is
47
-
48
- Zalo is a Vietnam-focused messaging app; its Bot API lets the Gateway run a bot for 1:1 conversations.
49
- It is a good fit for support or notifications where you want deterministic routing back to Zalo.
50
-
51
- - A Zalo Bot API channel owned by the Gateway.
52
- - Deterministic routing: replies go back to Zalo; the model never chooses channels.
53
- - DMs share the agent's main session.
54
- - Groups are not yet supported (Zalo docs state "coming soon").
55
-
56
- ## Onboarding (quick path)
57
-
58
- ### 1) Create a bot token (Zalo Bot Platform)
59
-
60
- 1. Go to [https://bot.zaloplatforms.com](https://bot.zaloplatforms.com) and sign in.
61
- 2. Create a new bot and configure its settings.
62
- 3. Copy the bot token (format: `12345689:abc-xyz`).
63
-
64
- ### 2) Configure the token (env or config)
65
-
66
- Example:
67
-
68
- ```json5
69
- {
70
- channels: {
71
- zalo: {
72
- enabled: true,
73
- botToken: "12345689:abc-xyz",
74
- dmPolicy: "pairing",
75
- },
76
- },
77
- }
78
- ```
79
-
80
- Env option: `ZALO_BOT_TOKEN=...` (works for the default account only).
81
-
82
- Multi-account support: use `channels.zalo.accounts` with per-account tokens and optional `name`.
83
-
84
- 3. Restart the gateway. Zalo starts when a token is resolved (env or config).
85
- 4. DM access defaults to pairing. Approve the code when the bot is first contacted.
86
-
87
- ## How it works (behavior)
88
-
89
- - Inbound messages are normalized into the shared channel envelope with media placeholders.
90
- - Replies always route back to the same Zalo chat.
91
- - Long-polling by default; webhook mode available with `channels.zalo.webhookUrl`.
92
-
93
- ## Limits
94
-
95
- - Outbound text is chunked to 2000 characters (Zalo API limit).
96
- - Media downloads/uploads are capped by `channels.zalo.mediaMaxMb` (default 5).
97
- - Streaming is blocked by default due to the 2000 char limit making streaming less useful.
98
-
99
- ## Access control (DMs)
100
-
101
- ### DM access
102
-
103
- - Default: `channels.zalo.dmPolicy = "pairing"`. Unknown senders receive a pairing code; messages are ignored until approved (codes expire after 1 hour).
104
- - Approve via:
105
- - `symi pairing list zalo`
106
- - `symi pairing approve zalo <CODE>`
107
- - Pairing is the default token exchange. Details: [Pairing](/channels/pairing)
108
- - `channels.zalo.allowFrom` accepts numeric user IDs (no username lookup available).
109
-
110
- ## Long-polling vs webhook
111
-
112
- - Default: long-polling (no public URL required).
113
- - Webhook mode: set `channels.zalo.webhookUrl` and `channels.zalo.webhookSecret`.
114
- - The webhook secret must be 8-256 characters.
115
- - Webhook URL must use HTTPS.
116
- - Zalo sends events with `X-Bot-Api-Secret-Token` header for verification.
117
- - Gateway HTTP handles webhook requests at `channels.zalo.webhookPath` (defaults to the webhook URL path).
118
- - Requests must use `Content-Type: application/json` (or `+json` media types).
119
- - Duplicate events (`event_name + message_id`) are ignored for a short replay window.
120
- - Burst traffic is rate-limited per path/source and may return HTTP 429.
121
-
122
- **Note:** getUpdates (polling) and webhook are mutually exclusive per Zalo API docs.
123
-
124
- ## Supported message types
125
-
126
- - **Text messages**: Full support with 2000 character chunking.
127
- - **Image messages**: Download and process inbound images; send images via `sendPhoto`.
128
- - **Stickers**: Logged but not fully processed (no agent response).
129
- - **Unsupported types**: Logged (e.g., messages from protected users).
130
-
131
- ## Capabilities
132
-
133
- | Feature | Status |
134
- | --------------- | ------------------------------ |
135
- | Direct messages | ✅ Supported |
136
- | Groups | ❌ Coming soon (per Zalo docs) |
137
- | Media (images) | ✅ Supported |
138
- | Reactions | ❌ Not supported |
139
- | Threads | ❌ Not supported |
140
- | Polls | ❌ Not supported |
141
- | Native commands | ❌ Not supported |
142
- | Streaming | ⚠️ Blocked (2000 char limit) |
143
-
144
- ## Delivery targets (CLI/cron)
145
-
146
- - Use a chat id as the target.
147
- - Example: `symi message send --channel zalo --target 123456789 --message "hi"`.
148
-
149
- ## Troubleshooting
150
-
151
- **Bot doesn't respond:**
152
-
153
- - Check that the token is valid: `symi channels status --probe`
154
- - Verify the sender is approved (pairing or allowFrom)
155
- - Check gateway logs: `symi logs --follow`
156
-
157
- **Webhook not receiving events:**
158
-
159
- - Ensure webhook URL uses HTTPS
160
- - Verify secret token is 8-256 characters
161
- - Confirm the gateway HTTP endpoint is reachable on the configured path
162
- - Check that getUpdates polling is not running (they're mutually exclusive)
163
-
164
- ## Configuration
165
-
166
- Full configuration: [Configuration](/gateway/configuration)
167
-
168
- Provider options:
169
-
170
- - `channels.zalo.enabled`: enable/disable channel startup.
171
- - `channels.zalo.botToken`: bot token from Zalo Bot Platform.
172
- - `channels.zalo.tokenFile`: read token from file path.
173
- - `channels.zalo.dmPolicy`: `pairing | allowlist | open | disabled` (default: pairing).
174
- - `channels.zalo.allowFrom`: DM allowlist (user IDs). `open` requires `"*"`. The wizard will ask for numeric IDs.
175
- - `channels.zalo.mediaMaxMb`: inbound/outbound media cap (MB, default 5).
176
- - `channels.zalo.webhookUrl`: enable webhook mode (HTTPS required).
177
- - `channels.zalo.webhookSecret`: webhook secret (8-256 chars).
178
- - `channels.zalo.webhookPath`: webhook path on the gateway HTTP server.
179
- - `channels.zalo.proxy`: proxy URL for API requests.
180
-
181
- Multi-account options:
182
-
183
- - `channels.zalo.accounts.<id>.botToken`: per-account token.
184
- - `channels.zalo.accounts.<id>.tokenFile`: per-account token file.
185
- - `channels.zalo.accounts.<id>.name`: display name.
186
- - `channels.zalo.accounts.<id>.enabled`: enable/disable account.
187
- - `channels.zalo.accounts.<id>.dmPolicy`: per-account DM policy.
188
- - `channels.zalo.accounts.<id>.allowFrom`: per-account allowlist.
189
- - `channels.zalo.accounts.<id>.webhookUrl`: per-account webhook URL.
190
- - `channels.zalo.accounts.<id>.webhookSecret`: per-account webhook secret.
191
- - `channels.zalo.accounts.<id>.webhookPath`: per-account webhook path.
192
- - `channels.zalo.accounts.<id>.proxy`: per-account proxy URL.