@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,687 +0,0 @@
1
- ---
2
- summary: "Symi plugins/extensions: discovery, config, and safety"
3
- read_when:
4
- - Adding or modifying plugins/extensions
5
- - Documenting plugin install or load rules
6
- title: "Plugins"
7
- ---
8
-
9
- # Plugins (Extensions)
10
-
11
- ## Quick start (new to plugins?)
12
-
13
- A plugin is just a **small code module** that extends Symi with extra
14
- features (commands, tools, and Gateway RPC).
15
-
16
- Most of the time, you’ll use plugins when you want a feature that’s not built
17
- into core Symi yet (or you want to keep optional features out of your main
18
- install).
19
-
20
- Fast path:
21
-
22
- 1. See what’s already loaded:
23
-
24
- ```bash
25
- symi plugins list
26
- ```
27
-
28
- 2. Install an official plugin (example: Voice Call):
29
-
30
- ```bash
31
- symi plugins install @symi/voice-call
32
- ```
33
-
34
- Npm specs are **registry-only** (package name + optional version/tag). Git/URL/file
35
- specs are rejected.
36
-
37
- 3. Restart the Gateway, then configure under `plugins.entries.<id>.config`.
38
-
39
- See [Voice Call](/plugins/voice-call) for a concrete example plugin.
40
- Looking for third-party listings? See [Community plugins](/plugins/community).
41
-
42
- ## Available plugins (official)
43
-
44
- - Microsoft Teams is plugin-only as of 2026.1.15; install `@symi/msteams` if you use Teams.
45
- - Memory (Core) — bundled memory search plugin (enabled by default via `plugins.slots.memory`)
46
- - Memory (LanceDB) — bundled long-term memory plugin (auto-recall/capture; set `plugins.slots.memory = "memory-lancedb"`)
47
- - [Voice Call](/plugins/voice-call) — `@symi/voice-call`
48
- - [Zalo Personal](/plugins/zalouser) — `@symi/zalouser`
49
- - [Matrix](/channels/matrix) — `@symi/matrix`
50
- - [Nostr](/channels/nostr) — `@symi/nostr`
51
- - [Zalo](/channels/zalo) — `@symi/zalo`
52
- - [Microsoft Teams](/channels/msteams) — `@symi/msteams`
53
- - Google Antigravity OAuth (provider auth) — bundled as `google-antigravity-auth` (disabled by default)
54
- - Gemini CLI OAuth (provider auth) — bundled as `google-gemini-cli-auth` (disabled by default)
55
- - Qwen OAuth (provider auth) — bundled as `qwen-portal-auth` (disabled by default)
56
- - Copilot Proxy (provider auth) — local VS Code Copilot Proxy bridge; distinct from built-in `github-copilot` device login (bundled, disabled by default)
57
-
58
- Symi plugins are **TypeScript modules** loaded at runtime via jiti. **Config
59
- validation does not execute plugin code**; it uses the plugin manifest and JSON
60
- Schema instead. See [Plugin manifest](/plugins/manifest).
61
-
62
- Plugins can register:
63
-
64
- - Gateway RPC methods
65
- - Gateway HTTP handlers
66
- - Agent tools
67
- - CLI commands
68
- - Background services
69
- - Optional config validation
70
- - **Skills** (by listing `skills` directories in the plugin manifest)
71
- - **Auto-reply commands** (execute without invoking the AI agent)
72
-
73
- Plugins run **in‑process** with the Gateway, so treat them as trusted code.
74
- Tool authoring guide: [Plugin agent tools](/plugins/agent-tools).
75
-
76
- ## Runtime helpers
77
-
78
- Plugins can access selected core helpers via `api.runtime`. For telephony TTS:
79
-
80
- ```ts
81
- const result = await api.runtime.tts.textToSpeechTelephony({
82
- text: "Hello from Symi",
83
- cfg: api.config,
84
- });
85
- ```
86
-
87
- Notes:
88
-
89
- - Uses core `messages.tts` configuration (OpenAI or ElevenLabs).
90
- - Returns PCM audio buffer + sample rate. Plugins must resample/encode for providers.
91
- - Edge TTS is not supported for telephony.
92
-
93
- ## Discovery & precedence
94
-
95
- Symi scans, in order:
96
-
97
- 1. Config paths
98
-
99
- - `plugins.load.paths` (file or directory)
100
-
101
- 2. Workspace extensions
102
-
103
- - `<workspace>/.symi/extensions/*.ts`
104
- - `<workspace>/.symi/extensions/*/index.ts`
105
-
106
- 3. Global extensions
107
-
108
- - `~/.symi/extensions/*.ts`
109
- - `~/.symi/extensions/*/index.ts`
110
-
111
- 4. Bundled extensions (shipped with Symi, **disabled by default**)
112
-
113
- - `<symi>/extensions/*`
114
-
115
- Bundled plugins must be enabled explicitly via `plugins.entries.<id>.enabled`
116
- or `symi plugins enable <id>`. Installed plugins are enabled by default,
117
- but can be disabled the same way.
118
-
119
- Hardening notes:
120
-
121
- - If `plugins.allow` is empty and non-bundled plugins are discoverable, Symi logs a startup warning with plugin ids and sources.
122
- - Candidate paths are safety-checked before discovery admission. Symi blocks candidates when:
123
- - extension entry resolves outside plugin root (including symlink/path traversal escapes),
124
- - plugin root/source path is world-writable,
125
- - path ownership is suspicious for non-bundled plugins (POSIX owner is neither current uid nor root).
126
- - Loaded non-bundled plugins without install/load-path provenance emit a warning so you can pin trust (`plugins.allow`) or install tracking (`plugins.installs`).
127
-
128
- Each plugin must include a `symi.plugin.json` file in its root. If a path
129
- points at a file, the plugin root is the file's directory and must contain the
130
- manifest.
131
-
132
- If multiple plugins resolve to the same id, the first match in the order above
133
- wins and lower-precedence copies are ignored.
134
-
135
- ### Package packs
136
-
137
- A plugin directory may include a `package.json` with `symi.extensions`:
138
-
139
- ```json
140
- {
141
- "name": "my-pack",
142
- "symi": {
143
- "extensions": ["./src/safety.ts", "./src/tools.ts"]
144
- }
145
- }
146
- ```
147
-
148
- Each entry becomes a plugin. If the pack lists multiple extensions, the plugin id
149
- becomes `name/<fileBase>`.
150
-
151
- If your plugin imports npm deps, install them in that directory so
152
- `node_modules` is available (`npm install` / `pnpm install`).
153
-
154
- Security guardrail: every `symi.extensions` entry must stay inside the plugin
155
- directory after symlink resolution. Entries that escape the package directory are
156
- rejected.
157
-
158
- Security note: `symi plugins install` installs plugin dependencies with
159
- `npm install --ignore-scripts` (no lifecycle scripts). Keep plugin dependency
160
- trees "pure JS/TS" and avoid packages that require `postinstall` builds.
161
-
162
- ### Channel catalog metadata
163
-
164
- Channel plugins can advertise onboarding metadata via `symi.channel` and
165
- install hints via `symi.install`. This keeps the core catalog data-free.
166
-
167
- Example:
168
-
169
- ```json
170
- {
171
- "name": "@symi/nextcloud-talk",
172
- "symi": {
173
- "extensions": ["./index.ts"],
174
- "channel": {
175
- "id": "nextcloud-talk",
176
- "label": "Nextcloud Talk",
177
- "selectionLabel": "Nextcloud Talk (self-hosted)",
178
- "docsPath": "/channels/nextcloud-talk",
179
- "docsLabel": "nextcloud-talk",
180
- "blurb": "Self-hosted chat via Nextcloud Talk webhook bots.",
181
- "order": 65,
182
- "aliases": ["nc-talk", "nc"]
183
- },
184
- "install": {
185
- "npmSpec": "@symi/nextcloud-talk",
186
- "localPath": "extensions/nextcloud-talk",
187
- "defaultChoice": "npm"
188
- }
189
- }
190
- }
191
- ```
192
-
193
- Symi can also merge **external channel catalogs** (for example, an MPM
194
- registry export). Drop a JSON file at one of:
195
-
196
- - `~/.symi/mpm/plugins.json`
197
- - `~/.symi/mpm/catalog.json`
198
- - `~/.symi/plugins/catalog.json`
199
-
200
- Or point `SYMI_PLUGIN_CATALOG_PATHS` (or `SYMI_MPM_CATALOG_PATHS`) at
201
- one or more JSON files (comma/semicolon/`PATH`-delimited). Each file should
202
- contain `{ "entries": [ { "name": "@scope/pkg", "symi": { "channel": {...}, "install": {...} } } ] }`.
203
-
204
- ## Plugin IDs
205
-
206
- Default plugin ids:
207
-
208
- - Package packs: `package.json` `name`
209
- - Standalone file: file base name (`~/.../voice-call.ts` → `voice-call`)
210
-
211
- If a plugin exports `id`, Symi uses it but warns when it doesn’t match the
212
- configured id.
213
-
214
- ## Config
215
-
216
- ```json5
217
- {
218
- plugins: {
219
- enabled: true,
220
- allow: ["voice-call"],
221
- deny: ["untrusted-plugin"],
222
- load: { paths: ["~/Projects/oss/voice-call-extension"] },
223
- entries: {
224
- "voice-call": { enabled: true, config: { provider: "twilio" } },
225
- },
226
- },
227
- }
228
- ```
229
-
230
- Fields:
231
-
232
- - `enabled`: master toggle (default: true)
233
- - `allow`: allowlist (optional)
234
- - `deny`: denylist (optional; deny wins)
235
- - `load.paths`: extra plugin files/dirs
236
- - `entries.<id>`: per‑plugin toggles + config
237
-
238
- Config changes **require a gateway restart**.
239
-
240
- Validation rules (strict):
241
-
242
- - Unknown plugin ids in `entries`, `allow`, `deny`, or `slots` are **errors**.
243
- - Unknown `channels.<id>` keys are **errors** unless a plugin manifest declares
244
- the channel id.
245
- - Plugin config is validated using the JSON Schema embedded in
246
- `symi.plugin.json` (`configSchema`).
247
- - If a plugin is disabled, its config is preserved and a **warning** is emitted.
248
-
249
- ## Plugin slots (exclusive categories)
250
-
251
- Some plugin categories are **exclusive** (only one active at a time). Use
252
- `plugins.slots` to select which plugin owns the slot:
253
-
254
- ```json5
255
- {
256
- plugins: {
257
- slots: {
258
- memory: "memory-core", // or "none" to disable memory plugins
259
- },
260
- },
261
- }
262
- ```
263
-
264
- If multiple plugins declare `kind: "memory"`, only the selected one loads. Others
265
- are disabled with diagnostics.
266
-
267
- ## Control UI (schema + labels)
268
-
269
- The Control UI uses `config.schema` (JSON Schema + `uiHints`) to render better forms.
270
-
271
- Symi augments `uiHints` at runtime based on discovered plugins:
272
-
273
- - Adds per-plugin labels for `plugins.entries.<id>` / `.enabled` / `.config`
274
- - Merges optional plugin-provided config field hints under:
275
- `plugins.entries.<id>.config.<field>`
276
-
277
- If you want your plugin config fields to show good labels/placeholders (and mark secrets as sensitive),
278
- provide `uiHints` alongside your JSON Schema in the plugin manifest.
279
-
280
- Example:
281
-
282
- ```json
283
- {
284
- "id": "my-plugin",
285
- "configSchema": {
286
- "type": "object",
287
- "additionalProperties": false,
288
- "properties": {
289
- "apiKey": { "type": "string" },
290
- "region": { "type": "string" }
291
- }
292
- },
293
- "uiHints": {
294
- "apiKey": { "label": "API Key", "sensitive": true },
295
- "region": { "label": "Region", "placeholder": "us-east-1" }
296
- }
297
- }
298
- ```
299
-
300
- ## CLI
301
-
302
- ```bash
303
- symi plugins list
304
- symi plugins info <id>
305
- symi plugins install <path> # copy a local file/dir into ~/.symi/extensions/<id>
306
- symi plugins install ./extensions/voice-call # relative path ok
307
- symi plugins install ./plugin.tgz # install from a local tarball
308
- symi plugins install ./plugin.zip # install from a local zip
309
- symi plugins install -l ./extensions/voice-call # link (no copy) for dev
310
- symi plugins install @symi/voice-call # install from npm
311
- symi plugins install @symi/voice-call --pin # store exact resolved name@version
312
- symi plugins update <id>
313
- symi plugins update --all
314
- symi plugins enable <id>
315
- symi plugins disable <id>
316
- symi plugins doctor
317
- ```
318
-
319
- `plugins update` only works for npm installs tracked under `plugins.installs`.
320
- If stored integrity metadata changes between updates, Symi warns and asks for confirmation (use global `--yes` to bypass prompts).
321
-
322
- Plugins may also register their own top‑level commands (example: `symi voicecall`).
323
-
324
- ## Plugin API (overview)
325
-
326
- Plugins export either:
327
-
328
- - A function: `(api) => { ... }`
329
- - An object: `{ id, name, configSchema, register(api) { ... } }`
330
-
331
- ## Plugin hooks
332
-
333
- Plugins can ship hooks and register them at runtime. This lets a plugin bundle
334
- event-driven automation without a separate hook pack install.
335
-
336
- ### Example
337
-
338
- ```
339
- import { registerPluginHooksFromDir } from "symi/plugin-sdk";
340
-
341
- export default function register(api) {
342
- registerPluginHooksFromDir(api, "./hooks");
343
- }
344
- ```
345
-
346
- Notes:
347
-
348
- - Hook directories follow the normal hook structure (`HOOK.md` + `handler.ts`).
349
- - Hook eligibility rules still apply (OS/bins/env/config requirements).
350
- - Plugin-managed hooks show up in `symi hooks list` with `plugin:<id>`.
351
- - You cannot enable/disable plugin-managed hooks via `symi hooks`; enable/disable the plugin instead.
352
-
353
- ## Provider plugins (model auth)
354
-
355
- Plugins can register **model provider auth** flows so users can run OAuth or
356
- API-key setup inside Symi (no external scripts needed).
357
-
358
- Register a provider via `api.registerProvider(...)`. Each provider exposes one
359
- or more auth methods (OAuth, API key, device code, etc.). These methods power:
360
-
361
- - `symi models auth login --provider <id> [--method <id>]`
362
-
363
- Example:
364
-
365
- ```ts
366
- api.registerProvider({
367
- id: "acme",
368
- label: "AcmeAI",
369
- auth: [
370
- {
371
- id: "oauth",
372
- label: "OAuth",
373
- kind: "oauth",
374
- run: async (ctx) => {
375
- // Run OAuth flow and return auth profiles.
376
- return {
377
- profiles: [
378
- {
379
- profileId: "acme:default",
380
- credential: {
381
- type: "oauth",
382
- provider: "acme",
383
- access: "...",
384
- refresh: "...",
385
- expires: Date.now() + 3600 * 1000,
386
- },
387
- },
388
- ],
389
- defaultModel: "acme/opus-1",
390
- };
391
- },
392
- },
393
- ],
394
- });
395
- ```
396
-
397
- Notes:
398
-
399
- - `run` receives a `ProviderAuthContext` with `prompter`, `runtime`,
400
- `openUrl`, and `oauth.createVpsAwareHandlers` helpers.
401
- - Return `configPatch` when you need to add default models or provider config.
402
- - Return `defaultModel` so `--set-default` can update agent defaults.
403
-
404
- ### Register a messaging channel
405
-
406
- Plugins can register **channel plugins** that behave like built‑in channels
407
- (WhatsApp, Telegram, etc.). Channel config lives under `channels.<id>` and is
408
- validated by your channel plugin code.
409
-
410
- ```ts
411
- const myChannel = {
412
- id: "acmechat",
413
- meta: {
414
- id: "acmechat",
415
- label: "AcmeChat",
416
- selectionLabel: "AcmeChat (API)",
417
- docsPath: "/channels/acmechat",
418
- blurb: "demo channel plugin.",
419
- aliases: ["acme"],
420
- },
421
- capabilities: { chatTypes: ["direct"] },
422
- config: {
423
- listAccountIds: (cfg) => Object.keys(cfg.channels?.acmechat?.accounts ?? {}),
424
- resolveAccount: (cfg, accountId) =>
425
- cfg.channels?.acmechat?.accounts?.[accountId ?? "default"] ?? {
426
- accountId,
427
- },
428
- },
429
- outbound: {
430
- deliveryMode: "direct",
431
- sendText: async () => ({ ok: true }),
432
- },
433
- };
434
-
435
- export default function (api) {
436
- api.registerChannel({ plugin: myChannel });
437
- }
438
- ```
439
-
440
- Notes:
441
-
442
- - Put config under `channels.<id>` (not `plugins.entries`).
443
- - `meta.label` is used for labels in CLI/UI lists.
444
- - `meta.aliases` adds alternate ids for normalization and CLI inputs.
445
- - `meta.preferOver` lists channel ids to skip auto-enable when both are configured.
446
- - `meta.detailLabel` and `meta.systemImage` let UIs show richer channel labels/icons.
447
-
448
- ### Write a new messaging channel (step‑by‑step)
449
-
450
- Use this when you want a **new chat surface** (a "messaging channel"), not a model provider.
451
- Model provider docs live under `/providers/*`.
452
-
453
- 1. Pick an id + config shape
454
-
455
- - All channel config lives under `channels.<id>`.
456
- - Prefer `channels.<id>.accounts.<accountId>` for multi‑account setups.
457
-
458
- 2. Define the channel metadata
459
-
460
- - `meta.label`, `meta.selectionLabel`, `meta.docsPath`, `meta.blurb` control CLI/UI lists.
461
- - `meta.docsPath` should point at a docs page like `/channels/<id>`.
462
- - `meta.preferOver` lets a plugin replace another channel (auto-enable prefers it).
463
- - `meta.detailLabel` and `meta.systemImage` are used by UIs for detail text/icons.
464
-
465
- 3. Implement the required adapters
466
-
467
- - `config.listAccountIds` + `config.resolveAccount`
468
- - `capabilities` (chat types, media, threads, etc.)
469
- - `outbound.deliveryMode` + `outbound.sendText` (for basic send)
470
-
471
- 4. Add optional adapters as needed
472
-
473
- - `setup` (wizard), `security` (DM policy), `status` (health/diagnostics)
474
- - `gateway` (start/stop/login), `mentions`, `threading`, `streaming`
475
- - `actions` (message actions), `commands` (native command behavior)
476
-
477
- 5. Register the channel in your plugin
478
-
479
- - `api.registerChannel({ plugin })`
480
-
481
- Minimal config example:
482
-
483
- ```json5
484
- {
485
- channels: {
486
- acmechat: {
487
- accounts: {
488
- default: { token: "ACME_TOKEN", enabled: true },
489
- },
490
- },
491
- },
492
- }
493
- ```
494
-
495
- Minimal channel plugin (outbound‑only):
496
-
497
- ```ts
498
- const plugin = {
499
- id: "acmechat",
500
- meta: {
501
- id: "acmechat",
502
- label: "AcmeChat",
503
- selectionLabel: "AcmeChat (API)",
504
- docsPath: "/channels/acmechat",
505
- blurb: "AcmeChat messaging channel.",
506
- aliases: ["acme"],
507
- },
508
- capabilities: { chatTypes: ["direct"] },
509
- config: {
510
- listAccountIds: (cfg) => Object.keys(cfg.channels?.acmechat?.accounts ?? {}),
511
- resolveAccount: (cfg, accountId) =>
512
- cfg.channels?.acmechat?.accounts?.[accountId ?? "default"] ?? {
513
- accountId,
514
- },
515
- },
516
- outbound: {
517
- deliveryMode: "direct",
518
- sendText: async ({ text }) => {
519
- // deliver `text` to your channel here
520
- return { ok: true };
521
- },
522
- },
523
- };
524
-
525
- export default function (api) {
526
- api.registerChannel({ plugin });
527
- }
528
- ```
529
-
530
- Load the plugin (extensions dir or `plugins.load.paths`), restart the gateway,
531
- then configure `channels.<id>` in your config.
532
-
533
- ### Agent tools
534
-
535
- See the dedicated guide: [Plugin agent tools](/plugins/agent-tools).
536
-
537
- ### Register a gateway RPC method
538
-
539
- ```ts
540
- export default function (api) {
541
- api.registerGatewayMethod("myplugin.status", ({ respond }) => {
542
- respond(true, { ok: true });
543
- });
544
- }
545
- ```
546
-
547
- ### Register CLI commands
548
-
549
- ```ts
550
- export default function (api) {
551
- api.registerCli(
552
- ({ program }) => {
553
- program.command("mycmd").action(() => {
554
- console.log("Hello");
555
- });
556
- },
557
- { commands: ["mycmd"] },
558
- );
559
- }
560
- ```
561
-
562
- ### Register auto-reply commands
563
-
564
- Plugins can register custom slash commands that execute **without invoking the
565
- AI agent**. This is useful for toggle commands, status checks, or quick actions
566
- that don't need LLM processing.
567
-
568
- ```ts
569
- export default function (api) {
570
- api.registerCommand({
571
- name: "mystatus",
572
- description: "Show plugin status",
573
- handler: (ctx) => ({
574
- text: `Plugin is running! Channel: ${ctx.channel}`,
575
- }),
576
- });
577
- }
578
- ```
579
-
580
- Command handler context:
581
-
582
- - `senderId`: The sender's ID (if available)
583
- - `channel`: The channel where the command was sent
584
- - `isAuthorizedSender`: Whether the sender is an authorized user
585
- - `args`: Arguments passed after the command (if `acceptsArgs: true`)
586
- - `commandBody`: The full command text
587
- - `config`: The current Symi config
588
-
589
- Command options:
590
-
591
- - `name`: Command name (without the leading `/`)
592
- - `description`: Help text shown in command lists
593
- - `acceptsArgs`: Whether the command accepts arguments (default: false). If false and arguments are provided, the command won't match and the message falls through to other handlers
594
- - `requireAuth`: Whether to require authorized sender (default: true)
595
- - `handler`: Function that returns `{ text: string }` (can be async)
596
-
597
- Example with authorization and arguments:
598
-
599
- ```ts
600
- api.registerCommand({
601
- name: "setmode",
602
- description: "Set plugin mode",
603
- acceptsArgs: true,
604
- requireAuth: true,
605
- handler: async (ctx) => {
606
- const mode = ctx.args?.trim() || "default";
607
- await saveMode(mode);
608
- return { text: `Mode set to: ${mode}` };
609
- },
610
- });
611
- ```
612
-
613
- Notes:
614
-
615
- - Plugin commands are processed **before** built-in commands and the AI agent
616
- - Commands are registered globally and work across all channels
617
- - Command names are case-insensitive (`/MyStatus` matches `/mystatus`)
618
- - Command names must start with a letter and contain only letters, numbers, hyphens, and underscores
619
- - Reserved command names (like `help`, `status`, `reset`, etc.) cannot be overridden by plugins
620
- - Duplicate command registration across plugins will fail with a diagnostic error
621
-
622
- ### Register background services
623
-
624
- ```ts
625
- export default function (api) {
626
- api.registerService({
627
- id: "my-service",
628
- start: () => api.logger.info("ready"),
629
- stop: () => api.logger.info("bye"),
630
- });
631
- }
632
- ```
633
-
634
- ## Naming conventions
635
-
636
- - Gateway methods: `pluginId.action` (example: `voicecall.status`)
637
- - Tools: `snake_case` (example: `voice_call`)
638
- - CLI commands: kebab or camel, but avoid clashing with core commands
639
-
640
- ## Skills
641
-
642
- Plugins can ship a skill in the repo (`skills/<name>/SKILL.md`).
643
- Enable it with `plugins.entries.<id>.enabled` (or other config gates) and ensure
644
- it’s present in your workspace/managed skills locations.
645
-
646
- ## Distribution (npm)
647
-
648
- Recommended packaging:
649
-
650
- - Main package: `symi` (this repo)
651
- - Plugins: separate npm packages under `@symi/*` (example: `@symi/voice-call`)
652
-
653
- Publishing contract:
654
-
655
- - Plugin `package.json` must include `symi.extensions` with one or more entry files.
656
- - Entry files can be `.js` or `.ts` (jiti loads TS at runtime).
657
- - `symi plugins install <npm-spec>` uses `npm pack`, extracts into `~/.symi/extensions/<id>/`, and enables it in config.
658
- - Config key stability: scoped packages are normalized to the **unscoped** id for `plugins.entries.*`.
659
-
660
- ## Example plugin: Voice Call
661
-
662
- This repo includes a voice‑call plugin (Twilio or log fallback):
663
-
664
- - Source: `extensions/voice-call`
665
- - Skill: `skills/voice-call`
666
- - CLI: `symi voicecall start|status`
667
- - Tool: `voice_call`
668
- - RPC: `voicecall.start`, `voicecall.status`
669
- - Config (twilio): `provider: "twilio"` + `twilio.accountSid/authToken/from` (optional `statusCallbackUrl`, `twimlUrl`)
670
- - Config (dev): `provider: "log"` (no network)
671
-
672
- See [Voice Call](/plugins/voice-call) and `extensions/voice-call/README.md` for setup and usage.
673
-
674
- ## Safety notes
675
-
676
- Plugins run in-process with the Gateway. Treat them as trusted code:
677
-
678
- - Only install plugins you trust.
679
- - Prefer `plugins.allow` allowlists.
680
- - Restart the Gateway after changes.
681
-
682
- ## Testing plugins
683
-
684
- Plugins can (and should) ship tests:
685
-
686
- - In-repo plugins can keep Vitest tests under `src/**` (example: `src/plugins/voice-call.plugin.test.ts`).
687
- - Separately published plugins should run their own CI (lint/build/test) and validate `symi.extensions` points at the built entrypoint (`dist/index.js`).
@@ -1,21 +0,0 @@
1
- ---
2
- summary: "Reaction semantics shared across channels"
3
- read_when:
4
- - Working on reactions in any channel
5
- title: "Reactions"
6
- ---
7
-
8
- # Reaction tooling
9
-
10
- Shared reaction semantics across channels:
11
-
12
- - `emoji` is required when adding a reaction.
13
- - `emoji=""` removes the bot's reaction(s) when supported.
14
- - `remove: true` removes the specified emoji when supported (requires `emoji`).
15
-
16
- Channel notes:
17
-
18
- - **Google Chat**: empty `emoji` removes the app's reactions on the message; `remove: true` removes just that emoji.
19
- - **Telegram**: empty `emoji` removes the bot's reactions; `remove: true` also removes reactions but still requires a non-empty `emoji` for tool validation.
20
- - **WhatsApp**: empty `emoji` removes the bot reaction; `remove: true` maps to empty emoji (still requires `emoji`).
21
- - **Signal**: inbound reaction notifications emit system events when `channels.signal.reactionNotifications` is enabled.