feat: redesign traditional workbench and formalize public surfaces

This commit is contained in:
冰朔 2026-08-21 01:57:57 +08:00
commit 950b7e48b3
21 changed files with 328 additions and 34 deletions

View file

@ -1821,7 +1821,7 @@ function HoloLakeApp() {
const renderKnowledge = () => (
<section className="full-workbench knowledge-page">
<aside className="knowledge-browser">
<header><div><span className="kicker">KNOWLEDGE</span><h1></h1></div><div className="knowledge-head-actions"><button className="knowledge-agent-entry" type="button" onClick={() => setKnowledgeAgentOpen(true)}> / </button><button className="icon-button" title="导入文件夹" type="button" disabled={knowledgeBusy} onClick={() => void importKnowledge()}><Icon name="import"/></button></div></header>
<header><div><h1>Agent</h1></div><div className="knowledge-head-actions"><button className="knowledge-agent-entry" type="button" onClick={() => setKnowledgeAgentOpen(true)}> Agent</button><button className="icon-button" title="导入文件夹" type="button" disabled={knowledgeBusy} onClick={() => void importKnowledge()}><Icon name="import"/></button></div></header>
<form className="search-box" onSubmit={(event) => void runSearch(event)}>
<Icon name="search"/><input aria-label="检索知识" value={searchQuery} placeholder="用自然语言检索编号思维" onChange={(event) => setSearchQuery(event.target.value)}/>
{searchResults && <button type="button" onClick={() => { setSearchResults(null); setSearchQuery('') }}></button>}
@ -2052,7 +2052,7 @@ function HoloLakeApp() {
const renderSystem = () => (
<section className="content-page">
<header className="page-title"><div><span className="kicker">HUMAN CONTROL</span><h1></h1><p></p></div></header>
<header className="page-title"><div><h1></h1><p></p></div></header>
<HumanAuthorizationCenter brokerState={status.directLocalBrokerState} activeConnectionCount={status.directConnectionCount} sessions={status.directSessions || []}/>
<details className="system-diagnostics">
<summary></summary>
@ -2375,4 +2375,12 @@ function HoloLakeApp() {
</div>
}
createRoot(document.getElementById('root')!).render(<StrictMode><HoloLakeApp/></StrictMode>)
function VisualQaApp() {
const [finish, setFinish] = useState<FinishId>('aurora')
const screen = new URLSearchParams(window.location.search).get('visual')
if (screen === 'authorization') return <div className="visual-qa-shell"><header><b>HoloLake</b><span></span></header><main><HumanAuthorizationCenter brokerState="READY" activeConnectionCount={0} sessions={[{ sessionId: 'qa-personal', laneId: 'personal-channel', clientInstanceId: 'personal-channel-local', state: 'RESUMABLE', openedAtUnixMs: Date.now(), observedAtUnixMs: Date.now(), lastEventSequence: 1 }, { sessionId: 'qa-development', laneId: 'hololake-development', clientInstanceId: 'codex-hololake-development', state: 'RESUMABLE', openedAtUnixMs: Date.now(), observedAtUnixMs: Date.now(), lastEventSequence: 1 }]}/></main></div>
return <TraditionalSurface awake finish={finish} onFinish={setFinish} onBack={() => undefined} version="0.5.0" dayNumber={483} duty="光湖主域" weatherLabel="晴" broadcasts={[{ id: 'qa-1', domain: '第五域', message: '永恒湖心已建立个人频道', time: '21:18' }]} channels={[{ color: '#6ca7ff', title: '人格原生代码频道', meta: '当前账号本机 Git 投影', tag: '已认证', tone: '#72d69c', count: 2 }, { color: '#6ca7ff', title: '知识库', meta: '本机内容指纹投影', tag: '原生', tone: '#78adff', count: 129 }, { color: '#72d69c', title: '频道模块', meta: '已登记签名模块', tag: '编号', tone: '#72d69c', count: 8 }, { color: '#dfa84f', title: '运行回执', meta: '可核验事件链', tag: '证据', tone: '#dfa84f', count: 0 }]} systems={[{ title: '编号协议基座', meta: '单一编号入口 · 未知路径关闭', tag: '已校验' }, { title: '耐久化引擎', meta: '本机 Git · 事件与回执留证', tag: '在线' }, { title: '天气感知', meta: '光湖主域 · 公开天气已校验', tag: '已接入', tone: '#78adff' }, { title: '色衡层', meta: '主题语义令牌 · 明暗自动均衡', tag: '守护中' }]} activityBars={[0,1,0,0,0,0,0]} activityCount={1}/>
}
const visualQaScreen = import.meta.env.DEV && new URLSearchParams(window.location.search).has('visual')
createRoot(document.getElementById('root')!).render(<StrictMode>{visualQaScreen ? <VisualQaApp/> : <HoloLakeApp/>}</StrictMode>)