besser-agentic-framework-ui 0.2.1 → 0.2.3
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/LICENSE +21 -21
- package/dist/besser-agentic-framework-ui.js +116 -2
- package/dist/components/SessionSidebar.d.ts +15 -0
- package/dist/lib.d.ts +2 -0
- package/dist/services/db.d.ts +23 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 BESSER-PEARL
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 BESSER-PEARL
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -2672,8 +2672,122 @@ function $({ messages: e, setMessages: n, status: i, send: a }) {
|
|
|
2672
2672
|
});
|
|
2673
2673
|
}
|
|
2674
2674
|
//#endregion
|
|
2675
|
+
//#region src/components/SessionSidebar.tsx
|
|
2676
|
+
function je({ agentName: e, username: n, selectedSessionId: i, onSelectSession: a, onDeleteSession: c, onSessionsLoaded: l, refreshKey: u = 0, sessionName: d, onSessionNameChange: m, onStartSession: h }) {
|
|
2677
|
+
let [g, _] = s([]), [v, y] = s(!1), [b, x] = s(null), S = o(l);
|
|
2678
|
+
S.current = l;
|
|
2679
|
+
let C = t(() => {
|
|
2680
|
+
let t = new URLSearchParams({ agent_name: e });
|
|
2681
|
+
return n && t.set("username", n), fetch(`/api/sessions?${t.toString()}`).then((e) => {
|
|
2682
|
+
if (!e.ok) throw Error(`Server error ${e.status}`);
|
|
2683
|
+
return e.json();
|
|
2684
|
+
}).then((e) => {
|
|
2685
|
+
_(e), S.current?.(e), x(null);
|
|
2686
|
+
}).catch((e) => x(e.message));
|
|
2687
|
+
}, [e, n]);
|
|
2688
|
+
r(() => {
|
|
2689
|
+
y(!0), C().finally(() => y(!1));
|
|
2690
|
+
let e = setInterval(C, 5e3);
|
|
2691
|
+
return () => clearInterval(e);
|
|
2692
|
+
}, [C, u]);
|
|
2693
|
+
function w(e) {
|
|
2694
|
+
return new Date(e).toLocaleString(void 0, {
|
|
2695
|
+
month: "short",
|
|
2696
|
+
day: "numeric",
|
|
2697
|
+
hour: "2-digit",
|
|
2698
|
+
minute: "2-digit"
|
|
2699
|
+
});
|
|
2700
|
+
}
|
|
2701
|
+
function T() {
|
|
2702
|
+
h(), setTimeout(() => C(), 300), setTimeout(() => C(), 700);
|
|
2703
|
+
}
|
|
2704
|
+
return /* @__PURE__ */ p("aside", {
|
|
2705
|
+
className: "session-sidebar",
|
|
2706
|
+
children: [/* @__PURE__ */ p("div", {
|
|
2707
|
+
className: "session-sidebar__header",
|
|
2708
|
+
children: [/* @__PURE__ */ f("span", {
|
|
2709
|
+
className: "session-sidebar__title",
|
|
2710
|
+
children: "Sessions"
|
|
2711
|
+
}), /* @__PURE__ */ p("div", {
|
|
2712
|
+
className: "session-sidebar__new",
|
|
2713
|
+
children: [/* @__PURE__ */ f("input", {
|
|
2714
|
+
className: "session-sidebar__name-input",
|
|
2715
|
+
value: d,
|
|
2716
|
+
onChange: (e) => m(e.target.value),
|
|
2717
|
+
placeholder: "Session name (optional)",
|
|
2718
|
+
onKeyDown: (e) => e.key === "Enter" && T()
|
|
2719
|
+
}), /* @__PURE__ */ f("button", {
|
|
2720
|
+
className: "btn btn--primary session-sidebar__start-btn",
|
|
2721
|
+
onClick: T,
|
|
2722
|
+
children: "+ New session"
|
|
2723
|
+
})]
|
|
2724
|
+
})]
|
|
2725
|
+
}), /* @__PURE__ */ p("div", {
|
|
2726
|
+
className: "session-sidebar__body",
|
|
2727
|
+
children: [
|
|
2728
|
+
v && /* @__PURE__ */ f("div", {
|
|
2729
|
+
className: "session-sidebar__status",
|
|
2730
|
+
children: "Loading…"
|
|
2731
|
+
}),
|
|
2732
|
+
!v && b && /* @__PURE__ */ f("div", {
|
|
2733
|
+
className: "session-sidebar__status session-sidebar__status--error",
|
|
2734
|
+
children: b
|
|
2735
|
+
}),
|
|
2736
|
+
!v && !b && g.length === 0 && /* @__PURE__ */ f("div", {
|
|
2737
|
+
className: "session-sidebar__status",
|
|
2738
|
+
children: "No sessions found"
|
|
2739
|
+
}),
|
|
2740
|
+
!v && !b && g.map((e) => /* @__PURE__ */ p("div", {
|
|
2741
|
+
className: `session-item${i === e.session_id ? " session-item--active" : ""}`,
|
|
2742
|
+
children: [/* @__PURE__ */ p("button", {
|
|
2743
|
+
className: "session-item__content",
|
|
2744
|
+
onClick: () => a(e),
|
|
2745
|
+
children: [
|
|
2746
|
+
/* @__PURE__ */ f("div", {
|
|
2747
|
+
className: "session-item__id",
|
|
2748
|
+
title: e.session_id,
|
|
2749
|
+
children: e.session_name ?? e.session_id
|
|
2750
|
+
}),
|
|
2751
|
+
e.session_name && /* @__PURE__ */ f("div", {
|
|
2752
|
+
className: "session-item__meta",
|
|
2753
|
+
children: e.session_id
|
|
2754
|
+
}),
|
|
2755
|
+
/* @__PURE__ */ f("div", {
|
|
2756
|
+
className: "session-item__meta",
|
|
2757
|
+
children: w(e.timestamp)
|
|
2758
|
+
})
|
|
2759
|
+
]
|
|
2760
|
+
}), /* @__PURE__ */ f("button", {
|
|
2761
|
+
className: "session-item__delete",
|
|
2762
|
+
title: "Delete session",
|
|
2763
|
+
onClick: () => c(e),
|
|
2764
|
+
children: /* @__PURE__ */ p("svg", {
|
|
2765
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2766
|
+
width: "14",
|
|
2767
|
+
height: "14",
|
|
2768
|
+
viewBox: "0 0 24 24",
|
|
2769
|
+
fill: "none",
|
|
2770
|
+
stroke: "currentColor",
|
|
2771
|
+
strokeWidth: "2",
|
|
2772
|
+
strokeLinecap: "round",
|
|
2773
|
+
strokeLinejoin: "round",
|
|
2774
|
+
children: [
|
|
2775
|
+
/* @__PURE__ */ f("polyline", { points: "3 6 5 6 21 6" }),
|
|
2776
|
+
/* @__PURE__ */ f("path", { d: "M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" }),
|
|
2777
|
+
/* @__PURE__ */ f("path", { d: "M10 11v6" }),
|
|
2778
|
+
/* @__PURE__ */ f("path", { d: "M14 11v6" }),
|
|
2779
|
+
/* @__PURE__ */ f("path", { d: "M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2" })
|
|
2780
|
+
]
|
|
2781
|
+
})
|
|
2782
|
+
})]
|
|
2783
|
+
}, e.id))
|
|
2784
|
+
]
|
|
2785
|
+
})]
|
|
2786
|
+
});
|
|
2787
|
+
}
|
|
2788
|
+
//#endregion
|
|
2675
2789
|
//#region src/hooks/useWebSocket.ts
|
|
2676
|
-
function
|
|
2790
|
+
function Me(e, n) {
|
|
2677
2791
|
let [i, a] = s("disconnected"), c = o(null), l = o(n);
|
|
2678
2792
|
return l.current = n, r(() => {
|
|
2679
2793
|
if (!e) {
|
|
@@ -2715,4 +2829,4 @@ function je(e, n) {
|
|
|
2715
2829
|
};
|
|
2716
2830
|
}
|
|
2717
2831
|
//#endregion
|
|
2718
|
-
export { $ as ChatArea, U as GUIRenderer, q as MessageBubble, m as PayloadAction, _ as REASONING_TRACE_ACTION, h as ReasoningStepKind, W as ReasoningTrace, g as TaskStatus, E as detectContentKind, x as isEmptyTrace, y as isReasoningEnd, v as isReasoningStart, T as looksLikeCode, C as looksLikeMarkdown,
|
|
2832
|
+
export { $ as ChatArea, U as GUIRenderer, q as MessageBubble, m as PayloadAction, _ as REASONING_TRACE_ACTION, h as ReasoningStepKind, W as ReasoningTrace, je as SessionSidebar, g as TaskStatus, E as detectContentKind, x as isEmptyTrace, y as isReasoningEnd, v as isReasoningStart, T as looksLikeCode, C as looksLikeMarkdown, Me as useWebSocket, b as visibleSteps };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SessionRecord } from '../services/db';
|
|
2
|
+
interface SessionSidebarProps {
|
|
3
|
+
agentName: string;
|
|
4
|
+
username?: string;
|
|
5
|
+
selectedSessionId: string | null;
|
|
6
|
+
onSelectSession: (session: SessionRecord) => void;
|
|
7
|
+
onDeleteSession: (session: SessionRecord) => void;
|
|
8
|
+
onSessionsLoaded?: (sessions: SessionRecord[]) => void;
|
|
9
|
+
refreshKey?: number;
|
|
10
|
+
sessionName: string;
|
|
11
|
+
onSessionNameChange: (value: string) => void;
|
|
12
|
+
onStartSession: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function SessionSidebar({ agentName, username, selectedSessionId, onSelectSession, onDeleteSession, onSessionsLoaded, refreshKey, sessionName, onSessionNameChange, onStartSession, }: SessionSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
package/dist/lib.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import './lib.css';
|
|
2
2
|
import './App.css';
|
|
3
3
|
export { ChatArea } from './components/ChatArea';
|
|
4
|
+
export { SessionSidebar } from './components/SessionSidebar';
|
|
4
5
|
export { MessageBubble } from './components/MessageBubble';
|
|
5
6
|
export { ReasoningTrace } from './components/ReasoningTrace';
|
|
6
7
|
export { GUIRenderer } from './components/GUIRenderer';
|
|
8
|
+
export type { SessionRecord } from './services/db';
|
|
7
9
|
export { useWebSocket } from './hooks/useWebSocket';
|
|
8
10
|
export type { ConnectionStatus } from './hooks/useWebSocket';
|
|
9
11
|
export type { ChatMessage, Agent } from './types/agent';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface DbCredentials {
|
|
2
|
+
host: string;
|
|
3
|
+
port: number;
|
|
4
|
+
database: string;
|
|
5
|
+
user: string;
|
|
6
|
+
password: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SessionRecord {
|
|
9
|
+
id: number;
|
|
10
|
+
session_id: string;
|
|
11
|
+
session_name: string | null;
|
|
12
|
+
platform_name: string;
|
|
13
|
+
timestamp: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function createDb(credentials: DbCredentials): {
|
|
16
|
+
/**
|
|
17
|
+
* Retrieve all sessions for a given agent name, optionally filtered by username.
|
|
18
|
+
* Returns sessions ordered newest first.
|
|
19
|
+
*/
|
|
20
|
+
getSessions(agentName: string, username?: string): Promise<SessionRecord[]>;
|
|
21
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
22
|
+
end(): Promise<void>;
|
|
23
|
+
};
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.baf-chat{--bg:#f8f9fa;--surface:#fff;--border:#e2e8f0;--code-bg:#f1f5f9;--text-primary:#1a202c;--text-secondary:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-bg:#2563eb14;--error:#ef4444;--error-bg:#ef44441a}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .baf-chat{--bg:#0f172a;--surface:#1e293b;--border:#334155;--code-bg:#1a2535;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--accent-bg:#3b82f61a;--error:#f87171;--error-bg:#f871711a}}[data-theme=dark] .baf-chat{--bg:#0f172a;--surface:#1e293b;--border:#334155;--code-bg:#1a2535;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--accent-bg:#3b82f61a;--error:#f87171;--error-bg:#f871711a}[data-theme=light] .baf-chat{--bg:#f8f9fa;--surface:#fff;--border:#e2e8f0;--code-bg:#f1f5f9;--text-primary:#1a202c;--text-secondary:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-bg:#2563eb14;--error:#ef4444;--error-bg:#ef44441a}.baf-chat *,.baf-chat :before,.baf-chat :after{box-sizing:border-box;margin:0;padding:0}.btn{cursor:pointer;border:none;border-radius:8px;padding:9px 18px;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s,color .15s}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.45;cursor:not-allowed}.btn--secondary{background:var(--border);color:var(--text-primary)}.btn--secondary:hover{filter:brightness(.93)}.btn--ghost{color:var(--text-secondary);background:0 0;padding:8px 12px}.btn--ghost:hover{background:var(--border);color:var(--text-primary)}.btn--icon{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.gui-agent-widget{min-height:300px}.gui-agent-widget .chat-area{min-height:0}.gui-agent-widget .chat-area__messages{max-height:420px}.gui-agent-layout__content{flex:1;padding:16px;overflow:auto}.gui-agent-layout__placeholder{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:.95rem;display:flex}.agent-selector{background:var(--bg);flex-direction:column;align-items:center;min-height:100vh;padding:64px 24px 40px;display:flex;position:relative}.agent-selector__topbar{position:absolute;top:16px;right:16px}.agent-selector__header{text-align:center;margin-bottom:48px}.agent-selector__title{color:var(--text-primary);margin-bottom:8px;font-size:2rem;font-weight:700}.agent-selector__subtitle{color:var(--text-secondary);font-size:1rem}.agent-selector__username-bar{align-items:center;gap:12px;width:100%;max-width:360px;margin-top:20px;display:flex}.agent-selector__username-label{color:var(--text-secondary);white-space:nowrap;font-size:.875rem;font-weight:500}.agent-selector__username-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:.9rem;transition:border-color .15s}.agent-selector__username-input:focus{border-color:var(--accent)}.agent-selector__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;width:100%;max-width:900px;display:grid}.agent-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);border-radius:12px;align-items:center;gap:14px;padding:20px;font-family:inherit;transition:box-shadow .2s,border-color .2s;display:flex;position:relative}.agent-card:hover{border-color:var(--accent);box-shadow:0 4px 16px #00000012}.agent-card--add{color:var(--text-secondary);background:0 0;border-style:dashed;flex-direction:column;justify-content:center;gap:6px;font-size:.95rem}.agent-card--add:hover{color:var(--accent)}.agent-card__icon{flex-shrink:0;font-size:1.8rem}.agent-card__plus{font-size:2rem;line-height:1}.agent-card__info{flex:1;min-width:0}.agent-card__name{margin-bottom:4px;font-size:1rem;font-weight:600}.agent-card__url{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:.8rem;overflow:hidden}.agent-card__remove{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;transition:opacity .15s,background .15s,color .15s;display:flex;position:absolute;top:8px;right:8px}.agent-card:hover .agent-card__remove{opacity:1}.agent-card__remove:hover{background:var(--error-bg);color:var(--error)}.agent-card__mode-badge{letter-spacing:.02em;border-radius:999px;flex-shrink:0;margin-right:4px;padding:2px 7px;font-size:.72rem;font-weight:600}.agent-card__mode-badge--chat{color:#0369a1;background:#e0f2fe}.agent-card__mode-badge--gui{color:#7c3aed;background:#f3e8ff}.agent-selector__toolbar{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:900px;margin-bottom:16px;display:flex}.agent-selector__toolbar-actions{gap:10px;display:flex}.view-toggle{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.view-toggle__btn{background:var(--surface);width:38px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.view-toggle__btn+.view-toggle__btn{border-left:1px solid var(--border)}.view-toggle__btn--active{background:var(--accent);color:#fff}.view-toggle__btn:not(.view-toggle__btn--active):hover{background:var(--border);color:var(--text-primary)}.agent-selector__list{flex-direction:column;gap:12px;width:100%;max-width:900px;display:flex}.agent-selector__list .agent-card{width:100%}.agent-selector__list .agent-card--add{flex-direction:row;gap:10px;padding:16px 20px}.agent-card--edit{cursor:default;align-items:flex-start}.agent-card--edit:hover{border-color:var(--border);box-shadow:none}.agent-card--edit.agent-card--drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.agent-card--edit.agent-card--dragging{opacity:.45}.agent-card--edit .agent-card__remove{opacity:1}.agent-card__drag-handle{width:28px;height:28px;color:var(--text-secondary);cursor:grab;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-top:4px;transition:background .15s,color .15s;display:flex}.agent-card__drag-handle:hover{background:var(--border);color:var(--text-primary)}.agent-card__drag-handle:active{cursor:grabbing}.agent-card__edit-fields{flex-direction:column;flex:1;gap:10px;min-width:0;padding-right:28px;display:flex}.agent-card__edit-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex-direction:column;gap:4px;font-size:.75rem;font-weight:600;display:flex}.agent-card__edit-label .modal__error{text-transform:none;letter-spacing:normal;font-weight:400}.agent-card__edit-input{border:1px solid var(--border);text-transform:none;letter-spacing:normal;background:var(--bg);color:var(--text-primary);border-radius:7px;outline:none;padding:8px 10px;font-family:inherit;font-size:.88rem;font-weight:400;transition:border-color .15s}.agent-card__edit-input:focus{border-color:var(--accent)}.mode-toggle{border:1px solid var(--border);border-radius:8px;gap:0;margin-top:2px;display:flex;overflow:hidden}.mode-toggle__btn{background:var(--bg);color:var(--text-secondary);cursor:pointer;border:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.88rem;font-weight:500;transition:background .15s,color .15s}.mode-toggle__btn+.mode-toggle__btn{border-left:1px solid var(--border)}.mode-toggle__btn--active{background:var(--accent);color:#fff}.mode-toggle__btn:not(.mode-toggle__btn--active):hover{background:var(--border);color:var(--text-primary)}.mode-toggle--sm .mode-toggle__btn{padding:6px 10px;font-size:.8rem}.modal__hint{color:var(--text-secondary);margin:0;font-size:.8rem;line-height:1.45}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:16px;width:100%;max-width:440px;padding:32px;box-shadow:0 20px 60px #00000026}.modal__title{color:var(--text-primary);margin-bottom:24px;font-size:1.25rem;font-weight:700}.modal__form{flex-direction:column;gap:16px;display:flex}.modal__label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:.88rem;font-weight:500;display:flex}.modal__input{border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:.95rem;transition:border-color .15s}.modal__input:focus{border-color:var(--accent)}.modal__input--error{border-color:var(--error)!important}.modal__error{color:var(--error);margin-top:2px;font-size:.82rem}.modal__actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.chat-layout{background:var(--bg);flex-direction:column;height:100vh;display:flex}.chat-layout__header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.chat-layout__agent-info{flex-direction:column;flex:1;min-width:0;display:flex}.chat-layout__agent-name{color:var(--text-primary);font-size:1rem;font-weight:600}.chat-layout__agent-url{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:.78rem;overflow:hidden}.chat-layout__body{flex:1;display:flex;overflow:hidden}.status-badge{flex-shrink:0;align-items:center;gap:7px;font-size:.85rem;font-weight:500;display:flex}.status-badge__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.session-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex}.session-sidebar__header{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.session-sidebar__title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:.8rem;font-weight:600}.session-sidebar__new{flex-direction:column;gap:6px;display:flex}.session-sidebar__name-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;padding:6px 10px;font-size:.825rem;transition:border-color .15s}.session-sidebar__name-input:focus{border-color:var(--accent)}.session-sidebar__start-btn{width:100%;padding:6px 10px;font-size:.825rem}.session-sidebar__empty{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;font-size:.875rem;display:flex}.session-sidebar__body{flex-direction:column;flex:1;padding:6px 0;display:flex;overflow-y:auto}.session-sidebar__status{color:var(--text-secondary);text-align:center;padding:12px 16px;font-size:.825rem}.session-sidebar__status--error{color:#ef4444}.session-item{border-left:3px solid #0000;flex-direction:row;align-items:center;transition:background .15s,border-color .15s;display:flex}.session-item:hover{background:var(--border)}.session-item--active{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.session-item__content{all:unset;cursor:pointer;flex-direction:column;flex:1;gap:2px;min-width:0;padding:8px 16px;display:flex}.session-item__delete{all:unset;width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-right:8px;transition:background .15s,color .15s;display:flex}.session-item__delete:hover{color:#ef4444;background:#ef444426}.session-item__id{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:.75rem;overflow:hidden}.session-item__meta{color:var(--text-secondary);font-size:.7rem}.agent-card__username{color:var(--text-secondary);margin-top:2px;font-size:.75rem}.start-session{background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.start-session__name-input{background:var(--surface);border:1px solid var(--border);width:280px;color:var(--text);text-align:center;border-radius:8px;outline:none;padding:10px 14px;font-size:.9rem;transition:border-color .15s}.start-session__name-input:focus{border-color:var(--accent)}.start-session__btn{padding:14px 36px;font-size:1rem}.chat-area{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-area__messages{flex-direction:column;flex:1;gap:16px;padding:24px 1%;display:flex;overflow-y:auto}.chat-area__empty{color:var(--text-secondary);text-align:center;margin:auto;font-size:.95rem}.chat-area__input-row{background:0 0;border-top:none;align-items:flex-end;gap:10px;padding:14px 10%;display:flex}.chat-area__textarea{resize:none;border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:10px;outline:none;flex:1;min-height:42px;max-height:160px;padding:10px 14px;font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .15s;overflow-y:auto}.chat-area__textarea:focus{border-color:var(--accent)}.chat-area__textarea:disabled{opacity:.5;cursor:not-allowed}.chat-area__send-btn{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;padding:0;font-size:1.2rem;line-height:1;display:flex}.chat-area__composer{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.chat-area__input-line{align-items:flex-end;display:flex}.chat-area__input-line .chat-area__textarea{flex:1}.chat-area__attachments{flex-wrap:wrap;gap:6px;padding:0 2px;display:flex}.attachment-chip{background:var(--code-bg);border:1px solid var(--border);border-radius:20px;align-items:center;gap:5px;max-width:220px;padding:4px 8px;font-size:.82rem;display:inline-flex}.attachment-chip__icon{flex-shrink:0}.attachment-chip__name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);overflow:hidden}.attachment-chip__remove{all:unset;cursor:pointer;color:var(--text-secondary);border-radius:50%;flex-shrink:0;padding:1px 2px;font-size:.75rem;line-height:1;transition:color .1s}.attachment-chip__remove:hover{color:#ef4444}.chat-area__icon-btn{width:42px;height:42px;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.5rem;font-weight:400;line-height:1;transition:background .15s,color .15s;display:flex}.chat-area__icon-btn:hover:not(:disabled){background:var(--border);color:var(--text-primary)}.chat-area__icon-btn:disabled{opacity:.4;cursor:not-allowed}.chat-area__mic-btn{color:var(--text-secondary)}.chat-area__mic-btn--recording{color:#ef4444;background:#ef444414;border-color:#ef4444;animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ef444459}50%{box-shadow:0 0 0 6px #ef444400}}.attach-menu-anchor{flex-shrink:0;position:relative}.attach-menu{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:10px;min-width:160px;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.attach-menu__item{all:unset;width:100%;color:var(--text-primary);cursor:pointer;box-sizing:border-box;align-items:center;gap:10px;padding:10px 14px;font-size:.9rem;transition:background .12s;display:flex}.attach-menu__item:hover{background:var(--border)}.attach-menu__item-icon{font-size:1rem}.message{gap:10px;max-width:78%;display:flex}.message--user{flex-direction:row-reverse;align-self:flex-end}.message--agent{align-self:flex-start}.message__avatar{display:none}.message__body{flex-direction:column;display:flex}.message__timestamp{color:var(--text-secondary);white-space:nowrap;opacity:0;pointer-events:none;flex-shrink:0;align-self:center;font-size:.72rem;transition:opacity .2s,transform .2s;transform:translate(-8px)}.message__timestamp--user{transform:translate(8px)}.message:hover .message__timestamp{opacity:1;transform:translate(0)}.message__bubble{word-break:break-word;font-size:.95rem;line-height:1.55}.message__bubble--user{background:var(--accent);color:#fff;border-radius:16px 16px 4px;padding:10px 14px}.message__bubble--agent{color:var(--text-primary);background:0 0;border:none;padding:2px 0}.msg-text{margin:0}.msg-text--muted{color:var(--text-secondary);font-style:italic}.msg-markdown{line-height:1.6}.msg-markdown p{margin:0 0 6px}.msg-markdown p:last-child{margin-bottom:0}.msg-markdown h1,.msg-markdown h2,.msg-markdown h3{margin:8px 0 4px;font-size:1em}.msg-markdown ul,.msg-markdown ol{margin:4px 0;padding-left:20px}.msg-markdown li{margin:2px 0}.msg-markdown code{background:var(--code-bg);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.87em}.msg-markdown pre{background:var(--code-bg);border-radius:6px;margin:6px 0;padding:10px 12px;overflow-x:auto}.msg-markdown pre code{background:0 0;padding:0;font-size:.85em}.msg-markdown blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin:4px 0;padding-left:10px}.msg-markdown table{border-collapse:collapse;width:100%;font-size:.88em}.msg-markdown th,.msg-markdown td{border:1px solid var(--border);text-align:left;padding:4px 8px}.msg-markdown th{background:var(--code-bg)}.msg-markdown a{color:var(--accent)}.msg-html{line-height:1.55}.msg-html a{color:var(--accent)}.msg-file-btn{background:var(--accent-bg);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.msg-file-btn:hover{background:var(--accent);color:#fff}.msg-image img{border-radius:8px;max-width:100%;max-height:360px;display:block}.msg-table-wrapper{max-width:100%;overflow-x:auto}.msg-table{border-collapse:collapse;width:100%;font-size:.84rem}.msg-table th,.msg-table td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:6px 10px}.msg-table th{background:var(--code-bg);font-weight:600}.msg-table__th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.msg-table__th:hover{background:color-mix(in srgb, var(--accent) 10%, var(--code-bg))}.msg-table__th--sorted{color:var(--accent)}.msg-table__sort-icon{opacity:.6;margin-left:4px;font-size:.75em;display:inline-block}.msg-table__th--sorted .msg-table__sort-icon{opacity:1}.msg-table tr:nth-child(2n){background:var(--code-bg)}.msg-plotly{border-radius:8px;width:100%;min-height:360px;overflow:hidden}.msg-code{background:var(--code-bg);color:var(--text-primary);border-radius:6px;margin-top:6px;padding:10px 12px;font-family:monospace;font-size:.82rem;overflow-x:auto}.msg-options{flex-wrap:wrap;gap:8px;display:flex}.msg-option-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:20px;padding:7px 14px;font-family:inherit;font-size:.9rem;transition:background .15s,color .15s}.msg-option-btn:hover{background:var(--accent);color:#fff}.msg-location{flex-direction:column;gap:8px;display:flex}.msg-location__map{border:1px solid var(--border);border-radius:8px;width:100%;height:300px;display:block}.msg-location__link{color:var(--accent);font-size:.88rem}.msg-audio{flex-direction:column;gap:6px;display:flex}.msg-audio__player{width:100%;min-width:260px;accent-color:var(--accent)}.msg-audio__meta{color:var(--text-secondary);font-size:.78rem}.message__bubble--media{box-shadow:none!important;background:0 0!important;border:none!important;padding:4px 0!important}.msg-rag__answer{margin:0 0 10px;line-height:1.6}.msg-rag__details{border:1px solid var(--border);border-radius:8px;overflow:hidden}.msg-rag__summary{cursor:pointer;width:100%;color:var(--text-secondary);background:var(--code-bg);text-align:left;-webkit-user-select:none;user-select:none;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;font-weight:500;display:flex}.msg-rag__summary-arrow{font-size:.65rem;transition:transform .25s;display:inline-block}.msg-rag__summary--open .msg-rag__summary-arrow{transform:rotate(90deg)}.msg-rag__body-wrapper{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.msg-rag__body-wrapper--open{grid-template-rows:1fr}.msg-rag__body-inner{overflow:hidden}.msg-rag__details-body{flex-direction:column;gap:10px;padding:12px;display:flex}.msg-rag__rag-answer-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700}.msg-rag__llm-row{align-items:center;gap:8px;display:flex}.msg-rag__llm-label{color:var(--text-secondary);font-size:.8rem}.msg-rag__llm-badge{background:var(--code-bg);border:1px solid var(--border);color:var(--accent);border-radius:4px;padding:1px 6px;font-size:.78rem}.msg-rag__context-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.msg-rag__docs{flex-direction:column;gap:8px;display:flex}.msg-rag__doc-card{border:1px solid var(--border);border-radius:6px;font-size:.85rem;overflow:hidden}.msg-rag__doc-header{color:var(--text-secondary);background:var(--code-bg);border-bottom:1px solid var(--border);padding:5px 10px;font-size:.78rem;font-weight:600}.msg-rag__doc-row{border-bottom:1px solid var(--border);gap:8px;padding:5px 10px;line-height:1.5;display:flex}.msg-rag__doc-row:last-child{border-bottom:none}.msg-rag__doc-key{width:58px;color:var(--text-secondary);flex-shrink:0;padding-top:1px;font-size:.78rem;font-weight:600}.msg-rag__doc-value{word-break:break-word;flex:1}.msg-rag__doc-content{white-space:pre-wrap}.gui-renderer{background:#fff;flex-direction:column;max-width:100%;font-size:.9rem;display:flex;overflow:hidden}.gui-renderer__header{background:var(--code-bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:8px 14px;display:flex}.gui-renderer__title{color:var(--text-primary);font-size:.82rem;font-weight:600}.gui-renderer__description{color:var(--text-secondary);font-size:.78rem}.gui-renderer__tabs{background:var(--code-bg);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:6px 10px 0;display:flex}.gui-renderer__tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:5px;padding:5px 12px;font-size:.8rem;transition:background .15s,color .15s;display:flex}.gui-renderer__tab:hover{background:var(--border);color:var(--text-primary)}.gui-renderer__tab--active{border-color:var(--border);color:var(--accent);background:#fff;font-weight:600}.gui-renderer__tab-badge{background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;font-size:.68rem}.gui-renderer__screen{color:#1a202c;background:#fff;min-width:280px;min-height:200px;padding:0;overflow-x:auto}.gui-renderer--chat{background:0 0;border:none;border-radius:0}.gui-renderer--chat .gui-renderer__screen{color:inherit;background:0 0;min-width:0;min-height:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.95rem;line-height:1.55}.gui-renderer--chat .gui-renderer__header{border-bottom:1px solid var(--border);background:0 0;margin-bottom:8px;padding:0 0 6px}.gui-renderer--chat .gui-renderer__tabs{border-bottom:1px solid var(--border);background:0 0;margin-bottom:8px}.gui-renderer--chat input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=color]):not([type=file]),.gui-renderer--chat textarea,.gui-renderer--chat select{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.gui-renderer--chat label,.gui-renderer--chat label>span{color:var(--text-primary)!important}.gui-renderer--chat .gui-ms-list{background:var(--surface)!important;border-color:var(--border)!important}.gui-renderer--chat .gui-ms-item{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.gui-renderer--chat .gui-ms-item--selected,.gui-renderer--chat .gui-chip{background:var(--accent-bg,#1e3a5f)!important;color:var(--accent)!important}.gui-renderer--chat .gui-tags-container{background:var(--surface)!important;border-color:var(--border)!important}.gui-chart-placeholder{background:var(--code-bg);border:1px dashed var(--border);min-height:120px;color:var(--text-secondary);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:.85rem;display:flex}.gui-chart-placeholder__icon{font-size:2rem;line-height:1}.gui-chart-placeholder__title{color:var(--text-primary);font-size:.9rem;font-weight:600}.gui-chart-placeholder__type{color:var(--text-secondary);font-size:.75rem}.gui-chart-placeholder__series{color:var(--text-secondary);font-size:.75rem;font-style:italic}.gui-metric-card{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:4px;padding:16px;display:flex}.gui-metric-card__title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.gui-metric-card__value{font-size:2em;font-weight:700;line-height:1.1}.gui-metric-card__format{color:var(--text-secondary);font-size:.75rem}.gui-agent-component{border:1px dashed var(--border);color:var(--text-secondary);border-radius:8px;align-items:center;gap:8px;padding:12px 14px;font-size:.85rem;display:flex}.gui-form-btn{cursor:pointer;appearance:none;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:8px 20px;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex}.gui-form-btn--submit{background:var(--accent);color:#fff;border-color:var(--accent)}.gui-form-btn--submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 8px #2563eb47}.gui-form-btn--submit:active:not(:disabled){box-shadow:none;opacity:.9}.gui-form-btn--submit:disabled{opacity:.45;cursor:not-allowed}.gui-form-btn--cancel{color:var(--text-secondary);border-color:var(--border);background:0 0}.gui-form-btn--cancel:hover:not(:disabled){background:var(--border);color:var(--text-primary)}.gui-form-btn--outlined{color:var(--accent);border-color:var(--accent);background:0 0}.gui-form-btn--outlined:hover:not(:disabled){background:var(--accent-bg)}.gui-form-btn--outlined:disabled{opacity:.45;cursor:not-allowed}.gui-form-btn--flat{color:var(--accent);background:0 0;border-color:#0000;padding:8px 16px}.gui-form-btn--flat:hover:not(:disabled){background:var(--accent-bg)}.gui-form-btn--flat:disabled{opacity:.45;cursor:not-allowed}.gui-form-btn--fab{background:var(--accent);color:#fff;border-color:var(--accent);border-radius:50%;width:56px;height:56px;padding:0;box-shadow:0 4px 12px #2563eb59}.gui-form-btn--fab:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 16px #2563eb66}.gui-form-btn--fab:active:not(:disabled){box-shadow:0 2px 6px #2563eb4d}.gui-form-btn--fab:disabled{opacity:.45;cursor:not-allowed}.gui-renderer input[type=file]::file-selector-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-right:10px;padding:5px 12px;font-family:inherit;font-size:.82rem;font-weight:500;transition:background .15s,box-shadow .15s}.gui-renderer input[type=file]::file-selector-button:hover{background:var(--accent-hover);box-shadow:0 2px 6px #2563eb40}.message--reasoning .message__body{width:100%;margin:4px 0}.reasoning-trace{border:1px dashed var(--border);color:var(--text-secondary);background:#7d7d7d0d;border-radius:8px;font-size:.82rem;overflow:hidden}.reasoning-trace--live{background:#6366f10f;border-style:solid;border-color:#6366f159}.reasoning-trace__summary{cursor:pointer;width:100%;font:inherit;color:var(--text-secondary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.reasoning-trace__summary:disabled{cursor:default}.reasoning-trace__summary:not(:disabled):hover{background:#7d7d7d0f}.reasoning-trace__icon{font-size:.95rem}.reasoning-trace--live .reasoning-trace__icon{animation:1.4s ease-in-out infinite reasoning-pulse}@keyframes reasoning-pulse{0%,to{opacity:1}50%{opacity:.45}}.reasoning-trace__label{flex:1;font-style:italic;font-weight:500}.reasoning-trace__chevron{font-size:.65rem;transition:transform .25s}.reasoning-trace__summary--open .reasoning-trace__chevron{transform:rotate(90deg)}.reasoning-trace__body-wrapper{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.reasoning-trace__body-wrapper--open{grid-template-rows:1fr}.reasoning-trace__body-inner{overflow:hidden}.reasoning-trace__steps{flex-direction:column;gap:10px;padding:0 12px 10px;display:flex}.reasoning-trace__step-group{flex-direction:column;gap:2px;display:flex}.reasoning-trace__step-header{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);opacity:.6;border-left:2px solid var(--border);font-variant-numeric:tabular-nums;padding:2px 0 2px 8px;font-size:.65rem;font-weight:700}.reasoning-trace__step-list{flex-direction:column;gap:2px;margin:0;padding:0 0 0 10px;list-style:none;display:flex}.reasoning-trace__step{flex-direction:column;display:flex}.reasoning-trace__step-line{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:baseline;gap:8px;padding:3px 6px;display:flex}.reasoning-trace__step-line:disabled{cursor:default}.reasoning-trace__step-line:not(:disabled):hover{background:#7d7d7d14}.reasoning-trace__step-icon{flex-shrink:0;font-size:.85rem}.reasoning-trace__step-summary{word-break:break-word;flex:1;font-size:.82rem;font-style:italic}.reasoning-trace__step-list--nested{border-left:2px solid #7d7d7d33;margin-top:2px;padding-left:20px}.reasoning-trace__step-details{white-space:pre-wrap;word-break:break-word;background:#0000000a;border-radius:6px;max-height:240px;margin:4px 0 6px 32px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;overflow:auto}.task-panel{border:1px solid var(--border);background:#7d7d7d0f;border-radius:6px;margin:4px 12px 12px;padding:10px 12px}.task-panel__header{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.task-panel__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem;font-weight:700}.task-panel__counts{color:var(--text-secondary);gap:6px;font-size:.72rem;display:flex}.task-panel__count{background:#7d7d7d1a;border-radius:4px;padding:1px 6px}.task-panel__count--completed{color:#16a34a}.task-panel__count--skipped{color:#ea580c}.task-panel__count--pending{opacity:.7}.task-panel__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.task-panel__item{word-break:break-word;align-items:flex-start;gap:8px;font-size:.82rem;line-height:1.35;display:flex}.task-panel__text{flex:1;display:inline}.task-panel__item--completed .task-panel__description{color:var(--text-secondary);-webkit-text-decoration:line-through #16a34a66;text-decoration:line-through #16a34a66}.task-panel__item--skipped .task-panel__description{color:var(--text-secondary);-webkit-text-decoration:line-through #ea580c66;text-decoration:line-through #ea580c66}.task-panel__box{border:1.5px solid var(--border);background:0 0;border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block;position:relative;top:1px}.task-panel__box--pending,.task-panel__box--in_progress{border-color:var(--border);background:0 0}.task-panel__box--in_progress{background:#6366f126;border-color:#6366f1}.task-panel__box--completed{background:#16a34a;border-color:#16a34a}.task-panel__box--completed:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:9px;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.task-panel__box--skipped{background:#ea580c;border-color:#ea580c}.task-panel__box--skipped:after{content:"⊘";color:#fff;justify-content:center;align-items:center;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.task-panel__id{font-variant-numeric:tabular-nums;opacity:.55;margin-right:6px;font-size:.7rem}.task-panel__description{word-break:break-word}.task-panel__result{color:var(--text-secondary);opacity:.85;margin-top:2px;font-size:.74rem;font-style:italic;display:block}
|
|
1
|
+
.baf-chat{--bg:#f8f9fa;--surface:#fff;--border:#e2e8f0;--code-bg:#f1f5f9;--text-primary:#1a202c;--text-secondary:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-bg:#2563eb14;--error:#ef4444;--error-bg:#ef44441a}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .baf-chat{--bg:#0f172a;--surface:#1e293b;--border:#334155;--code-bg:#1a2535;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--accent-bg:#3b82f61a;--error:#f87171;--error-bg:#f871711a}}[data-theme=dark] .baf-chat{--bg:#0f172a;--surface:#1e293b;--border:#334155;--code-bg:#1a2535;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--accent-bg:#3b82f61a;--error:#f87171;--error-bg:#f871711a}[data-theme=light] .baf-chat{--bg:#f8f9fa;--surface:#fff;--border:#e2e8f0;--code-bg:#f1f5f9;--text-primary:#1a202c;--text-secondary:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-bg:#2563eb14;--error:#ef4444;--error-bg:#ef44441a}.baf-chat *,.baf-chat :before,.baf-chat :after{box-sizing:border-box;margin:0;padding:0}.btn{cursor:pointer;border:none;border-radius:8px;padding:9px 18px;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s,color .15s}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.45;cursor:not-allowed}.btn--secondary{background:var(--border);color:var(--text-primary)}.btn--secondary:hover{filter:brightness(.93)}.btn--ghost{color:var(--text-secondary);background:0 0;padding:8px 12px}.btn--ghost:hover{background:var(--border);color:var(--text-primary)}.btn--icon{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.gui-agent-widget{min-height:300px}.gui-agent-widget .chat-area{min-height:0}.gui-agent-widget .chat-area__messages{max-height:420px}.gui-agent-layout__content{flex:1;padding:16px;overflow:auto}.gui-agent-layout__placeholder{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:.95rem;display:flex}.agent-selector{background:var(--bg);flex-direction:column;align-items:center;min-height:100vh;padding:64px 24px 40px;display:flex;position:relative}.agent-selector__topbar{position:absolute;top:16px;right:16px}.agent-selector__header{text-align:center;margin-bottom:48px}.agent-selector__title{color:var(--text-primary);margin-bottom:8px;font-size:2rem;font-weight:700}.agent-selector__subtitle{color:var(--text-secondary);font-size:1rem}.agent-selector__username-bar{align-items:center;gap:12px;width:100%;max-width:360px;margin-top:20px;display:flex}.agent-selector__username-label{color:var(--text-secondary);white-space:nowrap;font-size:.875rem;font-weight:500}.agent-selector__username-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:.9rem;transition:border-color .15s}.agent-selector__username-input:focus{border-color:var(--accent)}.agent-selector__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;width:100%;max-width:900px;display:grid}.agent-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);border-radius:12px;align-items:center;gap:14px;padding:20px;font-family:inherit;transition:box-shadow .2s,border-color .2s;display:flex;position:relative}.agent-card:hover{border-color:var(--accent);box-shadow:0 4px 16px #00000012}.agent-card--add{color:var(--text-secondary);background:0 0;border-style:dashed;flex-direction:column;justify-content:center;gap:6px;font-size:.95rem}.agent-card--add:hover{color:var(--accent)}.agent-card__icon{flex-shrink:0;font-size:1.8rem}.agent-card__plus{font-size:2rem;line-height:1}.agent-card__info{flex:1;min-width:0}.agent-card__name{margin-bottom:4px;font-size:1rem;font-weight:600}.agent-card__url{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:.8rem;overflow:hidden}.agent-card__remove{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;transition:opacity .15s,background .15s,color .15s;display:flex;position:absolute;top:8px;right:8px}.agent-card:hover .agent-card__remove{opacity:1}.agent-card__remove:hover{background:var(--error-bg);color:var(--error)}.agent-card__mode-badge{letter-spacing:.02em;border-radius:999px;flex-shrink:0;margin-right:4px;padding:2px 7px;font-size:.72rem;font-weight:600}.agent-card__mode-badge--chat{color:#0369a1;background:#e0f2fe}.agent-card__mode-badge--gui{color:#7c3aed;background:#f3e8ff}.agent-selector__toolbar{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:900px;margin-bottom:16px;display:flex}.agent-selector__toolbar-actions{gap:10px;display:flex}.view-toggle{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.view-toggle__btn{background:var(--surface);width:38px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.view-toggle__btn+.view-toggle__btn{border-left:1px solid var(--border)}.view-toggle__btn--active{background:var(--accent);color:#fff}.view-toggle__btn:not(.view-toggle__btn--active):hover{background:var(--border);color:var(--text-primary)}.agent-selector__list{flex-direction:column;gap:12px;width:100%;max-width:900px;display:flex}.agent-selector__list .agent-card{width:100%}.agent-selector__list .agent-card--add{flex-direction:row;gap:10px;padding:16px 20px}.agent-card--edit{cursor:default;align-items:flex-start}.agent-card--edit:hover{border-color:var(--border);box-shadow:none}.agent-card--edit.agent-card--drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.agent-card--edit.agent-card--dragging{opacity:.45}.agent-card--edit .agent-card__remove{opacity:1}.agent-card__drag-handle{width:28px;height:28px;color:var(--text-secondary);cursor:grab;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-top:4px;transition:background .15s,color .15s;display:flex}.agent-card__drag-handle:hover{background:var(--border);color:var(--text-primary)}.agent-card__drag-handle:active{cursor:grabbing}.agent-card__edit-fields{flex-direction:column;flex:1;gap:10px;min-width:0;padding-right:28px;display:flex}.agent-card__edit-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex-direction:column;gap:4px;font-size:.75rem;font-weight:600;display:flex}.agent-card__edit-label .modal__error{text-transform:none;letter-spacing:normal;font-weight:400}.agent-card__edit-input{border:1px solid var(--border);text-transform:none;letter-spacing:normal;background:var(--bg);color:var(--text-primary);border-radius:7px;outline:none;padding:8px 10px;font-family:inherit;font-size:.88rem;font-weight:400;transition:border-color .15s}.agent-card__edit-input:focus{border-color:var(--accent)}.mode-toggle{border:1px solid var(--border);border-radius:8px;gap:0;margin-top:2px;display:flex;overflow:hidden}.mode-toggle__btn{background:var(--bg);color:var(--text-secondary);cursor:pointer;border:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.88rem;font-weight:500;transition:background .15s,color .15s}.mode-toggle__btn+.mode-toggle__btn{border-left:1px solid var(--border)}.mode-toggle__btn--active{background:var(--accent);color:#fff}.mode-toggle__btn:not(.mode-toggle__btn--active):hover{background:var(--border);color:var(--text-primary)}.mode-toggle--sm .mode-toggle__btn{padding:6px 10px;font-size:.8rem}.modal__hint{color:var(--text-secondary);margin:0;font-size:.8rem;line-height:1.45}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:16px;width:100%;max-width:440px;padding:32px;box-shadow:0 20px 60px #00000026}.modal__title{color:var(--text-primary);margin-bottom:24px;font-size:1.25rem;font-weight:700}.modal__form{flex-direction:column;gap:16px;display:flex}.modal__label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:.88rem;font-weight:500;display:flex}.modal__input{border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:.95rem;transition:border-color .15s}.modal__input:focus{border-color:var(--accent)}.modal__input--error{border-color:var(--error)!important}.modal__error{color:var(--error);margin-top:2px;font-size:.82rem}.modal__actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.chat-layout{background:var(--bg);flex-direction:column;height:100vh;display:flex}.chat-layout__header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.chat-layout__agent-info{flex-direction:column;flex:1;min-width:0;display:flex}.chat-layout__agent-name{color:var(--text-primary);font-size:1rem;font-weight:600}.chat-layout__agent-url{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:.78rem;overflow:hidden}.chat-layout__body{flex:1;display:flex;overflow:hidden}.status-badge{flex-shrink:0;align-items:center;gap:7px;font-size:.85rem;font-weight:500;display:flex}.status-badge__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.session-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex}.session-sidebar__header{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.session-sidebar__title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:.8rem;font-weight:600}.session-sidebar__new{flex-direction:column;gap:6px;display:flex}.session-sidebar__name-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;padding:6px 10px;font-size:.825rem;transition:border-color .15s}.session-sidebar__name-input:focus{border-color:var(--accent)}.session-sidebar__start-btn{width:100%;padding:6px 10px;font-size:.825rem}.session-sidebar__empty{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;font-size:.875rem;display:flex}.session-sidebar__body{flex-direction:column;flex:1;padding:6px 0;display:flex;overflow-y:auto}.session-sidebar__status{color:var(--text-secondary);text-align:center;padding:12px 16px;font-size:.825rem}.session-sidebar__status--error{color:#ef4444}.session-item{border-left:3px solid #0000;flex-direction:row;align-items:center;transition:background .15s,border-color .15s;display:flex}.session-item:hover{background:var(--border)}.session-item--active{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.session-item__content{all:unset;cursor:pointer;flex-direction:column;flex:1;gap:2px;min-width:0;padding:8px 16px;display:flex}.session-item__delete{all:unset;width:28px;height:28px;color:var(--text-secondary);cursor:pointer;opacity:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-right:8px;transition:background .15s,color .15s,opacity .15s;display:flex}.session-item:hover .session-item__delete,.session-item--active .session-item__delete{opacity:1}.session-item__delete:hover{color:#ef4444;background:#ef444426}.session-item__id{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:.75rem;overflow:hidden}.session-item__meta{color:var(--text-secondary);font-size:.7rem}.agent-card__username{color:var(--text-secondary);margin-top:2px;font-size:.75rem}.start-session{background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.start-session__name-input{background:var(--surface);border:1px solid var(--border);width:280px;color:var(--text);text-align:center;border-radius:8px;outline:none;padding:10px 14px;font-size:.9rem;transition:border-color .15s}.start-session__name-input:focus{border-color:var(--accent)}.start-session__btn{padding:14px 36px;font-size:1rem}.chat-area{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-area__messages{flex-direction:column;flex:1;gap:16px;padding:24px 1%;display:flex;overflow-y:auto}.chat-area__empty{color:var(--text-secondary);text-align:center;margin:auto;font-size:.95rem}.chat-area__input-row{background:0 0;border-top:none;align-items:flex-end;gap:10px;padding:14px 10%;display:flex}.chat-area__textarea{resize:none;border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:10px;outline:none;flex:1;min-height:42px;max-height:160px;padding:10px 14px;font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .15s;overflow-y:auto}.chat-area__textarea:focus{border-color:var(--accent)}.chat-area__textarea:disabled{opacity:.5;cursor:not-allowed}.chat-area__send-btn{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;padding:0;font-size:1.2rem;line-height:1;display:flex}.chat-area__composer{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.chat-area__input-line{align-items:flex-end;display:flex}.chat-area__input-line .chat-area__textarea{flex:1}.chat-area__attachments{flex-wrap:wrap;gap:6px;padding:0 2px;display:flex}.attachment-chip{background:var(--code-bg);border:1px solid var(--border);border-radius:20px;align-items:center;gap:5px;max-width:220px;padding:4px 8px;font-size:.82rem;display:inline-flex}.attachment-chip__icon{flex-shrink:0}.attachment-chip__name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);overflow:hidden}.attachment-chip__remove{all:unset;cursor:pointer;color:var(--text-secondary);border-radius:50%;flex-shrink:0;padding:1px 2px;font-size:.75rem;line-height:1;transition:color .1s}.attachment-chip__remove:hover{color:#ef4444}.chat-area__icon-btn{width:42px;height:42px;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.5rem;font-weight:400;line-height:1;transition:background .15s,color .15s;display:flex}.chat-area__icon-btn:hover:not(:disabled){background:var(--border);color:var(--text-primary)}.chat-area__icon-btn:disabled{opacity:.4;cursor:not-allowed}.chat-area__mic-btn{color:var(--text-secondary)}.chat-area__mic-btn--recording{color:#ef4444;background:#ef444414;border-color:#ef4444;animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ef444459}50%{box-shadow:0 0 0 6px #ef444400}}.attach-menu-anchor{flex-shrink:0;position:relative}.attach-menu{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:10px;min-width:160px;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.attach-menu__item{all:unset;width:100%;color:var(--text-primary);cursor:pointer;box-sizing:border-box;align-items:center;gap:10px;padding:10px 14px;font-size:.9rem;transition:background .12s;display:flex}.attach-menu__item:hover{background:var(--border)}.attach-menu__item-icon{font-size:1rem}.message{gap:10px;max-width:78%;display:flex}.message--user{flex-direction:row-reverse;align-self:flex-end}.message--agent{align-self:flex-start}.message__avatar{display:none}.message__body{flex-direction:column;display:flex}.message__timestamp{color:var(--text-secondary);white-space:nowrap;opacity:0;pointer-events:none;flex-shrink:0;align-self:center;font-size:.72rem;transition:opacity .2s,transform .2s;transform:translate(-8px)}.message__timestamp--user{transform:translate(8px)}.message:hover .message__timestamp{opacity:1;transform:translate(0)}.message__bubble{word-break:break-word;font-size:.95rem;line-height:1.55}.message__bubble--user{background:var(--accent);color:#fff;border-radius:16px 16px 4px;padding:10px 14px}.message__bubble--agent{color:var(--text-primary);background:0 0;border:none;padding:2px 0}.msg-text{margin:0}.msg-text--muted{color:var(--text-secondary);font-style:italic}.msg-markdown{line-height:1.6}.msg-markdown p{margin:0 0 6px}.msg-markdown p:last-child{margin-bottom:0}.msg-markdown h1,.msg-markdown h2,.msg-markdown h3{margin:8px 0 4px;font-size:1em}.msg-markdown ul,.msg-markdown ol{margin:4px 0;padding-left:20px}.msg-markdown li{margin:2px 0}.msg-markdown code{background:var(--code-bg);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.87em}.msg-markdown pre{background:var(--code-bg);border-radius:6px;margin:6px 0;padding:10px 12px;overflow-x:auto}.msg-markdown pre code{background:0 0;padding:0;font-size:.85em}.msg-markdown blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin:4px 0;padding-left:10px}.msg-markdown table{border-collapse:collapse;width:100%;font-size:.88em}.msg-markdown th,.msg-markdown td{border:1px solid var(--border);text-align:left;padding:4px 8px}.msg-markdown th{background:var(--code-bg)}.msg-markdown a{color:var(--accent)}.msg-html{line-height:1.55}.msg-html a{color:var(--accent)}.msg-file-btn{background:var(--accent-bg);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.msg-file-btn:hover{background:var(--accent);color:#fff}.msg-image img{border-radius:8px;max-width:100%;max-height:360px;display:block}.msg-table-wrapper{max-width:100%;overflow-x:auto}.msg-table{border-collapse:collapse;width:100%;font-size:.84rem}.msg-table th,.msg-table td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:6px 10px}.msg-table th{background:var(--code-bg);font-weight:600}.msg-table__th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.msg-table__th:hover{background:color-mix(in srgb, var(--accent) 10%, var(--code-bg))}.msg-table__th--sorted{color:var(--accent)}.msg-table__sort-icon{opacity:.6;margin-left:4px;font-size:.75em;display:inline-block}.msg-table__th--sorted .msg-table__sort-icon{opacity:1}.msg-table tr:nth-child(2n){background:var(--code-bg)}.msg-plotly{border-radius:8px;width:100%;min-height:360px;overflow:hidden}.msg-code{background:var(--code-bg);color:var(--text-primary);border-radius:6px;margin-top:6px;padding:10px 12px;font-family:monospace;font-size:.82rem;overflow-x:auto}.msg-options{flex-wrap:wrap;gap:8px;display:flex}.msg-option-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:20px;padding:7px 14px;font-family:inherit;font-size:.9rem;transition:background .15s,color .15s}.msg-option-btn:hover{background:var(--accent);color:#fff}.msg-location{flex-direction:column;gap:8px;display:flex}.msg-location__map{border:1px solid var(--border);border-radius:8px;width:100%;height:300px;display:block}.msg-location__link{color:var(--accent);font-size:.88rem}.msg-audio{flex-direction:column;gap:6px;display:flex}.msg-audio__player{width:100%;min-width:260px;accent-color:var(--accent)}.msg-audio__meta{color:var(--text-secondary);font-size:.78rem}.message__bubble--media{box-shadow:none!important;background:0 0!important;border:none!important;padding:4px 0!important}.msg-rag__answer{margin:0 0 10px;line-height:1.6}.msg-rag__details{border:1px solid var(--border);border-radius:8px;overflow:hidden}.msg-rag__summary{cursor:pointer;width:100%;color:var(--text-secondary);background:var(--code-bg);text-align:left;-webkit-user-select:none;user-select:none;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;font-weight:500;display:flex}.msg-rag__summary-arrow{font-size:.65rem;transition:transform .25s;display:inline-block}.msg-rag__summary--open .msg-rag__summary-arrow{transform:rotate(90deg)}.msg-rag__body-wrapper{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.msg-rag__body-wrapper--open{grid-template-rows:1fr}.msg-rag__body-inner{overflow:hidden}.msg-rag__details-body{flex-direction:column;gap:10px;padding:12px;display:flex}.msg-rag__rag-answer-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700}.msg-rag__llm-row{align-items:center;gap:8px;display:flex}.msg-rag__llm-label{color:var(--text-secondary);font-size:.8rem}.msg-rag__llm-badge{background:var(--code-bg);border:1px solid var(--border);color:var(--accent);border-radius:4px;padding:1px 6px;font-size:.78rem}.msg-rag__context-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.msg-rag__docs{flex-direction:column;gap:8px;display:flex}.msg-rag__doc-card{border:1px solid var(--border);border-radius:6px;font-size:.85rem;overflow:hidden}.msg-rag__doc-header{color:var(--text-secondary);background:var(--code-bg);border-bottom:1px solid var(--border);padding:5px 10px;font-size:.78rem;font-weight:600}.msg-rag__doc-row{border-bottom:1px solid var(--border);gap:8px;padding:5px 10px;line-height:1.5;display:flex}.msg-rag__doc-row:last-child{border-bottom:none}.msg-rag__doc-key{width:58px;color:var(--text-secondary);flex-shrink:0;padding-top:1px;font-size:.78rem;font-weight:600}.msg-rag__doc-value{word-break:break-word;flex:1}.msg-rag__doc-content{white-space:pre-wrap}.gui-renderer{background:#fff;flex-direction:column;max-width:100%;font-size:.9rem;display:flex;overflow:hidden}.gui-renderer__header{background:var(--code-bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:8px 14px;display:flex}.gui-renderer__title{color:var(--text-primary);font-size:.82rem;font-weight:600}.gui-renderer__description{color:var(--text-secondary);font-size:.78rem}.gui-renderer__tabs{background:var(--code-bg);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:6px 10px 0;display:flex}.gui-renderer__tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:5px;padding:5px 12px;font-size:.8rem;transition:background .15s,color .15s;display:flex}.gui-renderer__tab:hover{background:var(--border);color:var(--text-primary)}.gui-renderer__tab--active{border-color:var(--border);color:var(--accent);background:#fff;font-weight:600}.gui-renderer__tab-badge{background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;font-size:.68rem}.gui-renderer__screen{color:#1a202c;background:#fff;min-width:280px;min-height:200px;padding:0;overflow-x:auto}.gui-renderer--chat{background:0 0;border:none;border-radius:0}.gui-renderer--chat .gui-renderer__screen{color:inherit;background:0 0;min-width:0;min-height:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.95rem;line-height:1.55}.gui-renderer--chat .gui-renderer__header{border-bottom:1px solid var(--border);background:0 0;margin-bottom:8px;padding:0 0 6px}.gui-renderer--chat .gui-renderer__tabs{border-bottom:1px solid var(--border);background:0 0;margin-bottom:8px}.gui-renderer--chat input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=color]):not([type=file]),.gui-renderer--chat textarea,.gui-renderer--chat select{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.gui-renderer--chat label,.gui-renderer--chat label>span{color:var(--text-primary)!important}.gui-renderer--chat .gui-ms-list{background:var(--surface)!important;border-color:var(--border)!important}.gui-renderer--chat .gui-ms-item{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.gui-renderer--chat .gui-ms-item--selected,.gui-renderer--chat .gui-chip{background:var(--accent-bg,#1e3a5f)!important;color:var(--accent)!important}.gui-renderer--chat .gui-tags-container{background:var(--surface)!important;border-color:var(--border)!important}.gui-chart-placeholder{background:var(--code-bg);border:1px dashed var(--border);min-height:120px;color:var(--text-secondary);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:.85rem;display:flex}.gui-chart-placeholder__icon{font-size:2rem;line-height:1}.gui-chart-placeholder__title{color:var(--text-primary);font-size:.9rem;font-weight:600}.gui-chart-placeholder__type{color:var(--text-secondary);font-size:.75rem}.gui-chart-placeholder__series{color:var(--text-secondary);font-size:.75rem;font-style:italic}.gui-metric-card{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:4px;padding:16px;display:flex}.gui-metric-card__title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.gui-metric-card__value{font-size:2em;font-weight:700;line-height:1.1}.gui-metric-card__format{color:var(--text-secondary);font-size:.75rem}.gui-agent-component{border:1px dashed var(--border);color:var(--text-secondary);border-radius:8px;align-items:center;gap:8px;padding:12px 14px;font-size:.85rem;display:flex}.gui-form-btn{cursor:pointer;appearance:none;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:8px 20px;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex}.gui-form-btn--submit{background:var(--accent);color:#fff;border-color:var(--accent)}.gui-form-btn--submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 8px #2563eb47}.gui-form-btn--submit:active:not(:disabled){box-shadow:none;opacity:.9}.gui-form-btn--submit:disabled{opacity:.45;cursor:not-allowed}.gui-form-btn--cancel{color:var(--text-secondary);border-color:var(--border);background:0 0}.gui-form-btn--cancel:hover:not(:disabled){background:var(--border);color:var(--text-primary)}.gui-form-btn--outlined{color:var(--accent);border-color:var(--accent);background:0 0}.gui-form-btn--outlined:hover:not(:disabled){background:var(--accent-bg)}.gui-form-btn--outlined:disabled{opacity:.45;cursor:not-allowed}.gui-form-btn--flat{color:var(--accent);background:0 0;border-color:#0000;padding:8px 16px}.gui-form-btn--flat:hover:not(:disabled){background:var(--accent-bg)}.gui-form-btn--flat:disabled{opacity:.45;cursor:not-allowed}.gui-form-btn--fab{background:var(--accent);color:#fff;border-color:var(--accent);border-radius:50%;width:56px;height:56px;padding:0;box-shadow:0 4px 12px #2563eb59}.gui-form-btn--fab:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 16px #2563eb66}.gui-form-btn--fab:active:not(:disabled){box-shadow:0 2px 6px #2563eb4d}.gui-form-btn--fab:disabled{opacity:.45;cursor:not-allowed}.gui-renderer input[type=file]::file-selector-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-right:10px;padding:5px 12px;font-family:inherit;font-size:.82rem;font-weight:500;transition:background .15s,box-shadow .15s}.gui-renderer input[type=file]::file-selector-button:hover{background:var(--accent-hover);box-shadow:0 2px 6px #2563eb40}.message--reasoning .message__body{width:100%;margin:4px 0}.reasoning-trace{border:1px dashed var(--border);color:var(--text-secondary);background:#7d7d7d0d;border-radius:8px;font-size:.82rem;overflow:hidden}.reasoning-trace--live{background:#6366f10f;border-style:solid;border-color:#6366f159}.reasoning-trace__summary{cursor:pointer;width:100%;font:inherit;color:var(--text-secondary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.reasoning-trace__summary:disabled{cursor:default}.reasoning-trace__summary:not(:disabled):hover{background:#7d7d7d0f}.reasoning-trace__icon{font-size:.95rem}.reasoning-trace--live .reasoning-trace__icon{animation:1.4s ease-in-out infinite reasoning-pulse}@keyframes reasoning-pulse{0%,to{opacity:1}50%{opacity:.45}}.reasoning-trace__label{flex:1;font-style:italic;font-weight:500}.reasoning-trace__chevron{font-size:.65rem;transition:transform .25s}.reasoning-trace__summary--open .reasoning-trace__chevron{transform:rotate(90deg)}.reasoning-trace__body-wrapper{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.reasoning-trace__body-wrapper--open{grid-template-rows:1fr}.reasoning-trace__body-inner{overflow:hidden}.reasoning-trace__steps{flex-direction:column;gap:10px;padding:0 12px 10px;display:flex}.reasoning-trace__step-group{flex-direction:column;gap:2px;display:flex}.reasoning-trace__step-header{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);opacity:.6;border-left:2px solid var(--border);font-variant-numeric:tabular-nums;padding:2px 0 2px 8px;font-size:.65rem;font-weight:700}.reasoning-trace__step-list{flex-direction:column;gap:2px;margin:0;padding:0 0 0 10px;list-style:none;display:flex}.reasoning-trace__step{flex-direction:column;display:flex}.reasoning-trace__step-line{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:baseline;gap:8px;padding:3px 6px;display:flex}.reasoning-trace__step-line:disabled{cursor:default}.reasoning-trace__step-line:not(:disabled):hover{background:#7d7d7d14}.reasoning-trace__step-icon{flex-shrink:0;font-size:.85rem}.reasoning-trace__step-summary{word-break:break-word;flex:1;font-size:.82rem;font-style:italic}.reasoning-trace__step-list--nested{border-left:2px solid #7d7d7d33;margin-top:2px;padding-left:20px}.reasoning-trace__step-details{white-space:pre-wrap;word-break:break-word;background:#0000000a;border-radius:6px;max-height:240px;margin:4px 0 6px 32px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;overflow:auto}.task-panel{border:1px solid var(--border);background:#7d7d7d0f;border-radius:6px;margin:4px 12px 12px;padding:10px 12px}.task-panel__header{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.task-panel__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem;font-weight:700}.task-panel__counts{color:var(--text-secondary);gap:6px;font-size:.72rem;display:flex}.task-panel__count{background:#7d7d7d1a;border-radius:4px;padding:1px 6px}.task-panel__count--completed{color:#16a34a}.task-panel__count--skipped{color:#ea580c}.task-panel__count--pending{opacity:.7}.task-panel__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.task-panel__item{word-break:break-word;align-items:flex-start;gap:8px;font-size:.82rem;line-height:1.35;display:flex}.task-panel__text{flex:1;display:inline}.task-panel__item--completed .task-panel__description{color:var(--text-secondary);-webkit-text-decoration:line-through #16a34a66;text-decoration:line-through #16a34a66}.task-panel__item--skipped .task-panel__description{color:var(--text-secondary);-webkit-text-decoration:line-through #ea580c66;text-decoration:line-through #ea580c66}.task-panel__box{border:1.5px solid var(--border);background:0 0;border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block;position:relative;top:1px}.task-panel__box--pending,.task-panel__box--in_progress{border-color:var(--border);background:0 0}.task-panel__box--in_progress{background:#6366f126;border-color:#6366f1}.task-panel__box--completed{background:#16a34a;border-color:#16a34a}.task-panel__box--completed:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:9px;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.task-panel__box--skipped{background:#ea580c;border-color:#ea580c}.task-panel__box--skipped:after{content:"⊘";color:#fff;justify-content:center;align-items:center;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.task-panel__id{font-variant-numeric:tabular-nums;opacity:.55;margin-right:6px;font-size:.7rem}.task-panel__description{word-break:break-word}.task-panel__result{color:var(--text-secondary);opacity:.85;margin-top:2px;font-size:.74rem;font-style:italic;display:block}
|
|
2
2
|
/*$vite$:1*/
|