@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,122 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 发布新的 npm 版本
|
|
4
|
-
- 发布新的 macOS 应用版本
|
|
5
|
-
- 发布前验证元数据
|
|
6
|
-
summary: npm + macOS 应用的逐步发布清单
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-03T10:09:28Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: 1a684bc26665966eb3c9c816d58d18eead008fd710041181ece38c21c5ff1c62
|
|
12
|
-
source_path: reference/RELEASING.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# 发布清单(npm + macOS)
|
|
17
|
-
|
|
18
|
-
从仓库根目录使用 `pnpm`(Node 22+)。在打标签/发布前保持工作树干净。
|
|
19
|
-
|
|
20
|
-
## 操作员触发
|
|
21
|
-
|
|
22
|
-
当操作员说"release"时,立即执行此预检(除非遇到阻碍否则不要额外提问):
|
|
23
|
-
|
|
24
|
-
- 阅读本文档和 `docs/platforms/mac/release.md`。
|
|
25
|
-
- 从 `~/.profile` 加载环境变量并确认 `SPARKLE_PRIVATE_KEY_FILE` + App Store Connect 变量已设置(SPARKLE_PRIVATE_KEY_FILE 应位于 `~/.profile` 中)。
|
|
26
|
-
- 如需要,使用 `~/Library/CloudStorage/Dropbox/Backup/Sparkle` 中的 Sparkle 密钥。
|
|
27
|
-
|
|
28
|
-
1. **版本和元数据**
|
|
29
|
-
|
|
30
|
-
- [ ] 更新 `package.json` 版本(例如 `2026.1.29`)。
|
|
31
|
-
- [ ] 运行 `pnpm plugins:sync` 以对齐扩展包版本和变更日志。
|
|
32
|
-
- [ ] 更新 CLI/版本字符串:[`src/cli/program.ts`](https://github.com/symi/symi/blob/main/src/cli/program.ts) 和 [`src/provider-web.ts`](https://github.com/symi/symi/blob/main/src/provider-web.ts) 中的 Baileys user agent。
|
|
33
|
-
- [ ] 确认包元数据(name、description、repository、keywords、license)以及 `bin` 映射指向 [`symi.mjs`](https://github.com/symi/symi/blob/main/symi.mjs) 作为 `symi`。
|
|
34
|
-
- [ ] 如果依赖项有变化,运行 `pnpm install` 确保 `pnpm-lock.yaml` 是最新的。
|
|
35
|
-
|
|
36
|
-
2. **构建和产物**
|
|
37
|
-
|
|
38
|
-
- [ ] 如果 A2UI 输入有变化,运行 `pnpm canvas:a2ui:bundle` 并提交更新后的 [`src/canvas-host/a2ui/a2ui.bundle.js`](https://github.com/symi/symi/blob/main/src/canvas-host/a2ui/a2ui.bundle.js)。
|
|
39
|
-
- [ ] `pnpm run build`(重新生成 `dist/`)。
|
|
40
|
-
- [ ] 验证 npm 包的 `files` 包含所有必需的 `dist/*` 文件夹(特别是用于 headless node + ACP CLI 的 `dist/node-host/**` 和 `dist/acp/**`)。
|
|
41
|
-
- [ ] 确认 `dist/build-info.json` 存在并包含预期的 `commit` 哈希(CLI 横幅在 npm 安装时使用此信息)。
|
|
42
|
-
- [ ] 可选:构建后运行 `npm pack --pack-destination /tmp`;检查 tarball 内容并保留以备 GitHub 发布使用(**不要**提交它)。
|
|
43
|
-
|
|
44
|
-
3. **变更日志和文档**
|
|
45
|
-
|
|
46
|
-
- [ ] 更新 `CHANGELOG.md`,添加面向用户的亮点(如果文件不存在则创建);按版本严格降序排列条目。
|
|
47
|
-
- [ ] 确保 README 示例/标志与当前 CLI 行为匹配(特别是新命令或选项)。
|
|
48
|
-
|
|
49
|
-
4. **验证**
|
|
50
|
-
|
|
51
|
-
- [ ] `pnpm build`
|
|
52
|
-
- [ ] `pnpm check`
|
|
53
|
-
- [ ] `pnpm test`(如需覆盖率输出则使用 `pnpm test:coverage`)
|
|
54
|
-
- [ ] `pnpm release:check`(验证 npm pack 内容)
|
|
55
|
-
- [ ] `SYMI_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke`(Docker 安装冒烟测试,快速路径;发布前必需)
|
|
56
|
-
- 如果已知上一个 npm 发布版本有问题,为预安装步骤设置 `SYMI_INSTALL_SMOKE_PREVIOUS=<last-good-version>` 或 `SYMI_INSTALL_SMOKE_SKIP_PREVIOUS=1`。
|
|
57
|
-
- [ ](可选)完整安装程序冒烟测试(添加非 root + CLI 覆盖):`pnpm test:install:smoke`
|
|
58
|
-
- [ ](可选)安装程序 E2E(Docker,运行 `curl -fsSL https://jaysteelmind.github.io/getsymi/install.sh | bash`,新手引导,然后运行真实工具调用):
|
|
59
|
-
- `pnpm test:install:e2e:openai`(需要 `OPENAI_API_KEY`)
|
|
60
|
-
- `pnpm test:install:e2e:anthropic`(需要 `ANTHROPIC_API_KEY`)
|
|
61
|
-
- `pnpm test:install:e2e`(需要两个密钥;运行两个提供商)
|
|
62
|
-
- [ ](可选)如果你的更改影响发送/接收路径,抽查 Web Gateway 网关。
|
|
63
|
-
|
|
64
|
-
5. **macOS 应用(Sparkle)**
|
|
65
|
-
|
|
66
|
-
- [ ] 构建并签名 macOS 应用,然后压缩以供分发。
|
|
67
|
-
- [ ] 生成 Sparkle appcast(通过 [`scripts/make_appcast.sh`](https://github.com/symi/symi/blob/main/scripts/make_appcast.sh) 生成 HTML 注释)并更新 `appcast.xml`。
|
|
68
|
-
- [ ] 保留应用 zip(和可选的 dSYM zip)以便附加到 GitHub 发布。
|
|
69
|
-
- [ ] 按照 [macOS 发布](/platforms/mac/release) 获取确切命令和所需环境变量。
|
|
70
|
-
- `APP_BUILD` 必须是数字且单调递增(不带 `-beta`),以便 Sparkle 正确比较版本。
|
|
71
|
-
- 如果进行公证,使用从 App Store Connect API 环境变量创建的 `symi-notary` 钥匙串配置文件(参见 [macOS 发布](/platforms/mac/release))。
|
|
72
|
-
|
|
73
|
-
6. **发布(npm)**
|
|
74
|
-
|
|
75
|
-
- [ ] 确认 git 状态干净;根据需要提交并推送。
|
|
76
|
-
- [ ] 如需要,`npm login`(验证 2FA)。
|
|
77
|
-
- [ ] `npm publish --access public`(预发布版本使用 `--tag beta`)。
|
|
78
|
-
- [ ] 验证注册表:`npm view symi version`、`npm view symi dist-tags` 和 `npx -y symi@X.Y.Z --version`(或 `--help`)。
|
|
79
|
-
|
|
80
|
-
### 故障排除(来自 2.0.0-beta2 发布的笔记)
|
|
81
|
-
|
|
82
|
-
- **npm pack/publish 挂起或产生巨大 tarball**:`dist/Symi.app` 中的 macOS 应用包(和发布 zip)被扫入包中。通过 `package.json` 的 `files` 白名单发布内容来修复(包含 dist 子目录、docs、skills;排除应用包)。用 `npm pack --dry-run` 确认 `dist/Symi.app` 未列出。
|
|
83
|
-
- **npm auth dist-tags 的 Web 循环**:使用旧版认证以获取 OTP 提示:
|
|
84
|
-
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add symi@X.Y.Z latest`
|
|
85
|
-
- **`npx` 验证失败并显示 `ECOMPROMISED: Lock compromised`**:使用新缓存重试:
|
|
86
|
-
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y symi@X.Y.Z --version`
|
|
87
|
-
- **延迟修复后需要重新指向标签**:强制更新并推送标签,然后确保 GitHub 发布资产仍然匹配:
|
|
88
|
-
- `git tag -f vX.Y.Z && git push -f origin vX.Y.Z`
|
|
89
|
-
|
|
90
|
-
7. **GitHub 发布 + appcast**
|
|
91
|
-
|
|
92
|
-
- [ ] 打标签并推送:`git tag vX.Y.Z && git push origin vX.Y.Z`(或 `git push --tags`)。
|
|
93
|
-
- [ ] 为 `vX.Y.Z` 创建/刷新 GitHub 发布,**标题为 `symi X.Y.Z`**(不仅仅是标签);正文应包含该版本的**完整**变更日志部分(亮点 + 更改 + 修复),内联显示(无裸链接),且**不得在正文中重复标题**。
|
|
94
|
-
- [ ] 附加产物:`npm pack` tarball(可选)、`Symi-X.Y.Z.zip` 和 `Symi-X.Y.Z.dSYM.zip`(如果生成)。
|
|
95
|
-
- [ ] 提交更新后的 `appcast.xml` 并推送(Sparkle 从 main 获取源)。
|
|
96
|
-
- [ ] 从干净的临时目录(无 `package.json`),运行 `npx -y symi@X.Y.Z send --help` 确认安装/CLI 入口点正常工作。
|
|
97
|
-
- [ ] 宣布/分享发布说明。
|
|
98
|
-
|
|
99
|
-
## 插件发布范围(npm)
|
|
100
|
-
|
|
101
|
-
我们只发布 `@symi/*` 范围下的**现有 npm 插件**。不在 npm 上的内置插件保持**仅磁盘树**(仍在 `extensions/**` 中发布)。
|
|
102
|
-
|
|
103
|
-
获取列表的流程:
|
|
104
|
-
|
|
105
|
-
1. `npm search @symi --json` 并捕获包名。
|
|
106
|
-
2. 与 `extensions/*/package.json` 名称比较。
|
|
107
|
-
3. 只发布**交集**(已在 npm 上)。
|
|
108
|
-
|
|
109
|
-
当前 npm 插件列表(根据需要更新):
|
|
110
|
-
|
|
111
|
-
- @symi/bluebubbles
|
|
112
|
-
- @symi/diagnostics-otel
|
|
113
|
-
- @symi/pipeline
|
|
114
|
-
- @symi/matrix
|
|
115
|
-
- @symi/msteams
|
|
116
|
-
- @symi/nextcloud-talk
|
|
117
|
-
- @symi/nostr
|
|
118
|
-
- @symi/voice-call
|
|
119
|
-
- @symi/zalo
|
|
120
|
-
- @symi/zalouser
|
|
121
|
-
|
|
122
|
-
发布说明还必须标注**默认未启用**的**新可选内置插件**(例如:`tlon`)。
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 你想了解哪些功能可能调用付费 API
|
|
4
|
-
- 你需要审核密钥、费用和用量可见性
|
|
5
|
-
- 你正在解释 /status 或 /usage 的费用报告
|
|
6
|
-
summary: 审核哪些功能会产生费用、使用了哪些密钥以及如何查看用量
|
|
7
|
-
title: API 用量与费用
|
|
8
|
-
x-i18n:
|
|
9
|
-
generated_at: "2026-02-01T21:37:08Z"
|
|
10
|
-
model: claude-opus-4-5
|
|
11
|
-
provider: pi
|
|
12
|
-
source_hash: 807d0d88801e919a8246517820644db1e6271d165fa376b2e637f05a9121d8b1
|
|
13
|
-
source_path: reference/api-usage-costs.md
|
|
14
|
-
workflow: 15
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# API 用量与费用
|
|
18
|
-
|
|
19
|
-
本文档列出了**可能调用 API 密钥的功能**及其费用的显示位置。重点介绍 Symi 中可能产生提供商用量或付费 API 调用的功能。
|
|
20
|
-
|
|
21
|
-
## 费用显示位置(聊天 + CLI)
|
|
22
|
-
|
|
23
|
-
**每会话费用快照**
|
|
24
|
-
|
|
25
|
-
- `/status` 显示当前会话模型、上下文用量和上次响应的 token 数。
|
|
26
|
-
- 如果模型使用 **API 密钥认证**,`/status` 还会显示上次回复的**预估费用**。
|
|
27
|
-
|
|
28
|
-
**每条消息费用页脚**
|
|
29
|
-
|
|
30
|
-
- `/usage full` 在每条回复后附加用量页脚,包括**预估费用**(仅限 API 密钥)。
|
|
31
|
-
- `/usage tokens` 仅显示 token 数;OAuth 流程会隐藏美元费用。
|
|
32
|
-
|
|
33
|
-
**CLI 用量窗口(提供商配额)**
|
|
34
|
-
|
|
35
|
-
- `symi status --usage` 和 `symi channels list` 显示提供商**用量窗口**(配额快照,非每条消息的费用)。
|
|
36
|
-
|
|
37
|
-
详情和示例请参阅 [Token 用量与费用](/reference/token-use)。
|
|
38
|
-
|
|
39
|
-
## 密钥的发现方式
|
|
40
|
-
|
|
41
|
-
Symi 可以从以下来源获取凭据:
|
|
42
|
-
|
|
43
|
-
- **认证配置文件**(按智能体配置,存储在 `auth-profiles.json` 中)。
|
|
44
|
-
- **环境变量**(例如 `OPENAI_API_KEY`、`BRAVE_API_KEY`、`FIRECRAWL_API_KEY`)。
|
|
45
|
-
- **配置文件**(`models.providers.*.apiKey`、`tools.web.search.*`、`tools.web.fetch.firecrawl.*`、`memorySearch.*`、`talk.apiKey`)。
|
|
46
|
-
- **Skills**(`skills.entries.<name>.apiKey`),可能会将密钥导出到 Skills 进程的环境变量中。
|
|
47
|
-
|
|
48
|
-
## 可能消耗密钥的功能
|
|
49
|
-
|
|
50
|
-
### 1)核心模型响应(聊天 + 工具)
|
|
51
|
-
|
|
52
|
-
每次回复或工具调用都使用**当前模型提供商**(OpenAI、Anthropic 等)。这是用量和费用的主要来源。
|
|
53
|
-
|
|
54
|
-
定价配置请参阅[模型](/providers/models),显示方式请参阅 [Token 用量与费用](/reference/token-use)。
|
|
55
|
-
|
|
56
|
-
### 2)媒体理解(音频/图像/视频)
|
|
57
|
-
|
|
58
|
-
入站媒体可以在回复生成前进行摘要/转录。这会使用模型/提供商 API。
|
|
59
|
-
|
|
60
|
-
- 音频:OpenAI / Groq / Deepgram(当密钥存在时**自动启用**)。
|
|
61
|
-
- 图像:OpenAI / Anthropic / Google。
|
|
62
|
-
- 视频:Google。
|
|
63
|
-
|
|
64
|
-
请参阅[媒体理解](/nodes/media-understanding)。
|
|
65
|
-
|
|
66
|
-
### 3)记忆嵌入 + 语义搜索
|
|
67
|
-
|
|
68
|
-
语义记忆搜索在配置为远程提供商时使用**嵌入 API**:
|
|
69
|
-
|
|
70
|
-
- `memorySearch.provider = "openai"` → OpenAI 嵌入
|
|
71
|
-
- `memorySearch.provider = "gemini"` → Gemini 嵌入
|
|
72
|
-
- 本地嵌入失败时可选回退到 OpenAI
|
|
73
|
-
|
|
74
|
-
你可以使用 `memorySearch.provider = "local"` 保持本地运行(无 API 用量)。
|
|
75
|
-
|
|
76
|
-
请参阅[记忆](/concepts/memory)。
|
|
77
|
-
|
|
78
|
-
### 4)网页搜索工具(Brave / 通过 OpenRouter 使用 Perplexity)
|
|
79
|
-
|
|
80
|
-
`web_search` 使用 API 密钥,可能产生使用费用:
|
|
81
|
-
|
|
82
|
-
- **Brave Search API**:`BRAVE_API_KEY` 或 `tools.web.search.apiKey`
|
|
83
|
-
- **Perplexity**(通过 OpenRouter):`PERPLEXITY_API_KEY` 或 `OPENROUTER_API_KEY`
|
|
84
|
-
|
|
85
|
-
**Brave 免费套餐(额度充裕):**
|
|
86
|
-
|
|
87
|
-
- **每月 2,000 次请求**
|
|
88
|
-
- **每秒 1 次请求**
|
|
89
|
-
- **需要信用卡**进行验证(除非升级否则不会收费)
|
|
90
|
-
|
|
91
|
-
请参阅[网页工具](/tools/web)。
|
|
92
|
-
|
|
93
|
-
### 5)网页抓取工具(Firecrawl)
|
|
94
|
-
|
|
95
|
-
`web_fetch` 在存在 API 密钥时可以调用 **Firecrawl**:
|
|
96
|
-
|
|
97
|
-
- `FIRECRAWL_API_KEY` 或 `tools.web.fetch.firecrawl.apiKey`
|
|
98
|
-
|
|
99
|
-
如果未配置 Firecrawl,该工具会回退到直接抓取 + 可读性提取(无付费 API)。
|
|
100
|
-
|
|
101
|
-
请参阅[网页工具](/tools/web)。
|
|
102
|
-
|
|
103
|
-
### 6)提供商用量快照(状态/健康检查)
|
|
104
|
-
|
|
105
|
-
某些状态命令会调用**提供商用量端点**以显示配额窗口或认证健康状态。这些通常是低频调用,但仍会访问提供商 API:
|
|
106
|
-
|
|
107
|
-
- `symi status --usage`
|
|
108
|
-
- `symi models status --json`
|
|
109
|
-
|
|
110
|
-
请参阅[模型 CLI](/cli/models)。
|
|
111
|
-
|
|
112
|
-
### 7)压缩保护摘要
|
|
113
|
-
|
|
114
|
-
压缩保护功能可以使用**当前模型**对会话历史进行摘要,运行时会调用提供商 API。
|
|
115
|
-
|
|
116
|
-
请参阅[会话管理 + 压缩](/reference/session-management-compaction)。
|
|
117
|
-
|
|
118
|
-
### 8)模型扫描/探测
|
|
119
|
-
|
|
120
|
-
`symi models scan` 可以探测 OpenRouter 模型,启用探测时会使用 `OPENROUTER_API_KEY`。
|
|
121
|
-
|
|
122
|
-
请参阅[模型 CLI](/cli/models)。
|
|
123
|
-
|
|
124
|
-
### 9)语音对话(Talk)
|
|
125
|
-
|
|
126
|
-
语音对话模式在配置后可以调用 **ElevenLabs**:
|
|
127
|
-
|
|
128
|
-
- `ELEVENLABS_API_KEY` 或 `talk.apiKey`
|
|
129
|
-
|
|
130
|
-
请参阅[语音对话模式](/nodes/talk)。
|
|
131
|
-
|
|
132
|
-
### 10)Skills(第三方 API)
|
|
133
|
-
|
|
134
|
-
Skills 可以在 `skills.entries.<name>.apiKey` 中存储 `apiKey`。如果 Skills 使用该密钥调用外部 API,则会根据 Skills 的提供商产生费用。
|
|
135
|
-
|
|
136
|
-
请参阅[Skills](/tools/skills)。
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 你想了解项目背景故事或贡献者致谢信息
|
|
4
|
-
summary: 项目起源、贡献者和许可证。
|
|
5
|
-
title: 致谢
|
|
6
|
-
x-i18n:
|
|
7
|
-
generated_at: "2026-02-04T17:53:19Z"
|
|
8
|
-
model: claude-opus-4-5
|
|
9
|
-
provider: pi
|
|
10
|
-
source_hash: d55e520313e131025b22cb20b3d2fbd44619e1668d09b5bd9d56d7df019bc46c
|
|
11
|
-
source_path: reference/credits.md
|
|
12
|
-
workflow: 15
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 名称由来
|
|
16
|
-
|
|
17
|
-
Symi = SHELL + TARDIS,因为每只太空龙虾都需要一台时空机器。
|
|
18
|
-
|
|
19
|
-
## 致谢
|
|
20
|
-
|
|
21
|
-
- **Peter Steinberger** ([@steipete](https://x.com/steipete)) - 创建者,龙虾语者
|
|
22
|
-
- **Mario Zechner** ([@badlogicc](https://x.com/badlogicgames)) - Pi 创建者,安全渗透测试员
|
|
23
|
-
- **Symi** - 那只要求取个更好名字的太空龙虾
|
|
24
|
-
|
|
25
|
-
## 核心贡献者
|
|
26
|
-
|
|
27
|
-
- **Maxim Vovshin** (@Hyaxia, 36747317+Hyaxia@users.noreply.github.com) - Blogwatcher skill
|
|
28
|
-
- **Nacho Iacovino** (@nachoiacovino, nacho.iacovino@gmail.com) - 位置解析(Telegram 和 WhatsApp)
|
|
29
|
-
|
|
30
|
-
## 许可证
|
|
31
|
-
|
|
32
|
-
MIT - 像海洋中的龙虾一样自由。
|
|
33
|
-
|
|
34
|
-
> "我们都只是在玩自己的提示词而已。"(某个 AI,大概是 token 吸多了)
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 更新设备型号标识符映射或 NOTICE/许可证文件
|
|
4
|
-
- 更改实例 UI 中设备名称的显示方式
|
|
5
|
-
summary: Symi 如何内置 Apple 设备型号标识符以在 macOS 应用中显示友好名称。
|
|
6
|
-
title: 设备型号数据库
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-01T21:37:07Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: 1d99c2538a0d8fdd80fa468fa402f63479ef2522e83745a0a46527a86238aeb2
|
|
12
|
-
source_path: reference/device-models.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# 设备型号数据库(友好名称)
|
|
17
|
-
|
|
18
|
-
macOS 配套应用通过将 Apple 型号标识符(例如 `iPad16,6`、`Mac16,6`)映射为人类可读的名称,在**实例** UI 中显示友好的 Apple 设备型号名称。
|
|
19
|
-
|
|
20
|
-
该映射以 JSON 形式内置于:
|
|
21
|
-
|
|
22
|
-
- `apps/macos/Sources/Symi/Resources/DeviceModels/`
|
|
23
|
-
|
|
24
|
-
## 数据来源
|
|
25
|
-
|
|
26
|
-
我们目前内置的映射来自 MIT 许可的仓库:
|
|
27
|
-
|
|
28
|
-
- `kyle-seongwoo-jun/apple-device-identifiers`
|
|
29
|
-
|
|
30
|
-
为保持构建的确定性,JSON 文件固定到特定的上游提交(记录在 `apps/macos/Sources/Symi/Resources/DeviceModels/NOTICE.md` 中)。
|
|
31
|
-
|
|
32
|
-
## 更新数据库
|
|
33
|
-
|
|
34
|
-
1. 选择要固定的上游提交(iOS 和 macOS 各一个)。
|
|
35
|
-
2. 更新 `apps/macos/Sources/Symi/Resources/DeviceModels/NOTICE.md` 中的提交哈希。
|
|
36
|
-
3. 重新下载固定到这些提交的 JSON 文件:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
IOS_COMMIT="<commit sha for ios-device-identifiers.json>"
|
|
40
|
-
MAC_COMMIT="<commit sha for mac-device-identifiers.json>"
|
|
41
|
-
|
|
42
|
-
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${IOS_COMMIT}/ios-device-identifiers.json" \
|
|
43
|
-
-o apps/macos/Sources/Symi/Resources/DeviceModels/ios-device-identifiers.json
|
|
44
|
-
|
|
45
|
-
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${MAC_COMMIT}/mac-device-identifiers.json" \
|
|
46
|
-
-o apps/macos/Sources/Symi/Resources/DeviceModels/mac-device-identifiers.json
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
4. 确保 `apps/macos/Sources/Symi/Resources/DeviceModels/LICENSE.apple-device-identifiers.txt` 仍与上游一致(如果上游许可证发生变更,请替换该文件)。
|
|
50
|
-
5. 验证 macOS 应用能够正常构建(无警告):
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
swift build --package-path apps/macos
|
|
54
|
-
```
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 添加或更改外部 CLI 集成
|
|
4
|
-
- 调试 RPC 适配器(signal-cli、imsg)
|
|
5
|
-
summary: 外部 CLI(signal-cli、imsg)的 RPC 适配器和 Gateway 网关模式
|
|
6
|
-
title: RPC 适配器
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-03T07:53:44Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: c04edc952390304a22a3a4763aca00a0311b38d390477ec0be5fe485ec257fa7
|
|
12
|
-
source_path: reference/rpc.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# RPC 适配器
|
|
17
|
-
|
|
18
|
-
Symi 通过 JSON-RPC 集成外部 CLI。目前使用两种模式。
|
|
19
|
-
|
|
20
|
-
## 模式 A:HTTP 守护进程(signal-cli)
|
|
21
|
-
|
|
22
|
-
- `signal-cli` 作为守护进程运行,通过 HTTP 使用 JSON-RPC。
|
|
23
|
-
- 事件流是 SSE(`/api/v1/events`)。
|
|
24
|
-
- 健康探测:`/api/v1/check`。
|
|
25
|
-
- 当 `channels.signal.autoStart=true` 时,Symi 负责生命周期管理。
|
|
26
|
-
|
|
27
|
-
设置和端点参见 [Signal](/channels/signal)。
|
|
28
|
-
|
|
29
|
-
## 模式 B:stdio 子进程(imsg)
|
|
30
|
-
|
|
31
|
-
- Symi 将 `imsg rpc` 作为子进程生成。
|
|
32
|
-
- JSON-RPC 是通过 stdin/stdout 的行分隔格式(每行一个 JSON 对象)。
|
|
33
|
-
- 无需 TCP 端口,无需守护进程。
|
|
34
|
-
|
|
35
|
-
使用的核心方法:
|
|
36
|
-
|
|
37
|
-
- `watch.subscribe` → 通知(`method: "message"`)
|
|
38
|
-
- `watch.unsubscribe`
|
|
39
|
-
- `send`
|
|
40
|
-
- `chats.list`(探测/诊断)
|
|
41
|
-
|
|
42
|
-
设置和寻址(首选 `chat_id`)参见 [iMessage](/channels/imessage)。
|
|
43
|
-
|
|
44
|
-
## 适配器指南
|
|
45
|
-
|
|
46
|
-
- Gateway 网关负责进程(启动/停止与提供商生命周期绑定)。
|
|
47
|
-
- 保持 RPC 客户端弹性:超时、退出时重启。
|
|
48
|
-
- 优先使用稳定 ID(例如 `chat_id`)而非显示字符串。
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 你需要调试会话 ID、记录 JSONL 或 sessions.json 字段
|
|
4
|
-
- 你正在更改自动压缩行为或添加"压缩前"内务处理
|
|
5
|
-
- 你想实现记忆刷新或静默系统回合
|
|
6
|
-
summary: 深入了解:会话存储 + 记录、生命周期和(自动)压缩内部机制
|
|
7
|
-
title: 会话管理深入了解
|
|
8
|
-
x-i18n:
|
|
9
|
-
generated_at: "2026-02-03T07:54:38Z"
|
|
10
|
-
model: claude-opus-4-5
|
|
11
|
-
provider: pi
|
|
12
|
-
source_hash: bf3715770ba634363933f6038117b6a91af11c62f5191aaaf97e6bce099bc120
|
|
13
|
-
source_path: reference/session-management-compaction.md
|
|
14
|
-
workflow: 15
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# 会话管理与压缩(深入了解)
|
|
18
|
-
|
|
19
|
-
本文档解释 Symi 如何端到端管理会话:
|
|
20
|
-
|
|
21
|
-
- **会话路由**(入站消息如何映射到 `sessionKey`)
|
|
22
|
-
- **会话存储**(`sessions.json`)及其跟踪的内容
|
|
23
|
-
- **记录持久化**(`*.jsonl`)及其结构
|
|
24
|
-
- **记录清理**(运行前的提供商特定修复)
|
|
25
|
-
- **上下文限制**(上下文窗口 vs 跟踪的 token 数)
|
|
26
|
-
- **压缩**(手动 + 自动压缩)以及在何处挂接压缩前工作
|
|
27
|
-
- **静默内务处理**(例如不应产生用户可见输出的记忆写入)
|
|
28
|
-
|
|
29
|
-
如果你想先了解更高层次的概述,请从以下内容开始:
|
|
30
|
-
|
|
31
|
-
- [/concepts/session](/concepts/session)
|
|
32
|
-
- [/concepts/compaction](/concepts/compaction)
|
|
33
|
-
- [/concepts/session-pruning](/concepts/session-pruning)
|
|
34
|
-
- [/reference/transcript-hygiene](/reference/transcript-hygiene)
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## 事实来源:Gateway 网关
|
|
39
|
-
|
|
40
|
-
Symi 围绕一个拥有会话状态的单一 **Gateway 网关进程**设计。
|
|
41
|
-
|
|
42
|
-
- UI(macOS 应用、web 控制 UI、TUI)应该向 Gateway 网关查询会话列表和 token 计数。
|
|
43
|
-
- 在远程模式下,会话文件在远程主机上;"检查你的本地 Mac 文件"不会反映 Gateway 网关正在使用的内容。
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 两个持久化层
|
|
48
|
-
|
|
49
|
-
Symi 在两个层中持久化会话:
|
|
50
|
-
|
|
51
|
-
1. **会话存储(`sessions.json`)**
|
|
52
|
-
- 键/值映射:`sessionKey -> SessionEntry`
|
|
53
|
-
- 小型、可变、可安全编辑(或删除条目)
|
|
54
|
-
- 跟踪会话元数据(当前会话 ID、最后活动时间、开关、token 计数器等)
|
|
55
|
-
|
|
56
|
-
2. **记录(`<sessionId>.jsonl`)**
|
|
57
|
-
- 具有树形结构的仅追加记录(条目有 `id` + `parentId`)
|
|
58
|
-
- 存储实际对话 + 工具调用 + 压缩摘要
|
|
59
|
-
- 用于为后续回合重建模型上下文
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 磁盘上的位置
|
|
64
|
-
|
|
65
|
-
在 Gateway 网关主机上,每个智能体:
|
|
66
|
-
|
|
67
|
-
- 存储:`~/.symi/agents/<agentId>/sessions/sessions.json`
|
|
68
|
-
- 记录:`~/.symi/agents/<agentId>/sessions/<sessionId>.jsonl`
|
|
69
|
-
- Telegram 话题会话:`.../<sessionId>-topic-<threadId>.jsonl`
|
|
70
|
-
|
|
71
|
-
Symi 通过 `src/config/sessions.ts` 解析这些位置。
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## 会话键(`sessionKey`)
|
|
76
|
-
|
|
77
|
-
`sessionKey` 标识你所在的*哪个对话桶*(路由 + 隔离)。
|
|
78
|
-
|
|
79
|
-
常见模式:
|
|
80
|
-
|
|
81
|
-
- 主要/直接聊天(每个智能体):`agent:<agentId>:<mainKey>`(默认 `main`)
|
|
82
|
-
- 群组:`agent:<agentId>:<channel>:group:<id>`
|
|
83
|
-
- 定时任务:`cron:<job.id>`
|
|
84
|
-
- Webhook:`hook:<uuid>`(除非被覆盖)
|
|
85
|
-
|
|
86
|
-
规范规则记录在 [/concepts/session](/concepts/session)。
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## 会话 ID(`sessionId`)
|
|
91
|
-
|
|
92
|
-
每个 `sessionKey` 指向一个当前的 `sessionId`(继续对话的记录文件)。
|
|
93
|
-
|
|
94
|
-
经验法则:
|
|
95
|
-
|
|
96
|
-
- **重置**(`/new`、`/reset`)为该 `sessionKey` 创建一个新的 `sessionId`。
|
|
97
|
-
- **每日重置**(默认 Gateway 网关主机本地时间凌晨 4:00)在重置边界后的下一条消息时创建一个新的 `sessionId`。
|
|
98
|
-
- **空闲过期**(`session.reset.idleMinutes` 或旧版 `session.idleMinutes`)当消息在空闲窗口后到达时创建一个新的 `sessionId`。当同时配置了每日和空闲时,以先过期者为准。
|
|
99
|
-
|
|
100
|
-
实现细节:决策发生在 `src/auto-reply/reply/session.ts` 的 `initSessionState()` 中。
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## 会话存储模式(`sessions.json`)
|
|
105
|
-
|
|
106
|
-
存储的值类型是 `src/config/sessions.ts` 中的 `SessionEntry`。
|
|
107
|
-
|
|
108
|
-
关键字段(不完整):
|
|
109
|
-
|
|
110
|
-
- `sessionId`:当前记录 ID(文件名从此派生,除非设置了 `sessionFile`)
|
|
111
|
-
- `updatedAt`:最后活动时间戳
|
|
112
|
-
- `sessionFile`:可选的显式记录路径覆盖
|
|
113
|
-
- `chatType`:`direct | group | room`(帮助 UI 和发送策略)
|
|
114
|
-
- `provider`、`subject`、`room`、`space`、`displayName`:群组/频道标签的元数据
|
|
115
|
-
- 开关:
|
|
116
|
-
- `thinkingLevel`、`verboseLevel`、`reasoningLevel`、`elevatedLevel`
|
|
117
|
-
- `sendPolicy`(每会话覆盖)
|
|
118
|
-
- 模型选择:
|
|
119
|
-
- `providerOverride`、`modelOverride`、`authProfileOverride`
|
|
120
|
-
- Token 计数器(尽力而为/依赖提供商):
|
|
121
|
-
- `inputTokens`、`outputTokens`、`totalTokens`、`contextTokens`
|
|
122
|
-
- `compactionCount`:此会话键完成自动压缩的次数
|
|
123
|
-
- `memoryFlushAt`:最后一次压缩前记忆刷新的时间戳
|
|
124
|
-
- `memoryFlushCompactionCount`:最后一次刷新运行时的压缩计数
|
|
125
|
-
|
|
126
|
-
存储可以安全编辑,但 Gateway 网关是权威:它可能会在会话运行时重写或重新水合条目。
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## 记录结构(`*.jsonl`)
|
|
131
|
-
|
|
132
|
-
记录由 `@mariozechner/pi-coding-agent` 的 `SessionManager` 管理。
|
|
133
|
-
|
|
134
|
-
文件是 JSONL 格式:
|
|
135
|
-
|
|
136
|
-
- 第一行:会话头(`type: "session"`,包括 `id`、`cwd`、`timestamp`、可选的 `parentSession`)
|
|
137
|
-
- 然后:带有 `id` + `parentId` 的会话条目(树形结构)
|
|
138
|
-
|
|
139
|
-
值得注意的条目类型:
|
|
140
|
-
|
|
141
|
-
- `message`:用户/助手/工具结果消息
|
|
142
|
-
- `custom_message`:扩展注入的消息,*确实*进入模型上下文(可以从 UI 隐藏)
|
|
143
|
-
- `custom`:*不*进入模型上下文的扩展状态
|
|
144
|
-
- `compaction`:持久化的压缩摘要,带有 `firstKeptEntryId` 和 `tokensBefore`
|
|
145
|
-
- `branch_summary`:导航树分支时的持久化摘要
|
|
146
|
-
|
|
147
|
-
Symi 有意**不**"修复"记录;Gateway 网关使用 `SessionManager` 来读/写它们。
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## 上下文窗口 vs 跟踪的 token
|
|
152
|
-
|
|
153
|
-
两个不同的概念很重要:
|
|
154
|
-
|
|
155
|
-
1. **模型上下文窗口**:每个模型的硬上限(模型可见的 token)
|
|
156
|
-
2. **会话存储计数器**:写入 `sessions.json` 的滚动统计(用于 /status 和仪表板)
|
|
157
|
-
|
|
158
|
-
如果你在调整限制:
|
|
159
|
-
|
|
160
|
-
- 上下文窗口来自模型目录(可以通过配置覆盖)。
|
|
161
|
-
- 存储中的 `contextTokens` 是运行时估计/报告值;不要将其视为严格保证。
|
|
162
|
-
|
|
163
|
-
更多信息,参见 [/token-use](/reference/token-use)。
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## 压缩:它是什么
|
|
168
|
-
|
|
169
|
-
压缩将较旧的对话总结为记录中的持久化 `compaction` 条目,并保持最近的消息不变。
|
|
170
|
-
|
|
171
|
-
压缩后,未来的回合会看到:
|
|
172
|
-
|
|
173
|
-
- 压缩摘要
|
|
174
|
-
- `firstKeptEntryId` 之后的消息
|
|
175
|
-
|
|
176
|
-
压缩是**持久化的**(与会话修剪不同)。参见 [/concepts/session-pruning](/concepts/session-pruning)。
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
## 自动压缩何时发生(Pi 运行时)
|
|
181
|
-
|
|
182
|
-
在嵌入式 Pi 智能体中,自动压缩在两种情况下触发:
|
|
183
|
-
|
|
184
|
-
1. **溢出恢复**:模型返回上下文溢出错误 → 压缩 → 重试。
|
|
185
|
-
2. **阈值维护**:在成功的回合后,当:
|
|
186
|
-
|
|
187
|
-
`contextTokens > contextWindow - reserveTokens`
|
|
188
|
-
|
|
189
|
-
其中:
|
|
190
|
-
|
|
191
|
-
- `contextWindow` 是模型的上下文窗口
|
|
192
|
-
- `reserveTokens` 是为提示 + 下一个模型输出保留的空间
|
|
193
|
-
|
|
194
|
-
这些是 Pi 运行时语义(Symi 消费事件,但 Pi 决定何时压缩)。
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## 压缩设置(`reserveTokens`、`keepRecentTokens`)
|
|
199
|
-
|
|
200
|
-
Pi 的压缩设置位于 Pi 设置中:
|
|
201
|
-
|
|
202
|
-
```json5
|
|
203
|
-
{
|
|
204
|
-
compaction: {
|
|
205
|
-
enabled: true,
|
|
206
|
-
reserveTokens: 16384,
|
|
207
|
-
keepRecentTokens: 20000,
|
|
208
|
-
},
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Symi 还为嵌入式运行强制执行安全下限:
|
|
213
|
-
|
|
214
|
-
- 如果 `compaction.reserveTokens < reserveTokensFloor`,Symi 会提升它。
|
|
215
|
-
- 默认下限是 `20000` 个 token。
|
|
216
|
-
- 设置 `agents.defaults.compaction.reserveTokensFloor: 0` 以禁用下限。
|
|
217
|
-
- 如果它已经更高,Symi 不会改变它。
|
|
218
|
-
|
|
219
|
-
原因:为压缩变得不可避免之前的多回合"内务处理"(如记忆写入)留出足够的空间。
|
|
220
|
-
|
|
221
|
-
实现:`src/agents/pi-settings.ts` 中的 `ensurePiCompactionReserveTokens()`(从 `src/agents/pi-embedded-runner.ts` 调用)。
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## 用户可见的界面
|
|
226
|
-
|
|
227
|
-
你可以通过以下方式观察压缩和会话状态:
|
|
228
|
-
|
|
229
|
-
- `/status`(在任何聊天会话中)
|
|
230
|
-
- `symi status`(CLI)
|
|
231
|
-
- `symi sessions` / `sessions --json`
|
|
232
|
-
- 详细模式:`🧹 Auto-compaction complete` + 压缩计数
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## 静默内务处理(`NO_REPLY`)
|
|
237
|
-
|
|
238
|
-
Symi 支持用于后台任务的"静默"回合,用户不应该看到中间输出。
|
|
239
|
-
|
|
240
|
-
约定:
|
|
241
|
-
|
|
242
|
-
- 助手以 `NO_REPLY` 开始其输出,表示"不要向用户发送回复"。
|
|
243
|
-
- Symi 在投递层剥离/抑制此内容。
|
|
244
|
-
|
|
245
|
-
从 `2026.1.10` 开始,当部分块以 `NO_REPLY` 开头时,Symi 还会抑制**草稿/打字流式输出**,因此静默操作不会在回合中途泄漏部分输出。
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## 压缩前"记忆刷新"(已实现)
|
|
250
|
-
|
|
251
|
-
目标:在自动压缩发生之前,运行一个静默的智能体回合,将持久状态写入磁盘(例如智能体工作空间中的 `memory/YYYY-MM-DD.md`),这样压缩就不会擦除关键上下文。
|
|
252
|
-
|
|
253
|
-
Symi 使用**预阈值刷新**方法:
|
|
254
|
-
|
|
255
|
-
1. 监控会话上下文使用情况。
|
|
256
|
-
2. 当它越过"软阈值"(低于 Pi 的压缩阈值)时,向智能体运行一个静默的"现在写入记忆"指令。
|
|
257
|
-
3. 使用 `NO_REPLY` 以便用户看不到任何内容。
|
|
258
|
-
|
|
259
|
-
配置(`agents.defaults.compaction.memoryFlush`):
|
|
260
|
-
|
|
261
|
-
- `enabled`(默认:`true`)
|
|
262
|
-
- `softThresholdTokens`(默认:`4000`)
|
|
263
|
-
- `prompt`(刷新回合的用户消息)
|
|
264
|
-
- `systemPrompt`(为刷新回合附加的额外系统提示)
|
|
265
|
-
|
|
266
|
-
说明:
|
|
267
|
-
|
|
268
|
-
- 默认的提示/系统提示包含 `NO_REPLY` 提示以抑制投递。
|
|
269
|
-
- 刷新每个压缩周期运行一次(在 `sessions.json` 中跟踪)。
|
|
270
|
-
- 刷新仅对嵌入式 Pi 会话运行(CLI 后端跳过它)。
|
|
271
|
-
- 当会话工作空间是只读时(`workspaceAccess: "ro"` 或 `"none"`),刷新会被跳过。
|
|
272
|
-
- 参见[记忆](/concepts/memory)了解工作空间文件布局和写入模式。
|
|
273
|
-
|
|
274
|
-
Pi 还在扩展 API 中公开了 `session_before_compact` 钩子,但 Symi 的刷新逻辑目前位于 Gateway 网关端。
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## 故障排除检查清单
|
|
279
|
-
|
|
280
|
-
- 会话键错误?从 [/concepts/session](/concepts/session) 开始,并在 `/status` 中确认 `sessionKey`。
|
|
281
|
-
- 存储 vs 记录不匹配?从 `symi status` 确认 Gateway 网关主机和存储路径。
|
|
282
|
-
- 压缩过于频繁?检查:
|
|
283
|
-
- 模型上下文窗口(太小)
|
|
284
|
-
- 压缩设置(`reserveTokens` 对于模型窗口来说太高会导致更早的压缩)
|
|
285
|
-
- 工具结果膨胀:启用/调整会话修剪
|
|
286
|
-
- 静默回合泄漏?确认回复以 `NO_REPLY`(精确 token)开头,并且你使用的构建版本包含流式输出抑制修复。
|