@bitseek/hermes-webui 0.1.0-beta.0
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/README.md +213 -0
- package/bin/hermes-webui.mjs +588 -0
- package/package.json +25 -0
- package/scripts/sync-vendor.mjs +74 -0
- package/templates/launchd/com.bitseek.hermes-webui.plist +21 -0
- package/templates/systemd/hermes-webui.service +13 -0
- package/templates/windows/hermes-webui-task.ps1 +3 -0
- package/vendor/agent-frontend-shell/.bitseek-source.json +6 -0
- package/vendor/agent-frontend-shell/.dockerignore +7 -0
- package/vendor/agent-frontend-shell/.env.docker.example +89 -0
- package/vendor/agent-frontend-shell/.env.example +34 -0
- package/vendor/agent-frontend-shell/.github/FUNDING.yml +3 -0
- package/vendor/agent-frontend-shell/.github/workflows/browser-smoke.yml +42 -0
- package/vendor/agent-frontend-shell/.github/workflows/docker-smoke.yml +233 -0
- package/vendor/agent-frontend-shell/.github/workflows/native-windows-startup.yml +132 -0
- package/vendor/agent-frontend-shell/.github/workflows/release.yml +57 -0
- package/vendor/agent-frontend-shell/.github/workflows/tests.yml +88 -0
- package/vendor/agent-frontend-shell/.vscode/launch.json +59 -0
- package/vendor/agent-frontend-shell/.vscode/settings.json +13 -0
- package/vendor/agent-frontend-shell/AGENTS.md +80 -0
- package/vendor/agent-frontend-shell/ARCHITECTURE.md +1658 -0
- package/vendor/agent-frontend-shell/BUGS.md +52 -0
- package/vendor/agent-frontend-shell/CHANGELOG.md +7295 -0
- package/vendor/agent-frontend-shell/CONTRIBUTING.md +205 -0
- package/vendor/agent-frontend-shell/CONTRIBUTORS.md +107 -0
- package/vendor/agent-frontend-shell/DESIGN.md +173 -0
- package/vendor/agent-frontend-shell/Dockerfile +91 -0
- package/vendor/agent-frontend-shell/LICENSE +21 -0
- package/vendor/agent-frontend-shell/README-CUSTOM.md +76 -0
- package/vendor/agent-frontend-shell/README.md +705 -0
- package/vendor/agent-frontend-shell/ROADMAP.md +351 -0
- package/vendor/agent-frontend-shell/SPRINTS.md +147 -0
- package/vendor/agent-frontend-shell/TESTING.md +1932 -0
- package/vendor/agent-frontend-shell/THEMES.md +170 -0
- package/vendor/agent-frontend-shell/api/__init__.py +1 -0
- package/vendor/agent-frontend-shell/api/agent_health.py +392 -0
- package/vendor/agent-frontend-shell/api/agent_sessions.py +782 -0
- package/vendor/agent-frontend-shell/api/auth.py +592 -0
- package/vendor/agent-frontend-shell/api/background.py +87 -0
- package/vendor/agent-frontend-shell/api/clarify.py +238 -0
- package/vendor/agent-frontend-shell/api/commands.py +124 -0
- package/vendor/agent-frontend-shell/api/compression_anchor.py +134 -0
- package/vendor/agent-frontend-shell/api/config.py +5178 -0
- package/vendor/agent-frontend-shell/api/dashboard_probe.py +255 -0
- package/vendor/agent-frontend-shell/api/extensions.py +253 -0
- package/vendor/agent-frontend-shell/api/gateway_chat.py +435 -0
- package/vendor/agent-frontend-shell/api/gateway_watcher.py +230 -0
- package/vendor/agent-frontend-shell/api/goals.py +608 -0
- package/vendor/agent-frontend-shell/api/helpers.py +474 -0
- package/vendor/agent-frontend-shell/api/kanban_bridge.py +1255 -0
- package/vendor/agent-frontend-shell/api/metering.py +194 -0
- package/vendor/agent-frontend-shell/api/models.py +4210 -0
- package/vendor/agent-frontend-shell/api/oauth.py +770 -0
- package/vendor/agent-frontend-shell/api/onboarding.py +1046 -0
- package/vendor/agent-frontend-shell/api/passkeys.py +365 -0
- package/vendor/agent-frontend-shell/api/profiles.py +1499 -0
- package/vendor/agent-frontend-shell/api/providers.py +2175 -0
- package/vendor/agent-frontend-shell/api/request_diagnostics.py +160 -0
- package/vendor/agent-frontend-shell/api/rollback.py +320 -0
- package/vendor/agent-frontend-shell/api/routes.py +13990 -0
- package/vendor/agent-frontend-shell/api/run_journal.py +284 -0
- package/vendor/agent-frontend-shell/api/runner_client.py +156 -0
- package/vendor/agent-frontend-shell/api/runtime_adapter.py +431 -0
- package/vendor/agent-frontend-shell/api/session_discoverability.py +640 -0
- package/vendor/agent-frontend-shell/api/session_events.py +45 -0
- package/vendor/agent-frontend-shell/api/session_lifecycle.py +208 -0
- package/vendor/agent-frontend-shell/api/session_ops.py +207 -0
- package/vendor/agent-frontend-shell/api/session_recovery.py +655 -0
- package/vendor/agent-frontend-shell/api/skill_usage.py +32 -0
- package/vendor/agent-frontend-shell/api/startup.py +128 -0
- package/vendor/agent-frontend-shell/api/state_sync.py +187 -0
- package/vendor/agent-frontend-shell/api/streaming.py +7048 -0
- package/vendor/agent-frontend-shell/api/system_health.py +167 -0
- package/vendor/agent-frontend-shell/api/terminal.py +410 -0
- package/vendor/agent-frontend-shell/api/turn_journal.py +214 -0
- package/vendor/agent-frontend-shell/api/updates.py +1261 -0
- package/vendor/agent-frontend-shell/api/upload.py +322 -0
- package/vendor/agent-frontend-shell/api/usage.py +26 -0
- package/vendor/agent-frontend-shell/api/workspace.py +867 -0
- package/vendor/agent-frontend-shell/api/workspace_git.py +1261 -0
- package/vendor/agent-frontend-shell/api/worktrees.py +357 -0
- package/vendor/agent-frontend-shell/bootstrap.py +492 -0
- package/vendor/agent-frontend-shell/ctl.sh +427 -0
- package/vendor/agent-frontend-shell/docker-compose.custom.yml +26 -0
- package/vendor/agent-frontend-shell/docker-compose.three-container.yml +168 -0
- package/vendor/agent-frontend-shell/docker-compose.two-container.yml +147 -0
- package/vendor/agent-frontend-shell/docker-compose.yml +57 -0
- package/vendor/agent-frontend-shell/docker_init.bash +459 -0
- package/vendor/agent-frontend-shell/docs/CONTRACTS.md +207 -0
- package/vendor/agent-frontend-shell/docs/EXTENSIONS.md +212 -0
- package/vendor/agent-frontend-shell/docs/ISSUES.md +23 -0
- package/vendor/agent-frontend-shell/docs/UIUX-GUIDE.md +196 -0
- package/vendor/agent-frontend-shell/docs/advanced-chat-setup.md +83 -0
- package/vendor/agent-frontend-shell/docs/docker.md +337 -0
- package/vendor/agent-frontend-shell/docs/onboarding-agent-checklist.md +207 -0
- package/vendor/agent-frontend-shell/docs/onboarding.md +202 -0
- package/vendor/agent-frontend-shell/docs/remote-access.md +75 -0
- package/vendor/agent-frontend-shell/docs/rfcs/README.md +53 -0
- package/vendor/agent-frontend-shell/docs/rfcs/agent-source-boundary.md +70 -0
- package/vendor/agent-frontend-shell/docs/rfcs/canonical-session-resolution.md +124 -0
- package/vendor/agent-frontend-shell/docs/rfcs/hermes-run-adapter-contract.md +1079 -0
- package/vendor/agent-frontend-shell/docs/rfcs/turn-journal.md +195 -0
- package/vendor/agent-frontend-shell/docs/rfcs/webui-run-state-consistency-contract.md +157 -0
- package/vendor/agent-frontend-shell/docs/supervisor.md +280 -0
- package/vendor/agent-frontend-shell/docs/troubleshooting.md +132 -0
- package/vendor/agent-frontend-shell/docs/ui-ux/index.html +863 -0
- package/vendor/agent-frontend-shell/docs/ui-ux/two-stage-proposal.html +768 -0
- package/vendor/agent-frontend-shell/docs/why-hermes.md +489 -0
- package/vendor/agent-frontend-shell/docs/workspace-git.md +92 -0
- package/vendor/agent-frontend-shell/docs/wsl-autostart.md +126 -0
- package/vendor/agent-frontend-shell/eslint.runtime-guard.config.mjs +35 -0
- package/vendor/agent-frontend-shell/extensions/bitseek-design-system.md +330 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/apple-touch-icon.png +0 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/empty-logo.svg +739 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/favicon-192.png +0 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/favicon-32.png +0 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/favicon-512.png +0 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/favicon-512.svg +745 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/favicon.ico +0 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/favicon.svg +745 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/titlebar-icon-v2.svg +751 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/titlebar-icon-v3.svg +739 -0
- package/vendor/agent-frontend-shell/extensions/branding/assets/titlebar-icon.svg +745 -0
- package/vendor/agent-frontend-shell/extensions/branding/branding.js +112 -0
- package/vendor/agent-frontend-shell/extensions/branding/config.json +14 -0
- package/vendor/agent-frontend-shell/extensions/branding/manifest.json +53 -0
- package/vendor/agent-frontend-shell/extensions/index.js +67 -0
- package/vendor/agent-frontend-shell/extensions/loader/hermes-loader.js +77 -0
- package/vendor/agent-frontend-shell/extensions/manifest.json +16 -0
- package/vendor/agent-frontend-shell/extensions/pages/ai-teammates/page.css +333 -0
- package/vendor/agent-frontend-shell/extensions/pages/ai-teammates/page.js +487 -0
- package/vendor/agent-frontend-shell/extensions/pages/manifest.json +6 -0
- package/vendor/agent-frontend-shell/extensions/pages/registry.css +56 -0
- package/vendor/agent-frontend-shell/extensions/pages/registry.js +302 -0
- package/vendor/agent-frontend-shell/extensions/themes/bitseek/index.css +93 -0
- package/vendor/agent-frontend-shell/extensions/themes/bitseek/index.js +98 -0
- package/vendor/agent-frontend-shell/install.sh +63 -0
- package/vendor/agent-frontend-shell/mcp_server.py +567 -0
- package/vendor/agent-frontend-shell/package.json +12 -0
- package/vendor/agent-frontend-shell/pyproject.toml +56 -0
- package/vendor/agent-frontend-shell/pytest.ini +3 -0
- package/vendor/agent-frontend-shell/requirements.txt +5 -0
- package/vendor/agent-frontend-shell/server.py +624 -0
- package/vendor/agent-frontend-shell/start.ps1 +210 -0
- package/vendor/agent-frontend-shell/start.sh +65 -0
- package/vendor/agent-frontend-shell/static/apple-touch-icon.png +0 -0
- package/vendor/agent-frontend-shell/static/boot.js +1990 -0
- package/vendor/agent-frontend-shell/static/commands.js +1402 -0
- package/vendor/agent-frontend-shell/static/favicon-192.png +0 -0
- package/vendor/agent-frontend-shell/static/favicon-32.png +0 -0
- package/vendor/agent-frontend-shell/static/favicon-512.png +0 -0
- package/vendor/agent-frontend-shell/static/favicon-512.svg +18 -0
- package/vendor/agent-frontend-shell/static/favicon.ico +0 -0
- package/vendor/agent-frontend-shell/static/favicon.svg +20 -0
- package/vendor/agent-frontend-shell/static/i18n.js +15389 -0
- package/vendor/agent-frontend-shell/static/icons.js +92 -0
- package/vendor/agent-frontend-shell/static/index.html +1506 -0
- package/vendor/agent-frontend-shell/static/login.js +177 -0
- package/vendor/agent-frontend-shell/static/manifest.json +53 -0
- package/vendor/agent-frontend-shell/static/messages.js +3521 -0
- package/vendor/agent-frontend-shell/static/onboarding.js +800 -0
- package/vendor/agent-frontend-shell/static/panels.js +7995 -0
- package/vendor/agent-frontend-shell/static/pwa-startup.js +83 -0
- package/vendor/agent-frontend-shell/static/sessions.js +5165 -0
- package/vendor/agent-frontend-shell/static/style.css +4774 -0
- package/vendor/agent-frontend-shell/static/sw.js +173 -0
- package/vendor/agent-frontend-shell/static/terminal.js +632 -0
- package/vendor/agent-frontend-shell/static/ui.js +8997 -0
- package/vendor/agent-frontend-shell/static/vendor/js-yaml/4.1.0/js-yaml.min.js +2 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Bold.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Italic.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Math-Italic.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Script-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/katex.min.css +1 -0
- package/vendor/agent-frontend-shell/static/vendor/katex/0.16.22/katex.min.js +1 -0
- package/vendor/agent-frontend-shell/static/vendor/smd.min.js +29 -0
- package/vendor/agent-frontend-shell/static/workspace.js +680 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Windows / WSL auto-start
|
|
2
|
+
|
|
3
|
+
Hermes WebUI runs well under WSL2, but native Windows login does not automatically start Linux user processes. This guide covers two supported options:
|
|
4
|
+
|
|
5
|
+
1. **WSL session startup** — simple and low-risk. WebUI starts the next time you open a WSL shell.
|
|
6
|
+
2. **Windows Task Scheduler** — true Windows logon startup. Windows invokes `wsl.exe`, which runs the WSL launch script.
|
|
7
|
+
|
|
8
|
+
Both paths use the same WSL launch script:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
scripts/wsl/hermes_webui_autostart.sh
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The script is safe to call repeatedly. It uses a lock file, checks the `/health` endpoint, checks a pid file, and writes logs before starting `start.sh --foreground` in the background. It does not hardcode a user path; by default it derives the repository root from its own location.
|
|
15
|
+
|
|
16
|
+
## Script settings
|
|
17
|
+
|
|
18
|
+
The WSL launcher supports these environment variables:
|
|
19
|
+
|
|
20
|
+
| Variable | Default | Purpose |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `HERMES_WEBUI_REPO` | repo containing the script | WebUI checkout to start |
|
|
23
|
+
| `HERMES_WEBUI_LOG_DIR` | `$HOME/.hermes/webui/logs` | Autostart and WebUI logs |
|
|
24
|
+
| `HERMES_WEBUI_HOST` | `127.0.0.1` | Host passed through to `start.sh` / `bootstrap.py` |
|
|
25
|
+
| `HERMES_WEBUI_PORT` | `8787` | WebUI port and health-check port |
|
|
26
|
+
| `HERMES_WEBUI_HEALTH_URL` | `http://127.0.0.1:$HERMES_WEBUI_PORT/health` | URL used to decide whether WebUI is already running |
|
|
27
|
+
| `HERMES_WEBUI_PID_FILE` | `$HERMES_WEBUI_LOG_DIR/hermes-webui.pid` | pid file used for duplicate prevention |
|
|
28
|
+
| `HERMES_WEBUI_REQUIRE_AGENT_PROCESS` | `0` | Optional: set to `1` only if your local setup requires a separate Hermes process before WebUI starts |
|
|
29
|
+
|
|
30
|
+
Make the script executable once inside WSL:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
cd /path/to/hermes-webui
|
|
34
|
+
chmod +x scripts/wsl/hermes_webui_autostart.sh
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Run it manually to verify your paths and logs:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
scripts/wsl/hermes_webui_autostart.sh
|
|
41
|
+
curl -fsS http://127.0.0.1:8787/health
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Logs are written to:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
$HOME/.hermes/webui/logs/webui_autostart.log
|
|
48
|
+
$HOME/.hermes/webui/logs/hermes_webui.log
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Option 1: WSL session startup
|
|
52
|
+
|
|
53
|
+
This starts WebUI when your WSL login shell starts. It is the easiest option if you already open WSL during your day.
|
|
54
|
+
|
|
55
|
+
Add this to `~/.profile` or `~/.bashrc` inside WSL, adjusting the repo path:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
if [ -x "$HOME/hermes-webui/scripts/wsl/hermes_webui_autostart.sh" ]; then
|
|
59
|
+
HERMES_WEBUI_REPO="$HOME/hermes-webui" \
|
|
60
|
+
"$HOME/hermes-webui/scripts/wsl/hermes_webui_autostart.sh" >/dev/null 2>&1 &
|
|
61
|
+
fi
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Open a new WSL terminal and check:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
curl -fsS http://127.0.0.1:8787/health
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
If you open several WSL terminals, the launcher should still start only one WebUI process because the lock, health check, and pid file all converge on "already running".
|
|
71
|
+
|
|
72
|
+
## Option 2: Windows Task Scheduler startup
|
|
73
|
+
|
|
74
|
+
Use this if you want WebUI to start automatically at Windows logon even before you open a WSL terminal.
|
|
75
|
+
|
|
76
|
+
The helper PowerShell script is:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
scripts/windows/setup_webui_autostart.ps1
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
From Windows PowerShell, run it with the WSL path to the launch script:
|
|
83
|
+
|
|
84
|
+
```powershell
|
|
85
|
+
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
|
|
86
|
+
.\scripts\windows\setup_webui_autostart.ps1 `
|
|
87
|
+
-WslScriptPath "/home/your-user/hermes-webui/scripts/wsl/hermes_webui_autostart.sh" `
|
|
88
|
+
-Distro "Ubuntu"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Notes:
|
|
92
|
+
|
|
93
|
+
- `-Distro` is optional. Omit it to use your default WSL distro.
|
|
94
|
+
- The default task name is `HermesWebUIAutoStart`; pass `-TaskName` if you need a different name.
|
|
95
|
+
- The script is idempotent: rerunning it updates the existing scheduled task instead of creating duplicates.
|
|
96
|
+
- The task runs as the current Windows user at logon with least privilege.
|
|
97
|
+
- Add `-WhatIf` to preview the scheduled task registration.
|
|
98
|
+
- Add `-RunNow` to start the task immediately after registration.
|
|
99
|
+
- Add `-SkipValidation` only if you need to register the task before the WSL path exists.
|
|
100
|
+
|
|
101
|
+
To inspect or remove the task later:
|
|
102
|
+
|
|
103
|
+
```powershell
|
|
104
|
+
Get-ScheduledTask -TaskName HermesWebUIAutoStart
|
|
105
|
+
Unregister-ScheduledTask -TaskName HermesWebUIAutoStart -Confirm:$false
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Troubleshooting
|
|
109
|
+
|
|
110
|
+
Check the WSL logs first:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
tail -n 80 "$HOME/.hermes/webui/logs/webui_autostart.log"
|
|
114
|
+
tail -n 80 "$HOME/.hermes/webui/logs/hermes_webui.log"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Common causes:
|
|
118
|
+
|
|
119
|
+
| Symptom | Likely cause | Fix |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| Task exists but WebUI is not reachable | WSL script path is wrong for the selected distro | Re-run the PowerShell setup with the correct `-WslScriptPath` and `-Distro` |
|
|
122
|
+
| WebUI starts only after opening WSL | You used the WSL session startup option, not Task Scheduler | Install the Windows scheduled task |
|
|
123
|
+
| Multiple login events happen quickly | Normal Windows startup behavior | The WSL script should log `already running` and avoid duplicate processes |
|
|
124
|
+
| Health check fails but pid exists | WebUI is still booting or the port differs | Check `HERMES_WEBUI_PORT` and `hermes_webui.log` |
|
|
125
|
+
|
|
126
|
+
If you want WSL2 systemd integration instead, see `docs/supervisor.md` for foreground process-supervisor guidance and adapt the Linux `systemd --user` pattern to your distro.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// ESLint flat config — runtime-error guard for the static JS bundle.
|
|
2
|
+
//
|
|
3
|
+
// Purpose: catch brick-class runtime errors that `node --check`, source-presence
|
|
4
|
+
// tests, and even executing the file all MISS, because the error only fires when a
|
|
5
|
+
// specific function actually runs in the browser. Canonical case: #3162 — a `const`
|
|
6
|
+
// binding reassigned inside `_ensureMessagesLoaded` threw a TypeError that bricked
|
|
7
|
+
// "load conversation messages" on every mobile message in v0.51.161-166.
|
|
8
|
+
//
|
|
9
|
+
// Scope discipline: ONLY rules that flag genuine "throws at runtime" bugs AND have
|
|
10
|
+
// ZERO hits on the current clean tree (so the gate is green today and only ever
|
|
11
|
+
// fails on a NEW regression). This is NOT a style linter.
|
|
12
|
+
//
|
|
13
|
+
// Deliberately EXCLUDED (verified to have pre-existing intentional hits 2026-05-30):
|
|
14
|
+
// - no-dupe-keys (92 hits): intentional i18n locale-fallback override pattern
|
|
15
|
+
// - no-func-assign (2 hits): switchPanel/switchSettingsSection override pattern
|
|
16
|
+
// - no-redeclare (1 hit): redeclared loop var in panels.js
|
|
17
|
+
// If those are cleaned up later, they can be promoted into this guard.
|
|
18
|
+
//
|
|
19
|
+
// Run: npx eslint -c eslint.runtime-guard.config.mjs "static/**/*.js"
|
|
20
|
+
// (tests/test_static_js_runtime_lint.py runs this automatically when eslint is present.)
|
|
21
|
+
|
|
22
|
+
export default [
|
|
23
|
+
// Bundled/minified third-party assets are ES modules and not ours to lint.
|
|
24
|
+
{ ignores: ["**/vendor/**", "**/*.min.js"] },
|
|
25
|
+
{
|
|
26
|
+
files: ["**/*.js"],
|
|
27
|
+
languageOptions: { ecmaVersion: "latest", sourceType: "script" },
|
|
28
|
+
rules: {
|
|
29
|
+
// #3162: reassigning a `const` — runtime TypeError, only fires on execution.
|
|
30
|
+
"no-const-assign": "error",
|
|
31
|
+
// Assigning to an import binding — runtime TypeError.
|
|
32
|
+
"no-import-assign": "error",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
];
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bitseek-design-system
|
|
3
|
+
description: "Design system for BitSeek, a B2B SaaS AI product with dual-surface design (dark C-end marketing + light B-end dashboard). Use this skill when designing, prototyping, or building UI for BitSeek or any AI SaaS product following the BitSeek style. Triggers on mentions of BitSeek, AI agent workspace, employee agent, SaaS dashboard, B2B AI product, or requests for warm-orange-accent enterprise interfaces. Covers the Manrope typography system, coral/orange brand palette, dual light/dark theme tokens, spacing grid, corner radius rules, and component patterns for both marketing pages and admin dashboards."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BitSeek 设计系统 (Design System)
|
|
7
|
+
|
|
8
|
+
## 1. 产品定义
|
|
9
|
+
|
|
10
|
+
BitSeek 是一款 B2B SaaS AI 产品,定位为"Employee Agent Workspace"——企业级 AI 员工代理工作台。设计上有两个明确的表面:
|
|
11
|
+
|
|
12
|
+
| 表面 | 名称 | 主题 | 用途 |
|
|
13
|
+
|------|------|------|------|
|
|
14
|
+
| C 端 | Marketing / Landing | **深色** (dark) | 官网、产品介绍、Discover 展示页 |
|
|
15
|
+
| B 端 | Dashboard / Workspace | **浅色** (light) | 管理后台、对话界面、知识库、团队管理 |
|
|
16
|
+
|
|
17
|
+
两个表面共享同一套品牌色、字体和间距系统,仅背景和文字色反转。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. 品牌色彩系统 (Color System)
|
|
22
|
+
|
|
23
|
+
### A. 品牌色 (Brand)
|
|
24
|
+
|
|
25
|
+
| Token | Hex | 用途 |
|
|
26
|
+
|:------|:----|:-----|
|
|
27
|
+
| `brand-primary` | `#FF7F50` | **Coral Orange** — CTA 按钮、品牌链接、高亮标签、活跃元素 |
|
|
28
|
+
| `brand-dark` | `#FA4321` | 深品牌色 — 强调按钮、错误相关 |
|
|
29
|
+
| `brand-deep` | `#DE360C` | 最深品牌色 — hover/pressed 状态 |
|
|
30
|
+
| `brand-tint` | `#FFF7ED` | 品牌浅底 — 标签背景、hover 行 |
|
|
31
|
+
| `brand-light` | `#FFF4F0` | 更浅品牌底 — 卡片高亮区 |
|
|
32
|
+
|
|
33
|
+
### B. 中性色 — 浅色主题 (B 端 Dashboard)
|
|
34
|
+
|
|
35
|
+
| Token | Hex | 用途 |
|
|
36
|
+
|:------|:----|:-----|
|
|
37
|
+
| `bg-white` | `#FFFFFF` | 页面背景、卡片背景 |
|
|
38
|
+
| `bg-light-1` | `#FAFAFA` | 次级背景、侧边栏 |
|
|
39
|
+
| `bg-light-2` | `#F6F6F6` | 输入框背景、表格斑马纹 |
|
|
40
|
+
| `bg-light-3` | `#EFEEEB` | 分割区域 |
|
|
41
|
+
| `stroke-light` | `#ECEFF8` | 主描边(最高频使用) |
|
|
42
|
+
| `stroke-medium` | `#DFDFDF` | 次描边 |
|
|
43
|
+
| `text-primary` | `#404040` | 主文字(非纯黑,偏暖灰) |
|
|
44
|
+
| `text-secondary` | `#646464` | 辅助文字 |
|
|
45
|
+
| `text-muted` | `#A7A7A7` | placeholder、禁用文字 |
|
|
46
|
+
|
|
47
|
+
### C. 中性色 — 深色主题 (C 端 Marketing)
|
|
48
|
+
|
|
49
|
+
| Token | Hex | 用途 |
|
|
50
|
+
|:------|:----|:-----|
|
|
51
|
+
| `bg-dark` | `#160804` | 深色页面背景(暖黑) |
|
|
52
|
+
| `bg-dark-2` | `#1A1A1A` | 卡片/模块背景 |
|
|
53
|
+
| `surface-dark` | `#000000` | 纯黑表面 |
|
|
54
|
+
| `text-on-dark` | `#FFFFFF` | 深色背景上的主文字 |
|
|
55
|
+
| `text-on-dark-sub` | `#C4BAB8` | 深色背景上的辅助文字 |
|
|
56
|
+
| `stroke-dark` | `#040404` | 深色描边 |
|
|
57
|
+
|
|
58
|
+
### D. 功能色 (Semantic)
|
|
59
|
+
|
|
60
|
+
| Token | Hex | 用途 |
|
|
61
|
+
|:------|:----|:-----|
|
|
62
|
+
| `success` | `#83D04E` | 成功状态 |
|
|
63
|
+
| `accent-purple` | `#7468F2` | 辅助强调(AI/智能功能标记) |
|
|
64
|
+
|
|
65
|
+
**严禁幻觉规则:** 不得使用上表以外的颜色。品牌色核心是 `#FF7F50`(Coral),不是橙色 `#FF6600` 或红色 `#FF0000`。
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 3. 字体系统 (Typography)
|
|
70
|
+
|
|
71
|
+
### 字体族
|
|
72
|
+
|
|
73
|
+
| 优先级 | 字体 | 用途 |
|
|
74
|
+
|:-------|:-----|:-----|
|
|
75
|
+
| **主字体** | **Manrope** | 所有 UI 文字(SemiBold 最高频,其次 Medium,标题用 ExtraBold) |
|
|
76
|
+
| 备用字体 | Inter | 极少使用,仅部分旧页面残留 |
|
|
77
|
+
|
|
78
|
+
### 字号层级
|
|
79
|
+
|
|
80
|
+
| 层级 | 大小 | 字重 | 典型使用 |
|
|
81
|
+
|:-----|:-----|:-----|:---------|
|
|
82
|
+
| Display | 120px | Manrope ExtraBold | C 端 Hero 大标题(如 "BitSeek") |
|
|
83
|
+
| H1 | 40px | Manrope ExtraBold | 页面主标题 |
|
|
84
|
+
| H2 | 32px | Manrope ExtraBold | 模块标题 |
|
|
85
|
+
| H3 | 24px | Manrope SemiBold | Section Header、卡片标题 |
|
|
86
|
+
| H4 | 20px | Manrope SemiBold | 子标题 |
|
|
87
|
+
| Body-L | 16px | Manrope Medium / SemiBold | **最高频** — 正文、按钮、菜单项 |
|
|
88
|
+
| Body-M | 14px | Manrope Medium | 列表文本、辅助信息 |
|
|
89
|
+
| Body-S | 12px | Manrope Medium | 标签、小字说明 |
|
|
90
|
+
| Caption | 10px | Manrope Medium | 极小辅助 |
|
|
91
|
+
|
|
92
|
+
### 排版规则
|
|
93
|
+
|
|
94
|
+
- 标题:**Manrope ExtraBold**,深色背景上 `#FFFFFF`,浅色背景上 `#404040`
|
|
95
|
+
- 正文:**Manrope Medium** 或 **SemiBold**
|
|
96
|
+
- CTA 按钮:**Manrope SemiBold** 16px
|
|
97
|
+
- 行高默认 140-150%
|
|
98
|
+
- 正文左对齐
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 4. 间距与圆角 (Spacing & Radius)
|
|
103
|
+
|
|
104
|
+
### 间距系统
|
|
105
|
+
|
|
106
|
+
| Token | 值 | 用途 |
|
|
107
|
+
|:------|:---|:-----|
|
|
108
|
+
| `space-xs` | 4px | 紧凑元素间距 |
|
|
109
|
+
| `space-s` | 8px | 默认元素间距 |
|
|
110
|
+
| `space-m` | 10px | 中等间距 |
|
|
111
|
+
| `space-base` | 16px | 组件内 padding |
|
|
112
|
+
| `space-l` | 20px | **最高频** — 模块间距、卡片 padding |
|
|
113
|
+
| `space-xl` | 24px | Section 间距 |
|
|
114
|
+
| `space-xxl` | 40px | 大区块间距、页面 padding |
|
|
115
|
+
|
|
116
|
+
### 主要 Padding 模式
|
|
117
|
+
|
|
118
|
+
| 模式 | 值 | 用途 |
|
|
119
|
+
|------|-----|------|
|
|
120
|
+
| 卡片默认 | `20px 16px` | 垂直 20px 水平 16px |
|
|
121
|
+
| 按钮大 | `16px 24px` | 主 CTA |
|
|
122
|
+
| 按钮小 | `8px 4px` 或 `10px 8px` | 小型按钮/标签 |
|
|
123
|
+
| 容器 | `40px` 四周 | 大面板 |
|
|
124
|
+
|
|
125
|
+
### 圆角系统
|
|
126
|
+
|
|
127
|
+
| Token | 值 | 用途 |
|
|
128
|
+
|:------|:---|:-----|
|
|
129
|
+
| `radius-xs` | 2-3px | 极小元素 |
|
|
130
|
+
| `radius-s` | 5px | 小标签 |
|
|
131
|
+
| `radius-m` | 8px | 输入框、小卡片 |
|
|
132
|
+
| `radius-base` | 12px | **高频** — 标准卡片、弹窗 |
|
|
133
|
+
| `radius-l` | 16px | 大卡片 |
|
|
134
|
+
| `radius-xl` | 20px | **高频** — 大型面板、模态框 |
|
|
135
|
+
| `radius-xxl` | 40px | 超大圆角容器 |
|
|
136
|
+
| `radius-pill` | 200px | **最高频** — CTA 按钮(全圆角胶囊) |
|
|
137
|
+
| `radius-circle` | 100px | 头像、圆形 icon |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 5. 核心组件规范 (Components)
|
|
142
|
+
|
|
143
|
+
### 5.1 CTA 按钮 (Primary Button)
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
背景: #FF7F50 (brand-primary, Coral Orange)
|
|
147
|
+
文字: #FFFFFF, Manrope SemiBold 16px
|
|
148
|
+
Padding: 16px 24px
|
|
149
|
+
圆角: 200px (pill 胶囊形)
|
|
150
|
+
Hover: #DE360C
|
|
151
|
+
Disabled: opacity 40%
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 5.2 次要按钮 (Secondary Button)
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
背景: transparent
|
|
158
|
+
描边: 1px solid #FF7F50
|
|
159
|
+
文字: #FF7F50, Manrope SemiBold 14px
|
|
160
|
+
Padding: 12px 24px
|
|
161
|
+
圆角: 200px
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 5.3 侧边栏 (B 端 Sidebar)
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
宽度: ~240px
|
|
168
|
+
背景: #FFFFFF 或 #FAFAFA
|
|
169
|
+
描边: 右侧 1px #ECEFF8
|
|
170
|
+
Logo: 顶部,品牌 coral + 文字
|
|
171
|
+
菜单项: Manrope Medium 14px, padding 10px 8px
|
|
172
|
+
Active 菜单: #FF7F50 文字 + #FFF7ED 背景
|
|
173
|
+
Icon: 20px, #646464 (inactive) / #FF7F50 (active)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 5.4 卡片 (Card)
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
背景: #FFFFFF (B 端) / #1A1A1A (C 端)
|
|
180
|
+
描边: 1px solid #ECEFF8 (B 端) / none (C 端)
|
|
181
|
+
圆角: 12px 或 20px
|
|
182
|
+
Padding: 20px 16px
|
|
183
|
+
阴影: 极轻或无(扁平风格)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 5.5 输入框 (Input)
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
背景: #F6F6F6 (B 端)
|
|
190
|
+
描边: 1px solid #ECEFF8
|
|
191
|
+
圆角: 8px
|
|
192
|
+
高度: ~40px
|
|
193
|
+
Padding: 10px 8px
|
|
194
|
+
Placeholder: #A7A7A7 Manrope Medium 14px
|
|
195
|
+
Focus 描边: #FF7F50
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 5.6 数据表格 (B 端 Table)
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
Header: #FAFAFA 背景, Manrope SemiBold 12px, #646464
|
|
202
|
+
行: #FFFFFF 背景, Manrope Medium 14px, #404040
|
|
203
|
+
斑马纹: 偶数行 #FAFAFA
|
|
204
|
+
行高: padding 16px
|
|
205
|
+
描边: 行间 1px #ECEFF8
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 5.7 对话界面 (Chat)
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
用户消息: 右对齐, #FF7F50 背景, 白色文字, 圆角 12px
|
|
212
|
+
AI 消息: 左对齐, #F6F6F6 背景, #404040 文字, 圆角 12px
|
|
213
|
+
输入框: 底部固定, #FFFFFF 背景, 发送按钮 #FF7F50
|
|
214
|
+
时间戳: #A7A7A7 Manrope Medium 12px
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 5.8 导航栏 (C 端 Top Nav)
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
背景: transparent (深色页面叠加)
|
|
221
|
+
Logo 左侧, 导航链接居中
|
|
222
|
+
CTA 按钮右侧: "Get Started" — #FF7F50 pill 按钮
|
|
223
|
+
链接: #FFFFFF Manrope Medium 16px
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 6. 页面布局规范
|
|
229
|
+
|
|
230
|
+
### B 端 Dashboard 布局
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
┌─ Top Bar (可选) ────────────────────┐
|
|
234
|
+
├─ Sidebar (240px) ─┬─ Main Content ──┤
|
|
235
|
+
│ Logo │ Page Header │
|
|
236
|
+
│ Nav Menu │ Content Area │
|
|
237
|
+
│ · 对话 │ (padding 40px) │
|
|
238
|
+
│ · 知识库 │ │
|
|
239
|
+
│ · 团队管理 │ │
|
|
240
|
+
│ · 设置 │ │
|
|
241
|
+
│ │ │
|
|
242
|
+
│ User Avatar │ │
|
|
243
|
+
└───────────────────┴─────────────────┘
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### C 端 Marketing 布局
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
┌─ Sticky Nav Bar (transparent) ──────┐
|
|
250
|
+
├─────────────────────────────────────┤
|
|
251
|
+
│ Hero Section │
|
|
252
|
+
│ Display Title (120px ExtraBold) │
|
|
253
|
+
│ Subtitle + CTA │
|
|
254
|
+
│ 背景: 暗色 + 星空/粒子效果 │
|
|
255
|
+
├─────────────────────────────────────┤
|
|
256
|
+
│ Feature Sections │
|
|
257
|
+
│ 交替深色/暖黑背景 │
|
|
258
|
+
│ Feature Card Grid │
|
|
259
|
+
├─────────────────────────────────────┤
|
|
260
|
+
│ Discover / Use Case 展示 │
|
|
261
|
+
│ 卡片轮播或网格 │
|
|
262
|
+
├─────────────────────────────────────┤
|
|
263
|
+
│ Footer │
|
|
264
|
+
└─────────────────────────────────────┘
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 页面类型清单
|
|
268
|
+
|
|
269
|
+
| 页面类型 | 端 | 例子 |
|
|
270
|
+
|---------|-----|------|
|
|
271
|
+
| Landing Hero | C | 官网首页、产品介绍 |
|
|
272
|
+
| Discover 展示 | C | 功能展示、用例卡片 |
|
|
273
|
+
| 对话/Chat | B | AI Agent 对话窗口 |
|
|
274
|
+
| 知识库管理 | B | 文件列表、知识验证 |
|
|
275
|
+
| 团队管理 | B | 成员列表、角色权限 |
|
|
276
|
+
| 设置 | B | 账号设置、API 配置 |
|
|
277
|
+
| 邀请/分享 | B | 邀请码页面 |
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## 7. 双主题切换规则
|
|
282
|
+
|
|
283
|
+
当需要在 B 端和 C 端之间切换时,遵循以下映射:
|
|
284
|
+
|
|
285
|
+
| 属性 | B 端 (Light) | C 端 (Dark) |
|
|
286
|
+
|------|-------------|------------|
|
|
287
|
+
| 页面背景 | `#FFFFFF` | `#160804` |
|
|
288
|
+
| 卡片背景 | `#FFFFFF` + 描边 | `#1A1A1A` 无描边 |
|
|
289
|
+
| 主文字 | `#404040` | `#FFFFFF` |
|
|
290
|
+
| 辅助文字 | `#646464` | `#C4BAB8` |
|
|
291
|
+
| 品牌色 | `#FF7F50` (不变) | `#FF7F50` (不变) |
|
|
292
|
+
| 描边 | `#ECEFF8` | `#040404` |
|
|
293
|
+
| 输入框底 | `#F6F6F6` | `#1A1A1A` |
|
|
294
|
+
|
|
295
|
+
**品牌色 `#FF7F50` 在任何主题下保持不变。**
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## 8. Agent 执行流程 (SOP)
|
|
300
|
+
|
|
301
|
+
### 第一步:确认端和主题
|
|
302
|
+
明确用户需要 B 端 (Light Dashboard) 还是 C 端 (Dark Marketing) 页面。
|
|
303
|
+
|
|
304
|
+
### 第二步:载入颜色主题
|
|
305
|
+
根据端选择加载对应的中性色组。品牌色始终为 `#FF7F50`。
|
|
306
|
+
|
|
307
|
+
### 第三步:结构化输出
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
【BitSeek 设计执行清单】
|
|
311
|
+
|
|
312
|
+
1. 主题: [B端-Light / C端-Dark]
|
|
313
|
+
2. 色彩:
|
|
314
|
+
- CTA Button: #FF7F50 bg, #FFFFFF text
|
|
315
|
+
- 卡片背景: [#FFFFFF / #1A1A1A]
|
|
316
|
+
- 主文字: [#404040 / #FFFFFF]
|
|
317
|
+
3. 字体:
|
|
318
|
+
- 标题: Manrope ExtraBold [size]px
|
|
319
|
+
- 正文: Manrope Medium/SemiBold [size]px
|
|
320
|
+
4. 布局:
|
|
321
|
+
- 卡片圆角: 12px / 20px
|
|
322
|
+
- 按钮圆角: 200px (pill)
|
|
323
|
+
- Padding: 20px 16px
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### 第四步:验证
|
|
327
|
+
- 品牌色是否为 `#FF7F50`(不是 #FF6600)?
|
|
328
|
+
- 字体是否为 Manrope(不是 Inter/Roboto)?
|
|
329
|
+
- 按钮是否为 200px 胶囊圆角?
|
|
330
|
+
- B 端主文字是否为 `#404040`(不是纯黑 #000000)?
|