@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,451 +0,0 @@
|
|
|
1
|
-
# Glass UI Rendering Invariants
|
|
2
|
-
|
|
3
|
-
**Created:** 2026-04-29
|
|
4
|
-
**Branch:** `symi-phase3`
|
|
5
|
-
**Purpose:** Specification of the Glass UI rendering properties that the
|
|
6
|
-
pipeline-collapse work (Phase 1-6) MUST preserve.
|
|
7
|
-
|
|
8
|
-
This document is the contract every subsequent phase has to honor. Every
|
|
9
|
-
property below maps to user-visible Glass UI behaviour and to specific
|
|
10
|
-
file:line references in the current codebase. If a refactor breaks any of
|
|
11
|
-
these, the rendering quality regresses and the user sees it.
|
|
12
|
-
|
|
13
|
-
The corresponding parity test suite lives at
|
|
14
|
-
`src/gateway/glass-ui-rendering-parity.test.ts` — every invariant has a
|
|
15
|
-
test that asserts the contract.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Why this exists
|
|
20
|
-
|
|
21
|
-
The pipeline-collapse plan (Phases 1-6) refactors how events flow from
|
|
22
|
-
`runAgentTurn` to the user's surface. Phase 5 specifically touches the
|
|
23
|
-
WebSocket subscription layer that Glass UI consumes. Without an explicit
|
|
24
|
-
contract, a "cleaner" event-shape rewrite could silently drop fields the
|
|
25
|
-
renderer depends on, regressing user-visible quality.
|
|
26
|
-
|
|
27
|
-
The user's directive: _"the way symi renders in the glass ui is perfect
|
|
28
|
-
now and i dont want to lose the ability."_
|
|
29
|
-
|
|
30
|
-
This doc is the operationalization of that directive.
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## The 15 invariants
|
|
35
|
-
|
|
36
|
-
### I-1. Incremental delta semantics
|
|
37
|
-
|
|
38
|
-
**What:** When the gateway broadcasts a delta event, the `delta` (or
|
|
39
|
-
`message.content[0].text` in the broadcast payload) carries ONLY the
|
|
40
|
-
incremental tokens since the last delta — never accumulated text.
|
|
41
|
-
|
|
42
|
-
**Why it matters:** Glass UI's `updateStream(text)` does
|
|
43
|
-
`textContent += text`. If the gateway sent accumulated text, every delta
|
|
44
|
-
would re-append the entire response so far, producing the "looping" bug
|
|
45
|
-
documented in master doc §22 and §14.1. That bug took 18 releases and
|
|
46
|
-
~6,000 lines of changes to find.
|
|
47
|
-
|
|
48
|
-
**Source:**
|
|
49
|
-
|
|
50
|
-
- Gateway: `src/gateway/server-chat.ts:557` — `evt.data.delta` is read,
|
|
51
|
-
not `evt.data.text`.
|
|
52
|
-
- Browser: `glass-ui/js/app.js:177-184` — `updateStream(text)` appends.
|
|
53
|
-
|
|
54
|
-
**Test:** `parity.test.ts > I-1: delta is incremental`
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### I-2. Streaming bubble lifecycle
|
|
59
|
-
|
|
60
|
-
**What:** First delta opens a stream bubble. Subsequent deltas append.
|
|
61
|
-
Final event closes the stream bubble and replaces plain text with rendered
|
|
62
|
-
markdown HTML.
|
|
63
|
-
|
|
64
|
-
**Why it matters:** Without the stream-bubble lifecycle, users see plain
|
|
65
|
-
text first, then a flash to rendered HTML, then markdown. The current
|
|
66
|
-
behaviour gives smooth token-by-token typing-style UX with formatted
|
|
67
|
-
output at the end.
|
|
68
|
-
|
|
69
|
-
**Source:**
|
|
70
|
-
|
|
71
|
-
- `glass-ui/js/app.js:165-171` — `openStreamBubble()`
|
|
72
|
-
- `glass-ui/js/app.js:177-184` — `updateStream(text)`
|
|
73
|
-
- `glass-ui/js/app.js:185-220` — `closeStreamBubble(model)`
|
|
74
|
-
- `glass-ui/js/app.js:725-731` — wired to delta events
|
|
75
|
-
- `glass-ui/js/app.js:782-794` — wired to final events
|
|
76
|
-
|
|
77
|
-
**Test:** `parity.test.ts > I-2: bubble open/close on delta/final`
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
### I-3. Markdown rendering
|
|
82
|
-
|
|
83
|
-
**What:** `marked.js` v15 with custom renderer for code blocks, links
|
|
84
|
-
opening in new tabs, tables, lists.
|
|
85
|
-
|
|
86
|
-
**Why it matters:** Code blocks have language-specific syntax highlighting
|
|
87
|
-
via hljs. Tables render as actual tables. Links open in new tabs (not
|
|
88
|
-
breaking the SPA). Lists indent correctly. Without this, every assistant
|
|
89
|
-
reply is plain text with markdown syntax visible.
|
|
90
|
-
|
|
91
|
-
**Source:**
|
|
92
|
-
|
|
93
|
-
- `glass-ui/js/render.js:5-37` — `marked.setOptions` + `marked.use`
|
|
94
|
-
- `glass-ui/js/render.js:38-87` — custom renderer for code, link, etc.
|
|
95
|
-
- `glass-ui/js/marked.min.js` — vendored library
|
|
96
|
-
|
|
97
|
-
**Test:** Manual visual regression — text with ` ```ts\nconst x = 1\n``` `
|
|
98
|
-
must render as a syntax-highlighted code block, not literal triple-backtick
|
|
99
|
-
text.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### I-4. Syntax highlighting
|
|
104
|
-
|
|
105
|
-
**What:** Code blocks invoke `hljs.highlight(raw, { language })` with
|
|
106
|
-
language detection from the fence (` ```ts ` → typescript) or fallback to
|
|
107
|
-
plaintext.
|
|
108
|
-
|
|
109
|
-
**Why it matters:** Code reviews / paste-from-Symi workflows depend on
|
|
110
|
-
readable, colored code. Without it, `<pre>` blocks are unstyled monospace.
|
|
111
|
-
|
|
112
|
-
**Source:**
|
|
113
|
-
|
|
114
|
-
- `glass-ui/js/render.js:57-65` — language resolution + hljs invocation
|
|
115
|
-
- `glass-ui/js/highlight.min.js` — vendored library
|
|
116
|
-
|
|
117
|
-
**Test:** Manual visual regression — fenced code blocks have hljs
|
|
118
|
-
class names applied (`hljs-keyword`, `hljs-string`, etc.).
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
### I-5. Thinking → Reasoning panel
|
|
123
|
-
|
|
124
|
-
**What:** Agent events with `stream: "thinking"` accumulate into a
|
|
125
|
-
per-`runId` buffer. On `thinking_end` (or final), the buffer flushes to a
|
|
126
|
-
dedicated Reasoning panel (sidebar), not the main chat feed.
|
|
127
|
-
|
|
128
|
-
**Why it matters:** Reasoning models (Nemotron, Qwen 3.5/3.6) emit
|
|
129
|
-
thousands of tokens of internal monologue. Showing it inline in the chat
|
|
130
|
-
bubble would drown the actual answer. The Reasoning panel keeps it
|
|
131
|
-
visible-but-separate.
|
|
132
|
-
|
|
133
|
-
**Source:**
|
|
134
|
-
|
|
135
|
-
- `glass-ui/js/app.js:133` — `thinkingBuffers = new Map()`
|
|
136
|
-
- `glass-ui/js/app.js:145` — `set(runId, "")` on thinking_start
|
|
137
|
-
- `glass-ui/js/app.js:151-152` — accumulate delta or content
|
|
138
|
-
- `glass-ui/js/app.js:156-157` — flush + delete on thinking_end
|
|
139
|
-
|
|
140
|
-
**Test:** `parity.test.ts > I-5: thinking events route to thinking buffer`
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
### I-6. Heartbeat → Symipulse panel
|
|
145
|
-
|
|
146
|
-
**What:** Events with `isHeartbeat: true` route to the dedicated Symipulse
|
|
147
|
-
panel via `window.appendToSymipulsePanel(text, timestamp)`. Heartbeat
|
|
148
|
-
content does NOT appear in the main chat feed.
|
|
149
|
-
|
|
150
|
-
**Why it matters:** Symipulse fires every 30 minutes producing ack/alert
|
|
151
|
-
content. Without routing, the main feed accumulates routine "all clear"
|
|
152
|
-
acks and obscures real conversation history.
|
|
153
|
-
|
|
154
|
-
**Source:**
|
|
155
|
-
|
|
156
|
-
- `glass-ui/js/app.js:406-422` — `if (m.isHeartbeat) appendToSymipulsePanel(...)`
|
|
157
|
-
- Gateway-side `isHeartbeat` injection: `src/gateway/server-chat.ts` —
|
|
158
|
-
added to broadcast payload when `heartbeatCtx?.isHeartbeat`
|
|
159
|
-
|
|
160
|
-
**Test:** `parity.test.ts > I-6: isHeartbeat flag preserved through broadcast`
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
### I-7. Status orb states
|
|
165
|
-
|
|
166
|
-
**What:** A visual orb in the UI header transitions through six states
|
|
167
|
-
based on agent lifecycle events: `STANDBY` (cyan), `WAITING` (amber),
|
|
168
|
-
`PROCESSING` (violet), `RESPONDING` (green), `COMPLETE` (green, then
|
|
169
|
-
reverts to `STANDBY` after 3s), `FAILED` (red).
|
|
170
|
-
|
|
171
|
-
**Why it matters:** Without the orb, users have no peripheral signal of
|
|
172
|
-
what the agent is doing. They have to look at the chat feed to see
|
|
173
|
-
activity. The orb gives a glance-able status.
|
|
174
|
-
|
|
175
|
-
**Source:**
|
|
176
|
-
|
|
177
|
-
- `glass-ui/js/app.js` — `setAgentStatus(state)` function
|
|
178
|
-
- Driven by: `state: "thinking"`, `state: "delta"`, `state: "final"`,
|
|
179
|
-
`state: "error"` events from gateway
|
|
180
|
-
|
|
181
|
-
**Test:** `parity.test.ts > I-7: orb-driving events emit correct state values`
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
### I-8. Watchdog timer
|
|
186
|
-
|
|
187
|
-
**What:** A 300-second watchdog timer re-arms on every event from the
|
|
188
|
-
gateway. If no event arrives within 300s, the orb transitions to FAILED
|
|
189
|
-
and a notice appears in the feed.
|
|
190
|
-
|
|
191
|
-
**Why it matters:** Long Nemotron reasoning phases used to look like a
|
|
192
|
-
hung agent (master doc §26.A.3). The watchdog catches genuine hangs while
|
|
193
|
-
allowing legitimate long pauses (when at least heartbeat events flow).
|
|
194
|
-
|
|
195
|
-
**Source:**
|
|
196
|
-
|
|
197
|
-
- `glass-ui/js/app.js:69` — watchdog interval
|
|
198
|
-
- `glass-ui/js/app.js:278` — re-arm on event arrival
|
|
199
|
-
- Per-profile `watchdogMs` from `ModelProfile.ui.watchdogMs`
|
|
200
|
-
|
|
201
|
-
**Test:** `parity.test.ts > I-8: watchdog re-arms on every gateway event`
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
### I-9. Per-WebSocket dedup
|
|
206
|
-
|
|
207
|
-
**What:** Each browser WebSocket connection tracks `lastBroadcastSeq`. The
|
|
208
|
-
gateway's `broadcastToBrowsers` drops frames with `seq <= lastBroadcastSeq`
|
|
209
|
-
for that client. New events monotonically increment `seq`.
|
|
210
|
-
|
|
211
|
-
**Why it matters:** When a tab reconnects after a brief network hiccup, it
|
|
212
|
-
sees the full event history from the buffer. Without dedup, it would
|
|
213
|
-
re-render every event since gateway start.
|
|
214
|
-
|
|
215
|
-
**Source:**
|
|
216
|
-
|
|
217
|
-
- `src/gateway/glass-ui-ws.ts:159-175` — `broadcastToBrowsers` with seq filter
|
|
218
|
-
- `src/gateway/server-chat.ts` — monotonic `agentRunSeq` counter
|
|
219
|
-
|
|
220
|
-
**Test:** `parity.test.ts > I-9: every emitted event has monotonic seq`
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
### I-10. localStorage feed cache
|
|
225
|
-
|
|
226
|
-
**What:** Last 200 messages cached in browser localStorage under
|
|
227
|
-
`symi:feed-cache`. Restored on:
|
|
228
|
-
|
|
229
|
-
- Server returns empty history (gateway restart edge case)
|
|
230
|
-
- WebSocket disconnect with no history available
|
|
231
|
-
- Page reload while gateway unreachable
|
|
232
|
-
|
|
233
|
-
**Why it matters:** Master doc §27 documented the original feed-disappears
|
|
234
|
-
bug. Without the cache, every gateway restart wipes the user's view.
|
|
235
|
-
|
|
236
|
-
**Source:**
|
|
237
|
-
|
|
238
|
-
- `glass-ui/js/app.js:22-54` — `feedCache` module (save/load/append/clear)
|
|
239
|
-
- Populated from server history (bulk save), user sends (append), assistant
|
|
240
|
-
finals (append)
|
|
241
|
-
|
|
242
|
-
**Test:** Manual — restart gateway, reload Glass UI, feed must restore from
|
|
243
|
-
localStorage.
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
### I-11. Profile event handling
|
|
248
|
-
|
|
249
|
-
**What:** When the active model changes, the gateway broadcasts a `profile`
|
|
250
|
-
event with the resolved `ModelProfile`. Glass UI updates:
|
|
251
|
-
|
|
252
|
-
- Model badge (text label like "Claude" / "Spider" / "CoreWeave")
|
|
253
|
-
- `WATCHDOG_MS` (per-profile timeout)
|
|
254
|
-
- `armWatchdogOnSend` flag (whether watchdog starts on user send vs first
|
|
255
|
-
delta)
|
|
256
|
-
- `stripPatterns` for client-side rendering
|
|
257
|
-
|
|
258
|
-
**Why it matters:** Different models have different streaming behaviour.
|
|
259
|
-
Without profile updates, watchdog timing is wrong and stripping is
|
|
260
|
-
incorrect.
|
|
261
|
-
|
|
262
|
-
**Source:**
|
|
263
|
-
|
|
264
|
-
- `src/gateway/server-reload-handlers.ts` — profile broadcast on model change
|
|
265
|
-
- `glass-ui/js/gateway.js` — profile event listener
|
|
266
|
-
- `glass-ui/js/app.js` — `window.activeModelProfile` consumer
|
|
267
|
-
|
|
268
|
-
**Test:** `parity.test.ts > I-11: profile event payload shape preserved`
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
### I-12. Tool-call view in transcript modal
|
|
273
|
-
|
|
274
|
-
**What:** History drawer's transcript modal renders `tool_use` and
|
|
275
|
-
`tool_result` content blocks inline with chat. `tool_use` shows the tool
|
|
276
|
-
name + truncated input JSON; `tool_result` shows ok/error status +
|
|
277
|
-
truncated output. Toggleable via "Show tool calls" button (Stage 2.8.17).
|
|
278
|
-
|
|
279
|
-
**Why it matters:** Debugging "what did the agent actually do during this
|
|
280
|
-
session?" — without tool-call view, the user only sees text replies.
|
|
281
|
-
Sub-agent and cron review depend on this.
|
|
282
|
-
|
|
283
|
-
**Source:**
|
|
284
|
-
|
|
285
|
-
- `glass-ui/js/history.js:loadTranscript` + `renderTranscript` (split for
|
|
286
|
-
toggle re-render)
|
|
287
|
-
- `glass-ui/js/history.js:extractToolBlocks` + `renderToolBlock`
|
|
288
|
-
- Master doc §46.4
|
|
289
|
-
|
|
290
|
-
**Test:** `parity.test.ts > I-12: tool_use and tool_result blocks preserved
|
|
291
|
-
as structured objects in events (not flattened to strings)`
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
### I-13. History drawer + cross-session search
|
|
296
|
-
|
|
297
|
-
**What:** Persistent debounced search input above the history drawer.
|
|
298
|
-
Stage 2.8.17 added cross-session content search via `sessions.search` RPC.
|
|
299
|
-
Results show `<mark>`-highlighted snippets, click to open transcript modal,
|
|
300
|
-
"Load Session" to adopt.
|
|
301
|
-
|
|
302
|
-
**Why it matters:** Without it, users can't find prior conversations. The
|
|
303
|
-
history drawer is one of Glass UI's signature features.
|
|
304
|
-
|
|
305
|
-
**Source:**
|
|
306
|
-
|
|
307
|
-
- `glass-ui/js/history.js` — search box, `runSessionSearch`,
|
|
308
|
-
`renderSearchMatch`, `highlightSnippet`
|
|
309
|
-
- `src/gateway/server-methods/sessions.ts` — `sessions.search` RPC
|
|
310
|
-
- Master doc §46.3
|
|
311
|
-
|
|
312
|
-
**Test:** Server-side `sessions.search` RPC test exists; client-side is
|
|
313
|
-
manual (visual regression).
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
### I-14. Reply-tag stripping in renderer input
|
|
318
|
-
|
|
319
|
-
**What:** `[[reply_to_current]]` and `[[reply_to:<id>]]` tags are stripped
|
|
320
|
-
gateway-side before reaching the renderer. The renderer assumes its input
|
|
321
|
-
is clean.
|
|
322
|
-
|
|
323
|
-
**Why it matters:** Without stripping, literal `[[reply_to_current]]` text
|
|
324
|
-
appears in every assistant message. Stage 1.2 verified the parser is
|
|
325
|
-
already tolerant; Phase 1-6 must not inadvertently route un-stripped text
|
|
326
|
-
to Glass UI.
|
|
327
|
-
|
|
328
|
-
**Source:**
|
|
329
|
-
|
|
330
|
-
- Gateway: `src/utils/directive-tags.ts:parseInlineDirectives` (tolerant
|
|
331
|
-
parser)
|
|
332
|
-
- Gateway: applied in `src/auto-reply/reply/reply-payloads.ts`
|
|
333
|
-
- Renderer: assumes clean input — no stripping in `glass-ui/js/render.js`
|
|
334
|
-
|
|
335
|
-
**Test:** `parity.test.ts > I-14: events delivered to renderer never
|
|
336
|
-
contain reply tags`
|
|
337
|
-
|
|
338
|
-
---
|
|
339
|
-
|
|
340
|
-
### I-15. Active subagent count
|
|
341
|
-
|
|
342
|
-
**What:** Final events carry `activeSubagentCount: number`. Glass UI shows
|
|
343
|
-
"N subagents active" indicator when > 0.
|
|
344
|
-
|
|
345
|
-
**Why it matters:** Sub-agent fan-out (master doc §19) means the user
|
|
346
|
-
might have multiple agents working in parallel. Without the indicator,
|
|
347
|
-
fan-out is invisible.
|
|
348
|
-
|
|
349
|
-
**Source:**
|
|
350
|
-
|
|
351
|
-
- Gateway: `src/gateway/server-chat.ts:346` — `countActiveRunsForSession`
|
|
352
|
-
injected into final payload
|
|
353
|
-
- Glass UI: reads `payload.activeSubagentCount` in final-event handler
|
|
354
|
-
|
|
355
|
-
**Test:** `parity.test.ts > I-15: activeSubagentCount preserved on final events`
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## How this doc is consumed
|
|
360
|
-
|
|
361
|
-
### During Phase 1 (outbound filter lift)
|
|
362
|
-
|
|
363
|
-
Pre-merge check: zero invariants affected. The filter moves up one layer;
|
|
364
|
-
the renderer's input is unchanged.
|
|
365
|
-
|
|
366
|
-
### During Phase 2 (universal event stream)
|
|
367
|
-
|
|
368
|
-
Pre-merge check: every invariant must have a corresponding field in the
|
|
369
|
-
universal `AgentEvent` shape. Specifically:
|
|
370
|
-
|
|
371
|
-
- `delta` field must remain incremental (I-1)
|
|
372
|
-
- `state` field must drive the orb (I-7)
|
|
373
|
-
- `isHeartbeat` field must survive the universal-shape redesign (I-6)
|
|
374
|
-
- `seq` field must stay monotonic (I-9)
|
|
375
|
-
- `activeSubagentCount` field must be preserved (I-15)
|
|
376
|
-
- `message.content[]` must preserve structured tool blocks (I-12)
|
|
377
|
-
- `stream: "thinking"` must remain a distinct event type (I-5)
|
|
378
|
-
|
|
379
|
-
If the universal shape design omits any of these, redesign before merging.
|
|
380
|
-
|
|
381
|
-
### During Phase 3-4 (dispatch chain collapse + RPC merge)
|
|
382
|
-
|
|
383
|
-
Pre-merge check: the renderer's input shape doesn't depend on the dispatch
|
|
384
|
-
chain at all — events come from `emitChatDelta`/`emitChatFinal`, which sit
|
|
385
|
-
outside the chain. Verify these functions still produce the same shapes
|
|
386
|
-
post-collapse.
|
|
387
|
-
|
|
388
|
-
### During Phase 5 (surface adapters)
|
|
389
|
-
|
|
390
|
-
**This is the highest-risk phase for rendering regression.** Pre-merge
|
|
391
|
-
checks:
|
|
392
|
-
|
|
393
|
-
1. `glass-ui/js/render.js` is **untouched**.
|
|
394
|
-
2. `glass-ui/js/app.js` rendering functions (`openStreamBubble`,
|
|
395
|
-
`updateStream`, `closeStreamBubble`, `renderMessage`) are **untouched**.
|
|
396
|
-
3. `glass-ui/js/history.js`, `symipulse.js`, marked.js / hljs config are
|
|
397
|
-
**untouched**.
|
|
398
|
-
4. The only file that may be refactored is `glass-ui/js/gateway.js` —
|
|
399
|
-
the WebSocket subscription layer. It must convert the universal
|
|
400
|
-
`AgentEvent` to the legacy `chat`/`agent` event shapes the rest of the
|
|
401
|
-
browser code consumes.
|
|
402
|
-
5. Run the full parity test suite + manual visual smoke test before merge.
|
|
403
|
-
|
|
404
|
-
### During Phase 6 (cleanup)
|
|
405
|
-
|
|
406
|
-
Re-run parity tests on the final shape. Confirm no invariants regressed
|
|
407
|
-
through the series.
|
|
408
|
-
|
|
409
|
-
---
|
|
410
|
-
|
|
411
|
-
## Manual visual regression checklist
|
|
412
|
-
|
|
413
|
-
In addition to automated parity tests, every Phase 1-6 PR must include a
|
|
414
|
-
manual smoke test of the 15 properties before merge:
|
|
415
|
-
|
|
416
|
-
- [ ] **I-1, I-2** — Send a multi-paragraph response. Watch tokens stream
|
|
417
|
-
in token-by-token. On final, confirm rendered markdown replaces plain
|
|
418
|
-
text.
|
|
419
|
-
- [ ] **I-3, I-4** — Send a code-task message. Confirm code block has
|
|
420
|
-
syntax highlighting (colored keywords, strings, comments).
|
|
421
|
-
- [ ] **I-5** — Switch to a reasoning model (Qwen 3.6 / Claude with
|
|
422
|
-
thinking). Send a math problem. Confirm thinking content appears in the
|
|
423
|
-
Reasoning panel, not the main chat feed.
|
|
424
|
-
- [ ] **I-6** — Wait for a Symipulse heartbeat (or trigger one). Confirm
|
|
425
|
-
it appears in the Symipulse panel, not the main feed.
|
|
426
|
-
- [ ] **I-7** — Send a message. Watch orb transition: STANDBY → WAITING
|
|
427
|
-
→ PROCESSING → RESPONDING → COMPLETE → STANDBY.
|
|
428
|
-
- [ ] **I-8** — Trigger a 300s+ stuck run (e.g., model with no response).
|
|
429
|
-
Confirm watchdog fires FAILED state.
|
|
430
|
-
- [ ] **I-9** — Open Glass UI in two tabs. Send a message. Confirm both
|
|
431
|
-
tabs receive each event exactly once.
|
|
432
|
-
- [ ] **I-10** — Restart gateway. Confirm feed restores from localStorage.
|
|
433
|
-
- [ ] **I-11** — Switch model via UI dropdown. Confirm model badge
|
|
434
|
-
updates immediately.
|
|
435
|
-
- [ ] **I-12** — Open history drawer → click a session → toggle "Show
|
|
436
|
-
tool calls". Confirm tool_use blocks render with name + input JSON.
|
|
437
|
-
- [ ] **I-13** — Open history drawer → type in search box. Confirm
|
|
438
|
-
cross-session matches with `<mark>` highlighting.
|
|
439
|
-
- [ ] **I-14** — Trigger a reply-quote scenario. Confirm no literal
|
|
440
|
-
`[[reply_to_current]]` text in any assistant message.
|
|
441
|
-
- [ ] **I-15** — Spawn a sub-agent task. Confirm subagent indicator shows
|
|
442
|
-
N>0 during fan-out.
|
|
443
|
-
|
|
444
|
-
---
|
|
445
|
-
|
|
446
|
-
## Revisions
|
|
447
|
-
|
|
448
|
-
| Date | Phase | Change |
|
|
449
|
-
| -------------------------- | ------- | ----------------------------------------------- |
|
|
450
|
-
| 2026-04-29 | Phase 0 | Initial authorship — 15 invariants, parity test |
|
|
451
|
-
| skeleton, visual checklist |
|
package/docs/help/debugging.md
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Debugging tools: watch mode, raw model streams, and tracing reasoning leakage"
|
|
3
|
-
read_when:
|
|
4
|
-
- You need to inspect raw model output for reasoning leakage
|
|
5
|
-
- You want to run the Gateway in watch mode while iterating
|
|
6
|
-
- You need a repeatable debugging workflow
|
|
7
|
-
title: "Debugging"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Debugging
|
|
11
|
-
|
|
12
|
-
This page covers debugging helpers for streaming output, especially when a
|
|
13
|
-
provider mixes reasoning into normal text.
|
|
14
|
-
|
|
15
|
-
## Runtime debug overrides
|
|
16
|
-
|
|
17
|
-
Use `/debug` in chat to set **runtime-only** config overrides (memory, not disk).
|
|
18
|
-
`/debug` is disabled by default; enable with `commands.debug: true`.
|
|
19
|
-
This is handy when you need to toggle obscure settings without editing `symi.json`.
|
|
20
|
-
|
|
21
|
-
Examples:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
/debug show
|
|
25
|
-
/debug set messages.responsePrefix="[symi]"
|
|
26
|
-
/debug unset messages.responsePrefix
|
|
27
|
-
/debug reset
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
`/debug reset` clears all overrides and returns to the on-disk config.
|
|
31
|
-
|
|
32
|
-
## Gateway watch mode
|
|
33
|
-
|
|
34
|
-
For fast iteration, run the gateway under the file watcher:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
pnpm gateway:watch
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
This maps to:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
node --watch-path src --watch-path tsconfig.json --watch-path package.json --watch-preserve-output scripts/run-node.mjs gateway --force
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Add any gateway CLI flags after `gateway:watch` and they will be passed through
|
|
47
|
-
on each restart.
|
|
48
|
-
|
|
49
|
-
## Dev profile + dev gateway (--dev)
|
|
50
|
-
|
|
51
|
-
Use the dev profile to isolate state and spin up a safe, disposable setup for
|
|
52
|
-
debugging. There are **two** `--dev` flags:
|
|
53
|
-
|
|
54
|
-
- **Global `--dev` (profile):** isolates state under `~/.symi-dev` and
|
|
55
|
-
defaults the gateway port to `19001` (derived ports shift with it).
|
|
56
|
-
- **`gateway --dev`: tells the Gateway to auto-create a default config +
|
|
57
|
-
workspace** when missing (and skip BOOTSTRAP.md).
|
|
58
|
-
|
|
59
|
-
Recommended flow (dev profile + dev bootstrap):
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
pnpm gateway:dev
|
|
63
|
-
SYMI_PROFILE=dev symi tui
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
If you don’t have a global install yet, run the CLI via `pnpm symi ...`.
|
|
67
|
-
|
|
68
|
-
What this does:
|
|
69
|
-
|
|
70
|
-
1. **Profile isolation** (global `--dev`)
|
|
71
|
-
- `SYMI_PROFILE=dev`
|
|
72
|
-
- `SYMI_STATE_DIR=~/.symi-dev`
|
|
73
|
-
- `SYMI_CONFIG_PATH=~/.symi-dev/symi.json`
|
|
74
|
-
- `SYMI_GATEWAY_PORT=19001` (browser/canvas shift accordingly)
|
|
75
|
-
|
|
76
|
-
2. **Dev bootstrap** (`gateway --dev`)
|
|
77
|
-
- Writes a minimal config if missing (`gateway.mode=local`, bind loopback).
|
|
78
|
-
- Sets `agent.workspace` to the dev workspace.
|
|
79
|
-
- Sets `agent.skipBootstrap=true` (no BOOTSTRAP.md).
|
|
80
|
-
- Seeds the workspace files if missing:
|
|
81
|
-
`AGENTS.md`, `SYMICORE.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `SYMIPULSE.md`.
|
|
82
|
-
- Default identity: **C3‑PO** (protocol droid).
|
|
83
|
-
- Skips channel providers in dev mode (`SYMI_SKIP_CHANNELS=1`).
|
|
84
|
-
|
|
85
|
-
Reset flow (fresh start):
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
pnpm gateway:dev:reset
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Note: `--dev` is a **global** profile flag and gets eaten by some runners.
|
|
92
|
-
If you need to spell it out, use the env var form:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
SYMI_PROFILE=dev symi gateway --dev --reset
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
`--reset` wipes config, credentials, sessions, and the dev workspace (using
|
|
99
|
-
`trash`, not `rm`), then recreates the default dev setup.
|
|
100
|
-
|
|
101
|
-
Tip: if a non‑dev gateway is already running (launchd/systemd), stop it first:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
symi gateway stop
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Raw stream logging (Symi)
|
|
108
|
-
|
|
109
|
-
Symi can log the **raw assistant stream** before any filtering/formatting.
|
|
110
|
-
This is the best way to see whether reasoning is arriving as plain text deltas
|
|
111
|
-
(or as separate thinking blocks).
|
|
112
|
-
|
|
113
|
-
Enable it via CLI:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
pnpm gateway:watch --raw-stream
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Optional path override:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
pnpm gateway:watch --raw-stream --raw-stream-path ~/.symi/logs/raw-stream.jsonl
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Equivalent env vars:
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
SYMI_RAW_STREAM=1
|
|
129
|
-
SYMI_RAW_STREAM_PATH=~/.symi/logs/raw-stream.jsonl
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Default file:
|
|
133
|
-
|
|
134
|
-
`~/.symi/logs/raw-stream.jsonl`
|
|
135
|
-
|
|
136
|
-
## Raw chunk logging (pi-mono)
|
|
137
|
-
|
|
138
|
-
To capture **raw OpenAI-compat chunks** before they are parsed into blocks,
|
|
139
|
-
pi-mono exposes a separate logger:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
PI_RAW_STREAM=1
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Optional path:
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
PI_RAW_STREAM_PATH=~/.pi-mono/logs/raw-openai-completions.jsonl
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Default file:
|
|
152
|
-
|
|
153
|
-
`~/.pi-mono/logs/raw-openai-completions.jsonl`
|
|
154
|
-
|
|
155
|
-
> Note: this is only emitted by processes using pi-mono’s
|
|
156
|
-
> `openai-completions` provider.
|
|
157
|
-
|
|
158
|
-
## Safety notes
|
|
159
|
-
|
|
160
|
-
- Raw stream logs can include full prompts, tool output, and user data.
|
|
161
|
-
- Keep logs local and delete them after debugging.
|
|
162
|
-
- If you share logs, scrub secrets and PII first.
|