feat: add HoloLake folder import and official assistant

This commit is contained in:
冰朔 2026-08-08 11:15:34 +08:00
commit a360982a9b
12 changed files with 507 additions and 76 deletions

View file

@ -1,7 +1,7 @@
/**
* AgentChat
* AgentChat HoloLake
*
* Agent Git
* Git
*
*/
@ -215,8 +215,8 @@ export default function AgentChat({ apiBase, onDocSelect }: Props) {
<div className="agent-info">
<div className="agent-avatar">🌊</div>
<div className="agent-meta">
<h3>{status?.name || '光湖人格体'}</h3>
<span className="agent-role">{status?.role || '知识库管理者'}</span>
<h3>{status?.name || 'HoloLake 助手'}</h3>
<span className="agent-role">{status?.role || '知识工作助手'}</span>
</div>
</div>
<div className="agent-actions">
@ -274,8 +274,8 @@ export default function AgentChat({ apiBase, onDocSelect }: Props) {
{messages.length === 0 && (
<div className="agent-welcome">
<div className="welcome-icon">🌊</div>
<h2></h2>
<p>{status?.operational ? '我是知识库的 AI Agent可以调用工具管理文档。' : '知识库功能已运行Agent 需要配置模型后才会回应,不会用模拟回复冒充。'}</p>
<h2>HoloLake </h2>
<p>{status?.operational ? '可以检索、整理和编辑当前知识库,并为操作保留版本记录。' : '知识库已运行;配置模型后即可使用智能整理功能。'}</p>
<p className="welcome-hint"></p>
<div className="welcome-suggestions">
<button onClick={() => { setInput('帮我列出所有文档'); inputRef.current?.focus(); }}>
@ -355,7 +355,7 @@ export default function AgentChat({ apiBase, onDocSelect }: Props) {
<textarea
ref={inputRef}
className="agent-input"
placeholder="和人格体对话…"
placeholder="向 HoloLake 助手提问…"
value={input}
onChange={e => setInput(e.target.value)}
onKeyDown={handleKeyDown}

View file

@ -49,7 +49,8 @@ function TreeNode({
className={`kb-tree-item kb-tree-folder-header ${expanded ? 'expanded' : ''}`}
onClick={() => setExpanded(!expanded)}
>
<span className="kb-tree-icon">{expanded ? '📂' : '📁'}</span>
<span className={`kb-tree-chevron ${expanded ? 'expanded' : ''}`}></span>
<span className="kb-tree-folder-icon" aria-hidden="true" />
<span className="kb-tree-name">{node.name}</span>
<button
className="kb-tree-add"
@ -80,7 +81,7 @@ function TreeNode({
className={`kb-tree-item kb-tree-doc ${isActive ? 'active' : ''}`}
onClick={() => onSelect(node.path)}
>
<span className="kb-tree-icon">📄</span>
<span className="kb-tree-doc-icon" aria-hidden="true" />
<span className="kb-tree-name">{node.name}</span>
</div>
);

View file

@ -40,9 +40,10 @@ export function Editor({ doc, onSave }: Props) {
return (
<div className="kb-editor">
<div className="kb-page-symbol" aria-hidden="true"></div>
{/* 元信息栏 */}
<div className="kb-editor-meta">
<span className="kb-editor-path">{doc.meta.id}</span>
<span className="kb-editor-path">HoloLake / {doc.meta.id}</span>
<span className="kb-editor-date">
{new Date(doc.meta.updatedAt).toLocaleString('zh-CN')}
</span>
@ -71,7 +72,7 @@ export function Editor({ doc, onSave }: Props) {
<button className="kb-btn-secondary" onClick={handleCancel}></button>
</>
) : (
<button className="kb-btn-primary" onClick={() => setEditing(true)}></button>
<button className="kb-btn-primary" onClick={() => setEditing(true)}></button>
)}
</div>