@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/channels/line.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "LINE Messaging API plugin setup, config, and usage"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to connect Symi to LINE
|
|
5
|
-
- You need LINE webhook + credential setup
|
|
6
|
-
- You want LINE-specific message options
|
|
7
|
-
title: LINE
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# LINE (plugin)
|
|
11
|
-
|
|
12
|
-
LINE connects to Symi via the LINE Messaging API. The plugin runs as a webhook
|
|
13
|
-
receiver on the gateway and uses your channel access token + channel secret for
|
|
14
|
-
authentication.
|
|
15
|
-
|
|
16
|
-
Status: supported via plugin. Direct messages, group chats, media, locations, Flex
|
|
17
|
-
messages, template messages, and quick replies are supported. Reactions and threads
|
|
18
|
-
are not supported.
|
|
19
|
-
|
|
20
|
-
## Plugin required
|
|
21
|
-
|
|
22
|
-
Install the LINE plugin:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
symi plugins install @symi/line
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Local checkout (when running from a git repo):
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
symi plugins install ./extensions/line
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Onboarding
|
|
35
|
-
|
|
36
|
-
1. Create a LINE Developers account and open the Console:
|
|
37
|
-
[https://developers.line.biz/console/](https://developers.line.biz/console/)
|
|
38
|
-
2. Create (or pick) a Provider and add a **Messaging API** channel.
|
|
39
|
-
3. Copy the **Channel access token** and **Channel secret** from the channel settings.
|
|
40
|
-
4. Enable **Use webhook** in the Messaging API settings.
|
|
41
|
-
5. Set the webhook URL to your gateway endpoint (HTTPS required):
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
https://gateway-host/line/webhook
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
The gateway responds to LINE’s webhook verification (GET) and inbound events (POST).
|
|
48
|
-
If you need a custom path, set `channels.line.webhookPath` or
|
|
49
|
-
`channels.line.accounts.<id>.webhookPath` and update the URL accordingly.
|
|
50
|
-
|
|
51
|
-
## Configuration
|
|
52
|
-
|
|
53
|
-
Minimal config:
|
|
54
|
-
|
|
55
|
-
```json5
|
|
56
|
-
{
|
|
57
|
-
channels: {
|
|
58
|
-
line: {
|
|
59
|
-
enabled: true,
|
|
60
|
-
channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
|
|
61
|
-
channelSecret: "LINE_CHANNEL_SECRET",
|
|
62
|
-
dmPolicy: "pairing",
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Env vars (default account only):
|
|
69
|
-
|
|
70
|
-
- `LINE_CHANNEL_ACCESS_TOKEN`
|
|
71
|
-
- `LINE_CHANNEL_SECRET`
|
|
72
|
-
|
|
73
|
-
Token/secret files:
|
|
74
|
-
|
|
75
|
-
```json5
|
|
76
|
-
{
|
|
77
|
-
channels: {
|
|
78
|
-
line: {
|
|
79
|
-
tokenFile: "/path/to/line-token.txt",
|
|
80
|
-
secretFile: "/path/to/line-secret.txt",
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Multiple accounts:
|
|
87
|
-
|
|
88
|
-
```json5
|
|
89
|
-
{
|
|
90
|
-
channels: {
|
|
91
|
-
line: {
|
|
92
|
-
accounts: {
|
|
93
|
-
marketing: {
|
|
94
|
-
channelAccessToken: "...",
|
|
95
|
-
channelSecret: "...",
|
|
96
|
-
webhookPath: "/line/marketing",
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Access control
|
|
105
|
-
|
|
106
|
-
Direct messages default to pairing. Unknown senders get a pairing code and their
|
|
107
|
-
messages are ignored until approved.
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
symi pairing list line
|
|
111
|
-
symi pairing approve line <CODE>
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
Allowlists and policies:
|
|
115
|
-
|
|
116
|
-
- `channels.line.dmPolicy`: `pairing | allowlist | open | disabled`
|
|
117
|
-
- `channels.line.allowFrom`: allowlisted LINE user IDs for DMs
|
|
118
|
-
- `channels.line.groupPolicy`: `allowlist | open | disabled`
|
|
119
|
-
- `channels.line.groupAllowFrom`: allowlisted LINE user IDs for groups
|
|
120
|
-
- Per-group overrides: `channels.line.groups.<groupId>.allowFrom`
|
|
121
|
-
|
|
122
|
-
LINE IDs are case-sensitive. Valid IDs look like:
|
|
123
|
-
|
|
124
|
-
- User: `U` + 32 hex chars
|
|
125
|
-
- Group: `C` + 32 hex chars
|
|
126
|
-
- Room: `R` + 32 hex chars
|
|
127
|
-
|
|
128
|
-
## Message behavior
|
|
129
|
-
|
|
130
|
-
- Text is chunked at 5000 characters.
|
|
131
|
-
- Markdown formatting is stripped; code blocks and tables are converted into Flex
|
|
132
|
-
cards when possible.
|
|
133
|
-
- Streaming responses are buffered; LINE receives full chunks with a loading
|
|
134
|
-
animation while the agent works.
|
|
135
|
-
- Media downloads are capped by `channels.line.mediaMaxMb` (default 10).
|
|
136
|
-
|
|
137
|
-
## Channel data (rich messages)
|
|
138
|
-
|
|
139
|
-
Use `channelData.line` to send quick replies, locations, Flex cards, or template
|
|
140
|
-
messages.
|
|
141
|
-
|
|
142
|
-
```json5
|
|
143
|
-
{
|
|
144
|
-
text: "Here you go",
|
|
145
|
-
channelData: {
|
|
146
|
-
line: {
|
|
147
|
-
quickReplies: ["Status", "Help"],
|
|
148
|
-
location: {
|
|
149
|
-
title: "Office",
|
|
150
|
-
address: "123 Main St",
|
|
151
|
-
latitude: 35.681236,
|
|
152
|
-
longitude: 139.767125,
|
|
153
|
-
},
|
|
154
|
-
flexMessage: {
|
|
155
|
-
altText: "Status card",
|
|
156
|
-
contents: {
|
|
157
|
-
/* Flex payload */
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
templateMessage: {
|
|
161
|
-
type: "confirm",
|
|
162
|
-
text: "Proceed?",
|
|
163
|
-
confirmLabel: "Yes",
|
|
164
|
-
confirmData: "yes",
|
|
165
|
-
cancelLabel: "No",
|
|
166
|
-
cancelData: "no",
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
},
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
The LINE plugin also ships a `/card` command for Flex message presets:
|
|
174
|
-
|
|
175
|
-
```
|
|
176
|
-
/card info "Welcome" "Thanks for joining!"
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
## Troubleshooting
|
|
180
|
-
|
|
181
|
-
- **Webhook verification fails:** ensure the webhook URL is HTTPS and the
|
|
182
|
-
`channelSecret` matches the LINE console.
|
|
183
|
-
- **No inbound events:** confirm the webhook path matches `channels.line.webhookPath`
|
|
184
|
-
and that the gateway is reachable from LINE.
|
|
185
|
-
- **Media download errors:** raise `channels.line.mediaMaxMb` if media exceeds the
|
|
186
|
-
default limit.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Inbound channel location parsing (Telegram + WhatsApp) and context fields"
|
|
3
|
-
read_when:
|
|
4
|
-
- Adding or modifying channel location parsing
|
|
5
|
-
- Using location context fields in agent prompts or tools
|
|
6
|
-
title: "Channel Location Parsing"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Channel location parsing
|
|
10
|
-
|
|
11
|
-
Symi normalizes shared locations from chat channels into:
|
|
12
|
-
|
|
13
|
-
- human-readable text appended to the inbound body, and
|
|
14
|
-
- structured fields in the auto-reply context payload.
|
|
15
|
-
|
|
16
|
-
Currently supported:
|
|
17
|
-
|
|
18
|
-
- **Telegram** (location pins + venues + live locations)
|
|
19
|
-
- **WhatsApp** (locationMessage + liveLocationMessage)
|
|
20
|
-
- **Matrix** (`m.location` with `geo_uri`)
|
|
21
|
-
|
|
22
|
-
## Text formatting
|
|
23
|
-
|
|
24
|
-
Locations are rendered as friendly lines without brackets:
|
|
25
|
-
|
|
26
|
-
- Pin:
|
|
27
|
-
- `📍 48.858844, 2.294351 ±12m`
|
|
28
|
-
- Named place:
|
|
29
|
-
- `📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)`
|
|
30
|
-
- Live share:
|
|
31
|
-
- `🛰 Live location: 48.858844, 2.294351 ±12m`
|
|
32
|
-
|
|
33
|
-
If the channel includes a caption/comment, it is appended on the next line:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
📍 48.858844, 2.294351 ±12m
|
|
37
|
-
Meet here
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Context fields
|
|
41
|
-
|
|
42
|
-
When a location is present, these fields are added to `ctx`:
|
|
43
|
-
|
|
44
|
-
- `LocationLat` (number)
|
|
45
|
-
- `LocationLon` (number)
|
|
46
|
-
- `LocationAccuracy` (number, meters; optional)
|
|
47
|
-
- `LocationName` (string; optional)
|
|
48
|
-
- `LocationAddress` (string; optional)
|
|
49
|
-
- `LocationSource` (`pin | place | live`)
|
|
50
|
-
- `LocationIsLive` (boolean)
|
|
51
|
-
|
|
52
|
-
## Channel notes
|
|
53
|
-
|
|
54
|
-
- **Telegram**: venues map to `LocationName/LocationAddress`; live locations use `live_period`.
|
|
55
|
-
- **WhatsApp**: `locationMessage.comment` and `liveLocationMessage.caption` are appended as the caption line.
|
|
56
|
-
- **Matrix**: `geo_uri` is parsed as a pin location; altitude is ignored and `LocationIsLive` is always false.
|
package/docs/channels/matrix.md
DELETED
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Matrix support status, capabilities, and configuration"
|
|
3
|
-
read_when:
|
|
4
|
-
- Working on Matrix channel features
|
|
5
|
-
title: "Matrix"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Matrix (plugin)
|
|
9
|
-
|
|
10
|
-
Matrix is an open, decentralized messaging protocol. Symi connects as a Matrix **user**
|
|
11
|
-
on any homeserver, so you need a Matrix account for the bot. Once it is logged in, you can DM
|
|
12
|
-
the bot directly or invite it to rooms (Matrix "groups"). Beeper is a valid client option too,
|
|
13
|
-
but it requires E2EE to be enabled.
|
|
14
|
-
|
|
15
|
-
Status: supported via plugin (@vector-im/matrix-bot-sdk). Direct messages, rooms, threads, media, reactions,
|
|
16
|
-
polls (send + poll-start as text), location, and E2EE (with crypto support).
|
|
17
|
-
|
|
18
|
-
## Plugin required
|
|
19
|
-
|
|
20
|
-
Matrix ships as a plugin and is not bundled with the core install.
|
|
21
|
-
|
|
22
|
-
Install via CLI (npm registry):
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
symi plugins install @symi/matrix
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Local checkout (when running from a git repo):
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
symi plugins install ./extensions/matrix
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
If you choose Matrix during configure/onboarding and a git checkout is detected,
|
|
35
|
-
Symi will offer the local install path automatically.
|
|
36
|
-
|
|
37
|
-
Details: [Plugins](/tools/plugin)
|
|
38
|
-
|
|
39
|
-
## Onboarding
|
|
40
|
-
|
|
41
|
-
1. Install the Matrix plugin:
|
|
42
|
-
- From npm: `symi plugins install @symi/matrix`
|
|
43
|
-
- From a local checkout: `symi plugins install ./extensions/matrix`
|
|
44
|
-
2. Create a Matrix account on a homeserver:
|
|
45
|
-
- Browse hosting options at [https://matrix.org/ecosystem/hosting/](https://matrix.org/ecosystem/hosting/)
|
|
46
|
-
- Or host it yourself.
|
|
47
|
-
3. Get an access token for the bot account:
|
|
48
|
-
- Use the Matrix login API with `curl` at your home server:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
curl --request POST \
|
|
52
|
-
--url https://matrix.example.org/_matrix/client/v3/login \
|
|
53
|
-
--header 'Content-Type: application/json' \
|
|
54
|
-
--data '{
|
|
55
|
-
"type": "m.login.password",
|
|
56
|
-
"identifier": {
|
|
57
|
-
"type": "m.id.user",
|
|
58
|
-
"user": "your-user-name"
|
|
59
|
-
},
|
|
60
|
-
"password": "your-password"
|
|
61
|
-
}'
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
- Replace `matrix.example.org` with your homeserver URL.
|
|
65
|
-
- Or set `channels.matrix.userId` + `channels.matrix.password`: Symi calls the same
|
|
66
|
-
login endpoint, stores the access token in `~/.symi/credentials/matrix/credentials.json`,
|
|
67
|
-
and reuses it on next start.
|
|
68
|
-
|
|
69
|
-
4. Configure credentials:
|
|
70
|
-
- Env: `MATRIX_HOMESERVER`, `MATRIX_ACCESS_TOKEN` (or `MATRIX_USER_ID` + `MATRIX_PASSWORD`)
|
|
71
|
-
- Or config: `channels.matrix.*`
|
|
72
|
-
- If both are set, config takes precedence.
|
|
73
|
-
- With access token: user ID is fetched automatically via `/whoami`.
|
|
74
|
-
- When set, `channels.matrix.userId` should be the full Matrix ID (example: `@bot:example.org`).
|
|
75
|
-
5. Restart the gateway (or finish onboarding).
|
|
76
|
-
6. Start a DM with the bot or invite it to a room from any Matrix client
|
|
77
|
-
(Element, Beeper, etc.; see [https://matrix.org/ecosystem/clients/](https://matrix.org/ecosystem/clients/)). Beeper requires E2EE,
|
|
78
|
-
so set `channels.matrix.encryption: true` and verify the device.
|
|
79
|
-
|
|
80
|
-
Minimal config (access token, user ID auto-fetched):
|
|
81
|
-
|
|
82
|
-
```json5
|
|
83
|
-
{
|
|
84
|
-
channels: {
|
|
85
|
-
matrix: {
|
|
86
|
-
enabled: true,
|
|
87
|
-
homeserver: "https://matrix.example.org",
|
|
88
|
-
accessToken: "syt_***",
|
|
89
|
-
dm: { policy: "pairing" },
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
E2EE config (end to end encryption enabled):
|
|
96
|
-
|
|
97
|
-
```json5
|
|
98
|
-
{
|
|
99
|
-
channels: {
|
|
100
|
-
matrix: {
|
|
101
|
-
enabled: true,
|
|
102
|
-
homeserver: "https://matrix.example.org",
|
|
103
|
-
accessToken: "syt_***",
|
|
104
|
-
encryption: true,
|
|
105
|
-
dm: { policy: "pairing" },
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Encryption (E2EE)
|
|
112
|
-
|
|
113
|
-
End-to-end encryption is **supported** via the Rust crypto SDK.
|
|
114
|
-
|
|
115
|
-
Enable with `channels.matrix.encryption: true`:
|
|
116
|
-
|
|
117
|
-
- If the crypto module loads, encrypted rooms are decrypted automatically.
|
|
118
|
-
- Outbound media is encrypted when sending to encrypted rooms.
|
|
119
|
-
- On first connection, Symi requests device verification from your other sessions.
|
|
120
|
-
- Verify the device in another Matrix client (Element, etc.) to enable key sharing.
|
|
121
|
-
- If the crypto module cannot be loaded, E2EE is disabled and encrypted rooms will not decrypt;
|
|
122
|
-
Symi logs a warning.
|
|
123
|
-
- If you see missing crypto module errors (for example, `@matrix-org/matrix-sdk-crypto-nodejs-*`),
|
|
124
|
-
allow build scripts for `@matrix-org/matrix-sdk-crypto-nodejs` and run
|
|
125
|
-
`pnpm rebuild @matrix-org/matrix-sdk-crypto-nodejs` or fetch the binary with
|
|
126
|
-
`node node_modules/@matrix-org/matrix-sdk-crypto-nodejs/download-lib.js`.
|
|
127
|
-
|
|
128
|
-
Crypto state is stored per account + access token in
|
|
129
|
-
`~/.symi/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/crypto/`
|
|
130
|
-
(SQLite database). Sync state lives alongside it in `bot-storage.json`.
|
|
131
|
-
If the access token (device) changes, a new store is created and the bot must be
|
|
132
|
-
re-verified for encrypted rooms.
|
|
133
|
-
|
|
134
|
-
**Device verification:**
|
|
135
|
-
When E2EE is enabled, the bot will request verification from your other sessions on startup.
|
|
136
|
-
Open Element (or another client) and approve the verification request to establish trust.
|
|
137
|
-
Once verified, the bot can decrypt messages in encrypted rooms.
|
|
138
|
-
|
|
139
|
-
## Multi-account
|
|
140
|
-
|
|
141
|
-
Each account runs as a separate Matrix user on any homeserver. Per-account config
|
|
142
|
-
inherits from the top-level `channels.matrix` settings and can override any option
|
|
143
|
-
(DM policy, groups, encryption, etc.).
|
|
144
|
-
|
|
145
|
-
```json5
|
|
146
|
-
{
|
|
147
|
-
channels: {
|
|
148
|
-
matrix: {
|
|
149
|
-
enabled: true,
|
|
150
|
-
dm: { policy: "pairing" },
|
|
151
|
-
accounts: {
|
|
152
|
-
assistant: {
|
|
153
|
-
name: "Main assistant",
|
|
154
|
-
homeserver: "https://matrix.example.org",
|
|
155
|
-
accessToken: "syt_assistant_***",
|
|
156
|
-
encryption: true,
|
|
157
|
-
},
|
|
158
|
-
alerts: {
|
|
159
|
-
name: "Alerts bot",
|
|
160
|
-
homeserver: "https://matrix.example.org",
|
|
161
|
-
accessToken: "syt_alerts_***",
|
|
162
|
-
dm: { policy: "allowlist", allowFrom: ["@admin:example.org"] },
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Notes:
|
|
171
|
-
|
|
172
|
-
- Account startup is serialized to avoid race conditions with concurrent module imports.
|
|
173
|
-
- Env variables (`MATRIX_HOMESERVER`, `MATRIX_ACCESS_TOKEN`, etc.) only apply to the **default** account.
|
|
174
|
-
- Base channel settings (DM policy, group policy, mention gating, etc.) apply to all accounts unless overridden per account.
|
|
175
|
-
- Use `bindings[].match.accountId` to route each account to a different agent.
|
|
176
|
-
- Crypto state is stored per account + access token (separate key stores per account).
|
|
177
|
-
|
|
178
|
-
## Routing model
|
|
179
|
-
|
|
180
|
-
- Replies always go back to Matrix.
|
|
181
|
-
- DMs share the agent's main session; rooms map to group sessions.
|
|
182
|
-
|
|
183
|
-
## Access control (DMs)
|
|
184
|
-
|
|
185
|
-
- Default: `channels.matrix.dm.policy = "pairing"`. Unknown senders get a pairing code.
|
|
186
|
-
- Approve via:
|
|
187
|
-
- `symi pairing list matrix`
|
|
188
|
-
- `symi pairing approve matrix <CODE>`
|
|
189
|
-
- Public DMs: `channels.matrix.dm.policy="open"` plus `channels.matrix.dm.allowFrom=["*"]`.
|
|
190
|
-
- `channels.matrix.dm.allowFrom` accepts full Matrix user IDs (example: `@user:server`). The wizard resolves display names to user IDs when directory search finds a single exact match.
|
|
191
|
-
- Do not use display names or bare localparts (example: `"Alice"` or `"alice"`). They are ambiguous and are ignored for allowlist matching. Use full `@user:server` IDs.
|
|
192
|
-
|
|
193
|
-
## Rooms (groups)
|
|
194
|
-
|
|
195
|
-
- Default: `channels.matrix.groupPolicy = "allowlist"` (mention-gated). Use `channels.defaults.groupPolicy` to override the default when unset.
|
|
196
|
-
- Allowlist rooms with `channels.matrix.groups` (room IDs or aliases; names are resolved to IDs when directory search finds a single exact match):
|
|
197
|
-
|
|
198
|
-
```json5
|
|
199
|
-
{
|
|
200
|
-
channels: {
|
|
201
|
-
matrix: {
|
|
202
|
-
groupPolicy: "allowlist",
|
|
203
|
-
groups: {
|
|
204
|
-
"!roomId:example.org": { allow: true },
|
|
205
|
-
"#alias:example.org": { allow: true },
|
|
206
|
-
},
|
|
207
|
-
groupAllowFrom: ["@owner:example.org"],
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
- `requireMention: false` enables auto-reply in that room.
|
|
214
|
-
- `groups."*"` can set defaults for mention gating across rooms.
|
|
215
|
-
- `groupAllowFrom` restricts which senders can trigger the bot in rooms (full Matrix user IDs).
|
|
216
|
-
- Per-room `users` allowlists can further restrict senders inside a specific room (use full Matrix user IDs).
|
|
217
|
-
- The configure wizard prompts for room allowlists (room IDs, aliases, or names) and resolves names only on an exact, unique match.
|
|
218
|
-
- On startup, Symi resolves room/user names in allowlists to IDs and logs the mapping; unresolved entries are ignored for allowlist matching.
|
|
219
|
-
- Invites are auto-joined by default; control with `channels.matrix.autoJoin` and `channels.matrix.autoJoinAllowlist`.
|
|
220
|
-
- To allow **no rooms**, set `channels.matrix.groupPolicy: "disabled"` (or keep an empty allowlist).
|
|
221
|
-
- Legacy key: `channels.matrix.rooms` (same shape as `groups`).
|
|
222
|
-
|
|
223
|
-
## Threads
|
|
224
|
-
|
|
225
|
-
- Reply threading is supported.
|
|
226
|
-
- `channels.matrix.threadReplies` controls whether replies stay in threads:
|
|
227
|
-
- `off`, `inbound` (default), `always`
|
|
228
|
-
- `channels.matrix.replyToMode` controls reply-to metadata when not replying in a thread:
|
|
229
|
-
- `off` (default), `first`, `all`
|
|
230
|
-
|
|
231
|
-
## Capabilities
|
|
232
|
-
|
|
233
|
-
| Feature | Status |
|
|
234
|
-
| --------------- | ------------------------------------------------------------------------------------- |
|
|
235
|
-
| Direct messages | ✅ Supported |
|
|
236
|
-
| Rooms | ✅ Supported |
|
|
237
|
-
| Threads | ✅ Supported |
|
|
238
|
-
| Media | ✅ Supported |
|
|
239
|
-
| E2EE | ✅ Supported (crypto module required) |
|
|
240
|
-
| Reactions | ✅ Supported (send/read via tools) |
|
|
241
|
-
| Polls | ✅ Send supported; inbound poll starts are converted to text (responses/ends ignored) |
|
|
242
|
-
| Location | ✅ Supported (geo URI; altitude ignored) |
|
|
243
|
-
| Native commands | ✅ Supported |
|
|
244
|
-
|
|
245
|
-
## Troubleshooting
|
|
246
|
-
|
|
247
|
-
Run this ladder first:
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
symi status
|
|
251
|
-
symi gateway status
|
|
252
|
-
symi logs --follow
|
|
253
|
-
symi doctor
|
|
254
|
-
symi channels status --probe
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
Then confirm DM pairing state if needed:
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
symi pairing list matrix
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
Common failures:
|
|
264
|
-
|
|
265
|
-
- Logged in but room messages ignored: room blocked by `groupPolicy` or room allowlist.
|
|
266
|
-
- DMs ignored: sender pending approval when `channels.matrix.dm.policy="pairing"`.
|
|
267
|
-
- Encrypted rooms fail: crypto support or encryption settings mismatch.
|
|
268
|
-
|
|
269
|
-
For triage flow: [/channels/troubleshooting](/channels/troubleshooting).
|
|
270
|
-
|
|
271
|
-
## Configuration
|
|
272
|
-
|
|
273
|
-
Full configuration: [Configuration](/gateway/configuration)
|
|
274
|
-
|
|
275
|
-
Provider options:
|
|
276
|
-
|
|
277
|
-
- `channels.matrix.enabled`: enable/disable channel startup.
|
|
278
|
-
- `channels.matrix.homeserver`: homeserver URL.
|
|
279
|
-
- `channels.matrix.userId`: Matrix user ID (optional with access token).
|
|
280
|
-
- `channels.matrix.accessToken`: access token.
|
|
281
|
-
- `channels.matrix.password`: password for login (token stored).
|
|
282
|
-
- `channels.matrix.deviceName`: device display name.
|
|
283
|
-
- `channels.matrix.encryption`: enable E2EE (default: false).
|
|
284
|
-
- `channels.matrix.initialSyncLimit`: initial sync limit.
|
|
285
|
-
- `channels.matrix.threadReplies`: `off | inbound | always` (default: inbound).
|
|
286
|
-
- `channels.matrix.textChunkLimit`: outbound text chunk size (chars).
|
|
287
|
-
- `channels.matrix.chunkMode`: `length` (default) or `newline` to split on blank lines (paragraph boundaries) before length chunking.
|
|
288
|
-
- `channels.matrix.dm.policy`: `pairing | allowlist | open | disabled` (default: pairing).
|
|
289
|
-
- `channels.matrix.dm.allowFrom`: DM allowlist (full Matrix user IDs). `open` requires `"*"`. The wizard resolves names to IDs when possible.
|
|
290
|
-
- `channels.matrix.groupPolicy`: `allowlist | open | disabled` (default: allowlist).
|
|
291
|
-
- `channels.matrix.groupAllowFrom`: allowlisted senders for group messages (full Matrix user IDs).
|
|
292
|
-
- `channels.matrix.allowlistOnly`: force allowlist rules for DMs + rooms.
|
|
293
|
-
- `channels.matrix.groups`: group allowlist + per-room settings map.
|
|
294
|
-
- `channels.matrix.rooms`: legacy group allowlist/config.
|
|
295
|
-
- `channels.matrix.replyToMode`: reply-to mode for threads/tags.
|
|
296
|
-
- `channels.matrix.mediaMaxMb`: inbound/outbound media cap (MB).
|
|
297
|
-
- `channels.matrix.autoJoin`: invite handling (`always | allowlist | off`, default: always).
|
|
298
|
-
- `channels.matrix.autoJoinAllowlist`: allowed room IDs/aliases for auto-join.
|
|
299
|
-
- `channels.matrix.accounts`: multi-account configuration keyed by account ID (each account inherits top-level settings).
|
|
300
|
-
- `channels.matrix.actions`: per-action tool gating (reactions/messages/pins/memberInfo/channelInfo).
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Mattermost bot setup and Symi config"
|
|
3
|
-
read_when:
|
|
4
|
-
- Setting up Mattermost
|
|
5
|
-
- Debugging Mattermost routing
|
|
6
|
-
title: "Mattermost"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Mattermost (plugin)
|
|
10
|
-
|
|
11
|
-
Status: supported via plugin (bot token + WebSocket events). Channels, groups, and DMs are supported.
|
|
12
|
-
Mattermost is a self-hostable team messaging platform; see the official site at
|
|
13
|
-
[mattermost.com](https://mattermost.com) for product details and downloads.
|
|
14
|
-
|
|
15
|
-
## Plugin required
|
|
16
|
-
|
|
17
|
-
Mattermost ships as a plugin and is not bundled with the core install.
|
|
18
|
-
|
|
19
|
-
Install via CLI (npm registry):
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
symi plugins install @symi/mattermost
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Local checkout (when running from a git repo):
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
symi plugins install ./extensions/mattermost
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
If you choose Mattermost during configure/onboarding and a git checkout is detected,
|
|
32
|
-
Symi will offer the local install path automatically.
|
|
33
|
-
|
|
34
|
-
Details: [Plugins](/tools/plugin)
|
|
35
|
-
|
|
36
|
-
## Onboarding
|
|
37
|
-
|
|
38
|
-
1. Install the Mattermost plugin.
|
|
39
|
-
2. Create a Mattermost bot account and copy the **bot token**.
|
|
40
|
-
3. Copy the Mattermost **base URL** (e.g., `https://chat.example.com`).
|
|
41
|
-
4. Configure Symi and start the gateway.
|
|
42
|
-
|
|
43
|
-
Minimal config:
|
|
44
|
-
|
|
45
|
-
```json5
|
|
46
|
-
{
|
|
47
|
-
channels: {
|
|
48
|
-
mattermost: {
|
|
49
|
-
enabled: true,
|
|
50
|
-
botToken: "mm-token",
|
|
51
|
-
baseUrl: "https://chat.example.com",
|
|
52
|
-
dmPolicy: "pairing",
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Environment variables (default account)
|
|
59
|
-
|
|
60
|
-
Set these on the gateway host if you prefer env vars:
|
|
61
|
-
|
|
62
|
-
- `MATTERMOST_BOT_TOKEN=...`
|
|
63
|
-
- `MATTERMOST_URL=https://chat.example.com`
|
|
64
|
-
|
|
65
|
-
Env vars apply only to the **default** account (`default`). Other accounts must use config values.
|
|
66
|
-
|
|
67
|
-
## Chat modes
|
|
68
|
-
|
|
69
|
-
Mattermost responds to DMs automatically. Channel behavior is controlled by `chatmode`:
|
|
70
|
-
|
|
71
|
-
- `oncall` (default): respond only when @mentioned in channels.
|
|
72
|
-
- `onmessage`: respond to every channel message.
|
|
73
|
-
- `onchar`: respond when a message starts with a trigger prefix.
|
|
74
|
-
|
|
75
|
-
Config example:
|
|
76
|
-
|
|
77
|
-
```json5
|
|
78
|
-
{
|
|
79
|
-
channels: {
|
|
80
|
-
mattermost: {
|
|
81
|
-
chatmode: "onchar",
|
|
82
|
-
oncharPrefixes: [">", "!"],
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Notes:
|
|
89
|
-
|
|
90
|
-
- `onchar` still responds to explicit @mentions.
|
|
91
|
-
- `channels.mattermost.requireMention` is honored for legacy configs but `chatmode` is preferred.
|
|
92
|
-
|
|
93
|
-
## Access control (DMs)
|
|
94
|
-
|
|
95
|
-
- Default: `channels.mattermost.dmPolicy = "pairing"` (unknown senders get a pairing code).
|
|
96
|
-
- Approve via:
|
|
97
|
-
- `symi pairing list mattermost`
|
|
98
|
-
- `symi pairing approve mattermost <CODE>`
|
|
99
|
-
- Public DMs: `channels.mattermost.dmPolicy="open"` plus `channels.mattermost.allowFrom=["*"]`.
|
|
100
|
-
|
|
101
|
-
## Channels (groups)
|
|
102
|
-
|
|
103
|
-
- Default: `channels.mattermost.groupPolicy = "allowlist"` (mention-gated).
|
|
104
|
-
- Allowlist senders with `channels.mattermost.groupAllowFrom` (user IDs or `@username`).
|
|
105
|
-
- Open channels: `channels.mattermost.groupPolicy="open"` (mention-gated).
|
|
106
|
-
|
|
107
|
-
## Targets for outbound delivery
|
|
108
|
-
|
|
109
|
-
Use these target formats with `symi message send` or cron/webhooks:
|
|
110
|
-
|
|
111
|
-
- `channel:<id>` for a channel
|
|
112
|
-
- `user:<id>` for a DM
|
|
113
|
-
- `@username` for a DM (resolved via the Mattermost API)
|
|
114
|
-
|
|
115
|
-
Bare IDs are treated as channels.
|
|
116
|
-
|
|
117
|
-
## Reactions (message tool)
|
|
118
|
-
|
|
119
|
-
- Use `message action=react` with `channel=mattermost`.
|
|
120
|
-
- `messageId` is the Mattermost post id.
|
|
121
|
-
- `emoji` accepts names like `thumbsup` or `:+1:` (colons are optional).
|
|
122
|
-
- Set `remove=true` (boolean) to remove a reaction.
|
|
123
|
-
- Reaction add/remove events are forwarded as system events to the routed agent session.
|
|
124
|
-
|
|
125
|
-
Examples:
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
message action=react channel=mattermost target=channel:<channelId> messageId=<postId> emoji=thumbsup
|
|
129
|
-
message action=react channel=mattermost target=channel:<channelId> messageId=<postId> emoji=thumbsup remove=true
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Config:
|
|
133
|
-
|
|
134
|
-
- `channels.mattermost.actions.reactions`: enable/disable reaction actions (default true).
|
|
135
|
-
- Per-account override: `channels.mattermost.accounts.<id>.actions.reactions`.
|
|
136
|
-
|
|
137
|
-
## Multi-account
|
|
138
|
-
|
|
139
|
-
Mattermost supports multiple accounts under `channels.mattermost.accounts`:
|
|
140
|
-
|
|
141
|
-
```json5
|
|
142
|
-
{
|
|
143
|
-
channels: {
|
|
144
|
-
mattermost: {
|
|
145
|
-
accounts: {
|
|
146
|
-
default: { name: "Primary", botToken: "mm-token", baseUrl: "https://chat.example.com" },
|
|
147
|
-
alerts: { name: "Alerts", botToken: "mm-token-2", baseUrl: "https://alerts.example.com" },
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
}
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## Troubleshooting
|
|
155
|
-
|
|
156
|
-
- No replies in channels: ensure the bot is in the channel and mention it (oncall), use a trigger prefix (onchar), or set `chatmode: "onmessage"`.
|
|
157
|
-
- Auth errors: check the bot token, base URL, and whether the account is enabled.
|
|
158
|
-
- Multi-account issues: env vars only apply to the `default` account.
|