@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,323 +0,0 @@
1
- ---
2
- read_when:
3
- - 设计 exec 主机路由或 exec 批准
4
- - 实现节点运行器 + UI IPC
5
- - 添加 exec 主机安全模式和斜杠命令
6
- summary: 重构计划:exec 主机路由、节点批准和无头运行器
7
- title: Exec 主机重构
8
- x-i18n:
9
- generated_at: "2026-02-03T07:54:43Z"
10
- model: claude-opus-4-5
11
- provider: pi
12
- source_hash: 53a9059cbeb1f3f1dbb48c2b5345f88ca92372654fef26f8481e651609e45e3a
13
- source_path: refactor/exec-host.md
14
- workflow: 15
15
- ---
16
-
17
- # Exec 主机重构计划
18
-
19
- ## 目标
20
-
21
- - 添加 `exec.host` + `exec.security` 以在**沙箱**、**Gateway 网关**和**节点**之间路由执行。
22
- - 保持默认**安全**:除非明确启用,否则不进行跨主机执行。
23
- - 将执行拆分为**无头运行器服务**,通过本地 IPC 连接可选的 UI(macOS 应用)。
24
- - 提供**每智能体**策略、允许列表、询问模式和节点绑定。
25
- - 支持*与*或*不与*允许列表一起使用的**询问模式**。
26
- - 跨平台:Unix socket + token 认证(macOS/Linux/Windows 一致性)。
27
-
28
- ## 非目标
29
-
30
- - 无遗留允许列表迁移或遗留 schema 支持。
31
- - 节点 exec 无 PTY/流式传输(仅聚合输出)。
32
- - 除现有 Bridge + Gateway 网关外无新网络层。
33
-
34
- ## 决定(已锁定)
35
-
36
- - **配置键:** `exec.host` + `exec.security`(允许每智能体覆盖)。
37
- - **提升:** 保留 `/elevated` 作为 Gateway 网关完全访问的别名。
38
- - **询问默认:** `on-miss`。
39
- - **批准存储:** `~/.symi/exec-approvals.json`(JSON,无遗留迁移)。
40
- - **运行器:** 无头系统服务;UI 应用托管 Unix socket 用于批准。
41
- - **节点身份:** 使用现有 `nodeId`。
42
- - **Socket 认证:** Unix socket + token(跨平台);如需要稍后拆分。
43
- - **节点主机状态:** `~/.symi/node.json`(节点 id + 配对 token)。
44
- - **macOS exec 主机:** 在 macOS 应用内运行 `system.run`;节点主机服务通过本地 IPC 转发请求。
45
- - **无 XPC helper:** 坚持使用 Unix socket + token + 对等检查。
46
-
47
- ## 关键概念
48
-
49
- ### 主机
50
-
51
- - `sandbox`:Docker exec(当前行为)。
52
- - `gateway`:在 Gateway 网关主机上执行。
53
- - `node`:通过 Bridge 在节点运行器上执行(`system.run`)。
54
-
55
- ### 安全模式
56
-
57
- - `deny`:始终阻止。
58
- - `allowlist`:仅允许匹配项。
59
- - `full`:允许一切(等同于提升模式)。
60
-
61
- ### 询问模式
62
-
63
- - `off`:从不询问。
64
- - `on-miss`:仅在允许列表不匹配时询问。
65
- - `always`:每次都询问。
66
-
67
- 询问**独立于**允许列表;允许列表可与 `always` 或 `on-miss` 一起使用。
68
-
69
- ### 策略解析(每次执行)
70
-
71
- 1. 解析 `exec.host`(工具参数 → 智能体覆盖 → 全局默认)。
72
- 2. 解析 `exec.security` 和 `exec.ask`(相同优先级)。
73
- 3. 如果主机是 `sandbox`,继续本地沙箱执行。
74
- 4. 如果主机是 `gateway` 或 `node`,在该主机上应用安全 + 询问策略。
75
-
76
- ## 默认安全
77
-
78
- - 默认 `exec.host = sandbox`。
79
- - `gateway` 和 `node` 默认 `exec.security = deny`。
80
- - 默认 `exec.ask = on-miss`(仅在安全允许时相关)。
81
- - 如果未设置节点绑定,**智能体可以定向任何节点**,但仅在策略允许时。
82
-
83
- ## 配置表面
84
-
85
- ### 工具参数
86
-
87
- - `exec.host`(可选):`sandbox | gateway | node`。
88
- - `exec.security`(可选):`deny | allowlist | full`。
89
- - `exec.ask`(可选):`off | on-miss | always`。
90
- - `exec.node`(可选):当 `host=node` 时使用的节点 id/名称。
91
-
92
- ### 配置键(全局)
93
-
94
- - `tools.exec.host`
95
- - `tools.exec.security`
96
- - `tools.exec.ask`
97
- - `tools.exec.node`(默认节点绑定)
98
-
99
- ### 配置键(每智能体)
100
-
101
- - `agents.list[].tools.exec.host`
102
- - `agents.list[].tools.exec.security`
103
- - `agents.list[].tools.exec.ask`
104
- - `agents.list[].tools.exec.node`
105
-
106
- ### 别名
107
-
108
- - `/elevated on` = 为智能体会话设置 `tools.exec.host=gateway`、`tools.exec.security=full`。
109
- - `/elevated off` = 为智能体会话恢复之前的 exec 设置。
110
-
111
- ## 批准存储(JSON)
112
-
113
- 路径:`~/.symi/exec-approvals.json`
114
-
115
- 用途:
116
-
117
- - **执行主机**(Gateway 网关或节点运行器)的本地策略 + 允许列表。
118
- - 无 UI 可用时的询问回退。
119
- - UI 客户端的 IPC 凭证。
120
-
121
- 建议的 schema(v1):
122
-
123
- ```json
124
- {
125
- "version": 1,
126
- "socket": {
127
- "path": "~/.symi/exec-approvals.sock",
128
- "token": "base64-opaque-token"
129
- },
130
- "defaults": {
131
- "security": "deny",
132
- "ask": "on-miss",
133
- "askFallback": "deny"
134
- },
135
- "agents": {
136
- "agent-id-1": {
137
- "security": "allowlist",
138
- "ask": "on-miss",
139
- "allowlist": [
140
- {
141
- "pattern": "~/Projects/**/bin/rg",
142
- "lastUsedAt": 0,
143
- "lastUsedCommand": "rg -n TODO",
144
- "lastResolvedPath": "/Users/user/Projects/.../bin/rg"
145
- }
146
- ]
147
- }
148
- }
149
- }
150
- ```
151
-
152
- 注意事项:
153
-
154
- - 无遗留允许列表格式。
155
- - `askFallback` 仅在需要 `ask` 且无法访问 UI 时应用。
156
- - 文件权限:`0600`。
157
-
158
- ## 运行器服务(无头)
159
-
160
- ### 角色
161
-
162
- - 在本地强制执行 `exec.security` + `exec.ask`。
163
- - 执行系统命令并返回输出。
164
- - 为 exec 生命周期发出 Bridge 事件(可选但推荐)。
165
-
166
- ### 服务生命周期
167
-
168
- - macOS 上的 Launchd/daemon;Linux/Windows 上的系统服务。
169
- - 批准 JSON 是执行主机本地的。
170
- - UI 托管本地 Unix socket;运行器按需连接。
171
-
172
- ## UI 集成(macOS 应用)
173
-
174
- ### IPC
175
-
176
- - Unix socket 位于 `~/.symi/exec-approvals.sock`(0600)。
177
- - Token 存储在 `exec-approvals.json`(0600)中。
178
- - 对等检查:仅同 UID。
179
- - 挑战/响应:nonce + HMAC(token, request-hash) 防止重放。
180
- - 短 TTL(例如 10s)+ 最大负载 + 速率限制。
181
-
182
- ### 询问流程(macOS 应用 exec 主机)
183
-
184
- 1. 节点服务从 Gateway 网关接收 `system.run`。
185
- 2. 节点服务连接到本地 socket 并发送提示/exec 请求。
186
- 3. 应用验证对等 + token + HMAC + TTL,然后在需要时显示对话框。
187
- 4. 应用在 UI 上下文中执行命令并返回输出。
188
- 5. 节点服务将输出返回给 Gateway 网关。
189
-
190
- 如果 UI 缺失:
191
-
192
- - 应用 `askFallback`(`deny|allowlist|full`)。
193
-
194
- ### 图示(SCI)
195
-
196
- ```
197
- Agent -> Gateway -> Bridge -> Node Service (TS)
198
- | IPC (UDS + token + HMAC + TTL)
199
- v
200
- Mac App (UI + TCC + system.run)
201
- ```
202
-
203
- ## 节点身份 + 绑定
204
-
205
- - 使用 Bridge 配对中的现有 `nodeId`。
206
- - 绑定模型:
207
- - `tools.exec.node` 将智能体限制为特定节点。
208
- - 如果未设置,智能体可以选择任何节点(策略仍强制执行默认值)。
209
- - 节点选择解析:
210
- - `nodeId` 精确匹配
211
- - `displayName`(规范化)
212
- - `remoteIp`
213
- - `nodeId` 前缀(>= 6 字符)
214
-
215
- ## 事件
216
-
217
- ### 谁看到事件
218
-
219
- - 系统事件是**每会话**的,在下一个提示时显示给智能体。
220
- - 存储在 Gateway 网关内存队列中(`enqueueSystemEvent`)。
221
-
222
- ### 事件文本
223
-
224
- - `Exec started (node=<id>, id=<runId>)`
225
- - `Exec finished (node=<id>, id=<runId>, code=<code>)` + 可选输出尾部
226
- - `Exec denied (node=<id>, id=<runId>, <reason>)`
227
-
228
- ### 传输
229
-
230
- 选项 A(推荐):
231
-
232
- - 运行器发送 Bridge `event` 帧 `exec.started` / `exec.finished`。
233
- - Gateway 网关 `handleBridgeEvent` 将这些映射到 `enqueueSystemEvent`。
234
-
235
- 选项 B:
236
-
237
- - Gateway 网关 `exec` 工具直接处理生命周期(仅同步)。
238
-
239
- ## Exec 流程
240
-
241
- ### 沙箱主机
242
-
243
- - 现有 `exec` 行为(Docker 或无沙箱时的主机)。
244
- - 仅在非沙箱模式下支持 PTY。
245
-
246
- ### Gateway 网关主机
247
-
248
- - Gateway 网关进程在其自己的机器上执行。
249
- - 强制执行本地 `exec-approvals.json`(安全/询问/允许列表)。
250
-
251
- ### 节点主机
252
-
253
- - Gateway 网关调用 `node.invoke` 配合 `system.run`。
254
- - 运行器强制执行本地批准。
255
- - 运行器返回聚合的 stdout/stderr。
256
- - 可选的 Bridge 事件用于开始/完成/拒绝。
257
-
258
- ## 输出上限
259
-
260
- - 组合 stdout+stderr 上限为 **200k**;为事件保留**尾部 20k**。
261
- - 使用清晰的后缀截断(例如 `"… (truncated)"`)。
262
-
263
- ## 斜杠命令
264
-
265
- - `/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>`
266
- - 每智能体、每会话覆盖;除非通过配置保存,否则非持久。
267
- - `/elevated on|off|ask|full` 仍然是 `host=gateway security=full` 的快捷方式(`full` 跳过批准)。
268
-
269
- ## 跨平台方案
270
-
271
- - 运行器服务是可移植的执行目标。
272
- - UI 是可选的;如果缺失,应用 `askFallback`。
273
- - Windows/Linux 支持相同的批准 JSON + socket 协议。
274
-
275
- ## 实现阶段
276
-
277
- ### 阶段 1:配置 + exec 路由
278
-
279
- - 为 `exec.host`、`exec.security`、`exec.ask`、`exec.node` 添加配置 schema。
280
- - 更新工具管道以遵守 `exec.host`。
281
- - 添加 `/exec` 斜杠命令并保留 `/elevated` 别名。
282
-
283
- ### 阶段 2:批准存储 + Gateway 网关强制执行
284
-
285
- - 实现 `exec-approvals.json` 读取器/写入器。
286
- - 为 `gateway` 主机强制执行允许列表 + 询问模式。
287
- - 添加输出上限。
288
-
289
- ### 阶段 3:节点运行器强制执行
290
-
291
- - 更新节点运行器以强制执行允许列表 + 询问。
292
- - 添加 Unix socket 提示桥接到 macOS 应用 UI。
293
- - 连接 `askFallback`。
294
-
295
- ### 阶段 4:事件
296
-
297
- - 为 exec 生命周期添加节点 → Gateway 网关 Bridge 事件。
298
- - 映射到 `enqueueSystemEvent` 用于智能体提示。
299
-
300
- ### 阶段 5:UI 完善
301
-
302
- - Mac 应用:允许列表编辑器、每智能体切换器、询问策略 UI。
303
- - 节点绑定控制(可选)。
304
-
305
- ## 测试计划
306
-
307
- - 单元测试:允许列表匹配(glob + 不区分大小写)。
308
- - 单元测试:策略解析优先级(工具参数 → 智能体覆盖 → 全局)。
309
- - 集成测试:节点运行器拒绝/允许/询问流程。
310
- - Bridge 事件测试:节点事件 → 系统事件路由。
311
-
312
- ## 开放风险
313
-
314
- - UI 不可用:确保遵守 `askFallback`。
315
- - 长时间运行的命令:依赖超时 + 输出上限。
316
- - 多节点歧义:除非有节点绑定或显式节点参数,否则报错。
317
-
318
- ## 相关文档
319
-
320
- - [Exec 工具](/tools/exec)
321
- - [执行批准](/tools/exec-approvals)
322
- - [节点](/nodes)
323
- - [提升模式](/tools/elevated)
@@ -1,90 +0,0 @@
1
- ---
2
- description: Track outbound session mirroring refactor notes, decisions, tests, and open items.
3
- title: 出站会话镜像重构(Issue
4
- x-i18n:
5
- generated_at: "2026-02-03T07:53:51Z"
6
- model: claude-opus-4-5
7
- provider: pi
8
- source_hash: b88a72f36f7b6d8a71fde9d014c0a87e9a8b8b0d449b67119cf3b6f414fa2b81
9
- source_path: refactor/outbound-session-mirroring.md
10
- workflow: 15
11
- ---
12
-
13
- # 出站会话镜像重构(Issue #1520)
14
-
15
- ## 状态
16
-
17
- - 进行中。
18
- - 核心 + 插件渠道路由已更新以支持出站镜像。
19
- - Gateway 网关发送现在在省略 sessionKey 时派生目标会话。
20
-
21
- ## 背景
22
-
23
- 出站发送被镜像到*当前*智能体会话(工具会话键)而不是目标渠道会话。入站路由使用渠道/对等方会话键,因此出站响应落在错误的会话中,首次联系的目标通常缺少会话条目。
24
-
25
- ## 目标
26
-
27
- - 将出站消息镜像到目标渠道会话键。
28
- - 在缺失时为出站创建会话条目。
29
- - 保持线程/话题作用域与入站会话键对齐。
30
- - 涵盖核心渠道加内置扩展。
31
-
32
- ## 实现摘要
33
-
34
- - 新的出站会话路由辅助器:
35
- - `src/infra/outbound/outbound-session.ts`
36
- - `resolveOutboundSessionRoute` 使用 `buildAgentSessionKey`(dmScope + identityLinks)构建目标 sessionKey。
37
- - `ensureOutboundSessionEntry` 通过 `recordSessionMetaFromInbound` 写入最小的 `MsgContext`。
38
- - `runMessageAction`(发送)派生目标 sessionKey 并将其传递给 `executeSendAction` 进行镜像。
39
- - `message-tool` 不再直接镜像;它只从当前会话键解析 agentId。
40
- - 插件发送路径使用派生的 sessionKey 通过 `appendAssistantMessageToSessionTranscript` 进行镜像。
41
- - Gateway 网关发送在未提供时派生目标会话键(默认智能体),并确保会话条目。
42
-
43
- ## 线程/话题处理
44
-
45
- - Slack:replyTo/threadId -> `resolveThreadSessionKeys`(后缀)。
46
- - Telegram:话题 ID 通过 `buildTelegramGroupPeerId` 映射到 `chatId:topic:<id>`。
47
-
48
- ## 涵盖的扩展
49
-
50
- - Matrix、MS Teams、Mattermost、BlueBubbles、Nextcloud Talk、Zalo、Zalo Personal、Nostr、Tlon。
51
- - 注意:
52
- - Mattermost 目标现在为私信会话键路由去除 `@`。
53
- - Zalo Personal 对 1:1 目标使用私信对等方类型(仅当存在 `group:` 时才使用群组)。
54
- - BlueBubbles 群组目标去除 `chat_*` 前缀以匹配入站会话键。
55
- - Slack 自动线程镜像不区分大小写地匹配频道 id。
56
- - Gateway 网关发送在镜像前将提供的会话键转换为小写。
57
-
58
- ## 决策
59
-
60
- - **Gateway 网关发送会话派生**:如果提供了 `sessionKey`,则使用它。如果省略,从目标 + 默认智能体派生 sessionKey 并镜像到那里。
61
- - **会话条目创建**:始终使用 `recordSessionMetaFromInbound`,`Provider/From/To/ChatType/AccountId/Originating*` 与入站格式对齐。
62
- - **目标规范化**:出站路由在可用时使用解析后的目标(`resolveChannelTarget` 之后)。
63
- - **会话键大小写**:在写入和迁移期间将会话键规范化为小写。
64
-
65
- ## 添加/更新的测试
66
-
67
- - `src/infra/outbound/outbound-session.test.ts`
68
- - Slack 线程会话键。
69
- - Telegram 话题会话键。
70
- - `src/agents/tools/message-tool.test.ts`
71
- - 从会话键派生 agentId(不传递 sessionKey)。
72
- - `src/gateway/server-methods/send.test.ts`
73
- - 在省略时派生会话键并创建会话条目。
74
-
75
- ## 待处理项目 / 后续跟进
76
-
77
- - 语音通话插件使用自定义的 `voice:<phone>` 会话键。出站映射在这里没有标准化;如果 message-tool 应该支持语音通话发送,请添加显式映射。
78
- - 确认是否有任何外部插件使用内置集之外的非标准 `From/To` 格式。
79
-
80
- ## 涉及的文件
81
-
82
- - `src/infra/outbound/outbound-session.ts`
83
- - `src/infra/outbound/outbound-send-service.ts`
84
- - `src/infra/outbound/message-action-runner.ts`
85
- - `src/agents/tools/message-tool.ts`
86
- - `src/gateway/server-methods/send.ts`
87
- - 测试:
88
- - `src/infra/outbound/outbound-session.test.ts`
89
- - `src/agents/tools/message-tool.test.ts`
90
- - `src/gateway/server-methods/send.test.ts`
@@ -1,221 +0,0 @@
1
- ---
2
- read_when:
3
- - 定义或重构插件架构
4
- - 将渠道连接器迁移到插件 SDK/运行时
5
- summary: 计划:为所有消息连接器提供一套统一的插件 SDK + 运行时
6
- title: 插件 SDK 重构
7
- x-i18n:
8
- generated_at: "2026-02-01T21:36:45Z"
9
- model: claude-opus-4-5
10
- provider: pi
11
- source_hash: d1964e2e47a19ee1d42ddaaa9cf1293c80bb0be463b049dc8468962f35bb6cb0
12
- source_path: refactor/plugin-sdk.md
13
- workflow: 15
14
- ---
15
-
16
- # 插件 SDK + 运行时重构计划
17
-
18
- 目标:每个消息连接器都是一个插件(内置或外部),使用统一稳定的 API。
19
- 插件不直接从 `src/**` 导入任何内容。所有依赖项均通过 SDK 或运行时获取。
20
-
21
- ## 为什么现在做
22
-
23
- - 当前连接器混用多种模式:直接导入核心模块、仅 dist 的桥接方式以及自定义辅助函数。
24
- - 这使得升级变得脆弱,并阻碍了干净的外部插件接口。
25
-
26
- ## 目标架构(两层)
27
-
28
- ### 1)插件 SDK(编译时,稳定,可发布)
29
-
30
- 范围:类型、辅助函数和配置工具。无运行时状态,无副作用。
31
-
32
- 内容(示例):
33
-
34
- - 类型:`ChannelPlugin`、适配器、`ChannelMeta`、`ChannelCapabilities`、`ChannelDirectoryEntry`。
35
- - 配置辅助函数:`buildChannelConfigSchema`、`setAccountEnabledInConfigSection`、`deleteAccountFromConfigSection`、
36
- `applyAccountNameToChannelSection`。
37
- - 配对辅助函数:`PAIRING_APPROVED_MESSAGE`、`formatPairingApproveHint`。
38
- - 新手引导辅助函数:`promptChannelAccessConfig`、`addWildcardAllowFrom`、新手引导类型。
39
- - 工具参数辅助函数:`createActionGate`、`readStringParam`、`readNumberParam`、`readReactionParams`、`jsonResult`。
40
- - 文档链接辅助函数:`formatDocsLink`。
41
-
42
- 交付方式:
43
-
44
- - 以 `symi/plugin-sdk` 发布(或从核心以 `symi/plugin-sdk` 导出)。
45
- - 使用语义化版本控制,提供明确的稳定性保证。
46
-
47
- ### 2)插件运行时(执行层,注入式)
48
-
49
- 范围:所有涉及核心运行时行为的内容。
50
- 通过 `SymiPluginApi.runtime` 访问,确保插件永远不会导入 `src/**`。
51
-
52
- 建议的接口(最小但完整):
53
-
54
- ```ts
55
- export type PluginRuntime = {
56
- channel: {
57
- text: {
58
- chunkMarkdownText(text: string, limit: number): string[];
59
- resolveTextChunkLimit(cfg: SymiConfig, channel: string, accountId?: string): number;
60
- hasControlCommand(text: string, cfg: SymiConfig): boolean;
61
- };
62
- reply: {
63
- dispatchReplyWithBufferedBlockDispatcher(params: {
64
- ctx: unknown;
65
- cfg: unknown;
66
- dispatcherOptions: {
67
- deliver: (payload: {
68
- text?: string;
69
- mediaUrls?: string[];
70
- mediaUrl?: string;
71
- }) => void | Promise<void>;
72
- onError?: (err: unknown, info: { kind: string }) => void;
73
- };
74
- }): Promise<void>;
75
- createReplyDispatcherWithTyping?: unknown; // adapter for Teams-style flows
76
- };
77
- routing: {
78
- resolveAgentRoute(params: {
79
- cfg: unknown;
80
- channel: string;
81
- accountId: string;
82
- peer: { kind: RoutePeerKind; id: string };
83
- }): { sessionKey: string; accountId: string };
84
- };
85
- pairing: {
86
- buildPairingReply(params: { channel: string; idLine: string; code: string }): string;
87
- readAllowFromStore(channel: string): Promise<string[]>;
88
- upsertPairingRequest(params: {
89
- channel: string;
90
- id: string;
91
- meta?: { name?: string };
92
- }): Promise<{ code: string; created: boolean }>;
93
- };
94
- media: {
95
- fetchRemoteMedia(params: { url: string }): Promise<{ buffer: Buffer; contentType?: string }>;
96
- saveMediaBuffer(
97
- buffer: Uint8Array,
98
- contentType: string | undefined,
99
- direction: "inbound" | "outbound",
100
- maxBytes: number,
101
- ): Promise<{ path: string; contentType?: string }>;
102
- };
103
- mentions: {
104
- buildMentionRegexes(cfg: SymiConfig, agentId?: string): RegExp[];
105
- matchesMentionPatterns(text: string, regexes: RegExp[]): boolean;
106
- };
107
- groups: {
108
- resolveGroupPolicy(
109
- cfg: SymiConfig,
110
- channel: string,
111
- accountId: string,
112
- groupId: string,
113
- ): {
114
- allowlistEnabled: boolean;
115
- allowed: boolean;
116
- groupConfig?: unknown;
117
- defaultConfig?: unknown;
118
- };
119
- resolveRequireMention(
120
- cfg: SymiConfig,
121
- channel: string,
122
- accountId: string,
123
- groupId: string,
124
- override?: boolean,
125
- ): boolean;
126
- };
127
- debounce: {
128
- createInboundDebouncer<T>(opts: {
129
- debounceMs: number;
130
- buildKey: (v: T) => string | null;
131
- shouldDebounce: (v: T) => boolean;
132
- onFlush: (entries: T[]) => Promise<void>;
133
- onError?: (err: unknown) => void;
134
- }): { push: (v: T) => void; flush: () => Promise<void> };
135
- resolveInboundDebounceMs(cfg: SymiConfig, channel: string): number;
136
- };
137
- commands: {
138
- resolveCommandAuthorizedFromAuthorizers(params: {
139
- useAccessGroups: boolean;
140
- authorizers: Array<{ configured: boolean; allowed: boolean }>;
141
- }): boolean;
142
- };
143
- };
144
- logging: {
145
- shouldLogVerbose(): boolean;
146
- getChildLogger(name: string): PluginLogger;
147
- };
148
- state: {
149
- resolveStateDir(cfg: SymiConfig): string;
150
- };
151
- };
152
- ```
153
-
154
- 备注:
155
-
156
- - 运行时是访问核心行为的唯一方式。
157
- - SDK 故意保持小巧和稳定。
158
- - 每个运行时方法都映射到现有的核心实现(无重复代码)。
159
-
160
- ## 迁移计划(分阶段,安全)
161
-
162
- ### 阶段 0:基础搭建
163
-
164
- - 引入 `symi/plugin-sdk`。
165
- - 在 `SymiPluginApi` 中添加带有上述接口的 `api.runtime`。
166
- - 在过渡期内保留现有导入方式(添加弃用警告)。
167
-
168
- ### 阶段 1:桥接清理(低风险)
169
-
170
- - 用 `api.runtime` 替换每个扩展中的 `core-bridge.ts`。
171
- - 优先迁移 BlueBubbles、Zalo、Zalo Personal(已经接近完成)。
172
- - 移除重复的桥接代码。
173
-
174
- ### 阶段 2:轻度直接导入的插件
175
-
176
- - 将 Matrix 迁移到 SDK + 运行时。
177
- - 验证新手引导、目录、群组提及逻辑。
178
-
179
- ### 阶段 3:重度直接导入的插件
180
-
181
- - 迁移 Microsoft Teams(使用运行时辅助函数最多的插件)。
182
- - 确保回复/正在输入的语义与当前行为一致。
183
-
184
- ### 阶段 4:iMessage 插件化
185
-
186
- - 将 iMessage 移入 `extensions/imessage`。
187
- - 用 `api.runtime` 替换直接的核心调用。
188
- - 保持配置键、CLI 行为和文档不变。
189
-
190
- ### 阶段 5:强制执行
191
-
192
- - 添加 lint 规则 / CI 检查:禁止 `extensions/**` 从 `src/**` 导入。
193
- - 添加插件 SDK/版本兼容性检查(运行时 + SDK 语义化版本)。
194
-
195
- ## 兼容性与版本控制
196
-
197
- - SDK:语义化版本控制,已发布,变更有文档记录。
198
- - 运行时:按核心版本进行版本控制。添加 `api.runtime.version`。
199
- - 插件声明所需的运行时版本范围(例如 `symiRuntime: ">=2026.2.0"`)。
200
-
201
- ## 测试策略
202
-
203
- - 适配器级单元测试(使用真实核心实现验证运行时函数)。
204
- - 每个插件的黄金测试:确保行为无偏差(路由、配对、允许列表、提及过滤)。
205
- - CI 中使用单个端到端插件示例(安装 + 运行 + 冒烟测试)。
206
-
207
- ## 待解决问题
208
-
209
- - SDK 类型托管在哪里:独立包还是核心导出?
210
- - 运行时类型分发:在 SDK 中(仅类型)还是在核心中?
211
- - 如何为内置插件与外部插件暴露文档链接?
212
- - 过渡期间是否允许仓库内插件有限地直接导入核心模块?
213
-
214
- ## 成功标准
215
-
216
- - 所有渠道连接器都是使用 SDK + 运行时的插件。
217
- - `extensions/**` 不再从 `src/**` 导入。
218
- - 新连接器模板仅依赖 SDK + 运行时。
219
- - 外部插件可以在无需访问核心源码的情况下进行开发和更新。
220
-
221
- 相关文档:[插件](/tools/plugin)、[渠道](/channels/index)、[配置](/gateway/configuration)。