@symerian/symi 3.0.21 → 3.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/package.json +1 -1
- package/docs/.i18n/README.md +0 -31
- package/docs/.i18n/glossary.ja-JP.json +0 -14
- package/docs/.i18n/glossary.zh-CN.json +0 -210
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
- package/docs/CNAME +0 -1
- package/docs/assets/install-script.svg +0 -1
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-symi.svg +0 -60
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +0 -11
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +0 -13
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +0 -14
- package/docs/assets/sponsors/openai.svg +0 -3
- package/docs/assets/symi-logo-text-dark.png +0 -0
- package/docs/assets/symi-logo-text.png +0 -0
- package/docs/automation/auth-monitoring.md +0 -44
- package/docs/automation/cron-jobs.md +0 -540
- package/docs/automation/cron-vs-heartbeat.md +0 -286
- package/docs/automation/gmail-pubsub.md +0 -256
- package/docs/automation/hooks.md +0 -998
- package/docs/automation/poll.md +0 -61
- package/docs/automation/troubleshooting.md +0 -122
- package/docs/automation/webhook.md +0 -213
- package/docs/brave-search.md +0 -41
- package/docs/capabilities.md +0 -151
- package/docs/channels/bluebubbles.md +0 -346
- package/docs/channels/broadcast-groups.md +0 -441
- package/docs/channels/channel-routing.md +0 -112
- package/docs/channels/feishu.md +0 -586
- package/docs/channels/googlechat.md +0 -253
- package/docs/channels/grammy.md +0 -31
- package/docs/channels/group-messages.md +0 -82
- package/docs/channels/groups.md +0 -364
- package/docs/channels/imessage.md +0 -366
- package/docs/channels/index.md +0 -46
- package/docs/channels/irc.md +0 -234
- package/docs/channels/line.md +0 -186
- package/docs/channels/location.md +0 -56
- package/docs/channels/matrix.md +0 -300
- package/docs/channels/mattermost.md +0 -158
- package/docs/channels/msteams.md +0 -769
- package/docs/channels/nextcloud-talk.md +0 -138
- package/docs/channels/nostr.md +0 -233
- package/docs/channels/pairing.md +0 -100
- package/docs/channels/signal.md +0 -322
- package/docs/channels/slack.md +0 -510
- package/docs/channels/telegram.md +0 -748
- package/docs/channels/tlon.md +0 -148
- package/docs/channels/troubleshooting.md +0 -110
- package/docs/channels/twitch.md +0 -379
- package/docs/channels/whatsapp.md +0 -444
- package/docs/channels/zalo.md +0 -192
- package/docs/channels/zalouser.md +0 -140
- package/docs/ci.md +0 -50
- package/docs/cli/acp.md +0 -182
- package/docs/cli/agent.md +0 -24
- package/docs/cli/agents.md +0 -75
- package/docs/cli/approvals.md +0 -50
- package/docs/cli/browser.md +0 -107
- package/docs/cli/channels.md +0 -73
- package/docs/cli/config.md +0 -50
- package/docs/cli/configure.md +0 -32
- package/docs/cli/cron.md +0 -44
- package/docs/cli/dashboard.md +0 -16
- package/docs/cli/devices.md +0 -73
- package/docs/cli/directory.md +0 -62
- package/docs/cli/dns.md +0 -23
- package/docs/cli/docs.md +0 -15
- package/docs/cli/doctor.md +0 -41
- package/docs/cli/gateway.md +0 -202
- package/docs/cli/health.md +0 -21
- package/docs/cli/hooks.md +0 -313
- package/docs/cli/index.md +0 -1029
- package/docs/cli/logs.md +0 -28
- package/docs/cli/memory.md +0 -45
- package/docs/cli/message.md +0 -214
- package/docs/cli/models.md +0 -79
- package/docs/cli/node.md +0 -112
- package/docs/cli/nodes.md +0 -73
- package/docs/cli/onboard.md +0 -76
- package/docs/cli/pairing.md +0 -21
- package/docs/cli/plugins.md +0 -92
- package/docs/cli/reset.md +0 -17
- package/docs/cli/sandbox.md +0 -152
- package/docs/cli/security.md +0 -64
- package/docs/cli/sessions.md +0 -16
- package/docs/cli/setup.md +0 -29
- package/docs/cli/skills.md +0 -26
- package/docs/cli/status.md +0 -25
- package/docs/cli/system.md +0 -60
- package/docs/cli/tui.md +0 -23
- package/docs/cli/uninstall.md +0 -17
- package/docs/cli/update.md +0 -98
- package/docs/cli/voicecall.md +0 -34
- package/docs/cli/webhooks.md +0 -25
- package/docs/concepts/agent-loop.md +0 -148
- package/docs/concepts/agent-workspace.md +0 -234
- package/docs/concepts/agent.md +0 -123
- package/docs/concepts/architecture.md +0 -135
- package/docs/concepts/compaction.md +0 -61
- package/docs/concepts/context.md +0 -161
- package/docs/concepts/features.md +0 -51
- package/docs/concepts/markdown-formatting.md +0 -128
- package/docs/concepts/memory.md +0 -729
- package/docs/concepts/messages.md +0 -153
- package/docs/concepts/model-failover.md +0 -149
- package/docs/concepts/model-providers.md +0 -424
- package/docs/concepts/models.md +0 -208
- package/docs/concepts/multi-agent.md +0 -521
- package/docs/concepts/oauth.md +0 -145
- package/docs/concepts/presence.md +0 -102
- package/docs/concepts/queue.md +0 -86
- package/docs/concepts/retry.md +0 -64
- package/docs/concepts/session-pruning.md +0 -123
- package/docs/concepts/session-tool.md +0 -213
- package/docs/concepts/session.md +0 -199
- package/docs/concepts/sessions.md +0 -10
- package/docs/concepts/streaming.md +0 -129
- package/docs/concepts/system-prompt.md +0 -128
- package/docs/concepts/timezone.md +0 -90
- package/docs/concepts/typebox.md +0 -289
- package/docs/concepts/typing-indicators.md +0 -68
- package/docs/concepts/usage-tracking.md +0 -35
- package/docs/date-time.md +0 -127
- package/docs/debug/node-issue.md +0 -85
- package/docs/diagnostics/flags.md +0 -91
- package/docs/docs.json +0 -1849
- package/docs/experiments/onboarding-config-protocol.md +0 -40
- package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
- package/docs/experiments/plans/cron-add-hardening.md +0 -62
- package/docs/experiments/plans/group-policy-hardening.md +0 -40
- package/docs/experiments/plans/openresponses-gateway.md +0 -123
- package/docs/experiments/plans/pty-process-supervision.md +0 -192
- package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
- package/docs/experiments/plans/thread-bound-subagents.md +0 -281
- package/docs/experiments/proposals/model-config.md +0 -36
- package/docs/experiments/research/memory.md +0 -228
- package/docs/gateway/authentication.md +0 -162
- package/docs/gateway/background-process.md +0 -96
- package/docs/gateway/bonjour.md +0 -177
- package/docs/gateway/bridge-protocol.md +0 -91
- package/docs/gateway/cli-backends.md +0 -225
- package/docs/gateway/configuration-examples.md +0 -610
- package/docs/gateway/configuration-reference.md +0 -2465
- package/docs/gateway/configuration.md +0 -488
- package/docs/gateway/discovery.md +0 -123
- package/docs/gateway/doctor.md +0 -282
- package/docs/gateway/gateway-lock.md +0 -34
- package/docs/gateway/health.md +0 -35
- package/docs/gateway/heartbeat.md +0 -374
- package/docs/gateway/index.md +0 -254
- package/docs/gateway/local-models.md +0 -150
- package/docs/gateway/logging.md +0 -113
- package/docs/gateway/multiple-gateways.md +0 -112
- package/docs/gateway/network-model.md +0 -20
- package/docs/gateway/openai-http-api.md +0 -119
- package/docs/gateway/openresponses-http-api.md +0 -333
- package/docs/gateway/pairing.md +0 -99
- package/docs/gateway/protocol.md +0 -221
- package/docs/gateway/remote-gateway-readme.md +0 -158
- package/docs/gateway/remote.md +0 -131
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
- package/docs/gateway/sandboxing.md +0 -203
- package/docs/gateway/security/index.md +0 -931
- package/docs/gateway/tailscale.md +0 -132
- package/docs/gateway/tools-invoke-http-api.md +0 -110
- package/docs/gateway/troubleshooting.md +0 -317
- package/docs/gateway/trusted-proxy-auth.md +0 -270
- package/docs/glass-ui-rendering-invariants.md +0 -451
- package/docs/help/debugging.md +0 -162
- package/docs/help/environment.md +0 -107
- package/docs/help/faq.md +0 -2846
- package/docs/help/index.md +0 -21
- package/docs/help/scripts.md +0 -28
- package/docs/help/testing.md +0 -385
- package/docs/help/troubleshooting.md +0 -264
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/groups-flow.svg +0 -52
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +0 -186
- package/docs/install/ansible.md +0 -207
- package/docs/install/bun.md +0 -59
- package/docs/install/development-channels.md +0 -75
- package/docs/install/docker.md +0 -583
- package/docs/install/exe-dev.md +0 -126
- package/docs/install/fly.md +0 -472
- package/docs/install/gcp.md +0 -499
- package/docs/install/hetzner.md +0 -347
- package/docs/install/index.md +0 -218
- package/docs/install/installer.md +0 -405
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating.md +0 -192
- package/docs/install/nix.md +0 -98
- package/docs/install/node.md +0 -138
- package/docs/install/northflank.mdx +0 -49
- package/docs/install/podman.md +0 -108
- package/docs/install/railway.mdx +0 -95
- package/docs/install/render.mdx +0 -158
- package/docs/install/uninstall.md +0 -128
- package/docs/install/updating.md +0 -231
- package/docs/ja-JP/AGENTS.md +0 -37
- package/docs/ja-JP/index.md +0 -183
- package/docs/ja-JP/start/getting-started.md +0 -125
- package/docs/ja-JP/start/wizard.md +0 -77
- package/docs/logging.md +0 -350
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -54
- package/docs/nodes/audio.md +0 -133
- package/docs/nodes/camera.md +0 -156
- package/docs/nodes/images.md +0 -72
- package/docs/nodes/index.md +0 -342
- package/docs/nodes/location-command.md +0 -113
- package/docs/nodes/media-understanding.md +0 -379
- package/docs/nodes/talk.md +0 -90
- package/docs/nodes/troubleshooting.md +0 -112
- package/docs/nodes/voicewake.md +0 -65
- package/docs/perplexity.md +0 -80
- package/docs/phase-6.5-pre-flight-audit.md +0 -268
- package/docs/pi-dev.md +0 -70
- package/docs/pi.md +0 -610
- package/docs/platforms/android.md +0 -151
- package/docs/platforms/digitalocean.md +0 -265
- package/docs/platforms/index.md +0 -53
- package/docs/platforms/ios.md +0 -108
- package/docs/platforms/linux.md +0 -94
- package/docs/platforms/mac/bundled-gateway.md +0 -73
- package/docs/platforms/mac/canvas.md +0 -125
- package/docs/platforms/mac/child-process.md +0 -69
- package/docs/platforms/mac/dev-setup.md +0 -104
- package/docs/platforms/mac/health.md +0 -34
- package/docs/platforms/mac/icon.md +0 -31
- package/docs/platforms/mac/logging.md +0 -57
- package/docs/platforms/mac/menu-bar.md +0 -81
- package/docs/platforms/mac/peekaboo.md +0 -65
- package/docs/platforms/mac/permissions.md +0 -50
- package/docs/platforms/mac/release.md +0 -85
- package/docs/platforms/mac/remote.md +0 -84
- package/docs/platforms/mac/signing.md +0 -47
- package/docs/platforms/mac/skills.md +0 -33
- package/docs/platforms/mac/voice-overlay.md +0 -60
- package/docs/platforms/mac/voicewake.md +0 -66
- package/docs/platforms/mac/webchat.md +0 -43
- package/docs/platforms/mac/xpc.md +0 -61
- package/docs/platforms/macos.md +0 -204
- package/docs/platforms/oracle.md +0 -303
- package/docs/platforms/raspberry-pi.md +0 -358
- package/docs/platforms/windows.md +0 -159
- package/docs/plugins/agent-tools.md +0 -99
- package/docs/plugins/community.md +0 -44
- package/docs/plugins/manifest.md +0 -71
- package/docs/plugins/voice-call.md +0 -322
- package/docs/plugins/zalouser.md +0 -81
- package/docs/prose.md +0 -134
- package/docs/providers/anthropic.md +0 -174
- package/docs/providers/bedrock.md +0 -176
- package/docs/providers/claude-max-api-proxy.md +0 -148
- package/docs/providers/cloudflare-ai-gateway.md +0 -71
- package/docs/providers/deepgram.md +0 -93
- package/docs/providers/github-copilot.md +0 -72
- package/docs/providers/glm.md +0 -33
- package/docs/providers/huggingface.md +0 -209
- package/docs/providers/index.md +0 -67
- package/docs/providers/litellm.md +0 -153
- package/docs/providers/minimax.md +0 -208
- package/docs/providers/models.md +0 -52
- package/docs/providers/moonshot.md +0 -142
- package/docs/providers/nvidia.md +0 -55
- package/docs/providers/ollama.md +0 -250
- package/docs/providers/openai.md +0 -62
- package/docs/providers/opencode.md +0 -36
- package/docs/providers/openrouter.md +0 -37
- package/docs/providers/qianfan.md +0 -38
- package/docs/providers/qwen.md +0 -53
- package/docs/providers/synthetic.md +0 -99
- package/docs/providers/together.md +0 -65
- package/docs/providers/venice.md +0 -267
- package/docs/providers/vercel-ai-gateway.md +0 -50
- package/docs/providers/vllm.md +0 -92
- package/docs/providers/xiaomi.md +0 -64
- package/docs/providers/zai.md +0 -38
- package/docs/refactor/exec-host.md +0 -316
- package/docs/refactor/outbound-session-mirroring.md +0 -83
- package/docs/refactor/plugin-sdk.md +0 -214
- package/docs/refactor/strict-config.md +0 -93
- package/docs/refactor/syminet.md +0 -417
- package/docs/reference/AGENTS.default.md +0 -123
- package/docs/reference/RELEASING.md +0 -120
- package/docs/reference/api-usage-costs.md +0 -138
- package/docs/reference/credits.md +0 -28
- package/docs/reference/device-models.md +0 -47
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/session-management-compaction.md +0 -284
- package/docs/reference/test.md +0 -51
- package/docs/reference/token-use.md +0 -136
- package/docs/reference/transcript-hygiene.md +0 -151
- package/docs/reference/wizard.md +0 -265
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
- package/docs/security/README.md +0 -16
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
- package/docs/security/formal-verification.md +0 -164
- package/docs/start/bootstrapping.md +0 -41
- package/docs/start/docs-directory.md +0 -63
- package/docs/start/getting-started.md +0 -135
- package/docs/start/hubs.md +0 -196
- package/docs/start/lore.md +0 -216
- package/docs/start/onboarding-overview.md +0 -51
- package/docs/start/onboarding.md +0 -81
- package/docs/start/quickstart.md +0 -22
- package/docs/start/setup.md +0 -160
- package/docs/start/showcase.md +0 -414
- package/docs/start/symi.md +0 -211
- package/docs/start/wizard-cli-automation.md +0 -158
- package/docs/start/wizard-cli-reference.md +0 -255
- package/docs/start/wizard.md +0 -109
- package/docs/style.css +0 -37
- package/docs/tools/agent-send.md +0 -52
- package/docs/tools/apply-patch.md +0 -51
- package/docs/tools/browser-linux-troubleshooting.md +0 -139
- package/docs/tools/browser-login.md +0 -67
- package/docs/tools/browser.md +0 -587
- package/docs/tools/chrome-extension.md +0 -183
- package/docs/tools/creating-skills.md +0 -54
- package/docs/tools/elevated.md +0 -55
- package/docs/tools/exec-approvals.md +0 -261
- package/docs/tools/exec.md +0 -184
- package/docs/tools/firecrawl.md +0 -61
- package/docs/tools/index.md +0 -540
- package/docs/tools/llm-task.md +0 -115
- package/docs/tools/loop-detection.md +0 -98
- package/docs/tools/multi-agent-sandbox-tools.md +0 -396
- package/docs/tools/pipeline.md +0 -340
- package/docs/tools/plugin.md +0 -687
- package/docs/tools/reactions.md +0 -21
- package/docs/tools/skills-config.md +0 -76
- package/docs/tools/skills.md +0 -300
- package/docs/tools/slash-commands.md +0 -202
- package/docs/tools/subagents.md +0 -232
- package/docs/tools/symihub.md +0 -256
- package/docs/tools/thinking.md +0 -75
- package/docs/tools/web.md +0 -265
- package/docs/tts.md +0 -398
- package/docs/vps.md +0 -43
- package/docs/web/control-ui.md +0 -247
- package/docs/web/dashboard.md +0 -46
- package/docs/web/index.md +0 -118
- package/docs/web/tui.md +0 -162
- package/docs/web/webchat.md +0 -53
- package/docs/whatsapp-symi-ai-zh.jpg +0 -0
- package/docs/whatsapp-symi.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +0 -59
- package/docs/zh-CN/automation/auth-monitoring.md +0 -47
- package/docs/zh-CN/automation/cron-jobs.md +0 -422
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
- package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
- package/docs/zh-CN/automation/hooks.md +0 -881
- package/docs/zh-CN/automation/poll.md +0 -68
- package/docs/zh-CN/automation/troubleshooting.md +0 -8
- package/docs/zh-CN/automation/webhook.md +0 -161
- package/docs/zh-CN/brave-search.md +0 -48
- package/docs/zh-CN/channels/bluebubbles.md +0 -271
- package/docs/zh-CN/channels/broadcast-groups.md +0 -448
- package/docs/zh-CN/channels/channel-routing.md +0 -112
- package/docs/zh-CN/channels/feishu.md +0 -629
- package/docs/zh-CN/channels/googlechat.md +0 -257
- package/docs/zh-CN/channels/grammy.md +0 -38
- package/docs/zh-CN/channels/group-messages.md +0 -89
- package/docs/zh-CN/channels/groups.md +0 -369
- package/docs/zh-CN/channels/imessage.md +0 -300
- package/docs/zh-CN/channels/index.md +0 -52
- package/docs/zh-CN/channels/line.md +0 -180
- package/docs/zh-CN/channels/location.md +0 -63
- package/docs/zh-CN/channels/matrix.md +0 -221
- package/docs/zh-CN/channels/mattermost.md +0 -144
- package/docs/zh-CN/channels/msteams.md +0 -773
- package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
- package/docs/zh-CN/channels/nostr.md +0 -240
- package/docs/zh-CN/channels/pairing.md +0 -86
- package/docs/zh-CN/channels/signal.md +0 -207
- package/docs/zh-CN/channels/slack.md +0 -529
- package/docs/zh-CN/channels/telegram.md +0 -748
- package/docs/zh-CN/channels/tlon.md +0 -136
- package/docs/zh-CN/channels/troubleshooting.md +0 -34
- package/docs/zh-CN/channels/twitch.md +0 -385
- package/docs/zh-CN/channels/whatsapp.md +0 -411
- package/docs/zh-CN/channels/zalo.md +0 -196
- package/docs/zh-CN/channels/zalouser.md +0 -147
- package/docs/zh-CN/cli/acp.md +0 -173
- package/docs/zh-CN/cli/agent.md +0 -30
- package/docs/zh-CN/cli/agents.md +0 -82
- package/docs/zh-CN/cli/approvals.md +0 -57
- package/docs/zh-CN/cli/browser.md +0 -114
- package/docs/zh-CN/cli/channels.md +0 -80
- package/docs/zh-CN/cli/config.md +0 -57
- package/docs/zh-CN/cli/configure.md +0 -37
- package/docs/zh-CN/cli/cron.md +0 -43
- package/docs/zh-CN/cli/dashboard.md +0 -23
- package/docs/zh-CN/cli/devices.md +0 -74
- package/docs/zh-CN/cli/directory.md +0 -69
- package/docs/zh-CN/cli/dns.md +0 -30
- package/docs/zh-CN/cli/docs.md +0 -22
- package/docs/zh-CN/cli/doctor.md +0 -48
- package/docs/zh-CN/cli/gateway.md +0 -206
- package/docs/zh-CN/cli/health.md +0 -28
- package/docs/zh-CN/cli/hooks.md +0 -298
- package/docs/zh-CN/cli/index.md +0 -1025
- package/docs/zh-CN/cli/logs.md +0 -31
- package/docs/zh-CN/cli/memory.md +0 -52
- package/docs/zh-CN/cli/message.md +0 -205
- package/docs/zh-CN/cli/models.md +0 -85
- package/docs/zh-CN/cli/node.md +0 -115
- package/docs/zh-CN/cli/nodes.md +0 -80
- package/docs/zh-CN/cli/onboard.md +0 -36
- package/docs/zh-CN/cli/pairing.md +0 -28
- package/docs/zh-CN/cli/plugins.md +0 -66
- package/docs/zh-CN/cli/reset.md +0 -24
- package/docs/zh-CN/cli/sandbox.md +0 -158
- package/docs/zh-CN/cli/security.md +0 -33
- package/docs/zh-CN/cli/sessions.md +0 -23
- package/docs/zh-CN/cli/setup.md +0 -36
- package/docs/zh-CN/cli/skills.md +0 -33
- package/docs/zh-CN/cli/status.md +0 -32
- package/docs/zh-CN/cli/system.md +0 -63
- package/docs/zh-CN/cli/tui.md +0 -30
- package/docs/zh-CN/cli/uninstall.md +0 -24
- package/docs/zh-CN/cli/update.md +0 -101
- package/docs/zh-CN/cli/voicecall.md +0 -41
- package/docs/zh-CN/cli/webhooks.md +0 -32
- package/docs/zh-CN/concepts/agent-loop.md +0 -146
- package/docs/zh-CN/concepts/agent-workspace.md +0 -219
- package/docs/zh-CN/concepts/agent.md +0 -115
- package/docs/zh-CN/concepts/architecture.md +0 -122
- package/docs/zh-CN/concepts/compaction.md +0 -67
- package/docs/zh-CN/concepts/context.md +0 -168
- package/docs/zh-CN/concepts/features.md +0 -57
- package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
- package/docs/zh-CN/concepts/memory.md +0 -412
- package/docs/zh-CN/concepts/messages.md +0 -140
- package/docs/zh-CN/concepts/model-failover.md +0 -145
- package/docs/zh-CN/concepts/model-providers.md +0 -320
- package/docs/zh-CN/concepts/models.md +0 -196
- package/docs/zh-CN/concepts/multi-agent.md +0 -371
- package/docs/zh-CN/concepts/oauth.md +0 -151
- package/docs/zh-CN/concepts/presence.md +0 -99
- package/docs/zh-CN/concepts/queue.md +0 -91
- package/docs/zh-CN/concepts/retry.md +0 -71
- package/docs/zh-CN/concepts/session-pruning.md +0 -129
- package/docs/zh-CN/concepts/session-tool.md +0 -198
- package/docs/zh-CN/concepts/session.md +0 -158
- package/docs/zh-CN/concepts/sessions.md +0 -17
- package/docs/zh-CN/concepts/streaming.md +0 -131
- package/docs/zh-CN/concepts/system-prompt.md +0 -99
- package/docs/zh-CN/concepts/timezone.md +0 -94
- package/docs/zh-CN/concepts/typebox.md +0 -284
- package/docs/zh-CN/concepts/typing-indicators.md +0 -74
- package/docs/zh-CN/concepts/usage-tracking.md +0 -42
- package/docs/zh-CN/date-time.md +0 -128
- package/docs/zh-CN/debug/node-issue.md +0 -90
- package/docs/zh-CN/diagnostics/flags.md +0 -98
- package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
- package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
- package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
- package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
- package/docs/zh-CN/experiments/research/memory.md +0 -235
- package/docs/zh-CN/gateway/authentication.md +0 -142
- package/docs/zh-CN/gateway/background-process.md +0 -100
- package/docs/zh-CN/gateway/bonjour.md +0 -174
- package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
- package/docs/zh-CN/gateway/cli-backends.md +0 -213
- package/docs/zh-CN/gateway/configuration-examples.md +0 -580
- package/docs/zh-CN/gateway/configuration.md +0 -3284
- package/docs/zh-CN/gateway/discovery.md +0 -123
- package/docs/zh-CN/gateway/doctor.md +0 -238
- package/docs/zh-CN/gateway/gateway-lock.md +0 -41
- package/docs/zh-CN/gateway/health.md +0 -42
- package/docs/zh-CN/gateway/heartbeat.md +0 -272
- package/docs/zh-CN/gateway/index.md +0 -335
- package/docs/zh-CN/gateway/local-models.md +0 -157
- package/docs/zh-CN/gateway/logging.md +0 -114
- package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
- package/docs/zh-CN/gateway/network-model.md +0 -23
- package/docs/zh-CN/gateway/openai-http-api.md +0 -125
- package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
- package/docs/zh-CN/gateway/pairing.md +0 -99
- package/docs/zh-CN/gateway/protocol.md +0 -220
- package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
- package/docs/zh-CN/gateway/remote.md +0 -133
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
- package/docs/zh-CN/gateway/sandboxing.md +0 -188
- package/docs/zh-CN/gateway/security/index.md +0 -772
- package/docs/zh-CN/gateway/tailscale.md +0 -124
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
- package/docs/zh-CN/gateway/troubleshooting.md +0 -758
- package/docs/zh-CN/help/debugging.md +0 -160
- package/docs/zh-CN/help/environment.md +0 -88
- package/docs/zh-CN/help/faq.md +0 -2613
- package/docs/zh-CN/help/index.md +0 -28
- package/docs/zh-CN/help/scripts.md +0 -35
- package/docs/zh-CN/help/testing.md +0 -375
- package/docs/zh-CN/help/troubleshooting.md +0 -104
- package/docs/zh-CN/index.md +0 -183
- package/docs/zh-CN/install/ansible.md +0 -214
- package/docs/zh-CN/install/bun.md +0 -65
- package/docs/zh-CN/install/development-channels.md +0 -81
- package/docs/zh-CN/install/docker.md +0 -525
- package/docs/zh-CN/install/exe-dev.md +0 -127
- package/docs/zh-CN/install/fly.md +0 -476
- package/docs/zh-CN/install/gcp.md +0 -509
- package/docs/zh-CN/install/hetzner.md +0 -336
- package/docs/zh-CN/install/index.md +0 -193
- package/docs/zh-CN/install/installer.md +0 -128
- package/docs/zh-CN/install/macos-vm.md +0 -288
- package/docs/zh-CN/install/migrating.md +0 -199
- package/docs/zh-CN/install/nix.md +0 -99
- package/docs/zh-CN/install/node.md +0 -8
- package/docs/zh-CN/install/northflank.mdx +0 -56
- package/docs/zh-CN/install/railway.mdx +0 -102
- package/docs/zh-CN/install/render.mdx +0 -168
- package/docs/zh-CN/install/uninstall.md +0 -135
- package/docs/zh-CN/install/updating.md +0 -233
- package/docs/zh-CN/logging.md +0 -329
- package/docs/zh-CN/network.md +0 -59
- package/docs/zh-CN/nodes/audio.md +0 -120
- package/docs/zh-CN/nodes/camera.md +0 -162
- package/docs/zh-CN/nodes/images.md +0 -79
- package/docs/zh-CN/nodes/index.md +0 -348
- package/docs/zh-CN/nodes/location-command.md +0 -120
- package/docs/zh-CN/nodes/media-understanding.md +0 -380
- package/docs/zh-CN/nodes/talk.md +0 -97
- package/docs/zh-CN/nodes/troubleshooting.md +0 -8
- package/docs/zh-CN/nodes/voicewake.md +0 -72
- package/docs/zh-CN/perplexity.md +0 -84
- package/docs/zh-CN/pi-dev.md +0 -77
- package/docs/zh-CN/pi.md +0 -617
- package/docs/zh-CN/platforms/android.md +0 -155
- package/docs/zh-CN/platforms/digitalocean.md +0 -268
- package/docs/zh-CN/platforms/index.md +0 -60
- package/docs/zh-CN/platforms/ios.md +0 -114
- package/docs/zh-CN/platforms/linux.md +0 -101
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
- package/docs/zh-CN/platforms/mac/canvas.md +0 -128
- package/docs/zh-CN/platforms/mac/child-process.md +0 -73
- package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
- package/docs/zh-CN/platforms/mac/health.md +0 -41
- package/docs/zh-CN/platforms/mac/icon.md +0 -38
- package/docs/zh-CN/platforms/mac/logging.md +0 -64
- package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
- package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
- package/docs/zh-CN/platforms/mac/permissions.md +0 -46
- package/docs/zh-CN/platforms/mac/release.md +0 -92
- package/docs/zh-CN/platforms/mac/remote.md +0 -90
- package/docs/zh-CN/platforms/mac/signing.md +0 -54
- package/docs/zh-CN/platforms/mac/skills.md +0 -40
- package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
- package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
- package/docs/zh-CN/platforms/mac/webchat.md +0 -43
- package/docs/zh-CN/platforms/mac/xpc.md +0 -68
- package/docs/zh-CN/platforms/macos.md +0 -193
- package/docs/zh-CN/platforms/oracle.md +0 -310
- package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
- package/docs/zh-CN/platforms/windows.md +0 -156
- package/docs/zh-CN/plugins/agent-tools.md +0 -99
- package/docs/zh-CN/plugins/manifest.md +0 -68
- package/docs/zh-CN/plugins/voice-call.md +0 -250
- package/docs/zh-CN/plugins/zalouser.md +0 -88
- package/docs/zh-CN/prose.md +0 -141
- package/docs/zh-CN/providers/anthropic.md +0 -159
- package/docs/zh-CN/providers/bedrock.md +0 -170
- package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
- package/docs/zh-CN/providers/deepgram.md +0 -97
- package/docs/zh-CN/providers/github-copilot.md +0 -67
- package/docs/zh-CN/providers/glm.md +0 -39
- package/docs/zh-CN/providers/index.md +0 -66
- package/docs/zh-CN/providers/minimax.md +0 -206
- package/docs/zh-CN/providers/models.md +0 -55
- package/docs/zh-CN/providers/moonshot.md +0 -145
- package/docs/zh-CN/providers/ollama.md +0 -230
- package/docs/zh-CN/providers/openai.md +0 -68
- package/docs/zh-CN/providers/opencode.md +0 -41
- package/docs/zh-CN/providers/openrouter.md +0 -43
- package/docs/zh-CN/providers/qianfan.md +0 -8
- package/docs/zh-CN/providers/qwen.md +0 -55
- package/docs/zh-CN/providers/synthetic.md +0 -102
- package/docs/zh-CN/providers/venice.md +0 -274
- package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
- package/docs/zh-CN/providers/xiaomi.md +0 -68
- package/docs/zh-CN/providers/zai.md +0 -41
- package/docs/zh-CN/refactor/exec-host.md +0 -323
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
- package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
- package/docs/zh-CN/refactor/strict-config.md +0 -100
- package/docs/zh-CN/refactor/syminet.md +0 -424
- package/docs/zh-CN/reference/AGENTS.default.md +0 -130
- package/docs/zh-CN/reference/RELEASING.md +0 -122
- package/docs/zh-CN/reference/api-usage-costs.md +0 -136
- package/docs/zh-CN/reference/credits.md +0 -34
- package/docs/zh-CN/reference/device-models.md +0 -54
- package/docs/zh-CN/reference/rpc.md +0 -48
- package/docs/zh-CN/reference/session-management-compaction.md +0 -286
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
- package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
- package/docs/zh-CN/reference/templates/BOOT.md +0 -17
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
- package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
- package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
- package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
- package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
- package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
- package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
- package/docs/zh-CN/reference/templates/USER.md +0 -30
- package/docs/zh-CN/reference/test.md +0 -57
- package/docs/zh-CN/reference/token-use.md +0 -119
- package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
- package/docs/zh-CN/reference/wizard.md +0 -9
- package/docs/zh-CN/security/formal-verification.md +0 -171
- package/docs/zh-CN/start/bootstrapping.md +0 -9
- package/docs/zh-CN/start/docs-directory.md +0 -69
- package/docs/zh-CN/start/getting-started.md +0 -201
- package/docs/zh-CN/start/hubs.md +0 -199
- package/docs/zh-CN/start/lore.md +0 -223
- package/docs/zh-CN/start/onboarding.md +0 -105
- package/docs/zh-CN/start/quickstart.md +0 -88
- package/docs/zh-CN/start/setup.md +0 -151
- package/docs/zh-CN/start/showcase.md +0 -421
- package/docs/zh-CN/start/symi.md +0 -244
- package/docs/zh-CN/start/wizard.md +0 -326
- package/docs/zh-CN/tools/agent-send.md +0 -58
- package/docs/zh-CN/tools/apply-patch.md +0 -57
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
- package/docs/zh-CN/tools/browser-login.md +0 -75
- package/docs/zh-CN/tools/browser.md +0 -553
- package/docs/zh-CN/tools/chrome-extension.md +0 -183
- package/docs/zh-CN/tools/creating-skills.md +0 -61
- package/docs/zh-CN/tools/elevated.md +0 -62
- package/docs/zh-CN/tools/exec-approvals.md +0 -233
- package/docs/zh-CN/tools/exec.md +0 -169
- package/docs/zh-CN/tools/firecrawl.md +0 -68
- package/docs/zh-CN/tools/index.md +0 -508
- package/docs/zh-CN/tools/llm-task.md +0 -117
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
- package/docs/zh-CN/tools/pipeline.md +0 -349
- package/docs/zh-CN/tools/plugin.md +0 -639
- package/docs/zh-CN/tools/reactions.md +0 -28
- package/docs/zh-CN/tools/skills-config.md +0 -78
- package/docs/zh-CN/tools/skills.md +0 -279
- package/docs/zh-CN/tools/slash-commands.md +0 -196
- package/docs/zh-CN/tools/subagents.md +0 -167
- package/docs/zh-CN/tools/symihub.md +0 -209
- package/docs/zh-CN/tools/thinking.md +0 -80
- package/docs/zh-CN/tools/web.md +0 -257
- package/docs/zh-CN/tts.md +0 -373
- package/docs/zh-CN/vps.md +0 -47
- package/docs/zh-CN/web/control-ui.md +0 -190
- package/docs/zh-CN/web/dashboard.md +0 -53
- package/docs/zh-CN/web/index.md +0 -118
- package/docs/zh-CN/web/tui.md +0 -166
- package/docs/zh-CN/web/webchat.md +0 -56
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "How Symi builds prompt context and reports token usage + costs"
|
|
3
|
-
read_when:
|
|
4
|
-
- Explaining token usage, costs, or context windows
|
|
5
|
-
- Debugging context growth or compaction behavior
|
|
6
|
-
title: "Token Use and Costs"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Token use & costs
|
|
10
|
-
|
|
11
|
-
Symi tracks **tokens**, not characters. Tokens are model-specific, but most
|
|
12
|
-
OpenAI-style models average ~4 characters per token for English text.
|
|
13
|
-
|
|
14
|
-
## How the system prompt is built
|
|
15
|
-
|
|
16
|
-
Symi assembles its own system prompt on every run. It includes:
|
|
17
|
-
|
|
18
|
-
- Tool list + short descriptions
|
|
19
|
-
- Skills list (only metadata; instructions are loaded on demand with `read`)
|
|
20
|
-
- Self-update instructions
|
|
21
|
-
- Workspace + bootstrap files (`AGENTS.md`, `SYMICORE.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `SYMIPULSE.md`, `BOOTSTRAP.md` when new, plus `MEMORY.md` and/or `memory.md` when present). Large files are truncated by `agents.defaults.bootstrapMaxChars` (default: 20000), and total bootstrap injection is capped by `agents.defaults.bootstrapTotalMaxChars` (default: 150000). `memory/*.md` files are on-demand via memory tools and are not auto-injected.
|
|
22
|
-
- Time (UTC + user timezone)
|
|
23
|
-
- Reply tags + heartbeat behavior
|
|
24
|
-
- Runtime metadata (host/OS/model/thinking)
|
|
25
|
-
|
|
26
|
-
See the full breakdown in [System Prompt](/concepts/system-prompt).
|
|
27
|
-
|
|
28
|
-
## What counts in the context window
|
|
29
|
-
|
|
30
|
-
Everything the model receives counts toward the context limit:
|
|
31
|
-
|
|
32
|
-
- System prompt (all sections listed above)
|
|
33
|
-
- Conversation history (user + assistant messages)
|
|
34
|
-
- Tool calls and tool results
|
|
35
|
-
- Attachments/transcripts (images, audio, files)
|
|
36
|
-
- Compaction summaries and pruning artifacts
|
|
37
|
-
- Provider wrappers or safety headers (not visible, but still counted)
|
|
38
|
-
|
|
39
|
-
For images, Symi downscales transcript/tool image payloads before provider calls.
|
|
40
|
-
Use `agents.defaults.imageMaxDimensionPx` (default: `1200`) to tune this:
|
|
41
|
-
|
|
42
|
-
- Lower values usually reduce vision-token usage and payload size.
|
|
43
|
-
- Higher values preserve more visual detail for OCR/UI-heavy screenshots.
|
|
44
|
-
|
|
45
|
-
For a practical breakdown (per injected file, tools, skills, and system prompt size), use `/context list` or `/context detail`. See [Context](/concepts/context).
|
|
46
|
-
|
|
47
|
-
## How to see current token usage
|
|
48
|
-
|
|
49
|
-
Use these in chat:
|
|
50
|
-
|
|
51
|
-
- `/status` → **emoji‑rich status card** with the session model, context usage,
|
|
52
|
-
last response input/output tokens, and **estimated cost** (API key only).
|
|
53
|
-
- `/usage off|tokens|full` → appends a **per-response usage footer** to every reply.
|
|
54
|
-
- Persists per session (stored as `responseUsage`).
|
|
55
|
-
- OAuth auth **hides cost** (tokens only).
|
|
56
|
-
- `/usage cost` → shows a local cost summary from Symi session logs.
|
|
57
|
-
|
|
58
|
-
Other surfaces:
|
|
59
|
-
|
|
60
|
-
- **TUI/Web TUI:** `/status` + `/usage` are supported.
|
|
61
|
-
- **CLI:** `symi status --usage` and `symi channels list` show
|
|
62
|
-
provider quota windows (not per-response costs).
|
|
63
|
-
|
|
64
|
-
## Cost estimation (when shown)
|
|
65
|
-
|
|
66
|
-
Costs are estimated from your model pricing config:
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
models.providers.<provider>.models[].cost
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
These are **USD per 1M tokens** for `input`, `output`, `cacheRead`, and
|
|
73
|
-
`cacheWrite`. If pricing is missing, Symi shows tokens only. OAuth tokens
|
|
74
|
-
never show dollar cost.
|
|
75
|
-
|
|
76
|
-
## Cache TTL and pruning impact
|
|
77
|
-
|
|
78
|
-
Provider prompt caching only applies within the cache TTL window. Symi can
|
|
79
|
-
optionally run **cache-ttl pruning**: it prunes the session once the cache TTL
|
|
80
|
-
has expired, then resets the cache window so subsequent requests can re-use the
|
|
81
|
-
freshly cached context instead of re-caching the full history. This keeps cache
|
|
82
|
-
write costs lower when a session goes idle past the TTL.
|
|
83
|
-
|
|
84
|
-
Configure it in [Gateway configuration](/gateway/configuration) and see the
|
|
85
|
-
behavior details in [Session pruning](/concepts/session-pruning).
|
|
86
|
-
|
|
87
|
-
Heartbeat can keep the cache **warm** across idle gaps. If your model cache TTL
|
|
88
|
-
is `1h`, setting the heartbeat interval just under that (e.g., `55m`) can avoid
|
|
89
|
-
re-caching the full prompt, reducing cache write costs.
|
|
90
|
-
|
|
91
|
-
For Anthropic API pricing, cache reads are significantly cheaper than input
|
|
92
|
-
tokens, while cache writes are billed at a higher multiplier. See Anthropic’s
|
|
93
|
-
prompt caching pricing for the latest rates and TTL multipliers:
|
|
94
|
-
[https://docs.anthropic.com/docs/build-with-claude/prompt-caching](https://docs.anthropic.com/docs/build-with-claude/prompt-caching)
|
|
95
|
-
|
|
96
|
-
### Example: keep 1h cache warm with heartbeat
|
|
97
|
-
|
|
98
|
-
```yaml
|
|
99
|
-
agents:
|
|
100
|
-
defaults:
|
|
101
|
-
model:
|
|
102
|
-
primary: "anthropic/claude-opus-4-6"
|
|
103
|
-
models:
|
|
104
|
-
"anthropic/claude-opus-4-6":
|
|
105
|
-
params:
|
|
106
|
-
cacheRetention: "long"
|
|
107
|
-
heartbeat:
|
|
108
|
-
every: "55m"
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Example: enable Anthropic 1M context beta header
|
|
112
|
-
|
|
113
|
-
Anthropic's 1M context window is currently beta-gated. Symi can inject the
|
|
114
|
-
required `anthropic-beta` value when you enable `context1m` on supported Opus
|
|
115
|
-
or Sonnet models.
|
|
116
|
-
|
|
117
|
-
```yaml
|
|
118
|
-
agents:
|
|
119
|
-
defaults:
|
|
120
|
-
models:
|
|
121
|
-
"anthropic/claude-opus-4-6":
|
|
122
|
-
params:
|
|
123
|
-
context1m: true
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
This maps to Anthropic's `context-1m-2025-08-07` beta header.
|
|
127
|
-
|
|
128
|
-
## Tips for reducing token pressure
|
|
129
|
-
|
|
130
|
-
- Use `/compact` to summarize long sessions.
|
|
131
|
-
- Trim large tool outputs in your workflows.
|
|
132
|
-
- Lower `agents.defaults.imageMaxDimensionPx` for screenshot-heavy sessions.
|
|
133
|
-
- Keep skill descriptions short (skill list is injected into the prompt).
|
|
134
|
-
- Prefer smaller models for verbose, exploratory work.
|
|
135
|
-
|
|
136
|
-
See [Skills](/tools/skills) for the exact skill list overhead formula.
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Reference: provider-specific transcript sanitization and repair rules"
|
|
3
|
-
read_when:
|
|
4
|
-
- You are debugging provider request rejections tied to transcript shape
|
|
5
|
-
- You are changing transcript sanitization or tool-call repair logic
|
|
6
|
-
- You are investigating tool-call id mismatches across providers
|
|
7
|
-
title: "Transcript Hygiene"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Transcript Hygiene (Provider Fixups)
|
|
11
|
-
|
|
12
|
-
This document describes **provider-specific fixes** applied to transcripts before a run
|
|
13
|
-
(building model context). These are **in-memory** adjustments used to satisfy strict
|
|
14
|
-
provider requirements. These hygiene steps do **not** rewrite the stored JSONL transcript
|
|
15
|
-
on disk; however, a separate session-file repair pass may rewrite malformed JSONL files
|
|
16
|
-
by dropping invalid lines before the session is loaded. When a repair occurs, the original
|
|
17
|
-
file is backed up alongside the session file.
|
|
18
|
-
|
|
19
|
-
Scope includes:
|
|
20
|
-
|
|
21
|
-
- Tool call id sanitization
|
|
22
|
-
- Tool call input validation
|
|
23
|
-
- Tool result pairing repair
|
|
24
|
-
- Turn validation / ordering
|
|
25
|
-
- Thought signature cleanup
|
|
26
|
-
- Image payload sanitization
|
|
27
|
-
- User-input provenance tagging (for inter-session routed prompts)
|
|
28
|
-
|
|
29
|
-
If you need transcript storage details, see:
|
|
30
|
-
|
|
31
|
-
- [/reference/session-management-compaction](/reference/session-management-compaction)
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Where this runs
|
|
36
|
-
|
|
37
|
-
All transcript hygiene is centralized in the embedded runner:
|
|
38
|
-
|
|
39
|
-
- Policy selection: `src/agents/transcript-policy.ts`
|
|
40
|
-
- Sanitization/repair application: `sanitizeSessionHistory` in `src/agents/pi-embedded-runner/google.ts`
|
|
41
|
-
|
|
42
|
-
The policy uses `provider`, `modelApi`, and `modelId` to decide what to apply.
|
|
43
|
-
|
|
44
|
-
Separate from transcript hygiene, session files are repaired (if needed) before load:
|
|
45
|
-
|
|
46
|
-
- `repairSessionFileIfNeeded` in `src/agents/session-file-repair.ts`
|
|
47
|
-
- Called from `run/attempt.ts` and `compact.ts` (embedded runner)
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Global rule: image sanitization
|
|
52
|
-
|
|
53
|
-
Image payloads are always sanitized to prevent provider-side rejection due to size
|
|
54
|
-
limits (downscale/recompress oversized base64 images).
|
|
55
|
-
|
|
56
|
-
This also helps control image-driven token pressure for vision-capable models.
|
|
57
|
-
Lower max dimensions generally reduce token usage; higher dimensions preserve detail.
|
|
58
|
-
|
|
59
|
-
Implementation:
|
|
60
|
-
|
|
61
|
-
- `sanitizeSessionMessagesImages` in `src/agents/pi-embedded-helpers/images.ts`
|
|
62
|
-
- `sanitizeContentBlocksImages` in `src/agents/tool-images.ts`
|
|
63
|
-
- Max image side is configurable via `agents.defaults.imageMaxDimensionPx` (default: `1200`).
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Global rule: malformed tool calls
|
|
68
|
-
|
|
69
|
-
Assistant tool-call blocks that are missing both `input` and `arguments` are dropped
|
|
70
|
-
before model context is built. This prevents provider rejections from partially
|
|
71
|
-
persisted tool calls (for example, after a rate limit failure).
|
|
72
|
-
|
|
73
|
-
Implementation:
|
|
74
|
-
|
|
75
|
-
- `sanitizeToolCallInputs` in `src/agents/session-transcript-repair.ts`
|
|
76
|
-
- Applied in `sanitizeSessionHistory` in `src/agents/pi-embedded-runner/google.ts`
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Global rule: inter-session input provenance
|
|
81
|
-
|
|
82
|
-
When an agent sends a prompt into another session via `sessions_send` (including
|
|
83
|
-
agent-to-agent reply/announce steps), Symi persists the created user turn with:
|
|
84
|
-
|
|
85
|
-
- `message.provenance.kind = "inter_session"`
|
|
86
|
-
|
|
87
|
-
This metadata is written at transcript append time and does not change role
|
|
88
|
-
(`role: "user"` remains for provider compatibility). Transcript readers can use
|
|
89
|
-
this to avoid treating routed internal prompts as end-user-authored instructions.
|
|
90
|
-
|
|
91
|
-
During context rebuild, Symi also prepends a short `[Inter-session message]`
|
|
92
|
-
marker to those user turns in-memory so the model can distinguish them from
|
|
93
|
-
external end-user instructions.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Provider matrix (current behavior)
|
|
98
|
-
|
|
99
|
-
**OpenAI / OpenAI Codex**
|
|
100
|
-
|
|
101
|
-
- Image sanitization only.
|
|
102
|
-
- Drop orphaned reasoning signatures (standalone reasoning items without a following content block) for OpenAI Responses/Codex transcripts.
|
|
103
|
-
- No tool call id sanitization.
|
|
104
|
-
- No tool result pairing repair.
|
|
105
|
-
- No turn validation or reordering.
|
|
106
|
-
- No synthetic tool results.
|
|
107
|
-
- No thought signature stripping.
|
|
108
|
-
|
|
109
|
-
**Google (Generative AI / Gemini CLI / Antigravity)**
|
|
110
|
-
|
|
111
|
-
- Tool call id sanitization: strict alphanumeric.
|
|
112
|
-
- Tool result pairing repair and synthetic tool results.
|
|
113
|
-
- Turn validation (Gemini-style turn alternation).
|
|
114
|
-
- Google turn ordering fixup (prepend a tiny user bootstrap if history starts with assistant).
|
|
115
|
-
- Antigravity Claude: normalize thinking signatures; drop unsigned thinking blocks.
|
|
116
|
-
|
|
117
|
-
**Anthropic / Minimax (Anthropic-compatible)**
|
|
118
|
-
|
|
119
|
-
- Tool result pairing repair and synthetic tool results.
|
|
120
|
-
- Turn validation (merge consecutive user turns to satisfy strict alternation).
|
|
121
|
-
|
|
122
|
-
**Mistral (including model-id based detection)**
|
|
123
|
-
|
|
124
|
-
- Tool call id sanitization: strict9 (alphanumeric length 9).
|
|
125
|
-
|
|
126
|
-
**OpenRouter Gemini**
|
|
127
|
-
|
|
128
|
-
- Thought signature cleanup: strip non-base64 `thought_signature` values (keep base64).
|
|
129
|
-
|
|
130
|
-
**Everything else**
|
|
131
|
-
|
|
132
|
-
- Image sanitization only.
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## Historical behavior (pre-2026.1.22)
|
|
137
|
-
|
|
138
|
-
Before the 2026.1.22 release, Symi applied multiple layers of transcript hygiene:
|
|
139
|
-
|
|
140
|
-
- A **transcript-sanitize extension** ran on every context build and could:
|
|
141
|
-
- Repair tool use/result pairing.
|
|
142
|
-
- Sanitize tool call ids (including a non-strict mode that preserved `_`/`-`).
|
|
143
|
-
- The runner also performed provider-specific sanitization, which duplicated work.
|
|
144
|
-
- Additional mutations occurred outside the provider policy, including:
|
|
145
|
-
- Stripping `<final>` tags from assistant text before persistence.
|
|
146
|
-
- Dropping empty assistant error turns.
|
|
147
|
-
- Trimming assistant content after tool calls.
|
|
148
|
-
|
|
149
|
-
This complexity caused cross-provider regressions (notably `openai-responses`
|
|
150
|
-
`call_id|fc_id` pairing). The 2026.1.22 cleanup removed the extension, centralized
|
|
151
|
-
logic in the runner, and made OpenAI **no-touch** beyond image sanitization.
|
package/docs/reference/wizard.md
DELETED
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Full reference for the CLI onboarding wizard: every step, flag, and config field"
|
|
3
|
-
read_when:
|
|
4
|
-
- Looking up a specific wizard step or flag
|
|
5
|
-
- Automating onboarding with non-interactive mode
|
|
6
|
-
- Debugging wizard behavior
|
|
7
|
-
title: "Onboarding Wizard Reference"
|
|
8
|
-
sidebarTitle: "Wizard Reference"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Onboarding Wizard Reference
|
|
12
|
-
|
|
13
|
-
This is the full reference for the `symi onboard` CLI wizard.
|
|
14
|
-
For a high-level overview, see [Onboarding Wizard](/start/wizard).
|
|
15
|
-
|
|
16
|
-
## Flow details (local mode)
|
|
17
|
-
|
|
18
|
-
<Steps>
|
|
19
|
-
<Step title="Existing config detection">
|
|
20
|
-
- If `~/.symi/symi.json` exists, choose **Keep / Modify / Reset**.
|
|
21
|
-
- Re-running the wizard does **not** wipe anything unless you explicitly choose **Reset**
|
|
22
|
-
(or pass `--reset`).
|
|
23
|
-
- If the config is invalid or contains legacy keys, the wizard stops and asks
|
|
24
|
-
you to run `symi doctor` before continuing.
|
|
25
|
-
- Reset uses `trash` (never `rm`) and offers scopes:
|
|
26
|
-
- Config only
|
|
27
|
-
- Config + credentials + sessions
|
|
28
|
-
- Full reset (also removes workspace)
|
|
29
|
-
</Step>
|
|
30
|
-
<Step title="Model/Auth">
|
|
31
|
-
- **Anthropic API key (recommended)**: uses `ANTHROPIC_API_KEY` if present or prompts for a key, then saves it for daemon use.
|
|
32
|
-
- **Anthropic OAuth (Claude Code CLI)**: on macOS the wizard checks Keychain item "Claude Code-credentials" (choose "Always Allow" so launchd starts don't block); on Linux/Windows it reuses `~/.claude/.credentials.json` if present.
|
|
33
|
-
- **Anthropic token (paste setup-token)**: run `claude setup-token` on any machine, then paste the token (you can name it; blank = default).
|
|
34
|
-
- **OpenAI Code (Codex) subscription (Codex CLI)**: if `~/.codex/auth.json` exists, the wizard can reuse it.
|
|
35
|
-
- **OpenAI Code (Codex) subscription (OAuth)**: browser flow; paste the `code#state`.
|
|
36
|
-
- Sets `agents.defaults.model` to `openai-codex/gpt-5.2` when model is unset or `openai/*`.
|
|
37
|
-
- **OpenAI API key**: uses `OPENAI_API_KEY` if present or prompts for a key, then saves it to `~/.symi/.env` so launchd can read it.
|
|
38
|
-
- **xAI (Grok) API key**: prompts for `XAI_API_KEY` and configures xAI as a model provider.
|
|
39
|
-
- **OpenCode Zen (multi-model proxy)**: prompts for `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`, get it at https://opencode.ai/auth).
|
|
40
|
-
- **API key**: stores the key for you.
|
|
41
|
-
- **Vercel AI Gateway (multi-model proxy)**: prompts for `AI_GATEWAY_API_KEY`.
|
|
42
|
-
- More detail: [Vercel AI Gateway](/providers/vercel-ai-gateway)
|
|
43
|
-
- **Cloudflare AI Gateway**: prompts for Account ID, Gateway ID, and `CLOUDFLARE_AI_GATEWAY_API_KEY`.
|
|
44
|
-
- More detail: [Cloudflare AI Gateway](/providers/cloudflare-ai-gateway)
|
|
45
|
-
- **MiniMax M2.1**: config is auto-written.
|
|
46
|
-
- More detail: [MiniMax](/providers/minimax)
|
|
47
|
-
- **Synthetic (Anthropic-compatible)**: prompts for `SYNTHETIC_API_KEY`.
|
|
48
|
-
- More detail: [Synthetic](/providers/synthetic)
|
|
49
|
-
- **Moonshot (Kimi K2)**: config is auto-written.
|
|
50
|
-
- **Kimi Coding**: config is auto-written.
|
|
51
|
-
- More detail: [Moonshot AI (Kimi + Kimi Coding)](/providers/moonshot)
|
|
52
|
-
- **Skip**: no auth configured yet.
|
|
53
|
-
- Pick a default model from detected options (or enter provider/model manually).
|
|
54
|
-
- Wizard runs a model check and warns if the configured model is unknown or missing auth.
|
|
55
|
-
- OAuth credentials live in `~/.symi/credentials/oauth.json`; auth profiles live in `~/.symi/agents/<agentId>/agent/auth-profiles.json` (API keys + OAuth).
|
|
56
|
-
- More detail: [/concepts/oauth](/concepts/oauth)
|
|
57
|
-
<Note>
|
|
58
|
-
Headless/server tip: complete OAuth on a machine with a browser, then copy
|
|
59
|
-
`~/.symi/credentials/oauth.json` (or `$SYMI_STATE_DIR/credentials/oauth.json`) to the
|
|
60
|
-
gateway host.
|
|
61
|
-
</Note>
|
|
62
|
-
</Step>
|
|
63
|
-
<Step title="Workspace">
|
|
64
|
-
- Default `~/.symi/workspace` (configurable).
|
|
65
|
-
- Seeds the workspace files needed for the agent bootstrap ritual.
|
|
66
|
-
- Full workspace layout + backup guide: [Agent workspace](/concepts/agent-workspace)
|
|
67
|
-
</Step>
|
|
68
|
-
<Step title="Gateway">
|
|
69
|
-
- Port, bind, auth mode, tailscale exposure.
|
|
70
|
-
- Auth recommendation: keep **Token** even for loopback so local WS clients must authenticate.
|
|
71
|
-
- Disable auth only if you fully trust every local process.
|
|
72
|
-
- Non‑loopback binds still require auth.
|
|
73
|
-
</Step>
|
|
74
|
-
<Step title="Channels">
|
|
75
|
-
- [WhatsApp](/channels/whatsapp): optional QR login.
|
|
76
|
-
- [Telegram](/channels/telegram): bot token.
|
|
77
|
-
- [Google Chat](/channels/googlechat): service account JSON + webhook audience.
|
|
78
|
-
- [Mattermost](/channels/mattermost) (plugin): bot token + base URL.
|
|
79
|
-
- [Signal](/channels/signal): optional `signal-cli` install + account config.
|
|
80
|
-
- [BlueBubbles](/channels/bluebubbles): **recommended for iMessage**; server URL + password + webhook.
|
|
81
|
-
- [iMessage](/channels/imessage): legacy `imsg` CLI path + DB access.
|
|
82
|
-
- DM security: default is pairing. First DM sends a code; approve via `symi pairing approve <channel> <code>` or use allowlists.
|
|
83
|
-
</Step>
|
|
84
|
-
<Step title="Daemon install">
|
|
85
|
-
- macOS: LaunchAgent
|
|
86
|
-
- Requires a logged-in user session; for headless, use a custom LaunchDaemon (not shipped).
|
|
87
|
-
- Linux (and Windows via WSL2): systemd user unit
|
|
88
|
-
- Wizard attempts to enable lingering via `loginctl enable-linger <user>` so the Gateway stays up after logout.
|
|
89
|
-
- May prompt for sudo (writes `/var/lib/systemd/linger`); it tries without sudo first.
|
|
90
|
-
- **Runtime selection:** Node (recommended; required for WhatsApp/Telegram). Bun is **not recommended**.
|
|
91
|
-
</Step>
|
|
92
|
-
<Step title="Health check">
|
|
93
|
-
- Starts the Gateway (if needed) and runs `symi health`.
|
|
94
|
-
- Tip: `symi status --deep` adds gateway health probes to status output (requires a reachable gateway).
|
|
95
|
-
</Step>
|
|
96
|
-
<Step title="Skills (recommended)">
|
|
97
|
-
- Reads the available skills and checks requirements.
|
|
98
|
-
- Lets you choose a node manager: **npm / pnpm** (bun not recommended).
|
|
99
|
-
- Installs optional dependencies (some use Homebrew on macOS).
|
|
100
|
-
</Step>
|
|
101
|
-
<Step title="Finish">
|
|
102
|
-
- Summary + next steps, including iOS/Android/macOS apps for extra features.
|
|
103
|
-
</Step>
|
|
104
|
-
</Steps>
|
|
105
|
-
|
|
106
|
-
<Note>
|
|
107
|
-
If no GUI is detected, the wizard prints SSH port-forward instructions for the Control UI instead of opening a browser.
|
|
108
|
-
If the Control UI assets are missing, the wizard attempts to build them; fallback is `pnpm ui:build` (auto-installs UI deps).
|
|
109
|
-
</Note>
|
|
110
|
-
|
|
111
|
-
## Non-interactive mode
|
|
112
|
-
|
|
113
|
-
Use `--non-interactive` to automate or script onboarding:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
symi onboard --non-interactive \
|
|
117
|
-
--mode local \
|
|
118
|
-
--auth-choice apiKey \
|
|
119
|
-
--anthropic-api-key "$ANTHROPIC_API_KEY" \
|
|
120
|
-
--gateway-port 18789 \
|
|
121
|
-
--gateway-bind loopback \
|
|
122
|
-
--install-daemon \
|
|
123
|
-
--daemon-runtime node \
|
|
124
|
-
--skip-skills
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Add `--json` for a machine‑readable summary.
|
|
128
|
-
|
|
129
|
-
<Note>
|
|
130
|
-
`--json` does **not** imply non-interactive mode. Use `--non-interactive` (and `--workspace`) for scripts.
|
|
131
|
-
</Note>
|
|
132
|
-
|
|
133
|
-
<AccordionGroup>
|
|
134
|
-
<Accordion title="Gemini example">
|
|
135
|
-
```bash
|
|
136
|
-
symi onboard --non-interactive \
|
|
137
|
-
--mode local \
|
|
138
|
-
--auth-choice gemini-api-key \
|
|
139
|
-
--gemini-api-key "$GEMINI_API_KEY" \
|
|
140
|
-
--gateway-port 18789 \
|
|
141
|
-
--gateway-bind loopback
|
|
142
|
-
```
|
|
143
|
-
</Accordion>
|
|
144
|
-
<Accordion title="Z.AI example">
|
|
145
|
-
```bash
|
|
146
|
-
symi onboard --non-interactive \
|
|
147
|
-
--mode local \
|
|
148
|
-
--auth-choice zai-api-key \
|
|
149
|
-
--zai-api-key "$ZAI_API_KEY" \
|
|
150
|
-
--gateway-port 18789 \
|
|
151
|
-
--gateway-bind loopback
|
|
152
|
-
```
|
|
153
|
-
</Accordion>
|
|
154
|
-
<Accordion title="Vercel AI Gateway example">
|
|
155
|
-
```bash
|
|
156
|
-
symi onboard --non-interactive \
|
|
157
|
-
--mode local \
|
|
158
|
-
--auth-choice ai-gateway-api-key \
|
|
159
|
-
--ai-gateway-api-key "$AI_GATEWAY_API_KEY" \
|
|
160
|
-
--gateway-port 18789 \
|
|
161
|
-
--gateway-bind loopback
|
|
162
|
-
```
|
|
163
|
-
</Accordion>
|
|
164
|
-
<Accordion title="Cloudflare AI Gateway example">
|
|
165
|
-
```bash
|
|
166
|
-
symi onboard --non-interactive \
|
|
167
|
-
--mode local \
|
|
168
|
-
--auth-choice cloudflare-ai-gateway-api-key \
|
|
169
|
-
--cloudflare-ai-gateway-account-id "your-account-id" \
|
|
170
|
-
--cloudflare-ai-gateway-gateway-id "your-gateway-id" \
|
|
171
|
-
--cloudflare-ai-gateway-api-key "$CLOUDFLARE_AI_GATEWAY_API_KEY" \
|
|
172
|
-
--gateway-port 18789 \
|
|
173
|
-
--gateway-bind loopback
|
|
174
|
-
```
|
|
175
|
-
</Accordion>
|
|
176
|
-
<Accordion title="Moonshot example">
|
|
177
|
-
```bash
|
|
178
|
-
symi onboard --non-interactive \
|
|
179
|
-
--mode local \
|
|
180
|
-
--auth-choice moonshot-api-key \
|
|
181
|
-
--moonshot-api-key "$MOONSHOT_API_KEY" \
|
|
182
|
-
--gateway-port 18789 \
|
|
183
|
-
--gateway-bind loopback
|
|
184
|
-
```
|
|
185
|
-
</Accordion>
|
|
186
|
-
<Accordion title="Synthetic example">
|
|
187
|
-
```bash
|
|
188
|
-
symi onboard --non-interactive \
|
|
189
|
-
--mode local \
|
|
190
|
-
--auth-choice synthetic-api-key \
|
|
191
|
-
--synthetic-api-key "$SYNTHETIC_API_KEY" \
|
|
192
|
-
--gateway-port 18789 \
|
|
193
|
-
--gateway-bind loopback
|
|
194
|
-
```
|
|
195
|
-
</Accordion>
|
|
196
|
-
<Accordion title="OpenCode Zen example">
|
|
197
|
-
```bash
|
|
198
|
-
symi onboard --non-interactive \
|
|
199
|
-
--mode local \
|
|
200
|
-
--auth-choice opencode-zen \
|
|
201
|
-
--opencode-zen-api-key "$OPENCODE_API_KEY" \
|
|
202
|
-
--gateway-port 18789 \
|
|
203
|
-
--gateway-bind loopback
|
|
204
|
-
```
|
|
205
|
-
</Accordion>
|
|
206
|
-
</AccordionGroup>
|
|
207
|
-
|
|
208
|
-
### Add agent (non-interactive)
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
symi agents add work \
|
|
212
|
-
--workspace ~/.symi/workspace-work \
|
|
213
|
-
--model openai/gpt-5.2 \
|
|
214
|
-
--bind whatsapp:biz \
|
|
215
|
-
--non-interactive \
|
|
216
|
-
--json
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
## Gateway wizard RPC
|
|
220
|
-
|
|
221
|
-
The Gateway exposes the wizard flow over RPC (`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`).
|
|
222
|
-
Clients (macOS app, Control UI) can render steps without re‑implementing onboarding logic.
|
|
223
|
-
|
|
224
|
-
## Signal setup (signal-cli)
|
|
225
|
-
|
|
226
|
-
The wizard can install `signal-cli` from GitHub releases:
|
|
227
|
-
|
|
228
|
-
- Downloads the appropriate release asset.
|
|
229
|
-
- Stores it under `~/.symi/tools/signal-cli/<version>/`.
|
|
230
|
-
- Writes `channels.signal.cliPath` to your config.
|
|
231
|
-
|
|
232
|
-
Notes:
|
|
233
|
-
|
|
234
|
-
- JVM builds require **Java 21**.
|
|
235
|
-
- Native builds are used when available.
|
|
236
|
-
- Windows uses WSL2; signal-cli install follows the Linux flow inside WSL.
|
|
237
|
-
|
|
238
|
-
## What the wizard writes
|
|
239
|
-
|
|
240
|
-
Typical fields in `~/.symi/symi.json`:
|
|
241
|
-
|
|
242
|
-
- `agents.defaults.workspace`
|
|
243
|
-
- `agents.defaults.model` / `models.providers` (if Minimax chosen)
|
|
244
|
-
- `gateway.*` (mode, bind, auth, tailscale)
|
|
245
|
-
- `skills.install.nodeManager`
|
|
246
|
-
- `wizard.lastRunAt`
|
|
247
|
-
- `wizard.lastRunVersion`
|
|
248
|
-
- `wizard.lastRunCommit`
|
|
249
|
-
- `wizard.lastRunCommand`
|
|
250
|
-
- `wizard.lastRunMode`
|
|
251
|
-
|
|
252
|
-
`symi agents add` writes `agents.list[]` and optional `bindings`.
|
|
253
|
-
|
|
254
|
-
WhatsApp credentials go under `~/.symi/credentials/whatsapp/<accountId>/`.
|
|
255
|
-
Sessions are stored under `~/.symi/agents/<agentId>/sessions/`.
|
|
256
|
-
|
|
257
|
-
Some channels are delivered as plugins. When you pick one during onboarding, the wizard
|
|
258
|
-
will prompt to install it (npm or a local path) before it can be configured.
|
|
259
|
-
|
|
260
|
-
## Related docs
|
|
261
|
-
|
|
262
|
-
- Wizard overview: [Onboarding Wizard](/start/wizard)
|
|
263
|
-
- macOS app onboarding: [Onboarding](/start/onboarding)
|
|
264
|
-
- Config reference: [Gateway configuration](/gateway/configuration)
|
|
265
|
-
- Skills: [Skills](/tools/skills), [Skills config](/tools/skills-config)
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# Contributing to the Symi Threat Model
|
|
2
|
-
|
|
3
|
-
Thanks for helping make Symi more secure. This threat model is a living document and we welcome contributions from anyone - you don't need to be a security expert.
|
|
4
|
-
|
|
5
|
-
## Ways to Contribute
|
|
6
|
-
|
|
7
|
-
### Add a Threat
|
|
8
|
-
|
|
9
|
-
Spotted an attack vector or risk we haven't covered? Open an issue on [symi/trust](https://github.com/symi/trust/issues) and describe it in your own words. You don't need to know any frameworks or fill in every field - just describe the scenario.
|
|
10
|
-
|
|
11
|
-
**Helpful to include (but not required):**
|
|
12
|
-
|
|
13
|
-
- The attack scenario and how it could be exploited
|
|
14
|
-
- Which parts of Symi are affected (CLI, gateway, channels, SymiHub, MCP servers, etc.)
|
|
15
|
-
- How severe you think it is (low / medium / high / critical)
|
|
16
|
-
- Any links to related research, CVEs, or real-world examples
|
|
17
|
-
|
|
18
|
-
We'll handle the ATLAS mapping, threat IDs, and risk assessment during review. If you want to include those details, great - but it's not expected.
|
|
19
|
-
|
|
20
|
-
> **This is for adding to the threat model, not reporting live vulnerabilities.** If you've found an exploitable vulnerability, see our [Trust page](https://trust.symi.ai) for responsible disclosure instructions.
|
|
21
|
-
|
|
22
|
-
### Suggest a Mitigation
|
|
23
|
-
|
|
24
|
-
Have an idea for how to address an existing threat? Open an issue or PR referencing the threat. Useful mitigations are specific and actionable - for example, "per-sender rate limiting of 10 messages/minute at the gateway" is better than "implement rate limiting."
|
|
25
|
-
|
|
26
|
-
### Propose an Attack Chain
|
|
27
|
-
|
|
28
|
-
Attack chains show how multiple threats combine into a realistic attack scenario. If you see a dangerous combination, describe the steps and how an attacker would chain them together. A short narrative of how the attack unfolds in practice is more valuable than a formal template.
|
|
29
|
-
|
|
30
|
-
### Fix or Improve Existing Content
|
|
31
|
-
|
|
32
|
-
Typos, clarifications, outdated info, better examples - PRs welcome, no issue needed.
|
|
33
|
-
|
|
34
|
-
## What We Use
|
|
35
|
-
|
|
36
|
-
### MITRE ATLAS
|
|
37
|
-
|
|
38
|
-
This threat model is built on [MITRE ATLAS](https://atlas.mitre.org/) (Adversarial Threat Landscape for AI Systems), a framework designed specifically for AI/ML threats like prompt injection, tool misuse, and agent exploitation. You don't need to know ATLAS to contribute - we map submissions to the framework during review.
|
|
39
|
-
|
|
40
|
-
### Threat IDs
|
|
41
|
-
|
|
42
|
-
Each threat gets an ID like `T-EXEC-003`. The categories are:
|
|
43
|
-
|
|
44
|
-
| Code | Category |
|
|
45
|
-
| ------- | ------------------------------------------ |
|
|
46
|
-
| RECON | Reconnaissance - information gathering |
|
|
47
|
-
| ACCESS | Initial access - gaining entry |
|
|
48
|
-
| EXEC | Execution - running malicious actions |
|
|
49
|
-
| PERSIST | Persistence - maintaining access |
|
|
50
|
-
| EVADE | Defense evasion - avoiding detection |
|
|
51
|
-
| DISC | Discovery - learning about the environment |
|
|
52
|
-
| EXFIL | Exfiltration - stealing data |
|
|
53
|
-
| IMPACT | Impact - damage or disruption |
|
|
54
|
-
|
|
55
|
-
IDs are assigned by maintainers during review. You don't need to pick one.
|
|
56
|
-
|
|
57
|
-
### Risk Levels
|
|
58
|
-
|
|
59
|
-
| Level | Meaning |
|
|
60
|
-
| ------------ | ----------------------------------------------------------------- |
|
|
61
|
-
| **Critical** | Full system compromise, or high likelihood + critical impact |
|
|
62
|
-
| **High** | Significant damage likely, or medium likelihood + critical impact |
|
|
63
|
-
| **Medium** | Moderate risk, or low likelihood + high impact |
|
|
64
|
-
| **Low** | Unlikely and limited impact |
|
|
65
|
-
|
|
66
|
-
If you're unsure about the risk level, just describe the impact and we'll assess it.
|
|
67
|
-
|
|
68
|
-
## Review Process
|
|
69
|
-
|
|
70
|
-
1. **Triage** - We review new submissions within 48 hours
|
|
71
|
-
2. **Assessment** - We verify feasibility, assign ATLAS mapping and threat ID, validate risk level
|
|
72
|
-
3. **Documentation** - We ensure everything is formatted and complete
|
|
73
|
-
4. **Merge** - Added to the threat model and visualization
|
|
74
|
-
|
|
75
|
-
## Resources
|
|
76
|
-
|
|
77
|
-
- [ATLAS Website](https://atlas.mitre.org/)
|
|
78
|
-
- [ATLAS Techniques](https://atlas.mitre.org/techniques/)
|
|
79
|
-
- [ATLAS Case Studies](https://atlas.mitre.org/studies/)
|
|
80
|
-
- [Symi Threat Model](./THREAT-MODEL-ATLAS.md)
|
|
81
|
-
|
|
82
|
-
## Contact
|
|
83
|
-
|
|
84
|
-
- **Security vulnerabilities:** See our [Trust page](https://trust.symi.ai) for reporting instructions
|
|
85
|
-
- **Threat model questions:** Open an issue on [symi/trust](https://github.com/symi/trust/issues)
|
|
86
|
-
|
|
87
|
-
## Recognition
|
|
88
|
-
|
|
89
|
-
Contributors to the threat model are recognized in the threat model acknowledgments, release notes, and the Symi security hall of fame for significant contributions.
|
package/docs/security/README.md
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Symi Security & Trust
|
|
2
|
-
|
|
3
|
-
**Live:** [trust.symi.ai](https://trust.symi.ai)
|
|
4
|
-
|
|
5
|
-
## Documents
|
|
6
|
-
|
|
7
|
-
- [Threat Model](./THREAT-MODEL-ATLAS.md) - MITRE ATLAS-based threat model for the Symi ecosystem
|
|
8
|
-
- [Contributing to the Threat Model](./CONTRIBUTING-THREAT-MODEL.md) - How to add threats, mitigations, and attack chains
|
|
9
|
-
|
|
10
|
-
## Reporting Vulnerabilities
|
|
11
|
-
|
|
12
|
-
See the [Trust page](https://trust.symi.ai) for full reporting instructions covering all repos.
|
|
13
|
-
|
|
14
|
-
## Contact
|
|
15
|
-
|
|
16
|
-
- **Jamieson O'Reilly** ([@theonejvo](https://twitter.com/theonejvo)) - Security & Trust
|