benchgo-plugin 0.0.0-stage → 0.0.2
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/DEEPSEEK-LICENSE +21 -0
- package/LICENSE +21 -0
- package/NOTICE +17 -0
- package/PASEO-LICENSE +211 -0
- package/README.md +256 -2
- package/TOOL-CONFIG.md +33 -0
- package/VERIFICATION.md +297 -0
- package/assets/fonts/README.md +13 -0
- package/assets/fonts/manifest.json +437 -0
- package/assets/fonts/web/fangyuan-latin-238bc49130b1.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u30-0fe8d99641c3.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u32-202a573131a1.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u4e-cc2f8b20be49.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u4f-9189b5f2d321.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u50-e2560e003872.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u51-a9c5e7a8c7c4.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u52-0cfd00b473c8.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u53-18122a07f60a.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u54-8ca41aa9cff2.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u55-7bd55e14647e.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u56-26f093e8a810.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u57-36bde83a8378.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u58-d1df14217098.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u59-4e41ab22c51a.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u5a-746a367174e6.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u5b-3d1dd404d70c.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u5c-fe0a273f69e7.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u5d-af1f0a1c8d2d.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u5e-598c65420e17.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u5f-a92eaaa5265a.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u60-48ee3d26462d.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u61-7a57f35bc077.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u62-d2d0b7b36631.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u63-cade7c6635e6.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u64-ed34e40d7f65.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u65-e13e83e69c38.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u66-1dbcfa5da147.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u67-6b0a26b82da6.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u68-1b8217cfceed.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u69-673e63627790.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u6a-3c94008a4640.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u6b-44572c410fa0.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u6c-1b323b366e88.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u6d-cbc376d6fe3f.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u6e-7f7e211e2fee.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u6f-ff280ce052fa.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u70-cb727eaf73b6.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u71-0bb1747439fe.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u72-cccd39590d69.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u73-e67705133584.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u74-03a4e7ac9df5.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u75-a2d30b327e65.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u76-c08fe029c988.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u77-76f03be1f4cb.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u78-5b721deaf582.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u79-db7713c2eda4.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u7a-3e40d3726a09.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u7b-a8204d1c9dba.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u7c-89bcdae046de.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u7d-bcc45fa6351a.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u7e-49fab96d9269.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u7f-dc110e1ecbf3.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u80-c5ce9be0335e.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u81-b026091b3779.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u82-a7c6960e875d.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u83-4b7d1c2c50d4.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u84-4119128100c8.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u85-ca43dd4c5411.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u86-54fc0e3158fb.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u87-b64f5eb55720.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u88-00feb1251f08.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u89-db419435b316.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u8a-06c11d45fb87.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u8b-5c2f6fda436a.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u8c-2b46d2d1f4cc.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u8d-1a67d064000d.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u8e-eb87baf0091c.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u8f-96c1f0632da6.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u90-86752dba8cbe.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u91-0573b8548552.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u92-f85ecf735974.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u93-e7e0451735db.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u94-f3957ff98bcd.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u95-b31129d29013.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u96-ca7f779c2c13.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u97-100a25198b2c.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u98-59e4b784a94f.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u99-d35af6e30868.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u9a-1eb6f7cdfcfe.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u9b-8f428d81dcbb.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u9c-e10f7f8f0274.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u9e-2be65003b759.woff2 +0 -0
- package/assets/fonts/web/fangyuan-u9f-02c3d5224fdb.woff2 +0 -0
- package/assets/fonts/web/fangyuan-ufb-3eaee54bc476.woff2 +0 -0
- package/assets/fonts/web/fangyuan-ufe-f64da8a3acce.woff2 +0 -0
- package/assets/fonts/web/fangyuan-uff-0a6dcfb689fd.woff2 +0 -0
- package/client/assets/iconsax/LICENSE +16 -0
- package/client/assets/iconsax/SOURCE.md +14 -0
- package/config/routergo-deepseek.example.yml +25 -0
- package/config.example.json +24 -0
- package/cordis.patch.yml +5 -0
- package/lib/LINK-THIRD-PARTY-LICENSES.txt +1197 -0
- package/lib/client.js +3577 -0
- package/lib/link-web/app.css +92 -0
- package/lib/link-web/app.js +599 -0
- package/lib/link-web/index.html +1 -0
- package/lib/link-web/workbench.js +118 -0
- package/lib/link.mjs +244 -0
- package/lib/relay/ip-certificate.mjs +559 -0
- package/lib/relay/relay.example.json +8 -0
- package/lib/relay/run-relay-server.cjs +4100 -0
- package/lib/server/bootstrap.mjs +147 -0
- package/lib/server/bootstrap.sh +39 -0
- package/lib/server/manifest.json +8 -0
- package/lib/server/server-seed.tar.gz +0 -0
- package/locale/en.json +6 -0
- package/locale/zh-CN.json +6 -0
- package/openapi.json +629 -0
- package/package.json +104 -4
- package/shared/plugin-install.mjs +198 -0
- package/shared/tool-quick-settings.mjs +70 -0
- package/shared/update-feed.mjs +191 -0
- package/shared/update-public-key.pem +3 -0
- package/src/cli.mjs +102 -0
- package/src/commands.mjs +17 -0
- package/src/delegation.mjs +47 -0
- package/src/fonts.mjs +17 -0
- package/src/harness-adapter.mjs +228 -0
- package/src/harness-commands.mjs +39 -0
- package/src/harness-selection.mjs +5 -0
- package/src/harness-usage.mjs +31 -0
- package/src/isolated-launch.mjs +22 -0
- package/src/line-process.mjs +114 -0
- package/src/link-plugin.mjs +21 -0
- package/src/mcp.mjs +21 -0
- package/src/model-providers.mjs +125 -0
- package/src/models.mjs +37 -0
- package/src/native-auth.mjs +32 -0
- package/src/picker-catalog.mjs +82 -0
- package/src/plugin.mjs +138 -0
- package/src/projects.mjs +96 -0
- package/src/provider-access.mjs +11 -0
- package/src/providers/acp.mjs +138 -0
- package/src/providers/claude.mjs +115 -0
- package/src/providers/codex.mjs +134 -0
- package/src/providers/opencode.mjs +138 -0
- package/src/providers/pi-permissions.ts +24 -0
- package/src/providers/pi.mjs +97 -0
- package/src/questions.mjs +34 -0
- package/src/recent-workspace.mjs +36 -0
- package/src/runtime.mjs +421 -0
- package/src/session-routes.mjs +89 -0
- package/src/store.mjs +98 -0
- package/src/tool-catalog.mjs +22 -0
- package/src/tool-config.mjs +94 -0
- package/src/tool-install.mjs +31 -0
- package/src/tool-profiles.mjs +114 -0
- package/src/tooling.mjs +90 -0
- package/src/updates.mjs +156 -0
- package/src/usage-import-parsers.mjs +37 -0
- package/src/usage-import.mjs +114 -0
- package/src/usage-timeline.mjs +36 -0
- package/src/usage.mjs +142 -0
- package/src/web.mjs +274 -0
- package/voice/README.md +49 -0
- package/voice/STREAMING.md +141 -0
- package/voice/VERIFICATION.md +36 -0
- package/voice/client/audio-worklet.js +35 -0
- package/voice/locale/en.json +1 -0
- package/voice/locale/zh-CN.json +1 -0
- package/voice/src/asr.mjs +44 -0
- package/voice/src/calls.mjs +37 -0
- package/voice/src/config.mjs +139 -0
- package/voice/src/media.mjs +70 -0
- package/voice/src/plugin.mjs +10 -0
- package/voice/src/realtime-protocols.mjs +30 -0
- package/voice/src/realtime-socket.mjs +86 -0
- package/voice/src/realtime.mjs +130 -0
- package/voice/src/tts.mjs +16 -0
- package/voice/src/web.mjs +171 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
.link-settings, .link-mobile, .link-dialog-backdrop {
|
|
2
|
+
--link-ink: #142029;
|
|
3
|
+
--link-muted: #677177;
|
|
4
|
+
--link-faint: #edf0ed;
|
|
5
|
+
--link-paper: #fffdf8;
|
|
6
|
+
--link-panel: #f6f7f3;
|
|
7
|
+
--link-accent: #2c6ee8;
|
|
8
|
+
--link-accent-soft: #e7efff;
|
|
9
|
+
--link-danger: #b34845;
|
|
10
|
+
--link-radius: 14px;
|
|
11
|
+
}
|
|
12
|
+
@media (prefers-color-scheme: dark) {
|
|
13
|
+
.link-mobile { --link-ink: #edf2f0; --link-muted: #9da9aa; --link-faint: #2c3436; --link-paper: #171b1d; --link-panel: #202628; --link-accent: #8bb3ff; --link-accent-soft: #243653; --link-danger: #f0928d; }
|
|
14
|
+
}
|
|
15
|
+
body[data-ds-dark-theme] :is(.link-settings, .link-dialog-backdrop) { --link-ink: #edf2f0; --link-muted: #9da9aa; --link-faint: #2c3436; --link-paper: #171b1d; --link-panel: #202628; --link-accent: #8bb3ff; --link-accent-soft: #243653; --link-danger: #f0928d; }
|
|
16
|
+
body[data-ds-dark-theme] :is(.link-settings, .link-dialog-backdrop) .link-button-primary { color: #10213e; }
|
|
17
|
+
.link-settings, .link-mobile, .link-dialog-backdrop { font-family: inherit; color: var(--link-ink); }
|
|
18
|
+
.link-settings { width: 100%; max-width: 760px; min-width: 0; box-sizing: border-box; padding: 12px 0 36px; }
|
|
19
|
+
.link-settings .link-heading h2 { margin: 8px 0 10px; font-size: 25px; font-weight: 600; letter-spacing: -.035em; line-height: 1.25; }
|
|
20
|
+
.link-settings .link-heading p { font-size: 13px; }
|
|
21
|
+
.link-heading, .link-mobile-copy { max-width: 600px; }
|
|
22
|
+
.link-kicker { display: block; color: var(--link-muted); font-size: 10px; font-weight: 700; letter-spacing: .16em; line-height: 1.3; }
|
|
23
|
+
.link-heading h2, .link-mobile-copy h1 { margin: 13px 0 12px; font-size: clamp(32px, 5vw, 52px); font-weight: 500; letter-spacing: -.055em; line-height: .98; }
|
|
24
|
+
.link-heading h2 em, .link-mobile-copy h1 em { color: var(--link-accent); font-style: normal; }
|
|
25
|
+
.link-heading p, .link-mobile-copy p { max-width: 48ch; margin: 0; color: var(--link-muted); line-height: 1.65; }
|
|
26
|
+
.link-form { display: grid; grid-template-columns: 1fr 145px; gap: 1px; margin-top: 44px; overflow: hidden; border: 1px solid var(--link-faint); border-radius: var(--link-radius); background: var(--link-faint); }
|
|
27
|
+
.link-field { display: grid; gap: 8px; padding: 19px 18px; background: var(--link-paper); font-size: 13px; }
|
|
28
|
+
.link-field span, .link-toggle-field label { font-weight: 650; }
|
|
29
|
+
.link-field small, .link-toggle-field small { display: block; margin-top: 4px; color: var(--link-muted); font-size: 11px; font-weight: 400; }
|
|
30
|
+
.link-field input { width: 100%; box-sizing: border-box; border: 0; outline: none; background: transparent; color: var(--link-ink); font: inherit; font-size: 15px; }
|
|
31
|
+
.link-field-wide { grid-column: 1 / -1; }
|
|
32
|
+
.link-toggle-field { display: flex; align-items: center; justify-content: space-between; grid-column: 1 / -1; }
|
|
33
|
+
.link-toggle-field input { appearance: none; position: relative; width: 40px; height: 24px; margin: 0; border-radius: 99px; background: var(--link-faint); cursor: pointer; transition: background .2s ease; }
|
|
34
|
+
.link-toggle-field input::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--link-paper); box-shadow: 0 1px 3px #0002; transition: transform .2s ease; }
|
|
35
|
+
.link-toggle-field input:checked { background: var(--link-accent); }.link-toggle-field input:checked::after { transform: translateX(16px); }
|
|
36
|
+
.link-form-actions { display: flex; grid-column: 1 / -1; gap: 9px; padding: 14px; background: var(--link-paper); }
|
|
37
|
+
.link-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 36px; padding: 8px 13px; border: 1px solid var(--link-faint); border-radius: 9px; background: transparent; color: var(--link-ink); cursor: pointer; font: inherit; font-size: 12px; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
|
|
38
|
+
.link-button:hover:not(:disabled) { border-color: var(--link-accent); transform: translateY(-1px); }.link-button:disabled { cursor: wait; opacity: .45; }.link-button-primary { border-color: var(--link-accent); background: var(--link-accent); color: white; }.link-button-primary:hover:not(:disabled) { background: color-mix(in srgb, var(--link-accent), black 10%); }
|
|
39
|
+
.link-error { margin: 14px 0; color: var(--link-danger); font-size: 12px; }
|
|
40
|
+
.link-status-panel, .link-device-list { margin-top: 30px; padding: 22px; border: 1px solid var(--link-faint); border-radius: var(--link-radius); background: var(--link-panel); }
|
|
41
|
+
.link-panel-head, .link-pair-row { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }.link-panel-head h3, .link-pair-row h3 { margin: 7px 0 5px; font-size: 17px; letter-spacing: -.025em; }.link-panel-head > span { color: var(--link-muted); font-size: 12px; }
|
|
42
|
+
.link-online { display: flex; align-items: center; gap: 7px; padding-top: 2px; color: var(--link-muted); font-size: 12px; }.link-status-dot { display: inline-block; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--link-muted); }.link-status-running { background: #39ab7d; box-shadow: 0 0 0 3px #39ab7d22; }.link-status-waiting { background: #d89a3d; }.link-status-failed { background: var(--link-danger); }
|
|
43
|
+
.link-addresses { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }.link-addresses code, .link-pair-code { padding: 7px 9px; border-radius: 7px; background: var(--link-paper); color: var(--link-muted); font: 11px ui-monospace, SFMono-Regular, monospace; }
|
|
44
|
+
.link-pair-row { align-items: center; margin-top: 40px; padding: 2px 2px 22px; border-bottom: 1px solid var(--link-faint); }.link-pair-row p { max-width: 44ch; margin: 0; color: var(--link-muted); font-size: 12px; line-height: 1.6; }
|
|
45
|
+
.link-device-list { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }.link-device { display: flex; align-items: center; gap: 11px; padding: 15px 0; border-top: 1px solid var(--link-faint); }.link-device > div:nth-child(2) { min-width: 0; flex: 1; }.link-device strong, .link-device small { display: block; }.link-device strong { font-size: 13px; }.link-device small { margin-top: 3px; color: var(--link-muted); font-size: 11px; }.link-empty { color: var(--link-muted); font-size: 12px; }
|
|
46
|
+
.link-dialog-backdrop { position: fixed; z-index: 2100; inset: 0; display: grid; place-items: center; padding: 20px; background: #0c151899; backdrop-filter: blur(8px); }.link-dialog { position: relative; width: min(420px, 100%); min-width: 0; box-sizing: border-box; padding: 28px; border-radius: 18px; background: var(--link-paper); box-shadow: 0 25px 80px #0004; text-align: center; }.link-dialog h3 { margin: 10px 0 5px; font-size: 24px; letter-spacing: -.04em; }.link-dialog p { margin: 0 auto 19px; color: var(--link-muted); font-size: 12px; line-height: 1.6; }.link-dialog-close { position: absolute; top: 10px; right: 10px; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 8px; border: 0; border-radius: 9px; background: none; color: var(--link-muted); cursor: pointer; }.link-qr-surface { display: grid; place-items: center; width: fit-content; max-width: 100%; box-sizing: border-box; margin: 0 auto 16px; padding: 10px; border: 1px solid #e6e9e7; border-radius: 16px; background: #fffdf8; }
|
|
47
|
+
.link-qr { display: block; max-width: 100%; height: auto !important; aspect-ratio: 1; border-radius: 6px; }
|
|
48
|
+
.link-qr-error { max-width: 220px; padding: 24px 8px; color: #b34845 !important; }.link-pair-code { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; overflow: hidden; margin: 12px 0 0; padding: 12px; color: var(--link-ink); background: var(--link-panel); font-size: 12px; line-height: 1.5; letter-spacing: .02em; text-overflow: ellipsis; white-space: nowrap; text-align: left; }.link-expiry { display: block; margin-top: 8px; color: var(--link-muted); font-size: 11px; }.link-pending-list { margin-top: 20px; text-align: left; }.link-pending-list .link-device { padding: 11px 0; }.link-pending-list .link-device > div:last-child { display: flex; gap: 5px; }
|
|
49
|
+
.link-mobile { min-height: 100dvh; box-sizing: border-box; padding: 28px clamp(20px, 7vw, 64px); background: var(--link-paper); }.link-mobile-pair, .link-mobile-home { display: flex; flex-direction: column; }.link-mobile-brand { display: flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 700; letter-spacing: -.02em; }.link-mark { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 8px; background: var(--link-ink); color: var(--link-paper); font-size: 17px; }.link-mobile-copy { margin: auto 0 32px; }.link-mobile-copy h1 { font-size: clamp(42px, 11vw, 74px); }.link-mobile-actions { display: flex; flex-wrap: wrap; gap: 9px; }.link-pair-input { display: grid; gap: 8px; max-width: 500px; margin-bottom: 18px; }.link-pair-input label { margin-top: 7px; color: var(--link-muted); font-size: 11px; }.link-pair-input input, .link-pair-input textarea, .link-composer textarea { width: 100%; box-sizing: border-box; resize: vertical; border: 1px solid var(--link-faint); border-radius: 9px; outline: none; padding: 11px; background: var(--link-panel); color: var(--link-ink); font: 13px ui-monospace, monospace; }.link-pair-input input:focus, .link-pair-input textarea:focus, .link-composer textarea:focus { border-color: var(--link-accent); }.link-pair-status { display: flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--link-muted); font-size: 12px; }
|
|
50
|
+
.link-mobile-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }.link-mobile-header > div:nth-child(2) { display: grid; flex: 1; text-align: center; }.link-mobile-header small { margin-top: 3px; color: var(--link-muted); font-size: 10px; }.link-mobile-home .link-mobile-copy { margin-top: clamp(80px, 18vh, 180px); }.link-projects { display: grid; gap: 7px; max-width: 650px; }.link-project, .link-session { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 15px; border: 1px solid var(--link-faint); border-radius: 10px; background: transparent; color: var(--link-ink); text-align: left; cursor: pointer; }.link-project:hover, .link-project.is-active { border-color: var(--link-accent); background: var(--link-accent-soft); }.link-project small { margin-left: auto; color: var(--link-muted); font: 10px ui-monospace, monospace; overflow: hidden; text-overflow: ellipsis; }.link-session-actions { display: grid; gap: 8px; max-width: 650px; margin-top: 26px; }.link-session { border: 0; border-top: 1px solid var(--link-faint); border-radius: 0; }.link-session small { margin-left: auto; color: var(--link-muted); }.link-mobile-chat { display: flex; flex-direction: column; }.link-messages { display: grid; align-content: start; gap: 20px; flex: 1; max-width: 720px; margin: 45px auto 25px; width: 100%; }.link-message span { color: var(--link-muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; }.link-message p { margin: 5px 0 0; white-space: pre-wrap; line-height: 1.65; }.link-message-user p { color: var(--link-accent); }.link-composer { display: flex; align-items: end; gap: 8px; max-width: 720px; width: 100%; margin: 0 auto; }.link-composer textarea { min-height: 40px; max-height: 150px; resize: none; }
|
|
51
|
+
@media (prefers-reduced-motion: reduce) { .link-button, .link-toggle-field input, .link-toggle-field input::after { transition: none; } }
|
|
52
|
+
@media (max-width: 580px) { .link-settings { padding: 26px 0 60px; }.link-form { grid-template-columns: 1fr; }.link-field-wide, .link-toggle-field, .link-form-actions { grid-column: auto; }.link-pair-row { align-items: flex-start; flex-direction: column; }.link-heading h2 { font-size: 38px; }.link-panel-head { gap: 10px; }.link-project small { display: none; } }
|
|
53
|
+
|
|
54
|
+
.link-mobile { font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; padding-top: max(28px, env(safe-area-inset-top)); padding-bottom: max(28px, env(safe-area-inset-bottom)); }.link-mobile button, .link-mobile input, .link-mobile textarea, .link-mobile .dowork-select { font-family: inherit; }:is(.link-settings, .link-mobile, .link-dialog-backdrop) .cmd-ui-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; color: inherit; line-height: 0; vertical-align: middle; }
|
|
55
|
+
:is(.link-settings, .link-mobile, .link-dialog-backdrop) .cmd-ui-icon > .cmd-ui-linear { display: inline-flex !important; width: 100%; height: 100%; }
|
|
56
|
+
:is(.link-settings, .link-mobile, .link-dialog-backdrop) .cmd-ui-icon svg { display: block; width: 100%; height: 100%; }
|
|
57
|
+
:is(.link-settings, .link-mobile, .link-dialog-backdrop) .cmd-ui-bold { display: none !important; }.link-mode-actions { display: grid; gap: 8px; min-width: 175px; }.link-mode-actions .dowork-select, .link-model-select .dowork-select { width: 100%; padding: 9px; background: var(--link-paper); border: 1px solid var(--link-faint); border-radius: 9px; color: var(--link-ink); font-size: 12px; }.link-pair-open { display: inline-flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 12px; color: var(--link-accent); font-size: 12px; }.link-pair-form { max-width: 500px; }.link-model-select { display: grid; gap: 7px; margin-bottom: 7px; font-size: 11px; color: var(--link-muted); }.link-composer-actions { display: flex; gap: 6px; }.link-send-pending { display: flex; align-items: center; justify-content: space-between; gap: 10px; max-width: 720px; margin: 0 auto 12px; color: var(--link-muted); font-size: 12px; }.link-interaction { padding: 17px; border: 1px solid var(--link-faint); border-radius: 12px; background: var(--link-panel); }.link-interaction h3 { margin: 9px 0 14px; font-size: 15px; }.link-interaction textarea { width: 100%; min-height: 60px; margin-bottom: 9px; border: 1px solid var(--link-faint); border-radius: 8px; background: var(--link-paper); color: var(--link-ink); }.link-interaction-options { display: flex; flex-wrap: wrap; gap: 7px; }.link-mobile-pair .link-mobile-copy { margin-top: max(70px, 13vh); }.link-mobile button:focus-visible, .link-settings button:focus-visible, .link-mobile .dowork-select:focus-visible, .link-settings .dowork-select:focus-visible { outline: 2px solid var(--link-accent); outline-offset: 3px; }
|
|
58
|
+
@media (prefers-color-scheme: dark) { .link-mobile .link-button-primary { color: #10213e; } }
|
|
59
|
+
@media (max-width: 580px) { .link-composer { align-items: stretch; flex-direction: column; }.link-composer-actions { justify-content: flex-end; }.link-heading h2 { line-height: 1.16; }.link-mobile-copy h1 { line-height: 1.1; } }
|
|
60
|
+
.link-question { display: grid; gap: 9px; min-width: 0; padding: 14px 0; border: 0; }.link-question legend { padding: 0; font-size: 14px; }.link-question label { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; }.link-question label small { display: block; margin-top: 4px; color: var(--link-muted); font-size: 11px; }.link-question input { accent-color: var(--link-accent); }.link-question textarea { box-sizing: border-box; padding: 9px; }
|
|
61
|
+
.link-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
|
|
62
|
+
.link-settings .link-status-panel { margin-top: 30px; }.link-settings .link-toggle-field { flex: none; padding-top: 5px; }.link-toggle-field input:disabled { cursor: wait; opacity: .45; }.link-status-note { margin: 15px 0 0; color: var(--link-muted); font-size: 12px; line-height: 1.6; }.link-connect-steps { margin: 12px 0; padding-left: 19px; color: var(--link-ink); font-size: 12px; line-height: 1.8; }.link-pair-row > .link-button { flex: none; min-width: 112px; }
|
|
63
|
+
.link-advanced { margin: 24px 0; border: 1px solid var(--link-faint); border-radius: var(--link-radius); background: var(--link-paper); }.link-advanced > summary { padding: 17px 20px; font-size: 13px; font-weight: 650; cursor: pointer; }.link-advanced[open] > summary { border-bottom: 1px solid var(--link-faint); }.link-advanced-note, .link-mode-notice { margin: 16px 20px; color: var(--link-muted); font-size: 12px; line-height: 1.65; }.link-advanced .link-form { margin: 0 16px 16px; }.link-advanced-controls { display: grid; gap: 1px; margin: 0 16px 16px; overflow: hidden; border: 1px solid var(--link-faint); border-radius: 10px; background: var(--link-faint); }.link-advanced-controls .link-field { min-width: 0; }.link-advanced-controls .dowork-select { width: 100%; box-sizing: border-box; padding: 9px; border: 1px solid var(--link-faint); border-radius: 8px; background: var(--link-paper); color: var(--link-ink); font: inherit; font-size: 12px; }.link-diagnostics { padding: 0 20px 20px; }.link-diagnostics .link-panel-head { align-items: center; }.link-diagnostics h4 { margin: 0; font-size: 12px; }.link-diagnostics p, .link-diagnostics .link-addresses > span { margin: 12px 0 0; color: var(--link-muted); font-size: 11px; line-height: 1.7; }.link-addresses code { max-width: 100%; overflow-wrap: anywhere; }.link-settings .link-device-list { margin-top: 24px; border-radius: var(--link-radius); }
|
|
64
|
+
.link-dialog { max-height: calc(100dvh - 40px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }.link-dialog .link-pair-warning { margin: 14px 0; font-size: 11px; }.link-pair-backup { min-width: 0; padding-top: 12px; border-top: 1px solid var(--link-faint); }.link-pair-backup summary { color: var(--link-muted); font-size: 11px; cursor: pointer; }.link-pair-backup-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
|
|
65
|
+
.link-pair-backup-actions .link-button { flex: 1 1 auto; margin: 0; white-space: nowrap; }
|
|
66
|
+
.link-dialog .link-pair-backup-note { margin: 12px 0 0; font-size: 11px; text-align: left; }
|
|
67
|
+
.link-dialog .link-copy-feedback { margin: 10px 0 0; font-size: 11px; }
|
|
68
|
+
.link-dialog .link-copy-feedback.link-error { color: var(--link-danger); }.link-settings summary:focus-visible, .link-toggle-field input:focus-visible { outline: 2px solid var(--link-accent); outline-offset: 3px; }
|
|
69
|
+
|
|
70
|
+
.link-dialog-symbol { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin: 4px 0 8px; border-radius: 13px; color: var(--link-accent); background: var(--link-accent-soft); }
|
|
71
|
+
.link-dialog-close:hover { background: var(--link-panel); color: var(--link-ink); }
|
|
72
|
+
.link-dialog :is(button, a, summary):focus-visible { outline: 2px solid var(--link-accent); outline-offset: 3px; }
|
|
73
|
+
.link-dialog .link-device { flex-wrap: wrap; text-align: left; }
|
|
74
|
+
.link-dialog .link-device-info { flex: 1 1 110px; min-width: 0; }
|
|
75
|
+
.link-dialog .link-device-actions { display: flex; flex: none; gap: 6px; }
|
|
76
|
+
.link-dialog .link-device-actions .link-button { box-sizing: border-box; flex: none; min-width: 76px; white-space: nowrap; }
|
|
77
|
+
.link-device strong { overflow-wrap: anywhere; }
|
|
78
|
+
.link-settings :is(.link-panel-head, .link-pair-row) > div { min-width: 0; }
|
|
79
|
+
.link-settings .link-button { white-space: nowrap; }
|
|
80
|
+
@media (max-width: 580px) { .link-settings { padding: 8px 0 28px; }.link-settings .link-heading h2 { font-size: 24px; }.link-status-panel, .link-device-list { padding: 18px; }.link-settings .link-device { flex-wrap: wrap; }.link-settings .link-device > div { min-width: 0; } }
|
|
81
|
+
@media (max-width: 380px) { .link-dialog-backdrop { padding: 12px; }.link-dialog { max-height: calc(100dvh - 24px); padding: 24px 18px; }.link-dialog h3 { font-size: 22px; }.link-qr-surface { padding: 6px; }.link-pair-backup-actions { flex-direction: column; } }
|
|
82
|
+
.link-settings .link-status-panel { margin-top: 20px; }
|
|
83
|
+
.link-settings .link-pair-row { margin-top: 22px; padding-bottom: 20px; }
|
|
84
|
+
.link-host-actions { display: flex; align-items: center; gap: 10px; }
|
|
85
|
+
.link-error-detail { margin: 10px 0; color: var(--link-muted); font-size: 11px; overflow-wrap: anywhere; }
|
|
86
|
+
.link-error-detail summary { cursor: pointer; }
|
|
87
|
+
.link-settings .link-toggle-field input:disabled { cursor: default; }
|
|
88
|
+
|
|
89
|
+
@media (any-pointer: coarse) {
|
|
90
|
+
html { -webkit-tap-highlight-color: transparent; }
|
|
91
|
+
:is(button, a, summary, [role="button"], [tabindex]):not(input, textarea, .dowork-select, [contenteditable]):focus:not(:focus-visible) { outline: none; }
|
|
92
|
+
}
|