feat: show agent activity and simplify starter view
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import { ThinkingOrb, type OrbState } from "thinking-orbs";
|
||||
|
||||
const labels = {
|
||||
working: "正在处理任务…",
|
||||
searching: "正在搜索相关信息…",
|
||||
solving: "正在分析问题…",
|
||||
listening: "正在聆听…",
|
||||
composing: "正在组织回答…",
|
||||
shaping: "正在生成结果…",
|
||||
} as const satisfies Record<OrbState, string>;
|
||||
|
||||
export function AgentActivityStatus({
|
||||
state,
|
||||
label = labels[state],
|
||||
}: Readonly<{
|
||||
state: OrbState;
|
||||
label?: string;
|
||||
}>) {
|
||||
return (
|
||||
<div className="agent-activity-status" role="status">
|
||||
<ThinkingOrb aria-hidden="true" state={state} size={20} />
|
||||
<span>{label}</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import { AgentActivityStatus } from "@/components/agent-activity-status";
|
||||
import { ChatMessageContent } from "@/components/chat-message-content";
|
||||
import type { ChatMessageView } from "@/lib/chat-message-view";
|
||||
|
||||
@@ -22,8 +23,11 @@ export function ChatMessageRow({ message }: { readonly message: ChatMessageView
|
||||
<div className="message-bubble">
|
||||
{message.role === "assistant" ? (
|
||||
message.state === "thinking"
|
||||
? <div className="thinking"><i /><i /><i /></div>
|
||||
: <ChatMessageContent text={message.text} />
|
||||
? <AgentActivityStatus state="working" label="正在核对星盘信息…" />
|
||||
: <>
|
||||
{message.state === "streaming" && <AgentActivityStatus state="composing" />}
|
||||
<ChatMessageContent text={message.text} />
|
||||
</>
|
||||
) : <p>{message.text}</p>}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
export type ParameterFreezeRow = {
|
||||
label: string;
|
||||
value: string;
|
||||
};
|
||||
|
||||
export function ParameterFreezePanel({ rows }: { readonly rows: readonly ParameterFreezeRow[] }) {
|
||||
return (
|
||||
<section className="parameter-freeze-panel" aria-label="当前排盘参数冻结">
|
||||
<div>
|
||||
<b>当前排盘参数</b>
|
||||
<span>这些参数会随咨询一起送入证据链。</span>
|
||||
</div>
|
||||
<dl>
|
||||
{rows.map((row) => (
|
||||
<div key={row.label}>
|
||||
<dt>{row.label}</dt>
|
||||
<dd>{row.value}</dd>
|
||||
</div>
|
||||
))}
|
||||
</dl>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user