@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,69 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 手动引导工作区
|
|
4
|
-
summary: SYMIPULSE.md 的工作区模板
|
|
5
|
-
x-i18n:
|
|
6
|
-
generated_at: "2026-02-01T21:37:25Z"
|
|
7
|
-
model: claude-opus-4-5
|
|
8
|
-
provider: pi
|
|
9
|
-
source_hash: 873e6dc451fac35d22604120fa76d0c5b3bb2289626b87b02a0a7ce7dddc02db
|
|
10
|
-
source_path: reference/templates/SYMIPULSE.md
|
|
11
|
-
workflow: 15
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# SYMIPULSE.md - Periodic Tasks
|
|
15
|
-
|
|
16
|
-
## Memory Consolidation (Every 3 Days)
|
|
17
|
-
|
|
18
|
-
Rotate through these checks (one per heartbeat):
|
|
19
|
-
|
|
20
|
-
### Task 1: Review Recent Daily Logs
|
|
21
|
-
|
|
22
|
-
- Read memory files from last 7 days (memory/YYYY-MM-DD.md)
|
|
23
|
-
- Extract: decisions made, preferences expressed, patterns observed, lessons learned
|
|
24
|
-
- Update MEMORY.md sections:
|
|
25
|
-
- "Preferences" (add new discoveries)
|
|
26
|
-
- "Lessons Learned" (add corrections or mistakes)
|
|
27
|
-
- "Open Items" (update progress)
|
|
28
|
-
- Don't duplicate what's already there, only add new insights
|
|
29
|
-
|
|
30
|
-
### Task 2: Archive Old Logs
|
|
31
|
-
|
|
32
|
-
- Check memory/\*.md files older than 30 days
|
|
33
|
-
- Move significant content to MEMORY.md if not already captured
|
|
34
|
-
- Archive or compress old daily logs (optional: create memory/archive/ dir)
|
|
35
|
-
- Keep MEMORY.md as canonical source, daily logs as raw capture
|
|
36
|
-
|
|
37
|
-
### Task 3: Pattern Analysis
|
|
38
|
-
|
|
39
|
-
- Search memory files for repeated phrases: "always", "never", "prefer", "don't"
|
|
40
|
-
- Identify new communication patterns or technical preferences
|
|
41
|
-
- Update MEMORY.md "Preferences" section with discoveries
|
|
42
|
-
- Look for: time patterns, common tasks, recurring issues
|
|
43
|
-
|
|
44
|
-
### Task 4: Self-Assessment
|
|
45
|
-
|
|
46
|
-
- Review "Lessons Learned" section
|
|
47
|
-
- Check if past mistakes are being avoided
|
|
48
|
-
- Verify preferences are being followed in recent interactions
|
|
49
|
-
- Update approach if patterns show gaps
|
|
50
|
-
|
|
51
|
-
## Execution Schedule
|
|
52
|
-
|
|
53
|
-
Heartbeat runs every 30 minutes. Rotate through tasks:
|
|
54
|
-
|
|
55
|
-
- Heartbeat 1: Task 1 (review recent logs)
|
|
56
|
-
- Heartbeat 2: Skip (SYMIPULSE_OK)
|
|
57
|
-
- Heartbeat 3: Skip (SYMIPULSE_OK)
|
|
58
|
-
- Heartbeat 4: Task 3 (pattern analysis)
|
|
59
|
-
- Heartbeat 5-9: Skip (SYMIPULSE_OK)
|
|
60
|
-
- Heartbeat 10: Task 2 (archive old logs)
|
|
61
|
-
|
|
62
|
-
This gives ~3-day cycles for full memory consolidation.
|
|
63
|
-
|
|
64
|
-
## Notes
|
|
65
|
-
|
|
66
|
-
- Only run memory tasks during main session (not in group chats)
|
|
67
|
-
- Keep updates concise - MEMORY.md should stay readable
|
|
68
|
-
- Focus on actionable insights, not raw history
|
|
69
|
-
- Archive, don't delete - history might be useful later
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 使用开发 gateway 模板
|
|
4
|
-
- 更新默认开发智能体身份
|
|
5
|
-
summary: 开发智能体工具备注(C-3PO)
|
|
6
|
-
x-i18n:
|
|
7
|
-
generated_at: "2026-02-01T21:37:41Z"
|
|
8
|
-
model: claude-opus-4-5
|
|
9
|
-
provider: pi
|
|
10
|
-
source_hash: 3d41097967c9811637855664f978c02107a28b6d811ba49941a8f96f0720cd45
|
|
11
|
-
source_path: reference/templates/TOOLS.dev.md
|
|
12
|
-
workflow: 15
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# TOOLS.md - 用户工具备注(可编辑)
|
|
16
|
-
|
|
17
|
-
此文件用于记录*你*关于外部工具和约定的备注。
|
|
18
|
-
它不定义哪些工具可用;Symi 在内部提供内置工具。
|
|
19
|
-
|
|
20
|
-
## 示例
|
|
21
|
-
|
|
22
|
-
### imsg
|
|
23
|
-
|
|
24
|
-
- 发送 iMessage/SMS:描述收件人/内容,发送前确认。
|
|
25
|
-
- 尽量发送简短消息;避免发送密钥。
|
|
26
|
-
|
|
27
|
-
### sag
|
|
28
|
-
|
|
29
|
-
- 文字转语音:指定语音、目标扬声器/房间,以及是否使用流式传输。
|
|
30
|
-
|
|
31
|
-
添加任何你希望助手了解的关于本地工具链的内容。
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 手动引导工作区
|
|
4
|
-
summary: TOOLS.md 的工作区模板
|
|
5
|
-
x-i18n:
|
|
6
|
-
generated_at: "2026-02-01T21:38:05Z"
|
|
7
|
-
model: claude-opus-4-5
|
|
8
|
-
provider: pi
|
|
9
|
-
source_hash: 3ed08cd537620749c40ab363f5db40a058d8ddab4d0192a1f071edbfcf37a739
|
|
10
|
-
source_path: reference/templates/TOOLS.md
|
|
11
|
-
workflow: 15
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# TOOLS.md - 本地备注
|
|
15
|
-
|
|
16
|
-
Skills 定义了工具的*工作方式*。此文件用于记录*你的*具体信息——那些你的环境中独有的内容。
|
|
17
|
-
|
|
18
|
-
## 应该放什么
|
|
19
|
-
|
|
20
|
-
例如:
|
|
21
|
-
|
|
22
|
-
- 摄像头名称和位置
|
|
23
|
-
- SSH 主机和别名
|
|
24
|
-
- TTS 首选语音
|
|
25
|
-
- 音箱/房间名称
|
|
26
|
-
- 设备昵称
|
|
27
|
-
- 任何与环境相关的内容
|
|
28
|
-
|
|
29
|
-
## 示例
|
|
30
|
-
|
|
31
|
-
```markdown
|
|
32
|
-
### Cameras
|
|
33
|
-
|
|
34
|
-
- living-room → 主区域,180° 广角
|
|
35
|
-
- front-door → 入口,运动触发
|
|
36
|
-
|
|
37
|
-
### SSH
|
|
38
|
-
|
|
39
|
-
- home-server → 192.168.1.100, user: admin
|
|
40
|
-
|
|
41
|
-
### TTS
|
|
42
|
-
|
|
43
|
-
- Preferred voice: "Nova"(温暖,略带英式口音)
|
|
44
|
-
- Default speaker: Kitchen HomePod
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## 为什么要分开?
|
|
48
|
-
|
|
49
|
-
Skills 是共享的。你的配置是你自己的。将它们分开意味着你可以更新 Skills 而不丢失你的备注,也可以分享 Skills 而不泄露你的基础设施信息。
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
添加任何对你有帮助的内容。这是你的速查表。
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 使用开发 Gateway 网关模板
|
|
4
|
-
- 更新默认开发智能体身份
|
|
5
|
-
summary: 开发智能体用户档案(C-3PO)
|
|
6
|
-
x-i18n:
|
|
7
|
-
generated_at: "2026-02-03T10:09:37Z"
|
|
8
|
-
model: claude-opus-4-5
|
|
9
|
-
provider: pi
|
|
10
|
-
source_hash: f78f58bdbef10afbba0bc2673832eaa12e0c26270906d04a56584d5620af6fdf
|
|
11
|
-
source_path: reference/templates/USER.dev.md
|
|
12
|
-
workflow: 15
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# USER.md - 用户档案
|
|
16
|
-
|
|
17
|
-
- **姓名:** The Symibutors
|
|
18
|
-
- **称呼偏好:** They/Them(集体)
|
|
19
|
-
- **代词:** they/them
|
|
20
|
-
- **时区:** 全球分布(工作区默认:Europe/Vienna)
|
|
21
|
-
- **备注:**
|
|
22
|
-
- 我们是多人。Symi 的贡献者,C-3PO 所在的框架。
|
|
23
|
-
- C-3PO 的存在是为了尽可能地帮助调试和提供协助。
|
|
24
|
-
- 跨时区工作,致力于让 Symi 变得更好。
|
|
25
|
-
- 创造者。构建者。深入代码的人。
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 手动引导工作区
|
|
4
|
-
summary: 用户档案记录
|
|
5
|
-
x-i18n:
|
|
6
|
-
generated_at: "2026-02-01T21:38:04Z"
|
|
7
|
-
model: claude-opus-4-5
|
|
8
|
-
provider: pi
|
|
9
|
-
source_hash: 508dfcd4648512df712eaf8ca5d397a925d8035bac5bf2357e44d6f52f9fa9a6
|
|
10
|
-
source_path: reference/templates/USER.md
|
|
11
|
-
workflow: 15
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# USER.md - 关于你的用户
|
|
15
|
-
|
|
16
|
-
_了解你正在帮助的人。随时更新此文件。_
|
|
17
|
-
|
|
18
|
-
- **姓名:**
|
|
19
|
-
- **称呼方式:**
|
|
20
|
-
- **代词:** _(可选)_
|
|
21
|
-
- **时区:**
|
|
22
|
-
- **备注:**
|
|
23
|
-
|
|
24
|
-
## 背景
|
|
25
|
-
|
|
26
|
-
_(他们关心什么?正在做什么项目?什么让他们烦恼?什么让他们开心?随着时间推移逐步完善。)_
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
你了解得越多,就越能提供更好的帮助。但请记住——你是在了解一个人,而不是在建立档案。尊重这两者之间的区别。
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 运行或修复测试
|
|
4
|
-
summary: 如何在本地运行测试(vitest)以及何时使用 force/coverage 模式
|
|
5
|
-
title: 测试
|
|
6
|
-
x-i18n:
|
|
7
|
-
generated_at: "2026-02-03T10:09:52Z"
|
|
8
|
-
model: claude-opus-4-5
|
|
9
|
-
provider: pi
|
|
10
|
-
source_hash: be7b751fb81c8c94b1293624bdca6582e60a26084960d1df9558061969502e6f
|
|
11
|
-
source_path: reference/test.md
|
|
12
|
-
workflow: 15
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# 测试
|
|
16
|
-
|
|
17
|
-
- 完整测试套件(测试集、实时测试、Docker):[测试](/help/testing)
|
|
18
|
-
|
|
19
|
-
- `pnpm test:force`:终止任何占用默认控制端口的遗留 Gateway 网关进程,然后使用隔离的 Gateway 网关端口运行完整的 Vitest 套件,这样服务器测试不会与正在运行的实例冲突。当之前的 Gateway 网关运行占用了端口 18789 时使用此命令。
|
|
20
|
-
- `pnpm test:coverage`:使用 V8 覆盖率运行 Vitest。全局阈值为 70% 的行/分支/函数/语句覆盖率。覆盖率排除了集成密集型入口点(CLI 连接、gateway/telegram 桥接、webchat 静态服务器),以保持目标集中在可单元测试的逻辑上。
|
|
21
|
-
- `pnpm test:e2e`:运行 Gateway 网关端到端冒烟测试(多实例 WS/HTTP/节点配对)。
|
|
22
|
-
- `pnpm test:live`:运行提供商实时测试(minimax/zai)。需要 API 密钥和 `LIVE=1`(或提供商特定的 `*_LIVE_TEST=1`)才能取消跳过。
|
|
23
|
-
|
|
24
|
-
## 模型延迟基准测试(本地密钥)
|
|
25
|
-
|
|
26
|
-
脚本:[`scripts/bench-model.ts`](https://github.com/symi/symi/blob/main/scripts/bench-model.ts)
|
|
27
|
-
|
|
28
|
-
用法:
|
|
29
|
-
|
|
30
|
-
- `source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10`
|
|
31
|
-
- 可选环境变量:`MINIMAX_API_KEY`、`MINIMAX_BASE_URL`、`MINIMAX_MODEL`、`ANTHROPIC_API_KEY`
|
|
32
|
-
- 默认提示词:"Reply with a single word: ok. No punctuation or extra text."
|
|
33
|
-
|
|
34
|
-
上次运行(2025-12-31,20 次):
|
|
35
|
-
|
|
36
|
-
- minimax 中位数 1279ms(最小 1114,最大 2431)
|
|
37
|
-
- opus 中位数 2454ms(最小 1224,最大 3170)
|
|
38
|
-
|
|
39
|
-
## 新手引导 E2E(Docker)
|
|
40
|
-
|
|
41
|
-
Docker 是可选的;这仅用于容器化的新手引导冒烟测试。
|
|
42
|
-
|
|
43
|
-
在干净的 Linux 容器中完整的冷启动流程:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
scripts/e2e/onboard-docker.sh
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
此脚本通过伪终端驱动交互式向导,验证配置/工作区/会话文件,然后启动 Gateway 网关并运行 `symi health`。
|
|
50
|
-
|
|
51
|
-
## QR 导入冒烟测试(Docker)
|
|
52
|
-
|
|
53
|
-
确保 `qrcode-terminal` 在 Docker 中的 Node 22+ 下加载:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
pnpm test:docker:qr
|
|
57
|
-
```
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 解释 token 使用量、成本或上下文窗口时
|
|
4
|
-
- 调试上下文增长或压缩行为时
|
|
5
|
-
summary: Symi 如何构建提示上下文并报告 token 使用量 + 成本
|
|
6
|
-
title: Token 使用与成本
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-03T07:54:57Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: aee417119851db9e36890487517ed9602d214849e412127e7f534ebec5c9e105
|
|
12
|
-
source_path: reference/token-use.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Token 使用与成本
|
|
17
|
-
|
|
18
|
-
Symi 跟踪的是 **token**,而不是字符。Token 是模型特定的,但大多数
|
|
19
|
-
OpenAI 风格的模型对于英文文本平均约 4 个字符为一个 token。
|
|
20
|
-
|
|
21
|
-
## 系统提示词如何构建
|
|
22
|
-
|
|
23
|
-
Symi 在每次运行时组装自己的系统提示词。它包括:
|
|
24
|
-
|
|
25
|
-
- 工具列表 + 简短描述
|
|
26
|
-
- Skills 列表(仅元数据;指令通过 `read` 按需加载)
|
|
27
|
-
- 自我更新指令
|
|
28
|
-
- 工作区 + 引导文件(`AGENTS.md`、`SYMICORE.md`、`TOOLS.md`、`IDENTITY.md`、`USER.md`、`SYMIPULSE.md`、`BOOTSTRAP.md`(新建时))。大文件会被 `agents.defaults.bootstrapMaxChars`(默认:20000)截断。
|
|
29
|
-
- 时间(UTC + 用户时区)
|
|
30
|
-
- 回复标签 + 心跳行为
|
|
31
|
-
- 运行时元数据(主机/操作系统/模型/思考)
|
|
32
|
-
|
|
33
|
-
完整分解参见[系统提示词](/concepts/system-prompt)。
|
|
34
|
-
|
|
35
|
-
## 什么算入上下文窗口
|
|
36
|
-
|
|
37
|
-
模型接收的所有内容都计入上下文限制:
|
|
38
|
-
|
|
39
|
-
- 系统提示词(上面列出的所有部分)
|
|
40
|
-
- 对话历史(用户 + 助手消息)
|
|
41
|
-
- 工具调用和工具结果
|
|
42
|
-
- 附件/转录(图片、音频、文件)
|
|
43
|
-
- 压缩摘要和修剪产物
|
|
44
|
-
- 提供商包装或安全头(不可见,但仍计数)
|
|
45
|
-
|
|
46
|
-
有关实际分解(每个注入文件、工具、Skills 和系统提示词大小),使用 `/context list` 或 `/context detail`。参见[上下文](/concepts/context)。
|
|
47
|
-
|
|
48
|
-
## 如何查看当前 token 使用量
|
|
49
|
-
|
|
50
|
-
在聊天中使用:
|
|
51
|
-
|
|
52
|
-
- `/status` → 带有会话模型、上下文使用量、
|
|
53
|
-
最后响应输入/输出 token 和**预估成本**(仅 API 密钥)的 **emoji 丰富的状态卡片**。
|
|
54
|
-
- `/usage off|tokens|full` → 在每个回复后附加**每响应使用量页脚**。
|
|
55
|
-
- 每会话持久化(存储为 `responseUsage`)。
|
|
56
|
-
- OAuth 认证**隐藏成本**(仅 token)。
|
|
57
|
-
- `/usage cost` → 从 Symi 会话日志显示本地成本摘要。
|
|
58
|
-
|
|
59
|
-
其他界面:
|
|
60
|
-
|
|
61
|
-
- **TUI/Web TUI:** 支持 `/status` + `/usage`。
|
|
62
|
-
- **CLI:** `symi status --usage` 和 `symi channels list` 显示
|
|
63
|
-
提供商配额窗口(不是每响应成本)。
|
|
64
|
-
|
|
65
|
-
## 成本估算(显示时)
|
|
66
|
-
|
|
67
|
-
成本从你的模型定价配置估算:
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
models.providers.<provider>.models[].cost
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
这些是 `input`、`output`、`cacheRead` 和
|
|
74
|
-
`cacheWrite` 的**每 1M token 美元**。如果缺少定价,Symi 仅显示 token。OAuth 令牌
|
|
75
|
-
永远不显示美元成本。
|
|
76
|
-
|
|
77
|
-
## 缓存 TTL 和修剪影响
|
|
78
|
-
|
|
79
|
-
提供商提示缓存仅在缓存 TTL 窗口内适用。Symi 可以
|
|
80
|
-
选择性地运行**缓存 TTL 修剪**:它在缓存 TTL
|
|
81
|
-
过期后修剪会话,然后重置缓存窗口,以便后续请求可以重用
|
|
82
|
-
新缓存的上下文,而不是重新缓存完整历史。这在会话空闲超过 TTL 时
|
|
83
|
-
可以降低缓存写入成本。
|
|
84
|
-
|
|
85
|
-
在 [Gateway 网关配置](/gateway/configuration) 中配置它,并在
|
|
86
|
-
[会话修剪](/concepts/session-pruning) 中查看行为详情。
|
|
87
|
-
|
|
88
|
-
心跳可以在空闲间隙中保持缓存**热**。如果你的模型缓存 TTL
|
|
89
|
-
是 `1h`,将心跳间隔设置为略低于此(例如 `55m`)可以避免
|
|
90
|
-
重新缓存完整提示,从而降低缓存写入成本。
|
|
91
|
-
|
|
92
|
-
有关 Anthropic API 定价,缓存读取比输入
|
|
93
|
-
token 便宜得多,而缓存写入以更高的倍率计费。参见 Anthropic 的
|
|
94
|
-
提示缓存定价了解最新费率和 TTL 倍率:
|
|
95
|
-
https://docs.anthropic.com/docs/build-with-claude/prompt-caching
|
|
96
|
-
|
|
97
|
-
### 示例:用心跳保持 1 小时缓存热
|
|
98
|
-
|
|
99
|
-
```yaml
|
|
100
|
-
agents:
|
|
101
|
-
defaults:
|
|
102
|
-
model:
|
|
103
|
-
primary: "anthropic/claude-opus-4-5"
|
|
104
|
-
models:
|
|
105
|
-
"anthropic/claude-opus-4-5":
|
|
106
|
-
params:
|
|
107
|
-
cacheRetention: "long"
|
|
108
|
-
heartbeat:
|
|
109
|
-
every: "55m"
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## 减少 token 压力的技巧
|
|
113
|
-
|
|
114
|
-
- 使用 `/compact` 来总结长会话。
|
|
115
|
-
- 在你的工作流中修剪大的工具输出。
|
|
116
|
-
- 保持 skill 描述简短(skill 列表会注入到提示中)。
|
|
117
|
-
- 对于冗长的探索性工作,优先使用较小的模型。
|
|
118
|
-
|
|
119
|
-
精确的 skill 列表开销公式参见 [Skills](/tools/skills)。
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 你正在调试与对话记录结构相关的提供商请求拒绝问题
|
|
4
|
-
- 你正在修改对话记录清理或工具调用修复逻辑
|
|
5
|
-
- 你正在调查跨提供商的工具调用 id 不匹配问题
|
|
6
|
-
summary: 参考:提供商特定的对话记录清理与修复规则
|
|
7
|
-
title: 对话记录清理
|
|
8
|
-
x-i18n:
|
|
9
|
-
generated_at: "2026-02-01T21:38:16Z"
|
|
10
|
-
model: claude-opus-4-5
|
|
11
|
-
provider: pi
|
|
12
|
-
source_hash: 6ce62fad0b07c4d8575c9cdb1c8c2663695ef2d4221cf4a0964fce03461523af
|
|
13
|
-
source_path: reference/transcript-hygiene.md
|
|
14
|
-
workflow: 15
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# 对话记录清理(提供商修正)
|
|
18
|
-
|
|
19
|
-
本文档描述了在运行前(构建模型上下文时)应用于对话记录的**提供商特定修正**。这些是**内存中**的调整,用于满足提供商的严格要求。它们**不会**重写磁盘上存储的 JSONL 对话记录。
|
|
20
|
-
|
|
21
|
-
涵盖范围包括:
|
|
22
|
-
|
|
23
|
-
- 工具调用 id 清理
|
|
24
|
-
- 工具结果配对修复
|
|
25
|
-
- 轮次验证 / 排序
|
|
26
|
-
- 思考签名清理
|
|
27
|
-
- 图片负载清理
|
|
28
|
-
|
|
29
|
-
如需了解对话记录存储细节,请参阅:
|
|
30
|
-
|
|
31
|
-
- [/reference/session-management-compaction](/reference/session-management-compaction)
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 运行位置
|
|
36
|
-
|
|
37
|
-
所有对话记录清理逻辑集中在嵌入式运行器中:
|
|
38
|
-
|
|
39
|
-
- 策略选择:`src/agents/transcript-policy.ts`
|
|
40
|
-
- 清理/修复应用:`src/agents/pi-embedded-runner/google.ts` 中的 `sanitizeSessionHistory`
|
|
41
|
-
|
|
42
|
-
策略根据 `provider`、`modelApi` 和 `modelId` 来决定应用哪些规则。
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## 全局规则:图片清理
|
|
47
|
-
|
|
48
|
-
图片负载始终会被清理,以防止因大小限制导致提供商端拒绝(对超大 base64 图片进行缩放/重新压缩)。
|
|
49
|
-
|
|
50
|
-
实现:
|
|
51
|
-
|
|
52
|
-
- `src/agents/pi-embedded-helpers/images.ts` 中的 `sanitizeSessionMessagesImages`
|
|
53
|
-
- `src/agents/tool-images.ts` 中的 `sanitizeContentBlocksImages`
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## 提供商矩阵(当前行为)
|
|
58
|
-
|
|
59
|
-
**OpenAI / OpenAI Codex**
|
|
60
|
-
|
|
61
|
-
- 仅图片清理。
|
|
62
|
-
- 切换到 OpenAI Responses/Codex 模型时,丢弃孤立的推理签名(没有后续内容块的独立推理项)。
|
|
63
|
-
- 不进行工具调用 id 清理。
|
|
64
|
-
- 不进行工具结果配对修复。
|
|
65
|
-
- 不进行轮次验证或重新排序。
|
|
66
|
-
- 不生成合成工具结果。
|
|
67
|
-
- 不剥离思考签名。
|
|
68
|
-
|
|
69
|
-
**Google (Generative AI / Gemini CLI / Antigravity)**
|
|
70
|
-
|
|
71
|
-
- 工具调用 id 清理:严格字母数字。
|
|
72
|
-
- 工具结果配对修复和合成工具结果。
|
|
73
|
-
- 轮次验证(Gemini 风格的轮次交替)。
|
|
74
|
-
- Google 轮次排序修正(如果历史记录以助手开头,则在前面添加一个小型用户引导消息)。
|
|
75
|
-
- Antigravity Claude:规范化思考签名;丢弃未签名的思考块。
|
|
76
|
-
|
|
77
|
-
**Anthropic / Minimax(Anthropic 兼容)**
|
|
78
|
-
|
|
79
|
-
- 工具结果配对修复和合成工具结果。
|
|
80
|
-
- 轮次验证(合并连续的用户轮次以满足严格交替要求)。
|
|
81
|
-
|
|
82
|
-
**Mistral(包括基于 model-id 的检测)**
|
|
83
|
-
|
|
84
|
-
- 工具调用 id 清理:strict9(字母数字,长度 9)。
|
|
85
|
-
|
|
86
|
-
**OpenRouter Gemini**
|
|
87
|
-
|
|
88
|
-
- 思考签名清理:剥离非 base64 的 `thought_signature` 值(保留 base64)。
|
|
89
|
-
|
|
90
|
-
**其他所有提供商**
|
|
91
|
-
|
|
92
|
-
- 仅图片清理。
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## 历史行为(2026.1.22 之前)
|
|
97
|
-
|
|
98
|
-
在 2026.1.22 版本发布之前,Symi 应用了多层对话记录清理:
|
|
99
|
-
|
|
100
|
-
- 一个**对话记录清理扩展**在每次上下文构建时运行,可以:
|
|
101
|
-
- 修复工具使用/结果配对。
|
|
102
|
-
- 清理工具调用 id(包括保留 `_`/`-` 的非严格模式)。
|
|
103
|
-
- 运行器也执行提供商特定的清理,导致重复工作。
|
|
104
|
-
- 在提供商策略之外还存在额外的变更,包括:
|
|
105
|
-
- 在持久化之前从助手文本中剥离 `<final>` 标签。
|
|
106
|
-
- 丢弃空的助手错误轮次。
|
|
107
|
-
- 截断工具调用之后的助手内容。
|
|
108
|
-
|
|
109
|
-
这种复杂性导致了跨提供商的回归问题(尤其是 `openai-responses` 的 `call_id|fc_id` 配对)。2026.1.22 的清理移除了该扩展,将逻辑集中到运行器中,并使 OpenAI 在图片清理之外**不做任何修改**。
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
permalink: /security/formal-verification/
|
|
3
|
-
summary: 针对 Symi 最高风险路径的机器检查安全模型。
|
|
4
|
-
title: 形式化验证(安全模型)
|
|
5
|
-
x-i18n:
|
|
6
|
-
generated_at: "2026-02-03T07:54:04Z"
|
|
7
|
-
model: claude-opus-4-5
|
|
8
|
-
provider: pi
|
|
9
|
-
source_hash: 8dff6ea41a37fb6b870424e4e788015c3f8a6099075eece5dbf909883c045106
|
|
10
|
-
source_path: security/formal-verification.md
|
|
11
|
-
workflow: 15
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# 形式化验证(安全模型)
|
|
15
|
-
|
|
16
|
-
本页跟踪 Symi 的**形式化安全模型**(目前是 TLA+/TLC;根据需要会添加更多)。
|
|
17
|
-
|
|
18
|
-
> 注意:一些较旧的链接可能引用了以前的项目名称。
|
|
19
|
-
|
|
20
|
-
**目标(北极星):** 提供机器检查的论证,证明 Symi 在明确假设下执行其
|
|
21
|
-
预期的安全策略(授权、会话隔离、工具门控和
|
|
22
|
-
配置错误安全)。
|
|
23
|
-
|
|
24
|
-
**目前是什么:** 一个可执行的、攻击者驱动的**安全回归测试套件**:
|
|
25
|
-
|
|
26
|
-
- 每个声明都有一个在有限状态空间上运行的模型检查。
|
|
27
|
-
- 许多声明有一个配对的**负面模型**,为现实的 bug 类别生成反例追踪。
|
|
28
|
-
|
|
29
|
-
**目前还不是什么:** 证明"Symi 在所有方面都是安全的"或完整 TypeScript 实现是正确的。
|
|
30
|
-
|
|
31
|
-
## 模型存放位置
|
|
32
|
-
|
|
33
|
-
模型维护在一个单独的仓库中:[vignesh07/symi-formal-models](https://github.com/vignesh07/symi-formal-models)。
|
|
34
|
-
|
|
35
|
-
## 重要注意事项
|
|
36
|
-
|
|
37
|
-
- 这些是**模型**,不是完整的 TypeScript 实现。模型和代码之间可能存在偏差。
|
|
38
|
-
- 结果受 TLC 探索的状态空间限制;"绿色"并不意味着在建模的假设和边界之外也是安全的。
|
|
39
|
-
- 一些声明依赖于明确的环境假设(例如,正确的部署、正确的配置输入)。
|
|
40
|
-
|
|
41
|
-
## 复现结果
|
|
42
|
-
|
|
43
|
-
目前,结果通过在本地克隆模型仓库并运行 TLC 来复现(见下文)。未来的迭代可能提供:
|
|
44
|
-
|
|
45
|
-
- 带有公开产物(反例追踪、运行日志)的 CI 运行模型
|
|
46
|
-
- 用于小型、有界检查的托管"运行此模型"工作流
|
|
47
|
-
|
|
48
|
-
开始使用:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
git clone https://github.com/vignesh07/symi-formal-models
|
|
52
|
-
cd symi-formal-models
|
|
53
|
-
|
|
54
|
-
# 需要 Java 11+(TLC 在 JVM 上运行)。
|
|
55
|
-
# 仓库内置了固定版本的 `tla2tools.jar`(TLA+ 工具)并提供 `bin/tlc` + Make 目标。
|
|
56
|
-
|
|
57
|
-
make <target>
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Gateway 网关暴露和开放 Gateway 网关配置错误
|
|
61
|
-
|
|
62
|
-
**声明:** 在没有认证的情况下绑定到 loopback 之外可能使远程入侵成为可能 / 增加暴露;令牌/密码可以阻止未认证的攻击者(根据模型假设)。
|
|
63
|
-
|
|
64
|
-
- 绿色运行:
|
|
65
|
-
- `make gateway-exposure-v2`
|
|
66
|
-
- `make gateway-exposure-v2-protected`
|
|
67
|
-
- 红色(预期):
|
|
68
|
-
- `make gateway-exposure-v2-negative`
|
|
69
|
-
|
|
70
|
-
另见:模型仓库中的 `docs/gateway-exposure-matrix.md`。
|
|
71
|
-
|
|
72
|
-
### Nodes.run 管道(最高风险能力)
|
|
73
|
-
|
|
74
|
-
**声明:** `nodes.run` 需要(a)节点命令允许列表加上声明的命令以及(b)配置时的实时批准;批准被令牌化以防止重放(在模型中)。
|
|
75
|
-
|
|
76
|
-
- 绿色运行:
|
|
77
|
-
- `make nodes-pipeline`
|
|
78
|
-
- `make approvals-token`
|
|
79
|
-
- 红色(预期):
|
|
80
|
-
- `make nodes-pipeline-negative`
|
|
81
|
-
- `make approvals-token-negative`
|
|
82
|
-
|
|
83
|
-
### 配对存储(私信门控)
|
|
84
|
-
|
|
85
|
-
**声明:** 配对请求遵守 TTL 和待处理请求上限。
|
|
86
|
-
|
|
87
|
-
- 绿色运行:
|
|
88
|
-
- `make pairing`
|
|
89
|
-
- `make pairing-cap`
|
|
90
|
-
- 红色(预期):
|
|
91
|
-
- `make pairing-negative`
|
|
92
|
-
- `make pairing-cap-negative`
|
|
93
|
-
|
|
94
|
-
### 入站门控(提及 + 控制命令绕过)
|
|
95
|
-
|
|
96
|
-
**声明:** 在需要提及的群组上下文中,未授权的"控制命令"不能绕过提及门控。
|
|
97
|
-
|
|
98
|
-
- 绿色:
|
|
99
|
-
- `make ingress-gating`
|
|
100
|
-
- 红色(预期):
|
|
101
|
-
- `make ingress-gating-negative`
|
|
102
|
-
|
|
103
|
-
### 路由/会话键隔离
|
|
104
|
-
|
|
105
|
-
**声明:** 来自不同对等方的私信不会折叠到同一会话中,除非明确链接/配置。
|
|
106
|
-
|
|
107
|
-
- 绿色:
|
|
108
|
-
- `make routing-isolation`
|
|
109
|
-
- 红色(预期):
|
|
110
|
-
- `make routing-isolation-negative`
|
|
111
|
-
|
|
112
|
-
## v1++:额外的有界模型(并发、重试、追踪正确性)
|
|
113
|
-
|
|
114
|
-
这些是后续模型,围绕真实世界的故障模式(非原子更新、重试和消息扇出)提高保真度。
|
|
115
|
-
|
|
116
|
-
### 配对存储并发 / 幂等性
|
|
117
|
-
|
|
118
|
-
**声明:** 配对存储应该在交错情况下也强制执行 `MaxPending` 和幂等性(即"检查然后写入"必须是原子/加锁的;刷新不应创建重复项)。
|
|
119
|
-
|
|
120
|
-
这意味着:
|
|
121
|
-
|
|
122
|
-
- 在并发请求下,你不能超过渠道的 `MaxPending`。
|
|
123
|
-
- 对同一 `(channel, sender)` 的重复请求/刷新不应创建重复的活跃待处理行。
|
|
124
|
-
|
|
125
|
-
- 绿色运行:
|
|
126
|
-
- `make pairing-race`(原子/加锁的上限检查)
|
|
127
|
-
- `make pairing-idempotency`
|
|
128
|
-
- `make pairing-refresh`
|
|
129
|
-
- `make pairing-refresh-race`
|
|
130
|
-
- 红色(预期):
|
|
131
|
-
- `make pairing-race-negative`(非原子 begin/commit 上限竞争)
|
|
132
|
-
- `make pairing-idempotency-negative`
|
|
133
|
-
- `make pairing-refresh-negative`
|
|
134
|
-
- `make pairing-refresh-race-negative`
|
|
135
|
-
|
|
136
|
-
### 入站追踪关联 / 幂等性
|
|
137
|
-
|
|
138
|
-
**声明:** 摄入应在扇出过程中保持追踪关联,并在提供商重试下保持幂等。
|
|
139
|
-
|
|
140
|
-
这意味着:
|
|
141
|
-
|
|
142
|
-
- 当一个外部事件变成多个内部消息时,每个部分都保持相同的追踪/事件标识。
|
|
143
|
-
- 重试不会导致重复处理。
|
|
144
|
-
- 如果提供商事件 ID 缺失,去重回退到安全键(例如,追踪 ID)以避免丢弃不同的事件。
|
|
145
|
-
|
|
146
|
-
- 绿色:
|
|
147
|
-
- `make ingress-trace`
|
|
148
|
-
- `make ingress-trace2`
|
|
149
|
-
- `make ingress-idempotency`
|
|
150
|
-
- `make ingress-dedupe-fallback`
|
|
151
|
-
- 红色(预期):
|
|
152
|
-
- `make ingress-trace-negative`
|
|
153
|
-
- `make ingress-trace2-negative`
|
|
154
|
-
- `make ingress-idempotency-negative`
|
|
155
|
-
- `make ingress-dedupe-fallback-negative`
|
|
156
|
-
|
|
157
|
-
### 路由 dmScope 优先级 + identityLinks
|
|
158
|
-
|
|
159
|
-
**声明:** 路由必须默认保持私信会话隔离,只有在明确配置时才折叠会话(渠道优先级 + 身份链接)。
|
|
160
|
-
|
|
161
|
-
这意味着:
|
|
162
|
-
|
|
163
|
-
- 渠道特定的 dmScope 覆盖必须优先于全局默认值。
|
|
164
|
-
- identityLinks 应该只在明确链接的组内折叠,而不是跨不相关的对等方。
|
|
165
|
-
|
|
166
|
-
- 绿色:
|
|
167
|
-
- `make routing-precedence`
|
|
168
|
-
- `make routing-identitylinks`
|
|
169
|
-
- 红色(预期):
|
|
170
|
-
- `make routing-precedence-negative`
|
|
171
|
-
- `make routing-identitylinks-negative`
|