@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,329 +0,0 @@
1
- ---
2
- read_when:
3
- - 你需要一个适合初学者的日志概述
4
- - 你想配置日志级别或格式
5
- - 你正在故障排除并需要快速找到日志
6
- summary: 日志概述:文件日志、控制台输出、CLI 跟踪和控制 UI
7
- title: 日志
8
- x-i18n:
9
- generated_at: "2026-02-03T07:50:52Z"
10
- model: claude-opus-4-5
11
- provider: pi
12
- source_hash: 884fcf4a906adff34d546908e22abd283cb89fe0845076cf925c72384ec3556b
13
- source_path: logging.md
14
- workflow: 15
15
- ---
16
-
17
- # 日志
18
-
19
- Symi 在两个地方记录日志:
20
-
21
- - **文件日志**(JSON 行)由 Gateway 网关写入。
22
- - **控制台输出**显示在终端和控制 UI 中。
23
-
24
- 本页说明日志存放位置、如何读取日志以及如何配置日志级别和格式。
25
-
26
- ## 日志存放位置
27
-
28
- 默认情况下,Gateway 网关在以下位置写入滚动日志文件:
29
-
30
- `/tmp/symi/symi-YYYY-MM-DD.log`
31
-
32
- 日期使用 Gateway 网关主机的本地时区。
33
-
34
- 你可以在 `~/.symi/symi.json` 中覆盖此设置:
35
-
36
- ```json
37
- {
38
- "logging": {
39
- "file": "/path/to/symi.log"
40
- }
41
- }
42
- ```
43
-
44
- ## 如何读取日志
45
-
46
- ### CLI:实时跟踪(推荐)
47
-
48
- 使用 CLI 通过 RPC 跟踪 Gateway 网关日志文件:
49
-
50
- ```bash
51
- symi logs --follow
52
- ```
53
-
54
- 输出模式:
55
-
56
- - **TTY 会话**:美观、彩色、结构化的日志行。
57
- - **非 TTY 会话**:纯文本。
58
- - `--json`:行分隔的 JSON(每行一个日志事件)。
59
- - `--plain`:在 TTY 会话中强制纯文本。
60
- - `--no-color`:禁用 ANSI 颜色。
61
-
62
- 在 JSON 模式下,CLI 输出带 `type` 标签的对象:
63
-
64
- - `meta`:流元数据(文件、游标、大小)
65
- - `log`:解析的日志条目
66
- - `notice`:截断/轮转提示
67
- - `raw`:未解析的日志行
68
-
69
- 如果 Gateway 网关无法访问,CLI 会打印一个简短提示运行:
70
-
71
- ```bash
72
- symi doctor
73
- ```
74
-
75
- ### 控制 UI(Web)
76
-
77
- 控制 UI 的**日志**标签页使用 `logs.tail` 跟踪相同的文件。
78
- 参见 [/web/control-ui](/web/control-ui) 了解如何打开它。
79
-
80
- ### 仅渠道日志
81
-
82
- 要过滤渠道活动(WhatsApp/Telegram 等),使用:
83
-
84
- ```bash
85
- symi channels logs --channel whatsapp
86
- ```
87
-
88
- ## 日志格式
89
-
90
- ### 文件日志(JSONL)
91
-
92
- 日志文件中的每一行都是一个 JSON 对象。CLI 和控制 UI 解析这些条目以渲染结构化输出(时间、级别、子系统、消息)。
93
-
94
- ### 控制台输出
95
-
96
- 控制台日志**感知 TTY**并格式化以提高可读性:
97
-
98
- - 子系统前缀(例如 `gateway/channels/whatsapp`)
99
- - 级别着色(info/warn/error)
100
- - 可选的紧凑或 JSON 模式
101
-
102
- 控制台格式由 `logging.consoleStyle` 控制。
103
-
104
- ## 配置日志
105
-
106
- 所有日志配置都在 `~/.symi/symi.json` 的 `logging` 下。
107
-
108
- ```json
109
- {
110
- "logging": {
111
- "level": "info",
112
- "file": "/tmp/symi/symi-YYYY-MM-DD.log",
113
- "consoleLevel": "info",
114
- "consoleStyle": "pretty",
115
- "redactSensitive": "tools",
116
- "redactPatterns": ["sk-.*"]
117
- }
118
- }
119
- ```
120
-
121
- ### 日志级别
122
-
123
- - `logging.level`:**文件日志**(JSONL)级别。
124
- - `logging.consoleLevel`:**控制台**详细程度级别。
125
-
126
- `--verbose` 仅影响控制台输出;它不改变文件日志级别。
127
-
128
- ### 控制台样式
129
-
130
- `logging.consoleStyle`:
131
-
132
- - `pretty`:人类友好、彩色、带时间戳。
133
- - `compact`:更紧凑的输出(最适合长会话)。
134
- - `json`:每行 JSON(用于日志处理器)。
135
-
136
- ### 脱敏
137
-
138
- 工具摘要可以在敏感令牌输出到控制台之前对其进行脱敏:
139
-
140
- - `logging.redactSensitive`:`off` | `tools`(默认:`tools`)
141
- - `logging.redactPatterns`:用于覆盖默认集的正则表达式字符串列表
142
-
143
- 脱敏仅影响**控制台输出**,不会改变文件日志。
144
-
145
- ## 诊断 + OpenTelemetry
146
-
147
- 诊断是用于模型运行**和**消息流遥测(webhooks、队列、会话状态)的结构化、机器可读事件。它们**不**替代日志;它们存在是为了向指标、追踪和其他导出器提供数据。
148
-
149
- 诊断事件在进程内发出,但导出器仅在启用诊断 + 导出器插件时才附加。
150
-
151
- ### OpenTelemetry 与 OTLP
152
-
153
- - **OpenTelemetry(OTel)**:追踪、指标和日志的数据模型 + SDK。
154
- - **OTLP**:用于将 OTel 数据导出到收集器/后端的线路协议。
155
- - Symi 目前通过 **OTLP/HTTP(protobuf)** 导出。
156
-
157
- ### 导出的信号
158
-
159
- - **指标**:计数器 + 直方图(令牌使用、消息流、队列)。
160
- - **追踪**:模型使用 + webhook/消息处理的 span。
161
- - **日志**:启用 `diagnostics.otel.logs` 时通过 OTLP 导出。日志量可能很大;请注意 `logging.level` 和导出器过滤器。
162
-
163
- ### 诊断事件目录
164
-
165
- 模型使用:
166
-
167
- - `model.usage`:令牌、成本、持续时间、上下文、提供商/模型/渠道、会话 ID。
168
-
169
- 消息流:
170
-
171
- - `webhook.received`:每渠道的 webhook 入口。
172
- - `webhook.processed`:webhook 已处理 + 持续时间。
173
- - `webhook.error`:webhook 处理程序错误。
174
- - `message.queued`:消息入队等待处理。
175
- - `message.processed`:结果 + 持续时间 + 可选错误。
176
-
177
- 队列 + 会话:
178
-
179
- - `queue.lane.enqueue`:命令队列通道入队 + 深度。
180
- - `queue.lane.dequeue`:命令队列通道出队 + 等待时间。
181
- - `session.state`:会话状态转换 + 原因。
182
- - `session.stuck`:会话卡住警告 + 持续时间。
183
- - `run.attempt`:运行重试/尝试元数据。
184
- - `diagnostic.heartbeat`:聚合计数器(webhooks/队列/会话)。
185
-
186
- ### 启用诊断(无导出器)
187
-
188
- 如果你希望诊断事件可用于插件或自定义接收器,使用此配置:
189
-
190
- ```json
191
- {
192
- "diagnostics": {
193
- "enabled": true
194
- }
195
- }
196
- ```
197
-
198
- ### 诊断标志(定向日志)
199
-
200
- 使用标志在不提高 `logging.level` 的情况下开启额外的定向调试日志。
201
- 标志不区分大小写,支持通配符(例如 `telegram.*` 或 `*`)。
202
-
203
- ```json
204
- {
205
- "diagnostics": {
206
- "flags": ["telegram.http"]
207
- }
208
- }
209
- ```
210
-
211
- 环境变量覆盖(一次性):
212
-
213
- ```
214
- SYMI_DIAGNOSTICS=telegram.http,telegram.payload
215
- ```
216
-
217
- 注意:
218
-
219
- - 标志日志进入标准日志文件(与 `logging.file` 相同)。
220
- - 输出仍根据 `logging.redactSensitive` 进行脱敏。
221
- - 完整指南:[/diagnostics/flags](/diagnostics/flags)。
222
-
223
- ### 导出到 OpenTelemetry
224
-
225
- 诊断可以通过 `diagnostics-otel` 插件(OTLP/HTTP)导出。这适用于任何接受 OTLP/HTTP 的 OpenTelemetry 收集器/后端。
226
-
227
- ```json
228
- {
229
- "plugins": {
230
- "allow": ["diagnostics-otel"],
231
- "entries": {
232
- "diagnostics-otel": {
233
- "enabled": true
234
- }
235
- }
236
- },
237
- "diagnostics": {
238
- "enabled": true,
239
- "otel": {
240
- "enabled": true,
241
- "endpoint": "http://otel-collector:4318",
242
- "protocol": "http/protobuf",
243
- "serviceName": "symi-gateway",
244
- "traces": true,
245
- "metrics": true,
246
- "logs": true,
247
- "sampleRate": 0.2,
248
- "flushIntervalMs": 60000
249
- }
250
- }
251
- }
252
- ```
253
-
254
- 注意:
255
-
256
- - 你也可以使用 `symi plugins enable diagnostics-otel` 启用插件。
257
- - `protocol` 目前仅支持 `http/protobuf`。`grpc` 被忽略。
258
- - 指标包括令牌使用、成本、上下文大小、运行持续时间和消息流计数器/直方图(webhooks、队列、会话状态、队列深度/等待)。
259
- - 追踪/指标可以通过 `traces` / `metrics` 切换(默认:开启)。启用时,追踪包括模型使用 span 加上 webhook/消息处理 span。
260
- - 当你的收集器需要认证时设置 `headers`。
261
- - 支持的环境变量:`OTEL_EXPORTER_OTLP_ENDPOINT`、`OTEL_SERVICE_NAME`、`OTEL_EXPORTER_OTLP_PROTOCOL`。
262
-
263
- ### 导出的指标(名称 + 类型)
264
-
265
- 模型使用:
266
-
267
- - `symi.tokens`(计数器,属性:`symi.token`、`symi.channel`、`symi.provider`、`symi.model`)
268
- - `symi.cost.usd`(计数器,属性:`symi.channel`、`symi.provider`、`symi.model`)
269
- - `symi.run.duration_ms`(直方图,属性:`symi.channel`、`symi.provider`、`symi.model`)
270
- - `symi.context.tokens`(直方图,属性:`symi.context`、`symi.channel`、`symi.provider`、`symi.model`)
271
-
272
- 消息流:
273
-
274
- - `symi.webhook.received`(计数器,属性:`symi.channel`、`symi.webhook`)
275
- - `symi.webhook.error`(计数器,属性:`symi.channel`、`symi.webhook`)
276
- - `symi.webhook.duration_ms`(直方图,属性:`symi.channel`、`symi.webhook`)
277
- - `symi.message.queued`(计数器,属性:`symi.channel`、`symi.source`)
278
- - `symi.message.processed`(计数器,属性:`symi.channel`、`symi.outcome`)
279
- - `symi.message.duration_ms`(直方图,属性:`symi.channel`、`symi.outcome`)
280
-
281
- 队列 + 会话:
282
-
283
- - `symi.queue.lane.enqueue`(计数器,属性:`symi.lane`)
284
- - `symi.queue.lane.dequeue`(计数器,属性:`symi.lane`)
285
- - `symi.queue.depth`(直方图,属性:`symi.lane` 或 `symi.channel=heartbeat`)
286
- - `symi.queue.wait_ms`(直方图,属性:`symi.lane`)
287
- - `symi.session.state`(计数器,属性:`symi.state`、`symi.reason`)
288
- - `symi.session.stuck`(计数器,属性:`symi.state`)
289
- - `symi.session.stuck_age_ms`(直方图,属性:`symi.state`)
290
- - `symi.run.attempt`(计数器,属性:`symi.attempt`)
291
-
292
- ### 导出的 span(名称 + 关键属性)
293
-
294
- - `symi.model.usage`
295
- - `symi.channel`、`symi.provider`、`symi.model`
296
- - `symi.sessionKey`、`symi.sessionId`
297
- - `symi.tokens.*`(input/output/cache_read/cache_write/total)
298
- - `symi.webhook.processed`
299
- - `symi.channel`、`symi.webhook`、`symi.chatId`
300
- - `symi.webhook.error`
301
- - `symi.channel`、`symi.webhook`、`symi.chatId`、`symi.error`
302
- - `symi.message.processed`
303
- - `symi.channel`、`symi.outcome`、`symi.chatId`、`symi.messageId`、`symi.sessionKey`、`symi.sessionId`、`symi.reason`
304
- - `symi.session.stuck`
305
- - `symi.state`、`symi.ageMs`、`symi.queueDepth`、`symi.sessionKey`、`symi.sessionId`
306
-
307
- ### 采样 + 刷新
308
-
309
- - 追踪采样:`diagnostics.otel.sampleRate`(0.0–1.0,仅根 span)。
310
- - 指标导出间隔:`diagnostics.otel.flushIntervalMs`(最小 1000ms)。
311
-
312
- ### 协议说明
313
-
314
- - OTLP/HTTP 端点可以通过 `diagnostics.otel.endpoint` 或 `OTEL_EXPORTER_OTLP_ENDPOINT` 设置。
315
- - 如果端点已包含 `/v1/traces` 或 `/v1/metrics`,则按原样使用。
316
- - 如果端点已包含 `/v1/logs`,则按原样用于日志。
317
- - `diagnostics.otel.logs` 为主日志器输出启用 OTLP 日志导出。
318
-
319
- ### 日志导出行为
320
-
321
- - OTLP 日志使用与写入 `logging.file` 相同的结构化记录。
322
- - 遵守 `logging.level`(文件日志级别)。控制台脱敏**不**适用于 OTLP 日志。
323
- - 高流量安装应优先使用 OTLP 收集器采样/过滤。
324
-
325
- ## 故障排除提示
326
-
327
- - **Gateway 网关无法访问?** 先运行 `symi doctor`。
328
- - **日志为空?** 检查 Gateway 网关是否正在运行并写入 `logging.file` 中的文件路径。
329
- - **需要更多细节?** 将 `logging.level` 设置为 `debug` 或 `trace` 并重试。
@@ -1,59 +0,0 @@
1
- ---
2
- read_when:
3
- - 你需要了解网络架构和安全概述
4
- - 你正在调试本地访问、tailnet 访问或配对问题
5
- - 你想要获取网络文档的权威列表
6
- summary: 网络中心:Gateway 网关接口、配对、设备发现和安全
7
- title: 网络
8
- x-i18n:
9
- generated_at: "2026-02-03T10:07:45Z"
10
- model: claude-opus-4-5
11
- provider: pi
12
- source_hash: 0fe4e7dbc8ddea312c8f3093af9b6bc71d9ae4007df76ae24b85889871933bc8
13
- source_path: network.md
14
- workflow: 15
15
- ---
16
-
17
- # 网络中心
18
-
19
- 本中心汇集了 Symi 如何在 localhost、局域网和 tailnet 之间连接、配对和保护设备的核心文档。
20
-
21
- ## 核心模型
22
-
23
- - [Gateway 网关架构](/concepts/architecture)
24
- - [Gateway 网关协议](/gateway/protocol)
25
- - [Gateway 网关运维手册](/gateway)
26
- - [Web 接口 + 绑定模式](/web)
27
-
28
- ## 配对 + 身份
29
-
30
- - [配对概述(私信 + 节点)](/channels/pairing)
31
- - [Gateway 网关拥有的节点配对](/gateway/pairing)
32
- - [Devices CLI(配对 + token 轮换)](/cli/devices)
33
- - [Pairing CLI(私信审批)](/cli/pairing)
34
-
35
- 本地信任:
36
-
37
- - 本地连接(loopback 或 Gateway 网关主机自身的 tailnet 地址)可以自动批准配对,以保持同主机用户体验的流畅性。
38
- - 非本地的 tailnet/局域网客户端仍需要显式的配对批准。
39
-
40
- ## 设备发现 + 传输协议
41
-
42
- - [设备发现与传输协议](/gateway/discovery)
43
- - [Bonjour / mDNS](/gateway/bonjour)
44
- - [远程访问(SSH)](/gateway/remote)
45
- - [Tailscale](/gateway/tailscale)
46
-
47
- ## 节点 + 传输协议
48
-
49
- - [节点概述](/nodes)
50
- - [桥接协议(旧版节点)](/gateway/bridge-protocol)
51
- - [节点运维手册:iOS](/platforms/ios)
52
- - [节点运维手册:Android](/platforms/android)
53
-
54
- ## 安全
55
-
56
- - [安全概述](/gateway/security)
57
- - [Gateway 网关配置参考](/gateway/configuration)
58
- - [故障排除](/gateway/troubleshooting)
59
- - [Doctor](/gateway/doctor)
@@ -1,120 +0,0 @@
1
- ---
2
- read_when:
3
- - 更改音频转录或媒体处理方式
4
- summary: 入站音频/语音消息如何被下载、转录并注入回复
5
- title: 音频与语音消息
6
- x-i18n:
7
- generated_at: "2026-02-01T21:17:35Z"
8
- model: claude-opus-4-5
9
- provider: pi
10
- source_hash: b926c47989ab0d1ee1fb8ae6372c51d27515b53d6fefe211a85856d372f14569
11
- source_path: nodes/audio.md
12
- workflow: 15
13
- ---
14
-
15
- # 音频 / 语音消息 — 2026-01-17
16
-
17
- ## 已支持的功能
18
-
19
- - **媒体理解(音频)**:如果音频理解已启用(或自动检测),Symi 会:
20
- 1. 找到第一个音频附件(本地路径或 URL),如有需要则下载。
21
- 2. 在发送给每个模型条目之前执行 `maxBytes` 限制。
22
- 3. 按顺序运行第一个符合条件的模型条目(提供商或 CLI)。
23
- 4. 如果失败或跳过(大小/超时),则尝试下一个条目。
24
- 5. 成功后,将 `Body` 替换为 `[Audio]` 块并设置 `{{Transcript}}`。
25
- - **命令解析**:转录成功时,`CommandBody`/`RawBody` 会设置为转录文本,因此斜杠命令仍然有效。
26
- - **详细日志**:在 `--verbose` 模式下,我们会在转录运行和替换正文时记录日志。
27
-
28
- ## 自动检测(默认)
29
-
30
- 如果你**未配置模型**且 `tools.media.audio.enabled` **未**设置为 `false`,Symi 会按以下顺序自动检测,并在找到第一个可用选项时停止:
31
-
32
- 1. **本地 CLI**(如已安装)
33
- - `sherpa-onnx-offline`(需要 `SHERPA_ONNX_MODEL_DIR` 包含 encoder/decoder/joiner/tokens)
34
- - `whisper-cli`(来自 `whisper-cpp`;使用 `WHISPER_CPP_MODEL` 或内置的 tiny 模型)
35
- - `whisper`(Python CLI;自动下载模型)
36
- 2. **Gemini CLI**(`gemini`)使用 `read_many_files`
37
- 3. **提供商密钥**(OpenAI → Groq → Deepgram → Google)
38
-
39
- 要禁用自动检测,请设置 `tools.media.audio.enabled: false`。
40
- 要自定义,请设置 `tools.media.audio.models`。
41
- 注意:二进制检测在 macOS/Linux/Windows 上采用尽力而为的方式;请确保 CLI 在 `PATH` 中(我们会展开 `~`),或通过完整命令路径设置显式 CLI 模型。
42
-
43
- ## 配置示例
44
-
45
- ### 提供商 + CLI 回退(OpenAI + Whisper CLI)
46
-
47
- ```json5
48
- {
49
- tools: {
50
- media: {
51
- audio: {
52
- enabled: true,
53
- maxBytes: 20971520,
54
- models: [
55
- { provider: "openai", model: "gpt-4o-mini-transcribe" },
56
- {
57
- type: "cli",
58
- command: "whisper",
59
- args: ["--model", "base", "{{MediaPath}}"],
60
- timeoutSeconds: 45,
61
- },
62
- ],
63
- },
64
- },
65
- },
66
- }
67
- ```
68
-
69
- ### 仅提供商 + 作用域控制
70
-
71
- ```json5
72
- {
73
- tools: {
74
- media: {
75
- audio: {
76
- enabled: true,
77
- scope: {
78
- default: "allow",
79
- rules: [{ action: "deny", match: { chatType: "group" } }],
80
- },
81
- models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }],
82
- },
83
- },
84
- },
85
- }
86
- ```
87
-
88
- ### 仅提供商(Deepgram)
89
-
90
- ```json5
91
- {
92
- tools: {
93
- media: {
94
- audio: {
95
- enabled: true,
96
- models: [{ provider: "deepgram", model: "nova-3" }],
97
- },
98
- },
99
- },
100
- }
101
- ```
102
-
103
- ## 注意事项与限制
104
-
105
- - 提供商认证遵循标准的模型认证顺序(认证配置文件、环境变量、`models.providers.*.apiKey`)。
106
- - 当使用 `provider: "deepgram"` 时,Deepgram 会读取 `DEEPGRAM_API_KEY`。
107
- - Deepgram 设置详情:[Deepgram(音频转录)](/providers/deepgram)。
108
- - 音频提供商可以通过 `tools.media.audio` 覆盖 `baseUrl`、`headers` 和 `providerOptions`。
109
- - 默认大小限制为 20MB(`tools.media.audio.maxBytes`)。超大音频会跳过该模型并尝试下一个条目。
110
- - 音频的默认 `maxChars` **未设置**(完整转录文本)。设置 `tools.media.audio.maxChars` 或每个条目的 `maxChars` 来裁剪输出。
111
- - OpenAI 自动检测默认使用 `gpt-4o-mini-transcribe`;设置 `model: "gpt-4o-transcribe"` 可获得更高准确度。
112
- - 使用 `tools.media.audio.attachments` 处理多条语音消息(`mode: "all"` + `maxAttachments`)。
113
- - 转录文本可在模板中通过 `{{Transcript}}` 使用。
114
- - CLI 标准输出有上限(5MB);请保持 CLI 输出简洁。
115
-
116
- ## 常见陷阱
117
-
118
- - 作用域规则采用首次匹配优先。`chatType` 会被规范化为 `direct`、`group` 或 `room`。
119
- - 确保你的 CLI 以退出码 0 退出并输出纯文本;JSON 格式需要通过 `jq -r .text` 进行转换。
120
- - 保持合理的超时时间(`timeoutSeconds`,默认 60 秒),以避免阻塞回复队列。
@@ -1,162 +0,0 @@
1
- ---
2
- read_when:
3
- - 在 iOS 节点或 macOS 上添加或修改相机捕获
4
- - 扩展智能体可访问的 MEDIA 临时文件工作流
5
- summary: 用于智能体的相机捕获(iOS 节点 + macOS 应用):照片(jpg)和短视频片段(mp4)
6
- title: 相机捕获
7
- x-i18n:
8
- generated_at: "2026-02-03T07:50:55Z"
9
- model: claude-opus-4-5
10
- provider: pi
11
- source_hash: b4d5f5ecbab6f70597cf1e1f9cc5f7f54681253bd747442db16cc681203b5813
12
- source_path: nodes/camera.md
13
- workflow: 15
14
- ---
15
-
16
- # 相机捕获(智能体)
17
-
18
- Symi 支持用于智能体工作流的**相机捕获**:
19
-
20
- - **iOS 节点**(通过 Gateway 网关配对):通过 `node.invoke` 捕获**照片**(`jpg`)或**短视频片段**(`mp4`,可选音频)。
21
- - **Android 节点**(通过 Gateway 网关配对):通过 `node.invoke` 捕获**照片**(`jpg`)或**短视频片段**(`mp4`,可选音频)。
22
- - **macOS 应用**(通过 Gateway 网关的节点):通过 `node.invoke` 捕获**照片**(`jpg`)或**短视频片段**(`mp4`,可选音频)。
23
-
24
- 所有相机访问都受**用户控制的设置**限制。
25
-
26
- ## iOS 节点
27
-
28
- ### 用户设置(默认开启)
29
-
30
- - iOS 设置标签页 → **相机** → **允许相机**(`camera.enabled`)
31
- - 默认:**开启**(缺少键时视为启用)。
32
- - 关闭时:`camera.*` 命令返回 `CAMERA_DISABLED`。
33
-
34
- ### 命令(通过 Gateway 网关 `node.invoke`)
35
-
36
- - `camera.list`
37
- - 响应载荷:
38
- - `devices`:`{ id, name, position, deviceType }` 数组
39
-
40
- - `camera.snap`
41
- - 参数:
42
- - `facing`:`front|back`(默认:`front`)
43
- - `maxWidth`:数字(可选;iOS 节点默认 `1600`)
44
- - `quality`:`0..1`(可选;默认 `0.9`)
45
- - `format`:当前为 `jpg`
46
- - `delayMs`:数字(可选;默认 `0`)
47
- - `deviceId`:字符串(可选;来自 `camera.list`)
48
- - 响应载荷:
49
- - `format: "jpg"`
50
- - `base64: "<...>"`
51
- - `width`、`height`
52
- - 载荷保护:照片会重新压缩以保持 base64 载荷小于 5 MB。
53
-
54
- - `camera.clip`
55
- - 参数:
56
- - `facing`:`front|back`(默认:`front`)
57
- - `durationMs`:数字(默认 `3000`,上限 `60000`)
58
- - `includeAudio`:布尔值(默认 `true`)
59
- - `format`:当前为 `mp4`
60
- - `deviceId`:字符串(可选;来自 `camera.list`)
61
- - 响应载荷:
62
- - `format: "mp4"`
63
- - `base64: "<...>"`
64
- - `durationMs`
65
- - `hasAudio`
66
-
67
- ### 前台要求
68
-
69
- 与 `canvas.*` 类似,iOS 节点仅允许在**前台**执行 `camera.*` 命令。后台调用返回 `NODE_BACKGROUND_UNAVAILABLE`。
70
-
71
- ### CLI 辅助工具(临时文件 + MEDIA)
72
-
73
- 获取附件最简单的方法是通过 CLI 辅助工具,它将解码的媒体写入临时文件并打印 `MEDIA:<path>`。
74
-
75
- 示例:
76
-
77
- ```bash
78
- symi nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
79
- symi nodes camera snap --node <id> --facing front
80
- symi nodes camera clip --node <id> --duration 3000
81
- symi nodes camera clip --node <id> --no-audio
82
- ```
83
-
84
- 注意事项:
85
-
86
- - `nodes camera snap` 默认拍摄**两个**方向以给智能体提供两个视角。
87
- - 输出文件是临时的(在操作系统临时目录中),除非你构建自己的包装器。
88
-
89
- ## Android 节点
90
-
91
- ### 用户设置(默认开启)
92
-
93
- - Android 设置页 → **相机** → **允许相机**(`camera.enabled`)
94
- - 默认:**开启**(缺少键时视为启用)。
95
- - 关闭时:`camera.*` 命令返回 `CAMERA_DISABLED`。
96
-
97
- ### 权限
98
-
99
- - Android 需要运行时权限:
100
- - `CAMERA` 用于 `camera.snap` 和 `camera.clip`。
101
- - `RECORD_AUDIO` 用于 `includeAudio=true` 时的 `camera.clip`。
102
-
103
- 如果缺少权限,应用会在可能时提示;如果被拒绝,`camera.*` 请求会失败并返回 `*_PERMISSION_REQUIRED` 错误。
104
-
105
- ### 前台要求
106
-
107
- 与 `canvas.*` 类似,Android 节点仅允许在**前台**执行 `camera.*` 命令。后台调用返回 `NODE_BACKGROUND_UNAVAILABLE`。
108
-
109
- ### 载荷保护
110
-
111
- 照片会重新压缩以保持 base64 载荷小于 5 MB。
112
-
113
- ## macOS 应用
114
-
115
- ### 用户设置(默认关闭)
116
-
117
- macOS 配套应用暴露一个复选框:
118
-
119
- - **设置 → 通用 → 允许相机**(`symi.cameraEnabled`)
120
- - 默认:**关闭**
121
- - 关闭时:相机请求返回"用户已禁用相机"。
122
-
123
- ### CLI 辅助工具(节点调用)
124
-
125
- 使用主 `symi` CLI 在 macOS 节点上调用相机命令。
126
-
127
- 示例:
128
-
129
- ```bash
130
- symi nodes camera list --node <id> # list camera ids
131
- symi nodes camera snap --node <id> # prints MEDIA:<path>
132
- symi nodes camera snap --node <id> --max-width 1280
133
- symi nodes camera snap --node <id> --delay-ms 2000
134
- symi nodes camera snap --node <id> --device-id <id>
135
- symi nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
136
- symi nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
137
- symi nodes camera clip --node <id> --device-id <id>
138
- symi nodes camera clip --node <id> --no-audio
139
- ```
140
-
141
- 注意事项:
142
-
143
- - `symi nodes camera snap` 默认 `maxWidth=1600`,除非被覆盖。
144
- - 在 macOS 上,`camera.snap` 在预热/曝光稳定后等待 `delayMs`(默认 2000ms)再捕获。
145
- - 照片载荷会重新压缩以保持 base64 小于 5 MB。
146
-
147
- ## 安全性 + 实际限制
148
-
149
- - 相机和麦克风访问会触发通常的操作系统权限提示(并需要 Info.plist 中的使用说明字符串)。
150
- - 视频片段有上限(当前 `<= 60s`)以避免过大的节点载荷(base64 开销 + 消息限制)。
151
-
152
- ## macOS 屏幕视频(操作系统级别)
153
-
154
- 对于*屏幕*视频(非相机),使用 macOS 配套应用:
155
-
156
- ```bash
157
- symi nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
158
- ```
159
-
160
- 注意事项:
161
-
162
- - 需要 macOS **屏幕录制**权限(TCC)。