@xopcai/xopc 0.0.265 → 0.0.267
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/browser-ext/dist/assets/{auth-CknJ00ae.js → auth-D_IL6naL.js} +603 -203
- package/dist/browser-ext/dist/assets/sidepanel-CEPaVLjr.css +155 -0
- package/dist/browser-ext/dist/background.js +698 -169
- package/dist/browser-ext/dist/sidepanel.html +3 -3
- package/dist/browser-ext/dist/sidepanel.js +148 -391
- package/dist/browser-ext/manifest.json +3 -6
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DRTTU2H3.js → agent-avatar-dicebear-ZrSAMchm.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-BsXF7LVi.js → agent-defaults-settings-panel-DiNFN8qS.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-DpjWfxYx.js → agents-Bu6Hf59K.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-33Mc81h2.js → app-management-settings-panel-D-L6yjS7.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-C8JECSiJ.js → appearance-settings-BW5eb53j.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-t64FcxIZ.js → apps-page-CiQIdz3N.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-PzZ6SzfY.js → archive-plugin-DwXvu1p9.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-OhLL6K__.js → attachment-load-DqU2BYBp.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BpAYwuvx.js → automations-page-C7qoj9Sd.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-B6aTT5IC.js → automations-workspace-CIARTLHO.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-B5XpGsHg.js → binary-plugins-CfplDak2.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-BgEhoTnN.js → block-editor-CzLs38ru.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-CBLunDRH.js → browser-automations-page-_SKi8s9b.js} +1 -1
- package/dist/gateway/static/root/assets/browser-settings-page-DTdx66sX.js +8 -0
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-DftNnICK.js → capabilities-settings-panel-Ck9U0Olx.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-settings-CpuWa5qu.js → channels-settings-I_vDpbnl.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-mnPsS_GJ.js → chat-terminal-dock-snvAu3hJ.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-D3nHGnNV.js → connectors-page-BmKTnzo1.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-expression-NcGBvIfe.js → cron-expression-BhGZSbT6.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-BrVcl7H5.js → date-picker-Cep5f9b-.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker--edd48Y9.js → dependency-picker-BzSEBQku.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-vuyyb6I6.js → desktop-pet-BwX_6Gah.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DWredJwO.js → desktop-pet-settings-WrbVsU2b.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-CtBW4ebj.js → extension-debug-page-BdXSwtAZ.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CsUrmtW7.js → extension-page-I95ukbRb.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-BUd31AuK.js → extension-settings-page-8zUisBay.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-C6FQv7op.js → gateway-settings-DGj5b9Yv.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-CDo1Gjp2.js → heartbeat-settings-BGQxU-Ug.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-D3_uvVJY.js → home-page-BZPpK0A3.js} +1 -1
- package/dist/gateway/static/root/assets/{index-Dpu7EKTm.js → index-D2OtD9Wa.js} +8 -8
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CNVmrCrV.js → keyboard-shortcuts-settings-BUe_om99.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-B0IVDvs-.js → local-app-workbench-page-CbQnffS9.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-DvkarvLt.js → local-apps-page-BZaLzfms.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-BknY0vZf.js → logs-page-WWCHqW_x.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-DW6hJINQ.js → management-settings-Duf8w-Bl.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DYautOWY.js → media-plugins-2-QfzHmg.js} +1 -1
- package/dist/gateway/static/root/assets/{mobile-pairing-wizard-Dgu03cv-.js → mobile-pairing-wizard-DRaVIAt1.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-panel-Cv9uH6Jq.js → note-detail-panel-BT-fWGxX.js} +3 -3
- package/dist/gateway/static/root/assets/{notes-page-DcIAiYJn.js → notes-page-C4705PzN.js} +1 -1
- package/dist/gateway/static/root/assets/{page-tabs-DF6Q5XvA.js → page-tabs-DaZ7QpNO.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-CQJH_jAN.js → preview-open-alternatives-CWEuqCmv.js} +1 -1
- package/dist/gateway/static/root/assets/{project-detail-page-D65JfNSw.js → project-detail-page-BZegJ6an.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-BfWF7Sz-.js → projects-page-B7hUHeLI.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-DA1g4CUD.js → remote-access-hub-BE9hZpdh.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-0-bFSBB8.js → runtime-tools-settings-panel-CslkSM-m.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-csGbhTUr.js → schema-form-B2gvVrBq.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-DXPBNhrZ.js → sessions-page-DmAAPMo1.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CvBocGDA.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-YdrdY8B3.js → settings-form-section-CmlnuSO3.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-Cv9waRn3.js → settings-page-DWWgyelT.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-DPf-_05Z.js → setup-status-panel-CJrN3m1o.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-DBoEHTPn.js → share-preview-page-C12oyIKk.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-BQP5yNcO.js → shares-settings-D4BtSiLq.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-B5T8cgjq.js → skill-reload-api-CzKGn056.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-D1G8h2Lt.js → skills-page-yhW7LLqk.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-BNZYTop7.js → skills-page.utils-FaTlq8t-.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-ByuppbHi.js → system-settings-panel-CMrkoJLN.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-DNmkrF6y.js → task-detail-page-BUaO62cy.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-CxWGpbwr.js → tunnel-api-C2tAZaJz.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-B0l4qubU.js → use-autosave-BsDRt4QI.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-DMsI6YI7.js → user-model-page-Dy8h1SSJ.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-Bcz7boJg.js → voice-api-key-field-CS5heYMP.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-Dujq1j_u.js → work-discovery-overlay-BeSz5Th5.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CxNYbLNB.js → workflow-run-setup-panel-BebW0CDK.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-Dk1jK2nv.js → workflows-page-CU8jFgPF.js} +1 -1
- package/dist/gateway/static/root/index.html +1 -1
- package/dist/package.js +1 -1
- package/dist/packages/browser-control-contract/src/index.js +30 -1
- package/dist/src/agent/agent-manager.js +4 -4
- package/dist/src/agent/background-review/run-background-review.js +1 -1
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/external-tools/endpoint-provider.js +3 -1
- package/dist/src/agent/image/tool-model-config.js +1 -1
- package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
- package/dist/src/agent/service.js +2 -2
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +3 -3
- package/dist/src/agent/tools/factory.js +1 -1
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +2 -2
- package/dist/src/browser/automations/runtime-service.d.ts +2 -0
- package/dist/src/browser/automations/runtime-service.js +1 -1
- package/dist/src/browser/drivers/create-driver.d.ts +2 -1
- package/dist/src/browser/drivers/create-driver.js +4 -6
- package/dist/src/browser/drivers/extension-driver.d.ts +7 -2
- package/dist/src/browser/enrollment.d.ts +8 -0
- package/dist/src/browser/enrollment.js +25 -0
- package/dist/src/browser/extension-identity.d.ts +2 -0
- package/dist/src/browser/extension-identity.js +5 -0
- package/dist/src/browser/native-messaging-host.d.ts +6 -3
- package/dist/src/browser/native-messaging-host.js +23 -5
- package/dist/src/browser/providers/browser-ext-install.d.ts +4 -1
- package/dist/src/browser/providers/browser-ext-install.js +47 -8
- package/dist/src/browser/providers/extension.js +1 -1
- package/dist/src/browser/providers/realtime-extension.d.ts +29 -0
- package/dist/src/browser/providers/realtime-extension.js +83 -0
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/config/index.js +4 -4
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/endpoint-tools/policy.js +10 -3
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/hono/app.js +6 -1
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/routes/browser.js +20 -30
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/security/origin-check.js +5 -0
- package/dist/src/gateway/service/config-coordinator.d.ts +0 -2
- package/dist/src/gateway/service/config-coordinator.js +1 -3
- package/dist/src/gateway/service.d.ts +0 -11
- package/dist/src/gateway/service.js +5 -83
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/storage/sqlite/device-pairing-approval.js +24 -3
- package/dist/src/storage/sqlite/device-pairing-repository.d.ts +10 -1
- package/dist/src/storage/sqlite/device-pairing-repository.js +6 -5
- package/dist/src/storage/sqlite/migrations/157_browser_endpoint_principals.sql +50 -0
- package/dist/src/storage/sqlite/migrations/158_browser_native_enrollment.sql +4 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +1 -1
- package/dist/src/work-discovery/service.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +1 -1
- package/package.json +3 -3
- package/dist/browser-ext/dist/assets/sidepanel-C69P3v9u.css +0 -113
- package/dist/gateway/static/root/assets/browser-settings-page-CSfpPCuD.js +0 -8
- package/dist/gateway/static/root/assets/settings-advanced-gate-DxeZm67O.js +0 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: light dark;
|
|
3
|
+
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;
|
|
4
|
+
|
|
5
|
+
/* Keep the extension aligned with the Gateway's default Calm Intelligence theme. */
|
|
6
|
+
--surface-base: #f7f8fa;
|
|
7
|
+
--surface-panel: #ffffff;
|
|
8
|
+
--surface-hover: #e8ecf1;
|
|
9
|
+
--surface-active: #dfe5ec;
|
|
10
|
+
--fg: #111111;
|
|
11
|
+
--fg-muted: #666666;
|
|
12
|
+
--fg-subtle: #999999;
|
|
13
|
+
--fg-disabled: #b8b8b8;
|
|
14
|
+
--edge-subtle: #f2f2f2;
|
|
15
|
+
--edge: #ececec;
|
|
16
|
+
--edge-strong: #d8dce8;
|
|
17
|
+
--accent: #3a6bff;
|
|
18
|
+
--accent-hover: #315ce6;
|
|
19
|
+
--accent-soft: #eef3ff;
|
|
20
|
+
--accent-fg: #2f5ef6;
|
|
21
|
+
--success: #2ccb7f;
|
|
22
|
+
--success-soft: #e7fbf1;
|
|
23
|
+
--danger: #ff5d5d;
|
|
24
|
+
--danger-soft: #fff0f0;
|
|
25
|
+
--warning: #ffb84d;
|
|
26
|
+
--warning-soft: #fff7e8;
|
|
27
|
+
--shadow-surface: 0 1px 2px rgb(17 17 17 / 4%), 0 6px 18px rgb(17 17 17 / 4%);
|
|
28
|
+
--shadow-popover: 0 10px 32px rgb(17 17 17 / 10%), 0 2px 10px rgb(17 17 17 / 6%);
|
|
29
|
+
|
|
30
|
+
background: var(--surface-base);
|
|
31
|
+
color: var(--fg);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:root[data-theme='dark'] {
|
|
35
|
+
--surface-base: #14171c;
|
|
36
|
+
--surface-panel: #1b1f26;
|
|
37
|
+
--surface-hover: #242933;
|
|
38
|
+
--surface-active: #2e3440;
|
|
39
|
+
--fg: #f4f6f8;
|
|
40
|
+
--fg-muted: #b8bec8;
|
|
41
|
+
--fg-subtle: #87909d;
|
|
42
|
+
--fg-disabled: #626b78;
|
|
43
|
+
--edge-subtle: #252932;
|
|
44
|
+
--edge: #323844;
|
|
45
|
+
--edge-strong: #465061;
|
|
46
|
+
--accent: #3a6bff;
|
|
47
|
+
--accent-hover: #6f91ff;
|
|
48
|
+
--accent-soft: rgb(58 107 255 / 0.2);
|
|
49
|
+
--accent-fg: #adc0ff;
|
|
50
|
+
--success: #2ccb7f;
|
|
51
|
+
--success-soft: rgb(44 203 127 / 0.16);
|
|
52
|
+
--danger: #ff5d5d;
|
|
53
|
+
--danger-soft: rgb(255 93 93 / 0.16);
|
|
54
|
+
--warning: #ffb84d;
|
|
55
|
+
--warning-soft: rgb(255 184 77 / 0.16);
|
|
56
|
+
--shadow-surface: 0 0 0 1px rgb(255 255 255 / 4.5%);
|
|
57
|
+
--shadow-popover: 0 18px 54px rgb(0 0 0 / 38%), 0 0 0 1px rgb(255 255 255 / 5%);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
* { box-sizing: border-box; }
|
|
61
|
+
html, body, #root { height: 100%; margin: 0; }
|
|
62
|
+
html { background: var(--surface-base); color: var(--fg); -webkit-font-smoothing: antialiased; }
|
|
63
|
+
body { overflow: hidden; }
|
|
64
|
+
button, input, textarea, select { font: inherit; }
|
|
65
|
+
button { cursor: pointer; color: inherit; }
|
|
66
|
+
button:disabled { cursor: default; }
|
|
67
|
+
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
68
|
+
input::placeholder, textarea::placeholder { color: var(--fg-disabled); }
|
|
69
|
+
|
|
70
|
+
.shell { min-height: 100%; display: flex; flex-direction: column; background: var(--surface-base); }
|
|
71
|
+
.header { height: 56px; padding: 0 16px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--edge); background: var(--surface-panel); }
|
|
72
|
+
.brand { font-size: 17px; font-weight: 650; flex: 1; }
|
|
73
|
+
.status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--fg-muted); }
|
|
74
|
+
.status-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--fg-subtle); }
|
|
75
|
+
.status-dot.online { background: var(--success); }
|
|
76
|
+
.status-dot.error { background: var(--danger); }
|
|
77
|
+
.center { flex: 1; display: grid; place-items: center; padding: 24px; }
|
|
78
|
+
.card { width: min(100%, 420px); border: 1px solid var(--edge); border-radius: 14px; padding: 20px; background: var(--surface-panel); box-shadow: var(--shadow-surface); }
|
|
79
|
+
.card h1 { margin: 0 0 8px; font-size: 20px; }
|
|
80
|
+
.muted { color: var(--fg-muted); line-height: 1.5; font-size: 13px; }
|
|
81
|
+
.field { display: grid; gap: 6px; margin-top: 14px; font-size: 13px; }
|
|
82
|
+
.field input, .field textarea { width: 100%; border: 1px solid var(--edge-strong); border-radius: 8px; padding: 10px 12px; background: var(--surface-panel); color: var(--fg); }
|
|
83
|
+
.primary { border: 0; border-radius: 8px; background: var(--accent); color: #fff; padding: 10px 14px; font-weight: 600; transition: background-color 150ms ease; }
|
|
84
|
+
.primary:hover:not(:disabled) { background: var(--accent-hover); }
|
|
85
|
+
.primary:disabled { background: var(--surface-active); color: var(--fg-disabled); }
|
|
86
|
+
.secondary { border: 1px solid var(--edge-strong); border-radius: 8px; background: var(--surface-panel); padding: 8px 12px; }
|
|
87
|
+
.secondary:hover { background: var(--surface-hover); }
|
|
88
|
+
.actions { display: flex; gap: 8px; margin-top: 16px; }
|
|
89
|
+
.local-connect { width: 100%; margin-top: 12px; }
|
|
90
|
+
.pairing-divider { display: flex; align-items: center; gap: 8px; margin-top: 16px; color: var(--fg-subtle); font-size: 11px; }
|
|
91
|
+
.pairing-divider::before, .pairing-divider::after { content: ""; height: 1px; flex: 1; background: var(--edge); }
|
|
92
|
+
.error-text { color: var(--danger); font-size: 13px; margin-top: 10px; }
|
|
93
|
+
.approval-code { font: 700 28px ui-monospace, "SF Mono", monospace; letter-spacing: 5px; margin: 18px 0; color: var(--accent-fg); }
|
|
94
|
+
.disconnect-link { position: absolute; top: 17px; right: 96px; border: 0; background: transparent; color: var(--fg-muted); font-size: 11px; }
|
|
95
|
+
.disconnect-link:hover { color: var(--fg); }
|
|
96
|
+
.chat { min-height: 0; flex: 1; display: flex; flex-direction: column; position: relative; background: var(--surface-base); }
|
|
97
|
+
.chat-toolbar { height: 52px; border-bottom: 1px solid var(--edge); display: flex; align-items: center; padding: 0 12px; gap: 8px; background: var(--surface-panel); }
|
|
98
|
+
.session-trigger { flex: 1; display: flex; justify-content: center; gap: 7px; border: 0; background: transparent; font-weight: 600; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
99
|
+
.icon-button { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--edge); background: var(--surface-panel); }
|
|
100
|
+
.icon-button:hover { background: var(--surface-hover); }
|
|
101
|
+
.session-menu { position: absolute; z-index: 5; top: 108px; left: 12px; right: 12px; max-height: min(60vh, 500px); border: 1px solid var(--edge-strong); border-radius: 12px; background: var(--surface-panel); padding: 10px; box-shadow: var(--shadow-popover); }
|
|
102
|
+
.session-menu > input { width: 100%; border: 0; border-bottom: 1px solid var(--edge); padding: 9px; outline: none; background: transparent; color: var(--fg); }
|
|
103
|
+
.session-list { overflow: auto; max-height: 380px; padding-top: 5px; }
|
|
104
|
+
.session-list button { width: 100%; border: 0; background: transparent; border-radius: 7px; display: flex; justify-content: space-between; gap: 12px; padding: 9px; text-align: left; }
|
|
105
|
+
.session-list button:hover { background: var(--surface-hover); }
|
|
106
|
+
.session-list span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
107
|
+
.session-list small { color: var(--fg-subtle); }
|
|
108
|
+
.messages { flex: 1; overflow-y: auto; padding: 18px 16px 150px; }
|
|
109
|
+
.empty-chat { height: 100%; display: grid; place-content: center; text-align: center; color: var(--fg-muted); }
|
|
110
|
+
.mark { font-size: 40px; color: var(--fg-subtle); }
|
|
111
|
+
.message { margin: 0 0 20px; line-height: 1.55; color: var(--fg); }
|
|
112
|
+
.message.user { margin-left: 15%; background: color-mix(in srgb, var(--surface-hover) 80%, transparent); border-radius: 14px; padding: 10px 12px; }
|
|
113
|
+
.message-role { font-size: 11px; font-weight: 700; color: var(--fg-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em; }
|
|
114
|
+
.message-content { white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
115
|
+
.source-badge { display: inline-block; max-width: 100%; margin-bottom: 6px; border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent); border-radius: 999px; padding: 3px 8px; color: var(--accent-fg); background: var(--accent-soft); font-size: 11px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
116
|
+
.caret { display: inline-block; width: 6px; height: 1em; margin-left: 2px; vertical-align: -2px; background: var(--accent); animation: blink 1s steps(1) infinite; }
|
|
117
|
+
@keyframes blink { 50% { opacity: 0; } }
|
|
118
|
+
.composer { position: absolute; left: 12px; right: 12px; bottom: 12px; border: 1px solid var(--edge); border-radius: 16px; background: var(--surface-panel); padding: 10px; box-shadow: var(--shadow-surface); }
|
|
119
|
+
.composer textarea { width: 100%; resize: none; border: 0; outline: none; background: transparent; color: var(--fg); }
|
|
120
|
+
.tab-mention-menu { position: absolute; z-index: 6; left: 0; right: 0; bottom: calc(100% + 8px); max-height: min(45vh, 320px); overflow-y: auto; border: 1px solid var(--edge-strong); border-radius: 12px; background: var(--surface-panel); padding: 5px; box-shadow: var(--shadow-popover); }
|
|
121
|
+
.tab-mention-menu button { width: 100%; display: grid; gap: 2px; border: 0; border-radius: 8px; padding: 8px 10px; background: transparent; color: inherit; text-align: left; }
|
|
122
|
+
.tab-mention-menu button:hover, .tab-mention-menu button.selected { background: var(--accent-soft); }
|
|
123
|
+
.tab-mention-menu span, .tab-mention-menu small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
124
|
+
.tab-mention-menu span { font-size: 12px; font-weight: 600; }
|
|
125
|
+
.tab-mention-menu small, .tab-mention-empty { color: var(--fg-muted); font-size: 11px; }
|
|
126
|
+
.tab-mention-empty { padding: 10px; }
|
|
127
|
+
.composer-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-top: 5px; }
|
|
128
|
+
.composer-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
|
|
129
|
+
.composer-tools button { border: 0; background: transparent; padding: 3px; color: var(--fg-muted); font-size: 11px; }
|
|
130
|
+
.composer-tools button:hover { color: var(--fg); }
|
|
131
|
+
.context-chip { display: flex; align-items: center; gap: 5px; margin-bottom: 7px; border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent); border-radius: 8px; padding: 6px 7px; color: var(--accent-fg); background: var(--accent-soft); font-size: 11px; }
|
|
132
|
+
.context-chip span { min-width: 0; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
133
|
+
.context-chip button { border: 0; background: transparent; color: inherit; padding: 2px 4px; }
|
|
134
|
+
.context-chip.stale { border-color: color-mix(in srgb, var(--warning) 55%, var(--edge)); background: var(--warning-soft); color: color-mix(in srgb, var(--warning) 70%, var(--fg)); }
|
|
135
|
+
.attachment-chip { display: flex; align-items: center; gap: 5px; margin-bottom: 7px; border: 1px solid var(--edge-strong); border-radius: 8px; padding: 6px 7px; color: var(--fg-muted); background: var(--surface-base); font-size: 11px; }
|
|
136
|
+
.attachment-chip span { min-width: 0; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
137
|
+
.attachment-chip button { border: 0; background: transparent; color: inherit; }
|
|
138
|
+
.file-input { display: none; }
|
|
139
|
+
.connection-label { color: var(--fg-subtle); font-size: 11px; }
|
|
140
|
+
.model-controls { display: flex; align-items: center; gap: 4px; margin-left: auto; }
|
|
141
|
+
.model-controls select { min-width: 0; max-width: 120px; border: 0; background: transparent; color: var(--fg-muted); font-size: 11px; }
|
|
142
|
+
.send-button, .stop-button { border: 0; border-radius: 999px; min-width: 34px; height: 34px; background: var(--accent); color: #fff; font-weight: 700; transition: background-color 150ms ease; }
|
|
143
|
+
.send-button:hover:not(:disabled), .stop-button:hover:not(:disabled) { background: var(--accent-hover); }
|
|
144
|
+
.send-button:disabled { background: var(--surface-active); color: var(--fg-disabled); }
|
|
145
|
+
.stop-button { padding: 0 13px; }
|
|
146
|
+
.composer-error { color: var(--danger); font-size: 12px; margin-bottom: 6px; }
|
|
147
|
+
.clarification { margin: 0 0 10px; border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent); border-radius: 11px; padding: 10px; background: var(--accent-soft); }
|
|
148
|
+
.clarification strong { display: block; font-size: 12px; color: var(--accent-fg); }
|
|
149
|
+
.clarification p { margin: 6px 0 8px; font-size: 13px; line-height: 1.45; }
|
|
150
|
+
.clarification > button, .clarification-actions button, .clarification-answer button { margin: 0 6px 6px 0; border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--edge)); border-radius: 7px; padding: 5px 8px; background: var(--surface-panel); color: var(--accent-fg); font-size: 12px; }
|
|
151
|
+
.clarification > button:hover, .clarification-actions button:hover, .clarification-answer button:hover { background: var(--surface-hover); }
|
|
152
|
+
.clarification-answer { display: flex; gap: 6px; }
|
|
153
|
+
.clarification-answer input { min-width: 0; flex: 1; border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--edge)); border-radius: 7px; padding: 6px 8px; background: var(--surface-panel); color: var(--fg); }
|
|
154
|
+
.clarification-actions { margin-top: 3px; }
|
|
155
|
+
.clarification-actions button { border-color: transparent; background: transparent; color: var(--fg-muted); }
|