@symerian/symi 3.0.20 → 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.
- package/dist/{audio-preflight-BaCdNfrk.js → audio-preflight-D7BVT-ls.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-UfmVM0xR.js → chrome-B5CO2vB5.js} +7 -7
- package/dist/{deliver-BqXdac6W.js → deliver-CrwjsDwv.js} +1 -1
- package/dist/extensionAPI.js +7 -7
- package/dist/{image-DIWsXYcW.js → image-Csu7WcLW.js} +1 -1
- package/dist/{manager-DW3SxcPr.js → manager-BkkVjTO8.js} +1 -1
- package/dist/{pi-embedded-BNch0U5F.js → pi-embedded-Dhp64z5l.js} +16 -16
- package/dist/{pi-embedded-helpers-IkHl02JF.js → pi-embedded-helpers-840E4hop.js} +4 -4
- package/dist/{pw-ai-nMkA-oDJ.js → pw-ai-CBgJf_RR.js} +1 -1
- package/dist/{runner-DNEC58JI.js → runner-BbFKo1ne.js} +1 -1
- package/dist/{synthesis-BWAr0sZ9.js → synthesis-DoEM0E8_.js} +7 -7
- package/dist/{web-7a-m_UxL.js → web-BYXJn-Ps.js} +7 -7
- package/package.json +1 -1
- package/docs/.i18n/README.md +0 -31
- package/docs/.i18n/glossary.ja-JP.json +0 -14
- package/docs/.i18n/glossary.zh-CN.json +0 -210
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
- package/docs/CNAME +0 -1
- package/docs/assets/install-script.svg +0 -1
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-symi.svg +0 -60
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +0 -11
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +0 -13
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +0 -14
- package/docs/assets/sponsors/openai.svg +0 -3
- package/docs/assets/symi-logo-text-dark.png +0 -0
- package/docs/assets/symi-logo-text.png +0 -0
- package/docs/automation/auth-monitoring.md +0 -44
- package/docs/automation/cron-jobs.md +0 -540
- package/docs/automation/cron-vs-heartbeat.md +0 -286
- package/docs/automation/gmail-pubsub.md +0 -256
- package/docs/automation/hooks.md +0 -998
- package/docs/automation/poll.md +0 -61
- package/docs/automation/troubleshooting.md +0 -122
- package/docs/automation/webhook.md +0 -213
- package/docs/brave-search.md +0 -41
- package/docs/capabilities.md +0 -151
- package/docs/channels/bluebubbles.md +0 -346
- package/docs/channels/broadcast-groups.md +0 -441
- package/docs/channels/channel-routing.md +0 -112
- package/docs/channels/feishu.md +0 -586
- package/docs/channels/googlechat.md +0 -253
- package/docs/channels/grammy.md +0 -31
- package/docs/channels/group-messages.md +0 -82
- package/docs/channels/groups.md +0 -364
- package/docs/channels/imessage.md +0 -366
- package/docs/channels/index.md +0 -46
- package/docs/channels/irc.md +0 -234
- package/docs/channels/line.md +0 -186
- package/docs/channels/location.md +0 -56
- package/docs/channels/matrix.md +0 -300
- package/docs/channels/mattermost.md +0 -158
- package/docs/channels/msteams.md +0 -769
- package/docs/channels/nextcloud-talk.md +0 -138
- package/docs/channels/nostr.md +0 -233
- package/docs/channels/pairing.md +0 -100
- package/docs/channels/signal.md +0 -322
- package/docs/channels/slack.md +0 -510
- package/docs/channels/telegram.md +0 -748
- package/docs/channels/tlon.md +0 -148
- package/docs/channels/troubleshooting.md +0 -110
- package/docs/channels/twitch.md +0 -379
- package/docs/channels/whatsapp.md +0 -444
- package/docs/channels/zalo.md +0 -192
- package/docs/channels/zalouser.md +0 -140
- package/docs/ci.md +0 -50
- package/docs/cli/acp.md +0 -182
- package/docs/cli/agent.md +0 -24
- package/docs/cli/agents.md +0 -75
- package/docs/cli/approvals.md +0 -50
- package/docs/cli/browser.md +0 -107
- package/docs/cli/channels.md +0 -73
- package/docs/cli/config.md +0 -50
- package/docs/cli/configure.md +0 -32
- package/docs/cli/cron.md +0 -44
- package/docs/cli/dashboard.md +0 -16
- package/docs/cli/devices.md +0 -73
- package/docs/cli/directory.md +0 -62
- package/docs/cli/dns.md +0 -23
- package/docs/cli/docs.md +0 -15
- package/docs/cli/doctor.md +0 -41
- package/docs/cli/gateway.md +0 -202
- package/docs/cli/health.md +0 -21
- package/docs/cli/hooks.md +0 -313
- package/docs/cli/index.md +0 -1029
- package/docs/cli/logs.md +0 -28
- package/docs/cli/memory.md +0 -45
- package/docs/cli/message.md +0 -214
- package/docs/cli/models.md +0 -79
- package/docs/cli/node.md +0 -112
- package/docs/cli/nodes.md +0 -73
- package/docs/cli/onboard.md +0 -76
- package/docs/cli/pairing.md +0 -21
- package/docs/cli/plugins.md +0 -92
- package/docs/cli/reset.md +0 -17
- package/docs/cli/sandbox.md +0 -152
- package/docs/cli/security.md +0 -64
- package/docs/cli/sessions.md +0 -16
- package/docs/cli/setup.md +0 -29
- package/docs/cli/skills.md +0 -26
- package/docs/cli/status.md +0 -25
- package/docs/cli/system.md +0 -60
- package/docs/cli/tui.md +0 -23
- package/docs/cli/uninstall.md +0 -17
- package/docs/cli/update.md +0 -98
- package/docs/cli/voicecall.md +0 -34
- package/docs/cli/webhooks.md +0 -25
- package/docs/concepts/agent-loop.md +0 -148
- package/docs/concepts/agent-workspace.md +0 -234
- package/docs/concepts/agent.md +0 -123
- package/docs/concepts/architecture.md +0 -135
- package/docs/concepts/compaction.md +0 -61
- package/docs/concepts/context.md +0 -161
- package/docs/concepts/features.md +0 -51
- package/docs/concepts/markdown-formatting.md +0 -128
- package/docs/concepts/memory.md +0 -729
- package/docs/concepts/messages.md +0 -153
- package/docs/concepts/model-failover.md +0 -149
- package/docs/concepts/model-providers.md +0 -424
- package/docs/concepts/models.md +0 -208
- package/docs/concepts/multi-agent.md +0 -521
- package/docs/concepts/oauth.md +0 -145
- package/docs/concepts/presence.md +0 -102
- package/docs/concepts/queue.md +0 -86
- package/docs/concepts/retry.md +0 -64
- package/docs/concepts/session-pruning.md +0 -123
- package/docs/concepts/session-tool.md +0 -213
- package/docs/concepts/session.md +0 -199
- package/docs/concepts/sessions.md +0 -10
- package/docs/concepts/streaming.md +0 -129
- package/docs/concepts/system-prompt.md +0 -128
- package/docs/concepts/timezone.md +0 -90
- package/docs/concepts/typebox.md +0 -289
- package/docs/concepts/typing-indicators.md +0 -68
- package/docs/concepts/usage-tracking.md +0 -35
- package/docs/date-time.md +0 -127
- package/docs/debug/node-issue.md +0 -85
- package/docs/diagnostics/flags.md +0 -91
- package/docs/docs.json +0 -1849
- package/docs/experiments/onboarding-config-protocol.md +0 -40
- package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
- package/docs/experiments/plans/cron-add-hardening.md +0 -62
- package/docs/experiments/plans/group-policy-hardening.md +0 -40
- package/docs/experiments/plans/openresponses-gateway.md +0 -123
- package/docs/experiments/plans/pty-process-supervision.md +0 -192
- package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
- package/docs/experiments/plans/thread-bound-subagents.md +0 -281
- package/docs/experiments/proposals/model-config.md +0 -36
- package/docs/experiments/research/memory.md +0 -228
- package/docs/gateway/authentication.md +0 -162
- package/docs/gateway/background-process.md +0 -96
- package/docs/gateway/bonjour.md +0 -177
- package/docs/gateway/bridge-protocol.md +0 -91
- package/docs/gateway/cli-backends.md +0 -225
- package/docs/gateway/configuration-examples.md +0 -610
- package/docs/gateway/configuration-reference.md +0 -2465
- package/docs/gateway/configuration.md +0 -488
- package/docs/gateway/discovery.md +0 -123
- package/docs/gateway/doctor.md +0 -282
- package/docs/gateway/gateway-lock.md +0 -34
- package/docs/gateway/health.md +0 -35
- package/docs/gateway/heartbeat.md +0 -374
- package/docs/gateway/index.md +0 -254
- package/docs/gateway/local-models.md +0 -150
- package/docs/gateway/logging.md +0 -113
- package/docs/gateway/multiple-gateways.md +0 -112
- package/docs/gateway/network-model.md +0 -20
- package/docs/gateway/openai-http-api.md +0 -119
- package/docs/gateway/openresponses-http-api.md +0 -333
- package/docs/gateway/pairing.md +0 -99
- package/docs/gateway/protocol.md +0 -221
- package/docs/gateway/remote-gateway-readme.md +0 -158
- package/docs/gateway/remote.md +0 -131
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
- package/docs/gateway/sandboxing.md +0 -203
- package/docs/gateway/security/index.md +0 -931
- package/docs/gateway/tailscale.md +0 -132
- package/docs/gateway/tools-invoke-http-api.md +0 -110
- package/docs/gateway/troubleshooting.md +0 -317
- package/docs/gateway/trusted-proxy-auth.md +0 -270
- package/docs/glass-ui-rendering-invariants.md +0 -451
- package/docs/help/debugging.md +0 -162
- package/docs/help/environment.md +0 -107
- package/docs/help/faq.md +0 -2846
- package/docs/help/index.md +0 -21
- package/docs/help/scripts.md +0 -28
- package/docs/help/testing.md +0 -385
- package/docs/help/troubleshooting.md +0 -264
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/groups-flow.svg +0 -52
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +0 -186
- package/docs/install/ansible.md +0 -207
- package/docs/install/bun.md +0 -59
- package/docs/install/development-channels.md +0 -75
- package/docs/install/docker.md +0 -583
- package/docs/install/exe-dev.md +0 -126
- package/docs/install/fly.md +0 -472
- package/docs/install/gcp.md +0 -499
- package/docs/install/hetzner.md +0 -347
- package/docs/install/index.md +0 -218
- package/docs/install/installer.md +0 -405
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating.md +0 -192
- package/docs/install/nix.md +0 -98
- package/docs/install/node.md +0 -138
- package/docs/install/northflank.mdx +0 -49
- package/docs/install/podman.md +0 -108
- package/docs/install/railway.mdx +0 -95
- package/docs/install/render.mdx +0 -158
- package/docs/install/uninstall.md +0 -128
- package/docs/install/updating.md +0 -231
- package/docs/ja-JP/AGENTS.md +0 -37
- package/docs/ja-JP/index.md +0 -183
- package/docs/ja-JP/start/getting-started.md +0 -125
- package/docs/ja-JP/start/wizard.md +0 -77
- package/docs/logging.md +0 -350
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -54
- package/docs/nodes/audio.md +0 -133
- package/docs/nodes/camera.md +0 -156
- package/docs/nodes/images.md +0 -72
- package/docs/nodes/index.md +0 -342
- package/docs/nodes/location-command.md +0 -113
- package/docs/nodes/media-understanding.md +0 -379
- package/docs/nodes/talk.md +0 -90
- package/docs/nodes/troubleshooting.md +0 -112
- package/docs/nodes/voicewake.md +0 -65
- package/docs/perplexity.md +0 -80
- package/docs/phase-6.5-pre-flight-audit.md +0 -268
- package/docs/pi-dev.md +0 -70
- package/docs/pi.md +0 -610
- package/docs/platforms/android.md +0 -151
- package/docs/platforms/digitalocean.md +0 -265
- package/docs/platforms/index.md +0 -53
- package/docs/platforms/ios.md +0 -108
- package/docs/platforms/linux.md +0 -94
- package/docs/platforms/mac/bundled-gateway.md +0 -73
- package/docs/platforms/mac/canvas.md +0 -125
- package/docs/platforms/mac/child-process.md +0 -69
- package/docs/platforms/mac/dev-setup.md +0 -104
- package/docs/platforms/mac/health.md +0 -34
- package/docs/platforms/mac/icon.md +0 -31
- package/docs/platforms/mac/logging.md +0 -57
- package/docs/platforms/mac/menu-bar.md +0 -81
- package/docs/platforms/mac/peekaboo.md +0 -65
- package/docs/platforms/mac/permissions.md +0 -50
- package/docs/platforms/mac/release.md +0 -85
- package/docs/platforms/mac/remote.md +0 -84
- package/docs/platforms/mac/signing.md +0 -47
- package/docs/platforms/mac/skills.md +0 -33
- package/docs/platforms/mac/voice-overlay.md +0 -60
- package/docs/platforms/mac/voicewake.md +0 -66
- package/docs/platforms/mac/webchat.md +0 -43
- package/docs/platforms/mac/xpc.md +0 -61
- package/docs/platforms/macos.md +0 -204
- package/docs/platforms/oracle.md +0 -303
- package/docs/platforms/raspberry-pi.md +0 -358
- package/docs/platforms/windows.md +0 -159
- package/docs/plugins/agent-tools.md +0 -99
- package/docs/plugins/community.md +0 -44
- package/docs/plugins/manifest.md +0 -71
- package/docs/plugins/voice-call.md +0 -322
- package/docs/plugins/zalouser.md +0 -81
- package/docs/prose.md +0 -134
- package/docs/providers/anthropic.md +0 -174
- package/docs/providers/bedrock.md +0 -176
- package/docs/providers/claude-max-api-proxy.md +0 -148
- package/docs/providers/cloudflare-ai-gateway.md +0 -71
- package/docs/providers/deepgram.md +0 -93
- package/docs/providers/github-copilot.md +0 -72
- package/docs/providers/glm.md +0 -33
- package/docs/providers/huggingface.md +0 -209
- package/docs/providers/index.md +0 -67
- package/docs/providers/litellm.md +0 -153
- package/docs/providers/minimax.md +0 -208
- package/docs/providers/models.md +0 -52
- package/docs/providers/moonshot.md +0 -142
- package/docs/providers/nvidia.md +0 -55
- package/docs/providers/ollama.md +0 -250
- package/docs/providers/openai.md +0 -62
- package/docs/providers/opencode.md +0 -36
- package/docs/providers/openrouter.md +0 -37
- package/docs/providers/qianfan.md +0 -38
- package/docs/providers/qwen.md +0 -53
- package/docs/providers/synthetic.md +0 -99
- package/docs/providers/together.md +0 -65
- package/docs/providers/venice.md +0 -267
- package/docs/providers/vercel-ai-gateway.md +0 -50
- package/docs/providers/vllm.md +0 -92
- package/docs/providers/xiaomi.md +0 -64
- package/docs/providers/zai.md +0 -38
- package/docs/refactor/exec-host.md +0 -316
- package/docs/refactor/outbound-session-mirroring.md +0 -83
- package/docs/refactor/plugin-sdk.md +0 -214
- package/docs/refactor/strict-config.md +0 -93
- package/docs/refactor/syminet.md +0 -417
- package/docs/reference/AGENTS.default.md +0 -123
- package/docs/reference/RELEASING.md +0 -120
- package/docs/reference/api-usage-costs.md +0 -138
- package/docs/reference/credits.md +0 -28
- package/docs/reference/device-models.md +0 -47
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/session-management-compaction.md +0 -284
- package/docs/reference/test.md +0 -51
- package/docs/reference/token-use.md +0 -136
- package/docs/reference/transcript-hygiene.md +0 -151
- package/docs/reference/wizard.md +0 -265
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
- package/docs/security/README.md +0 -16
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
- package/docs/security/formal-verification.md +0 -164
- package/docs/start/bootstrapping.md +0 -41
- package/docs/start/docs-directory.md +0 -63
- package/docs/start/getting-started.md +0 -135
- package/docs/start/hubs.md +0 -196
- package/docs/start/lore.md +0 -216
- package/docs/start/onboarding-overview.md +0 -51
- package/docs/start/onboarding.md +0 -81
- package/docs/start/quickstart.md +0 -22
- package/docs/start/setup.md +0 -160
- package/docs/start/showcase.md +0 -414
- package/docs/start/symi.md +0 -211
- package/docs/start/wizard-cli-automation.md +0 -158
- package/docs/start/wizard-cli-reference.md +0 -255
- package/docs/start/wizard.md +0 -109
- package/docs/style.css +0 -37
- package/docs/tools/agent-send.md +0 -52
- package/docs/tools/apply-patch.md +0 -51
- package/docs/tools/browser-linux-troubleshooting.md +0 -139
- package/docs/tools/browser-login.md +0 -67
- package/docs/tools/browser.md +0 -587
- package/docs/tools/chrome-extension.md +0 -183
- package/docs/tools/creating-skills.md +0 -54
- package/docs/tools/elevated.md +0 -55
- package/docs/tools/exec-approvals.md +0 -261
- package/docs/tools/exec.md +0 -184
- package/docs/tools/firecrawl.md +0 -61
- package/docs/tools/index.md +0 -540
- package/docs/tools/llm-task.md +0 -115
- package/docs/tools/loop-detection.md +0 -98
- package/docs/tools/multi-agent-sandbox-tools.md +0 -396
- package/docs/tools/pipeline.md +0 -340
- package/docs/tools/plugin.md +0 -687
- package/docs/tools/reactions.md +0 -21
- package/docs/tools/skills-config.md +0 -76
- package/docs/tools/skills.md +0 -300
- package/docs/tools/slash-commands.md +0 -202
- package/docs/tools/subagents.md +0 -232
- package/docs/tools/symihub.md +0 -256
- package/docs/tools/thinking.md +0 -75
- package/docs/tools/web.md +0 -265
- package/docs/tts.md +0 -398
- package/docs/vps.md +0 -43
- package/docs/web/control-ui.md +0 -247
- package/docs/web/dashboard.md +0 -46
- package/docs/web/index.md +0 -118
- package/docs/web/tui.md +0 -162
- package/docs/web/webchat.md +0 -53
- package/docs/whatsapp-symi-ai-zh.jpg +0 -0
- package/docs/whatsapp-symi.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +0 -59
- package/docs/zh-CN/automation/auth-monitoring.md +0 -47
- package/docs/zh-CN/automation/cron-jobs.md +0 -422
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
- package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
- package/docs/zh-CN/automation/hooks.md +0 -881
- package/docs/zh-CN/automation/poll.md +0 -68
- package/docs/zh-CN/automation/troubleshooting.md +0 -8
- package/docs/zh-CN/automation/webhook.md +0 -161
- package/docs/zh-CN/brave-search.md +0 -48
- package/docs/zh-CN/channels/bluebubbles.md +0 -271
- package/docs/zh-CN/channels/broadcast-groups.md +0 -448
- package/docs/zh-CN/channels/channel-routing.md +0 -112
- package/docs/zh-CN/channels/feishu.md +0 -629
- package/docs/zh-CN/channels/googlechat.md +0 -257
- package/docs/zh-CN/channels/grammy.md +0 -38
- package/docs/zh-CN/channels/group-messages.md +0 -89
- package/docs/zh-CN/channels/groups.md +0 -369
- package/docs/zh-CN/channels/imessage.md +0 -300
- package/docs/zh-CN/channels/index.md +0 -52
- package/docs/zh-CN/channels/line.md +0 -180
- package/docs/zh-CN/channels/location.md +0 -63
- package/docs/zh-CN/channels/matrix.md +0 -221
- package/docs/zh-CN/channels/mattermost.md +0 -144
- package/docs/zh-CN/channels/msteams.md +0 -773
- package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
- package/docs/zh-CN/channels/nostr.md +0 -240
- package/docs/zh-CN/channels/pairing.md +0 -86
- package/docs/zh-CN/channels/signal.md +0 -207
- package/docs/zh-CN/channels/slack.md +0 -529
- package/docs/zh-CN/channels/telegram.md +0 -748
- package/docs/zh-CN/channels/tlon.md +0 -136
- package/docs/zh-CN/channels/troubleshooting.md +0 -34
- package/docs/zh-CN/channels/twitch.md +0 -385
- package/docs/zh-CN/channels/whatsapp.md +0 -411
- package/docs/zh-CN/channels/zalo.md +0 -196
- package/docs/zh-CN/channels/zalouser.md +0 -147
- package/docs/zh-CN/cli/acp.md +0 -173
- package/docs/zh-CN/cli/agent.md +0 -30
- package/docs/zh-CN/cli/agents.md +0 -82
- package/docs/zh-CN/cli/approvals.md +0 -57
- package/docs/zh-CN/cli/browser.md +0 -114
- package/docs/zh-CN/cli/channels.md +0 -80
- package/docs/zh-CN/cli/config.md +0 -57
- package/docs/zh-CN/cli/configure.md +0 -37
- package/docs/zh-CN/cli/cron.md +0 -43
- package/docs/zh-CN/cli/dashboard.md +0 -23
- package/docs/zh-CN/cli/devices.md +0 -74
- package/docs/zh-CN/cli/directory.md +0 -69
- package/docs/zh-CN/cli/dns.md +0 -30
- package/docs/zh-CN/cli/docs.md +0 -22
- package/docs/zh-CN/cli/doctor.md +0 -48
- package/docs/zh-CN/cli/gateway.md +0 -206
- package/docs/zh-CN/cli/health.md +0 -28
- package/docs/zh-CN/cli/hooks.md +0 -298
- package/docs/zh-CN/cli/index.md +0 -1025
- package/docs/zh-CN/cli/logs.md +0 -31
- package/docs/zh-CN/cli/memory.md +0 -52
- package/docs/zh-CN/cli/message.md +0 -205
- package/docs/zh-CN/cli/models.md +0 -85
- package/docs/zh-CN/cli/node.md +0 -115
- package/docs/zh-CN/cli/nodes.md +0 -80
- package/docs/zh-CN/cli/onboard.md +0 -36
- package/docs/zh-CN/cli/pairing.md +0 -28
- package/docs/zh-CN/cli/plugins.md +0 -66
- package/docs/zh-CN/cli/reset.md +0 -24
- package/docs/zh-CN/cli/sandbox.md +0 -158
- package/docs/zh-CN/cli/security.md +0 -33
- package/docs/zh-CN/cli/sessions.md +0 -23
- package/docs/zh-CN/cli/setup.md +0 -36
- package/docs/zh-CN/cli/skills.md +0 -33
- package/docs/zh-CN/cli/status.md +0 -32
- package/docs/zh-CN/cli/system.md +0 -63
- package/docs/zh-CN/cli/tui.md +0 -30
- package/docs/zh-CN/cli/uninstall.md +0 -24
- package/docs/zh-CN/cli/update.md +0 -101
- package/docs/zh-CN/cli/voicecall.md +0 -41
- package/docs/zh-CN/cli/webhooks.md +0 -32
- package/docs/zh-CN/concepts/agent-loop.md +0 -146
- package/docs/zh-CN/concepts/agent-workspace.md +0 -219
- package/docs/zh-CN/concepts/agent.md +0 -115
- package/docs/zh-CN/concepts/architecture.md +0 -122
- package/docs/zh-CN/concepts/compaction.md +0 -67
- package/docs/zh-CN/concepts/context.md +0 -168
- package/docs/zh-CN/concepts/features.md +0 -57
- package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
- package/docs/zh-CN/concepts/memory.md +0 -412
- package/docs/zh-CN/concepts/messages.md +0 -140
- package/docs/zh-CN/concepts/model-failover.md +0 -145
- package/docs/zh-CN/concepts/model-providers.md +0 -320
- package/docs/zh-CN/concepts/models.md +0 -196
- package/docs/zh-CN/concepts/multi-agent.md +0 -371
- package/docs/zh-CN/concepts/oauth.md +0 -151
- package/docs/zh-CN/concepts/presence.md +0 -99
- package/docs/zh-CN/concepts/queue.md +0 -91
- package/docs/zh-CN/concepts/retry.md +0 -71
- package/docs/zh-CN/concepts/session-pruning.md +0 -129
- package/docs/zh-CN/concepts/session-tool.md +0 -198
- package/docs/zh-CN/concepts/session.md +0 -158
- package/docs/zh-CN/concepts/sessions.md +0 -17
- package/docs/zh-CN/concepts/streaming.md +0 -131
- package/docs/zh-CN/concepts/system-prompt.md +0 -99
- package/docs/zh-CN/concepts/timezone.md +0 -94
- package/docs/zh-CN/concepts/typebox.md +0 -284
- package/docs/zh-CN/concepts/typing-indicators.md +0 -74
- package/docs/zh-CN/concepts/usage-tracking.md +0 -42
- package/docs/zh-CN/date-time.md +0 -128
- package/docs/zh-CN/debug/node-issue.md +0 -90
- package/docs/zh-CN/diagnostics/flags.md +0 -98
- package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
- package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
- package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
- package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
- package/docs/zh-CN/experiments/research/memory.md +0 -235
- package/docs/zh-CN/gateway/authentication.md +0 -142
- package/docs/zh-CN/gateway/background-process.md +0 -100
- package/docs/zh-CN/gateway/bonjour.md +0 -174
- package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
- package/docs/zh-CN/gateway/cli-backends.md +0 -213
- package/docs/zh-CN/gateway/configuration-examples.md +0 -580
- package/docs/zh-CN/gateway/configuration.md +0 -3284
- package/docs/zh-CN/gateway/discovery.md +0 -123
- package/docs/zh-CN/gateway/doctor.md +0 -238
- package/docs/zh-CN/gateway/gateway-lock.md +0 -41
- package/docs/zh-CN/gateway/health.md +0 -42
- package/docs/zh-CN/gateway/heartbeat.md +0 -272
- package/docs/zh-CN/gateway/index.md +0 -335
- package/docs/zh-CN/gateway/local-models.md +0 -157
- package/docs/zh-CN/gateway/logging.md +0 -114
- package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
- package/docs/zh-CN/gateway/network-model.md +0 -23
- package/docs/zh-CN/gateway/openai-http-api.md +0 -125
- package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
- package/docs/zh-CN/gateway/pairing.md +0 -99
- package/docs/zh-CN/gateway/protocol.md +0 -220
- package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
- package/docs/zh-CN/gateway/remote.md +0 -133
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
- package/docs/zh-CN/gateway/sandboxing.md +0 -188
- package/docs/zh-CN/gateway/security/index.md +0 -772
- package/docs/zh-CN/gateway/tailscale.md +0 -124
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
- package/docs/zh-CN/gateway/troubleshooting.md +0 -758
- package/docs/zh-CN/help/debugging.md +0 -160
- package/docs/zh-CN/help/environment.md +0 -88
- package/docs/zh-CN/help/faq.md +0 -2613
- package/docs/zh-CN/help/index.md +0 -28
- package/docs/zh-CN/help/scripts.md +0 -35
- package/docs/zh-CN/help/testing.md +0 -375
- package/docs/zh-CN/help/troubleshooting.md +0 -104
- package/docs/zh-CN/index.md +0 -183
- package/docs/zh-CN/install/ansible.md +0 -214
- package/docs/zh-CN/install/bun.md +0 -65
- package/docs/zh-CN/install/development-channels.md +0 -81
- package/docs/zh-CN/install/docker.md +0 -525
- package/docs/zh-CN/install/exe-dev.md +0 -127
- package/docs/zh-CN/install/fly.md +0 -476
- package/docs/zh-CN/install/gcp.md +0 -509
- package/docs/zh-CN/install/hetzner.md +0 -336
- package/docs/zh-CN/install/index.md +0 -193
- package/docs/zh-CN/install/installer.md +0 -128
- package/docs/zh-CN/install/macos-vm.md +0 -288
- package/docs/zh-CN/install/migrating.md +0 -199
- package/docs/zh-CN/install/nix.md +0 -99
- package/docs/zh-CN/install/node.md +0 -8
- package/docs/zh-CN/install/northflank.mdx +0 -56
- package/docs/zh-CN/install/railway.mdx +0 -102
- package/docs/zh-CN/install/render.mdx +0 -168
- package/docs/zh-CN/install/uninstall.md +0 -135
- package/docs/zh-CN/install/updating.md +0 -233
- package/docs/zh-CN/logging.md +0 -329
- package/docs/zh-CN/network.md +0 -59
- package/docs/zh-CN/nodes/audio.md +0 -120
- package/docs/zh-CN/nodes/camera.md +0 -162
- package/docs/zh-CN/nodes/images.md +0 -79
- package/docs/zh-CN/nodes/index.md +0 -348
- package/docs/zh-CN/nodes/location-command.md +0 -120
- package/docs/zh-CN/nodes/media-understanding.md +0 -380
- package/docs/zh-CN/nodes/talk.md +0 -97
- package/docs/zh-CN/nodes/troubleshooting.md +0 -8
- package/docs/zh-CN/nodes/voicewake.md +0 -72
- package/docs/zh-CN/perplexity.md +0 -84
- package/docs/zh-CN/pi-dev.md +0 -77
- package/docs/zh-CN/pi.md +0 -617
- package/docs/zh-CN/platforms/android.md +0 -155
- package/docs/zh-CN/platforms/digitalocean.md +0 -268
- package/docs/zh-CN/platforms/index.md +0 -60
- package/docs/zh-CN/platforms/ios.md +0 -114
- package/docs/zh-CN/platforms/linux.md +0 -101
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
- package/docs/zh-CN/platforms/mac/canvas.md +0 -128
- package/docs/zh-CN/platforms/mac/child-process.md +0 -73
- package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
- package/docs/zh-CN/platforms/mac/health.md +0 -41
- package/docs/zh-CN/platforms/mac/icon.md +0 -38
- package/docs/zh-CN/platforms/mac/logging.md +0 -64
- package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
- package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
- package/docs/zh-CN/platforms/mac/permissions.md +0 -46
- package/docs/zh-CN/platforms/mac/release.md +0 -92
- package/docs/zh-CN/platforms/mac/remote.md +0 -90
- package/docs/zh-CN/platforms/mac/signing.md +0 -54
- package/docs/zh-CN/platforms/mac/skills.md +0 -40
- package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
- package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
- package/docs/zh-CN/platforms/mac/webchat.md +0 -43
- package/docs/zh-CN/platforms/mac/xpc.md +0 -68
- package/docs/zh-CN/platforms/macos.md +0 -193
- package/docs/zh-CN/platforms/oracle.md +0 -310
- package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
- package/docs/zh-CN/platforms/windows.md +0 -156
- package/docs/zh-CN/plugins/agent-tools.md +0 -99
- package/docs/zh-CN/plugins/manifest.md +0 -68
- package/docs/zh-CN/plugins/voice-call.md +0 -250
- package/docs/zh-CN/plugins/zalouser.md +0 -88
- package/docs/zh-CN/prose.md +0 -141
- package/docs/zh-CN/providers/anthropic.md +0 -159
- package/docs/zh-CN/providers/bedrock.md +0 -170
- package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
- package/docs/zh-CN/providers/deepgram.md +0 -97
- package/docs/zh-CN/providers/github-copilot.md +0 -67
- package/docs/zh-CN/providers/glm.md +0 -39
- package/docs/zh-CN/providers/index.md +0 -66
- package/docs/zh-CN/providers/minimax.md +0 -206
- package/docs/zh-CN/providers/models.md +0 -55
- package/docs/zh-CN/providers/moonshot.md +0 -145
- package/docs/zh-CN/providers/ollama.md +0 -230
- package/docs/zh-CN/providers/openai.md +0 -68
- package/docs/zh-CN/providers/opencode.md +0 -41
- package/docs/zh-CN/providers/openrouter.md +0 -43
- package/docs/zh-CN/providers/qianfan.md +0 -8
- package/docs/zh-CN/providers/qwen.md +0 -55
- package/docs/zh-CN/providers/synthetic.md +0 -102
- package/docs/zh-CN/providers/venice.md +0 -274
- package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
- package/docs/zh-CN/providers/xiaomi.md +0 -68
- package/docs/zh-CN/providers/zai.md +0 -41
- package/docs/zh-CN/refactor/exec-host.md +0 -323
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
- package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
- package/docs/zh-CN/refactor/strict-config.md +0 -100
- package/docs/zh-CN/refactor/syminet.md +0 -424
- package/docs/zh-CN/reference/AGENTS.default.md +0 -130
- package/docs/zh-CN/reference/RELEASING.md +0 -122
- package/docs/zh-CN/reference/api-usage-costs.md +0 -136
- package/docs/zh-CN/reference/credits.md +0 -34
- package/docs/zh-CN/reference/device-models.md +0 -54
- package/docs/zh-CN/reference/rpc.md +0 -48
- package/docs/zh-CN/reference/session-management-compaction.md +0 -286
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
- package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
- package/docs/zh-CN/reference/templates/BOOT.md +0 -17
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
- package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
- package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
- package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
- package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
- package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
- package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
- package/docs/zh-CN/reference/templates/USER.md +0 -30
- package/docs/zh-CN/reference/test.md +0 -57
- package/docs/zh-CN/reference/token-use.md +0 -119
- package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
- package/docs/zh-CN/reference/wizard.md +0 -9
- package/docs/zh-CN/security/formal-verification.md +0 -171
- package/docs/zh-CN/start/bootstrapping.md +0 -9
- package/docs/zh-CN/start/docs-directory.md +0 -69
- package/docs/zh-CN/start/getting-started.md +0 -201
- package/docs/zh-CN/start/hubs.md +0 -199
- package/docs/zh-CN/start/lore.md +0 -223
- package/docs/zh-CN/start/onboarding.md +0 -105
- package/docs/zh-CN/start/quickstart.md +0 -88
- package/docs/zh-CN/start/setup.md +0 -151
- package/docs/zh-CN/start/showcase.md +0 -421
- package/docs/zh-CN/start/symi.md +0 -244
- package/docs/zh-CN/start/wizard.md +0 -326
- package/docs/zh-CN/tools/agent-send.md +0 -58
- package/docs/zh-CN/tools/apply-patch.md +0 -57
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
- package/docs/zh-CN/tools/browser-login.md +0 -75
- package/docs/zh-CN/tools/browser.md +0 -553
- package/docs/zh-CN/tools/chrome-extension.md +0 -183
- package/docs/zh-CN/tools/creating-skills.md +0 -61
- package/docs/zh-CN/tools/elevated.md +0 -62
- package/docs/zh-CN/tools/exec-approvals.md +0 -233
- package/docs/zh-CN/tools/exec.md +0 -169
- package/docs/zh-CN/tools/firecrawl.md +0 -68
- package/docs/zh-CN/tools/index.md +0 -508
- package/docs/zh-CN/tools/llm-task.md +0 -117
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
- package/docs/zh-CN/tools/pipeline.md +0 -349
- package/docs/zh-CN/tools/plugin.md +0 -639
- package/docs/zh-CN/tools/reactions.md +0 -28
- package/docs/zh-CN/tools/skills-config.md +0 -78
- package/docs/zh-CN/tools/skills.md +0 -279
- package/docs/zh-CN/tools/slash-commands.md +0 -196
- package/docs/zh-CN/tools/subagents.md +0 -167
- package/docs/zh-CN/tools/symihub.md +0 -209
- package/docs/zh-CN/tools/thinking.md +0 -80
- package/docs/zh-CN/tools/web.md +0 -257
- package/docs/zh-CN/tts.md +0 -373
- package/docs/zh-CN/vps.md +0 -47
- package/docs/zh-CN/web/control-ui.md +0 -190
- package/docs/zh-CN/web/dashboard.md +0 -53
- package/docs/zh-CN/web/index.md +0 -118
- package/docs/zh-CN/web/tui.md +0 -166
- package/docs/zh-CN/web/webchat.md +0 -56
- package/extensions/imessage/index.ts +0 -17
- package/extensions/imessage/node_modules/.bin/symi +0 -21
- package/extensions/imessage/package.json +0 -15
- package/extensions/imessage/src/channel.outbound.test.ts +0 -66
- package/extensions/imessage/src/channel.ts +0 -298
- package/extensions/imessage/src/runtime.ts +0 -14
- package/extensions/imessage/symi.plugin.json +0 -9
- package/extensions/line/index.ts +0 -19
- package/extensions/line/node_modules/.bin/symi +0 -21
- package/extensions/line/package.json +0 -30
- package/extensions/line/src/card-command.ts +0 -344
- package/extensions/line/src/channel.logout.test.ts +0 -133
- package/extensions/line/src/channel.sendPayload.test.ts +0 -312
- package/extensions/line/src/channel.startup.test.ts +0 -133
- package/extensions/line/src/channel.ts +0 -801
- package/extensions/line/src/runtime.ts +0 -14
- package/extensions/line/symi.plugin.json +0 -9
- package/extensions/signal/index.ts +0 -17
- package/extensions/signal/node_modules/.bin/symi +0 -21
- package/extensions/signal/package.json +0 -15
- package/extensions/signal/src/channel.ts +0 -302
- package/extensions/signal/src/runtime.ts +0 -14
- package/extensions/signal/symi.plugin.json +0 -9
- package/extensions/telegram/index.ts +0 -17
- package/extensions/telegram/node_modules/.bin/symi +0 -21
- package/extensions/telegram/package.json +0 -15
- package/extensions/telegram/src/channel.test.ts +0 -125
- package/extensions/telegram/src/channel.ts +0 -560
- package/extensions/telegram/src/runtime.ts +0 -14
- package/extensions/telegram/symi.plugin.json +0 -9
- package/extensions/whatsapp/index.ts +0 -17
- package/extensions/whatsapp/node_modules/.bin/symi +0 -21
- package/extensions/whatsapp/package.json +0 -15
- package/extensions/whatsapp/src/channel.ts +0 -465
- package/extensions/whatsapp/src/resolve-target.test.ts +0 -170
- package/extensions/whatsapp/src/runtime.ts +0 -14
- package/extensions/whatsapp/symi.plugin.json +0 -9
package/docs/logging.md
DELETED
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Logging overview: file logs, console output, CLI tailing, and the Control UI"
|
|
3
|
-
read_when:
|
|
4
|
-
- You need a beginner-friendly overview of logging
|
|
5
|
-
- You want to configure log levels or formats
|
|
6
|
-
- You are troubleshooting and need to find logs quickly
|
|
7
|
-
title: "Logging"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Logging
|
|
11
|
-
|
|
12
|
-
Symi logs in two places:
|
|
13
|
-
|
|
14
|
-
- **File logs** (JSON lines) written by the Gateway.
|
|
15
|
-
- **Console output** shown in terminals and the Control UI.
|
|
16
|
-
|
|
17
|
-
This page explains where logs live, how to read them, and how to configure log
|
|
18
|
-
levels and formats.
|
|
19
|
-
|
|
20
|
-
## Where logs live
|
|
21
|
-
|
|
22
|
-
By default, the Gateway writes a rolling log file under:
|
|
23
|
-
|
|
24
|
-
`/tmp/symi/symi-YYYY-MM-DD.log`
|
|
25
|
-
|
|
26
|
-
The date uses the gateway host's local timezone.
|
|
27
|
-
|
|
28
|
-
You can override this in `~/.symi/symi.json`:
|
|
29
|
-
|
|
30
|
-
```json
|
|
31
|
-
{
|
|
32
|
-
"logging": {
|
|
33
|
-
"file": "/path/to/symi.log"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## How to read logs
|
|
39
|
-
|
|
40
|
-
### CLI: live tail (recommended)
|
|
41
|
-
|
|
42
|
-
Use the CLI to tail the gateway log file via RPC:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
symi logs --follow
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Output modes:
|
|
49
|
-
|
|
50
|
-
- **TTY sessions**: pretty, colorized, structured log lines.
|
|
51
|
-
- **Non-TTY sessions**: plain text.
|
|
52
|
-
- `--json`: line-delimited JSON (one log event per line).
|
|
53
|
-
- `--plain`: force plain text in TTY sessions.
|
|
54
|
-
- `--no-color`: disable ANSI colors.
|
|
55
|
-
|
|
56
|
-
In JSON mode, the CLI emits `type`-tagged objects:
|
|
57
|
-
|
|
58
|
-
- `meta`: stream metadata (file, cursor, size)
|
|
59
|
-
- `log`: parsed log entry
|
|
60
|
-
- `notice`: truncation / rotation hints
|
|
61
|
-
- `raw`: unparsed log line
|
|
62
|
-
|
|
63
|
-
If the Gateway is unreachable, the CLI prints a short hint to run:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
symi doctor
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Control UI (web)
|
|
70
|
-
|
|
71
|
-
The Control UI’s **Logs** tab tails the same file using `logs.tail`.
|
|
72
|
-
See [/web/control-ui](/web/control-ui) for how to open it.
|
|
73
|
-
|
|
74
|
-
### Channel-only logs
|
|
75
|
-
|
|
76
|
-
To filter channel activity (WhatsApp/Telegram/etc), use:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
symi channels logs --channel whatsapp
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Log formats
|
|
83
|
-
|
|
84
|
-
### File logs (JSONL)
|
|
85
|
-
|
|
86
|
-
Each line in the log file is a JSON object. The CLI and Control UI parse these
|
|
87
|
-
entries to render structured output (time, level, subsystem, message).
|
|
88
|
-
|
|
89
|
-
### Console output
|
|
90
|
-
|
|
91
|
-
Console logs are **TTY-aware** and formatted for readability:
|
|
92
|
-
|
|
93
|
-
- Subsystem prefixes (e.g. `gateway/channels/whatsapp`)
|
|
94
|
-
- Level coloring (info/warn/error)
|
|
95
|
-
- Optional compact or JSON mode
|
|
96
|
-
|
|
97
|
-
Console formatting is controlled by `logging.consoleStyle`.
|
|
98
|
-
|
|
99
|
-
## Configuring logging
|
|
100
|
-
|
|
101
|
-
All logging configuration lives under `logging` in `~/.symi/symi.json`.
|
|
102
|
-
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"logging": {
|
|
106
|
-
"level": "info",
|
|
107
|
-
"file": "/tmp/symi/symi-YYYY-MM-DD.log",
|
|
108
|
-
"consoleLevel": "info",
|
|
109
|
-
"consoleStyle": "pretty",
|
|
110
|
-
"redactSensitive": "tools",
|
|
111
|
-
"redactPatterns": ["sk-.*"]
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Log levels
|
|
117
|
-
|
|
118
|
-
- `logging.level`: **file logs** (JSONL) level.
|
|
119
|
-
- `logging.consoleLevel`: **console** verbosity level.
|
|
120
|
-
|
|
121
|
-
`--verbose` only affects console output; it does not change file log levels.
|
|
122
|
-
|
|
123
|
-
### Console styles
|
|
124
|
-
|
|
125
|
-
`logging.consoleStyle`:
|
|
126
|
-
|
|
127
|
-
- `pretty`: human-friendly, colored, with timestamps.
|
|
128
|
-
- `compact`: tighter output (best for long sessions).
|
|
129
|
-
- `json`: JSON per line (for log processors).
|
|
130
|
-
|
|
131
|
-
### Redaction
|
|
132
|
-
|
|
133
|
-
Tool summaries can redact sensitive tokens before they hit the console:
|
|
134
|
-
|
|
135
|
-
- `logging.redactSensitive`: `off` | `tools` (default: `tools`)
|
|
136
|
-
- `logging.redactPatterns`: list of regex strings to override the default set
|
|
137
|
-
|
|
138
|
-
Redaction affects **console output only** and does not alter file logs.
|
|
139
|
-
|
|
140
|
-
## Diagnostics + OpenTelemetry
|
|
141
|
-
|
|
142
|
-
Diagnostics are structured, machine-readable events for model runs **and**
|
|
143
|
-
message-flow telemetry (webhooks, queueing, session state). They do **not**
|
|
144
|
-
replace logs; they exist to feed metrics, traces, and other exporters.
|
|
145
|
-
|
|
146
|
-
Diagnostics events are emitted in-process, but exporters only attach when
|
|
147
|
-
diagnostics + the exporter plugin are enabled.
|
|
148
|
-
|
|
149
|
-
### OpenTelemetry vs OTLP
|
|
150
|
-
|
|
151
|
-
- **OpenTelemetry (OTel)**: the data model + SDKs for traces, metrics, and logs.
|
|
152
|
-
- **OTLP**: the wire protocol used to export OTel data to a collector/backend.
|
|
153
|
-
- Symi exports via **OTLP/HTTP (protobuf)** today.
|
|
154
|
-
|
|
155
|
-
### Signals exported
|
|
156
|
-
|
|
157
|
-
- **Metrics**: counters + histograms (token usage, message flow, queueing).
|
|
158
|
-
- **Traces**: spans for model usage + webhook/message processing.
|
|
159
|
-
- **Logs**: exported over OTLP when `diagnostics.otel.logs` is enabled. Log
|
|
160
|
-
volume can be high; keep `logging.level` and exporter filters in mind.
|
|
161
|
-
|
|
162
|
-
### Diagnostic event catalog
|
|
163
|
-
|
|
164
|
-
Model usage:
|
|
165
|
-
|
|
166
|
-
- `model.usage`: tokens, cost, duration, context, provider/model/channel, session ids.
|
|
167
|
-
|
|
168
|
-
Message flow:
|
|
169
|
-
|
|
170
|
-
- `webhook.received`: webhook ingress per channel.
|
|
171
|
-
- `webhook.processed`: webhook handled + duration.
|
|
172
|
-
- `webhook.error`: webhook handler errors.
|
|
173
|
-
- `message.queued`: message enqueued for processing.
|
|
174
|
-
- `message.processed`: outcome + duration + optional error.
|
|
175
|
-
|
|
176
|
-
Queue + session:
|
|
177
|
-
|
|
178
|
-
- `queue.lane.enqueue`: command queue lane enqueue + depth.
|
|
179
|
-
- `queue.lane.dequeue`: command queue lane dequeue + wait time.
|
|
180
|
-
- `session.state`: session state transition + reason.
|
|
181
|
-
- `session.stuck`: session stuck warning + age.
|
|
182
|
-
- `run.attempt`: run retry/attempt metadata.
|
|
183
|
-
- `diagnostic.heartbeat`: aggregate counters (webhooks/queue/session).
|
|
184
|
-
|
|
185
|
-
### Enable diagnostics (no exporter)
|
|
186
|
-
|
|
187
|
-
Use this if you want diagnostics events available to plugins or custom sinks:
|
|
188
|
-
|
|
189
|
-
```json
|
|
190
|
-
{
|
|
191
|
-
"diagnostics": {
|
|
192
|
-
"enabled": true
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### Diagnostics flags (targeted logs)
|
|
198
|
-
|
|
199
|
-
Use flags to turn on extra, targeted debug logs without raising `logging.level`.
|
|
200
|
-
Flags are case-insensitive and support wildcards (e.g. `telegram.*` or `*`).
|
|
201
|
-
|
|
202
|
-
```json
|
|
203
|
-
{
|
|
204
|
-
"diagnostics": {
|
|
205
|
-
"flags": ["telegram.http"]
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Env override (one-off):
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
SYMI_DIAGNOSTICS=telegram.http,telegram.payload
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
Notes:
|
|
217
|
-
|
|
218
|
-
- Flag logs go to the standard log file (same as `logging.file`).
|
|
219
|
-
- Output is still redacted according to `logging.redactSensitive`.
|
|
220
|
-
- Full guide: [/diagnostics/flags](/diagnostics/flags).
|
|
221
|
-
|
|
222
|
-
### Export to OpenTelemetry
|
|
223
|
-
|
|
224
|
-
Diagnostics can be exported via the `diagnostics-otel` plugin (OTLP/HTTP). This
|
|
225
|
-
works with any OpenTelemetry collector/backend that accepts OTLP/HTTP.
|
|
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
|
-
Notes:
|
|
255
|
-
|
|
256
|
-
- You can also enable the plugin with `symi plugins enable diagnostics-otel`.
|
|
257
|
-
- `protocol` currently supports `http/protobuf` only. `grpc` is ignored.
|
|
258
|
-
- Metrics include token usage, cost, context size, run duration, and message-flow
|
|
259
|
-
counters/histograms (webhooks, queueing, session state, queue depth/wait).
|
|
260
|
-
- Traces/metrics can be toggled with `traces` / `metrics` (default: on). Traces
|
|
261
|
-
include model usage spans plus webhook/message processing spans when enabled.
|
|
262
|
-
- Set `headers` when your collector requires auth.
|
|
263
|
-
- Environment variables supported: `OTEL_EXPORTER_OTLP_ENDPOINT`,
|
|
264
|
-
`OTEL_SERVICE_NAME`, `OTEL_EXPORTER_OTLP_PROTOCOL`.
|
|
265
|
-
|
|
266
|
-
### Exported metrics (names + types)
|
|
267
|
-
|
|
268
|
-
Model usage:
|
|
269
|
-
|
|
270
|
-
- `symi.tokens` (counter, attrs: `symi.token`, `symi.channel`,
|
|
271
|
-
`symi.provider`, `symi.model`)
|
|
272
|
-
- `symi.cost.usd` (counter, attrs: `symi.channel`, `symi.provider`,
|
|
273
|
-
`symi.model`)
|
|
274
|
-
- `symi.run.duration_ms` (histogram, attrs: `symi.channel`,
|
|
275
|
-
`symi.provider`, `symi.model`)
|
|
276
|
-
- `symi.context.tokens` (histogram, attrs: `symi.context`,
|
|
277
|
-
`symi.channel`, `symi.provider`, `symi.model`)
|
|
278
|
-
|
|
279
|
-
Message flow:
|
|
280
|
-
|
|
281
|
-
- `symi.webhook.received` (counter, attrs: `symi.channel`,
|
|
282
|
-
`symi.webhook`)
|
|
283
|
-
- `symi.webhook.error` (counter, attrs: `symi.channel`,
|
|
284
|
-
`symi.webhook`)
|
|
285
|
-
- `symi.webhook.duration_ms` (histogram, attrs: `symi.channel`,
|
|
286
|
-
`symi.webhook`)
|
|
287
|
-
- `symi.message.queued` (counter, attrs: `symi.channel`,
|
|
288
|
-
`symi.source`)
|
|
289
|
-
- `symi.message.processed` (counter, attrs: `symi.channel`,
|
|
290
|
-
`symi.outcome`)
|
|
291
|
-
- `symi.message.duration_ms` (histogram, attrs: `symi.channel`,
|
|
292
|
-
`symi.outcome`)
|
|
293
|
-
|
|
294
|
-
Queues + sessions:
|
|
295
|
-
|
|
296
|
-
- `symi.queue.lane.enqueue` (counter, attrs: `symi.lane`)
|
|
297
|
-
- `symi.queue.lane.dequeue` (counter, attrs: `symi.lane`)
|
|
298
|
-
- `symi.queue.depth` (histogram, attrs: `symi.lane` or
|
|
299
|
-
`symi.channel=heartbeat`)
|
|
300
|
-
- `symi.queue.wait_ms` (histogram, attrs: `symi.lane`)
|
|
301
|
-
- `symi.session.state` (counter, attrs: `symi.state`, `symi.reason`)
|
|
302
|
-
- `symi.session.stuck` (counter, attrs: `symi.state`)
|
|
303
|
-
- `symi.session.stuck_age_ms` (histogram, attrs: `symi.state`)
|
|
304
|
-
- `symi.run.attempt` (counter, attrs: `symi.attempt`)
|
|
305
|
-
|
|
306
|
-
### Exported spans (names + key attributes)
|
|
307
|
-
|
|
308
|
-
- `symi.model.usage`
|
|
309
|
-
- `symi.channel`, `symi.provider`, `symi.model`
|
|
310
|
-
- `symi.sessionKey`, `symi.sessionId`
|
|
311
|
-
- `symi.tokens.*` (input/output/cache_read/cache_write/total)
|
|
312
|
-
- `symi.webhook.processed`
|
|
313
|
-
- `symi.channel`, `symi.webhook`, `symi.chatId`
|
|
314
|
-
- `symi.webhook.error`
|
|
315
|
-
- `symi.channel`, `symi.webhook`, `symi.chatId`,
|
|
316
|
-
`symi.error`
|
|
317
|
-
- `symi.message.processed`
|
|
318
|
-
- `symi.channel`, `symi.outcome`, `symi.chatId`,
|
|
319
|
-
`symi.messageId`, `symi.sessionKey`, `symi.sessionId`,
|
|
320
|
-
`symi.reason`
|
|
321
|
-
- `symi.session.stuck`
|
|
322
|
-
- `symi.state`, `symi.ageMs`, `symi.queueDepth`,
|
|
323
|
-
`symi.sessionKey`, `symi.sessionId`
|
|
324
|
-
|
|
325
|
-
### Sampling + flushing
|
|
326
|
-
|
|
327
|
-
- Trace sampling: `diagnostics.otel.sampleRate` (0.0–1.0, root spans only).
|
|
328
|
-
- Metric export interval: `diagnostics.otel.flushIntervalMs` (min 1000ms).
|
|
329
|
-
|
|
330
|
-
### Protocol notes
|
|
331
|
-
|
|
332
|
-
- OTLP/HTTP endpoints can be set via `diagnostics.otel.endpoint` or
|
|
333
|
-
`OTEL_EXPORTER_OTLP_ENDPOINT`.
|
|
334
|
-
- If the endpoint already contains `/v1/traces` or `/v1/metrics`, it is used as-is.
|
|
335
|
-
- If the endpoint already contains `/v1/logs`, it is used as-is for logs.
|
|
336
|
-
- `diagnostics.otel.logs` enables OTLP log export for the main logger output.
|
|
337
|
-
|
|
338
|
-
### Log export behavior
|
|
339
|
-
|
|
340
|
-
- OTLP logs use the same structured records written to `logging.file`.
|
|
341
|
-
- Respect `logging.level` (file log level). Console redaction does **not** apply
|
|
342
|
-
to OTLP logs.
|
|
343
|
-
- High-volume installs should prefer OTLP collector sampling/filtering.
|
|
344
|
-
|
|
345
|
-
## Troubleshooting tips
|
|
346
|
-
|
|
347
|
-
- **Gateway not reachable?** Run `symi doctor` first.
|
|
348
|
-
- **Logs empty?** Check that the Gateway is running and writing to the file path
|
|
349
|
-
in `logging.file`.
|
|
350
|
-
- **Need more detail?** Set `logging.level` to `debug` or `trace` and retry.
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
(() => {
|
|
2
|
-
const NAV_TABS_SELECTOR = ".nav-tabs";
|
|
3
|
-
const ACTIVE_UNDERLINE_SELECTOR = ".nav-tabs-item > div.bg-primary";
|
|
4
|
-
const UNDERLINE_CLASS = "nav-tabs-underline";
|
|
5
|
-
const READY_CLASS = "nav-tabs-underline-ready";
|
|
6
|
-
|
|
7
|
-
let navTabs = null;
|
|
8
|
-
let navTabsObserver = null;
|
|
9
|
-
let lastX = null;
|
|
10
|
-
let lastWidth = null;
|
|
11
|
-
|
|
12
|
-
const ensureUnderline = (tabs) => {
|
|
13
|
-
let underline = tabs.querySelector(`.${UNDERLINE_CLASS}`);
|
|
14
|
-
if (!underline) {
|
|
15
|
-
underline = document.createElement("div");
|
|
16
|
-
underline.className = UNDERLINE_CLASS;
|
|
17
|
-
tabs.appendChild(underline);
|
|
18
|
-
}
|
|
19
|
-
return underline;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const getActiveTab = (tabs) => {
|
|
23
|
-
const activeUnderline = tabs.querySelector(ACTIVE_UNDERLINE_SELECTOR);
|
|
24
|
-
return activeUnderline?.closest(".nav-tabs-item") ?? null;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const updateUnderline = () => {
|
|
28
|
-
if (!navTabs) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
ensureUnderline(navTabs);
|
|
33
|
-
|
|
34
|
-
const activeTab = getActiveTab(navTabs);
|
|
35
|
-
if (!activeTab) {
|
|
36
|
-
navTabs.classList.remove(READY_CLASS);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const navRect = navTabs.getBoundingClientRect();
|
|
41
|
-
const tabRect = activeTab.getBoundingClientRect();
|
|
42
|
-
const left = tabRect.left - navRect.left;
|
|
43
|
-
|
|
44
|
-
navTabs.style.setProperty("--nav-tab-underline-x", `${left}px`);
|
|
45
|
-
navTabs.style.setProperty("--nav-tab-underline-width", `${tabRect.width}px`);
|
|
46
|
-
navTabs.classList.add(READY_CLASS);
|
|
47
|
-
|
|
48
|
-
lastX = left;
|
|
49
|
-
lastWidth = tabRect.width;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const scheduleUpdate = () => {
|
|
53
|
-
requestAnimationFrame(updateUnderline);
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
const setupNavTabsObserver = (tabs) => {
|
|
57
|
-
if (!tabs || tabs === navTabs) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
navTabs = tabs;
|
|
62
|
-
ensureUnderline(navTabs);
|
|
63
|
-
if (lastX !== null && lastWidth !== null) {
|
|
64
|
-
navTabs.style.setProperty("--nav-tab-underline-x", `${lastX}px`);
|
|
65
|
-
navTabs.style.setProperty("--nav-tab-underline-width", `${lastWidth}px`);
|
|
66
|
-
navTabs.classList.add(READY_CLASS);
|
|
67
|
-
}
|
|
68
|
-
navTabsObserver?.disconnect();
|
|
69
|
-
navTabsObserver = new MutationObserver(scheduleUpdate);
|
|
70
|
-
navTabsObserver.observe(navTabs, {
|
|
71
|
-
subtree: true,
|
|
72
|
-
attributes: true,
|
|
73
|
-
attributeFilter: ["class"],
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
scheduleUpdate();
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const setupObservers = () => {
|
|
80
|
-
const tabs = document.querySelector(NAV_TABS_SELECTOR);
|
|
81
|
-
if (tabs) {
|
|
82
|
-
setupNavTabsObserver(tabs);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
const rootObserver = new MutationObserver(setupObservers);
|
|
87
|
-
|
|
88
|
-
if (document.readyState === "loading") {
|
|
89
|
-
document.addEventListener("DOMContentLoaded", () => {
|
|
90
|
-
setupObservers();
|
|
91
|
-
rootObserver.observe(document.body, { childList: true, subtree: true });
|
|
92
|
-
});
|
|
93
|
-
} else {
|
|
94
|
-
setupObservers();
|
|
95
|
-
rootObserver.observe(document.body, { childList: true, subtree: true });
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
window.addEventListener("resize", scheduleUpdate);
|
|
99
|
-
void document.fonts?.ready?.then(scheduleUpdate, () => {});
|
|
100
|
-
})();
|
package/docs/network.md
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Network hub: gateway surfaces, pairing, discovery, and security"
|
|
3
|
-
read_when:
|
|
4
|
-
- You need the network architecture + security overview
|
|
5
|
-
- You are debugging local vs tailnet access or pairing
|
|
6
|
-
- You want the canonical list of networking docs
|
|
7
|
-
title: "Network"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Network hub
|
|
11
|
-
|
|
12
|
-
This hub links the core docs for how Symi connects, pairs, and secures
|
|
13
|
-
devices across localhost, LAN, and tailnet.
|
|
14
|
-
|
|
15
|
-
## Core model
|
|
16
|
-
|
|
17
|
-
- [Gateway architecture](/concepts/architecture)
|
|
18
|
-
- [Gateway protocol](/gateway/protocol)
|
|
19
|
-
- [Gateway runbook](/gateway)
|
|
20
|
-
- [Web surfaces + bind modes](/web)
|
|
21
|
-
|
|
22
|
-
## Pairing + identity
|
|
23
|
-
|
|
24
|
-
- [Pairing overview (DM + nodes)](/channels/pairing)
|
|
25
|
-
- [Gateway-owned node pairing](/gateway/pairing)
|
|
26
|
-
- [Devices CLI (pairing + token rotation)](/cli/devices)
|
|
27
|
-
- [Pairing CLI (DM approvals)](/cli/pairing)
|
|
28
|
-
|
|
29
|
-
Local trust:
|
|
30
|
-
|
|
31
|
-
- Local connections (loopback or the gateway host’s own tailnet address) can be
|
|
32
|
-
auto‑approved for pairing to keep same‑host UX smooth.
|
|
33
|
-
- Non‑local tailnet/LAN clients still require explicit pairing approval.
|
|
34
|
-
|
|
35
|
-
## Discovery + transports
|
|
36
|
-
|
|
37
|
-
- [Discovery & transports](/gateway/discovery)
|
|
38
|
-
- [Bonjour / mDNS](/gateway/bonjour)
|
|
39
|
-
- [Remote access (SSH)](/gateway/remote)
|
|
40
|
-
- [Tailscale](/gateway/tailscale)
|
|
41
|
-
|
|
42
|
-
## Nodes + transports
|
|
43
|
-
|
|
44
|
-
- [Nodes overview](/nodes)
|
|
45
|
-
- [Bridge protocol (legacy nodes)](/gateway/bridge-protocol)
|
|
46
|
-
- [Node runbook: iOS](/platforms/ios)
|
|
47
|
-
- [Node runbook: Android](/platforms/android)
|
|
48
|
-
|
|
49
|
-
## Security
|
|
50
|
-
|
|
51
|
-
- [Security overview](/gateway/security)
|
|
52
|
-
- [Gateway config reference](/gateway/configuration)
|
|
53
|
-
- [Troubleshooting](/gateway/troubleshooting)
|
|
54
|
-
- [Doctor](/gateway/doctor)
|
package/docs/nodes/audio.md
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "How inbound audio/voice notes are downloaded, transcribed, and injected into replies"
|
|
3
|
-
read_when:
|
|
4
|
-
- Changing audio transcription or media handling
|
|
5
|
-
title: "Audio and Voice Notes"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Audio / Voice Notes — 2026-01-17
|
|
9
|
-
|
|
10
|
-
## What works
|
|
11
|
-
|
|
12
|
-
- **Media understanding (audio)**: If audio understanding is enabled (or auto‑detected), Symi:
|
|
13
|
-
1. Locates the first audio attachment (local path or URL) and downloads it if needed.
|
|
14
|
-
2. Enforces `maxBytes` before sending to each model entry.
|
|
15
|
-
3. Runs the first eligible model entry in order (provider or CLI).
|
|
16
|
-
4. If it fails or skips (size/timeout), it tries the next entry.
|
|
17
|
-
5. On success, it replaces `Body` with an `[Audio]` block and sets `{{Transcript}}`.
|
|
18
|
-
- **Command parsing**: When transcription succeeds, `CommandBody`/`RawBody` are set to the transcript so slash commands still work.
|
|
19
|
-
- **Verbose logging**: In `--verbose`, we log when transcription runs and when it replaces the body.
|
|
20
|
-
|
|
21
|
-
## Auto-detection (default)
|
|
22
|
-
|
|
23
|
-
If you **don’t configure models** and `tools.media.audio.enabled` is **not** set to `false`,
|
|
24
|
-
Symi auto-detects in this order and stops at the first working option:
|
|
25
|
-
|
|
26
|
-
1. **Local CLIs** (if installed)
|
|
27
|
-
- `sherpa-onnx-offline` (requires `SHERPA_ONNX_MODEL_DIR` with encoder/decoder/joiner/tokens)
|
|
28
|
-
- `whisper-cli` (from `whisper-cpp`; uses `WHISPER_CPP_MODEL` or the bundled tiny model)
|
|
29
|
-
- `whisper` (Python CLI; downloads models automatically)
|
|
30
|
-
2. **Gemini CLI** (`gemini`) using `read_many_files`
|
|
31
|
-
3. **Provider keys** (OpenAI → Groq → Deepgram → Google)
|
|
32
|
-
|
|
33
|
-
To disable auto-detection, set `tools.media.audio.enabled: false`.
|
|
34
|
-
To customize, set `tools.media.audio.models`.
|
|
35
|
-
Note: Binary detection is best-effort across macOS/Linux/Windows; ensure the CLI is on `PATH` (we expand `~`), or set an explicit CLI model with a full command path.
|
|
36
|
-
|
|
37
|
-
## Config examples
|
|
38
|
-
|
|
39
|
-
### Provider + CLI fallback (OpenAI + Whisper CLI)
|
|
40
|
-
|
|
41
|
-
```json5
|
|
42
|
-
{
|
|
43
|
-
tools: {
|
|
44
|
-
media: {
|
|
45
|
-
audio: {
|
|
46
|
-
enabled: true,
|
|
47
|
-
maxBytes: 20971520,
|
|
48
|
-
models: [
|
|
49
|
-
{ provider: "openai", model: "gpt-4o-mini-transcribe" },
|
|
50
|
-
{
|
|
51
|
-
type: "cli",
|
|
52
|
-
command: "whisper",
|
|
53
|
-
args: ["--model", "base", "{{MediaPath}}"],
|
|
54
|
-
timeoutSeconds: 45,
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Provider-only with scope gating
|
|
64
|
-
|
|
65
|
-
```json5
|
|
66
|
-
{
|
|
67
|
-
tools: {
|
|
68
|
-
media: {
|
|
69
|
-
audio: {
|
|
70
|
-
enabled: true,
|
|
71
|
-
scope: {
|
|
72
|
-
default: "allow",
|
|
73
|
-
rules: [{ action: "deny", match: { chatType: "group" } }],
|
|
74
|
-
},
|
|
75
|
-
models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }],
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Provider-only (Deepgram)
|
|
83
|
-
|
|
84
|
-
```json5
|
|
85
|
-
{
|
|
86
|
-
tools: {
|
|
87
|
-
media: {
|
|
88
|
-
audio: {
|
|
89
|
-
enabled: true,
|
|
90
|
-
models: [{ provider: "deepgram", model: "nova-3" }],
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Notes & limits
|
|
98
|
-
|
|
99
|
-
- Provider auth follows the standard model auth order (auth profiles, env vars, `models.providers.*.apiKey`).
|
|
100
|
-
- Deepgram picks up `DEEPGRAM_API_KEY` when `provider: "deepgram"` is used.
|
|
101
|
-
- Deepgram setup details: [Deepgram (audio transcription)](/providers/deepgram).
|
|
102
|
-
- Audio providers can override `baseUrl`, `headers`, and `providerOptions` via `tools.media.audio`.
|
|
103
|
-
- Default size cap is 20MB (`tools.media.audio.maxBytes`). Oversize audio is skipped for that model and the next entry is tried.
|
|
104
|
-
- Default `maxChars` for audio is **unset** (full transcript). Set `tools.media.audio.maxChars` or per-entry `maxChars` to trim output.
|
|
105
|
-
- OpenAI auto default is `gpt-4o-mini-transcribe`; set `model: "gpt-4o-transcribe"` for higher accuracy.
|
|
106
|
-
- Use `tools.media.audio.attachments` to process multiple voice notes (`mode: "all"` + `maxAttachments`).
|
|
107
|
-
- Transcript is available to templates as `{{Transcript}}`.
|
|
108
|
-
- CLI stdout is capped (5MB); keep CLI output concise.
|
|
109
|
-
|
|
110
|
-
## Mention Detection in Groups
|
|
111
|
-
|
|
112
|
-
When `requireMention: true` is set for a group chat, Symi now transcribes audio **before** checking for mentions. This allows voice notes to be processed even when they contain mentions.
|
|
113
|
-
|
|
114
|
-
**How it works:**
|
|
115
|
-
|
|
116
|
-
1. If a voice message has no text body and the group requires mentions, Symi performs a "preflight" transcription.
|
|
117
|
-
2. The transcript is checked for mention patterns (e.g., `@BotName`, emoji triggers).
|
|
118
|
-
3. If a mention is found, the message proceeds through the full reply pipeline.
|
|
119
|
-
4. The transcript is used for mention detection so voice notes can pass the mention gate.
|
|
120
|
-
|
|
121
|
-
**Fallback behavior:**
|
|
122
|
-
|
|
123
|
-
- If transcription fails during preflight (timeout, API error, etc.), the message is processed based on text-only mention detection.
|
|
124
|
-
- This ensures that mixed messages (text + audio) are never incorrectly dropped.
|
|
125
|
-
|
|
126
|
-
**Example:** A user sends a voice note saying "Hey @Claude, what's the weather?" in a Telegram group with `requireMention: true`. The voice note is transcribed, the mention is detected, and the agent replies.
|
|
127
|
-
|
|
128
|
-
## Gotchas
|
|
129
|
-
|
|
130
|
-
- Scope rules use first-match wins. `chatType` is normalized to `direct`, `group`, or `room`.
|
|
131
|
-
- Ensure your CLI exits 0 and prints plain text; JSON needs to be massaged via `jq -r .text`.
|
|
132
|
-
- Keep timeouts reasonable (`timeoutSeconds`, default 60s) to avoid blocking the reply queue.
|
|
133
|
-
- Preflight transcription only processes the **first** audio attachment for mention detection. Additional audio is processed during the main media understanding phase.
|