@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
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Vercel AI Gateway"
|
|
3
|
-
summary: "Vercel AI Gateway setup (auth + model selection)"
|
|
4
|
-
read_when:
|
|
5
|
-
- You want to use Vercel AI Gateway with Symi
|
|
6
|
-
- You need the API key env var or CLI auth choice
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Vercel AI Gateway
|
|
10
|
-
|
|
11
|
-
The [Vercel AI Gateway](https://vercel.com/ai-gateway) provides a unified API to access hundreds of models through a single endpoint.
|
|
12
|
-
|
|
13
|
-
- Provider: `vercel-ai-gateway`
|
|
14
|
-
- Auth: `AI_GATEWAY_API_KEY`
|
|
15
|
-
- API: Anthropic Messages compatible
|
|
16
|
-
|
|
17
|
-
## Quick start
|
|
18
|
-
|
|
19
|
-
1. Set the API key (recommended: store it for the Gateway):
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
symi onboard --auth-choice ai-gateway-api-key
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
2. Set a default model:
|
|
26
|
-
|
|
27
|
-
```json5
|
|
28
|
-
{
|
|
29
|
-
agents: {
|
|
30
|
-
defaults: {
|
|
31
|
-
model: { primary: "vercel-ai-gateway/anthropic/claude-opus-4.6" },
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Non-interactive example
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
symi onboard --non-interactive \
|
|
41
|
-
--mode local \
|
|
42
|
-
--auth-choice ai-gateway-api-key \
|
|
43
|
-
--ai-gateway-api-key "$AI_GATEWAY_API_KEY"
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Environment note
|
|
47
|
-
|
|
48
|
-
If the Gateway runs as a daemon (launchd/systemd), make sure `AI_GATEWAY_API_KEY`
|
|
49
|
-
is available to that process (for example, in `~/.symi/.env` or via
|
|
50
|
-
`env.shellEnv`).
|
package/docs/providers/vllm.md
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Run Symi with vLLM (OpenAI-compatible local server)"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to run Symi against a local vLLM server
|
|
5
|
-
- You want OpenAI-compatible /v1 endpoints with your own models
|
|
6
|
-
title: "vLLM"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# vLLM
|
|
10
|
-
|
|
11
|
-
vLLM can serve open-source (and some custom) models via an **OpenAI-compatible** HTTP API. Symi can connect to vLLM using the `openai-completions` API.
|
|
12
|
-
|
|
13
|
-
Symi can also **auto-discover** available models from vLLM when you opt in with `VLLM_API_KEY` (any value works if your server doesn’t enforce auth) and you do not define an explicit `models.providers.vllm` entry.
|
|
14
|
-
|
|
15
|
-
## Quick start
|
|
16
|
-
|
|
17
|
-
1. Start vLLM with an OpenAI-compatible server.
|
|
18
|
-
|
|
19
|
-
Your base URL should expose `/v1` endpoints (e.g. `/v1/models`, `/v1/chat/completions`). vLLM commonly runs on:
|
|
20
|
-
|
|
21
|
-
- `http://127.0.0.1:8000/v1`
|
|
22
|
-
|
|
23
|
-
2. Opt in (any value works if no auth is configured):
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
export VLLM_API_KEY="vllm-local"
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
3. Select a model (replace with one of your vLLM model IDs):
|
|
30
|
-
|
|
31
|
-
```json5
|
|
32
|
-
{
|
|
33
|
-
agents: {
|
|
34
|
-
defaults: {
|
|
35
|
-
model: { primary: "vllm/your-model-id" },
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Model discovery (implicit provider)
|
|
42
|
-
|
|
43
|
-
When `VLLM_API_KEY` is set (or an auth profile exists) and you **do not** define `models.providers.vllm`, Symi will query:
|
|
44
|
-
|
|
45
|
-
- `GET http://127.0.0.1:8000/v1/models`
|
|
46
|
-
|
|
47
|
-
…and convert the returned IDs into model entries.
|
|
48
|
-
|
|
49
|
-
If you set `models.providers.vllm` explicitly, auto-discovery is skipped and you must define models manually.
|
|
50
|
-
|
|
51
|
-
## Explicit configuration (manual models)
|
|
52
|
-
|
|
53
|
-
Use explicit config when:
|
|
54
|
-
|
|
55
|
-
- vLLM runs on a different host/port.
|
|
56
|
-
- You want to pin `contextWindow`/`maxTokens` values.
|
|
57
|
-
- Your server requires a real API key (or you want to control headers).
|
|
58
|
-
|
|
59
|
-
```json5
|
|
60
|
-
{
|
|
61
|
-
models: {
|
|
62
|
-
providers: {
|
|
63
|
-
vllm: {
|
|
64
|
-
baseUrl: "http://127.0.0.1:8000/v1",
|
|
65
|
-
apiKey: "${VLLM_API_KEY}",
|
|
66
|
-
api: "openai-completions",
|
|
67
|
-
models: [
|
|
68
|
-
{
|
|
69
|
-
id: "your-model-id",
|
|
70
|
-
name: "Local vLLM Model",
|
|
71
|
-
reasoning: false,
|
|
72
|
-
input: ["text"],
|
|
73
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
74
|
-
contextWindow: 128000,
|
|
75
|
-
maxTokens: 8192,
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Troubleshooting
|
|
85
|
-
|
|
86
|
-
- Check the server is reachable:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
curl http://127.0.0.1:8000/v1/models
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
- If requests fail with auth errors, set a real `VLLM_API_KEY` that matches your server configuration, or configure the provider explicitly under `models.providers.vllm`.
|
package/docs/providers/xiaomi.md
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Use Xiaomi MiMo (mimo-v2-flash) with Symi"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want Xiaomi MiMo models in Symi
|
|
5
|
-
- You need XIAOMI_API_KEY setup
|
|
6
|
-
title: "Xiaomi MiMo"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Xiaomi MiMo
|
|
10
|
-
|
|
11
|
-
Xiaomi MiMo is the API platform for **MiMo** models. It provides REST APIs compatible with
|
|
12
|
-
OpenAI and Anthropic formats and uses API keys for authentication. Create your API key in
|
|
13
|
-
the [Xiaomi MiMo console](https://platform.xiaomimimo.com/#/console/api-keys). Symi uses
|
|
14
|
-
the `xiaomi` provider with a Xiaomi MiMo API key.
|
|
15
|
-
|
|
16
|
-
## Model overview
|
|
17
|
-
|
|
18
|
-
- **mimo-v2-flash**: 262144-token context window, Anthropic Messages API compatible.
|
|
19
|
-
- Base URL: `https://api.xiaomimimo.com/anthropic`
|
|
20
|
-
- Authorization: `Bearer $XIAOMI_API_KEY`
|
|
21
|
-
|
|
22
|
-
## CLI setup
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
symi onboard --auth-choice xiaomi-api-key
|
|
26
|
-
# or non-interactive
|
|
27
|
-
symi onboard --auth-choice xiaomi-api-key --xiaomi-api-key "$XIAOMI_API_KEY"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Config snippet
|
|
31
|
-
|
|
32
|
-
```json5
|
|
33
|
-
{
|
|
34
|
-
env: { XIAOMI_API_KEY: "your-key" },
|
|
35
|
-
agents: { defaults: { model: { primary: "xiaomi/mimo-v2-flash" } } },
|
|
36
|
-
models: {
|
|
37
|
-
mode: "merge",
|
|
38
|
-
providers: {
|
|
39
|
-
xiaomi: {
|
|
40
|
-
baseUrl: "https://api.xiaomimimo.com/anthropic",
|
|
41
|
-
api: "anthropic-messages",
|
|
42
|
-
apiKey: "XIAOMI_API_KEY",
|
|
43
|
-
models: [
|
|
44
|
-
{
|
|
45
|
-
id: "mimo-v2-flash",
|
|
46
|
-
name: "Xiaomi MiMo V2 Flash",
|
|
47
|
-
reasoning: false,
|
|
48
|
-
input: ["text"],
|
|
49
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
50
|
-
contextWindow: 262144,
|
|
51
|
-
maxTokens: 8192,
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Notes
|
|
61
|
-
|
|
62
|
-
- Model ref: `xiaomi/mimo-v2-flash`.
|
|
63
|
-
- The provider is injected automatically when `XIAOMI_API_KEY` is set (or an auth profile exists).
|
|
64
|
-
- See [/concepts/model-providers](/concepts/model-providers) for provider rules.
|
package/docs/providers/zai.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Use Z.AI (GLM models) with Symi"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want Z.AI / GLM models in Symi
|
|
5
|
-
- You need a simple ZAI_API_KEY setup
|
|
6
|
-
title: "Z.AI"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Z.AI
|
|
10
|
-
|
|
11
|
-
Z.AI is the API platform for **GLM** models. It provides REST APIs for GLM and uses API keys
|
|
12
|
-
for authentication. Create your API key in the Z.AI console. Symi uses the `zai` provider
|
|
13
|
-
with a Z.AI API key.
|
|
14
|
-
|
|
15
|
-
## CLI setup
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
symi onboard --auth-choice zai-api-key
|
|
19
|
-
# or non-interactive
|
|
20
|
-
symi onboard --zai-api-key "$ZAI_API_KEY"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Config snippet
|
|
24
|
-
|
|
25
|
-
```json5
|
|
26
|
-
{
|
|
27
|
-
env: { ZAI_API_KEY: "sk-..." },
|
|
28
|
-
agents: { defaults: { model: { primary: "zai/glm-5" } } },
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Notes
|
|
33
|
-
|
|
34
|
-
- GLM models are available as `zai/<model>` (example: `zai/glm-5`).
|
|
35
|
-
- `tool_stream` is enabled by default for Z.AI tool-call streaming. Set
|
|
36
|
-
`agents.defaults.models["zai/<model>"].params.tool_stream` to `false` to disable it.
|
|
37
|
-
- See [/providers/glm](/providers/glm) for the model family overview.
|
|
38
|
-
- Z.AI uses Bearer auth with your API key.
|
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Refactor plan: exec host routing, node approvals, and headless runner"
|
|
3
|
-
read_when:
|
|
4
|
-
- Designing exec host routing or exec approvals
|
|
5
|
-
- Implementing node runner + UI IPC
|
|
6
|
-
- Adding exec host security modes and slash commands
|
|
7
|
-
title: "Exec Host Refactor"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Exec host refactor plan
|
|
11
|
-
|
|
12
|
-
## Goals
|
|
13
|
-
|
|
14
|
-
- Add `exec.host` + `exec.security` to route execution across **sandbox**, **gateway**, and **node**.
|
|
15
|
-
- Keep defaults **safe**: no cross-host execution unless explicitly enabled.
|
|
16
|
-
- Split execution into a **headless runner service** with optional UI (macOS app) via local IPC.
|
|
17
|
-
- Provide **per-agent** policy, allowlist, ask mode, and node binding.
|
|
18
|
-
- Support **ask modes** that work _with_ or _without_ allowlists.
|
|
19
|
-
- Cross-platform: Unix socket + token auth (macOS/Linux/Windows parity).
|
|
20
|
-
|
|
21
|
-
## Non-goals
|
|
22
|
-
|
|
23
|
-
- No legacy allowlist migration or legacy schema support.
|
|
24
|
-
- No PTY/streaming for node exec (aggregated output only).
|
|
25
|
-
- No new network layer beyond the existing Bridge + Gateway.
|
|
26
|
-
|
|
27
|
-
## Decisions (locked)
|
|
28
|
-
|
|
29
|
-
- **Config keys:** `exec.host` + `exec.security` (per-agent override allowed).
|
|
30
|
-
- **Elevation:** keep `/elevated` as an alias for gateway full access.
|
|
31
|
-
- **Ask default:** `on-miss`.
|
|
32
|
-
- **Approvals store:** `~/.symi/exec-approvals.json` (JSON, no legacy migration).
|
|
33
|
-
- **Runner:** headless system service; UI app hosts a Unix socket for approvals.
|
|
34
|
-
- **Node identity:** use existing `nodeId`.
|
|
35
|
-
- **Socket auth:** Unix socket + token (cross-platform); split later if needed.
|
|
36
|
-
- **Node host state:** `~/.symi/node.json` (node id + pairing token).
|
|
37
|
-
- **macOS exec host:** run `system.run` inside the macOS app; node host service forwards requests over local IPC.
|
|
38
|
-
- **No XPC helper:** stick to Unix socket + token + peer checks.
|
|
39
|
-
|
|
40
|
-
## Key concepts
|
|
41
|
-
|
|
42
|
-
### Host
|
|
43
|
-
|
|
44
|
-
- `sandbox`: Docker exec (current behavior).
|
|
45
|
-
- `gateway`: exec on gateway host.
|
|
46
|
-
- `node`: exec on node runner via Bridge (`system.run`).
|
|
47
|
-
|
|
48
|
-
### Security mode
|
|
49
|
-
|
|
50
|
-
- `deny`: always block.
|
|
51
|
-
- `allowlist`: allow only matches.
|
|
52
|
-
- `full`: allow everything (equivalent to elevated).
|
|
53
|
-
|
|
54
|
-
### Ask mode
|
|
55
|
-
|
|
56
|
-
- `off`: never ask.
|
|
57
|
-
- `on-miss`: ask only when allowlist does not match.
|
|
58
|
-
- `always`: ask every time.
|
|
59
|
-
|
|
60
|
-
Ask is **independent** of allowlist; allowlist can be used with `always` or `on-miss`.
|
|
61
|
-
|
|
62
|
-
### Policy resolution (per exec)
|
|
63
|
-
|
|
64
|
-
1. Resolve `exec.host` (tool param → agent override → global default).
|
|
65
|
-
2. Resolve `exec.security` and `exec.ask` (same precedence).
|
|
66
|
-
3. If host is `sandbox`, proceed with local sandbox exec.
|
|
67
|
-
4. If host is `gateway` or `node`, apply security + ask policy on that host.
|
|
68
|
-
|
|
69
|
-
## Default safety
|
|
70
|
-
|
|
71
|
-
- Default `exec.host = sandbox`.
|
|
72
|
-
- Default `exec.security = deny` for `gateway` and `node`.
|
|
73
|
-
- Default `exec.ask = on-miss` (only relevant if security allows).
|
|
74
|
-
- If no node binding is set, **agent may target any node**, but only if policy allows it.
|
|
75
|
-
|
|
76
|
-
## Config surface
|
|
77
|
-
|
|
78
|
-
### Tool parameters
|
|
79
|
-
|
|
80
|
-
- `exec.host` (optional): `sandbox | gateway | node`.
|
|
81
|
-
- `exec.security` (optional): `deny | allowlist | full`.
|
|
82
|
-
- `exec.ask` (optional): `off | on-miss | always`.
|
|
83
|
-
- `exec.node` (optional): node id/name to use when `host=node`.
|
|
84
|
-
|
|
85
|
-
### Config keys (global)
|
|
86
|
-
|
|
87
|
-
- `tools.exec.host`
|
|
88
|
-
- `tools.exec.security`
|
|
89
|
-
- `tools.exec.ask`
|
|
90
|
-
- `tools.exec.node` (default node binding)
|
|
91
|
-
|
|
92
|
-
### Config keys (per agent)
|
|
93
|
-
|
|
94
|
-
- `agents.list[].tools.exec.host`
|
|
95
|
-
- `agents.list[].tools.exec.security`
|
|
96
|
-
- `agents.list[].tools.exec.ask`
|
|
97
|
-
- `agents.list[].tools.exec.node`
|
|
98
|
-
|
|
99
|
-
### Alias
|
|
100
|
-
|
|
101
|
-
- `/elevated on` = set `tools.exec.host=gateway`, `tools.exec.security=full` for the agent session.
|
|
102
|
-
- `/elevated off` = restore previous exec settings for the agent session.
|
|
103
|
-
|
|
104
|
-
## Approvals store (JSON)
|
|
105
|
-
|
|
106
|
-
Path: `~/.symi/exec-approvals.json`
|
|
107
|
-
|
|
108
|
-
Purpose:
|
|
109
|
-
|
|
110
|
-
- Local policy + allowlists for the **execution host** (gateway or node runner).
|
|
111
|
-
- Ask fallback when no UI is available.
|
|
112
|
-
- IPC credentials for UI clients.
|
|
113
|
-
|
|
114
|
-
Proposed schema (v1):
|
|
115
|
-
|
|
116
|
-
```json
|
|
117
|
-
{
|
|
118
|
-
"version": 1,
|
|
119
|
-
"socket": {
|
|
120
|
-
"path": "~/.symi/exec-approvals.sock",
|
|
121
|
-
"token": "base64-opaque-token"
|
|
122
|
-
},
|
|
123
|
-
"defaults": {
|
|
124
|
-
"security": "deny",
|
|
125
|
-
"ask": "on-miss",
|
|
126
|
-
"askFallback": "deny"
|
|
127
|
-
},
|
|
128
|
-
"agents": {
|
|
129
|
-
"agent-id-1": {
|
|
130
|
-
"security": "allowlist",
|
|
131
|
-
"ask": "on-miss",
|
|
132
|
-
"allowlist": [
|
|
133
|
-
{
|
|
134
|
-
"pattern": "~/Projects/**/bin/rg",
|
|
135
|
-
"lastUsedAt": 0,
|
|
136
|
-
"lastUsedCommand": "rg -n TODO",
|
|
137
|
-
"lastResolvedPath": "/Users/user/Projects/.../bin/rg"
|
|
138
|
-
}
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Notes:
|
|
146
|
-
|
|
147
|
-
- No legacy allowlist formats.
|
|
148
|
-
- `askFallback` applies only when `ask` is required and no UI is reachable.
|
|
149
|
-
- File permissions: `0600`.
|
|
150
|
-
|
|
151
|
-
## Runner service (headless)
|
|
152
|
-
|
|
153
|
-
### Role
|
|
154
|
-
|
|
155
|
-
- Enforce `exec.security` + `exec.ask` locally.
|
|
156
|
-
- Execute system commands and return output.
|
|
157
|
-
- Emit Bridge events for exec lifecycle (optional but recommended).
|
|
158
|
-
|
|
159
|
-
### Service lifecycle
|
|
160
|
-
|
|
161
|
-
- Launchd/daemon on macOS; system service on Linux/Windows.
|
|
162
|
-
- Approvals JSON is local to the execution host.
|
|
163
|
-
- UI hosts a local Unix socket; runners connect on demand.
|
|
164
|
-
|
|
165
|
-
## UI integration (macOS app)
|
|
166
|
-
|
|
167
|
-
### IPC
|
|
168
|
-
|
|
169
|
-
- Unix socket at `~/.symi/exec-approvals.sock` (0600).
|
|
170
|
-
- Token stored in `exec-approvals.json` (0600).
|
|
171
|
-
- Peer checks: same-UID only.
|
|
172
|
-
- Challenge/response: nonce + HMAC(token, request-hash) to prevent replay.
|
|
173
|
-
- Short TTL (e.g., 10s) + max payload + rate limit.
|
|
174
|
-
|
|
175
|
-
### Ask flow (macOS app exec host)
|
|
176
|
-
|
|
177
|
-
1. Node service receives `system.run` from gateway.
|
|
178
|
-
2. Node service connects to the local socket and sends the prompt/exec request.
|
|
179
|
-
3. App validates peer + token + HMAC + TTL, then shows dialog if needed.
|
|
180
|
-
4. App executes the command in UI context and returns output.
|
|
181
|
-
5. Node service returns output to gateway.
|
|
182
|
-
|
|
183
|
-
If UI missing:
|
|
184
|
-
|
|
185
|
-
- Apply `askFallback` (`deny|allowlist|full`).
|
|
186
|
-
|
|
187
|
-
### Diagram (SCI)
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
Agent -> Gateway -> Bridge -> Node Service (TS)
|
|
191
|
-
| IPC (UDS + token + HMAC + TTL)
|
|
192
|
-
v
|
|
193
|
-
Mac App (UI + TCC + system.run)
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Node identity + binding
|
|
197
|
-
|
|
198
|
-
- Use existing `nodeId` from Bridge pairing.
|
|
199
|
-
- Binding model:
|
|
200
|
-
- `tools.exec.node` restricts the agent to a specific node.
|
|
201
|
-
- If unset, agent can pick any node (policy still enforces defaults).
|
|
202
|
-
- Node selection resolution:
|
|
203
|
-
- `nodeId` exact match
|
|
204
|
-
- `displayName` (normalized)
|
|
205
|
-
- `remoteIp`
|
|
206
|
-
- `nodeId` prefix (>= 6 chars)
|
|
207
|
-
|
|
208
|
-
## Eventing
|
|
209
|
-
|
|
210
|
-
### Who sees events
|
|
211
|
-
|
|
212
|
-
- System events are **per session** and shown to the agent on the next prompt.
|
|
213
|
-
- Stored in the gateway in-memory queue (`enqueueSystemEvent`).
|
|
214
|
-
|
|
215
|
-
### Event text
|
|
216
|
-
|
|
217
|
-
- `Exec started (node=<id>, id=<runId>)`
|
|
218
|
-
- `Exec finished (node=<id>, id=<runId>, code=<code>)` + optional output tail
|
|
219
|
-
- `Exec denied (node=<id>, id=<runId>, <reason>)`
|
|
220
|
-
|
|
221
|
-
### Transport
|
|
222
|
-
|
|
223
|
-
Option A (recommended):
|
|
224
|
-
|
|
225
|
-
- Runner sends Bridge `event` frames `exec.started` / `exec.finished`.
|
|
226
|
-
- Gateway `handleBridgeEvent` maps these into `enqueueSystemEvent`.
|
|
227
|
-
|
|
228
|
-
Option B:
|
|
229
|
-
|
|
230
|
-
- Gateway `exec` tool handles lifecycle directly (synchronous only).
|
|
231
|
-
|
|
232
|
-
## Exec flows
|
|
233
|
-
|
|
234
|
-
### Sandbox host
|
|
235
|
-
|
|
236
|
-
- Existing `exec` behavior (Docker or host when unsandboxed).
|
|
237
|
-
- PTY supported in non-sandbox mode only.
|
|
238
|
-
|
|
239
|
-
### Gateway host
|
|
240
|
-
|
|
241
|
-
- Gateway process executes on its own machine.
|
|
242
|
-
- Enforces local `exec-approvals.json` (security/ask/allowlist).
|
|
243
|
-
|
|
244
|
-
### Node host
|
|
245
|
-
|
|
246
|
-
- Gateway calls `node.invoke` with `system.run`.
|
|
247
|
-
- Runner enforces local approvals.
|
|
248
|
-
- Runner returns aggregated stdout/stderr.
|
|
249
|
-
- Optional Bridge events for start/finish/deny.
|
|
250
|
-
|
|
251
|
-
## Output caps
|
|
252
|
-
|
|
253
|
-
- Cap combined stdout+stderr at **200k**; keep **tail 20k** for events.
|
|
254
|
-
- Truncate with a clear suffix (e.g., `"… (truncated)"`).
|
|
255
|
-
|
|
256
|
-
## Slash commands
|
|
257
|
-
|
|
258
|
-
- `/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>`
|
|
259
|
-
- Per-agent, per-session overrides; non-persistent unless saved via config.
|
|
260
|
-
- `/elevated on|off|ask|full` remains a shortcut for `host=gateway security=full` (with `full` skipping approvals).
|
|
261
|
-
|
|
262
|
-
## Cross-platform story
|
|
263
|
-
|
|
264
|
-
- The runner service is the portable execution target.
|
|
265
|
-
- UI is optional; if missing, `askFallback` applies.
|
|
266
|
-
- Windows/Linux support the same approvals JSON + socket protocol.
|
|
267
|
-
|
|
268
|
-
## Implementation phases
|
|
269
|
-
|
|
270
|
-
### Phase 1: config + exec routing
|
|
271
|
-
|
|
272
|
-
- Add config schema for `exec.host`, `exec.security`, `exec.ask`, `exec.node`.
|
|
273
|
-
- Update tool plumbing to respect `exec.host`.
|
|
274
|
-
- Add `/exec` slash command and keep `/elevated` alias.
|
|
275
|
-
|
|
276
|
-
### Phase 2: approvals store + gateway enforcement
|
|
277
|
-
|
|
278
|
-
- Implement `exec-approvals.json` reader/writer.
|
|
279
|
-
- Enforce allowlist + ask modes for `gateway` host.
|
|
280
|
-
- Add output caps.
|
|
281
|
-
|
|
282
|
-
### Phase 3: node runner enforcement
|
|
283
|
-
|
|
284
|
-
- Update node runner to enforce allowlist + ask.
|
|
285
|
-
- Add Unix socket prompt bridge to macOS app UI.
|
|
286
|
-
- Wire `askFallback`.
|
|
287
|
-
|
|
288
|
-
### Phase 4: events
|
|
289
|
-
|
|
290
|
-
- Add node → gateway Bridge events for exec lifecycle.
|
|
291
|
-
- Map to `enqueueSystemEvent` for agent prompts.
|
|
292
|
-
|
|
293
|
-
### Phase 5: UI polish
|
|
294
|
-
|
|
295
|
-
- Mac app: allowlist editor, per-agent switcher, ask policy UI.
|
|
296
|
-
- Node binding controls (optional).
|
|
297
|
-
|
|
298
|
-
## Testing plan
|
|
299
|
-
|
|
300
|
-
- Unit tests: allowlist matching (glob + case-insensitive).
|
|
301
|
-
- Unit tests: policy resolution precedence (tool param → agent override → global).
|
|
302
|
-
- Integration tests: node runner deny/allow/ask flows.
|
|
303
|
-
- Bridge event tests: node event → system event routing.
|
|
304
|
-
|
|
305
|
-
## Open risks
|
|
306
|
-
|
|
307
|
-
- UI unavailability: ensure `askFallback` is respected.
|
|
308
|
-
- Long-running commands: rely on timeout + output caps.
|
|
309
|
-
- Multi-node ambiguity: error unless node binding or explicit node param.
|
|
310
|
-
|
|
311
|
-
## Related docs
|
|
312
|
-
|
|
313
|
-
- [Exec tool](/tools/exec)
|
|
314
|
-
- [Exec approvals](/tools/exec-approvals)
|
|
315
|
-
- [Nodes](/nodes)
|
|
316
|
-
- [Elevated mode](/tools/elevated)
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Outbound Session Mirroring Refactor (Issue #1520)
|
|
3
|
-
description: Track outbound session mirroring refactor notes, decisions, tests, and open items.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Outbound Session Mirroring Refactor (Issue #1520)
|
|
7
|
-
|
|
8
|
-
## Status
|
|
9
|
-
|
|
10
|
-
- In progress.
|
|
11
|
-
- Core + plugin channel routing updated for outbound mirroring.
|
|
12
|
-
- Gateway send now derives target session when sessionKey is omitted.
|
|
13
|
-
|
|
14
|
-
## Context
|
|
15
|
-
|
|
16
|
-
Outbound sends were mirrored into the _current_ agent session (tool session key) rather than the target channel session. Inbound routing uses channel/peer session keys, so outbound responses landed in the wrong session and first-contact targets often lacked session entries.
|
|
17
|
-
|
|
18
|
-
## Goals
|
|
19
|
-
|
|
20
|
-
- Mirror outbound messages into the target channel session key.
|
|
21
|
-
- Create session entries on outbound when missing.
|
|
22
|
-
- Keep thread/topic scoping aligned with inbound session keys.
|
|
23
|
-
- Cover core channels plus bundled extensions.
|
|
24
|
-
|
|
25
|
-
## Implementation Summary
|
|
26
|
-
|
|
27
|
-
- New outbound session routing helper:
|
|
28
|
-
- `src/infra/outbound/outbound-session.ts`
|
|
29
|
-
- `resolveOutboundSessionRoute` builds target sessionKey using `buildAgentSessionKey` (dmScope + identityLinks).
|
|
30
|
-
- `ensureOutboundSessionEntry` writes minimal `MsgContext` via `recordSessionMetaFromInbound`.
|
|
31
|
-
- `runMessageAction` (send) derives target sessionKey and passes it to `executeSendAction` for mirroring.
|
|
32
|
-
- `message-tool` no longer mirrors directly; it only resolves agentId from the current session key.
|
|
33
|
-
- Plugin send path mirrors via `appendAssistantMessageToSessionTranscript` using the derived sessionKey.
|
|
34
|
-
- Gateway send derives a target session key when none is provided (default agent), and ensures a session entry.
|
|
35
|
-
|
|
36
|
-
## Thread/Topic Handling
|
|
37
|
-
|
|
38
|
-
- Slack: replyTo/threadId -> `resolveThreadSessionKeys` (suffix).
|
|
39
|
-
- Telegram: topic IDs map to `chatId:topic:<id>` via `buildTelegramGroupPeerId`.
|
|
40
|
-
|
|
41
|
-
## Extensions Covered
|
|
42
|
-
|
|
43
|
-
- Matrix, MS Teams, Mattermost, BlueBubbles, Nextcloud Talk, Zalo, Zalo Personal, Nostr, Tlon.
|
|
44
|
-
- Notes:
|
|
45
|
-
- Mattermost targets now strip `@` for DM session key routing.
|
|
46
|
-
- Zalo Personal uses DM peer kind for 1:1 targets (group only when `group:` is present).
|
|
47
|
-
- BlueBubbles group targets strip `chat_*` prefixes to match inbound session keys.
|
|
48
|
-
- Slack auto-thread mirroring matches channel ids case-insensitively.
|
|
49
|
-
- Gateway send lowercases provided session keys before mirroring.
|
|
50
|
-
|
|
51
|
-
## Decisions
|
|
52
|
-
|
|
53
|
-
- **Gateway send session derivation**: if `sessionKey` is provided, use it. If omitted, derive a sessionKey from target + default agent and mirror there.
|
|
54
|
-
- **Session entry creation**: always use `recordSessionMetaFromInbound` with `Provider/From/To/ChatType/AccountId/Originating*` aligned to inbound formats.
|
|
55
|
-
- **Target normalization**: outbound routing uses resolved targets (post `resolveChannelTarget`) when available.
|
|
56
|
-
- **Session key casing**: canonicalize session keys to lowercase on write and during migrations.
|
|
57
|
-
|
|
58
|
-
## Tests Added/Updated
|
|
59
|
-
|
|
60
|
-
- `src/infra/outbound/outbound-session.test.ts`
|
|
61
|
-
- Slack thread session key.
|
|
62
|
-
- Telegram topic session key.
|
|
63
|
-
- `src/agents/tools/message-tool.test.ts`
|
|
64
|
-
- Derives agentId from session key (no sessionKey passed through).
|
|
65
|
-
- `src/gateway/server-methods/send.test.ts`
|
|
66
|
-
- Derives session key when omitted and creates session entry.
|
|
67
|
-
|
|
68
|
-
## Open Items / Follow-ups
|
|
69
|
-
|
|
70
|
-
- Voice-call plugin uses custom `voice:<phone>` session keys. Outbound mapping is not standardized here; if message-tool should support voice-call sends, add explicit mapping.
|
|
71
|
-
- Confirm if any external plugin uses non-standard `From/To` formats beyond the bundled set.
|
|
72
|
-
|
|
73
|
-
## Files Touched
|
|
74
|
-
|
|
75
|
-
- `src/infra/outbound/outbound-session.ts`
|
|
76
|
-
- `src/infra/outbound/outbound-send-service.ts`
|
|
77
|
-
- `src/infra/outbound/message-action-runner.ts`
|
|
78
|
-
- `src/agents/tools/message-tool.ts`
|
|
79
|
-
- `src/gateway/server-methods/send.ts`
|
|
80
|
-
- Tests in:
|
|
81
|
-
- `src/infra/outbound/outbound-session.test.ts`
|
|
82
|
-
- `src/agents/tools/message-tool.test.ts`
|
|
83
|
-
- `src/gateway/server-methods/send.test.ts`
|