@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.
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- 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/docs/tools/web.md
DELETED
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Web search + fetch tools (Brave Search API, Perplexity direct/OpenRouter)"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to enable web_search or web_fetch
|
|
5
|
-
- You need Brave Search API key setup
|
|
6
|
-
- You want to use Perplexity Sonar for web search
|
|
7
|
-
title: "Web Tools"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Web tools
|
|
11
|
-
|
|
12
|
-
Symi ships two lightweight web tools:
|
|
13
|
-
|
|
14
|
-
- `web_search` — Search the web via Brave Search API (default) or Perplexity Sonar (direct or via OpenRouter).
|
|
15
|
-
- `web_fetch` — HTTP fetch + readable extraction (HTML → markdown/text).
|
|
16
|
-
|
|
17
|
-
These are **not** browser automation. For JS-heavy sites or logins, use the
|
|
18
|
-
[Browser tool](/tools/browser).
|
|
19
|
-
|
|
20
|
-
## How it works
|
|
21
|
-
|
|
22
|
-
- `web_search` calls your configured provider and returns results.
|
|
23
|
-
- **Brave** (default): returns structured results (title, URL, snippet).
|
|
24
|
-
- **Perplexity**: returns AI-synthesized answers with citations from real-time web search.
|
|
25
|
-
- Results are cached by query for 15 minutes (configurable).
|
|
26
|
-
- `web_fetch` does a plain HTTP GET and extracts readable content
|
|
27
|
-
(HTML → markdown/text). It does **not** execute JavaScript.
|
|
28
|
-
- `web_fetch` is enabled by default (unless explicitly disabled).
|
|
29
|
-
|
|
30
|
-
## Choosing a search provider
|
|
31
|
-
|
|
32
|
-
| Provider | Pros | Cons | API Key |
|
|
33
|
-
| ------------------- | -------------------------------------------- | ---------------------------------------- | -------------------------------------------- |
|
|
34
|
-
| **Brave** (default) | Fast, structured results, free tier | Traditional search results | `BRAVE_API_KEY` |
|
|
35
|
-
| **Perplexity** | AI-synthesized answers, citations, real-time | Requires Perplexity or OpenRouter access | `OPENROUTER_API_KEY` or `PERPLEXITY_API_KEY` |
|
|
36
|
-
|
|
37
|
-
See [Brave Search setup](/brave-search) and [Perplexity Sonar](/perplexity) for provider-specific details.
|
|
38
|
-
|
|
39
|
-
Set the provider in config:
|
|
40
|
-
|
|
41
|
-
```json5
|
|
42
|
-
{
|
|
43
|
-
tools: {
|
|
44
|
-
web: {
|
|
45
|
-
search: {
|
|
46
|
-
provider: "brave", // or "perplexity"
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Example: switch to Perplexity Sonar (direct API):
|
|
54
|
-
|
|
55
|
-
```json5
|
|
56
|
-
{
|
|
57
|
-
tools: {
|
|
58
|
-
web: {
|
|
59
|
-
search: {
|
|
60
|
-
provider: "perplexity",
|
|
61
|
-
perplexity: {
|
|
62
|
-
apiKey: "pplx-...",
|
|
63
|
-
baseUrl: "https://api.perplexity.ai",
|
|
64
|
-
model: "perplexity/sonar-pro",
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Getting a Brave API key
|
|
73
|
-
|
|
74
|
-
1. Create a Brave Search API account at [https://brave.com/search/api/](https://brave.com/search/api/)
|
|
75
|
-
2. In the dashboard, choose the **Data for Search** plan (not “Data for AI”) and generate an API key.
|
|
76
|
-
3. Run `symi configure --section web` to store the key in config (recommended), or set `BRAVE_API_KEY` in your environment.
|
|
77
|
-
|
|
78
|
-
Brave provides a free tier plus paid plans; check the Brave API portal for the
|
|
79
|
-
current limits and pricing.
|
|
80
|
-
|
|
81
|
-
### Where to set the key (recommended)
|
|
82
|
-
|
|
83
|
-
**Recommended:** run `symi configure --section web`. It stores the key in
|
|
84
|
-
`~/.symi/symi.json` under `tools.web.search.apiKey`.
|
|
85
|
-
|
|
86
|
-
**Environment alternative:** set `BRAVE_API_KEY` in the Gateway process
|
|
87
|
-
environment. For a gateway install, put it in `~/.symi/.env` (or your
|
|
88
|
-
service environment). See [Env vars](/help/faq#how-does-symi-load-environment-variables).
|
|
89
|
-
|
|
90
|
-
## Using Perplexity (direct or via OpenRouter)
|
|
91
|
-
|
|
92
|
-
Perplexity Sonar models have built-in web search capabilities and return AI-synthesized
|
|
93
|
-
answers with citations. You can use them via OpenRouter (no credit card required - supports
|
|
94
|
-
crypto/prepaid).
|
|
95
|
-
|
|
96
|
-
### Getting an OpenRouter API key
|
|
97
|
-
|
|
98
|
-
1. Create an account at [https://openrouter.ai/](https://openrouter.ai/)
|
|
99
|
-
2. Add credits (supports crypto, prepaid, or credit card)
|
|
100
|
-
3. Generate an API key in your account settings
|
|
101
|
-
|
|
102
|
-
### Setting up Perplexity search
|
|
103
|
-
|
|
104
|
-
```json5
|
|
105
|
-
{
|
|
106
|
-
tools: {
|
|
107
|
-
web: {
|
|
108
|
-
search: {
|
|
109
|
-
enabled: true,
|
|
110
|
-
provider: "perplexity",
|
|
111
|
-
perplexity: {
|
|
112
|
-
// API key (optional if OPENROUTER_API_KEY or PERPLEXITY_API_KEY is set)
|
|
113
|
-
apiKey: "sk-or-v1-...",
|
|
114
|
-
// Base URL (key-aware default if omitted)
|
|
115
|
-
baseUrl: "https://openrouter.ai/api/v1",
|
|
116
|
-
// Model (defaults to perplexity/sonar-pro)
|
|
117
|
-
model: "perplexity/sonar-pro",
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Environment alternative:** set `OPENROUTER_API_KEY` or `PERPLEXITY_API_KEY` in the Gateway
|
|
126
|
-
environment. For a gateway install, put it in `~/.symi/.env`.
|
|
127
|
-
|
|
128
|
-
If no base URL is set, Symi chooses a default based on the API key source:
|
|
129
|
-
|
|
130
|
-
- `PERPLEXITY_API_KEY` or `pplx-...` → `https://api.perplexity.ai`
|
|
131
|
-
- `OPENROUTER_API_KEY` or `sk-or-...` → `https://openrouter.ai/api/v1`
|
|
132
|
-
- Unknown key formats → OpenRouter (safe fallback)
|
|
133
|
-
|
|
134
|
-
### Available Perplexity models
|
|
135
|
-
|
|
136
|
-
| Model | Description | Best for |
|
|
137
|
-
| -------------------------------- | ------------------------------------ | ----------------- |
|
|
138
|
-
| `perplexity/sonar` | Fast Q&A with web search | Quick lookups |
|
|
139
|
-
| `perplexity/sonar-pro` (default) | Multi-step reasoning with web search | Complex questions |
|
|
140
|
-
| `perplexity/sonar-reasoning-pro` | Chain-of-thought analysis | Deep research |
|
|
141
|
-
|
|
142
|
-
## web_search
|
|
143
|
-
|
|
144
|
-
Search the web using your configured provider.
|
|
145
|
-
|
|
146
|
-
### Requirements
|
|
147
|
-
|
|
148
|
-
- `tools.web.search.enabled` must not be `false` (default: enabled)
|
|
149
|
-
- API key for your chosen provider:
|
|
150
|
-
- **Brave**: `BRAVE_API_KEY` or `tools.web.search.apiKey`
|
|
151
|
-
- **Perplexity**: `OPENROUTER_API_KEY`, `PERPLEXITY_API_KEY`, or `tools.web.search.perplexity.apiKey`
|
|
152
|
-
|
|
153
|
-
### Config
|
|
154
|
-
|
|
155
|
-
```json5
|
|
156
|
-
{
|
|
157
|
-
tools: {
|
|
158
|
-
web: {
|
|
159
|
-
search: {
|
|
160
|
-
enabled: true,
|
|
161
|
-
apiKey: "BRAVE_API_KEY_HERE", // optional if BRAVE_API_KEY is set
|
|
162
|
-
maxResults: 5,
|
|
163
|
-
timeoutSeconds: 30,
|
|
164
|
-
cacheTtlMinutes: 15,
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Tool parameters
|
|
172
|
-
|
|
173
|
-
- `query` (required)
|
|
174
|
-
- `count` (1–10; default from config)
|
|
175
|
-
- `country` (optional): 2-letter country code for region-specific results (e.g., "DE", "US", "ALL"). If omitted, Brave chooses its default region.
|
|
176
|
-
- `search_lang` (optional): ISO language code for search results (e.g., "de", "en", "fr")
|
|
177
|
-
- `ui_lang` (optional): ISO language code for UI elements
|
|
178
|
-
- `freshness` (optional): filter by discovery time
|
|
179
|
-
- Brave: `pd`, `pw`, `pm`, `py`, or `YYYY-MM-DDtoYYYY-MM-DD`
|
|
180
|
-
- Perplexity: `pd`, `pw`, `pm`, `py`
|
|
181
|
-
|
|
182
|
-
**Examples:**
|
|
183
|
-
|
|
184
|
-
```javascript
|
|
185
|
-
// German-specific search
|
|
186
|
-
await web_search({
|
|
187
|
-
query: "TV online schauen",
|
|
188
|
-
count: 10,
|
|
189
|
-
country: "DE",
|
|
190
|
-
search_lang: "de",
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
// French search with French UI
|
|
194
|
-
await web_search({
|
|
195
|
-
query: "actualités",
|
|
196
|
-
country: "FR",
|
|
197
|
-
search_lang: "fr",
|
|
198
|
-
ui_lang: "fr",
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
// Recent results (past week)
|
|
202
|
-
await web_search({
|
|
203
|
-
query: "TMBG interview",
|
|
204
|
-
freshness: "pw",
|
|
205
|
-
});
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
## web_fetch
|
|
209
|
-
|
|
210
|
-
Fetch a URL and extract readable content.
|
|
211
|
-
|
|
212
|
-
### web_fetch requirements
|
|
213
|
-
|
|
214
|
-
- `tools.web.fetch.enabled` must not be `false` (default: enabled)
|
|
215
|
-
- Optional Firecrawl fallback: set `tools.web.fetch.firecrawl.apiKey` or `FIRECRAWL_API_KEY`.
|
|
216
|
-
|
|
217
|
-
### web_fetch config
|
|
218
|
-
|
|
219
|
-
```json5
|
|
220
|
-
{
|
|
221
|
-
tools: {
|
|
222
|
-
web: {
|
|
223
|
-
fetch: {
|
|
224
|
-
enabled: true,
|
|
225
|
-
maxChars: 50000,
|
|
226
|
-
maxCharsCap: 50000,
|
|
227
|
-
maxResponseBytes: 2000000,
|
|
228
|
-
timeoutSeconds: 30,
|
|
229
|
-
cacheTtlMinutes: 15,
|
|
230
|
-
maxRedirects: 3,
|
|
231
|
-
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
|
|
232
|
-
readability: true,
|
|
233
|
-
firecrawl: {
|
|
234
|
-
enabled: true,
|
|
235
|
-
apiKey: "FIRECRAWL_API_KEY_HERE", // optional if FIRECRAWL_API_KEY is set
|
|
236
|
-
baseUrl: "https://api.firecrawl.dev",
|
|
237
|
-
onlyMainContent: true,
|
|
238
|
-
maxAgeMs: 86400000, // ms (1 day)
|
|
239
|
-
timeoutSeconds: 60,
|
|
240
|
-
},
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
},
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### web_fetch tool parameters
|
|
248
|
-
|
|
249
|
-
- `url` (required, http/https only)
|
|
250
|
-
- `extractMode` (`markdown` | `text`)
|
|
251
|
-
- `maxChars` (truncate long pages)
|
|
252
|
-
|
|
253
|
-
Notes:
|
|
254
|
-
|
|
255
|
-
- `web_fetch` uses Readability (main-content extraction) first, then Firecrawl (if configured). If both fail, the tool returns an error.
|
|
256
|
-
- Firecrawl requests use bot-circumvention mode and cache results by default.
|
|
257
|
-
- `web_fetch` sends a Chrome-like User-Agent and `Accept-Language` by default; override `userAgent` if needed.
|
|
258
|
-
- `web_fetch` blocks private/internal hostnames and re-checks redirects (limit with `maxRedirects`).
|
|
259
|
-
- `maxChars` is clamped to `tools.web.fetch.maxCharsCap`.
|
|
260
|
-
- `web_fetch` caps the downloaded response body size to `tools.web.fetch.maxResponseBytes` before parsing; oversized responses are truncated and include a warning.
|
|
261
|
-
- `web_fetch` is best-effort extraction; some sites will need the browser tool.
|
|
262
|
-
- See [Firecrawl](/tools/firecrawl) for key setup and service details.
|
|
263
|
-
- Responses are cached (default 15 minutes) to reduce repeated fetches.
|
|
264
|
-
- If you use tool profiles/allowlists, add `web_search`/`web_fetch` or `group:web`.
|
|
265
|
-
- If the Brave key is missing, `web_search` returns a short setup hint with a docs link.
|
package/docs/tts.md
DELETED
|
@@ -1,398 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Text-to-speech (TTS) for outbound replies"
|
|
3
|
-
read_when:
|
|
4
|
-
- Enabling text-to-speech for replies
|
|
5
|
-
- Configuring TTS providers or limits
|
|
6
|
-
- Using /tts commands
|
|
7
|
-
title: "Text-to-Speech"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Text-to-speech (TTS)
|
|
11
|
-
|
|
12
|
-
Symi can convert outbound replies into audio using ElevenLabs, OpenAI, or Edge TTS.
|
|
13
|
-
It works anywhere Symi can send audio; Telegram gets a round voice-note bubble.
|
|
14
|
-
|
|
15
|
-
## Supported services
|
|
16
|
-
|
|
17
|
-
- **ElevenLabs** (primary or fallback provider)
|
|
18
|
-
- **OpenAI** (primary or fallback provider; also used for summaries)
|
|
19
|
-
- **Edge TTS** (primary or fallback provider; uses `node-edge-tts`, default when no API keys)
|
|
20
|
-
|
|
21
|
-
### Edge TTS notes
|
|
22
|
-
|
|
23
|
-
Edge TTS uses Microsoft Edge's online neural TTS service via the `node-edge-tts`
|
|
24
|
-
library. It's a hosted service (not local), uses Microsoft’s endpoints, and does
|
|
25
|
-
not require an API key. `node-edge-tts` exposes speech configuration options and
|
|
26
|
-
output formats, but not all options are supported by the Edge service. citeturn2search0
|
|
27
|
-
|
|
28
|
-
Because Edge TTS is a public web service without a published SLA or quota, treat it
|
|
29
|
-
as best-effort. If you need guaranteed limits and support, use OpenAI or ElevenLabs.
|
|
30
|
-
Microsoft's Speech REST API documents a 10‑minute audio limit per request; Edge TTS
|
|
31
|
-
does not publish limits, so assume similar or lower limits. citeturn0search3
|
|
32
|
-
|
|
33
|
-
## Optional keys
|
|
34
|
-
|
|
35
|
-
If you want OpenAI or ElevenLabs:
|
|
36
|
-
|
|
37
|
-
- `ELEVENLABS_API_KEY` (or `XI_API_KEY`)
|
|
38
|
-
- `OPENAI_API_KEY`
|
|
39
|
-
|
|
40
|
-
Edge TTS does **not** require an API key. If no API keys are found, Symi defaults
|
|
41
|
-
to Edge TTS (unless disabled via `messages.tts.edge.enabled=false`).
|
|
42
|
-
|
|
43
|
-
If multiple providers are configured, the selected provider is used first and the others are fallback options.
|
|
44
|
-
Auto-summary uses the configured `summaryModel` (or `agents.defaults.model.primary`),
|
|
45
|
-
so that provider must also be authenticated if you enable summaries.
|
|
46
|
-
|
|
47
|
-
## Service links
|
|
48
|
-
|
|
49
|
-
- [OpenAI Text-to-Speech guide](https://platform.openai.com/docs/guides/text-to-speech)
|
|
50
|
-
- [OpenAI Audio API reference](https://platform.openai.com/docs/api-reference/audio)
|
|
51
|
-
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
|
|
52
|
-
- [ElevenLabs Authentication](https://elevenlabs.io/docs/api-reference/authentication)
|
|
53
|
-
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
|
|
54
|
-
- [Microsoft Speech output formats](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
|
|
55
|
-
|
|
56
|
-
## Is it enabled by default?
|
|
57
|
-
|
|
58
|
-
No. Auto‑TTS is **off** by default. Enable it in config with
|
|
59
|
-
`messages.tts.auto` or per session with `/tts always` (alias: `/tts on`).
|
|
60
|
-
|
|
61
|
-
Edge TTS **is** enabled by default once TTS is on, and is used automatically
|
|
62
|
-
when no OpenAI or ElevenLabs API keys are available.
|
|
63
|
-
|
|
64
|
-
## Config
|
|
65
|
-
|
|
66
|
-
TTS config lives under `messages.tts` in `symi.json`.
|
|
67
|
-
Full schema is in [Gateway configuration](/gateway/configuration).
|
|
68
|
-
|
|
69
|
-
### Minimal config (enable + provider)
|
|
70
|
-
|
|
71
|
-
```json5
|
|
72
|
-
{
|
|
73
|
-
messages: {
|
|
74
|
-
tts: {
|
|
75
|
-
auto: "always",
|
|
76
|
-
provider: "elevenlabs",
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### OpenAI primary with ElevenLabs fallback
|
|
83
|
-
|
|
84
|
-
```json5
|
|
85
|
-
{
|
|
86
|
-
messages: {
|
|
87
|
-
tts: {
|
|
88
|
-
auto: "always",
|
|
89
|
-
provider: "openai",
|
|
90
|
-
summaryModel: "openai/gpt-4.1-mini",
|
|
91
|
-
modelOverrides: {
|
|
92
|
-
enabled: true,
|
|
93
|
-
},
|
|
94
|
-
openai: {
|
|
95
|
-
apiKey: "openai_api_key",
|
|
96
|
-
model: "gpt-4o-mini-tts",
|
|
97
|
-
voice: "alloy",
|
|
98
|
-
},
|
|
99
|
-
elevenlabs: {
|
|
100
|
-
apiKey: "elevenlabs_api_key",
|
|
101
|
-
baseUrl: "https://api.elevenlabs.io",
|
|
102
|
-
voiceId: "voice_id",
|
|
103
|
-
modelId: "eleven_multilingual_v2",
|
|
104
|
-
seed: 42,
|
|
105
|
-
applyTextNormalization: "auto",
|
|
106
|
-
languageCode: "en",
|
|
107
|
-
voiceSettings: {
|
|
108
|
-
stability: 0.5,
|
|
109
|
-
similarityBoost: 0.75,
|
|
110
|
-
style: 0.0,
|
|
111
|
-
useSpeakerBoost: true,
|
|
112
|
-
speed: 1.0,
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Edge TTS primary (no API key)
|
|
121
|
-
|
|
122
|
-
```json5
|
|
123
|
-
{
|
|
124
|
-
messages: {
|
|
125
|
-
tts: {
|
|
126
|
-
auto: "always",
|
|
127
|
-
provider: "edge",
|
|
128
|
-
edge: {
|
|
129
|
-
enabled: true,
|
|
130
|
-
voice: "en-US-MichelleNeural",
|
|
131
|
-
lang: "en-US",
|
|
132
|
-
outputFormat: "audio-24khz-48kbitrate-mono-mp3",
|
|
133
|
-
rate: "+10%",
|
|
134
|
-
pitch: "-5%",
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Disable Edge TTS
|
|
142
|
-
|
|
143
|
-
```json5
|
|
144
|
-
{
|
|
145
|
-
messages: {
|
|
146
|
-
tts: {
|
|
147
|
-
edge: {
|
|
148
|
-
enabled: false,
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Custom limits + prefs path
|
|
156
|
-
|
|
157
|
-
```json5
|
|
158
|
-
{
|
|
159
|
-
messages: {
|
|
160
|
-
tts: {
|
|
161
|
-
auto: "always",
|
|
162
|
-
maxTextLength: 4000,
|
|
163
|
-
timeoutMs: 30000,
|
|
164
|
-
prefsPath: "~/.symi/settings/tts.json",
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Only reply with audio after an inbound voice note
|
|
171
|
-
|
|
172
|
-
```json5
|
|
173
|
-
{
|
|
174
|
-
messages: {
|
|
175
|
-
tts: {
|
|
176
|
-
auto: "inbound",
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Disable auto-summary for long replies
|
|
183
|
-
|
|
184
|
-
```json5
|
|
185
|
-
{
|
|
186
|
-
messages: {
|
|
187
|
-
tts: {
|
|
188
|
-
auto: "always",
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
Then run:
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
/tts summary off
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Notes on fields
|
|
201
|
-
|
|
202
|
-
- `auto`: auto‑TTS mode (`off`, `always`, `inbound`, `tagged`).
|
|
203
|
-
- `inbound` only sends audio after an inbound voice note.
|
|
204
|
-
- `tagged` only sends audio when the reply includes `[[tts]]` tags.
|
|
205
|
-
- `enabled`: legacy toggle (doctor migrates this to `auto`).
|
|
206
|
-
- `mode`: `"final"` (default) or `"all"` (includes tool/block replies).
|
|
207
|
-
- `provider`: `"elevenlabs"`, `"openai"`, or `"edge"` (fallback is automatic).
|
|
208
|
-
- If `provider` is **unset**, Symi prefers `openai` (if key), then `elevenlabs` (if key),
|
|
209
|
-
otherwise `edge`.
|
|
210
|
-
- `summaryModel`: optional cheap model for auto-summary; defaults to `agents.defaults.model.primary`.
|
|
211
|
-
- Accepts `provider/model` or a configured model alias.
|
|
212
|
-
- `modelOverrides`: allow the model to emit TTS directives (on by default).
|
|
213
|
-
- `allowProvider` defaults to `false` (provider switching is opt-in).
|
|
214
|
-
- `maxTextLength`: hard cap for TTS input (chars). `/tts audio` fails if exceeded.
|
|
215
|
-
- `timeoutMs`: request timeout (ms).
|
|
216
|
-
- `prefsPath`: override the local prefs JSON path (provider/limit/summary).
|
|
217
|
-
- `apiKey` values fall back to env vars (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `OPENAI_API_KEY`).
|
|
218
|
-
- `elevenlabs.baseUrl`: override ElevenLabs API base URL.
|
|
219
|
-
- `elevenlabs.voiceSettings`:
|
|
220
|
-
- `stability`, `similarityBoost`, `style`: `0..1`
|
|
221
|
-
- `useSpeakerBoost`: `true|false`
|
|
222
|
-
- `speed`: `0.5..2.0` (1.0 = normal)
|
|
223
|
-
- `elevenlabs.applyTextNormalization`: `auto|on|off`
|
|
224
|
-
- `elevenlabs.languageCode`: 2-letter ISO 639-1 (e.g. `en`, `de`)
|
|
225
|
-
- `elevenlabs.seed`: integer `0..4294967295` (best-effort determinism)
|
|
226
|
-
- `edge.enabled`: allow Edge TTS usage (default `true`; no API key).
|
|
227
|
-
- `edge.voice`: Edge neural voice name (e.g. `en-US-MichelleNeural`).
|
|
228
|
-
- `edge.lang`: language code (e.g. `en-US`).
|
|
229
|
-
- `edge.outputFormat`: Edge output format (e.g. `audio-24khz-48kbitrate-mono-mp3`).
|
|
230
|
-
- See Microsoft Speech output formats for valid values; not all formats are supported by Edge.
|
|
231
|
-
- `edge.rate` / `edge.pitch` / `edge.volume`: percent strings (e.g. `+10%`, `-5%`).
|
|
232
|
-
- `edge.saveSubtitles`: write JSON subtitles alongside the audio file.
|
|
233
|
-
- `edge.proxy`: proxy URL for Edge TTS requests.
|
|
234
|
-
- `edge.timeoutMs`: request timeout override (ms).
|
|
235
|
-
|
|
236
|
-
## Model-driven overrides (default on)
|
|
237
|
-
|
|
238
|
-
By default, the model **can** emit TTS directives for a single reply.
|
|
239
|
-
When `messages.tts.auto` is `tagged`, these directives are required to trigger audio.
|
|
240
|
-
|
|
241
|
-
When enabled, the model can emit `[[tts:...]]` directives to override the voice
|
|
242
|
-
for a single reply, plus an optional `[[tts:text]]...[[/tts:text]]` block to
|
|
243
|
-
provide expressive tags (laughter, singing cues, etc) that should only appear in
|
|
244
|
-
the audio.
|
|
245
|
-
|
|
246
|
-
`provider=...` directives are ignored unless `modelOverrides.allowProvider: true`.
|
|
247
|
-
|
|
248
|
-
Example reply payload:
|
|
249
|
-
|
|
250
|
-
```
|
|
251
|
-
Here you go.
|
|
252
|
-
|
|
253
|
-
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
|
|
254
|
-
[[tts:text]](laughs) Read the song once more.[[/tts:text]]
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
Available directive keys (when enabled):
|
|
258
|
-
|
|
259
|
-
- `provider` (`openai` | `elevenlabs` | `edge`, requires `allowProvider: true`)
|
|
260
|
-
- `voice` (OpenAI voice) or `voiceId` (ElevenLabs)
|
|
261
|
-
- `model` (OpenAI TTS model or ElevenLabs model id)
|
|
262
|
-
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
|
|
263
|
-
- `applyTextNormalization` (`auto|on|off`)
|
|
264
|
-
- `languageCode` (ISO 639-1)
|
|
265
|
-
- `seed`
|
|
266
|
-
|
|
267
|
-
Disable all model overrides:
|
|
268
|
-
|
|
269
|
-
```json5
|
|
270
|
-
{
|
|
271
|
-
messages: {
|
|
272
|
-
tts: {
|
|
273
|
-
modelOverrides: {
|
|
274
|
-
enabled: false,
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
},
|
|
278
|
-
}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
Optional allowlist (enable provider switching while keeping other knobs configurable):
|
|
282
|
-
|
|
283
|
-
```json5
|
|
284
|
-
{
|
|
285
|
-
messages: {
|
|
286
|
-
tts: {
|
|
287
|
-
modelOverrides: {
|
|
288
|
-
enabled: true,
|
|
289
|
-
allowProvider: true,
|
|
290
|
-
allowSeed: false,
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
}
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## Per-user preferences
|
|
298
|
-
|
|
299
|
-
Slash commands write local overrides to `prefsPath` (default:
|
|
300
|
-
`~/.symi/settings/tts.json`, override with `SYMI_TTS_PREFS` or
|
|
301
|
-
`messages.tts.prefsPath`).
|
|
302
|
-
|
|
303
|
-
Stored fields:
|
|
304
|
-
|
|
305
|
-
- `enabled`
|
|
306
|
-
- `provider`
|
|
307
|
-
- `maxLength` (summary threshold; default 1500 chars)
|
|
308
|
-
- `summarize` (default `true`)
|
|
309
|
-
|
|
310
|
-
These override `messages.tts.*` for that host.
|
|
311
|
-
|
|
312
|
-
## Output formats (fixed)
|
|
313
|
-
|
|
314
|
-
- **Telegram**: Opus voice note (`opus_48000_64` from ElevenLabs, `opus` from OpenAI).
|
|
315
|
-
- 48kHz / 64kbps is a good voice-note tradeoff and required for the round bubble.
|
|
316
|
-
- **Other channels**: MP3 (`mp3_44100_128` from ElevenLabs, `mp3` from OpenAI).
|
|
317
|
-
- 44.1kHz / 128kbps is the default balance for speech clarity.
|
|
318
|
-
- **Edge TTS**: uses `edge.outputFormat` (default `audio-24khz-48kbitrate-mono-mp3`).
|
|
319
|
-
- `node-edge-tts` accepts an `outputFormat`, but not all formats are available
|
|
320
|
-
from the Edge service. citeturn2search0
|
|
321
|
-
- Output format values follow Microsoft Speech output formats (including Ogg/WebM Opus). citeturn1search0
|
|
322
|
-
- Telegram `sendVoice` accepts OGG/MP3/M4A; use OpenAI/ElevenLabs if you need
|
|
323
|
-
guaranteed Opus voice notes. citeturn1search1
|
|
324
|
-
- If the configured Edge output format fails, Symi retries with MP3.
|
|
325
|
-
|
|
326
|
-
OpenAI/ElevenLabs formats are fixed; Telegram expects Opus for voice-note UX.
|
|
327
|
-
|
|
328
|
-
## Auto-TTS behavior
|
|
329
|
-
|
|
330
|
-
When enabled, Symi:
|
|
331
|
-
|
|
332
|
-
- skips TTS if the reply already contains media or a `MEDIA:` directive.
|
|
333
|
-
- skips very short replies (< 10 chars).
|
|
334
|
-
- summarizes long replies when enabled using `agents.defaults.model.primary` (or `summaryModel`).
|
|
335
|
-
- attaches the generated audio to the reply.
|
|
336
|
-
|
|
337
|
-
If the reply exceeds `maxLength` and summary is off (or no API key for the
|
|
338
|
-
summary model), audio
|
|
339
|
-
is skipped and the normal text reply is sent.
|
|
340
|
-
|
|
341
|
-
## Flow diagram
|
|
342
|
-
|
|
343
|
-
```
|
|
344
|
-
Reply -> TTS enabled?
|
|
345
|
-
no -> send text
|
|
346
|
-
yes -> has media / MEDIA: / short?
|
|
347
|
-
yes -> send text
|
|
348
|
-
no -> length > limit?
|
|
349
|
-
no -> TTS -> attach audio
|
|
350
|
-
yes -> summary enabled?
|
|
351
|
-
no -> send text
|
|
352
|
-
yes -> summarize (summaryModel or agents.defaults.model.primary)
|
|
353
|
-
-> TTS -> attach audio
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
## Slash command usage
|
|
357
|
-
|
|
358
|
-
There is a single command: `/tts`.
|
|
359
|
-
See [Slash commands](/tools/slash-commands) for enablement details.
|
|
360
|
-
|
|
361
|
-
`/voice` as the native command there. Text `/tts ...` still works.
|
|
362
|
-
|
|
363
|
-
```
|
|
364
|
-
/tts off
|
|
365
|
-
/tts always
|
|
366
|
-
/tts inbound
|
|
367
|
-
/tts tagged
|
|
368
|
-
/tts status
|
|
369
|
-
/tts provider openai
|
|
370
|
-
/tts limit 2000
|
|
371
|
-
/tts summary off
|
|
372
|
-
/tts audio Hello from Symi
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
Notes:
|
|
376
|
-
|
|
377
|
-
- Commands require an authorized sender (allowlist/owner rules still apply).
|
|
378
|
-
- `commands.text` or native command registration must be enabled.
|
|
379
|
-
- `off|always|inbound|tagged` are per‑session toggles (`/tts on` is an alias for `/tts always`).
|
|
380
|
-
- `limit` and `summary` are stored in local prefs, not the main config.
|
|
381
|
-
- `/tts audio` generates a one-off audio reply (does not toggle TTS on).
|
|
382
|
-
|
|
383
|
-
## Agent tool
|
|
384
|
-
|
|
385
|
-
The `tts` tool converts text to speech and returns a `MEDIA:` path. When the
|
|
386
|
-
result is Telegram-compatible, the tool includes `[[audio_as_voice]]` so
|
|
387
|
-
Telegram sends a voice bubble.
|
|
388
|
-
|
|
389
|
-
## Gateway RPC
|
|
390
|
-
|
|
391
|
-
Gateway methods:
|
|
392
|
-
|
|
393
|
-
- `tts.status`
|
|
394
|
-
- `tts.enable`
|
|
395
|
-
- `tts.disable`
|
|
396
|
-
- `tts.convert`
|
|
397
|
-
- `tts.setProvider`
|
|
398
|
-
- `tts.providers`
|
package/docs/vps.md
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "VPS hosting hub for Symi (Oracle/Fly/Hetzner/GCP/exe.dev)"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to run the Gateway in the cloud
|
|
5
|
-
- You need a quick map of VPS/hosting guides
|
|
6
|
-
title: "VPS Hosting"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# VPS hosting
|
|
10
|
-
|
|
11
|
-
This hub links to the supported VPS/hosting guides and explains how cloud
|
|
12
|
-
deployments work at a high level.
|
|
13
|
-
|
|
14
|
-
## Pick a provider
|
|
15
|
-
|
|
16
|
-
- **Railway** (one‑click + browser setup): [Railway](/install/railway)
|
|
17
|
-
- **Northflank** (one‑click + browser setup): [Northflank](/install/northflank)
|
|
18
|
-
- **Oracle Cloud (Always Free)**: [Oracle](/platforms/oracle) — $0/month (Always Free, ARM; capacity/signup can be finicky)
|
|
19
|
-
- **Fly.io**: [Fly.io](/install/fly)
|
|
20
|
-
- **Hetzner (Docker)**: [Hetzner](/install/hetzner)
|
|
21
|
-
- **GCP (Compute Engine)**: [GCP](/install/gcp)
|
|
22
|
-
- **exe.dev** (VM + HTTPS proxy): [exe.dev](/install/exe-dev)
|
|
23
|
-
- **AWS (EC2/Lightsail/free tier)**: works well too. Video guide:
|
|
24
|
-
[https://x.com/techfrenAJ/status/2014934471095812547](https://x.com/techfrenAJ/status/2014934471095812547)
|
|
25
|
-
|
|
26
|
-
## How cloud setups work
|
|
27
|
-
|
|
28
|
-
- The **Gateway runs on the VPS** and owns state + workspace.
|
|
29
|
-
- You connect from your laptop/phone via the **Control UI** or **Tailscale/SSH**.
|
|
30
|
-
- Treat the VPS as the source of truth and **back up** the state + workspace.
|
|
31
|
-
- Secure default: keep the Gateway on loopback and access it via SSH tunnel or Tailscale Serve.
|
|
32
|
-
If you bind to `lan`/`tailnet`, require `gateway.auth.token` or `gateway.auth.password`.
|
|
33
|
-
|
|
34
|
-
Remote access: [Gateway remote](/gateway/remote)
|
|
35
|
-
Platforms hub: [Platforms](/platforms)
|
|
36
|
-
|
|
37
|
-
## Using nodes with a VPS
|
|
38
|
-
|
|
39
|
-
You can keep the Gateway in the cloud and pair **nodes** on your local devices
|
|
40
|
-
(Mac/iOS/Android/headless). Nodes provide local screen/camera/canvas and `system.run`
|
|
41
|
-
capabilities while the Gateway stays in the cloud.
|
|
42
|
-
|
|
43
|
-
Docs: [Nodes](/nodes), [Nodes CLI](/cli/nodes)
|