fuli-context 0.10.0 → 0.11.0
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/README.md +27 -30
- package/README.zh-CN.md +22 -26
- package/dist/web/assets/AboutPage-CKq4IRHd.js +1 -0
- package/dist/web/assets/AgentConversations-DfXiFvBN.js +2 -0
- package/dist/web/assets/AgentConversations-XqNEBY_2.css +1 -0
- package/dist/web/assets/AgentHand-BBM-sKh2.js +1 -0
- package/dist/web/assets/AgentName-C_6R80nP.js +1 -0
- package/dist/web/assets/AgentProfilePage-Cz-i1fRD.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-BI0EFz6y.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-yRWktiin.css +1 -0
- package/dist/web/assets/ConnectionsPage-BoC6kXgs.js +1 -0
- package/dist/web/assets/ConnectionsPage-CM9C-zEI.css +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-BVyclQAJ.js +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-CVbqCzHb.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-D-c_Jm2z.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-D2GvYraI.js +3 -0
- package/dist/web/assets/KnowledgeEditDialog-a0AKWics.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-hT9znkoe.css +1 -0
- package/dist/web/assets/KnowledgeInspector-DMg9yJZ2.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-BgsHM3Qw.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-DeL7Jp34.css +1 -0
- package/dist/web/assets/KnowledgePage-kn8MqUCO.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-BtRq9fvC.js +4 -0
- package/dist/web/assets/KnowledgeWorkspace-D4a7FcAb.css +1 -0
- package/dist/web/assets/NotFoundPage-D-7jLz3o.js +1 -0
- package/dist/web/assets/OverviewPage-BHPc-XxY.js +1 -0
- package/dist/web/assets/OverviewPage-By-fUzSG.css +1 -0
- package/dist/web/assets/PersonalProfilePage-C00iV0Kx.js +1 -0
- package/dist/web/assets/PersonalProfilePage-DrMDAAdy.css +1 -0
- package/dist/web/assets/PersonalProjectsPage-CFNkdHSo.js +1 -0
- package/dist/web/assets/ProjectAgentFirstTask-Bi1ZsTC1.css +1 -0
- package/dist/web/assets/ProjectAgentFirstTask-CrCWEYgn.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-BzztLMH-.js +12 -0
- package/dist/web/assets/ProjectAgentsPage-DNLNjYp-.css +1 -0
- package/dist/web/assets/ProjectScopePicker-CMxn3txv.js +1 -0
- package/dist/web/assets/PublicProjectsPage-DKamXDV9.css +1 -0
- package/dist/web/assets/PublicProjectsPage-DQVtvhOS.js +1 -0
- package/dist/web/assets/ReviewPage-BZhvyDWc.js +1 -0
- package/dist/web/assets/RoundtablesPage-CVebTXQa.js +1 -0
- package/dist/web/assets/RoundtablesPage-Cb0R4GaM.css +1 -0
- package/dist/web/assets/SettingsPage-1knvfOW6.js +1 -0
- package/dist/web/assets/SettingsPage-BmYkLul4.css +1 -0
- package/dist/web/assets/SharedJefaReportPage-BCVq8u0P.js +1 -0
- package/dist/web/assets/UiDialog-Da1P10f4.js +1 -0
- package/dist/web/assets/UiDisclosure-8wE8YuE4.js +1 -0
- package/dist/web/assets/UiSegmented-BKZXc8QF.js +1 -0
- package/dist/web/assets/UiSelect-Bv6R0yr1.css +1 -0
- package/dist/web/assets/UiSelect-D5Xj5Ec4.js +1 -0
- package/dist/web/assets/WritingTastePage-B8-etOBn.js +1 -0
- package/dist/web/assets/WritingTastePage-B_zYD1df.css +1 -0
- package/dist/web/assets/agent-profile-BZj3ezWe.css +1 -0
- package/dist/web/assets/{attention-store-Dk-_P4Oi.js → attention-store-BfxtL9EV.js} +1 -1
- package/dist/web/assets/{catalog-DN72452f.js → catalog-6SN9i3WR.js} +1 -1
- package/dist/web/assets/client-CUTkF3t4.js +1 -0
- package/dist/web/assets/{console-BtPqo79j.js → console-CG8tdtSs.js} +1 -1
- package/dist/web/assets/{conversation-launcher-settings-jkHRmWai.js → conversation-launcher-settings-CyZkLJg7.js} +1 -1
- package/dist/web/assets/{i18n-D2CJkEYK.js → i18n-CCMR4gDS.js} +3 -3
- package/dist/web/assets/{identity-B3zEw-1u.js → identity-C1eN-FSB.js} +1 -1
- package/dist/web/assets/index-kPB0Cf8Q.css +1 -0
- package/dist/web/assets/index-sLDKI6R-.js +5 -0
- package/dist/web/assets/{model-S7ehAjky.js → model-l-sAqtW_.js} +1 -1
- package/dist/web/assets/{personal-profile-graph--GG3Mizo.js → personal-profile-graph-BD1Y6TDS.js} +1 -1
- package/dist/web/assets/shared-report-B46dxlCR.js +1 -0
- package/dist/web/assets/{useAgentRoster-BAPKWZ9y.js → useAgentRoster-DdxoKDEE.js} +1 -1
- package/dist/web/assets/{useApi-CROJJdhE-BtFMXFjw.js → useApi-CROJJdhE-DlOiu8lP.js} +1 -1
- package/dist/web/assets/{vue-router-DkaTtPn0.js → vue-router-DjqEU4W2.js} +1 -1
- package/dist/web/index.html +14 -16
- package/docs/agent-conversations-and-collaboration.md +9 -9
- package/docs/agent-roundtable.md +61 -0
- package/docs/employee-agents.md +2 -2
- package/docs/project-agent-memory.md +1 -1
- package/graph-provider/fuli_graph/agent_conversation_models.py +11 -2
- package/graph-provider/fuli_graph/conversation_context.py +40 -9
- package/graph-provider/fuli_graph/default_project_lead.py +88 -0
- package/graph-provider/fuli_graph/project_agent_memory_routes.py +7 -0
- package/graph-provider/fuli_graph/project_agent_task_models.py +3 -0
- package/graph-provider/fuli_graph/runtime.py +3 -76
- package/graph-provider/fuli_graph/store.py +2 -0
- package/graph-provider/fuli_graph/store_agent_conversations.py +60 -8
- package/graph-provider/fuli_graph/store_project_agent_task_recruitment.py +3 -1
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +12 -8
- package/graph-provider/fuli_graph/store_project_agents.py +25 -124
- package/graph-provider/fuli_graph/store_task_contexts.py +26 -0
- package/graph-provider/fuli_graph/system_agents.py +128 -0
- package/graph-provider/fuli_graph/system_hr_identity.py +1 -1
- package/graph-provider/fuli_graph/task_context_routes.py +10 -0
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/src/agent-roundtable/http.js +14 -0
- package/src/agent-roundtable/service.js +218 -0
- package/src/agent-roundtable/store.js +86 -0
- package/src/agent-roundtable/tools.js +61 -0
- package/src/agent-roundtable/wake.js +99 -0
- package/src/agent-tools/agent-conversation-definitions.js +3 -3
- package/src/agent-tools/graph-definitions.js +3 -2
- package/src/agent-tools/interface-catalog.js +0 -5
- package/src/agent-tools.js +2 -2
- package/src/agents/claude-code/wake.js +37 -0
- package/src/agents/codex/wake.js +47 -0
- package/src/agents/identity-receipt.js +16 -6
- package/src/agents/session-log.js +34 -0
- package/src/agents/wake-registry.js +14 -0
- package/src/cli/command-registry.js +0 -2
- package/src/cli/setup-command.js +2 -5
- package/src/cli/update-command.js +13 -2
- package/src/cli.js +0 -5
- package/src/employees/management-policy.js +4 -2
- package/src/employees/manifest.js +3 -0
- package/src/employees/recruitment.js +3 -2
- package/src/graphiti/agent-conversations.js +11 -9
- package/src/graphiti/agent-knowledge-workflows.js +34 -7
- package/src/graphiti/federated-application.js +13 -5
- package/src/graphiti/project-agent-task-entry.js +19 -7
- package/src/graphiti/project-path-context.js +7 -2
- package/src/graphiti/provider-client.js +8 -0
- package/src/graphiti/repository-project-registration.js +17 -0
- package/src/graphiti/task-entry-preferences.js +5 -0
- package/src/http/api-router.js +5 -3
- package/src/http/error-mapping.js +0 -2
- package/src/mcp/instructions.js +5 -5
- package/src/mcp/session-id.js +1 -1
- package/src/mcp/tool-annotations.js +3 -4
- package/src/setup/agents.js +1 -41
- package/src/setup/graph-runtime.js +15 -2
- package/src/setup/session-skill.js +22 -2
- package/dist/web/assets/AboutPage-D-GyJNv1.js +0 -1
- package/dist/web/assets/AgentConversations-DOuZgUeA.js +0 -2
- package/dist/web/assets/AgentConversations-DS8h3yKn.css +0 -1
- package/dist/web/assets/AgentHand-eGsXoGSq.js +0 -1
- package/dist/web/assets/AgentName-Dtmu9Ff5.js +0 -1
- package/dist/web/assets/AgentProfilePage-D8Tvayn7.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage-BTEfKZjF.js +0 -1
- package/dist/web/assets/ConnectionsPage-C1w99yN3.css +0 -1
- package/dist/web/assets/ConnectionsPage-DwOIcvl9.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-BrIMRblq.css +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-D11blfwU.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-BcEzYt65.css +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-CK2BAoGt.js +0 -3
- package/dist/web/assets/GrowthLoading-KTjE2e50.js +0 -1
- package/dist/web/assets/KnowledgeEditDialog-B3x8vs3c.css +0 -1
- package/dist/web/assets/KnowledgeEditDialog-n9trHQ5d.js +0 -1
- package/dist/web/assets/KnowledgeInspector-BcNjgw9H.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-BzgxP-nG.css +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-DMBpGxLr.js +0 -1
- package/dist/web/assets/KnowledgePage-POkCMW8f.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-2FvQadhB.js +0 -4
- package/dist/web/assets/KnowledgeWorkspace-sb8OJ97I.css +0 -1
- package/dist/web/assets/NotFoundPage-BCMZbeB8.js +0 -1
- package/dist/web/assets/OverviewPage-0CFWCG9-.css +0 -1
- package/dist/web/assets/OverviewPage-0mYifpjp.js +0 -1
- package/dist/web/assets/PersonalProfilePage-Chv2a2pi.css +0 -1
- package/dist/web/assets/PersonalProfilePage-JW6Muix6.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-CRbi64JP.js +0 -1
- package/dist/web/assets/ProjectAgentFirstTask-6afJ8HUe.css +0 -1
- package/dist/web/assets/ProjectAgentFirstTask-DJ0wTbh8.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-CPgKVLgg.js +0 -12
- package/dist/web/assets/ProjectAgentsPage-DeuRkMp1.css +0 -1
- package/dist/web/assets/ProjectScopePicker-BwB7gK-7.js +0 -1
- package/dist/web/assets/PublicProjectsPage-CB272Sq-.js +0 -1
- package/dist/web/assets/ReviewPage-CelTZU4C.js +0 -1
- package/dist/web/assets/RoundtablesPage-C9dXfWCl.js +0 -2
- package/dist/web/assets/RoundtablesPage-DCbIBnBq.css +0 -1
- package/dist/web/assets/SearchableSelect-f7EHbyDL.js +0 -1
- package/dist/web/assets/SettingsPage-5g7mRN2F.css +0 -1
- package/dist/web/assets/SettingsPage-nAijmm5f.js +0 -1
- package/dist/web/assets/SharedJefaReportPage-CjpJ9bkk.js +0 -1
- package/dist/web/assets/UiDisclosure-CWlC91Zt.js +0 -1
- package/dist/web/assets/WritingTastePage-DaHWY61P.js +0 -1
- package/dist/web/assets/WritingTastePage-SMGF39mf.css +0 -1
- package/dist/web/assets/agent-profile-CBvJHGjt.css +0 -1
- package/dist/web/assets/client-B2cRl-7c.js +0 -1
- package/dist/web/assets/copy-D2LqwtPZ.js +0 -1
- package/dist/web/assets/index-CNp0tRNp.css +0 -1
- package/dist/web/assets/index-ulISYH02.js +0 -5
- package/dist/web/assets/shared-report-DEK9wvhl.js +0 -1
- package/dist/web/assets/useModalDialog-D8tiJfbc.js +0 -1
- package/docs/roundtable.md +0 -46
- package/src/agents/a2a/roundtable-participant.js +0 -374
- package/src/agents/claude-code/roundtable-participant.js +0 -24
- package/src/agents/codex/roundtable-config.js +0 -32
- package/src/agents/codex/roundtable-participant.js +0 -34
- package/src/agents/grok/roundtable-participant.js +0 -185
- package/src/agents/pi/roundtable-participant.js +0 -193
- package/src/agents/pi/roundtable-result-format.js +0 -183
- package/src/cli/roundtable-command.js +0 -79
- package/src/roundtables/application.js +0 -69
- package/src/roundtables/domain.js +0 -181
- package/src/roundtables/http-router.js +0 -58
- package/src/roundtables/mcp-server.js +0 -55
- package/src/roundtables/participant-registry.js +0 -12
- package/src/roundtables/process.js +0 -70
- package/src/roundtables/profiles.js +0 -84
- package/src/roundtables/result-contract.js +0 -47
- package/src/roundtables/server.js +0 -52
- package/src/roundtables/service.js +0 -480
- package/src/roundtables/store.js +0 -63
- package/src/roundtables/tool-contract.js +0 -58
- package/src/roundtables/turn-prompt.js +0 -24
- package/src/roundtables/worker.js +0 -85
- /package/dist/web/assets/{GrowthLoading-CIuQ1icy.css → client-CIuQ1icy.css} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,M as r,P as i,R as a,S as o,V as s,X as c,_ as l,b as u,c as d,d as f,h as p,it as m,m as h,nt as g,tt as _,u as v,v as y,w as b,x,y as S}from"./i18n-D2CJkEYK.js";import{t as C}from"./GrowthLoading-KTjE2e50.js";import{h as w,m as T}from"./useApi-CROJJdhE-BtFMXFjw.js";import{t as E}from"./vue-router-DkaTtPn0.js";import{a as D,i as O,n as k,r as A,t as j}from"./copy-D2LqwtPZ.js";async function M(e,t){let n=await fetch(`/api/roundtables${e}`,{method:t===void 0?`GET`:`POST`,credentials:`same-origin`,headers:t===void 0?{Accept:`application/json`}:{Accept:`application/json`,"Content-Type":`application/json`},...t===void 0?{}:{body:JSON.stringify(t)}}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(typeof r?.error?.message==`string`?r.error.message:typeof r?.error==`string`?r.error:`HTTP ${n.status}`);if(r===null)throw Error(`Invalid roundtable response`);return r}var N={list:()=>M(``),read:(e,t=0)=>M(`/${encodeURIComponent(e)}?after=${t}&limit=100`),create:async e=>{let t=await M(``,e);return`room`in t?t.room:t},control:(e,t,n,r,i)=>M(`/${encodeURIComponent(e)}/control`,{action:t,expectedRevision:n,...r?{reason:r}:{},...i?{limits:i}:{}}),message:(e,t)=>M(`/${encodeURIComponent(e)}/messages`,{body:t}),invite:(e,t)=>M(`/${encodeURIComponent(e)}/invites`,{seatId:t}),revoke:(e,t)=>M(`/${encodeURIComponent(e)}/revoke`,{seatId:t})},P={class:`rt-panel rt-create`,"aria-labelledby":`rt-create-title`},F={class:`rt-section-heading`},I={id:`rt-create-title`},L=[`disabled`],R={class:`rt-field`},z=[`placeholder`],B={class:`rt-field`},V={value:`discussion`},H={value:`collaboration`},U={class:`rt-section-heading`},W={class:`rt-muted`},G={class:`rt-field`},K=[`onUpdate:modelValue`,`aria-label`],ee={class:`rt-field`},te=[`onUpdate:modelValue`,`aria-label`],ne=[`value`],re={class:`rt-field`},ie=[`onUpdate:modelValue`,`aria-label`],ae=[`value`],oe=[`disabled`,`aria-label`,`onClick`],se={key:0,class:`rt-seat-permission`},ce=[`onUpdate:modelValue`],le={key:0,class:`rt-field`},ue=[`onUpdate:modelValue`],de=[`disabled`],fe={key:0,class:`rt-warning`},pe={class:`rt-advanced`},me={class:`rt-field`},he=[`placeholder`],ge={class:`rt-muted`},_e={class:`rt-field`},ve={key:0,class:`rt-field`},ye={class:`rt-muted`},be={class:`rt-limit-form`},xe={class:`rt-field`},Se={class:`rt-field`},Ce={class:`rt-field`},we={class:`rt-field`},Te={key:1,class:`rt-muted`},Ee={key:2,role:`alert`,class:`rt-error`},De=[`disabled`],Oe={key:1},q=b({__name:`RoundtableCreate`,emits:[`created`,`cancel`],setup(e,{emit:t}){let n=t,a=c(``),g=c(`discussion`),b=c([{id:`seat-1`,name:`Codex`,role:`moderator`,runtime:`codex`},{id:`seat-2`,name:`Claude`,role:`reviewer`,runtime:`claude-code`}]),w=[`moderator`,`specialist`,`implementer`,`reviewer`],T=[`codex`,`claude-code`,`pi`,`mcp`,`grok`,`a2a`],E=c(``),D=c(``),O=c(),j=c(3),M=c(30),q=c(30),J=c(5),Y=c(!1),X=c(``),Z=c({}),Q=c({}),ke=3,$=l(()=>a.value.trim()&&b.value.length>=2&&b.value.length<=6&&b.value.every(e=>e.name.trim())&&b.value.filter(e=>e.role===`moderator`).length===1&&b.value.every(e=>g.value!==`collaboration`||e.role!==`implementer`||!Z.value[e.id]||Q.value[e.id]?.trim())&&(g.value===`discussion`||b.value.some(e=>e.role===`implementer`)&&b.value.some(e=>e.role===`reviewer`)));function Ae(){b.value.push({id:`seat-${ke++}`,name:``,role:`specialist`,runtime:`mcp`})}async function je(){if(!(!$.value||Y.value)){Y.value=!0,X.value=``;try{let e=await N.create({goal:a.value.trim(),mode:g.value,seats:b.value.map(e=>({...e,name:e.name.trim(),...e.role===`implementer`&&g.value===`collaboration`&&Z.value[e.id]?{execution:{permission:`workspace-write`,workspace:Q.value[e.id].trim()}}:{}})),limits:{maxRounds:j.value,maxMessages:M.value,maxDurationMs:q.value*6e4,turnTimeoutMs:J.value*6e4},...E.value.trim()?{projectPath:E.value.trim()}:{},...E.value.trim()&&D.value.trim()?{binding:{taskId:D.value.trim(),...Number.isSafeInteger(O.value)?{artifactRevision:O.value}:{}}}:{}});n(`created`,e.id)}catch(e){X.value=e instanceof Error?e.message:k(`创建失败`,`Creation failed`)}finally{Y.value=!1}}}return(e,t)=>(r(),x(`section`,P,[y(`div`,F,[y(`h2`,I,m(_(k)(`创建圆桌`,`Create a roundtable`)),1),y(`button`,{type:`button`,onClick:t[0]||=e=>n(`cancel`),disabled:Y.value},m(_(k)(`关闭`,`Close`)),9,L)]),y(`form`,{onSubmit:h(je,[`prevent`])},[y(`label`,R,[o(m(_(k)(`共同目标`,`Shared goal`)),1),s(y(`textarea`,{"onUpdate:modelValue":t[1]||=e=>a.value=e,required:``,maxlength:`12000`,rows:`3`,placeholder:_(k)(`描述要一起解决的问题和期望的交付`,`Describe the problem and expected deliverable`)},null,8,z),[[f,a.value]])]),y(`label`,B,[o(m(_(k)(`方式`,`Mode`)),1),s(y(`select`,{"onUpdate:modelValue":t[2]||=e=>g.value=e},[y(`option`,V,m(_(A)(`discussion`)),1),y(`option`,H,m(_(A)(`collaboration`)),1)],512),[[v,g.value]])]),y(`div`,U,[y(`h3`,null,m(_(k)(`参与席位`,`Seats`)),1),y(`span`,null,m(b.value.length)+` / 6`,1)]),y(`p`,W,m(_(k)(`每位参与者有独立席位。选择入口后,还需要在参与者的电脑上启动工作端,或从 MCP 客户端主动加入。`,`Each participant has its own seat. After choosing an adapter, start a worker on the participant’s computer or actively join from an MCP client.`)),1),(r(!0),x(p,null,i(b.value,(e,t)=>(r(),x(`div`,{key:e.id,class:`rt-seat-form`},[y(`label`,G,[o(m(_(k)(`姓名`,`Name`)),1),s(y(`input`,{"onUpdate:modelValue":t=>e.name=t,required:``,maxlength:`120`,"aria-label":`${_(k)(`姓名`,`Name`)} ${t+1}`},null,8,K),[[f,e.name]])]),y(`label`,ee,[o(m(_(k)(`职责`,`Role`)),1),s(y(`select`,{"onUpdate:modelValue":t=>e.role=t,"aria-label":`${_(k)(`职责`,`Role`)} ${t+1}`},[(r(),x(p,null,i(w,e=>y(`option`,{key:e,value:e},m(_(A)(e)),9,ne)),64))],8,te),[[v,e.role]])]),y(`label`,re,[o(m(_(k)(`参与方式`,`Adapter`)),1),s(y(`select`,{"onUpdate:modelValue":t=>e.runtime=t,"aria-label":`${_(k)(`参与方式`,`Adapter`)} ${t+1}`},[(r(),x(p,null,i(T,e=>y(`option`,{key:e,value:e},m(_(A)(e)),9,ae)),64))],8,ie),[[v,e.runtime]])]),y(`button`,{type:`button`,disabled:b.value.length<=2||Y.value,"aria-label":`${_(k)(`移除`,`Remove`)} ${e.name||t+1}`,onClick:e=>b.value.splice(t,1)},`×`,8,oe),e.role===`implementer`&&g.value===`collaboration`?(r(),x(`div`,se,[y(`label`,null,[s(y(`input`,{"onUpdate:modelValue":t=>Z.value[e.id]=t,type:`checkbox`},null,8,ce),[[d,Z.value[e.id]]]),o(` `+m(_(k)(`允许此实施席位写入指定工作区`,`Allow this implementer to write to the specified workspace`)),1)]),Z.value[e.id]?(r(),x(`label`,le,[o(m(_(k)(`获授权工作区路径`,`Authorized workspace path`)),1),s(y(`input`,{"onUpdate:modelValue":t=>Q.value[e.id]=t,required:``},null,8,ue),[[f,Q.value[e.id]]])])):u(``,!0)])):u(``,!0)]))),128)),y(`button`,{type:`button`,disabled:b.value.length>=6||Y.value,onClick:Ae},m(_(k)(`添加席位`,`Add seat`)),9,de),!$.value&&a.value.trim()?(r(),x(`p`,fe,m(_(k)(`需要 2–6 个有姓名的席位和一位主持人;协作任务还需要实施者和审查者。`,`Use 2–6 named seats and exactly one moderator. Collaborative tasks also require an implementer and a reviewer.`)),1)):u(``,!0),y(`details`,pe,[y(`summary`,null,m(_(k)(`停止条件与项目`,`Limits and project`)),1),y(`label`,me,[o(m(_(k)(`已登记项目的本机路径(可选)`,`Registered local project path (optional)`)),1),s(y(`input`,{"onUpdate:modelValue":t[3]||=e=>E.value=e,placeholder:_(k)(`留空建立独立临时圆桌`,`Leave blank for an independent temporary room`)},null,8,he),[[f,E.value]])]),y(`p`,ge,m(_(k)(`项目绑定由服务端验证。跨电脑工作端的本地路径单独设置;加入席位不会授权读取他人的私有记忆。`,`The server validates project binding. Each worker sets its own local path; joining does not authorize access to another participant’s private memory.`)),1),E.value.trim()?(r(),x(p,{key:0},[y(`label`,_e,[o(m(_(k)(`关联已有 Fuli 任务 ID(可选)`,`Existing Fuli task ID (optional)`)),1),s(y(`input`,{"onUpdate:modelValue":t[4]||=e=>D.value=e},null,512),[[f,D.value]])]),D.value.trim()?(r(),x(`label`,ve,[o(m(_(k)(`产物版本(用于任务验证)`,`Artifact revision (for task verification)`)),1),s(y(`input`,{"onUpdate:modelValue":t[5]||=e=>O.value=e,type:`number`,min:`0`,step:`1`},null,512),[[f,O.value,void 0,{number:!0}]])])):u(``,!0),y(`p`,ye,m(_(k)(`关联项目本身不会完成 Fuli 任务。关联已有任务时,交付还要通过该任务的验证门槛;独立圆桌的人工验收只结束圆桌。`,`A project link alone does not complete a Fuli task. Linking an existing task adds its verification gate; human acceptance of an independent room concludes only the room.`)),1)],64)):u(``,!0),y(`div`,be,[y(`label`,xe,[o(m(_(k)(`讨论轮数`,`Discussion rounds`)),1),s(y(`input`,{"onUpdate:modelValue":t[6]||=e=>j.value=e,type:`number`,min:`1`,max:`3`,required:``},null,512),[[f,j.value,void 0,{number:!0}]])]),y(`label`,Se,[o(m(_(k)(`Agent 发言上限`,`Agent message limit`)),1),s(y(`input`,{"onUpdate:modelValue":t[7]||=e=>M.value=e,type:`number`,min:`1`,max:`30`,required:``},null,512),[[f,M.value,void 0,{number:!0}]])]),y(`label`,Ce,[o(m(_(k)(`总时限(分钟)`,`Total minutes`)),1),s(y(`input`,{"onUpdate:modelValue":t[8]||=e=>q.value=e,type:`number`,min:`1`,max:`30`,required:``},null,512),[[f,q.value,void 0,{number:!0}]])]),y(`label`,we,[o(m(_(k)(`单回合(分钟)`,`Minutes per turn`)),1),s(y(`input`,{"onUpdate:modelValue":t[9]||=e=>J.value=e,type:`number`,min:`1`,max:`5`,required:``},null,512),[[f,J.value,void 0,{number:!0}]])])])]),g.value===`collaboration`?(r(),x(`p`,Te,m(_(k)(`实施席位仍需要在工作端明确授权工作区写入;审查默认只读。执行结果等待你的验收。`,`Implementation still requires explicit workspace write permission on the worker. Reviews default to read only. Results await your acceptance.`)),1)):u(``,!0),X.value?(r(),x(`p`,Ee,m(X.value),1)):u(``,!0),y(`button`,{type:`submit`,class:`rt-primary`,disabled:!$.value||Y.value},[Y.value?(r(),S(C,{key:0,variant:`inline`,label:`创建圆桌 · Creating roundtable`})):(r(),x(`span`,Oe,m(_(k)(`创建草案`,`Create draft`)),1))],8,De)],32)]))}}),J={class:`rt-panel`,"aria-labelledby":`rt-seats-title`},Y={class:`rt-section-heading`},X={id:`rt-seats-title`},Z={class:`rt-muted`},Q={class:`rt-seats`},ke={class:`rt-section-heading`},$={class:`rt-tag`},Ae={key:0},je={key:1,class:`rt-muted`},Me={key:2,class:`rt-muted`},Ne={class:`rt-muted`},Pe={class:`rt-muted`},Fe={key:1,class:`rt-muted`},Ie={class:`rt-actions`},Le=[`disabled`,`onClick`],Re={key:1},ze=[`disabled`,`onClick`],Be={key:1},Ve={key:0,class:`rt-error`,role:`alert`},He={key:1,class:`rt-invite`,"aria-labelledby":`rt-invite-title`},Ue={class:`rt-section-heading`},We={id:`rt-invite-title`},Ge={class:`rt-field`},Ke=[`value`],qe={class:`rt-muted`},Je={class:`rt-field`},Ye={class:`rt-muted`},Xe={class:`rt-field`},Ze=[`placeholder`],Qe={key:0},$e={key:1,class:`rt-field`},et={key:2,class:`rt-field`},tt={class:`rt-muted`},nt={class:`rt-muted`},rt={class:`rt-muted`},it={class:`rt-muted`},at=b({__name:`RoundtableSeats`,props:{room:{},activeSeatId:{}},emits:[`changed`],setup(t,{emit:n}){let l=t,h=n,v=c(null),b=c(``),w=c(``),T=c(``),E=c(``),D=c(typeof window>`u`?``:window.location.origin),j=c(!1),M=c(``),P=c(``),F=!1;a(()=>l.room.id,()=>{v.value=null,w.value=``,T.value=``}),e(()=>{F=!0,v.value=null});async function I(e){if(b.value)return;b.value=`invite:${e}`,w.value=``,v.value=null,T.value=``;let t=l.room.id;try{let n=await N.invite(t,e);!F&&l.room.id===t&&(v.value=n)}catch(e){w.value=e instanceof Error?e.message:k(`创建邀请失败`,`Invitation failed`)}finally{b.value=``}}async function L(e){if(!b.value){b.value=`revoke:${e}`,w.value=``;try{await N.revoke(l.room.id,e),v.value?.seatId===e&&(v.value=null),h(`changed`)}catch(e){w.value=e instanceof Error?e.message:k(`撤销失败`,`Revocation failed`)}finally{b.value=``}}}async function R(e,t){try{await navigator.clipboard.writeText(e),T.value=t}catch{w.value=k(`剪贴板不可用,请手动选择并复制。`,`Clipboard unavailable. Select and copy manually.`)}}function z(){let e=l.room.seats.find(e=>e.id===v.value?.seatId);if(!e||e.runtime===`mcp`)return``;let t=e=>`'${e.replaceAll(`'`,`''`)}'`;return`fl roundtable worker --url ${t(D.value)} --room ${t(l.room.id)} --runtime ${e.runtime} --workspace ${t(E.value||k(`参与端本地工作区`,`LOCAL_WORKSPACE`))}${j.value&&e.role===`implementer`&&e.execution?.permission===`workspace-write`?` --allow-write`:``}${e.runtime===`a2a`?` --a2a-url ${t(M.value||`https://A2A_ENDPOINT`)}`:``}${e.runtime===`pi`?` --model ${t(P.value||`LOCAL_MODEL`)}`:``}`}function B(){return`${D.value.replace(/\/$/,``)}/roundtable-peer/v1/rooms/${encodeURIComponent(l.room.id)}/mcp`}return(e,n)=>(r(),x(`section`,J,[y(`div`,Y,[y(`h2`,X,m(_(k)(`圆桌席位`,`Seats`)),1),y(`span`,null,m(t.room.seats.length),1)]),y(`p`,Z,m(_(k)(`邀请仅授予一个席位的权限。加入记录是历史证据,当前在线状态由工作端轮询和回合回执确定。`,`An invitation grants access to one seat. Join records are historical evidence; worker polling and turn receipts determine current activity.`)),1),y(`div`,Q,[(r(!0),x(p,null,i(t.room.seats,e=>(r(),x(`article`,{key:e.id,class:g([`rt-seat`,{"rt-seat-current":e.id===t.activeSeatId}])},[y(`div`,ke,[y(`strong`,null,m(e.name),1),y(`span`,$,m(_(A)(e.role)),1)]),e.selfProfile?(r(),x(p,{key:0},[e.selfProfile.responsibility?(r(),x(`p`,Ae,m(e.selfProfile.responsibility),1)):u(``,!0),e.selfProfile.introduction?(r(),x(`p`,je,m(e.selfProfile.introduction),1)):u(``,!0),e.selfProfile.capabilities?.length?(r(),x(`p`,Me,m(e.selfProfile.capabilities.join(` · `)),1)):u(``,!0)],64)):u(``,!0),y(`p`,null,m(_(A)(e.runtime)),1),y(`p`,Ne,m(e.identityKind===`fuli`?_(k)(`已绑定 Fuli 身份`,`Bound Fuli identity`):_(k)(`独立任务席位`,`Independent task seat`)),1),y(`p`,Pe,m(e.joinedAt?`${_(k)(`加入于`,`Joined`)} ${_(O)(e.joinedAt)}`:_(k)(`尚无加入记录`,`No join recorded`)),1),e.execution?(r(),x(`p`,Fe,m(_(A)(e.execution.permission))+` · `+m(e.execution.workspace),1)):u(``,!0),y(`div`,Ie,[y(`button`,{type:`button`,disabled:!!b.value,onClick:t=>I(e.id)},[b.value===`invite:${e.id}`?(r(),S(C,{key:0,variant:`inline`,label:`创建席位邀请 · Creating seat invitation`})):(r(),x(`span`,Re,m(_(k)(`邀请参与`,`Invite participant`)),1))],8,Le),y(`button`,{type:`button`,disabled:!!b.value,onClick:t=>L(e.id)},[b.value===`revoke:${e.id}`?(r(),S(C,{key:0,variant:`inline`,label:`撤销席位凭据 · Revoking seat credentials`})):(r(),x(`span`,Be,m(_(k)(`撤销凭据`,`Revoke credentials`)),1))],8,ze)])],2))),128))]),w.value?(r(),x(`p`,Ve,m(w.value),1)):u(``,!0),v.value?(r(),x(`section`,He,[y(`div`,Ue,[y(`h3`,We,m(_(k)(`席位邀请 · 仅此次显示`,`Seat invitation · shown once`)),1),y(`button`,{type:`button`,onClick:n[0]||=e=>{v.value=null,T.value=``}},m(_(k)(`隐藏凭据`,`Hide credential`)),1)]),y(`p`,null,m(t.room.seats.find(e=>e.id===v.value?.seatId)?.name)+` · `+m(_(k)(`有效期至`,`Expires`))+` `+m(_(O)(v.value.expiresAt)),1),y(`label`,Ge,[o(m(_(k)(`席位访问凭据`,`Seat credential`)),1),y(`input`,{value:v.value.seatToken,readonly:``,autocomplete:`off`,spellcheck:`false`,type:`password`,"data-testid":`seat-token`,onFocus:n[1]||=e=>e.target.select()},null,40,Ke)]),y(`button`,{type:`button`,onClick:n[2]||=e=>R(v.value.seatToken,`token`)},m(T.value===`token`?_(k)(`凭据已复制`,`Credential copied`):_(k)(`复制凭据`,`Copy credential`)),1),y(`p`,qe,m(_(k)(`只发给这一席位的参与者。凭据仅保留在当前页面内存;关闭后重新创建邀请,或撤销此前凭据。`,`Share only with this seat’s participant. This page keeps the credential only in memory. After closing, create a new invite or revoke previous credentials.`)),1),y(`label`,Je,[o(m(_(k)(`参与者可访问的协调端地址`,`Coordinator URL reachable by participant`)),1),s(y(`input`,{"onUpdate:modelValue":n[3]||=e=>D.value=e,type:`url`},null,512),[[f,D.value]])]),y(`p`,Ye,m(_(k)(`另一台电脑需要可访问的 HTTPS 地址,并在协调端设置 public-url;本机测试可使用回环地址。`,`Another computer needs a reachable HTTPS URL configured as public-url on the coordinator. Loopback works for local testing.`)),1),t.room.seats.find(e=>e.id===v.value?.seatId)?.runtime===`mcp`?(r(),x(p,{key:1},[y(`p`,nt,m(_(k)(`在 MCP 客户端配置下面的远程地址,将席位凭据作为 Bearer 认证秘密保存。Grok Team Bot 可在官方自定义 MCP 设置中配置此地址。`,`Configure this remote URL in the MCP client and save the seat credential as a Bearer authentication secret. Grok Team Bots can configure it through their official custom MCP settings.`)),1),y(`pre`,null,[y(`code`,null,m(B()),1)]),y(`button`,{type:`button`,onClick:n[9]||=e=>R(B(),`mcp`)},m(T.value===`mcp`?_(k)(`地址已复制`,`URL copied`):_(k)(`复制 MCP 地址`,`Copy MCP URL`)),1),y(`p`,rt,m(_(k)(`接入后,AI 可通过工具说明自行加入、介绍职责、寻找同伴并参与协作。`,`Once connected, AI can use the tool instructions to join, introduce its role, find peers and collaborate.`)),1)],64)):(r(),x(p,{key:0},[y(`label`,Xe,[o(m(_(k)(`参与端本地工作区`,`Worker local workspace`)),1),s(y(`input`,{"onUpdate:modelValue":n[4]||=e=>E.value=e,placeholder:_(k)(`填写参与者电脑上的路径`,`Path on the participant’s computer`)},null,8,Ze),[[f,E.value]])]),t.room.seats.find(e=>e.id===v.value?.seatId)?.execution?.permission===`workspace-write`?(r(),x(`label`,Qe,[s(y(`input`,{"onUpdate:modelValue":n[5]||=e=>j.value=e,type:`checkbox`},null,512),[[d,j.value]]),o(` `+m(_(k)(`工作端用户明确允许写入此工作区`,`The worker’s user explicitly permits writing to this workspace`)),1)])):u(``,!0),t.room.seats.find(e=>e.id===v.value?.seatId)?.runtime===`a2a`?(r(),x(`label`,$e,[o(m(_(k)(`A2A 端点`,`A2A endpoint`)),1),s(y(`input`,{"onUpdate:modelValue":n[6]||=e=>M.value=e,type:`url`,placeholder:`https://…`},null,512),[[f,M.value]])])):u(``,!0),t.room.seats.find(e=>e.id===v.value?.seatId)?.runtime===`pi`?(r(),x(`label`,et,[o(m(_(k)(`参与电脑上的 Ollama 模型`,`Ollama model on participant computer`)),1),s(y(`input`,{"onUpdate:modelValue":n[7]||=e=>P.value=e,placeholder:`fuli-roundtable-qwen3-32k:latest`},null,512),[[f,P.value]])])):u(``,!0),y(`p`,null,m(_(k)(`在参与端 PowerShell 中,先设置环境变量,再启动工作端:`,`In the worker’s PowerShell, set the environment variable and start the worker:`)),1),y(`pre`,null,[y(`code`,null,`$env:FULI_ROUNDTABLE_TOKEN = '<`+m(_(k)(`粘贴席位凭据`,`PASTE_SEAT_CREDENTIAL`))+`>'
|
|
2
|
-
`+m(z()),1)]),y(`button`,{type:`button`,onClick:n[8]||=e=>R(z(),`command`)},m(T.value===`command`?_(k)(`命令已复制`,`Command copied`):_(k)(`复制工作端命令`,`Copy worker command`)),1),y(`p`,tt,m(_(k)(`默认只读。实施写入还需工作端用户明确授权。Grok 需要工作端配置 XAI_API_KEY;A2A 需要配置可验证的端点。`,`Workers default to read only. Writing also requires explicit permission from the worker’s user. Grok requires XAI_API_KEY on the worker; A2A requires a verified endpoint.`)),1)],64)),y(`p`,it,m(_(k)(`协调端地址`,`Coordinator URL`))+`: `+m(D.value)+` · `+m(_(k)(`圆桌`,`Room`))+`: `+m(t.room.id)+` · `+m(_(k)(`席位`,`Seat`))+`: `+m(v.value.seatId),1)])):u(``,!0)]))}}),ot={class:`rt-panel`,"aria-labelledby":`rt-results-title`},st={class:`rt-section-heading`},ct={id:`rt-results-title`},lt={key:0,class:`rt-tag`},ut={class:`rt-message-body`},dt={class:`rt-muted`},ft={key:0,class:`rt-advanced`},pt={class:`rt-message-body`},mt={class:`rt-muted`},ht={key:1,class:`rt-empty`},gt={key:2,class:`rt-table-scroll`},_t={key:3,class:`rt-muted`},vt={class:`rt-advanced`},yt={class:`rt-message-body`},bt={class:`rt-message-body`},xt={key:4,class:`rt-muted`},St={key:5,class:`rt-artifacts`},Ct={key:6,class:`rt-muted`},wt={class:`rt-muted`},Tt={key:7,class:`rt-table-scroll`},Et={"data-testid":`runtime-receipts`},Dt={key:8,class:`rt-empty`,"data-testid":`no-runtime-receipts`},Ot=b({__name:`RoundtableResults`,props:{snapshot:{}},setup(e){let t=e,n=l(()=>t.snapshot.messages.filter(e=>e.actual)),a=l(()=>t.snapshot.messages.filter(e=>e.kind===`dissent`)),s=l(()=>[...t.snapshot.outcome?.artifacts??[],...t.snapshot.tasks.flatMap(e=>e.artifacts??[])]),c=e=>t.snapshot.room.seats.find(t=>t.id===e)?.name??e??k(`系统`,`System`);function d(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;if(typeof t.body==`string`)return t.body;if(typeof t.reason==`string`)return t.reason}return j(e)}function f(e){return e==null?k(`未报告`,`Not reported`):typeof e==`string`?e:JSON.stringify(e,null,2)}function h(e){return!e||!Object.keys(e).length?`-`:Object.entries(e).filter(e=>{let t=e[1];return typeof t==`number`&&Number.isSafeInteger(t)&&t>=0}).map(([e,t])=>`${e}: ${t}`).join(` · `)||`-`}return(t,l)=>(r(),x(`section`,ot,[y(`div`,st,[y(`h2`,ct,m(_(k)(`结果与证据`,`Results and evidence`)),1),e.snapshot.outcome?(r(),x(`span`,lt,m(_(A)(e.snapshot.outcome.acceptance)),1)):u(``,!0)]),e.snapshot.outcome?(r(),x(p,{key:0},[y(`p`,ut,m(e.snapshot.outcome.body),1),y(`p`,dt,m(_(k)(`Agent 报告的结论保留为报告;人工验收和任务验证分别记录。`,`Agent conclusions remain reports. Human acceptance and task verification are recorded separately.`)),1),e.snapshot.outcome.verification?.reported==null?u(``,!0):(r(),x(`details`,ft,[y(`summary`,null,m(_(k)(`汇总验证报告`,`Outcome verification report`)),1),y(`p`,pt,m(f(e.snapshot.outcome.verification.reported)),1),y(`p`,mt,m(e.snapshot.outcome.verification.confirmed?_(k)(`服务端记录为已确认`,`Recorded as confirmed by server`):_(k)(`参与端报告,尚未确认`,`Participant report, not confirmed`)),1)]))],64)):(r(),x(`p`,ht,m(_(k)(`尚未提交最终结论。讨论、任务报告与实际执行记录会持续保留。`,`No final outcome has been submitted. Discussion, task reports and execution records are preserved.`)),1)),y(`h3`,null,m(_(k)(`任务`,`Tasks`)),1),e.snapshot.tasks.length?(r(),x(`div`,gt,[y(`table`,null,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,m(_(k)(`任务 / 阶段`,`Task / phase`)),1),y(`th`,null,m(_(k)(`负责人`,`Assignee`)),1),y(`th`,null,m(_(k)(`权限`,`Permission`)),1),y(`th`,null,m(_(k)(`状态`,`Status`)),1),y(`th`,null,m(_(k)(`依赖`,`Dependencies`)),1)])]),y(`tbody`,null,[(r(!0),x(p,null,i(e.snapshot.tasks,e=>(r(),x(`tr`,{key:e.id},[y(`td`,null,[o(m(e.title||e.id),1),y(`small`,null,m(_(A)(e.phase)),1)]),y(`td`,null,m(c(e.seatId)),1),y(`td`,null,m(_(A)(e.permission)),1),y(`td`,null,m(_(A)(e.status)),1),y(`td`,null,m(e.dependencies?.join(`, `)||`—`),1)]))),128))])])])):(r(),x(`p`,_t,m(_(k)(`本圆桌尚无执行任务。讨论消息不算工作进程执行。`,`No execution tasks in this room. Discussion messages are not worker execution.`)),1)),(r(!0),x(p,null,i(e.snapshot.tasks.filter(e=>e.verification!=null),e=>(r(),x(`div`,{key:e.id},[y(`details`,vt,[y(`summary`,null,m(_(k)(`任务验证报告`,`Task verification report`))+` · `+m(e.title||e.id),1),y(`p`,yt,m(f(e.verification)),1)])]))),128)),y(`h3`,null,m(_(k)(`保留的分歧`,`Retained dissent`)),1),(r(!0),x(p,null,i(a.value,e=>(r(),x(`article`,{key:e.id,class:`rt-dissent`},[y(`strong`,null,m(c(e.seatId))+` · #`+m(e.seq),1),y(`p`,bt,m(e.body),1)]))),128)),(r(!0),x(p,null,i(e.snapshot.outcome?.dissent??[],(e,t)=>(r(),x(`p`,{key:t,class:`rt-message-body`},m(d(e)),1))),128)),!a.value.length&&!e.snapshot.outcome?.dissent?.length?(r(),x(`p`,xt,m(_(k)(`尚未记录分歧。`,`No dissent recorded.`)),1)):u(``,!0),y(`h3`,null,m(_(k)(`产物引用`,`Artifact references`)),1),s.value.length?(r(),x(`ul`,St,[(r(!0),x(p,null,i(s.value,(e,t)=>(r(),x(`li`,{key:t},m(_(j)(e)),1))),128))])):(r(),x(`p`,Ct,m(_(k)(`尚无产物引用。`,`No artifact references reported.`)),1)),y(`h3`,null,m(_(k)(`实际运行回执`,`Actual runtime receipts`)),1),y(`p`,wt,m(_(k)(`只展示提交了运行来源的回执;来源由参与端报告,未独立验证运行时身份。加入、选择平台或配置席位不产生执行行;用量缺失时显示 -。`,`Only submitted runtime source receipts appear here. Sources are participant reports; runtime identity is not independently verified. Joining or configuring a seat does not create an execution row; missing usage displays -.`)),1),n.value.length?(r(),x(`div`,Tt,[y(`table`,Et,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,m(_(k)(`席位 / 消息`,`Seat / message`)),1),y(`th`,null,m(_(k)(`报告的应用`,`Reported application`)),1),y(`th`,null,m(_(k)(`报告的模型`,`Reported model`)),1),y(`th`,null,m(_(k)(`会话`,`Session`)),1),y(`th`,null,m(_(k)(`用量`,`Usage`)),1),y(`th`,null,m(_(k)(`证据来源`,`Provenance`)),1),y(`th`,null,m(_(k)(`时间`,`Time`)),1)])]),y(`tbody`,null,[(r(!0),x(p,null,i(n.value,e=>(r(),x(`tr`,{key:e.id},[y(`td`,null,[o(m(c(e.seatId)),1),y(`small`,null,`#`+m(e.seq)+` · `+m(_(A)(e.kind)),1)]),y(`td`,null,m(e.actual?.applicationLabel||e.actual?.reportedApplication||e.actual?.sourceApplication||_(k)(`未知`,`Unknown`)),1),y(`td`,null,m(e.actual?.model||_(k)(`未知`,`Unknown`)),1),y(`td`,null,m(e.actual?.sessionId||_(k)(`未知`,`Unknown`)),1),y(`td`,null,m(h(e.actual?.usage)),1),y(`td`,null,[o(m(_(k)(`参与端报告`,`Participant reported`)),1),y(`small`,null,m(_(k)(`身份未独立验证`,`Identity not independently verified`)),1)]),y(`td`,null,m(_(O)(e.createdAt)),1)]))),128))])])])):(r(),x(`p`,Dt,m(_(k)(`尚无实际运行回执。`,`No actual runtime receipts yet.`)),1))]))}}),kt={class:`rt-panel rt-event-details`},At={class:`rt-muted`},jt={key:0,class:`rt-table-scroll`},Mt={"data-testid":`turn-attempts`},Nt={key:1,class:`rt-muted`},Pt={class:`rt-muted`},Ft={class:`rt-message-body`},It={key:2,class:`rt-muted`},Lt={class:`rt-events`},Rt={key:0},zt=b({__name:`RoundtableEvents`,props:{snapshot:{}},setup(e){let t=e,n=e=>t.snapshot.room.seats.find(t=>t.id===e)?.name??e;return(t,a)=>(r(),x(`details`,kt,[y(`summary`,null,m(_(k)(`回合尝试、恢复与历史事件`,`Turn attempts, recovery and history`)),1),y(`p`,At,m(_(k)(`领取回合代表运行租约。下表保留失败、受阻、中断与取消请求,领取本身不证明已调用模型。`,`Claiming a turn creates a lease. This history retains failed, blocked and interrupted attempts and cancellation requests. A claim alone does not prove model execution.`)),1),e.snapshot.attempts?.length?(r(),x(`div`,jt,[y(`table`,Mt,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,m(_(k)(`参与者`,`Participant`)),1),y(`th`,null,m(_(k)(`尝试`,`Attempt`)),1),y(`th`,null,m(_(k)(`状态`,`Status`)),1),y(`th`,null,m(_(k)(`领取时间`,`Claimed at`)),1),y(`th`,null,m(_(k)(`结束时间`,`Finished at`)),1)])]),y(`tbody`,null,[(r(!0),x(p,null,i(e.snapshot.attempts,e=>(r(),x(`tr`,{key:`${e.turnId}:${e.id}`},[y(`td`,null,m(n(e.seatId)),1),y(`td`,null,m(e.id),1),y(`td`,null,m(_(A)(e.status)),1),y(`td`,null,m(_(O)(e.startedAt)),1),y(`td`,null,m(e.finishedAt?_(O)(e.finishedAt):`—`),1)]))),128))])])])):(r(),x(`p`,Nt,m(_(k)(`尚无回合尝试。`,`No turn attempts yet.`)),1)),y(`h3`,null,m(_(k)(`过期结果存档`,`Stale result archive`)),1),y(`p`,Pt,m(_(k)(`晚到结果保留在历史中,不替代当前讨论或交付结论。`,`Late results remain in history and do not replace current discussion or delivery outcomes.`)),1),(r(!0),x(p,null,i(e.snapshot.lateResults??[],e=>(r(),x(`article`,{key:`${e.turnId}:${e.attemptId}`,class:`rt-message`},[y(`strong`,null,m(n(e.seatId))+` · `+m(_(O)(e.receivedAt)),1),y(`p`,Ft,m(e.body),1),y(`small`,null,m(e.turnId)+` / `+m(e.attemptId),1)]))),128)),e.snapshot.lateResults?.length?u(``,!0):(r(),x(`p`,It,m(_(k)(`没有过期结果。`,`No stale results.`)),1)),y(`h3`,null,m(_(k)(`状态事件`,`Status events`)),1),y(`ol`,Lt,[(r(!0),x(p,null,i(e.snapshot.events??[],e=>(r(),x(`li`,{key:e.id},[y(`span`,null,m(_(A)(e.kind)),1),o(` · `+m(_(O)(e.createdAt)),1),e.kind===`cancellation_requested`&&e.confirmed!==!0?(r(),x(`small`,Rt,` · `+m(_(k)(`取消尚未确认`,`Cancellation not confirmed`)),1)):u(``,!0)]))),128))])]))}}),Bt={class:`rt-detail`},Vt={class:`rt-panel rt-room-heading`},Ht={class:`rt-section-heading`},Ut={class:`rt-eyebrow`},Wt=[`data-status`],Gt={class:`rt-meta`},Kt={key:0,class:`rt-warning`},qt={class:`rt-actions`},Jt=[`disabled`],Yt=[`disabled`],Xt=[`disabled`],Zt=[`disabled`],Qt=[`disabled`],$t={key:1,class:`rt-muted`},en={key:3,class:`rt-confirm`},tn={class:`rt-field`},nn=[`disabled`],rn={key:4,class:`rt-error`,role:`alert`},an={key:5,class:`rt-advanced`},on={class:`rt-muted`},sn={class:`rt-limit-form`},cn={class:`rt-field`},ln={class:`rt-field`},un={class:`rt-field`},dn={class:`rt-field`},fn=[`disabled`],pn={class:`rt-panel`,"aria-labelledby":`rt-messages-title`},mn={class:`rt-section-heading`},hn={id:`rt-messages-title`},gn={key:0,class:`rt-current-turn`},_n={key:0},vn={class:`rt-messages`,"aria-live":`polite`,"aria-relevant":`additions`},yn={class:`rt-section-heading`},bn={class:`rt-message-body`},xn={key:0,class:`rt-empty`},Sn=[`disabled`],Cn={class:`rt-field`},wn=[`placeholder`],Tn=[`disabled`],En={key:1},Dn={key:3,class:`rt-advanced`},On={class:`rt-muted`},kn={class:`rt-field`},An={class:`rt-actions`},jn=[`disabled`],Mn=[`disabled`],Nn=[`disabled`],Pn={key:0,class:`rt-panel`},Fn=[`disabled`],In={key:0,class:`rt-confirm`},Ln=[`disabled`],Rn=b({__name:`RoundtableDetail`,props:{snapshot:{},refreshing:{type:Boolean}},emits:[`refresh`],setup(e,{emit:t}){let d=e,v=t,b=c(``),w=c(``),T=c(``),E=c(``),D=c(!1),j=c(!1),M=c(3),P=c(30),F=c(30),I=c(5),L=l(()=>d.snapshot.room),R=l(()=>[`concluded`,`failed`,`cancelled`].includes(L.value.status)),z=l(()=>L.value.seats.every(e=>e.joinedAt)),B=l(()=>L.value.status===`active`&&L.value.phase===`discussion`&&(L.value.round??1)>1&&d.snapshot.currentTurn?.status===`pending`&&L.value.phaseIndex===0),V=l(()=>[`paused`,`waiting_input`].includes(L.value.status)&&d.snapshot.currentTurn&&![`pending`,`claimed`].includes(d.snapshot.currentTurn.status)),H=l(()=>d.snapshot.currentTurn&&d.snapshot.currentTurn.status!==`claimed`&&[`discussion`,`planning`].includes(L.value.phase)),U=l(()=>!d.snapshot.currentTurn||[`pending`,`claimed`].includes(d.snapshot.currentTurn.status)),W=e=>L.value.seats.find(t=>t.id===e)?.name??e??k(`系统`,`System`);a(()=>L.value.id,()=>{b.value=``,w.value=``,D.value=!1,j.value=!1}),a(()=>`${L.value.id}:${JSON.stringify(L.value.limits)}`,()=>{let e=L.value.limits;M.value=e.maxRounds,P.value=e.maxMessages,F.value=e.maxDurationMs/6e4,I.value=e.turnTimeoutMs/6e4},{immediate:!0});async function G(){if(!T.value){T.value=`update_limits`,w.value=``;try{await N.control(L.value.id,`update_limits`,L.value.revision,``,{maxRounds:M.value,maxMessages:P.value,maxDurationMs:Math.round(F.value*6e4),turnTimeoutMs:Math.round(I.value*6e4)}),v(`refresh`)}catch(e){w.value=e instanceof Error?e.message:k(`更新停止条件失败`,`Could not update limits`),v(`refresh`)}finally{T.value=``}}}async function K(e){if(!T.value){T.value=e,w.value=``;try{await N.control(L.value.id,e,L.value.revision,E.value.trim()),D.value=!1,j.value=!1,E.value=``,v(`refresh`)}catch(e){w.value=e instanceof Error?e.message:k(`操作失败`,`Action failed`),v(`refresh`)}finally{T.value=``}}}async function ee(){if(!(!b.value.trim()||T.value)){T.value=`message`,w.value=``;try{await N.message(L.value.id,b.value.trim()),b.value=``,v(`refresh`)}catch(e){w.value=e instanceof Error?e.message:k(`发送失败`,`Could not send`)}finally{T.value=``}}}let te={start:`开始圆桌 · Starting roundtable`,pause:`暂停圆桌 · Pausing roundtable`,resume:`恢复圆桌 · Resuming roundtable`,stop:`停止圆桌 · Stopping roundtable`,advance_phase:`推进圆桌阶段 · Advancing roundtable phase`,next_round:`开启下一轮讨论 · Starting next discussion round`,retry_turn:`重试当前回合 · Retrying current turn`,skip_turn:`记录跳过回合 · Recording skipped turn`,complete:`记录人工验收 · Recording human acceptance`,update_limits:`更新圆桌停止条件 · Updating roundtable limits`};return(t,a)=>(r(),x(`div`,Bt,[y(`section`,Vt,[y(`div`,Ht,[y(`span`,Ut,m(_(A)(L.value.mode))+` · `+m(L.value.binding?.projectId||_(k)(`独立临时任务`,`Independent temporary task`)),1),y(`span`,{class:`rt-tag`,"data-status":L.value.status},m(_(A)(L.value.status)),9,Wt)]),y(`h1`,null,m(L.value.goal),1),y(`div`,Gt,[y(`span`,null,m(_(k)(`阶段`,`Phase`))+`: `+m(_(A)(L.value.phase)),1),y(`span`,null,m(_(k)(`讨论轮数`,`Discussion rounds`))+`: `+m(L.value.round??0)+` / `+m(L.value.limits.maxRounds),1),y(`span`,null,m(_(k)(`Agent 发言`,`Agent messages`))+`: `+m(L.value.agentMessageCount??0)+` / `+m(L.value.limits.maxMessages),1),y(`span`,null,m(_(k)(`总时限`,`Time limit`))+`: `+m(Math.round(L.value.limits.maxDurationMs/6e4))+` `+m(_(k)(`分钟`,`min`)),1)]),L.value.stopReason?(r(),x(`p`,Kt,m(_(k)(`当前原因`,`Current reason`))+`: `+m(L.value.stopReason),1)):u(``,!0),y(`div`,qt,[L.value.status===`draft`?(r(),x(`button`,{key:0,class:`rt-primary`,type:`button`,disabled:!!T.value||!z.value,onClick:a[0]||=e=>K(`start`)},m(_(k)(`开始圆桌`,`Start roundtable`)),9,Jt)):u(``,!0),L.value.status===`active`?(r(),x(`button`,{key:1,type:`button`,disabled:!!T.value,onClick:a[1]||=e=>K(`pause`)},m(_(k)(`暂停`,`Pause`)),9,Yt)):u(``,!0),[`paused`,`waiting_auth`,`waiting_input`].includes(L.value.status)&&!(L.value.phase===`synthesis`&&e.snapshot.outcome&&!e.snapshot.currentTurn)?(r(),x(`button`,{key:2,type:`button`,disabled:!!T.value||!U.value,onClick:a[2]||=e=>K(`resume`)},m(_(k)(`恢复`,`Resume`)),9,Xt)):u(``,!0),R.value?u(``,!0):(r(),x(`button`,{key:3,type:`button`,disabled:!!T.value,onClick:a[3]||=e=>D.value=!D.value},m(_(k)(`停止`,`Stop`)),9,Zt)),y(`button`,{type:`button`,disabled:e.refreshing||!!T.value,onClick:a[4]||=e=>v(`refresh`)},m(_(k)(`刷新`,`Refresh`)),9,Qt)]),L.value.status===`draft`&&!z.value?(r(),x(`p`,$t,m(_(k)(`先邀请所有席位,在各参与端完成预检并加入后开始。选择平台不会自动启动工作端。`,`Invite every seat and complete preflight and joining on each worker before starting. Choosing an adapter does not start a worker.`)),1)):u(``,!0),T.value&&T.value!==`message`?(r(),S(C,{key:2,variant:`inline`,label:te[T.value]||`更新圆桌 · Updating roundtable`},null,8,[`label`])):u(``,!0),D.value?(r(),x(`div`,en,[y(`p`,null,m(_(k)(`停止将拒绝新回合并请求取消当前运行。外部进程是否已取消,以工作端回执为准。`,`Stopping blocks new turns and requests cancellation of the current run. Worker receipts confirm whether external execution stopped.`)),1),y(`label`,tn,[o(m(_(k)(`停止原因(可选)`,`Stop reason (optional)`)),1),s(y(`input`,{"onUpdate:modelValue":a[5]||=e=>E.value=e,maxlength:`2000`},null,512),[[f,E.value]])]),y(`button`,{type:`button`,disabled:!!T.value,onClick:a[6]||=e=>K(`stop`)},m(_(k)(`确认停止`,`Confirm stop`)),9,nn)])):u(``,!0),w.value?(r(),x(`p`,rn,m(w.value),1)):u(``,!0),R.value?u(``,!0):(r(),x(`details`,an,[y(`summary`,null,m(_(k)(`由你修改停止条件`,`Change limits explicitly`)),1),y(`p`,on,m(_(k)(`修改后仍需明确恢复;总时限从最初开始时间计算。服务端限制可设置的最大预算,Agent 不会自动扩展。`,`After updating, resume explicitly. Total duration is measured from the original start. The server caps the allowed budget; agents do not increase it automatically.`)),1),y(`form`,{class:`rt-budget-form`,onSubmit:h(G,[`prevent`])},[y(`div`,sn,[y(`label`,cn,[o(m(_(k)(`讨论轮数`,`Discussion rounds`)),1),s(y(`input`,{"onUpdate:modelValue":a[7]||=e=>M.value=e,type:`number`,min:`1`,max:`3`,required:``},null,512),[[f,M.value,void 0,{number:!0}]])]),y(`label`,ln,[o(m(_(k)(`Agent 发言上限`,`Agent message limit`)),1),s(y(`input`,{"onUpdate:modelValue":a[8]||=e=>P.value=e,type:`number`,min:`1`,max:`30`,required:``},null,512),[[f,P.value,void 0,{number:!0}]])]),y(`label`,un,[o(m(_(k)(`总时限(分钟)`,`Total minutes`)),1),s(y(`input`,{"onUpdate:modelValue":a[9]||=e=>F.value=e,type:`number`,min:`0.1`,step:`0.1`,max:`30`,required:``},null,512),[[f,F.value,void 0,{number:!0}]])]),y(`label`,dn,[o(m(_(k)(`单回合(分钟)`,`Minutes per turn`)),1),s(y(`input`,{"onUpdate:modelValue":a[10]||=e=>I.value=e,type:`number`,min:`0.1`,step:`0.1`,max:`5`,required:``},null,512),[[f,I.value,void 0,{number:!0}]])])]),y(`button`,{type:`submit`,disabled:!!T.value},m(_(k)(`确认修改停止条件`,`Confirm limit changes`)),9,fn)],32)]))]),n(at,{room:L.value,"active-seat-id":e.snapshot.currentTurn?.seatId,onChanged:a[11]||=e=>v(`refresh`)},null,8,[`room`,`active-seat-id`]),y(`section`,pn,[y(`div`,mn,[y(`h2`,hn,m(_(k)(`公开讨论`,`Shared discussion`)),1),y(`span`,null,m(e.snapshot.messages.length)+` `+m(_(k)(`条记录`,`records`)),1)]),e.snapshot.currentTurn?(r(),x(`div`,gn,[y(`strong`,null,m(_(k)(`当前回合`,`Current turn`))+` · `+m(W(e.snapshot.currentTurn.seatId)),1),y(`span`,null,m(_(A)(e.snapshot.currentTurn.status))+` · `+m(_(A)(e.snapshot.currentTurn.phase)),1),e.snapshot.currentTurn.deadline?(r(),x(`small`,_n,m(_(k)(`期限`,`Deadline`))+`: `+m(_(O)(e.snapshot.currentTurn.deadline)),1)):u(``,!0)])):u(``,!0),y(`div`,vn,[(r(!0),x(p,null,i(e.snapshot.messages,e=>(r(),x(`article`,{key:e.id,class:g([`rt-message`,{"rt-message-user":[`user`,`human`].includes(e.kind),"rt-message-system":e.kind===`system`}])},[y(`div`,yn,[y(`strong`,null,[o(m(e.kind===`human`?_(k)(`你`,`You`):W(e.seatId)),1),e.toSeatId?(r(),x(p,{key:0},[o(` → `+m(W(e.toSeatId)),1)],64)):u(``,!0)]),y(`span`,null,m(_(A)(e.kind))+` · #`+m(e.seq),1)]),y(`p`,bn,m(e.body),1),y(`small`,null,m(_(O)(e.createdAt)),1)],2))),128)),e.snapshot.messages.length?u(``,!0):(r(),x(`p`,xn,m(_(k)(`这里会保存按顺序发布的提案、审查、交接和补充要求。`,`Ordered proposals, reviews, handoffs and your additions will appear here.`)),1))]),e.snapshot.hasMore?(r(),x(`button`,{key:1,type:`button`,disabled:e.refreshing,onClick:a[12]||=e=>v(`refresh`)},m(_(k)(`读取后续消息`,`Load remaining messages`)),9,Sn)):u(``,!0),R.value?u(``,!0):(r(),x(`form`,{key:2,class:`rt-input-form`,onSubmit:h(ee,[`prevent`])},[y(`label`,Cn,[o(m(_(k)(`补充要求`,`Add a requirement`)),1),s(y(`textarea`,{"onUpdate:modelValue":a[13]||=e=>b.value=e,maxlength:`16000`,rows:`3`,placeholder:_(k)(`所有获授权席位可见。不要填写凭据或他人的私有记忆。`,`Visible to all authorized seats. Keep credentials and others’ private memory out.`)},null,8,wn),[[f,b.value]])]),y(`button`,{type:`submit`,disabled:!b.value.trim()||!!T.value},[T.value===`message`?(r(),S(C,{key:0,variant:`inline`,label:`发送补充要求 · Sending requirement`})):(r(),x(`span`,En,m(_(k)(`发送`,`Send`)),1))],8,Tn)],32)),R.value?u(``,!0):(r(),x(`details`,Dn,[y(`summary`,null,m(_(k)(`主持与恢复操作`,`Moderation and recovery`)),1),y(`p`,On,m(_(k)(`每位参与者完成回合后自动安排下一位和下一轮。完整一轮之后,可在下一轮开始前提前推进阶段。服务端检查阶段、预算与任务依赖,必需实施和审查不能跳过。`,`Turns and rounds advance automatically as participants finish. After a complete round, you may advance the phase before the next round starts. The server checks phases, limits and dependencies; required implementation and review cannot be skipped.`)),1),y(`label`,kn,[o(m(_(k)(`操作原因(跳过回合时必填)`,`Reason (required when skipping a turn)`)),1),s(y(`input`,{"onUpdate:modelValue":a[14]||=e=>E.value=e,maxlength:`2000`},null,512),[[f,E.value]])]),y(`div`,An,[y(`button`,{type:`button`,disabled:!!T.value||!B.value,onClick:a[15]||=e=>K(`advance_phase`)},m(_(k)(`提前推进阶段`,`Advance phase early`)),9,jn),y(`button`,{type:`button`,disabled:!!T.value||!V.value,onClick:a[16]||=e=>K(`retry_turn`)},m(_(k)(`重试回合`,`Retry turn`)),9,Mn),y(`button`,{type:`button`,disabled:!!T.value||!H.value||!E.value.trim(),onClick:a[17]||=e=>K(`skip_turn`)},m(_(k)(`记录并跳过回合`,`Record and skip turn`)),9,Nn)])]))]),n(Ot,{snapshot:e.snapshot},null,8,[`snapshot`]),n(zt,{snapshot:e.snapshot},null,8,[`snapshot`]),L.value.status===`waiting_input`&&L.value.phase===`synthesis`&&e.snapshot.outcome?(r(),x(`section`,Pn,[y(`h2`,null,m(_(k)(`由你验收`,`Your acceptance`)),1),y(`p`,null,m(_(k)(`检查结论、保留分歧、产物和验证报告后,明确记录是否接受交付。人工接受不会制造模型用量或工作进程证据。`,`Review the conclusion, dissent, artifacts and verification reports before accepting delivery. Acceptance does not create model usage or worker evidence.`)),1),y(`button`,{type:`button`,disabled:!!T.value,onClick:a[18]||=e=>j.value=!j.value},m(_(k)(`检查并接受交付`,`Review and accept delivery`)),9,Fn),j.value?(r(),x(`div`,In,[y(`p`,null,m(_(k)(`此操作记录你的人工验收,并结束本圆桌。`,`This records your acceptance and concludes this room.`)),1),y(`button`,{class:`rt-primary`,type:`button`,disabled:!!T.value,onClick:a[19]||=e=>K(`complete`)},m(_(k)(`确认接受交付`,`Confirm acceptance`)),9,Ln),y(`button`,{type:`button`,onClick:a[20]||=e=>j.value=!1},m(_(k)(`继续检查`,`Keep reviewing`)),1)])):u(``,!0)])):u(``,!0)]))}});function zn(t){let n=c([]),r=c(null),i=c(!1),o=c(``),s=c(!1),l=0,u=!1,d;async function f(){if(i.value||u)return;let e=l,a=t.value;i.value=!0;try{let t=r.value?.messages.at(-1)?.seq??0,i=a?await N.read(a,t):await N.list();if(u||e!==l)return;if(`room`in i){let e=new Map([...r.value?.messages??[],...i.messages].map(e=>[e.id,e]));r.value={...i,messages:[...e.values()].sort((e,t)=>e.seq-t.seq)}}else n.value=i.rooms;s.value=!0,o.value=``}catch(t){!u&&e===l&&(o.value=t instanceof Error?t.message:k(`读取圆桌失败`,`Could not read roundtable`))}finally{e===l&&(i.value=!1)}}function p(){u||(d=setTimeout(async()=>{await f(),p()},4e3))}return a(t,async()=>{l++,i.value=!1,r.value=null,o.value=``,s.value=!1;let e=l;d&&clearTimeout(d),await f(),e===l&&p()},{immediate:!0}),e(()=>{u=!0,l++,d&&clearTimeout(d)}),{rooms:n,snapshot:r,loading:i,loaded:s,error:o,refresh:f}}var Bn={class:`rt-workspace`},Vn={class:`rt-page-header`},Hn={class:`rt-breadcrumb`},Un={class:`rt-actions`},Wn={class:`rt-page-content`},Gn={key:0,class:`rt-error rt-panel`,role:`alert`},Kn=[`disabled`],qn={key:2,class:`rt-refresh-status`},Jn={class:`rt-intro`},Yn={class:`rt-panel`,"aria-labelledby":`rt-list-title`},Xn={class:`rt-section-heading`},Zn={id:`rt-list-title`},Qn=[`disabled`],$n={key:0,class:`rt-room-list`},er={class:`rt-section-heading`},tr={class:`rt-tag`},nr={key:1,class:`rt-empty`},rr=b({__name:`RoundtablesPage`,setup(e){let a=T(),s=w(),d=l(()=>typeof a.params.roomId==`string`?a.params.roomId:``),{rooms:f,snapshot:h,loading:g,loaded:v,error:b,refresh:j}=zn(d),M=c(!1),N=l(()=>d.value?!!h.value:v.value||M.value);async function P(e){M.value=!1,await s.push(`/roundtables/${encodeURIComponent(e)}`)}return(e,a)=>(r(),x(`main`,Bn,[y(`header`,Vn,[y(`div`,null,[n(_(E),{class:`rt-brand`,to:`/`},{default:t(()=>[a[4]||=o(`Fuli `,-1),y(`span`,null,m(_(k)(`复利`,``)),1)]),_:1}),y(`div`,Hn,[n(_(E),{to:`/roundtables`},{default:t(()=>[o(m(_(k)(`Agent 圆桌`,`Agent Roundtable`)),1)]),_:1})])]),y(`div`,Un,[d.value?(r(),S(_(E),{key:0,to:`/roundtables`},{default:t(()=>[o(m(_(k)(`全部圆桌`,`All roundtables`)),1)]),_:1})):u(``,!0),n(_(E),{to:`/project-agents`},{default:t(()=>[o(m(_(k)(`Agent 目录`,`Agent directory`)),1)]),_:1}),n(D)])]),y(`div`,Wn,[_(b)?(r(),x(`div`,Gn,[y(`strong`,null,m(_(k)(`读取失败,保留已加载内容`,`Could not refresh; loaded content is preserved`)),1),y(`p`,null,m(_(b)),1),y(`button`,{type:`button`,disabled:_(g),onClick:a[0]||=(...e)=>_(j)&&_(j)(...e)},m(_(k)(`重试`,`Retry`)),9,Kn)])):u(``,!0),_(g)&&!N.value?(r(),S(C,{key:1,label:d.value?`读取圆桌与公开消息 · Loading roundtable and shared messages`:`读取圆桌列表 · Loading roundtable list`},null,8,[`label`])):u(``,!0),_(g)&&N.value?(r(),x(`div`,qn,[n(C,{variant:`inline`,label:d.value?`刷新圆桌与公开消息 · Refreshing roundtable and shared messages`:`刷新圆桌列表 · Refreshing roundtable list`},null,8,[`label`])])):u(``,!0),_(h)?(r(),S(Rn,{key:_(h).room.id,snapshot:_(h),refreshing:_(g),onRefresh:_(j)},null,8,[`snapshot`,`refreshing`,`onRefresh`])):d.value?u(``,!0):(r(),x(p,{key:4},[y(`section`,Jn,[y(`div`,null,[y(`h1`,null,m(_(k)(`让不同 Agent 围绕同一个目标工作。`,`Bring different agents around one shared goal.`)),1),y(`p`,null,m(_(k)(`身份和长期知识由 Fuli 管理。本次讨论、分工、回合与结果留在圆桌里,执行由获授权的参与端完成。`,`Fuli manages identity and lasting knowledge. This roundtable keeps discussion, tasks, turns and outcomes; authorized participant workers perform execution.`)),1)]),y(`button`,{class:`rt-primary`,type:`button`,onClick:a[1]||=e=>M.value=!M.value},m(_(k)(`创建圆桌`,`Create roundtable`)),1)]),M.value?(r(),S(q,{key:0,onCreated:P,onCancel:a[2]||=e=>M.value=!1})):u(``,!0),y(`section`,Yn,[y(`div`,Xn,[y(`h2`,Zn,m(_(k)(`你的圆桌`,`Your roundtables`)),1),y(`button`,{type:`button`,disabled:_(g),onClick:a[3]||=(...e)=>_(j)&&_(j)(...e)},m(_(k)(`刷新`,`Refresh`)),9,Qn)]),_(f).length?(r(),x(`div`,$n,[(r(!0),x(p,null,i(_(f),e=>(r(),S(_(E),{key:e.id,class:`rt-room-card`,to:`/roundtables/${encodeURIComponent(e.id)}`},{default:t(()=>[y(`div`,er,[y(`span`,tr,m(_(A)(e.status)),1),y(`small`,null,m(_(A)(e.mode)),1)]),y(`h3`,null,m(e.goal),1),y(`p`,null,m(_(A)(e.phase))+` · `+m(e.seats.length)+` `+m(_(k)(`位参与者`,`participants`)),1),y(`small`,null,m(_(O)(e.updatedAt||e.createdAt)),1)]),_:2},1032,[`to`]))),128))])):!_(g)&&!_(b)?(r(),x(`p`,nr,m(_(k)(`还没有圆桌。创建一个目标明确的讨论或协作任务,邀请独立参与者加入。`,`No roundtables yet. Create a focused discussion or collaborative task and invite independent participants.`)),1)):u(``,!0)])],64))])]))}});export{rr as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.rt-workspace{color:#233b2c;background:#f5f7f5;min-height:100dvh}.rt-workspace *{box-sizing:border-box}.rt-page-header{background:#fff;border-bottom:1px solid #dde6df;justify-content:space-between;align-items:center;gap:20px;padding:22px max(24px,50% - 610px);display:flex}.rt-page-header>div:first-child{align-items:center;gap:24px;display:flex}.rt-brand{color:#315c43;font-size:23px;font-weight:750;text-decoration:none}.rt-brand span{font-size:14px}.rt-breadcrumb{align-items:center;gap:10px;display:flex}.rt-breadcrumb a,.rt-actions>a{color:#315c43;text-decoration:none}.rt-page-content{max-width:1220px;margin:0 auto;padding:28px 24px 64px}.rt-detail{gap:20px;display:grid}.rt-panel{background:#fff;border:1px solid #dce5de;border-radius:14px;min-width:0;margin-bottom:20px;padding:24px}.rt-detail .rt-panel{margin-bottom:0}.rt-section-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.rt-section-heading h2,.rt-section-heading h3{margin:0}.rt-panel h2{font-size:20px}.rt-panel h3{margin-top:26px;font-size:16px}.rt-panel p{line-height:1.7}.rt-muted,.rt-meta,.rt-panel small{color:#5e7165;font-size:13px}.rt-muted{overflow-wrap:anywhere}.rt-eyebrow{color:#53775e;letter-spacing:.02em;font-size:12px;font-weight:650}.rt-tag{color:#385b44;background:#f1f7f2;border:1px solid #d5e2d9;border-radius:20px;flex-shrink:0;padding:3px 9px;font-size:12px;display:inline-block}.rt-intro{justify-content:space-between;align-items:center;gap:30px;padding:15px 0 35px;display:flex}.rt-intro h1{letter-spacing:-.03em;max-width:24ch;margin:12px 0;font-size:clamp(26px,3vw,37px);line-height:1.35}.rt-intro p:last-child{color:#5e7165;max-width:75ch;font-size:14px;line-height:1.7}.rt-intro button{flex-shrink:0}.rt-workspace button{color:#315c43;min-height:38px;font:inherit;cursor:pointer;background:#fff;border:1px solid #bdcdbf;border-radius:7px;padding:8px 13px;font-size:13px}.rt-workspace button:hover:not(:disabled){background:#edf5ee}.rt-workspace button:disabled{opacity:.48;cursor:not-allowed}.rt-workspace button.rt-primary{color:#fff;background:#315c43;border-color:#315c43}.rt-workspace button.rt-primary:hover:not(:disabled){background:#244933}.rt-workspace :focus-visible{outline-offset:3px;outline:3px solid #a8c9b0}.rt-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rt-actions a{font-size:13px}.rt-field{gap:7px;min-width:0;margin:16px 0;font-size:13px;display:grid}.rt-field input,.rt-field textarea,.rt-field select{color:#233b2c;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #cbd9ce;border-radius:7px;padding:10px 11px;font-size:14px}.rt-field textarea{resize:vertical;line-height:1.6}.rt-seat-form{grid-template-columns:1fr 1fr 1.2fr auto;align-items:end;gap:12px;padding:4px 0;display:grid}.rt-seat-form .rt-field{margin:6px 0}.rt-seat-form>button{margin-bottom:6px}.rt-seat-permission{background:#f5f7f5;border-radius:7px;grid-column:1/-1;padding:10px 14px;font-size:13px}.rt-seat-permission label:not(.rt-field){align-items:center;gap:8px;display:flex}.rt-limit-form{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.rt-advanced{border:1px solid #dce5de;border-radius:8px;margin:22px 0;padding:16px}.rt-advanced summary{cursor:pointer;font-size:13px;font-weight:600}.rt-warning{color:#875b23;background:#fff8ed;border-radius:6px;padding:10px 14px;font-size:13px}.rt-error{color:#993e32;overflow-wrap:anywhere;background:#fff5f1}.rt-error:not(.rt-panel){border-radius:7px;padding:12px}.rt-empty{color:#617366;padding:20px 0;font-size:14px}.rt-room-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.rt-room-card{color:inherit;border:1px solid #dce5de;border-radius:10px;padding:18px;text-decoration:none;transition:border-color .15s}.rt-room-card:hover{border-color:#72947d}.rt-room-card h3{overflow-wrap:anywhere;margin-top:16px;font-size:16px}.rt-room-card p{font-size:13px}.rt-room-heading h1{overflow-wrap:anywhere;margin:20px 0;font-size:clamp(22px,3vw,30px);line-height:1.45}.rt-meta{flex-wrap:wrap;gap:12px 22px;margin:20px 0;display:flex}.rt-seats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.rt-seat{background:#fafcfb;border:1px solid #dce5de;border-radius:9px;min-width:0;padding:16px}.rt-seat-current{background:#f0f7f2;border-color:#71937b}.rt-seat p{margin:9px 0;font-size:13px}.rt-seat strong{overflow-wrap:anywhere}.rt-seat .rt-actions{gap:8px;margin-top:14px}.rt-seat button{padding:6px 9px;font-size:12px}.rt-invite,.rt-confirm{background:#f6faf7;border:1px solid #bfd1c3;border-radius:9px;margin-top:18px;padding:20px}.rt-invite h3{margin:0}.rt-invite pre{color:#eff7f0;white-space:pre-wrap;overflow-wrap:anywhere;background:#233b2c;border-radius:8px;padding:16px;font-size:12px;line-height:1.7}.rt-invite>label:not(.rt-field){font-size:13px;display:block}.rt-confirm button{margin-right:8px}.rt-current-turn{background:#f0f7f2;border-radius:8px;flex-wrap:wrap;gap:10px 16px;margin:18px 0;padding:14px;font-size:13px;display:flex}.rt-current-turn small{flex-basis:100%}.rt-messages{scrollbar-gutter:stable;max-height:680px;margin:20px 0;overflow:auto}.rt-message{border-bottom:1px solid #e6ede8;padding:18px 0}.rt-message .rt-section-heading span{color:#617366;font-size:12px}.rt-message-system{background:#fafcfb;border-radius:8px;padding:12px}.rt-message-user{border-left:3px solid #71937b;padding-left:14px}.rt-message-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.rt-table-scroll{max-width:100%;overflow-x:auto}.rt-table-scroll table{text-align:left;border-collapse:collapse;width:100%;font-size:12px}.rt-table-scroll th{white-space:nowrap;color:#5e7165;font-weight:600}.rt-table-scroll th,.rt-table-scroll td{overflow-wrap:anywhere;vertical-align:top;border-bottom:1px solid #e6ede8;max-width:250px;padding:13px 12px}.rt-table-scroll small{margin-top:5px;font-size:11px;display:block}.rt-dissent{border-left:3px solid #cea967;padding-left:16px;font-size:13px}.rt-artifacts{overflow-wrap:anywhere;padding-left:20px;font-size:13px;line-height:1.8}.rt-refresh-status{color:#5e7165;margin:0 0 16px;font-size:12px}.rt-capability-map ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:26px 0;padding:0;list-style:none;display:grid}.rt-capability-map li{border-left:2px solid #c4d7ca;padding-left:16px}.rt-capability-map li strong{margin-top:12px;font-size:16px;display:block}.rt-capability-map li p{color:#5e7165;font-size:13px}.rt-event-details>summary{cursor:pointer;font-size:15px;font-weight:650}.rt-events{color:#5e7165;padding-left:20px;font-size:12px;line-height:1.9}@media (width<=850px){.rt-seats,.rt-room-list,.rt-capability-map ol{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-page-header{flex-wrap:wrap;padding:18px 20px}.rt-intro{flex-direction:column;align-items:flex-start;gap:10px}.rt-limit-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.rt-page-content{padding:20px 14px 40px}.rt-panel{border-radius:10px;padding:18px 14px}.rt-seats,.rt-room-list,.rt-capability-map ol{grid-template-columns:1fr}.rt-page-header{gap:15px;padding:16px 14px}.rt-page-header>div:first-child,.rt-page-header .rt-actions{gap:14px}.rt-seat-form{grid-template-columns:1fr 1fr auto;gap:9px}.rt-seat-form>.rt-field:first-child,.rt-seat-permission{grid-column:1/-1}.rt-section-heading{align-items:flex-start}.rt-message .rt-section-heading{flex-wrap:wrap;gap:5px}.rt-invite{padding:14px}.rt-workspace button{min-height:42px}.rt-breadcrumb{font-size:14px}.rt-meta{gap:8px 14px}.rt-intro h1{font-size:27px}}@media (prefers-reduced-motion:reduce){.rt-room-card{transition:none}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,L as t,M as n,P as r,R as i,V as a,X as o,_ as s,a as c,b as l,d as u,h as d,it as f,j as p,k as m,m as h,n as ee,nt as g,tt as _,v,w as y,x as b}from"./i18n-D2CJkEYK.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],te={key:0,class:`searchable-select-search`},ne=[`placeholder`,`aria-label`],re=[`id`],ie=[`aria-selected`,`disabled`,`onClick`,`onKeydown`],ae={class:`searchable-select-option-copy`},oe={key:0},se={key:1,class:`searchable-select-empty`},k=y({__name:`SearchableSelect`,props:{modelValue:{},options:{},label:{},controlId:{default:void 0},placeholder:{default:void 0},searchPlaceholder:{default:void 0},searchable:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},name:{default:void 0}},emits:[`update:modelValue`,`change`],setup(y,{emit:k}){let A=y,j=k,M=o(null),N=o(null),P=o(null),F=o(null),I=o(!1),L=o(!1),R=o(``),z=t().replace(/[^A-Za-z0-9_-]/g,``),B=s(()=>A.label),V=s(()=>A.placeholder??c(`common.searchableSelect.placeholder`)),H=s(()=>A.searchPlaceholder??c(`common.searchableSelect.searchPlaceholder`)),U=s(()=>`${A.controlId||`searchable-select-${z}`}-options`),W=s(()=>A.options.find(({value:e})=>e===A.modelValue)??null),G=s(()=>A.searchable??A.options.length>5),K=s(()=>{let e=ee(),t=R.value.trim().toLocaleLowerCase(e);return t?A.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):A.options});i(()=>A.disabled,e=>{e&&J()}),p(()=>{document.addEventListener(`pointerdown`,X)}),e(()=>{document.removeEventListener(`pointerdown`,X)});async function ce(){I.value?J():await q()}async function q(){A.disabled||(R.value=``,pe(),I.value=!0,await m(),G.value?P.value?.focus():fe()?.focus())}function J({restoreFocus:e=!1}={}){I.value=!1,L.value=!1,R.value=``,e&&m(()=>N.value?.focus())}function Y(e){A.disabled||e.disabled||(j(`update:modelValue`,e.value),j(`change`,e.value),J({restoreFocus:!0}))}function le(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),q())}function ue(e){if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function de(e,t){if(e.key===`Enter`||e.key===` `){e.preventDefault(),Y(t);return}if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let n=Q(),r=n.indexOf(e.currentTarget);n[e.key===`Home`?0:e.key===`End`?n.length-1:e.key===`ArrowDown`?Math.min(n.length-1,r+1):Math.max(0,r-1)]?.focus()}function X(e){I.value&&!M.value?.contains(e.target)&&J()}function Z(e){let t=e.relatedTarget;t&&M.value?.contains(t)||queueMicrotask(()=>{I.value&&!M.value?.contains(document.activeElement)&&J()})}function Q(){return[...F.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function $(){return Q()[0]??null}function fe(){return Q().find(e=>e.getAttribute(`aria-selected`)===`true`)??$()}function pe(){let e=N.value?.getBoundingClientRect();L.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,t)=>(n(),b(`div`,{ref_key:`root`,ref:M,class:g([`searchable-select`,{open:I.value,"open-up":L.value,disabled:y.disabled}]),"data-select-id":y.controlId,onFocusout:Z},[v(`select`,{class:`searchable-select-native`,value:y.modelValue,name:y.name,required:y.required,disabled:y.disabled,tabindex:`-1`,"aria-hidden":`true`},[(n(!0),b(d,null,r(y.options,e=>(n(),b(`option`,{key:e.value,value:e.value,disabled:e.disabled},f(e.label),9,C))),128))],8,S),v(`button`,{ref_key:`trigger`,ref:N,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":I.value,"aria-controls":U.value,"aria-label":B.value,disabled:y.disabled,onPointerdown:t[0]||=h(()=>{},[`stop`]),onClick:h(ce,[`stop`]),onKeydown:le},[v(`span`,T,[v(`span`,E,f(W.value?.label||V.value),1),W.value?.meta?(n(),b(`small`,D,f(W.value.meta),1)):l(``,!0)]),t[3]||=v(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),v(`div`,{class:`searchable-select-panel`,hidden:!I.value},[G.value?(n(),b(`div`,te,[a(v(`input`,{ref_key:`searchInput`,ref:P,"onUpdate:modelValue":t[1]||=e=>R.value=e,type:`search`,autocomplete:`off`,placeholder:H.value,"aria-label":_(c)(`common.searchableSelect.searchAria`,{label:B.value}),onKeydown:ue},null,40,ne),[[u,R.value]])])):l(``,!0),v(`div`,{id:U.value,ref_key:`optionsList`,ref:F,class:`searchable-select-options`,role:`listbox`},[(n(!0),b(d,null,r(K.value,e=>(n(),b(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===y.modelValue,disabled:e.disabled,onMousedown:t[2]||=h(()=>{},[`prevent`]),onClick:t=>Y(e),onKeydown:t=>de(t,e)},[v(`span`,ae,[v(`strong`,null,f(e.label),1),e.meta?(n(),b(`small`,oe,f(e.meta),1)):l(``,!0)]),t[4]||=v(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ie))),128))],8,re),K.value.length===0?(n(),b(`p`,se,f(_(c)(`common.searchableSelect.noMatches`)),1)):l(``,!0)],8,O)],42,x))}});export{k as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.settings-fields[data-v-a4c2b855]{border:0;min-width:0;margin:0;padding:0;display:contents}.settings-view[data-v-a4c2b855]{background:var(--color-bg);padding-top:24px}.settings-content[data-v-a4c2b855]{gap:18px;width:min(1120px,100%);margin:0 auto;display:grid}.settings-form[data-v-a4c2b855]{gap:18px;display:grid}.settings-card[data-v-a4c2b855]{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:26px}.section-heading[data-v-a4c2b855]{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.settings-card h3[data-v-a4c2b855]{color:var(--color-ink);font-size:16px}.section-heading p[data-v-a4c2b855]{color:var(--color-muted);margin-top:5px;font-size:12px}.resource-totals[data-v-a4c2b855]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resource-totals article[data-v-a4c2b855]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;align-content:center;gap:7px;min-height:126px;padding:20px 22px;display:grid}.resource-totals span[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.resource-totals strong[data-v-a4c2b855]{color:var(--color-ink);letter-spacing:-.04em;font-size:clamp(25px,3vw,34px)}.resource-totals small[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.resource-breakdowns[data-v-a4c2b855]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;display:grid}.resource-group[data-v-a4c2b855]{gap:13px;display:grid}.resource-group h4[data-v-a4c2b855],.port-section h4[data-v-a4c2b855]{color:var(--color-ink);font-size:12px}.resource-row[data-v-a4c2b855]{gap:6px;display:grid}.resource-row>div[data-v-a4c2b855]{color:var(--color-muted);justify-content:space-between;gap:12px;font-size:12px;display:flex}.resource-row strong[data-v-a4c2b855]{color:var(--color-ink);font-weight:650}.resource-row i[data-v-a4c2b855]{background:var(--color-surface-subtle);border-radius:999px;height:5px;overflow:hidden}.resource-row b[data-v-a4c2b855]{border-radius:inherit;background:var(--color-muted);height:100%;display:block}.resource-group:last-child .resource-row b[data-v-a4c2b855]{background:var(--color-muted)}.resource-notes[data-v-a4c2b855]{color:var(--color-muted);flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:12px;display:flex}.restart-chip[data-v-a4c2b855]{border:1px solid var(--color-warning);color:var(--color-warning);background:var(--color-warning-soft);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.port-section[data-v-a4c2b855]{gap:13px;display:grid}.port-section+.port-section[data-v-a4c2b855]{border-top:1px solid var(--color-border);margin-top:25px;padding-top:22px}.development-section>div[data-v-a4c2b855]{align-items:center;gap:9px;display:flex}.development-section>div>span[data-v-a4c2b855]{color:var(--color-warning);background:var(--color-warning-soft);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.development-section>p[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.port-grid[data-v-a4c2b855]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.port-grid label[data-v-a4c2b855]{color:var(--color-muted);gap:7px;font-size:12px;display:grid}.port-grid input[data-v-a4c2b855]{width:100%}.port-grid small[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.behavior-card>h3[data-v-a4c2b855],.conversation-launcher-card>h3[data-v-a4c2b855]{margin-bottom:14px}.conversation-launcher-list[data-v-a4c2b855]{display:grid}.conversation-launcher-row[data-v-a4c2b855]{border-top:1px solid var(--color-border);padding:16px 0}.conversation-launcher-row[data-v-a4c2b855]:first-child{border-top:0}.conversation-launcher-heading[data-v-a4c2b855]{justify-content:space-between;align-items:center;gap:20px;min-height:34px;display:flex}.conversation-launcher-heading>span[data-v-a4c2b855]{gap:4px;display:grid}.conversation-launcher-heading strong[data-v-a4c2b855]{color:var(--color-ink);font-size:12px}.conversation-launcher-heading small[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.conversation-launcher-switch[data-v-a4c2b855]{color:var(--color-muted);align-items:center;gap:9px;font-size:12px;display:flex}.conversation-launcher-switch input[role=switch][data-v-a4c2b855]{margin:0}.conversation-launcher-note[data-v-a4c2b855]{max-width:760px;color:var(--color-muted);margin-top:9px;font-size:12px;line-height:1.45;display:block}.conversation-launcher-fields[data-v-a4c2b855]{grid-template-columns:minmax(150px,.7fr) minmax(160px,.8fr) minmax(280px,1.5fr);align-items:start;gap:12px;margin-top:14px;display:grid}.conversation-launcher-fields>label[data-v-a4c2b855]{min-width:0;color:var(--color-muted);grid-template-rows:18px 40px;align-content:start;gap:7px;font-size:12px;display:grid}.conversation-launcher-fields>label>span[data-v-a4c2b855]{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:18px;display:block;overflow:hidden}.conversation-launcher-fields code[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.conversation-launcher-fields[data-v-a4c2b855] .launcher-select{width:100%;min-width:0;height:40px}.conversation-launcher-fields input[data-v-a4c2b855]{width:100%}.conversation-launcher-fields[data-v-a4c2b855] .launcher-select .searchable-select-current{align-items:center}.conversation-launcher-fields[data-v-a4c2b855] .launcher-select .searchable-select-current-label{font-weight:500}.conversation-launcher-fields[data-v-a4c2b855] .launcher-select .searchable-select-panel{width:100%;min-width:0}.setting-list[data-v-a4c2b855]{display:grid}.setting-row[data-v-a4c2b855]{border-top:1px solid var(--color-border);cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.setting-row[data-v-a4c2b855]:first-child{border-top:0}.setting-row>span[data-v-a4c2b855]{gap:4px;display:grid}.setting-row strong[data-v-a4c2b855]{color:var(--color-ink);font-size:14px}.setting-row small[data-v-a4c2b855]{color:var(--color-muted);font-size:12px}.setting-row input[role=switch][data-v-a4c2b855],.conversation-launcher-switch input[role=switch][data-v-a4c2b855]{appearance:none;background:var(--color-muted);cursor:pointer;border-radius:999px;width:38px;height:21px;transition:background .18s;position:relative}.setting-row input[role=switch][data-v-a4c2b855]:after,.conversation-launcher-switch input[role=switch][data-v-a4c2b855]:after{content:"";background:var(--color-surface);border-radius:50%;width:17px;height:17px;transition:transform .18s;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 0 4px #0000002e}.setting-row input[role=switch][data-v-a4c2b855]:checked,.conversation-launcher-switch input[role=switch][data-v-a4c2b855]:checked{background:var(--color-accent)}.setting-row input[role=switch][data-v-a4c2b855]:checked:after,.conversation-launcher-switch input[role=switch][data-v-a4c2b855]:checked:after{transform:translate(17px,-50%)}.select-row .settings-select[data-v-a4c2b855]{width:180px;min-width:0}.select-row[data-v-a4c2b855] .settings-select .searchable-select-current{align-items:center}.select-row[data-v-a4c2b855] .settings-select .searchable-select-current-label{font-weight:500}.select-row[data-v-a4c2b855] .settings-select .searchable-select-arrow{border-width:1.5px;width:8px;height:8px;margin-right:1px}.select-row[data-v-a4c2b855] .settings-select .searchable-select-panel{width:100%;min-width:0}.settings-top-status[data-v-a4c2b855]{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:6px 16px;padding:0 4px 2px;font-size:12px;display:flex}.settings-top-status strong[data-v-a4c2b855]{color:var(--color-muted);font-weight:700}.settings-error[data-v-a4c2b855]{border-radius:var(--radius-control);color:var(--color-danger);background:var(--color-surface);padding:11px 13px;font-size:12px}@media (width<=900px){.port-grid[data-v-a4c2b855],.conversation-launcher-fields[data-v-a4c2b855]{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-launcher-template[data-v-a4c2b855]{grid-column:1/-1}}@media (width<=680px){.settings-card[data-v-a4c2b855]{padding:20px}.resource-totals[data-v-a4c2b855],.resource-breakdowns[data-v-a4c2b855],.port-grid[data-v-a4c2b855],.conversation-launcher-fields[data-v-a4c2b855]{grid-template-columns:1fr}.conversation-launcher-template[data-v-a4c2b855]{grid-column:auto}.select-row[data-v-a4c2b855]{flex-direction:column;align-items:flex-start;padding:14px 0}.select-row .settings-select[data-v-a4c2b855]{width:100%}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,M as r,P as i,R as a,S as ee,V as o,X as s,_ as c,a as l,b as u,c as d,d as f,h as p,i as m,it as h,j as te,m as ne,n as re,r as ie,rt as g,tt as _,v,w as ae,x as y,y as b}from"./i18n-D2CJkEYK.js";import{t as oe}from"./console-BtPqo79j.js";import{t as x}from"./GrowthLoading-KTjE2e50.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as se,n as C}from"./client-B2cRl-7c.js";import{t as w}from"./UiDisclosure-CWlC91Zt.js";import{t as T}from"./SearchableSelect-f7EHbyDL.js";import{i as ce,n as E,s as le,t as D}from"./conversation-launcher-settings-jkHRmWai.js";var ue=[`aria-label`],de={class:`settings-content`},fe={key:1,class:`settings-top-status`,role:`status`},pe={key:0},me={key:1},he=[`aria-busy`],ge=[`disabled`],_e={class:`settings-card behavior-card`},ve={class:`setting-list`},ye={class:`setting-row`},O=[`checked`],k={class:`setting-row`},A=[`checked`],j={class:`setting-row`},M={class:`setting-row select-row`},N={class:`setting-row select-row`},P={class:`setting-row select-row`},be={key:0,class:`restart-chip`},xe={class:`port-section`},Se={class:`port-grid`},Ce=[`onUpdate:modelValue`],we={class:`port-section development-section`},Te={class:`conversation-launcher-list`},Ee={class:`conversation-launcher-heading`},De={class:`conversation-launcher-switch`},Oe=[`onUpdate:modelValue`],ke={key:0,class:`conversation-launcher-note`},Ae={key:1,class:`conversation-launcher-fields`},je=[`onUpdate:modelValue`],Me={class:`conversation-launcher-template`},Ne=[`onUpdate:modelValue`],Pe={key:0,class:`settings-error`,role:`alert`},Fe={class:`settings-card resource-card`},Ie={class:`section-heading`},Le={key:0},Re=[`disabled`],ze={key:1,class:`settings-error`,role:`alert`},Be={class:`resource-totals`},Ve={class:`resource-breakdowns`},He={class:`resource-group`},Ue={class:`resource-group`},We={class:`resource-notes`},Ge={key:0},Ke={key:1},qe={key:4,class:`settings-error`,role:`alert`},F=S(ae({__name:`SettingsPage`,setup(ae){let S=oe(),F=s(null),I=s(null),L=s(null),R=s(!0),z=c({get:()=>S.settingsSaving,set:e=>{S.settingsSaving=e}}),B=s(!1),V=s(``),H=s(``),U=s(!1),W=null,Je=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=c({get:()=>re(),set:e=>m(e)}),K=[5,10,30,60],Ye=ce,Xe=c(()=>[{value:`zh-CN`,label:l(`settings.behavior.zh`)},{value:`en-US`,label:l(`settings.behavior.en`)}]),Ze=c(()=>K.map(e=>({value:String(e),label:l(`settings.resources.refreshUnit`,{seconds:e})}))),Qe=c(()=>[{value:`native`,label:l(`settings.behavior.runtimeModes.native`)},{value:`container`,label:l(`settings.behavior.runtimeModes.container`)}]),$e=c(()=>[{value:`any`,label:l(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:l(`settings.conversationLaunchers.idFormats.uuid`)}]),et=c(()=>S.state?.capturePolicy?.enabled!==!1),tt=c(()=>S.state?.agentAccessPolicy?.enabled!==!1),nt=c(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),rt=c(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),it=c(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);te(async()=>{S.runtimeStatus===`idle`&&S.refresh(),await Promise.all([at(),q()]),R.value=!1}),e(Y),a(()=>I.value?.resourceRefreshSeconds,()=>J());async function at(){try{let e=await C(`/api/system/settings`);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:D(e.configured.conversationLaunchers)},E(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:l(`settings.loadError`)}}async function q(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await C(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:l(`settings.resources.unavailable`)}finally{B.value=!1}}}async function ot(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await se(`/api/system/settings`,I.value);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:D(e.configured.conversationLaunchers)},E(e.configured.conversationLaunchers),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:l(`settings.saveError`)}finally{z.value=!1}}}function J(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void q(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function st(e){S.updateCapturePolicy(e.currentTarget.checked)}function ct(e){S.updateAgentAccessPolicy(e.currentTarget.checked)}function lt(e){(e===`zh-CN`||e===`en-US`)&&m(e)}function ut(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function dt(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function ft(e){let t=l(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?le(e):t}function pt(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}`;return ie.global.te(t)?l(t):e.label}function Z(e){if(!Number.isFinite(e))return`—`;let t=Number(e),n=[`B`,`KiB`,`MiB`,`GiB`,`TiB`],r=t,i=0;for(;r>=1024&&i<n.length-1;)r/=1024,i+=1;let a=i===0||r>=100?0:r>=10?1:2;return`${r.toFixed(a)} ${n[i]}`}function Q(e,t){return`${Math.max(3,Math.round(e/t*100))}%`}function $(e){return e?new Intl.DateTimeFormat(G.value,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(new Date(e)):`—`}function mt(e){let t=e.target.closest(`details`);for(;t;)t.open=!0,t=t.parentElement?.closest(`details`)??null}return(e,a)=>(r(),y(`section`,{class:`view settings-view`,"aria-label":_(l)(`settings.aria`)},[v(`div`,de,[z.value?(r(),b(x,{key:0,variant:`inline`,label:_(l)(`settings.saving`)},null,8,[`label`])):u(``,!0),U.value||F.value?.restartRequired?(r(),y(`div`,fe,[U.value?(r(),y(`strong`,pe,h(_(l)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(r(),y(`span`,me,h(_(l)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),R.value&&!I.value?(r(),b(x,{key:2,variant:`compact`,label:_(l)(`settings.loading`)},null,8,[`label`])):u(``,!0),I.value?(r(),y(`form`,{key:3,id:`settings-form`,class:`settings-form`,"aria-busy":z.value,onSubmit:ne(ot,[`prevent`]),onInvalidCapture:mt},[v(`fieldset`,{class:`settings-fields`,disabled:z.value},[v(`section`,_e,[v(`h3`,null,h(_(l)(`settings.behavior.title`)),1),v(`div`,ve,[v(`label`,ye,[v(`span`,null,[v(`strong`,null,h(_(l)(`settings.behavior.capture`)),1),v(`small`,null,h(_(l)(`settings.behavior.captureMeta`)),1)]),v(`input`,{type:`checkbox`,role:`switch`,checked:et.value,onChange:st},null,40,O)]),v(`label`,k,[v(`span`,null,[v(`strong`,null,h(_(l)(`settings.behavior.agentAccess`)),1),v(`small`,null,h(_(l)(`settings.behavior.agentAccessMeta`)),1)]),v(`input`,{type:`checkbox`,role:`switch`,checked:tt.value,onChange:ct},null,40,A)]),v(`label`,j,[v(`span`,null,[v(`strong`,null,h(_(l)(`settings.behavior.lanAccess`)),1),v(`small`,null,h(_(l)(`settings.behavior.lanAccessMeta`)),1)]),o(v(`input`,{"onUpdate:modelValue":a[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[d,I.value.lanAccess]])]),v(`div`,M,[v(`span`,null,[v(`strong`,null,h(_(l)(`settings.behavior.runtimeMode`)),1),v(`small`,null,h(it.value?_(l)(`settings.behavior.runtimeRecommendation`):_(l)(`settings.behavior.runtimeModeMeta`,{mode:_(l)(`settings.behavior.runtimeModes.${F.value?.active.graphRuntimeMode??I.value.graphRuntimeMode}`)})),1)]),n(T,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:Qe.value,label:_(l)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":dt},null,8,[`model-value`,`options`,`label`])]),v(`div`,N,[v(`span`,null,[v(`strong`,null,h(_(l)(`settings.behavior.language`)),1)]),n(T,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Xe.value,label:_(l)(`settings.behavior.language`),"onUpdate:modelValue":lt},null,8,[`model-value`,`options`,`label`])]),v(`div`,P,[v(`span`,null,[v(`strong`,null,h(_(l)(`settings.resources.refresh`)),1)]),n(T,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:Ze.value,label:_(l)(`settings.resources.refresh`),"onUpdate:modelValue":ut},null,8,[`model-value`,`options`,`label`])])])]),n(w,{class:`settings-card ports-card`,title:_(l)(`settings.ports.title`)},{default:t(()=>[F.value?.restartRequired?(r(),y(`span`,be,h(_(l)(`settings.restartRequired`)),1)):u(``,!0),v(`div`,xe,[v(`h4`,null,h(_(l)(`settings.ports.personal`)),1),v(`div`,Se,[(r(),y(p,null,i(Je,e=>v(`label`,{key:e},[v(`span`,null,h(_(l)(`settings.ports.${e}`)),1),o(v(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,Ce),[[f,I.value.ports[e],void 0,{number:!0}]]),v(`small`,null,h(_(l)(`settings.ports.active`,{port:pt(e)})),1)])),64))])]),v(`div`,we,[v(`div`,null,[v(`h4`,null,h(_(l)(`settings.ports.development`)),1),v(`span`,null,h(_(l)(`settings.ports.developing`)),1)]),v(`p`,null,h(_(l)(`settings.ports.developmentMeta`)),1)])]),_:1},8,[`title`]),n(w,{id:`conversation-launchers`,class:`settings-card conversation-launcher-card`,title:_(l)(`settings.conversationLaunchers.title`)},{default:t(()=>[v(`div`,Te,[(r(!0),y(p,null,i(_(Ye),e=>(r(),y(`article`,{key:e,class:`conversation-launcher-row`},[v(`div`,Ee,[v(`span`,null,[v(`strong`,null,h(ft(e)),1),v(`small`,null,h(_(l)(`settings.conversationLaunchers.sourceId`,{id:e})),1)]),v(`label`,De,[v(`span`,null,h(_(l)(`settings.conversationLaunchers.enabled`)),1),o(v(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].enabled=t,type:`checkbox`,role:`switch`},null,8,Oe),[[d,I.value.conversationLaunchers[e].enabled]])])]),I.value.conversationLaunchers[e].enabled&&e===`codex`?(r(),y(`small`,ke,h(_(l)(`settings.conversationLaunchers.idFormatMeta`)),1)):u(``,!0),I.value.conversationLaunchers[e].enabled?(r(),y(`div`,Ae,[v(`label`,null,[v(`span`,null,h(_(l)(`settings.conversationLaunchers.idFormat`)),1),n(T,{modelValue:I.value.conversationLaunchers[e].idFormat,"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].idFormat=t,class:`launcher-select`,"control-id":`settings-conversation-${e}-id-format`,options:$e.value,label:_(l)(`settings.conversationLaunchers.idFormat`)},null,8,[`modelValue`,`onUpdate:modelValue`,`control-id`,`options`,`label`])]),v(`label`,null,[v(`span`,null,h(_(l)(`settings.conversationLaunchers.appName`)),1),o(v(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].appName=t,type:`text`,maxlength:`64`,required:``},null,8,je),[[f,I.value.conversationLaunchers[e].appName,void 0,{trim:!0}]])]),v(`label`,Me,[v(`span`,null,[ee(h(_(l)(`settings.conversationLaunchers.urlTemplate`))+` `,1),a[1]||=v(`small`,null,[v(`code`,null,`{id}`)],-1)]),o(v(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].urlTemplate=t,type:`text`,maxlength:`1024`,spellcheck:`false`,required:``},null,8,Ne),[[f,I.value.conversationLaunchers[e].urlTemplate,void 0,{trim:!0}]])])])):u(``,!0)]))),128))])]),_:1},8,[`title`])],8,ge),V.value?(r(),y(`p`,Pe,h(V.value),1)):u(``,!0)],40,he)):u(``,!0),v(`section`,Fe,[v(`header`,Ie,[v(`div`,null,[v(`h3`,null,h(_(l)(`settings.resources.title`)),1),L.value?(r(),y(`p`,Le,h(_(l)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),v(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:q},h(_(l)(`common.actions.refresh`)),9,Re)]),B.value?(r(),b(x,{key:0,variant:L.value?`inline`:`compact`,label:_(l)(`settings.resources.loading`)},null,8,[`variant`,`label`])):u(``,!0),H.value?(r(),y(`p`,ze,h(H.value),1)):L.value?(r(),y(p,{key:2},[v(`div`,Be,[v(`article`,null,[v(`span`,null,h(_(l)(`settings.resources.memory`)),1),v(`strong`,null,h(Z(L.value.memory.usedBytes)),1),v(`small`,null,h(_(l)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),v(`article`,null,[v(`span`,null,h(_(l)(`settings.resources.disk`)),1),v(`strong`,null,h(Z(L.value.disk.usedBytes)),1),v(`small`,null,h(_(l)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),n(w,{title:_(l)(`ui.usageDetails`)},{default:t(()=>[v(`div`,Ve,[v(`div`,He,[v(`h4`,null,h(_(l)(`settings.resources.memory`)),1),(r(!0),y(p,null,i(L.value.memory.components,e=>(r(),y(`div`,{key:e.id,class:`resource-row`},[v(`div`,null,[v(`span`,null,h(X(e)),1),v(`strong`,null,h(Z(e.bytes)),1)]),v(`i`,null,[v(`b`,{style:g({width:Q(e.bytes,nt.value)})},null,4)])]))),128))]),v(`div`,Ue,[v(`h4`,null,h(_(l)(`settings.resources.disk`)),1),(r(!0),y(p,null,i(L.value.disk.components,e=>(r(),y(`div`,{key:e.id,class:`resource-row`},[v(`div`,null,[v(`span`,null,h(X(e)),1),v(`strong`,null,h(Z(e.bytes)),1)]),v(`i`,null,[v(`b`,{style:g({width:Q(e.bytes,rt.value)})},null,4)])]))),128))])]),v(`div`,We,[v(`span`,null,h(_(l)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(r(),y(`span`,Ge,h(_(l)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(r(),y(`span`,Ke,h(_(l)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):u(``,!0),v(`span`,null,h(_(l)(L.value.exclusions.includes(`shared-container-vm-overhead`)?`settings.resources.exclusionsContainer`:`settings.resources.exclusionsNative`)),1)])]),_:1},8,[`title`])],64)):u(``,!0)]),!R.value&&!I.value?(r(),y(`p`,qe,h(V.value||_(l)(`settings.loadError`)),1)):u(``,!0)])],8,ue))}}),[[`__scopeId`,`data-v-a4c2b855`]]);export{F as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as e,R as t,X as n,_ as r,a as i,b as a,h as o,it as s,tt as c,v as l,w as u,x as d,y as f}from"./i18n-D2CJkEYK.js";import{t as p}from"./GrowthLoading-KTjE2e50.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-BtFMXFjw.js";import{i as g,n as _,t as v}from"./shared-report-DEK9wvhl.js";var y={class:`shared-jefa-report`},b={key:1,class:`report-state`,role:`alert`},x={key:0,class:`report-warning`},S={key:1,class:`report-state`,role:`status`},C=m(u({__name:`SharedJefaReportPage`,setup(u){let m=h(),C=n([]),w=n([]),T=n(!1),E=n(0),D=n(``),O=r(()=>C.value.reduce((e,t)=>e+t.items.length,0)),k=r(()=>m.fullPath.includes(`#`)?m.fullPath.slice(m.fullPath.indexOf(`#`)):m.hash),A=0;t(k,()=>{j()},{immediate:!0});async function j(){let e=++A;C.value=[],D.value=``,E.value=0,T.value=!0;try{let t=_(k.value),n=await Promise.allSettled(t.map(v));if(e!==A)return;C.value=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),w.value=C.value.map(e=>e.project.id),E.value=n.filter(e=>e.status===`rejected`).length,C.value.length||(D.value=i(`employees.share.unavailable`))}catch{e===A&&(D.value=i(`employees.share.unavailable`))}finally{e===A&&(T.value=!1)}}return(t,n)=>(e(),d(`main`,y,[l(`header`,null,[n[1]||=l(`strong`,null,`Jefa`,-1),l(`h1`,null,s(c(i)(`employees.share.title`)),1),l(`span`,null,s(c(i)(`employees.share.readOnly`)),1)]),T.value?(e(),f(p,{key:0,label:c(i)(`employees.loadingReport`)},null,8,[`label`])):D.value?(e(),d(`div`,b,[l(`p`,null,s(D.value),1),l(`button`,{type:`button`,onClick:j},s(c(i)(`employees.retry`)),1)])):(e(),d(o,{key:2},[E.value?(e(),d(`p`,x,s(c(i)(`employees.share.unavailableCount`,{count:E.value})),1)):a(``,!0),O.value?(e(),f(g,{key:2,"visible-project-ids":w.value,"onUpdate:visibleProjectIds":n[0]||=e=>w.value=e,boards:C.value.filter(e=>w.value.includes(e.project.id)),projects:C.value.map(e=>e.project),"failed-projects":0,"can-move-tasks":!1,"read-only":``,onRetry:j},null,8,[`visible-project-ids`,`boards`,`projects`])):(e(),d(`div`,S,[l(`h2`,null,s(c(i)(`employees.shareContent.emptyTitle`)),1),l(`p`,null,s(c(i)(`employees.shareContent.emptyReport`,{count:C.value.length})),1),l(`button`,{type:`button`,onClick:j},s(c(i)(`common.actions.refresh`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-79d38b0c`]]);export{C as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as e,M as t,S as n,it as r,v as i,w as a,x as o}from"./i18n-D2CJkEYK.js";var s=[`open`],c=a({__name:`UiDisclosure`,props:{title:{},open:{type:Boolean,default:!1}},setup(a){return(c,l)=>(t(),o(`details`,{class:`ui-disclosure`,open:a.open},[i(`summary`,null,[n(r(a.title),1),e(c.$slots,`summary`)]),e(c.$slots,`default`)],8,s))}});export{c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,M as r,P as i,R as a,S as o,X as s,_ as c,a as l,b as u,h as d,it as f,nt as p,tt as m,v as h,w as g,x as _,y as v}from"./i18n-D2CJkEYK.js";import{t as ee}from"./console-BtPqo79j.js";import{t as y}from"./GrowthLoading-KTjE2e50.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as te}from"./vue-router-DkaTtPn0.js";import{n as ne}from"./client-B2cRl-7c.js";import{t as re}from"./UiDisclosure-CWlC91Zt.js";import{i as ie,n as ae,t as oe}from"./KnowledgeEditDialog-n9trHQ5d.js";import{u as se,x as ce}from"./model-S7ehAjky.js";import{t as le}from"./personal-profile-graph--GG3Mizo.js";var x={class:`view writing-taste-view`},ue={key:2,class:`view-loading`,"aria-busy":`true`},de={key:3,class:`writing-taste-unavailable`},fe=[`role`],pe={class:`writing-taste-hero__copy`},me={class:`writing-taste-status`},S={class:`writing-taste-hero__score`,"aria-hidden":`true`},C=[`aria-label`],w={"aria-hidden":`true`},T={class:`writing-taste-rules`},E={key:0,class:`writing-taste-rule-list`},D={class:`writing-taste-rule__status`},O={key:0,class:`conflict`},k={class:`writing-taste-rule__body`},A={key:0},j={key:1},M={key:0},N={key:0,class:`writing-taste-rule__actions`},P=[`onClick`],F=[`onClick`],I={key:1,class:`writing-taste-empty`},L={key:0,class:`writing-taste-agent-preview`},R={key:0},z=b(g({__name:`WritingTastePage`,setup(g){let b=ee(),z=s(null),B=s(null),V=s(!1),H=s(!1),U=s(null),W=s(null),G=s(!1),K=0,q=null,J=c(()=>V.value&&!z.value),Y=ie(J),X=c(()=>ce(B.value)),Z=c(()=>new Map(X.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),he=c(()=>z.value?.status===`active`?l(`writingTaste.page.activeTitle`):z.value?.status===`preview_ready`?l(`writingTaste.page.previewTitle`):l(`writingTaste.page.collectingTitle`)),ge=c(()=>z.value?.status===`active`?l(`writingTaste.page.activeCopy`):z.value?.status===`preview_ready`?l(`writingTaste.page.previewCopy`):l(`writingTaste.page.collectingCopy`));a(()=>b.activePersonalSpace?.id,e=>{z.value=null,B.value=null,U.value=null,W.value=null,G.value=!1,Q(e)},{immediate:!0,flush:`sync`});async function Q(e=b.activePersonalSpace?.id){let t=++K;if(q?.abort(),q=null,H.value=!1,!e){V.value=!1;return}let n=new AbortController;q=n,V.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a]=await Promise.all([ne(`/api/writing-taste-profile?${r}`,{signal:n.signal}),le(e,n.signal)]);if(t!==K)return;z.value=Se(i)?i:null,B.value=Ce(a)?a:null,xe()}catch{if(t!==K)return;z.value=null,B.value=null,H.value=!0}finally{t===K&&(V.value=!1,q=null)}}e(()=>{K+=1,q?.abort()});function $(e){return Z.value.get(`${e.item_kind}:${e.item_id}`)??null}function _e(e){U.value=$(e)}function ve(e){W.value=$(e)}function ye(e){if(e.preference_scope!==`project`||!e.preference_project_id)return l(`writingTaste.page.globalScope`);let t=b.state?.personalProjects?.find(({project_id:t})=>t===e.preference_project_id);return l(`writingTaste.page.projectScope`,{project:t?.profile.name??e.preference_project_id})}function be(e){return e.key===`conflicts`?l(`writingTaste.criteria.conflictsProgress`,{current:e.current}):l(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function xe(){U.value&&=Z.value.get(`${U.value.itemKind}:${U.value.id}`)??null,W.value&&=Z.value.get(`${W.value.itemKind}:${W.value.id}`)??null}function Se(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function Ce(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.nodes)&&Array.isArray(t.edges)}return(e,a)=>(r(),_(`section`,x,[n(m(te),{class:`writing-taste-back`,to:`/preferences`},{default:t(()=>[a[6]||=h(`span`,{"aria-hidden":`true`},`←`,-1),o(` `+f(m(l)(`writingTaste.page.back`)),1)]),_:1}),V.value&&z.value&&!m(Y)?(r(),v(y,{key:0,variant:`inline`,label:m(l)(`writingTaste.page.loading`)},null,8,[`label`])):u(``,!0),m(Y)?(r(),v(y,{key:1,label:m(l)(`writingTaste.page.loading`)},null,8,[`label`])):J.value?(r(),_(`div`,ue)):z.value?(r(),_(d,{key:4},[h(`header`,{class:p([`writing-taste-hero`,`status-${z.value.status}`])},[h(`div`,pe,[h(`span`,me,[a[7]||=h(`i`,{"aria-hidden":`true`},null,-1),o(` `+f(m(l)(`writingTaste.status.${z.value.status}`)),1)]),h(`h2`,null,f(he.value),1),h(`p`,null,f(ge.value),1)]),h(`div`,S,[h(`strong`,null,f(z.value.readiness.rule_count),1),h(`span`,null,`/ `+f(z.value.readiness.thresholds.rule_count),1),h(`small`,null,f(m(l)(`writingTaste.criteria.rules`)),1)])],2),h(`section`,{class:`writing-taste-readiness`,"aria-label":m(l)(`writingTaste.page.readinessAria`)},[(r(!0),_(d,null,i(z.value.readiness.criteria,e=>(r(),_(`article`,{key:e.key,class:p({met:e.met})},[h(`span`,w,f(e.met?`✓`:`·`),1),h(`div`,null,[h(`strong`,null,f(m(l)(`writingTaste.criteria.${e.key}`)),1),h(`small`,null,f(be(e)),1)])],2))),128))],8,C),h(`section`,T,[h(`header`,null,[h(`h2`,null,f(m(l)(`writingTaste.page.rulesTitle`)),1),h(`span`,null,f(z.value.rules.length),1)]),z.value.rules.length?(r(),_(`div`,E,[(r(!0),_(d,null,i(z.value.rules,e=>(r(),_(`article`,{key:`${e.item_kind}:${e.item_id}`,class:p([`writing-taste-rule`,{"has-conflict":e.has_conflict,"is-hypothesis":e.evidence_status===`Working hypothesis`}])},[h(`div`,D,[h(`span`,{class:p(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},f(m(l)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),h(`span`,null,f(ye(e)),1),e.has_conflict?(r(),_(`span`,O,f(m(l)(`writingTaste.page.conflict`)),1)):u(``,!0)]),h(`div`,k,[h(`h3`,null,f(e.title),1),h(`p`,null,f(e.instruction),1),e.reason||e.contexts.length?(r(),v(re,{key:0,title:m(l)(`ui.details`)},{default:t(()=>[e.reason?(r(),_(`p`,A,f(e.reason),1)):u(``,!0),e.contexts.length?(r(),_(`p`,j,f(m(l)(`writingTaste.page.contexts`,{contexts:e.contexts.join(`、`)})),1)):u(``,!0)]),_:2},1032,[`title`])):u(``,!0)]),h(`footer`,null,[h(`div`,null,[h(`span`,null,f(m(l)(`writingTaste.page.evidence`,{evidence:e.evidence_count})),1),h(`span`,null,f(m(l)(`writingTaste.page.sessions`,{sessions:e.session_count})),1),e.updated_at?(r(),_(`span`,M,f(m(l)(`writingTaste.page.updated`,{time:m(se)(e.updated_at)})),1)):u(``,!0)]),$(e)?(r(),_(`div`,N,[h(`button`,{class:`secondary-action`,type:`button`,onClick:t=>ve(e)},f(m(l)(`writingTaste.page.edit`)),9,P),e.evidence_status===`Confirmed`?u(``,!0):(r(),_(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>_e(e)},f(m(l)(`writingTaste.page.confirm`)),9,F))])):u(``,!0)])],2))),128))])):(r(),_(`div`,I,f(m(l)(`writingTaste.page.rulesEmpty`)),1))]),z.value.ready&&z.value.agent_markdown?(r(),_(`section`,L,[h(`div`,null,[h(`h2`,null,f(m(l)(`writingTaste.page.agentPreviewTitle`)),1)]),h(`button`,{class:`secondary-action`,type:`button`,onClick:a[1]||=e=>G.value=!G.value},f(G.value?m(l)(`writingTaste.page.hideAgentPreview`):m(l)(`writingTaste.page.showAgentPreview`)),1),G.value?(r(),_(`pre`,R,f(z.value.agent_markdown),1)):u(``,!0)])):u(``,!0)],64)):(r(),_(`div`,de,[h(`p`,{role:H.value?`alert`:void 0},f(m(l)(H.value?`common.errors.loadFailed`:`writingTaste.page.profileUnavailable`)),9,fe),m(b).activePersonalSpace?(r(),_(`button`,{key:0,type:`button`,class:`secondary-action`,onClick:a[0]||=e=>Q()},f(m(l)(`common.actions.retry`)),1)):u(``,!0)])),n(oe,{item:W.value,"personal-space-id":m(b).activePersonalSpace?.id??``,"personal-project-id":null,projects:m(b).state?.personalProjects??[],"replacement-items":X.value,onClose:a[2]||=e=>W.value=null,onSaved:a[3]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),n(ae,{item:U.value,"personal-space-id":m(b).activePersonalSpace?.id??``,"personal-project-id":null,onClose:a[4]||=e=>U.value=null,onSaved:a[5]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-8c7fa696`]]);export{z as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.writing-taste-view[data-v-8c7fa696]{background:var(--color-surface-subtle);padding:18px 32px 40px;overflow:auto}.writing-taste-view[data-v-8c7fa696]>:not(.vue-dialog){width:min(980px,100%);margin-inline:auto}.writing-taste-back[data-v-8c7fa696]{color:var(--color-muted);align-items:center;gap:7px;margin-bottom:14px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.writing-taste-back[data-v-8c7fa696]:hover{color:var(--color-ink)}.writing-taste-hero[data-v-8c7fa696]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px 26px;display:grid;box-shadow:0 12px 32px #2d3d340f}.writing-taste-hero.status-preview_ready[data-v-8c7fa696],.writing-taste-hero.status-active[data-v-8c7fa696]{border-color:var(--color-success-soft)}.writing-taste-hero__copy[data-v-8c7fa696]{gap:7px;display:grid}.writing-taste-status[data-v-8c7fa696]{color:var(--color-muted);background:var(--color-surface-subtle);border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:3px 8px;font-size:12px;font-weight:800;display:inline-flex}.writing-taste-status i[data-v-8c7fa696]{background:var(--color-muted);border-radius:50%;width:5px;height:5px}.writing-taste-hero h2[data-v-8c7fa696],.writing-taste-hero p[data-v-8c7fa696]{margin:0}.writing-taste-hero h2[data-v-8c7fa696]{color:var(--color-ink);letter-spacing:-.015em;font-size:22px}.writing-taste-hero p[data-v-8c7fa696]{max-width:680px;color:var(--color-muted);font-size:12px;line-height:1.65}.writing-taste-hero__score[data-v-8c7fa696]{border-left:1px solid var(--color-border);min-width:104px;color:var(--color-muted);grid-template-columns:auto 1fr;align-items:baseline;padding:14px 16px;display:grid}.writing-taste-hero__score strong[data-v-8c7fa696]{color:var(--color-ink);font-size:28px}.writing-taste-hero__score span[data-v-8c7fa696]{font-size:12px}.writing-taste-hero__score small[data-v-8c7fa696]{grid-column:1/-1;font-size:12px}.writing-taste-readiness[data-v-8c7fa696]{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.writing-taste-readiness article[data-v-8c7fa696]{border:1px solid var(--color-border);border-radius:var(--radius-control);min-width:0;color:var(--color-muted);background:var(--color-surface);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:10px;display:grid}.writing-taste-readiness article.met[data-v-8c7fa696]{color:var(--color-muted);border-color:var(--color-border-strong);background:var(--color-surface)}.writing-taste-readiness article>span[data-v-8c7fa696]{background:var(--color-surface-subtle);border-radius:50%;place-items:center;width:18px;height:18px;font-size:12px;font-weight:800;display:grid}.writing-taste-readiness article.met>span[data-v-8c7fa696]{color:var(--color-surface);background:var(--color-muted)}.writing-taste-readiness article div[data-v-8c7fa696]{gap:2px;min-width:0;display:grid}.writing-taste-readiness strong[data-v-8c7fa696],.writing-taste-readiness small[data-v-8c7fa696]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.writing-taste-readiness strong[data-v-8c7fa696]{color:var(--color-ink);font-size:12px}.writing-taste-readiness small[data-v-8c7fa696]{font-size:12px}.writing-taste-rules[data-v-8c7fa696]{margin-top:24px}.writing-taste-rules>header[data-v-8c7fa696]{align-items:center;gap:8px;padding:0 2px 10px;display:flex}.writing-taste-rules>header h2[data-v-8c7fa696]{color:var(--color-ink);margin:0;font-size:15px}.writing-taste-rules>header span[data-v-8c7fa696]{min-width:20px;color:var(--color-muted);background:var(--color-surface-subtle);text-align:center;border-radius:999px;padding:2px 6px;font-size:12px;font-weight:800}.writing-taste-rule-list[data-v-8c7fa696]{gap:9px;display:grid}.writing-taste-rule[data-v-8c7fa696]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:11px;gap:10px;padding:15px 17px;display:grid}.writing-taste-rule.is-hypothesis[data-v-8c7fa696]{background:var(--color-surface)}.writing-taste-rule.has-conflict[data-v-8c7fa696]{border-color:var(--color-border-strong)}.writing-taste-rule__status[data-v-8c7fa696]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.writing-taste-rule__status span[data-v-8c7fa696]{color:var(--color-muted);background:var(--color-surface-subtle);border-radius:999px;padding:2px 7px;font-size:12px;font-weight:800}.writing-taste-rule__status .confirmed[data-v-8c7fa696],.writing-taste-rule__status .observed[data-v-8c7fa696]{color:var(--color-success);background:var(--color-success-soft)}.writing-taste-rule__status .conflict[data-v-8c7fa696]{color:var(--color-danger);background:var(--color-danger-soft)}.writing-taste-rule__body[data-v-8c7fa696]{gap:5px;display:grid}.writing-taste-rule h3[data-v-8c7fa696],.writing-taste-rule p[data-v-8c7fa696]{margin:0}.writing-taste-rule h3[data-v-8c7fa696]{color:var(--color-ink);font-size:13px}.writing-taste-rule p[data-v-8c7fa696]{color:var(--color-ink);font-size:12px;line-height:1.65}.writing-taste-rule__body small[data-v-8c7fa696]{color:var(--color-muted);font-size:12px;line-height:1.5}.writing-taste-rule footer[data-v-8c7fa696]{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:14px;padding-top:9px;display:flex}.writing-taste-rule footer>div[data-v-8c7fa696]:first-child{color:var(--color-muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.writing-taste-rule__actions[data-v-8c7fa696]{gap:7px;display:flex}.writing-taste-rule__actions button[data-v-8c7fa696],.writing-taste-agent-preview button[data-v-8c7fa696]{padding:6px 10px;font-size:12px}.writing-taste-empty[data-v-8c7fa696],.writing-taste-unavailable[data-v-8c7fa696]{border:1px dashed var(--color-border);min-height:180px;color:var(--color-muted);border-radius:11px;place-items:center;font-size:12px;display:grid}.writing-taste-agent-preview[data-v-8c7fa696]{border:1px solid var(--color-border);background:var(--color-surface-subtle);border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:22px;padding:16px 18px;display:grid}.writing-taste-agent-preview h2[data-v-8c7fa696],.writing-taste-agent-preview p[data-v-8c7fa696]{margin:0}.writing-taste-agent-preview h2[data-v-8c7fa696]{color:var(--color-ink);font-size:13px}.writing-taste-agent-preview p[data-v-8c7fa696]{color:var(--color-muted);margin-top:4px;font-size:12px;line-height:1.5}.writing-taste-agent-preview pre[data-v-8c7fa696]{border-radius:var(--radius-control);max-height:360px;color:var(--color-surface-subtle);background:var(--color-ink);white-space:pre-wrap;overflow-wrap:anywhere;grid-column:1/-1;margin:0;padding:14px;font:10px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}@media (width<=980px){.writing-taste-readiness[data-v-8c7fa696]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=680px){.writing-taste-view[data-v-8c7fa696]{padding-inline:18px}.writing-taste-hero[data-v-8c7fa696]{grid-template-columns:1fr}.writing-taste-hero__score[data-v-8c7fa696]{border-top:1px solid var(--color-border);border-left:0}.writing-taste-readiness[data-v-8c7fa696]{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-taste-rule footer[data-v-8c7fa696],.writing-taste-agent-preview[data-v-8c7fa696]{flex-direction:column;grid-template-columns:1fr;align-items:start}.writing-taste-agent-preview pre[data-v-8c7fa696]{grid-column:1}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.agents-directory,.agent-profile-page{min-width:0;color:var(--color-ink,#1d2129)}.agents-directory-heading{margin-bottom:var(--space-6,24px)}.agents-directory-count{color:var(--color-muted,#667085);margin:0;font-size:14px}.agent-directory-work-error{justify-content:space-between;align-items:center;gap:var(--space-3,12px);margin:calc(var(--space-6,24px) * -1) 0 var(--space-4,16px);color:var(--color-danger,#b93838);font-size:13px;display:flex}.agent-profile-actions{justify-content:flex-end;align-items:center;gap:var(--space-2,8px);flex-wrap:wrap;flex-shrink:0;display:flex}.agents-directory-filters{margin-bottom:var(--space-6,24px);align-items:stretch}.agents-directory-search{flex:280px;min-width:160px}.agents-directory-search input,.agents-directory-filters select{box-sizing:border-box;width:100%}.agents-directory-filters>select{width:auto;min-width:150px}.agents-directory-grid{gap:var(--space-4,16px);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.agents-directory-grid>li{min-width:0}.agent-card{box-sizing:border-box;gap:var(--space-3,12px);height:100%;padding:var(--space-4,16px);transition:border-color var(--motion-fast,.16s);flex-direction:column;display:flex}.agent-card:hover{border-color:var(--color-border-strong,#c5cbd5)}.agent-card-topline,.agent-card-meta,.agent-section-heading,.agent-resume-name-row{justify-content:space-between;align-items:center;gap:var(--space-3,12px);display:flex}.agent-card-topline{align-items:flex-start}.agent-card-status-stack{flex-direction:column;align-items:flex-end;gap:4px;min-width:0;display:flex}.agent-card-body{flex:1;min-width:0}.agent-portrait{background:var(--color-accent-soft,#edf3ff);width:72px;height:72px;color:var(--color-accent,#2563eb);border-radius:20px;flex:0 0 72px;place-items:center;font-size:34px;line-height:1;display:grid}.agent-portrait.small{border-radius:14px;flex-basis:46px;width:46px;height:46px;font-size:22px}.agent-directory-name{align-items:center;gap:var(--space-2,8px);min-width:0;margin-top:var(--space-2,8px);font-size:17px;font-weight:650;display:flex}.agent-directory-name a{overflow-wrap:anywhere;min-width:0;color:var(--color-ink,#1d2129);text-decoration:none}.agent-directory-name a:hover{color:var(--color-accent,#2563eb)}.agent-card-responsibility{color:var(--color-muted,#667085);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;line-height:1.45;display:-webkit-box;overflow:hidden}.agent-inline-skills,.agent-card-project-list{gap:var(--space-2,8px);flex-wrap:wrap;display:flex}.agent-inline-skills{margin-top:var(--space-2,8px)}.agent-inline-skills>span{overflow-wrap:anywhere;background:var(--color-surface-subtle,#f0f2f5);max-width:100%;color:var(--color-muted,#667085);border-radius:6px;padding:3px 7px;font-size:12px;line-height:1.4}.agent-card-meta{border-top:1px solid var(--color-border,#e2e5ea);padding-top:var(--space-3,12px);align-items:flex-end}.agent-card-projects{min-width:0}.agent-card-meta-label{color:var(--color-muted,#667085);margin-bottom:4px;font-size:12px;display:block}.agent-card-project-list .ui-badge{text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}.agent-card-project-count{color:var(--color-accent,#2563eb);background:var(--color-accent-soft,#edf3ff)}.agent-card-no-project{color:var(--color-muted,#667085);font-size:12px}.agent-card-status.is-active,.agent-profile-membership.is-active{color:var(--color-success,#23734f);background:var(--color-success-soft,#edf7f1)}.agent-card-status.is-inactive,.agent-profile-membership.is-inactive{color:var(--color-warning,#936016);background:var(--color-warning-soft,#fff7e8)}.agent-card-status.is-archived,.agent-profile-membership.is-archived{color:var(--color-muted,#667085);background:var(--color-surface-subtle,#f0f2f5)}.agent-card-work-status{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.agent-card-work-status.is-running{color:var(--color-accent,#2563eb);background:var(--color-accent-soft,#edf3ff)}.agent-card-work-status.is-awaiting_review{color:var(--color-warning,#936016);background:var(--color-warning-soft,#fff7e8)}.agent-card-work-status.is-blocked,.agent-card-work-status.is-unavailable{color:var(--color-danger,#b93838);background:var(--color-danger-soft,#fff1f0)}.agent-card-work-status.is-queued,.agent-card-work-status.is-paused,.agent-card-work-status.is-awaiting_recruitment{color:var(--color-warning,#936016);background:var(--color-warning-soft,#fff7e8)}.agent-card-work-status.is-none,.agent-card-work-status.is-loading,.agent-card-work-status.is-unreported{color:var(--color-muted,#667085);background:var(--color-surface-subtle,#f0f2f5)}.agent-directory-open{white-space:nowrap;flex:none;min-height:32px;padding:6px 9px;font-size:12px}.agent-profile-empty{box-sizing:border-box;min-height:140px}.agents-directory .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.agent-profile-page{box-sizing:border-box;width:100%;max-width:1120px;margin:0 auto}.agent-profile-back{align-items:center;gap:var(--space-2,8px);margin-bottom:var(--space-5,20px);color:var(--color-muted,#667085);font-size:14px;text-decoration:none;display:inline-flex}.agent-profile-back:hover,.agent-profile-footer a,.agent-section-heading>a{color:var(--color-accent,#2563eb)}.agent-resume-header{align-items:start;gap:var(--space-5,20px);padding:var(--space-6,24px);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.agent-resume-intro{min-width:0}.agent-resume-intro h1{overflow-wrap:anywhere;letter-spacing:-.025em;min-width:0;margin:0;font-size:clamp(26px,3vw,36px);line-height:1.15}.agent-resume-name-row{flex-wrap:wrap;justify-content:flex-start;align-items:baseline}.agent-profile-membership{flex:none}.agent-resume-intro>p{max-width:650px;margin:var(--space-3,12px) 0;overflow-wrap:anywhere;color:var(--color-muted,#667085);line-height:1.65}.agent-resume-meta{gap:var(--space-3,12px);color:var(--color-muted,#667085);flex-wrap:wrap;font-size:12px;display:flex}.agent-profile-refresh-status,.agent-profile-partial{margin:var(--space-4,16px) 0 0;color:var(--color-muted,#667085);font-size:13px}.agent-profile-tabs{gap:var(--space-5,20px);margin-top:var(--space-6,24px);border-bottom:1px solid var(--color-border,#e2e5ea);display:flex;overflow-x:auto}.agent-profile-tab{min-height:44px;color:var(--color-muted,#667085);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:8px 2px;font-size:13px;position:relative}.agent-profile-tab:hover,.agent-profile-tab[aria-selected=true]{color:var(--color-accent,#2563eb)}.agent-profile-tab[aria-selected=true]{border-bottom-color:var(--color-accent,#2563eb);font-weight:650}.agent-profile-panel{min-width:0;margin-top:var(--space-4,16px)}.agent-profile-panel>.ui-card+.ui-card{margin-top:var(--space-4,16px)}.agent-profile-primary-grid{gap:var(--space-4,16px);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.agent-resume-section{box-sizing:border-box;min-width:0;padding:var(--space-6,24px)}.agent-resume-section h2{letter-spacing:-.01em;margin:0;font-size:18px}.agent-resume-section>h2{margin-bottom:var(--space-4,16px)}.agent-resume-section h3{margin:0 0 var(--space-2,8px);font-size:14px}.agent-resume-section p{margin:var(--space-2,8px) 0;overflow-wrap:anywhere;white-space:pre-line;line-height:1.7}.agent-section-heading{margin-bottom:var(--space-4,16px)}.agent-section-heading>span{color:var(--color-muted,#667085);font-size:12px}.agent-resume-list{margin:0;padding:0;list-style:none}.agent-resume-list li{padding:var(--space-3,12px) 0}.agent-resume-list li+li{border-top:1px solid var(--color-border,#e2e5ea)}.agent-project-link{color:var(--color-accent,#2563eb);text-decoration:none}.agent-project-link:hover{text-decoration:underline}.agent-project-overflow{margin-top:var(--space-3,12px)}.agent-project-overflow summary{color:var(--color-accent,#2563eb);cursor:pointer;font-size:13px}.agent-current-work-list{gap:var(--space-2,8px);margin:0;padding:0;list-style:none;display:grid}.agent-current-work-list li{justify-content:space-between;align-items:center;gap:var(--space-3,12px);min-width:0;padding:var(--space-3,12px);border:1px solid var(--color-border,#e2e5ea);border-radius:var(--radius-control,10px);display:flex}.agent-current-work-list .ui-badge,.agent-work-timeline .agent-section-heading>span{white-space:nowrap;flex:none}.agent-current-work-list a{overflow-wrap:anywhere;min-width:0;color:var(--color-accent,#2563eb);font-weight:600;text-decoration:none}.agent-muted,.agent-work-timeline small,.agent-collaborators span{color:var(--color-muted,#667085)}.agent-character{gap:var(--space-5,20px);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.agent-character p{font-size:14px}.agent-strengths{margin-top:var(--space-5,20px)}.agent-strengths h3{margin-bottom:var(--space-3,12px)}.agent-expectation{padding:var(--space-4,16px);border-radius:var(--radius-control,10px);color:var(--color-ink,#1d2129);background:var(--color-accent-soft,#edf3ff)}.agent-expectation strong{margin-bottom:var(--space-2,8px);font-size:13px;display:block}.agent-organization{padding:var(--space-4,16px) 0}.agent-org-lead,.agent-org-members{gap:var(--space-4,16px);padding:var(--space-2,8px) 0;display:flex}.agent-org-lead>span,.agent-org-members>span{min-width:70px;color:var(--color-muted,#667085);font-size:12px}.agent-org-members{margin-left:var(--space-3,12px);padding-left:var(--space-4,16px);border-left:2px solid var(--color-border,#e2e5ea)}.agent-org-members ul{gap:var(--space-3,12px);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.agent-work-timeline{margin:var(--space-5,20px) 0 0 var(--space-2,8px);padding:0 0 0 var(--space-6,24px);border-left:1px solid var(--color-border-strong,#c5cbd5);list-style:none}.agent-work-timeline>li{margin:0 0 var(--space-6,24px);position:relative}.agent-work-timeline>li:before{background:var(--color-accent,#2563eb);content:"";border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:-29px}.agent-work-timeline .agent-section-heading{margin-bottom:var(--space-2,8px)}.agent-work-timeline a{color:var(--color-accent,#2563eb);font-weight:600;text-decoration:none}.agent-work-timeline p{font-size:14px}.agent-work-timeline small{font-size:12px}.agent-collaborators{gap:var(--space-5,20px) var(--space-8,32px);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.agent-collaborators li{gap:var(--space-2,8px);flex-direction:column;min-width:120px;display:flex}.agent-profile-management-links{gap:var(--space-2,8px);margin-top:var(--space-5,20px);flex-wrap:wrap;display:flex}.agent-profile-footer{gap:var(--space-5,20px);margin-top:var(--space-5,20px);padding:var(--space-5,20px) 0;border-top:1px solid var(--color-border,#e2e5ea);flex-wrap:wrap;font-size:13px;display:flex}.agent-simple-settings{box-sizing:border-box;margin-top:var(--space-4,16px);padding:var(--space-6,24px);border:1px solid var(--color-border,#e2e5ea);border-radius:var(--radius-card,16px);background:var(--color-surface,#fff)}.agent-simple-settings h3{margin:0 0 var(--space-5,20px)}.agent-simple-settings label{gap:var(--space-2,8px);margin-bottom:var(--space-5,20px);color:var(--color-ink,#1d2129);flex-direction:column;font-size:14px;display:flex}.agent-simple-settings small{color:var(--color-muted,#667085);font-size:12px}.agent-simple-settings details{margin:var(--space-5,20px) 0}.agent-simple-settings summary{margin-bottom:var(--space-4,16px);color:var(--color-ink,#1d2129);cursor:pointer;font-size:13px}.agent-simple-settings textarea{min-height:70px}.agent-simple-settings button:disabled{cursor:wait}.agent-locked-platforms p{color:var(--color-ink,#1d2129)}@media (width>=640px){.agents-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.agents-directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.agents-directory-heading{align-items:flex-start}.agents-directory-heading .agent-profile-actions{gap:var(--space-2,8px)}.agents-directory-filters{align-items:stretch}.agents-directory-search{flex-basis:100%}.agents-directory-filters>select{flex:1;min-width:0}.agent-resume-header{grid-template-columns:auto minmax(0,1fr)}.agent-resume-header .agent-profile-actions{grid-column:1/-1;justify-content:flex-start}.agent-profile-primary-grid,.agent-character{grid-template-columns:1fr}.agent-profile-tabs{gap:var(--space-4,16px)}}@media (width<=480px){.agent-resume-header,.agent-resume-section,.agent-simple-settings{padding:var(--space-4,16px)}.agent-resume-header{grid-template-columns:1fr}.agent-resume-header .agent-profile-actions{grid-column:auto}.agent-portrait{border-radius:16px;flex-basis:56px;width:56px;height:56px;font-size:28px}.agent-current-work-list li{flex-direction:column;align-items:flex-start}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./i18n-D2CJkEYK.js";var t=class extends Error{status;detail;constructor(e,t,n=``){super(e),this.name=`ApiError`,this.status=t,this.detail=n}};async function n(n,r){let i=await fetch(n,r);if(!i.ok){let n=(await i.text()).trim();throw new t(i.status>=500?e(`common.errors.serviceUnavailable`,{status:i.status}):n||e(`common.errors.requestFailed`,{status:i.status}),i.status,n)}return i.json()}function r(e,t){return n(e,t)}function i(e,t){return n(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function a(e,t){return n(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function o(e,t){return n(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function s(e){return n(e,{method:`DELETE`})}export{a,i,r as n,o as r,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as e,P as t,_ as n,a as r,h as i,i as a,it as o,n as s,t as c,tt as l,w as u,x as d}from"./i18n-D2CJkEYK.js";var f=[`aria-label`],p=[`lang`,`aria-label`,`aria-pressed`,`onClick`],m=u({__name:`LocaleSwitcher`,setup(u){let m=n(()=>s()),h={"zh-CN":`中`,"en-US":`EN`};function g(e){e!==m.value&&a(e)}return(n,a)=>(e(),d(`div`,{class:`locale-switcher`,role:`group`,"aria-label":l(r)(`common.language.label`)},[(e(!0),d(i,null,t(l(c),t=>(e(),d(`button`,{key:t,type:`button`,lang:t,"aria-label":l(r)(t===`zh-CN`?`common.language.chinese`:`common.language.english`),"aria-pressed":m.value===t,onClick:e=>g(t)},o(h[t]),9,p))),128))],8,f))}});function h(e,t){return s()===`zh-CN`?e:t}var g={draft:[`草案`,`Draft`],active:[`进行中`,`Active`],paused:[`已暂停`,`Paused`],waiting_input:[`等待你的判断`,`Awaiting your decision`],waiting_auth:[`等待授权`,`Awaiting authorization`],concluded:[`已结束`,`Concluded`],failed:[`失败`,`Failed`],cancelled:[`已停止`,`Stopped`],discussion:[`讨论`,`Discussion`],collaboration:[`协作任务`,`Collaborative task`],planning:[`分工`,`Planning`],implementation:[`实施`,`Implementation`],review:[`审查`,`Review`],synthesis:[`汇总`,`Synthesis`],moderator:[`主持人`,`Moderator`],specialist:[`专家`,`Specialist`],implementer:[`实施者`,`Implementer`],reviewer:[`审查者`,`Reviewer`],pending:[`待处理`,`Pending`],claimed:[`已领取`,`Claimed`],running:[`运行中`,`Running`],reported_complete:[`已报告完成`,`Completion reported`],completed:[`已提交回合`,`Turn submitted`],interrupted:[`已中断`,`Interrupted`],blocked:[`受阻`,`Blocked`],expired:[`已过期`,`Expired`],cancellation_requested:[`已请求取消`,`Cancellation requested`],human_accepted:[`已由人确认`,`Accepted by human`],task_verified:[`任务验证通过`,`Task verified`],"read-only":[`只读`,`Read only`],"workspace-write":[`允许写入工作区`,`Workspace write`],mcp:[`MCP · 主动参与`,`MCP · active participation`],codex:[`Codex CLI`,`Codex CLI`],"claude-code":[`Claude Code CLI`,`Claude Code CLI`],pi:[`Pi · 本地 Ollama`,`Pi · local Ollama`],grok:[`Grok · xAI API`,`Grok · xAI API`],a2a:[`A2A · 协议适配`,`A2A · protocol adapter`],proposal:[`提案`,`Proposal`],question:[`提问`,`Question`],handoff:[`交接`,`Handoff`],result:[`结果`,`Result`],dissent:[`分歧`,`Dissent`],user:[`你的补充`,`Your input`],human:[`你的补充`,`Your input`],system:[`系统事件`,`System event`],seat_joined:[`席位加入`,`Seat joined`],turn_claimed:[`回合被领取`,`Turn claimed`],phase_changed:[`阶段改变`,`Phase changed`],attempt_failed:[`尝试失败`,`Attempt failed`],attempt_interrupted:[`尝试中断`,`Attempt interrupted`],owner_control:[`所有者操作`,`Owner control`],invitation_issued:[`邀请已签发`,`Invitation issued`],invitation_revoked:[`邀请已撤销`,`Invitation revoked`],owner_completed:[`所有者验收`,`Owner acceptance`],turn_skipped:[`回合被跳过`,`Turn skipped`]};function _(e){if(!e)return h(`未知`,`Unknown`);let t=g[e];return t?h(...t):e}function v(e){if(!e)return h(`未知`,`Unknown`);let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString(s(),{hour12:!1})}function y(e){if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return h(`未提供标识`,`No identifier reported`);let t=e;return[t.title??t.name,t.uri??t.path??t.id].filter(e=>typeof e==`string`).join(` · `)||h(`未提供标识`,`No identifier reported`)}export{m as a,v as i,h as n,_ as r,y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.brand-block[data-v-68727ec7]{isolation:isolate;width:100%;color:inherit;text-align:left;-webkit-tap-highlight-color:transparent;align-items:center;gap:11px;padding:0 8px 22px;display:flex;position:relative}.brand-block[data-v-68727ec7]:before{content:"";z-index:-1;opacity:0;pointer-events:none;background:radial-gradient(circle,#f4c97033,#f4c97000 68%);border-radius:50%;width:58px;height:58px;position:absolute;top:-8px;left:0}.brand-effect-button[data-v-68727ec7]{appearance:none;color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;display:block}.brand-effect-button[data-v-68727ec7]:focus{outline:none}.brand-block.is-keyboard-focused .brand-mark-wrap[data-v-68727ec7]{box-shadow:0 0 0 2px var(--color-accent);border-radius:50%}.brand-mark-wrap[data-v-68727ec7]{flex:none;width:38px;height:38px;position:relative}.brand-mark[data-v-68727ec7]{object-fit:contain;width:38px;height:38px;display:block}.brand-orbit[data-v-68727ec7]{z-index:3;opacity:0;pointer-events:none;border-radius:50%;animation:.94s cubic-bezier(.2,.7,.22,1) both brand-orbit-travel-68727ec7;position:absolute;inset:-8px}.brand-orbit[data-v-68727ec7]:before{content:"";border-radius:inherit;background:conic-gradient(from 20deg, transparent 0 74%, #e6b14a00 79%, #e6b14a3d 87%, #fff4d3c7 96%, transparent 100%);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 2px), var(--color-ink) calc(100% - 1.5px));-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 2px), var(--color-ink) calc(100% - 1.5px));mask:radial-gradient(farthest-side, transparent calc(100% - 2px), var(--color-ink) calc(100% - 1.5px));position:absolute;inset:0}.brand-orbit[data-v-68727ec7]:after{content:"";background:radial-gradient(circle at 34% 30%, var(--color-surface) 0 14%, var(--color-warning-soft) 30%, var(--color-warning) 58%, #e8b65300 74%);border-radius:50%;width:6px;height:6px;position:absolute;top:-2px;left:50%;transform:translate(-50%);box-shadow:0 0 6px #f4c668c7,0 0 14px #f4c66852}.brand-copy[data-v-68727ec7]{min-width:0;display:grid;position:relative}.brand-title-row[data-v-68727ec7]{align-items:baseline;gap:7px;display:flex}.brand-name[data-v-68727ec7]{letter-spacing:-.02em;font-size:18px;font-weight:700}.brand-version[data-v-68727ec7]{color:var(--color-muted);letter-spacing:.02em;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600}.brand-version-button[data-v-68727ec7]{appearance:none;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;margin:-2px -1px;padding:2px 1px;display:inline-flex}.brand-version-button:hover .brand-version[data-v-68727ec7]{color:var(--color-ink)}.brand-version-button[data-v-68727ec7]:focus-visible{box-shadow:0 0 0 2px var(--color-accent);outline:none}.brand-update-dot[data-v-68727ec7]{background:var(--color-danger);border-radius:50%;flex:none;width:5px;height:5px;box-shadow:0 1px 4px #bd1e1e47}.brand-subtitle[data-v-68727ec7]{color:var(--color-muted);margin-top:2px;font-size:12px}.brand-copy-reflection[data-v-68727ec7]{z-index:3;opacity:0;pointer-events:none;clip-path:polygon(-26% -20%,-8% -20%,-18% 120%,-36% 120%);will-change:clip-path, opacity;height:22px;animation:.62s cubic-bezier(.22,.66,.25,1) .62s both brand-copy-reflection-68727ec7;position:absolute;top:0;left:0;right:0}.brand-copy-reflection .brand-name[data-v-68727ec7],.brand-copy-reflection .brand-version[data-v-68727ec7]{color:var(--color-warning);text-shadow:0 0 6px #efbe5d47}.brand-update-popover[data-v-68727ec7]{z-index:20;color:var(--color-ink);background:var(--color-surface);border-radius:12px;padding:12px;position:absolute;top:45px;left:49px;right:8px;box-shadow:0 10px 28px #23302729}.brand-update-popover strong[data-v-68727ec7]{font-size:12px;line-height:1.45;display:block}.brand-update-popover p[data-v-68727ec7]{color:var(--color-muted);margin:5px 0 9px;font-size:12px;line-height:1.5}.brand-update-popover code[data-v-68727ec7]{border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface-subtle);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;padding:7px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45;display:block}.brand-update-popover a[data-v-68727ec7]{color:var(--color-ink);text-underline-offset:2px;margin-top:9px;font-size:12px;font-weight:650;text-decoration-thickness:1px;display:inline-block}.brand-update-popover a[data-v-68727ec7]:hover{color:var(--color-ink)}.brand-update-popover a[data-v-68727ec7]:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}.brand-block.is-sparkling[data-v-68727ec7]:before{animation:1.05s ease-out both brand-halo-68727ec7}@keyframes brand-orbit-travel-68727ec7{0%{opacity:0;transform:rotate(-132deg)scale(.94)}18%{opacity:0}32%{opacity:1}72%{opacity:.9}to{opacity:0;transform:rotate(80deg)scale(1.01)}}@keyframes brand-copy-reflection-68727ec7{0%{opacity:0;clip-path:polygon(-26% -20%,-8% -20%,-18% 120%,-36% 120%)}14%{opacity:.86}78%{opacity:.68}to{opacity:0;clip-path:polygon(132% -20%,150% -20%,140% 120%,122% 120%)}}@keyframes brand-halo-68727ec7{0%{opacity:0;transform:scale(.72)}34%{opacity:1}to{opacity:0;transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.brand-orbit[data-v-68727ec7]{display:none}.brand-block.is-sparkling[data-v-68727ec7]:before{animation:.28s ease-out both brand-reduced-halo-68727ec7}.brand-copy-reflection[data-v-68727ec7]{clip-path:inset(0);animation:.28s ease-out both brand-reduced-glint-68727ec7}@keyframes brand-reduced-halo-68727ec7{0%,to{opacity:0}45%{opacity:.72}}@keyframes brand-reduced-glint-68727ec7{0%,to{opacity:0}45%{opacity:.58}}}.navigation-recovery[data-v-d154c242]{background:var(--color-warning-soft);color:var(--color-warning);border-radius:10px;flex:none;align-items:center;gap:16px;margin:12px 24px;padding:16px;font-size:13px;display:flex}.navigation-recovery>div[data-v-d154c242]{flex:1;min-width:0}.navigation-recovery strong[data-v-d154c242]{font-weight:650}.navigation-recovery p[data-v-d154c242]{margin:4px 0 0;line-height:1.6}.navigation-recovery a[data-v-d154c242]{flex-shrink:0;text-decoration:none}.navigation-recovery-dismiss[data-v-d154c242]{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px}.navigation-recovery[data-v-d154c242] :is(a,button):focus-visible{outline:2px solid var(--color-warning);outline-offset:3px}@media (width<=640px){.navigation-recovery[data-v-d154c242]{flex-wrap:wrap;gap:10px;margin:10px 12px}.navigation-recovery>div[data-v-d154c242]{flex-basis:100%}}.employee-workbench-link[data-v-2f019061]{width:32px;min-height:36px;color:var(--color-muted);border-radius:var(--radius-control);flex:0 0 32px;place-items:center;padding:6px;display:grid}.employee-workbench-link[data-v-2f019061]:hover{color:var(--color-accent);background:var(--color-accent-soft)}.employee-nav-row[data-v-2f019061]{align-items:center;gap:4px;min-width:0;display:flex}.employee-nav-row>.employee-nav[data-v-2f019061]{flex:1;grid-template-columns:26px minmax(0,1fr);min-width:0;padding-inline:8px}.employee-nav-row>.agent-hand[data-v-2f019061]{width:auto;margin-inline-end:4px}.employee-nav-mark[data-v-2f019061]{border-radius:var(--radius-control);background:var(--color-surface-subtle);height:26px;color:var(--color-ink);flex:0 0 26px;place-items:center;font-size:15px;font-weight:650;display:grid;overflow:hidden}.employee-nav-mark img[data-v-2f019061]{object-fit:cover;width:100%;height:100%}.attention-reply[data-v-6b64bc2c]{gap:20px;min-width:0;display:grid}.attention-question h3[data-v-6b64bc2c]{letter-spacing:-.025em;margin:0 0 12px;font-size:22px;line-height:1.4}.attention-question p[data-v-6b64bc2c],.attention-context[data-v-6b64bc2c]{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.75}.attention-context[data-v-6b64bc2c]{color:var(--color-muted)}.attention-reply .ui-disclosure[data-v-6b64bc2c]{border-bottom:1px solid var(--color-border);padding-block:12px}.attention-choices[data-v-6b64bc2c]{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.attention-choices legend[data-v-6b64bc2c]{padding:0 0 10px;font-size:13px;font-weight:600}.attention-choice[data-v-6b64bc2c]{border:1px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer;overflow-wrap:anywhere;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.5;display:flex}.attention-choice[data-v-6b64bc2c]:hover{background:var(--color-surface-hover)}.attention-choice.is-selected[data-v-6b64bc2c]{border-color:var(--color-accent);background:var(--color-accent-soft)}.attention-choice input[data-v-6b64bc2c]{flex:none;width:16px;height:16px;margin:3px 0 0}.attention-input[data-v-6b64bc2c]{gap:8px;display:grid}.attention-input label[data-v-6b64bc2c]{color:var(--color-muted);font-size:13px}.attention-input textarea[data-v-6b64bc2c]{box-sizing:border-box;width:100%}.attention-submit[data-v-6b64bc2c]{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding-top:16px;display:flex}.attention-submit p[data-v-6b64bc2c]{max-width:270px;color:var(--color-muted);margin:0;font-size:12px;line-height:1.6}.attention-submit button[data-v-6b64bc2c]{flex:none}.attention-response-error[data-v-6b64bc2c]{overflow-wrap:anywhere;margin:0;font-size:13px}@media (width<=640px){.attention-question h3[data-v-6b64bc2c]{font-size:19px}.attention-input textarea[data-v-6b64bc2c]{font-size:16px}.attention-submit[data-v-6b64bc2c]{flex-direction:column;align-items:stretch;gap:12px}.attention-submit p[data-v-6b64bc2c]{max-width:none}}.attention-nav-status{justify-self:end;align-items:center;gap:6px;display:inline-flex}.attention-dialog{border:1px solid var(--color-border);border-radius:var(--radius-dialog);background:var(--color-surface);width:min(980px,100vw - 40px);max-width:none;max-height:calc(100dvh - 40px);color:var(--color-ink);box-shadow:var(--shadow-dialog);padding:0;overflow:hidden}.attention-dialog[open]{flex-direction:column;height:min(780px,100dvh - 40px);display:flex}.attention-dialog::backdrop{background:var(--color-overlay)}.attention-header{border-bottom:1px solid var(--color-border);flex:none;justify-content:space-between;align-items:center;padding:16px 20px 16px 24px;display:flex}.attention-header>div{align-items:center;gap:10px;display:flex}.attention-header h2{letter-spacing:-.02em;margin:0;font-size:18px}.attention-header>button{font-size:24px}.attention-workspace{flex:auto;grid-template-columns:280px minmax(0,1fr);height:min(700px,100dvh - 114px);min-height:0;display:grid;overflow:hidden}.attention-queue{background:var(--color-surface-subtle);border-right:1px solid var(--color-border);overscroll-behavior:contain;min-width:0;padding:12px;overflow-y:auto}.attention-queue-toolbar{color:var(--color-muted);justify-content:space-between;align-items:center;gap:8px;padding:0 4px 8px;font-size:12px;display:flex}.attention-queue-toolbar>span{overflow-wrap:anywhere;min-width:0}.attention-queue-toolbar>button{flex-shrink:0;padding:6px 8px;font-size:12px}.attention-request-list{gap:6px;display:grid}.attention-request{text-align:left;border-radius:var(--radius-control);width:100%;min-width:0;color:var(--color-ink);cursor:pointer;background:0 0;border:1px solid #0000;gap:7px;padding:14px 12px;display:grid}.attention-request:hover{background:var(--color-surface-hover)}.attention-request.is-selected{border-color:var(--color-border);background:var(--color-surface);box-shadow:inset 3px 0 var(--color-accent)}.attention-request-meta{color:var(--color-muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.attention-request-meta>span{flex-shrink:0}.attention-request strong{overflow-wrap:anywhere;font-size:13px;font-weight:550;line-height:1.5}.attention-request-project{color:var(--color-muted);overflow-wrap:anywhere;font-size:11px}.attention-more{width:100%;margin-top:12px}.attention-detail{overscroll-behavior:contain;min-width:0;padding:24px 28px;overflow-y:auto}.attention-detail-meta{color:var(--color-muted);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;font-size:12px;display:flex}.attention-task-link{color:var(--color-accent);text-underline-offset:4px;margin-top:16px;font-size:13px;display:inline-block}.attention-mobile-picker{display:none}.attention-error{color:var(--color-danger);background:var(--color-danger-soft);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;font-size:13px;display:flex}.attention-empty{text-align:center;color:var(--color-muted);flex:1;align-content:center;justify-items:center;gap:16px;padding:72px 24px;display:grid}.attention-empty>span{background:var(--color-success-soft);width:48px;height:48px;color:var(--color-success);border-radius:50%;place-items:center;font-size:24px;display:grid}.attention-empty p{margin:0;font-size:14px}@media (width<=640px){.attention-dialog{width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 16px)}.attention-dialog[open]{height:calc(100dvh - 16px)}.attention-header{padding:12px 16px}.attention-workspace{flex-direction:column;flex:auto;height:auto;display:flex;overflow:hidden}.attention-queue{border-right:0;border-bottom:1px solid var(--color-border);flex:none;max-height:185px;padding:8px 16px 12px}.attention-queue-toolbar{padding:0}.attention-mobile-picker{color:var(--color-muted);gap:6px;font-size:12px;display:grid}.attention-mobile-picker select{width:100%;font-size:16px}.attention-request-list{display:none}.attention-detail{padding:20px 16px}.attention-detail-meta{margin-bottom:16px}}.topbar--workbench[data-v-ae0a6b85]{display:none}.workbench-host-label[data-v-ae0a6b85]{color:var(--color-muted);font-size:12px;font-weight:600}@media (width<=920px){.topbar--workbench[data-v-ae0a6b85]{background:var(--color-surface);border:0;justify-content:flex-start;gap:12px;min-height:44px;padding:7px 16px;display:flex}}:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-subtle:#f0f2f5;--color-surface-hover:#f7f9fc;--color-ink:#1d2129;--color-muted:#606b7d;--color-border:#e2e5ea;--color-border-strong:#c5cbd5;--color-control-border:#8791a2;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#edf3ff;--color-success:#23734f;--color-success-soft:#edf7f1;--color-warning:#936016;--color-warning-soft:#fff7e8;--color-danger:#b93838;--color-danger-soft:#fff1f0;--color-on-accent:#fff;--color-chart-blue:#2563eb;--color-chart-teal:#0f766e;--color-chart-violet:#7c3aed;--color-chart-amber:#b45309;--color-chart-rose:#be185d;--color-chart-cyan:#0e7490;--color-chart-slate:#64748b;--color-overlay:#141e3047;--radius-control:10px;--radius-card:16px;--radius-dialog:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--shadow-popover:0 12px 36px #141e301f;--shadow-dialog:0 24px 80px #141e302e;--motion-fast:.16s;--motion-ease:cubic-bezier(.16, 1, .3, 1);--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;font-family:var(--font-ui);color:var(--color-ink);background:var(--color-bg);font-synthesis:none;font-size:14px;line-height:1.5}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{height:100%}html,body{overflow:hidden}body{min-width:320px;margin:0}button{cursor:pointer}h1,h2,h3,p{margin:0}h1{letter-spacing:-.025em;font-size:25px;font-weight:650;line-height:1.25}h2{letter-spacing:-.02em;font-size:20px;font-weight:620;line-height:1.3}h3{font-size:16px;font-weight:600;line-height:1.4}a{color:var(--color-accent)}.app-shell{grid-template-columns:224px minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100dvh;min-height:0;padding:24px 14px 16px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar>.brand-block,.sidebar-foot{flex:none}.primary-nav{overscroll-behavior:contain;flex:auto;align-content:start;gap:4px;min-height:0;padding:8px 0 20px;display:grid;overflow:hidden auto}.nav-section-label{color:var(--color-muted);margin:20px 12px 8px;font-size:12px;font-weight:500}.primary-nav>.nav-section-label:first-child{margin-top:4px}.primary-nav>a,.primary-nav>button,.primary-nav .employee-nav{border-radius:var(--radius-control);width:100%;min-height:42px;color:var(--color-muted);text-align:left;background:0 0;border:0;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 12px;font-size:14px;line-height:1.4;text-decoration:none;display:grid;position:relative}.primary-nav>a:hover,.primary-nav>button:hover,.primary-nav .employee-nav:hover{color:var(--color-ink);background:var(--color-surface-hover)}.primary-nav>a.is-active,.primary-nav>button[aria-pressed=true],.primary-nav .employee-nav.is-active{color:var(--color-accent);background:var(--color-accent-soft);font-weight:600}.nav-copy{min-width:0}.nav-copy strong{font-size:inherit;font-weight:inherit}.nav-icon{width:18px;height:18px;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;display:inline-block}.nav-icon-overview{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M512%2085.333333c235.648%200%20426.666667%20191.018667%20426.666667%20426.666667s-191.018667%20426.666667-426.666667%20426.666667S85.333333%20747.648%2085.333333%20512%20276.352%2085.333333%20512%2085.333333z%20m0%2085.333334a341.333333%20341.333333%200%201%200%200%20682.666666%20341.333333%20341.333333%200%200%200%200-682.666666z%20m0%2042.666666c43.434667%200%2084.693333%209.258667%20121.941333%2025.941334L567.253333%20305.92a213.333333%20213.333333%200%200%200-206.08%20356.949333L300.8%20723.2l-6.656-6.869333A298.666667%20298.666667%200%200%201%20512%20213.333333z%20m272.725333%20176.768c16.64%2037.205333%2025.941333%2078.506667%2025.941334%20121.898667a297.728%20297.728%200%200%201-87.466667%20211.2l-60.330667-60.330667a213.674667%20213.674667%200%200%200%2055.253334-206.08l66.602666-66.688z%20m-91.733333-119.466666l60.373333%2060.330666-158.933333%20158.976A85.461333%2085.461333%200%200%201%20512%20597.333333a85.333333%2085.333333%200%201%201%2022.058667-167.765333l158.976-158.933333z'/%3e%3c/svg%3e")}.nav-icon-personal-profile{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M853.333333%200H170.666667C75.093333%200%200%2075.093333%200%20170.666667v682.666666c0%2095.573333%2075.093333%20170.666667%20170.666667%20170.666667h682.666666c95.573333%200%20170.666667-75.093333%20170.666667-170.666667V170.666667c0-95.573333-75.093333-170.666667-170.666667-170.666667z%20m102.4%20853.333333c0%2054.613333-47.786667%20102.4-102.4%20102.4H170.666667c-54.613333%200-102.4-47.786667-102.4-102.4V170.666667c0-54.613333%2047.786667-102.4%20102.4-102.4h682.666666c54.613333%200%20102.4%2047.786667%20102.4%20102.4v682.666666z%20m-238.933333-477.866666c0-116.053333-88.746667-204.8-204.8-204.8s-204.8%2088.746667-204.8%20204.8c0%2061.44%2027.306667%20116.053333%2068.266667%20157.013333-122.88%2040.96-204.8%20157.013333-204.8%20286.72%200%2020.48%2013.653333%2034.133333%2034.133333%2034.133333s34.133333-13.653333%2034.133333-34.133333c0-129.706667%20109.226667-238.933333%20238.933334-238.933333h34.133333c116.053333%200%20204.8-88.746667%20204.8-204.8z%20m-204.8%20136.533333c-75.093333%200-136.533333-61.44-136.533333-136.533333s61.44-136.533333%20136.533333-136.533334%20136.533333%2061.44%20136.533333%20136.533334-61.44%20136.533333-136.533333%20136.533333z%20m273.066667%20102.4h-204.8c-20.48%200-34.133333%2013.653333-34.133334%2034.133333s13.653333%2034.133333%2034.133334%2034.133334h204.8c20.48%200%2034.133333-13.653333%2034.133333-34.133334s-13.653333-34.133333-34.133333-34.133333z%20m0%20136.533333h-204.8c-20.48%200-34.133333%2013.653333-34.133334%2034.133334s13.653333%2034.133334%2034.133334%2034.133334h204.8c20.48%200%2034.133333-13.653333%2034.133333-34.133333s-13.653333-34.133333-34.133333-34.133334z'/%3e%3c/svg%3e")}.nav-icon-knowledge-organizer{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M870%20719.5c-23.6%200-46%205.5-65.9%2015.3L689.6%20620.3c19.3-31.7%2030.4-69%2030.4-108.8s-11.1-77-30.4-108.8l113.8-113.8c20.1%2010%2042.7%2015.6%2066.6%2015.6%2082.7%200%20150-67.3%20150-150s-67.3-150-150-150-150%2067.3-150%20150c0%2022.4%204.9%2043.6%2013.7%2062.7L618.9%20332c-31.8-19.3-69.1-30.5-108.9-30.5-39.8%200-77%2011.1-108.8%2030.4L289.1%20219.7c9.6-19.7%2014.9-41.9%2014.9-65.2%200-82.7-67.3-150-150-150S4%2071.8%204%20154.5s67.3%20150%20150%20150c22.9%200%2044.6-5.2%2064-14.4l112.5%20112.5c-19.3%2031.8-30.5%2069.1-30.5%20108.9%200%2039.8%2011.2%2077.1%2030.5%20108.9L217.3%20733.5c-19.3-9-40.7-14-63.3-14-82.7%200-150%2067.3-150%20150s67.3%20150%20150%20150%20150-67.3%20150-150c0-23.6-5.5-46-15.3-65.9l112.5-112.5c31.7%2019.3%2069%2030.4%20108.8%2030.4s77.1-11.2%20108.9-30.5L734%20806.2c-9%2019.3-14%2040.7-14%2063.3%200%2082.7%2067.3%20150%20150%20150s150-67.3%20150-150-67.3-150-150-150zm0-615c27.6%200%2050%2022.4%2050%2050s-22.4%2050-50%2050-50-22.4-50-50%2022.4-50%2050-50zm-766%2050c0-27.6%2022.4-50%2050-50s50%2022.4%2050%2050-22.4%2050-50%2050-50-22.4-50-50zm50%20765c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050zm246-408c0-60.7%2049.3-110%20110-110s110%2049.3%20110%20110-49.3%20110-110%20110-110-49.3-110-110zm470%20408c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050z'/%3e%3c/svg%3e")}.nav-icon-personal-project{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M800.2%20299.5H683.7l-7.8-32.1c-7.8-31.9-30.6-66.8-62.6-95.6-15.3-13.8-55.2-46-94.4-46h-293c-46.3%200-84%2042-84%2093.7v140.3h.2v456.4c0%2045.2%2036.7%2081.9%2081.9%2081.9h576.2c45.2%200%2081.9-36.7%2081.9-81.9V381.4c0-45.1-36.7-81.9-81.9-81.9zM211.9%20219.5c0-14.2%208.4-23.7%2014-23.7h293c5.4%200%2024.1%206.8%2047.5%2027.9%2021.2%2019.1%2037.1%2042.2%2041.5%2060.3l1.4%205.8H211.9v-70.3zm600.2%20596.8c0%206.4-5.4%2011.9-11.9%2011.9H224c-6.4%200-11.9-5.4-11.9-11.9V369.5h588.1c6.4%200%2011.9%205.4%2011.9%2011.9v434.9z'/%3e%3cpath%20d='M282.4%20486.3h70v70h-70zM282.4%20644.4h70v70h-70zM731.6%20486.3H442.1c-19.3%200-35%2015.7-35%2035s15.7%2035%2035%2035h289.5c19.3%200%2035-15.7%2035-35s-15.7-35-35-35zM731.6%20644.4H442.1c-19.3%200-35%2015.7-35%2035s15.7%2035%2035%2035h289.5c19.3%200%2035-15.7%2035-35s-15.7-35-35-35z'/%3e%3c/svg%3e")}.nav-icon-project-agent{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M512%2072c121.5%200%20220%2098.5%20220%20220%200%2066.5-29.5%20126-76.1%20166.4C752.7%20499.7%20820%20595.6%20820%20707v89c0%2025.4-20.6%2046-46%2046H250c-25.4%200-46-20.6-46-46v-89c0-111.4%2067.3-207.3%20164.1-248.6A219.5%20219.5%200%200%201%20292%20292C292%20170.5%20390.5%2072%20512%2072Zm0%2076c-79.5%200-144%2064.5-144%20144s64.5%20144%20144%20144%20144-64.5%20144-144-64.5-144-144-144Zm0%20364c-128.1%200-232%2087.3-232%20195v59h464v-59c0-107.7-103.9-195-232-195Z'/%3e%3cpath%20d='M788%20184h96v-96h68v96h96v68h-96v96h-68v-96h-96z'%20transform='translate(-72%2024)'/%3e%3c/svg%3e")}.nav-icon-public-project{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M494.677333%20114.368a42.666667%2042.666667%200%200%201%2034.645334%200l329.173333%20146.304a21.333333%2021.333333%200%200%201%202.304%2037.76l-61.333333%2036.821333a42.666667%2042.666667%200%200%201-21.952%206.08H246.485333a42.666667%2042.666667%200%200%201-21.952-6.08L163.2%20298.453333a21.333333%2021.333333%200%200%201%202.304-37.781333l329.173333-146.304zM320%20384a21.333333%2021.333333%200%200%201%2021.333333%2021.333333v234.666667h42.666667V405.333333a21.333333%2021.333333%200%200%201%2021.333333-21.333333h64a21.333333%2021.333333%200%200%201%2021.333334%2021.333333v234.666667h42.666666V405.333333a21.333333%2021.333333%200%200%201%2021.333334-21.333333h64a21.333333%2021.333333%200%200%201%2021.333333%2021.333333v234.666667h42.666667V405.333333a21.333333%2021.333333%200%200%201%2021.333333-21.333333h64a21.333333%2021.333333%200%200%201%2021.333333%2021.333333v234.666667l38.4%2051.2A21.333333%2021.333333%200%200%201%20810.666667%20725.333333H213.333333a21.333333%2021.333333%200%200%201-17.066666-34.133333L234.666667%20640V405.333333a21.333333%2021.333333%200%200%201%2021.333333-21.333333h64zM149.333333%20789.333333a21.333333%2021.333333%200%200%201%2021.333334-21.333333h682.666666a21.333333%2021.333333%200%200%201%2021.333334%2021.333333v64a21.333333%2021.333333%200%200%201-21.333334%2021.333334H170.666667a21.333333%2021.333333%200%200%201-21.333334-21.333334v-64z'/%3e%3c/svg%3e")}.nav-icon-knowledge-graph{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M870%20719.5c-23.6%200-46%205.5-65.9%2015.3L689.6%20620.3c19.3-31.7%2030.4-69%2030.4-108.8s-11.1-77-30.4-108.8l113.8-113.8c20.1%2010%2042.7%2015.6%2066.6%2015.6%2082.7%200%20150-67.3%20150-150s-67.3-150-150-150-150%2067.3-150%20150c0%2022.4%204.9%2043.6%2013.7%2062.7L618.9%20332c-31.8-19.3-69.1-30.5-108.9-30.5-39.8%200-77%2011.1-108.8%2030.4L289.1%20219.7c9.6-19.7%2014.9-41.9%2014.9-65.2%200-82.7-67.3-150-150-150S4%2071.8%204%20154.5s67.3%20150%20150%20150c22.9%200%2044.6-5.2%2064-14.4l112.5%20112.5c-19.3%2031.8-30.5%2069.1-30.5%20108.9%200%2039.8%2011.2%2077.1%2030.5%20108.9L217.3%20733.5c-19.3-9-40.7-14-63.3-14-82.7%200-150%2067.3-150%20150s67.3%20150%20150%20150%20150-67.3%20150-150c0-23.6-5.5-46-15.3-65.9l112.5-112.5c31.7%2019.3%2069%2030.4%20108.8%2030.4s77.1-11.2%20108.9-30.5L734%20806.2c-9%2019.3-14%2040.7-14%2063.3%200%2082.7%2067.3%20150%20150%20150s150-67.3%20150-150-67.3-150-150-150zm0-615c27.6%200%2050%2022.4%2050%2050s-22.4%2050-50%2050-50-22.4-50-50%2022.4-50%2050-50zm-766%2050c0-27.6%2022.4-50%2050-50s50%2022.4%2050%2050-22.4%2050-50%2050-50-22.4-50-50zm50%20765c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050zm246-408c0-60.7%2049.3-110%20110-110s110%2049.3%20110%20110-49.3%20110-110%20110-110-49.3-110-110zm470%20408c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050z'/%3e%3c/svg%3e")}.nav-icon-about{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M5%204.5a2.5%202.5%200%201%200%200%205%202.5%202.5%200%200%200%200-5Zm0%2010a2.5%202.5%200%201%200%200%205%202.5%202.5%200%200%200%200-5ZM11%206h9v2h-9V6Zm0%2010h9v2h-9v-2Z'/%3e%3c/svg%3e")}.nav-icon-settings{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3ccircle%20cx='12'%20cy='12'%20r='3'/%3e%3cpath%20d='M19.4%2015a1.7%201.7%200%200%200%20.34%201.88l.06.06-2.83%202.83-.06-.06a1.7%201.7%200%200%200-1.88-.34%201.7%201.7%200%200%200-1.03%201.56V21h-4v-.08A1.7%201.7%200%200%200%209%2019.37a1.7%201.7%200%200%200-1.88.34l-.06.06-2.83-2.83.06-.06A1.7%201.7%200%200%200%204.63%2015%201.7%201.7%200%200%200%203.08%2014H3v-4h.08A1.7%201.7%200%200%200%204.63%209a1.7%201.7%200%200%200-.34-1.88l-.06-.06%202.83-2.83.06.06A1.7%201.7%200%200%200%209%204.63%201.7%201.7%200%200%200%2010%203.08V3h4v.08A1.7%201.7%200%200%200%2015%204.63a1.7%201.7%200%200%200%201.88-.34l.06-.06%202.83%202.83-.06.06A1.7%201.7%200%200%200%2019.37%209%201.7%201.7%200%200%200%2020.92%2010H21v4h-.08A1.7%201.7%200%200%200%2019.4%2015Z'/%3e%3c/svg%3e")}.nav-icon-review{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M768%20992H256c-89.6%200-160-70.4-160-160V320L377.6%2032H768c89.6%200%20160%2070.4%20160%20160v640c0%2089.6-70.4%20160-160%20160zM160%20345.6V832c0%2051.2%2044.8%2096%2096%2096h512c51.2%200%2096-44.8%2096-96V192c0-51.2-44.8-96-96-96H403.2L160%20345.6z'/%3e%3cpath%20d='M300.8%20352H147.2v-64h153.6c32%200%2051.2-25.6%2051.2-51.2V64h64v172.8c0%2064-51.2%20115.2-115.2%20115.2zm134.4%20358.4c-6.4%200-19.2%200-25.6-6.4l-128-140.8c-12.8-12.8-12.8-32%200-44.8%2012.8-12.8%2032-12.8%2044.8%200l134.4%20134.4c12.8%2012.8%2012.8%2032%200%2044.8-6.4%206.4-12.8%2012.8-25.6%2012.8z'/%3e%3cpath%20d='M435.2%20710.4c-6.4%200-19.2%200-25.6-6.4-12.8-12.8-12.8-32%200-44.8L684.8%20384c12.8-12.8%2032-12.8%2044.8%200s12.8%2032%200%2044.8L460.8%20697.6c-6.4%206.4-12.8%2012.8-25.6%2012.8z'/%3e%3c/svg%3e")}.nav-icon-connections{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M582.239997%20663.142968c-56.713997%200-113.426994-21.589999-156.609992-64.772997-11.728999-11.726999-11.728999-30.792998%200-42.520998%2011.728999-11.726999%2030.791998-11.726999%2042.520998%200%2062.910997%2062.909997%20165.212992%2062.909997%20228.121989%200L914.94998%20337.169984c62.910997-62.909997%2062.910997-165.211992%200-228.121989-62.907997-62.909997-165.210992-62.909997-228.119989%200L502.313%20293.565986c-11.728999%2011.727999-30.792998%2011.727999-42.521998%200-11.726999-11.727999-11.726999-30.792998%200-42.520998L644.308994%2066.527997c86.364996-86.364996%20226.858989-86.364996%20313.163985%200%2086.304996%2086.363996%2086.363996%20226.857989%200%20313.163985L738.794989%20598.368971c-43.183998%2043.183998-99.898995%2064.772997-156.612992%2064.772997zM221.386014%201023.99995c-56.714997%200-113.429994-21.591999-156.611992-64.772997-86.363996-86.364996-86.363996-226.856989%200-313.163985l218.678989-218.678989c86.364996-86.364996%20226.858989-86.364996%20313.162985%200%2011.727999%2011.727999%2011.727999%2030.791998%200%2042.520998-11.727999%2011.726999-30.792998%2011.726999-42.518998%200-62.910997-62.909997-165.213992-62.909997-228.122989%200L107.29402%20688.583966c-62.909997%2062.907997-62.909997%20165.212992%200%20228.120989%2062.908997%2062.907997%20165.211992%2062.907997%20228.121989%200l184.516991-184.517991c11.728999-11.728999%2030.793998-11.728999%2042.520998%200%2011.728999%2011.726999%2011.728999%2030.790998%200%2042.520998L377.938007%20959.226953C334.755009%201002.407951%20278.040011%201023.99995%20221.325014%201023.99995z'/%3e%3c/svg%3e")}.sidebar-foot{border-top:1px solid var(--color-border);margin-top:auto;padding:16px 8px 0}.service-runtime-list{gap:12px;display:grid}.runtime-status{align-items:center;gap:8px;min-width:0;font-size:12px;display:flex}.runtime-status strong{font-size:12px;font-weight:500;display:block}.runtime-status small{color:var(--color-muted);margin-top:2px;font-size:12px;display:block}.service-details{margin-top:8px}.service-details>summary{color:var(--color-muted);cursor:pointer;align-items:center;gap:8px;font-size:12px;list-style:none;display:flex}.service-details>summary::-webkit-details-marker{display:none}.service-details[open] .runtime-status{margin-top:10px}.status-dot{background:var(--color-muted);border-radius:50%;flex:none;width:6px;height:6px}.status-dot.ready{background:var(--color-success)}.status-dot.error{background:var(--color-danger)}.status-dot.loading{background:var(--color-accent)}.workspace{flex-direction:column;min-width:0;height:100dvh;min-height:0;display:flex;overflow:hidden}.topbar{background:var(--color-bg);flex:none;justify-content:space-between;align-items:center;gap:24px;min-height:72px;padding:18px 28px 14px;display:flex}.topbar-heading{min-width:0}.topbar-heading h1{font-size:25px}.topbar-actions{flex:none;align-items:center;gap:12px;display:flex}.feedback{border:1px solid var(--color-border);background:var(--color-danger-soft);color:var(--color-danger);border-radius:var(--radius-control);margin:8px 28px 0;padding:12px 16px;font-size:14px}.feedback.success{background:var(--color-success-soft);color:var(--color-success)}.view{flex:1;min-width:0;min-height:0;padding:14px 28px 28px;overflow:auto}.view[data-view-panel=personal-profile]{flex-direction:column;display:flex;overflow:hidden}.section-toolbar{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.section-toolbar p{color:var(--color-muted);font-size:14px;line-height:1.5}.mode-chip{color:var(--color-success);background:var(--color-success-soft);border-radius:6px;padding:4px 8px;font-size:12px;display:inline-flex}.two-column{grid-template-columns:1.15fr .85fr;gap:24px;display:grid}.section-block{border-top:1px solid var(--color-border);padding-top:16px}.section-title{margin-bottom:16px}@media (width>=1800px){.topbar,.view{padding-inline:48px}}.space-heading{grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:15px;padding:0 0 18px;display:grid}.space-heading-icon{background-color:var(--color-surface);width:42px;height:42px;color:var(--color-ink);border:1px solid var(--color-border);border-radius:10px;place-items:center;display:grid}.space-heading-icon .nav-icon{width:21px;height:21px}.public-space-heading .space-heading-icon{color:var(--color-muted);border-color:var(--color-border);background-color:var(--color-surface)}.space-heading p{color:var(--color-muted);font-size:13px;line-height:1.55}.space-heading-status{border-left:1px solid var(--color-border);text-align:right;min-width:94px;padding-left:20px}.space-heading-status strong{color:var(--color-ink);font-size:24px;font-weight:620;display:block}.space-heading-status span,.space-heading-status small{color:var(--color-muted);font-size:12px;display:block}.space-heading-status small{color:var(--color-muted);margin-top:2px}.public-space-stats{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);align-items:stretch;display:flex}.public-space-stats span{min-width:76px;color:var(--color-muted);text-align:center;padding:9px 12px;font-size:12px}.public-space-stats span+span{border-left:1px solid var(--color-border)}.public-space-stats strong{color:var(--color-ink);font-size:18px;line-height:1.15;display:block}.personal-profile-summary{border-radius:var(--radius-control);background:var(--color-surface-subtle);align-items:center;gap:0;min-height:50px;padding:0 16px;display:flex}.personal-profile-summary strong{color:var(--color-ink);font-size:18px;display:block}.personal-profile-summary>button{min-width:102px;color:var(--color-muted);text-align:left;background:0 0;border:0;padding:10px 18px;font-size:12px;transition:color .15s,background-color .15s,box-shadow .15s}.personal-profile-summary>button+button{border-left:1px solid var(--color-border)}.personal-profile-summary>button small{color:var(--color-muted);margin-top:2px;font-size:12px;font-weight:650;display:block}.personal-profile-summary>button:hover{color:var(--color-ink);background:var(--color-surface-subtle)}.personal-profile-summary>button:focus{outline:none}.personal-profile-summary>button:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.personal-profile-summary>button[aria-pressed=true]{color:var(--color-accent);background:var(--color-surface-subtle);box-shadow:inset 0 -2px 0 var(--color-accent)}.personal-profile-summary>button[aria-pressed=true] small{color:currentColor}.personal-profile-summary p{color:var(--color-muted);margin-left:auto;font-size:12px}.personal-profile-toolbar{justify-content:space-between;align-items:center;gap:16px;min-height:46px;display:flex}.personal-profile-toolbar-actions{align-items:center;gap:10px;display:flex}.personal-profile-filter-groups{align-items:center;gap:10px;min-width:0;display:flex}.personal-profile-filters{gap:4px;display:flex}.personal-profile-filters button{min-width:64px;color:var(--color-muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 9px;font-size:12px}.personal-profile-filters button:hover{background:var(--color-surface-subtle)}.personal-profile-filters button[aria-pressed=true]{border-color:var(--color-border-strong);color:var(--color-accent);background:var(--color-surface-subtle);font-weight:650}.personal-profile-scope-filter{width:min(240px,28vw)}.personal-profile-layout{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);isolation:isolate;flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;min-height:0;display:grid;overflow:hidden}.personal-profile-directory{min-width:0;min-height:0}.personal-profile-table-head,.personal-profile-row{grid-template-columns:88px minmax(240px,1.35fr) minmax(170px,.8fr) 130px;align-items:center;gap:13px;display:grid}.personal-profile-table-head{border-bottom:1px solid var(--color-border);color:var(--color-muted);background:var(--color-surface-subtle);padding:10px 15px;font-size:12px;font-weight:680}.personal-profile-row{border:0;border-bottom:1px solid var(--color-border);width:100%;height:100%;color:var(--color-ink);background:var(--color-surface);text-align:left;padding:12px 15px}.personal-profile-row:hover{background:var(--color-surface)}.personal-profile-row.selected{background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-muted)}.profile-aspect-mark{border-radius:999px;width:fit-content;padding:4px 8px;font-size:12px;font-weight:680}.profile-aspect-mark.taste{color:var(--color-ink);background:var(--color-warning-soft)}.profile-aspect-mark.personality{color:var(--color-muted);background:var(--color-surface-subtle)}.profile-aspect-mark.judgment_preference{color:var(--color-ink);background:var(--color-surface-subtle)}.personal-profile-copy,.personal-profile-origin{gap:4px;min-width:0;display:grid}.personal-profile-copy strong,.personal-profile-origin strong{color:var(--color-ink);font-size:12px}.personal-profile-origin strong.has-conflict{color:var(--color-ink)}.personal-profile-copy small,.personal-profile-origin small,.personal-profile-row time{color:var(--color-muted);font-size:12px;line-height:1.45}.personal-profile-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.personal-profile-inspector{align-self:stretch;min-width:0;position:static;overflow:auto}.project-section{margin-top:34px}.compact-toolbar{border-top:1px solid var(--color-border-strong);padding-top:14px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:14px;margin-top:18px;display:grid}.project-empty{border:1px dashed var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);grid-column:1/-1}.project-card{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);min-width:0;padding:18px}.project-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project-card-heading-actions{align-items:flex-start;gap:8px;display:flex}.project-card h4{color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-size:16px}.project-purpose{min-height:38px;color:var(--color-muted);margin-top:12px;font-size:12px;line-height:1.55}.completion-badge{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);text-align:center;background:var(--color-surface);flex:none;min-width:54px;padding:7px 8px}.completion-badge strong{color:var(--color-ink);font-size:18px;line-height:1;display:block}.completion-badge span{color:var(--color-muted);font-size:12px}.evidence-row{flex-wrap:wrap;gap:5px;min-height:24px;margin-top:13px;display:flex}.status-chip{border:1px solid var(--color-border);width:fit-content;color:var(--color-ink);background:var(--color-surface);border-radius:999px;align-items:center;padding:3px 7px;font-size:12px;font-weight:650;display:inline-flex}.status-chip.owner{border-color:var(--color-border-strong);color:var(--color-ink);background:var(--color-surface-subtle)}.status-chip.private{border-color:var(--color-warning-soft);color:var(--color-muted);background:var(--color-warning-soft)}.completion-note{color:var(--color-muted);margin-top:14px;font-size:12px}.completion-details{border-top:1px solid var(--color-border);margin-top:13px;padding-top:10px}.completion-details summary,.episode-details summary{color:var(--color-ink);cursor:pointer;font-size:12px}.completion-columns{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:11px;display:grid}.assessment-block{background:var(--color-surface);border-radius:6px;min-width:0;padding:8px}.assessment-block>strong{color:var(--color-muted);font-size:12px}.assessment-block ul{color:var(--color-muted);margin:5px 0 0;padding-left:14px;font-size:12px;line-height:1.45}.assessment-block.inferred{background:var(--color-warning-soft)}.project-access,.project-actions{align-items:center;gap:7px;margin-top:14px;display:flex}.project-access{border-top:1px solid var(--color-border);padding-top:12px}.project-actions{flex-wrap:wrap}.project-release-meta{border-left:1px solid var(--color-border);gap:1px;margin-left:auto;padding-left:11px;display:grid}.project-release-meta strong{color:var(--color-ink);font-size:12px}.project-release-meta span{color:var(--color-muted);font-size:12px}.project-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:14px;margin-top:15px;padding-top:13px;display:flex}.project-card-footer>.secondary-action,.project-card-footer>.primary-action{min-width:92px}.project-footer-label{color:var(--color-muted);font-size:12px;font-weight:650}.project-subscription-state{color:var(--color-ink);align-items:center;gap:7px;font-size:12px;display:flex}.subscription-indicator{align-items:center;gap:6px;display:inline-flex}.subscription-indicator i{background:var(--color-muted);border-radius:50%;width:7px;height:7px}.subscription-action{min-height:30px;margin-left:4px;padding:5px 10px;font-size:12px}.project-publication-bar{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);justify-content:space-between;align-items:center;gap:16px;margin-top:12px;padding:12px;display:flex}.project-publication-bar strong{color:var(--color-ink);font-size:12px;display:block}.project-publication-bar span{color:var(--color-muted);margin-top:2px;font-size:12px;display:block}.project-relations{gap:6px;margin-top:11px;display:grid}.relation-loading{padding:9px 0 2px}.project-relation-row{border-radius:var(--radius-control);background:var(--color-surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.project-relation-row strong{font-size:12px;display:block}.project-relation-row span{display:block}.relation-actions{gap:5px;display:flex}.relation-section-toolbar{align-items:center}.relation-section-toolbar .primary-action{flex:none;padding:8px 12px;font-size:12px}.relation-section-toolbar .primary-action:disabled{cursor:not-allowed}.relation-composer{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;margin-top:16px;box-shadow:0 10px 30px #2330280f}.relation-composer-form{padding:18px}.relation-preview{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);grid-template-columns:minmax(180px,1fr) minmax(150px,.65fr) minmax(180px,1fr);align-items:center;gap:16px;padding:18px;display:grid}.relation-preview-node{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);align-content:center;gap:4px;min-width:0;min-height:98px;padding:15px;display:grid}.relation-preview-node span{color:var(--color-muted);letter-spacing:.09em;font-size:12px;font-weight:700}.relation-preview-node strong{color:var(--color-ink);overflow-wrap:anywhere;font-size:15px}.relation-preview-node small{color:var(--color-muted);font-size:12px}.relation-preview-target{border-color:var(--color-border-strong)}.relation-preview-connector{text-align:center;grid-template-rows:auto 1px;align-items:center;gap:8px;display:grid}.relation-preview-connector span{border:1px solid var(--color-border-strong);background:var(--color-surface);width:fit-content;max-width:100%;color:var(--color-ink);overflow-wrap:anywhere;border-radius:999px;margin:0 auto;padding:4px 9px;font-size:12px;font-weight:650}.relation-preview-connector i{border-top:1px solid var(--color-muted);width:100%}.relation-builder{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(170px,.75fr) minmax(360px,1.6fr) minmax(220px,1fr);gap:0;margin-top:18px;display:grid}.relation-builder-step{border:0;min-width:0;margin:0;padding:17px 18px 18px 0}.relation-builder-step+.relation-builder-step{border-left:1px solid var(--color-border);padding-left:18px}.relation-builder-step>label,.relation-builder-step legend{color:var(--color-ink);margin:3px 0 9px;padding:0;font-size:12px;font-weight:650;display:block}.relation-builder-step>select,.relation-builder-step>input{width:100%}.relation-builder-step>small{color:var(--color-muted);margin-top:8px;font-size:12px;line-height:1.45;display:block}.relation-step-number{color:var(--color-muted);letter-spacing:.11em;font-size:12px;font-weight:700}.relation-builder-step legend .relation-step-number{margin-bottom:7px;display:block}.relation-type-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.relation-type-options label,.relation-target-option{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;display:grid}.relation-type-options label{min-height:55px;padding:9px}.relation-type-options label:hover,.relation-target-option:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.relation-type-options label:has(input:checked){border-color:var(--color-muted);background:var(--color-surface-subtle);box-shadow:0 0 0 1px #4d6f5c14}.relation-target-option:has(input:checked){border-color:var(--color-muted);background:var(--color-surface-subtle);box-shadow:0 0 0 1px #4d6f5c14}.relation-type-options input,.relation-target-option input{accent-color:var(--color-ink);margin:2px 0 0}.relation-type-options span,.relation-target-option span{min-width:0}.relation-type-options strong,.relation-target-option strong{color:var(--color-ink);font-size:12px;display:block}.relation-type-options small,.relation-target-option small{color:var(--color-muted);overflow-wrap:anywhere;margin-top:3px;font-size:12px;line-height:1.35;display:block}.relation-target-list{gap:6px;max-height:152px;margin-top:8px;display:grid;overflow:auto}.relation-target-option{padding:9px}.relation-target-empty{color:var(--color-muted);text-align:center;padding:18px 8px;font-size:12px}.relation-composer-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 20px;padding-top:15px;display:grid}.relation-rule{color:var(--color-muted);font-size:12px;line-height:1.45}.relation-validation{color:var(--color-danger);grid-column:1;font-size:12px}.relation-composer-actions{grid-area:1/2/span 2;gap:7px;display:flex}.relation-composer-actions button{min-width:92px;padding:7px 11px}.provider-list,.subscription-list{gap:8px;display:grid}.provider-row,.subscription-row{border-bottom:1px solid var(--color-border);grid-template-columns:10px 1fr auto;align-items:center;gap:9px;padding:10px 0;display:grid}.provider-row:last-child,.subscription-row:last-child{border-bottom:0}.provider-row i{background:var(--color-muted);border-radius:50%;width:7px;height:7px}.provider-row i.disconnected{background:var(--color-success)}.provider-row strong,.subscription-row strong{font-size:12px;display:block}.provider-row span,.subscription-row span{color:var(--color-muted);font-size:12px}.provider-row .provider-state{color:var(--color-muted);font-size:12px;font-weight:620}.connections-view{padding-top:24px}.connection-intro{max-width:760px}.connection-intro h3{font-size:18px}.connection-intro p{color:var(--color-muted);margin-top:6px;font-size:12px;line-height:1.55}.service-connection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.service-connection-card{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);min-width:0;padding:18px}.service-connection-card[data-status=ready]{border-color:var(--color-border-strong)}.service-connection-card[data-status=error]{border-color:var(--color-danger-soft)}.service-connection-card>header{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;display:grid}.service-connection-card>header h3{color:var(--color-ink);font-size:15px}.service-connection-icon{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);width:38px;height:38px;color:var(--color-ink);background:var(--color-surface-subtle);place-items:center;display:grid}.service-connection-icon.public{border-color:var(--color-border);color:var(--color-muted);background:var(--color-surface)}.service-state{color:var(--color-muted);align-items:center;gap:6px;font-size:12px;font-weight:650;display:inline-flex}.service-state:before{background:var(--color-muted);content:"";border-radius:50%;width:6px;height:6px}.service-connection-card[data-status=ready] .service-state{color:var(--color-success)}.service-connection-card[data-status=ready] .service-state:before{background:var(--color-success)}.service-connection-card[data-status=error] .service-state{color:var(--color-danger)}.service-connection-card[data-status=error] .service-state:before{background:var(--color-danger)}.service-connection-card>p{min-height:38px;color:var(--color-muted);margin-top:15px;font-size:12px;line-height:1.55}.service-connection-card dl{border-top:1px solid var(--color-border);margin:14px 0 0}.service-connection-card dl>div{border-bottom:1px solid var(--color-border);grid-template-columns:86px minmax(0,1fr);gap:12px;padding:9px 0;display:grid}.service-connection-card dl>div:last-child{border-bottom:0;padding-bottom:0}.service-connection-card dt{color:var(--color-muted);font-size:12px}.service-connection-card dd{color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-size:12px}.connection-subscriptions{border-top:1px solid var(--color-border);margin-top:24px;padding-top:16px}.connection-subscriptions .section-title{margin-bottom:10px}.connection-subscriptions .section-title p{color:var(--color-muted);margin-top:4px;font-size:12px}.connection-title-row{align-items:center;gap:7px;display:flex}.feature-badge{letter-spacing:.07em;border-radius:999px;align-items:center;width:fit-content;padding:2px 6px;font-size:12px;font-weight:750;display:inline-flex}.feature-badge.beta{border:1px solid var(--color-warning);color:var(--color-warning);background:var(--color-warning-soft)}.external-knowledge-section,.conflict-policy-section{border-top:1px solid var(--color-border);margin-top:14px;padding-top:12px}.section-title-with-help{align-items:center;gap:7px;display:flex}.section-help-link{border:1px solid var(--color-border-strong);width:17px;height:17px;color:var(--color-muted);background:var(--color-surface);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:750;line-height:1;text-decoration:none;display:inline-grid}.section-help-link:hover{border-color:var(--color-muted);color:var(--color-ink);background:var(--color-surface)}.section-help-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.external-binding-count{color:var(--color-muted);font-size:12px;font-weight:620}.external-binding-list{margin-top:10px;display:grid}.external-binding-row{border-bottom:1px solid var(--color-border);grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:55px;display:grid}.external-binding-row>i{background:var(--color-muted);border-radius:50%;width:7px;height:7px}.external-binding-row[data-status=error]>i{background:var(--color-danger)}.external-binding-row strong{color:var(--color-ink);font-size:12px;display:block}.external-binding-row span,.external-binding-row small{color:var(--color-muted);margin-top:2px;font-size:12px;display:block}.external-binding-row small{color:var(--color-danger)}.external-binding-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.quiet-button.danger{color:var(--color-danger)}.compact-empty{color:var(--color-muted);padding:18px 0;font-size:12px}.external-binding-form{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:10px;margin-top:16px;padding:15px;display:grid}.external-binding-form label,.conflict-policy-controls label{min-width:0;color:var(--color-muted);gap:5px;font-size:12px;display:grid}.external-binding-form input,.external-binding-form textarea,.external-binding-form .searchable-select,.conflict-policy-controls .searchable-select,.external-binding-form input,.external-binding-form textarea,.external-binding-form .searchable-select-trigger,.conflict-policy-controls .searchable-select-trigger{width:100%;min-width:0}.external-binding-form textarea{resize:vertical}.external-binding-form .wide-field{grid-column:span 3}.trusted-code-badge{border:1px solid var(--color-warning);width:fit-content;color:var(--color-warning);background:var(--color-warning-soft);border-radius:5px;padding:5px 7px;font-size:12px}.conflict-policy-controls{grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;max-width:700px;margin-top:10px;display:grid}@media (width<=1280px){.external-binding-form{grid-template-columns:repeat(2,minmax(180px,1fr))}.external-binding-form .wide-field{grid-column:span 2}}.graph-view{flex-direction:column;padding:18px 24px 20px;display:flex;overflow:hidden}.graph-view.graph-canvas-active{overflow:hidden}.knowledge-view-heading{border-bottom:1px solid var(--color-control-border);justify-content:space-between;align-items:center;min-height:42px;display:flex}.knowledge-mode-switch{align-self:stretch;gap:22px;display:flex}.knowledge-mode-switch button{color:var(--color-muted);background:0 0;border:0;padding:0 1px;font-size:12px;font-weight:620;position:relative}.knowledge-mode-switch button[aria-selected=true]{color:var(--color-accent)}.knowledge-mode-switch button[aria-selected=true]:after{background:var(--color-accent);content:"";border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}#graph-count.search-active{color:var(--color-warning);font-weight:650}.graph-toolbar{flex-wrap:wrap;align-items:center;gap:8px 10px;min-height:48px;padding:8px 0;display:flex}.searchable-select{min-width:128px;color:var(--color-ink);vertical-align:middle;font-size:14px;display:inline-block;position:relative}.searchable-select-native{display:none!important}.searchable-select-trigger{border:1px solid var(--color-control-border);border-radius:var(--radius-control);width:100%;min-height:40px;color:var(--color-ink);background:var(--color-surface);text-align:left;cursor:pointer;transition:background-color var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);grid-template-columns:minmax(0,1fr) 12px;align-items:center;gap:8px;padding:9px 12px;line-height:1.5;display:grid}.searchable-select-trigger:hover{border-color:var(--color-control-border);background:var(--color-surface-hover)}.searchable-select-trigger:focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:2px;box-shadow:0 0 0 4px var(--color-accent-soft)}.searchable-select.open .searchable-select-trigger{border-color:var(--color-accent);background:var(--color-accent-soft)}.searchable-select-current{align-items:baseline;gap:7px;min-width:0;display:flex}.searchable-select-current-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:560;overflow:hidden}.searchable-select-current-meta{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:520;overflow:hidden}.searchable-select-arrow{border-right:1.5px solid var(--color-muted);border-bottom:1.5px solid var(--color-muted);justify-self:end;width:7px;height:7px;transition:transform .14s;transform:translateY(-2px)rotate(45deg)}.searchable-select.open .searchable-select-arrow{border-color:var(--color-accent);transform:translateY(2px)rotate(225deg)}.searchable-select.disabled{opacity:.52}.searchable-select.disabled .searchable-select-trigger{cursor:not-allowed}.searchable-select-panel{z-index:45;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);width:max(100%,268px);box-shadow:var(--shadow-popover);padding:7px;position:absolute;top:calc(100% + 5px);left:0}.searchable-select.open-up .searchable-select-panel{top:auto;bottom:calc(100% + 5px)}.searchable-select-search{padding:2px 2px 7px}.searchable-select-search input{border-color:var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;height:auto;min-height:40px;padding:9px 12px;font-size:14px;line-height:1.5}.searchable-select-options{overscroll-behavior:contain;gap:2px;max-height:228px;display:grid;overflow:auto}.searchable-select-option{border-radius:var(--radius-control);width:100%;min-height:40px;color:var(--color-ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:8px;padding:9px 12px;font-size:14px;line-height:1.5;display:grid}.searchable-select-option:hover{background:var(--color-surface-hover)}.searchable-select-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px;background:var(--color-surface-hover)}.searchable-select-option[aria-selected=true]{color:var(--color-accent);background:var(--color-accent-soft)}.searchable-select-option:disabled{cursor:not-allowed;opacity:.4}.searchable-select-option-copy{gap:2px;min-width:0;display:grid}.searchable-select-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:620;overflow:hidden}.searchable-select-option-copy small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow:hidden}.searchable-select-check{border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;width:8px;height:4px;transform:rotate(-45deg)}.searchable-select-option[aria-selected=true] .searchable-select-check{border-color:var(--color-accent)}.searchable-select-empty{color:var(--color-muted);text-align:center;padding:20px 8px;font-size:12px}.searchable-select[data-select-id=graph-space]{min-width:225px}.searchable-select[data-select-id=knowledge-type-filter]{width:120px}.searchable-select[data-select-id=knowledge-quadrant-filter]{width:110px}.searchable-select[data-select-id=knowledge-profile-filter]{width:112px}.searchable-select[data-select-id=knowledge-status-filter]{width:105px}.relation-builder-step>.searchable-select,.knowledge-editor-form .searchable-select,.knowledge-project-fields .searchable-select,.knowledge-project-relation .searchable-select{width:100%}.personal-context-picker{position:relative}.personal-context-picker>summary{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);min-height:32px;color:var(--color-ink);background:var(--color-surface);cursor:pointer;align-items:center;gap:8px;padding:6px 9px;font-size:12px;list-style:none;display:flex}.personal-context-picker>summary::-webkit-details-marker{display:none}.personal-context-picker>summary span{color:var(--color-muted)}.personal-context-picker>summary .searchable-select-arrow{flex:none;margin-left:auto}.personal-context-picker[open]>summary .searchable-select-arrow{transform:translateY(2px)rotate(225deg)}.personal-context-panel{z-index:8;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:286px;padding:13px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #2330281a}.personal-context-panel>strong{color:var(--color-ink);font-size:12px}.personal-context-panel>p{color:var(--color-muted);margin-top:4px;font-size:12px;line-height:1.45}.personal-context-list{gap:3px;max-height:220px;margin-top:10px;display:grid;overflow:auto}.personal-context-option{cursor:pointer;border-radius:6px;grid-template-columns:17px 1fr;align-items:center;gap:8px;padding:8px;display:grid}.personal-context-option:hover{background:var(--color-surface-subtle)}.personal-context-option input{margin:0}.personal-context-option span{gap:2px;display:grid}.personal-context-option strong{color:var(--color-ink);font-size:12px}.personal-context-option small{color:var(--color-muted);font-size:12px}.search-form{flex:0 300px;min-width:220px}.search-form input{width:100%}#knowledge-type-filter{max-width:160px}#knowledge-quadrant-filter{max-width:130px}#knowledge-profile-filter{max-width:135px}.graph-view-actions{border-left:1px solid var(--color-border);align-items:center;gap:3px;margin-left:auto;padding-left:4px;display:flex}.graph-controls{gap:3px;display:flex}.knowledge-layout{border:1px solid var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface);isolation:isolate;flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;min-height:0;display:grid;overflow:hidden}.knowledge-directory-panel{background:var(--color-surface);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden;container:knowledge-directory/inline-size}.directory-kind-tabs{z-index:4;border-bottom:1px solid var(--color-border);background:var(--color-surface-hover);align-items:stretch;gap:22px;min-height:44px;padding:0 16px;display:flex;position:sticky;top:0}.directory-kind-tab{min-width:0;color:var(--color-muted);background:0 0;border:0;align-items:center;gap:7px;padding:0 1px;font-size:12px;font-weight:620;display:inline-flex;position:relative}.directory-kind-tab:hover{color:var(--color-ink)}.directory-kind-tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.directory-kind-tab:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.directory-kind-tab[aria-selected=true]{color:var(--color-accent)}.directory-kind-tab[aria-selected=true]:after{background:var(--color-accent)}.directory-kind-tab small{min-width:20px;color:var(--color-muted);background:var(--color-surface-subtle);text-align:center;border-radius:999px;padding:1px 6px;font-size:12px;font-weight:650}.directory-kind-tab[aria-selected=true] small{color:var(--color-accent);background:var(--color-surface-subtle)}.directory-tab-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.directory-section-heading{border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;min-width:0;padding:12px 16px;display:flex}.directory-section-copy{flex:260px;align-items:baseline;gap:10px;min-width:0;display:flex}.directory-section-heading strong{color:var(--color-ink);font-size:12px;font-weight:680}.directory-section-copy span,.directory-section-count{color:var(--color-muted);font-size:12px;line-height:1.45}.directory-section-copy span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.directory-section-count{flex:none}.knowledge-status-filter{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-subtle);flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.knowledge-status-option{height:24px;color:var(--color-muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;padding:0 7px;font-size:12px;font-weight:640;display:inline-flex}.knowledge-status-option:hover{color:var(--color-ink);background:#ffffffb8}.knowledge-status-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.knowledge-status-option[aria-pressed=true]{border-color:var(--color-border-strong);color:var(--color-accent);background:var(--color-surface)}.knowledge-status-option[data-status=historical][aria-pressed=true]{border-color:var(--color-danger-soft);color:var(--color-danger);background:var(--color-surface-subtle)}.knowledge-status-option span{min-width:16px;color:inherit;background:var(--color-accent-soft);text-align:center;border-radius:999px;padding:0 4px;font-size:12px;line-height:16px}.knowledge-directory-virtual-list,.project-material-virtual-list{flex:1;min-width:0;min-height:0}.project-material-row{border:0;border-bottom:1px solid var(--color-border);width:100%;height:100%;color:var(--color-ink);background:var(--color-surface);text-align:left;grid-template-columns:minmax(0,1fr) minmax(94px,118px) auto;align-items:center;gap:16px;padding:10px 16px;display:grid}.project-material-row:hover{background:var(--color-surface)}.project-material-row.selected{background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-accent)}.project-material-copy{gap:4px;min-width:0;display:grid}.project-material-copy strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:630;overflow:hidden}.project-material-copy small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.project-material-type{color:var(--color-ink);font-size:12px;font-weight:620}.project-material-link{color:var(--color-muted);text-align:right;font-size:12px;font-weight:650}.graph-canvas-active .knowledge-layout{flex:1;align-items:stretch;min-height:0;overflow:hidden}.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(220px,1.8fr) minmax(92px,.68fr) minmax(104px,.75fr) minmax(90px,.65fr) minmax(118px,.9fr) minmax(102px,.72fr) minmax(58px,.42fr);align-items:center;gap:12px;width:100%;min-width:0;display:grid}.knowledge-table-head{border-bottom:1px solid var(--color-border);color:var(--color-muted);background:var(--color-surface-subtle);letter-spacing:.05em;padding:10px 16px;font-size:12px;font-weight:680}.knowledge-row{border:0;border-bottom:1px solid var(--color-border);height:100%;color:var(--color-ink);background:var(--color-surface);text-align:left;padding:11px 16px;font-size:12px}.knowledge-table-head>span,.knowledge-row>span{min-width:0}.knowledge-row:hover{background:var(--color-surface)}.knowledge-row.selected{background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-accent)}.knowledge-row-content{gap:4px;min-width:0;display:grid}.knowledge-row-title{align-items:center;gap:7px;min-width:0;display:flex}.knowledge-row-content strong{min-width:0;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550;overflow:hidden}.human-change-badge{color:var(--color-warning);background:var(--color-warning-soft);white-space:nowrap;border-radius:999px;flex:none;padding:2px 6px;font-size:12px;font-style:normal;font-weight:700}.human-change-badge.state-viewed{color:var(--color-muted);background:var(--color-surface-subtle)}.knowledge-row-content small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.knowledge-row-type,.knowledge-row-source,.knowledge-row-time{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.knowledge-row-type{color:var(--color-ink);font-weight:620}.knowledge-row-source,.knowledge-row-time{color:var(--color-muted)}.knowledge-row-quadrant{width:fit-content;color:var(--color-muted);background:var(--color-surface-subtle);white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:12px;font-weight:650}.knowledge-row-quadrant.known_known{color:var(--color-ink);background:var(--color-surface-subtle)}.knowledge-row-quadrant.known_unknown{color:var(--color-warning);background:var(--color-warning-soft)}.knowledge-row-quadrant.unknown_known,.knowledge-row-quadrant.unknown_unknown,.knowledge-row-quadrant.unclassified{color:var(--color-muted);background:var(--color-surface-subtle)}.knowledge-review-state{width:fit-content;color:var(--color-muted);background:var(--color-surface-subtle);white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:12px;font-weight:650}.knowledge-review-state.state-confirmed,.knowledge-review-state.state-agent_confirmed{color:var(--color-success);background:var(--color-success-soft)}.knowledge-review-state.state-pending,.knowledge-review-state.state-needs_review{color:var(--color-warning);background:var(--color-warning-soft)}.knowledge-review-state.state-exploratory,.knowledge-review-state.state-unclassified{color:var(--color-muted);background:var(--color-surface-subtle)}.knowledge-status{border-radius:999px;width:fit-content;padding:3px 7px;font-size:12px;font-weight:650}.knowledge-status.current{color:var(--color-ink);background:var(--color-surface-subtle)}.knowledge-status.historical{color:var(--color-danger);background:var(--color-surface-subtle)}@container knowledge-directory (width<=900px){.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(220px,1.8fr) minmax(92px,.75fr) minmax(104px,.8fr) minmax(90px,.7fr) minmax(58px,.45fr)}.knowledge-column-source,.knowledge-column-time,.knowledge-row-source,.knowledge-row-time{display:none}}@container knowledge-directory (width<=660px){.knowledge-status-filter{order:3;margin-right:auto}.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(180px,1fr) 90px 96px 58px}.knowledge-column-type,.knowledge-row-type{display:none}.project-material-row{grid-template-columns:minmax(0,1fr) auto}.project-material-type{display:none}}@container knowledge-directory (width<=500px){.knowledge-table-head{letter-spacing:0;grid-template-columns:minmax(0,1fr) 128px;gap:12px}.knowledge-row{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 128px;gap:2px 12px}.knowledge-row-content{grid-area:1/1/3}.knowledge-review-state{grid-area:1/2;max-width:128px;font-weight:500}.knowledge-status{grid-area:2/2;padding-block:0;font-weight:400}.knowledge-column-quadrant,.knowledge-row-quadrant,.knowledge-column-validity{display:none}}.graph-inspector{background:var(--color-surface);border-left:1px solid var(--color-border);overscroll-behavior:contain;align-self:stretch;padding:18px;position:static;overflow:auto}.graph-canvas-active .graph-inspector{align-self:stretch;position:static;overflow:auto}.graph-inspector h3{overflow-wrap:anywhere;margin-bottom:8px;font-size:16px}.graph-inspector .muted{color:var(--color-muted);font-size:12px;line-height:1.55}.inspector-classification{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);gap:7px;margin-top:15px;padding:11px 12px;display:grid}.inspector-classification>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-classification span{color:var(--color-muted);font-size:12px;font-weight:650}.inspector-classification strong{color:var(--color-ink);font-size:12px}.inspector-classification p{color:var(--color-muted);font-size:12px;line-height:1.55}.inspector-classification.state-pending,.inspector-classification.state-needs_review{border-color:var(--color-warning-soft);background:var(--color-warning-soft)}.inspector-classification.state-pending strong,.inspector-classification.state-needs_review strong{color:var(--color-warning)}.inspector-classification.state-exploratory{border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.inspector-classification.state-exploratory strong{color:var(--color-muted)}.inspector-classification.state-unclassified{border-color:var(--color-border);background:var(--color-surface-subtle)}.inspector-classification.state-unclassified strong{color:var(--color-muted)}.inspector-human-change{border:1px solid var(--color-warning-soft);border-radius:var(--radius-control);background:var(--color-warning-soft);gap:6px;margin-top:10px;padding:11px 12px;display:grid}.inspector-human-change>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-human-change span,.inspector-human-change small{color:var(--color-muted);font-size:12px;font-weight:650}.inspector-human-change strong{color:var(--color-warning);font-size:12px}.inspector-human-change p{color:var(--color-muted);font-size:12px;line-height:1.55}.inspector-human-change.state-viewed{border-color:var(--color-border);background:var(--color-surface)}.inspector-human-change.state-viewed strong{color:var(--color-muted)}.inspector-human-change.state-reviewed{border-color:var(--color-border);background:var(--color-surface)}.inspector-human-change.state-reviewed strong{color:var(--color-ink)}.inspector-replacement{border:1px solid var(--color-warning-soft);border-radius:var(--radius-control);background:var(--color-warning-soft);gap:8px;margin-top:10px;padding:11px 12px;display:grid}.inspector-replacement-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-replacement-heading span{color:var(--color-muted);font-size:12px;font-weight:650}.inspector-replacement-heading strong{color:var(--color-warning);font-size:12px}.inspector-replacement>p{color:var(--color-muted);font-size:12px;line-height:1.55}.inspector-replacement-link{border:1px solid var(--color-border);width:100%;color:inherit;background:var(--color-surface);text-align:left;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid}.inspector-replacement-link:hover{border-color:var(--color-muted);background:var(--color-surface)}.inspector-replacement-link>span{gap:3px;min-width:0;display:grid}.inspector-replacement-link strong,.inspector-replacement-link small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inspector-replacement-link strong{color:var(--color-ink);font-size:12px}.inspector-replacement-link small{color:var(--color-muted);font-size:12px}.inspector-replacement-link b{color:var(--color-ink);white-space:nowrap;font-size:12px;font-weight:680}.inspector-project-material{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface-subtle);gap:7px;margin-top:15px;padding:11px 12px;display:grid}.inspector-project-material>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-project-material span{color:var(--color-muted);font-size:12px;font-weight:650}.inspector-project-material strong{color:var(--color-ink);font-size:12px}.inspector-project-material p{color:var(--color-muted);font-size:12px;line-height:1.55}.inspector-identity{background:var(--color-surface-subtle);border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;margin:2px 0 13px;padding:7px 8px;display:grid}.inspector-identity>span{color:var(--color-muted);font-size:12px;font-weight:650}.inspector-identity code{min-width:0;color:var(--color-ink);overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.35}.inspector-identity-copy{color:var(--color-ink);background:0 0;border:0;padding:2px 4px;font-size:12px}.inspector-identity-copy:hover{color:var(--color-ink);text-decoration:underline}.inspector-identity-copy:focus-visible{outline:1px solid var(--color-accent);outline-offset:2px}.inspector-meta{gap:8px;margin-top:18px;display:grid}.inspector-meta div{border-top:1px solid var(--color-border);padding-top:8px}.inspector-meta dt{color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.inspector-meta dd{overflow-wrap:anywhere;margin:3px 0 0;font-size:12px}.inspector-attributes{margin-top:0}.inspector-subtitle{color:var(--color-muted);margin:20px 0 7px;font-size:12px;font-weight:650}.inspector-reasoning{color:var(--color-muted);white-space:pre-wrap;font-size:12px;line-height:1.6}.inspector-relations{display:grid}.inspector-relation{border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;padding:10px 0;font-size:12px;display:grid}.relation-type{color:var(--color-muted);letter-spacing:.035em;overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:1.4}.relation-target{min-width:0;color:var(--color-muted);overflow-wrap:anywhere;margin:0;line-height:1.55}.inspector-evidence{gap:7px;display:grid}.evidence-card{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:10px}.evidence-card strong{color:var(--color-ink);font-size:12px;display:block}.evidence-card p{color:var(--color-muted);margin-top:4px;font-size:12px;line-height:1.5}.evidence-card span{color:var(--color-muted);margin-top:6px;font-size:12px;display:block}.evidence-card .evidence-excerpt{color:var(--color-muted);background:var(--color-surface-subtle);white-space:pre-wrap;border-radius:5px;margin-top:8px;padding:8px}.evidence-source-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.evidence-source-action{color:var(--color-ink);background:0 0;border:0;margin:0;padding:0;font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.evidence-source-action:hover{color:var(--color-ink);text-decoration:underline}.evidence-source-action:disabled{color:var(--color-muted);cursor:not-allowed;text-decoration:none}.conflict-title,.suspected-conflicts .history-row strong{color:var(--color-warning)}.inspector-edit-button{width:100%;margin-top:16px}.inspector-actions{gap:7px;margin-top:16px;display:grid}.inspector-actions button{width:100%}.inspector-history{display:grid}.history-row{border-top:1px solid var(--color-border);padding:9px 0}.history-row strong{color:var(--color-ink);font-size:12px}.history-row p{color:var(--color-muted);margin-top:3px;font-size:12px;line-height:1.45}.history-row span,.history-row small{color:var(--color-muted);margin-top:4px;font-size:12px;display:block}.section-toolbar{border-bottom:1px solid var(--color-border);padding-bottom:18px}.section-toolbar h3{margin-bottom:5px;font-size:18px}.searchable-select[data-select-id=review-project]{min-width:220px}.review-list{margin-top:10px;display:grid}.review-item{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;gap:24px;padding:18px 0;display:grid}.review-item h4{margin:0 0 5px;font-size:14px}.review-item p{color:var(--color-muted);font-size:12px;line-height:1.55}.review-stage{width:fit-content;color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:12px;font-weight:700}.review-meta{color:var(--color-muted);gap:12px;margin-top:9px;font-size:12px;display:flex}.review-actions{align-items:center;gap:7px;display:flex}.review-actions button{border-radius:var(--radius-control);padding:7px 11px;font-size:12px}.approve{border:1px solid var(--color-ink);background:var(--color-ink);color:var(--color-surface)}.reject{border:1px solid var(--color-danger-soft);background:var(--color-surface);color:var(--color-danger)}.stacked-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;max-width:240px}.episode-details{margin-top:13px}.episode-body{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);gap:12px;margin-top:10px;padding:12px;display:grid}.episode-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin:0;display:grid}.episode-meta div{min-width:0}.episode-meta dt{color:var(--color-muted);font-size:12px}.episode-meta dd{color:var(--color-ink);overflow-wrap:anywhere;margin:2px 0 0;font-size:12px}.episode-section{gap:5px;display:grid}.episode-section>strong{color:var(--color-muted);font-size:12px}.episode-record{border-top:1px solid var(--color-border);grid-template-columns:auto minmax(100px,.6fr) minmax(0,1fr);align-items:start;gap:7px;padding:6px 0;font-size:12px;display:grid}.episode-record small{color:var(--color-muted);overflow-wrap:anywhere;line-height:1.45}.empty-state{text-align:center;color:var(--color-muted);padding:40px 0;font-size:13px}.connections-grid{align-items:start}.subscription-form{border-top:1px solid var(--color-border);gap:7px;margin-top:18px;padding-top:14px;display:flex}.subscription-form .searchable-select{flex:1}.muted{color:var(--color-muted);font-size:12px}.publish-dialog{width:min(500px,100vw - 32px);color:var(--color-ink);background:var(--color-surface);box-shadow:var(--shadow-dialog);border:0;border-radius:12px;padding:0}.publish-dialog::backdrop{background:var(--color-overlay)}.publish-dialog-shell{padding:24px}.publish-dialog h3{margin:0;font-size:20px}.publish-dialog-intro{color:var(--color-muted);gap:4px;margin-top:13px;font-size:12px;line-height:1.55;display:grid}.publish-dialog-intro strong{color:var(--color-ink);font-size:14px}.publish-release-fields{gap:12px;margin-top:18px;display:grid}.publish-release-fields label{gap:6px;display:grid}.publish-release-fields label>span{color:var(--color-ink);font-size:12px;font-weight:650}.publish-release-fields small{color:var(--color-muted);font-size:12px}.publish-impact{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin-top:19px}.publish-impact>div{grid-template-columns:108px 1fr;gap:14px;padding:12px 0;display:grid}.publish-impact>div+div{border-top:1px solid var(--color-border)}.publish-impact strong{color:var(--color-ink);font-size:12px}.publish-impact span{color:var(--color-muted);font-size:12px;line-height:1.5}.publish-dialog-error{color:var(--color-danger);margin-top:12px;font-size:12px}.publish-dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.publish-dialog-actions button{min-width:88px;padding:8px 13px;font-size:12px}.project-dialog{width:min(900px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--color-ink);background:var(--color-surface);box-shadow:var(--shadow-dialog);border:0;border-radius:12px;padding:0;overflow:hidden}.project-dialog::backdrop{background:var(--color-overlay)}.project-dialog-shell{box-sizing:border-box;max-height:calc(100vh - 48px);padding:24px;overflow:auto}.project-dialog-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:18px;display:flex}.project-dialog-header h3{font-size:20px}.project-dialog-header p:last-child{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.5}.project-dialog-header>button{flex:none}.project-latest-release{border-bottom:1px solid var(--color-border);padding:18px 0}.project-latest-release h4,.project-detail-section-heading h4,.danger-zone h4{color:var(--color-danger);margin:0;font-size:13px}.project-latest-release>div{margin-top:10px}.release-copy{grid-template-columns:90px minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.release-copy strong{color:var(--color-ink);font-size:14px}.release-copy p{color:var(--color-muted);font-size:12px;line-height:1.5}.release-copy small{color:var(--color-muted);font-size:12px}.project-detail-columns{grid-template-columns:1fr 1fr;gap:24px;padding:20px 0;display:grid}.project-detail-columns>section+section{border-left:1px solid var(--color-border);padding-left:24px}.project-detail-section-heading{justify-content:space-between;align-items:end;margin-bottom:10px;display:flex}.project-release-list,.project-details-relations{max-height:250px;display:grid;overflow:auto}.project-release-item{border-top:1px solid var(--color-border);grid-template-columns:72px minmax(0,1fr);gap:3px 10px;padding:11px 0;display:grid}.project-release-item strong{color:var(--color-ink);grid-row:1/span 2;font-size:12px}.project-release-item p{color:var(--color-muted);font-size:12px;line-height:1.45}.project-release-item small{color:var(--color-muted);font-size:12px}.project-detail-relation{border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 0;display:grid}.project-detail-relation>div:first-child{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;display:grid}.project-detail-relation strong{font-size:12px}.project-detail-relation small{color:var(--color-muted);grid-column:2;font-size:12px}.project-detail-relation-actions{align-items:center;gap:5px;display:flex}.project-detail-relation-actions button{min-height:28px;padding:5px 8px}.project-dialog-actions{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:20px;padding-top:16px;display:flex}.project-dialog-actions span{color:var(--color-muted);font-size:12px}.management-summary{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);display:grid}.management-summary div{padding:18px 16px}.management-summary div+div{border-left:1px solid var(--color-border)}.management-summary span,.management-summary strong{display:block}.management-summary span{color:var(--color-muted);font-size:12px}.management-summary strong{color:var(--color-ink);margin-top:4px;font-size:12px}.danger-zone{border:1px solid var(--color-danger-soft);border-radius:var(--radius-control);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:22px;padding:18px;display:grid}.danger-zone p{color:var(--color-danger);margin-top:5px;font-size:12px;line-height:1.5}.delete-confirmation{border-top:1px solid var(--color-danger-soft);grid-column:1/-1;padding-top:16px}.delete-confirmation label{color:var(--color-danger);gap:6px;font-size:12px;display:grid}.delete-confirmation>p{color:var(--color-danger)}.delete-confirmation>div{justify-content:flex-end;gap:7px;margin-top:12px;display:flex}.knowledge-edit-dialog{width:min(880px,100vw - 32px)}.knowledge-edit-columns{grid-template-columns:1.15fr .85fr;gap:28px;padding-top:22px;display:grid}.knowledge-edit-columns>section+section{border-left:1px solid var(--color-border);padding-left:28px}.knowledge-edit-columns h4{color:var(--color-ink);margin:0 0 6px;font-size:13px}.knowledge-edit-columns section>p{color:var(--color-muted);font-size:12px;line-height:1.5}.knowledge-editor-form{gap:13px;margin-top:16px;display:grid}.knowledge-taxonomy-fields{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.knowledge-editor-form label{color:var(--color-muted);gap:6px;font-size:12px;font-weight:600;display:grid}.knowledge-editor-form .knowledge-classification-warning{border:1px solid var(--color-warning-soft);border-radius:var(--radius-control);color:var(--color-warning);background:var(--color-warning-soft);padding:9px 10px;font-size:12px;line-height:1.5}.knowledge-confirmation-fields{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);gap:11px;margin:0;padding:13px;display:grid}.knowledge-confirmation-fields legend{color:var(--color-ink);padding:0 5px;font-size:12px;font-weight:680}.knowledge-confirmation-fields .knowledge-taxonomy-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-confirmation-fields>p{color:var(--color-muted);font-size:12px;line-height:1.5}.knowledge-replacement-fields{border:1px solid var(--color-warning-soft);border-radius:var(--radius-control);background:var(--color-surface);gap:10px;margin:0;padding:13px;display:grid}.knowledge-replacement-fields legend{color:var(--color-ink);padding:0 5px;font-size:12px;font-weight:680}.knowledge-replacement-fields>p{color:var(--color-muted);font-size:12px;line-height:1.5}.knowledge-editor-actions{justify-content:flex-end;gap:7px;padding-top:4px;display:flex}.knowledge-editor-actions button{min-width:94px}.knowledge-project-dialog{width:min(780px,100vw - 32px)}.knowledge-project-form{gap:18px;padding-top:20px;display:grid}.knowledge-project-source{border-bottom:1px solid var(--color-border);padding-bottom:16px}.knowledge-project-source span,.knowledge-project-preview span{color:var(--color-muted);letter-spacing:.08em;font-size:12px;font-weight:700;display:block}.knowledge-project-source strong{color:var(--color-ink);margin-top:5px;font-size:15px;display:block}.knowledge-project-source p{color:var(--color-muted);margin-top:4px;font-size:12px;line-height:1.5}.knowledge-project-mode{border:0;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:0;display:grid}.knowledge-project-mode legend,.knowledge-project-conflict-options legend{color:var(--color-muted);grid-column:1/-1;margin-bottom:4px;font-size:12px;font-weight:650}.knowledge-project-mode label{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);cursor:pointer;align-items:flex-start;gap:9px;padding:11px;display:flex}.knowledge-project-mode label:has(input:checked){border-color:var(--color-muted);background:var(--color-surface-subtle)}.knowledge-project-mode label.disabled{cursor:not-allowed;opacity:.48}.knowledge-project-mode label span,.toggle-row span{gap:3px;display:grid}.knowledge-project-mode strong,.toggle-row strong{color:var(--color-ink);font-size:12px}.knowledge-project-mode small,.toggle-row small,.knowledge-project-fields small{color:var(--color-muted);font-size:12px;line-height:1.4}.knowledge-project-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.knowledge-project-fields label,.knowledge-project-relation>label:not(.toggle-row),.knowledge-project-reason{color:var(--color-muted);gap:6px;font-size:12px;font-weight:600;display:grid}.knowledge-project-fields .full-width{grid-column:1/-1}.knowledge-project-relation{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) 210px;align-items:end;gap:18px;padding:13px 0;display:grid}.toggle-row{cursor:pointer;align-items:flex-start;gap:9px;display:flex}.knowledge-project-preview{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:14px}.knowledge-project-preview>div:first-child>strong{color:var(--color-ink);margin-top:4px;font-size:12px;display:block}.knowledge-project-preview>div:first-child>p{color:var(--color-muted);margin-top:4px;font-size:12px;line-height:1.5}.knowledge-project-compare{border:1px solid var(--color-border);background:var(--color-surface-subtle);grid-template-columns:1fr 1fr;gap:1px;margin-top:13px;display:grid}.knowledge-project-compare article{background:var(--color-surface);min-width:0;padding:11px}.knowledge-project-compare strong{color:var(--color-ink);margin-top:4px;font-size:12px;display:block}.knowledge-project-compare p{color:var(--color-muted);white-space:pre-wrap;margin-top:4px;font-size:12px;line-height:1.5}.knowledge-project-conflict-options{border:0;border-top:1px solid var(--color-border);gap:7px;margin:14px 0 0;padding:12px 0 0;display:grid}.knowledge-project-conflict-options label{color:var(--color-ink);font-size:12px}.knowledge-project-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.knowledge-project-actions button{min-width:96px}.project-profile-dialog{width:min(820px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--color-ink);background:var(--color-surface);box-shadow:var(--shadow-dialog);border:0;border-radius:12px;padding:0;overflow:hidden}.project-profile-dialog::backdrop{background:var(--color-overlay)}.project-profile-dialog-shell{box-sizing:border-box;max-height:calc(100vh - 48px);padding:24px;overflow:auto}.project-profile-dialog-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:18px;display:flex}.project-profile-dialog-header h3{font-size:20px}.project-profile-dialog-header p:last-child{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.5}.project-profile-fields{grid-template-columns:minmax(0,1fr) 180px;gap:13px;padding:20px 0;display:grid}.project-profile-fields label,.project-source-row label{color:var(--color-muted);align-content:start;gap:6px;font-size:12px;font-weight:600;display:grid}.project-profile-fields small{color:var(--color-muted);font-size:12px;font-weight:500}.project-profile-wide-field{grid-column:1/-1}.project-source-editor{border-top:1px solid var(--color-border);padding:18px 0}.project-source-editor-heading{outline:none;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.project-source-editor-heading h4{color:var(--color-ink);margin:0;font-size:13px}.project-source-editor-heading p{color:var(--color-muted);margin-top:4px;font-size:12px;line-height:1.5}.project-source-list{gap:9px;margin-top:14px;display:grid}.project-source-row{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);grid-template-columns:minmax(180px,1fr) 150px auto;align-items:end;gap:10px;padding:12px;display:grid}.project-source-wide-field{grid-column:1/span 2}.project-source-remove{min-height:32px;color:var(--color-danger);background:0 0;border:0;padding:6px 9px;font-size:12px}.project-source-remove:hover{color:var(--color-danger);text-decoration:underline}.project-source-empty{color:var(--color-muted);margin-top:13px;font-size:12px}.project-profile-state-note{border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-muted);background:var(--color-surface);padding:11px 12px;font-size:12px;line-height:1.55}.project-profile-error{color:var(--color-danger);margin-top:11px;font-size:12px}.project-profile-dialog-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;margin-top:18px;padding-top:16px;display:flex}.project-profile-dialog-actions button{min-width:100px}@media (width<=1180px){.app-shell{grid-template-columns:210px 1fr}.two-column{grid-template-columns:1fr}.relation-builder{grid-template-columns:1fr 1.6fr}.relation-target-step{border-left:0;border-top:1px solid var(--color-border);grid-column:1/-1;padding-left:0}.relation-preview{grid-template-columns:minmax(150px,1fr) minmax(110px,.6fr) minmax(150px,1fr)}.personal-profile-layout{grid-template-columns:minmax(0,1fr) 300px}.personal-profile-table-head,.personal-profile-row{grid-template-columns:78px minmax(190px,1fr) minmax(135px,.75fr) 105px}}.quiet-button.mobile-nav-toggle,.quiet-button.mobile-nav-close{display:none}@media (width<=720px){.service-connection-grid{grid-template-columns:minmax(0,1fr)}.service-connection-card dl>div{grid-template-columns:minmax(64px,.3fr) minmax(0,1fr)}.view.vue-personal-profile{padding:16px}.personal-profile-summary{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));padding:8px;display:grid}.personal-profile-summary>button{min-width:0;padding:6px}.personal-profile-summary>p{grid-column:1/-1;margin:8px 6px 0}.personal-profile-toolbar,.personal-profile-filter-groups{flex-wrap:wrap;gap:8px}.personal-profile-filter-groups,.personal-profile-toolbar-actions{width:100%;min-width:0}.personal-profile-filters{max-width:100%;overflow-x:auto}.personal-profile-filters button{white-space:nowrap;flex:none}.personal-profile-scope-filter{width:100%}.personal-profile-table-head,.personal-profile-row{grid-template-columns:64px minmax(0,1fr) 72px;gap:8px;padding-inline:10px}.personal-profile-table-head>:last-child,.personal-profile-row>time{display:none}.personal-profile-origin{min-width:0;overflow:hidden}.external-binding-form,.conflict-policy-controls{grid-template-columns:minmax(0,1fr)}.external-binding-form .wide-field{grid-column:auto}}.mobile-nav-backdrop{display:none}@media (width<=920px){.personal-profile-layout:not(.has-selection),.knowledge-layout:not(.has-selection){grid-template-rows:minmax(0,1fr)}.personal-profile-layout:not(.has-selection) .personal-profile-inspector,.knowledge-layout:not(.has-selection) .graph-inspector{display:none}.personal-profile-layout,.knowledge-layout{grid-template-rows:minmax(160px,1fr) minmax(160px,.8fr);grid-template-columns:minmax(0,1fr)}.personal-profile-inspector,.graph-inspector{border-left:0;border-top:1px solid var(--color-border);min-width:0;min-height:0}body{min-width:0}.app-shell{flex-direction:column;width:100%;height:100dvh;display:flex}.sidebar{z-index:40;border-right:1px solid var(--color-border);width:min(320px,100vw - 48px);height:100dvh;padding:12px 14px 16px;display:none;position:fixed;inset:0 auto 0 0;overflow:hidden}.mobile-nav-backdrop{z-index:30;background:var(--color-overlay);border:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}.sidebar.is-mobile-open{display:flex}.quiet-button.mobile-nav-close{flex:none;align-self:flex-end;margin-bottom:8px;display:inline-flex}.workspace{flex:auto;min-width:0;height:auto}.topbar{flex-wrap:wrap;gap:8px 10px;min-height:auto;padding:10px 12px}.quiet-button.mobile-nav-toggle{flex:none;align-items:center;gap:7px;width:38px;padding-inline:10px;display:inline-flex}.mobile-nav-icon{border-top:1.5px solid;border-bottom:1.5px solid;width:15px;height:10px;position:relative}.mobile-nav-icon:after{content:"";border-top:1.5px solid;position:absolute;inset:3px 0 auto}.topbar-heading{flex:100px}.topbar-heading h1{font-size:22px}.view{padding:16px 20px 24px}.topbar-description{text-overflow:clip;white-space:normal;max-width:none;overflow:visible}.topbar-actions{justify-content:flex-end;gap:8px;margin-left:auto}.feedback{margin:12px 16px 0}.vue-dialog[open]{width:min(980px,100vw - 24px);max-height:calc(100dvh - 24px)}}.external-binding-copy{min-width:0;padding:10px 0}.external-binding-row strong{overflow-wrap:anywhere;font-size:14px}.external-binding-targets{flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;display:flex}.external-binding-row .external-binding-targets b{color:var(--color-muted);font-size:12px;font-weight:650}.external-binding-row .external-binding-target-chip{border:1px solid var(--color-border);width:fit-content;color:var(--color-ink);background:var(--color-surface-subtle);border-radius:999px;align-items:center;margin:0;padding:3px 7px;font-size:12px;font-weight:620;display:inline-flex}.external-binding-row .external-binding-target-chip[data-status=error]{border-color:var(--color-danger-soft);color:var(--color-danger);background:var(--color-surface)}.external-binding-editor{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);grid-column:1/-1;grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:10px;margin:8px 0 16px;padding:15px;display:grid}.external-binding-editor>label{min-width:0;color:var(--color-muted);grid-area:1/1/auto/4;gap:5px;font-size:12px;display:grid}.external-binding-editor .searchable-select{width:100%;min-width:0}.external-target-mode-list{grid-area:2/1/auto/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;display:grid}.external-target-mode-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;grid-template-columns:minmax(120px,.62fr) minmax(170px,1fr);align-items:center;gap:12px;min-width:0;padding:8px 10px;display:grid}.external-binding-row .external-target-mode-row>span{min-width:0;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;font-weight:620;overflow:hidden}.external-binding-editor-actions{grid-area:1/4;justify-content:flex-end;gap:6px;display:flex}.external-binding-editor-actions button{min-height:36px}.external-create-action-icon{width:16px;height:16px;color:var(--color-surface);border:1px solid #ffffffb8;border-radius:50%;flex:0 0 16px;justify-content:center;align-items:center;display:inline-flex;position:relative}.external-create-action-icon:before,.external-create-action-icon:after{content:"";background:currentColor;border-radius:999px;width:7px;height:1.5px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.external-create-action-icon:after{transform:translate(-50%,-50%)rotate(90deg)}@media (width<=1280px){.external-binding-editor{grid-template-columns:repeat(2,minmax(180px,1fr))}.external-binding-editor>label{grid-column:1/-1}.external-target-mode-list{grid-template-columns:1fr}.external-binding-editor-actions{grid-area:3/1/auto/-1}}@media (width<=720px){.external-binding-row{grid-template-columns:8px minmax(0,1fr);gap:6px 10px;padding:12px 0}.external-binding-actions{grid-column:2;justify-content:flex-start}.external-binding-copy{padding:0}.external-binding-editor{grid-template-columns:minmax(0,1fr);padding:12px}.external-target-mode-row{grid-template-columns:minmax(0,1fr);gap:6px}}.graph-stage{background:var(--color-surface);grid-template-columns:minmax(0,1fr);min-width:0;min-height:520px;display:grid;position:relative;overflow:hidden}.graph-stage.has-parent-projects{grid-template-columns:minmax(190px,220px) minmax(0,1fr)}.graph-canvas-active .graph-stage{min-height:0}.graph-canvas-panel{min-width:0;min-height:0;position:relative;overflow:hidden}#knowledge-graph{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}#knowledge-graph:active{cursor:grabbing}.project-hierarchy-aside{z-index:4;border-right:1px solid var(--color-border);background:var(--color-surface);min-width:0;padding:18px 16px;position:relative}.project-hierarchy-aside header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3px 8px;display:grid}.project-hierarchy-aside header>span{color:var(--color-muted);letter-spacing:.1em;grid-column:1/-1;font-size:12px;font-weight:720}.project-hierarchy-aside header>strong{color:var(--color-ink);font-size:15px;font-weight:680}.project-hierarchy-aside header>small{color:var(--color-muted);background:var(--color-surface-subtle);border-radius:999px;padding:2px 6px;font-size:12px;font-weight:680}.project-hierarchy-aside>p{color:var(--color-muted);margin-top:7px;font-size:12px;line-height:1.5}.project-hierarchy-aside nav{border-top:1px solid var(--color-border);margin-top:14px;display:grid}.project-parent-link{border-bottom:1px solid var(--color-border);min-width:0;color:inherit;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px 1px;text-decoration:none;display:grid}.project-parent-link:hover{background:var(--color-surface)}.project-parent-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.project-parent-icon{border-radius:var(--radius-control);width:32px;height:32px;color:var(--color-ink);background:var(--color-surface-subtle);place-items:center;display:grid}.project-parent-icon svg{width:17px;height:17px}.project-parent-icon path{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.project-parent-link>span:nth-child(2){gap:2px;min-width:0;display:grid}.project-parent-link small{color:var(--color-muted);font-size:12px}.project-parent-link strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:680;overflow:hidden}.project-parent-link em{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;overflow:hidden}.project-parent-link b{color:var(--color-muted);font-size:12px;font-weight:680}.graph-relation-legend{z-index:4;position:absolute;top:12px;left:12px}.graph-relation-legend>summary{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:30px;color:var(--color-ink);cursor:pointer;background:#fffffff2;grid-template-columns:15px auto auto 8px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:660;list-style:none;display:grid;box-shadow:0 3px 12px #26342b14}.graph-relation-legend>summary::-webkit-details-marker{display:none}.graph-relation-legend>summary svg{width:15px;height:15px}.graph-relation-legend>summary path{fill:none;stroke:var(--color-muted);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.graph-relation-legend>summary small{min-width:17px;color:var(--color-muted);background:var(--color-surface-subtle);text-align:center;border-radius:999px;justify-self:end;width:fit-content;padding:1px 5px;font-size:12px}.graph-relation-legend>summary i{border-right:1.3px solid var(--color-muted);border-bottom:1.3px solid var(--color-muted);width:6px;height:6px;transform:translateY(-2px)rotate(45deg)}.graph-relation-legend[open]>summary i{transform:translateY(2px)rotate(225deg)}.graph-relation-legend-panel{border:1px solid var(--color-border);border-radius:var(--radius-control);width:250px;box-shadow:var(--shadow-popover);background:#fffffffa;margin-top:6px;padding:12px}.graph-relation-legend-panel header{gap:2px;padding-bottom:9px;display:grid}.graph-relation-legend-panel header strong{color:var(--color-ink);font-size:12px}.graph-relation-legend-panel header span{color:var(--color-muted);font-size:12px}.graph-relation-legend-panel ul{border-top:1px solid var(--color-border);max-height:300px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.graph-relation-legend-panel li{border-bottom:1px solid var(--color-border);grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px 0;display:grid}.graph-relation-legend-panel li:last-child{border-bottom:0}.graph-relation-legend-panel li>svg{border-radius:var(--radius-control);width:28px;height:28px;color:var(--color-muted);background:var(--color-surface-subtle);padding:6px}.graph-relation-legend-panel li path{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.graph-relation-legend-panel li>span{gap:2px;min-width:0;display:grid}.graph-relation-legend-panel li strong{color:var(--color-ink);font-size:12px}.graph-relation-legend-panel li small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.graph-search-legend{z-index:2;border:1px solid var(--color-warning);color:var(--color-warning);pointer-events:none;background:#fffcf4f0;border-radius:6px;align-items:center;gap:7px;padding:7px 9px;font-size:12px;font-weight:680;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 4px 14px #49351717}.graph-search-legend[hidden]{display:none}.graph-search-legend i{background:var(--color-warning);border-radius:50%;width:8px;height:8px}.graph-search-status{z-index:3;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-control);width:min(440px,100% - 36px);color:var(--color-ink);box-shadow:var(--shadow-popover);background:#fffffff7;padding:15px 16px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.graph-search-status[hidden]{display:none}.graph-search-status-kicker{color:var(--color-warning);letter-spacing:.08em;margin-bottom:5px;font-size:12px;font-weight:720;display:block}.graph-search-status-title{font-size:14px;font-weight:680;display:block}.graph-search-status-copy{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.55}.graph-search-suggestions{gap:5px;margin-top:11px;display:grid}.graph-search-suggestion{border:1px solid var(--color-border);color:inherit;background:var(--color-surface);border-radius:6px;justify-content:space-between;align-items:center;gap:18px;padding:8px 9px;text-decoration:none;display:flex}.graph-search-suggestion:hover{border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.graph-search-suggestion>span{gap:2px;min-width:0;display:grid}.graph-search-suggestion strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.graph-search-suggestion small{color:var(--color-muted);font-size:12px}.graph-search-suggestion b{color:var(--color-ink);flex:none;font-size:12px;font-weight:680}.graph-empty{color:var(--color-muted);pointer-events:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.graph-hint{color:var(--color-muted);text-align:right;margin-top:8px;font-size:12px}.graph-edge{stroke:var(--color-border-strong);stroke-width:1.2px;opacity:.72;pointer-events:none;transition:opacity .12s,stroke .12s,stroke-width .12s}.graph-edge.historical{stroke-dasharray:5 4;opacity:.45}.graph-edge.human-change-pending{stroke:var(--color-warning);stroke-width:2.2px;stroke-dasharray:4 3;opacity:.9}.graph-edge.human-change-viewed{stroke:var(--color-muted)}.graph-edge-hit{stroke:#0000;stroke-width:15px;cursor:pointer}.graph-edge-label{opacity:.9;pointer-events:none;transition:opacity .12s}.graph-edge-label-bg{fill:#f9faf8f0;stroke:var(--color-border);stroke-width:.8px;transition:fill .12s,stroke .12s}.graph-edge-label-icon{fill:none;stroke:var(--color-muted);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .12s}.graph-edge-label-text{fill:var(--color-muted);pointer-events:none;font-size:8.5px;font-weight:650;transition:fill .12s}.graph-arrow{fill:var(--color-muted)}.graph-node{cursor:move;outline:none;transition:opacity .12s}.graph-node-human-marker{fill:var(--color-warning);stroke:var(--color-surface);stroke-width:1.5px;pointer-events:none}.graph-node.human-change-viewed .graph-node-human-marker{fill:var(--color-muted)}.graph-node-shape{stroke:var(--color-surface);stroke-width:2.5px;filter:drop-shadow(0 1px 2px #1c2a2126);transition:stroke .12s,stroke-width .12s,opacity .12s}.graph-project-ring{fill:var(--color-surface);stroke:var(--color-border-strong);stroke-width:1.5px;filter:drop-shadow(0 2px 4px #1f31271f);transition:fill .12s,stroke .12s,stroke-width .12s}.graph-node.project-node .graph-node-shape{fill:var(--color-ink);stroke:var(--color-surface);stroke-width:2.5px}.graph-project-icon{fill:none;stroke:var(--color-surface);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.graph-node-label{fill:var(--color-ink);text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--color-surface);stroke-width:3px;stroke-linejoin:round;font-size:12px;font-weight:540;transition:opacity .12s}.graph-node-id{fill:var(--color-muted);letter-spacing:.02em;text-anchor:middle;pointer-events:none;opacity:0;paint-order:stroke;stroke:var(--color-surface);stroke-width:2.5px;stroke-linejoin:round;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7px;font-weight:560;transition:opacity .12s}.graph-node.project-node .graph-node-id{opacity:.72}.graph-search-badge{pointer-events:none;display:none}.graph-search-badge rect{fill:var(--color-warning-soft);stroke:var(--color-warning);stroke-width:1px}.graph-search-badge text{fill:var(--color-warning);text-anchor:middle;paint-order:stroke;stroke:var(--color-warning-soft);stroke-width:1px;font-size:12px;font-weight:740}.graph-node.search-match .graph-search-badge{display:block}.graph-node:hover .graph-node-id,.graph-node:focus-visible .graph-node-id,.graph-node.selected .graph-node-id{opacity:1}.graph-node:not(.project-node):hover .graph-node-shape,.graph-node:not(.project-node):focus-visible .graph-node-shape,.graph-node:not(.project-node).selected .graph-node-shape{stroke:var(--color-accent);stroke-width:3.5px}.graph-node:not(.project-node).related .graph-node-shape{stroke:var(--color-muted);stroke-width:3px}.graph-node.project-node:hover .graph-project-ring,.graph-node.project-node:focus-visible .graph-project-ring,.graph-node.project-node.selected .graph-project-ring{fill:var(--color-surface-subtle);stroke:var(--color-accent);stroke-width:2.4px}.graph-node.project-node.related .graph-project-ring{stroke:var(--color-muted);stroke-width:2px}.graph-node:not(.project-node).search-match .graph-node-shape{stroke:var(--color-warning);stroke-width:5px;filter:drop-shadow(0 0 5px #bd74166b)}.graph-node.project-node.search-match .graph-project-ring{fill:var(--color-warning-soft);stroke:var(--color-warning);stroke-width:3px;filter:drop-shadow(0 0 5px #bd741652)}.graph-node.pinned .graph-node-shape{stroke:var(--color-muted);stroke-width:3px}.graph-node.dimmed,.graph-edge.dimmed,.graph-edge-label.dimmed{opacity:.08}.graph-node.dimmed .graph-node-id{opacity:.05}.graph-edge.related{stroke:var(--color-muted);stroke-width:2px;opacity:.9}.graph-edge.selected{stroke:var(--color-accent);stroke-width:2.8px;opacity:1}.graph-edge.search-match{stroke:var(--color-warning);stroke-width:2.8px;opacity:1}.graph-edge-label.search-match{opacity:1}.graph-edge-label.search-match .graph-edge-label-bg{fill:var(--color-warning-soft);stroke:var(--color-warning)}.graph-edge-label.search-match .graph-edge-label-icon{stroke:var(--color-warning)}.graph-edge-label.search-match .graph-edge-label-text{fill:var(--color-warning)}.graph-edge-label.related,.graph-edge-label.selected{opacity:1}.graph-edge-label.related .graph-edge-label-bg,.graph-edge-label.selected .graph-edge-label-bg{fill:var(--color-surface-subtle);stroke:var(--color-accent)}.graph-edge-label.related .graph-edge-label-icon,.graph-edge-label.selected .graph-edge-label-icon{stroke:var(--color-accent)}.graph-edge-label.related .graph-edge-label-text,.graph-edge-label.selected .graph-edge-label-text{fill:var(--color-accent);font-weight:700}.graph-viewport--compact-labels .graph-node-label,.graph-viewport--compact-labels .graph-node .graph-node-id,.graph-viewport--compact-labels .graph-edge-label{opacity:0}.graph-viewport--compact-labels .graph-node.project-node .graph-node-label,.graph-viewport--compact-labels .graph-node:is(:hover,:focus-visible,.selected,.search-match) .graph-node-label,.graph-viewport--compact-labels .graph-node:is(:hover,:focus-visible,.selected,.search-match) .graph-node-id,.graph-viewport--compact-labels .graph-edge-label:is(.hovered,.focused,.selected,.search-match){opacity:1}.knowledge-filter-disclosure{flex:none;padding-block:10px}.knowledge-filter-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=720px){.knowledge-filter-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.graph-toolbar>.searchable-select{width:100%}.graph-toolbar .search-form{flex:160px;min-width:0}.graph-view-actions{border-left:0;padding-left:0}.knowledge-mode-switch{gap:20px}}#app{height:100%}.feedback-message{align-items:center;gap:12px;display:flex}.feedback-message>span{overflow-wrap:anywhere;flex:1;min-width:0}.feedback-dismiss{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;flex:none}.status-dot.idle,.provider-row i.disconnected{background:var(--color-muted)}.provider-row i.error{background:var(--color-danger)}.provider-row i.ready{background:var(--color-success)}.view-loading{min-height:240px;color:var(--color-muted);place-items:center;font-size:12px;display:grid}.inline-error{color:var(--color-danger)}.inspector-meta>div{min-width:0}.inspector-meta dd{overflow-wrap:anywhere}.inspector-placeholder{color:var(--color-muted);font-size:12px;line-height:1.55}.feedback,.project-card,.knowledge-row,.personal-profile-row{transition:border-color .15s,background-color .15s}.vue-personal-profile{flex-direction:column;padding:18px 32px 20px;display:flex;overflow:hidden}.vue-knowledge-view{flex-direction:column;padding:18px 24px 20px;display:flex;overflow:hidden}.vue-knowledge-view .knowledge-layout{flex:1;min-height:0}.compact-relation-form{grid-template-columns:repeat(3,minmax(180px,1fr)) auto;align-items:end;gap:12px;padding:16px;display:grid}.compact-relation-form label{color:var(--color-muted);gap:5px;font-size:12px;display:grid}.compact-relation-form select{min-width:0}.compact-relation-form .searchable-select{width:100%;min-width:0}.compact-relation-preview{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);grid-column:1/-1;gap:4px;padding:11px 12px;display:grid}.compact-relation-preview span{color:var(--color-muted);letter-spacing:.08em;font-size:12px;font-weight:700}.compact-relation-preview strong{color:var(--color-ink);font-size:12px}.compact-relation-preview p{color:var(--color-muted);font-size:12px;line-height:1.5}.project-delete-confirmation{color:var(--color-danger);gap:7px;padding:18px 0;font-size:12px;display:grid}.project-delete-confirmation strong{color:var(--color-ink)}.vue-dialog[open]{z-index:20;border-radius:var(--radius-dialog);width:min(980px,100vw - 64px);max-height:calc(100vh - 64px);box-shadow:var(--shadow-dialog);margin:auto;display:grid;position:fixed;inset:0}.knowledge-edit-dialog.vue-dialog{width:min(1080px,100vw - 64px)}.vue-dialog::backdrop{background:var(--color-overlay)}@media (width<=1180px){.compact-relation-form{grid-template-columns:repeat(2,minmax(180px,1fr))}}.locale-switcher{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-subtle);align-items:center;gap:2px;padding:2px;display:inline-flex}.locale-switcher button{min-width:30px;min-height:26px;color:var(--color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 7px;font-size:12px;font-weight:700}.locale-switcher button:hover{color:var(--color-ink)}.locale-switcher button[aria-pressed=true]{background:var(--color-surface);color:var(--color-ink);box-shadow:0 1px 2px #20342a1f}:where(button,input,select,textarea){font:inherit}:where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:where(button):disabled{cursor:not-allowed;opacity:.5}:where(input:not([type=checkbox]):not([type=radio]),select,textarea){border:1px solid var(--color-control-border);border-radius:var(--radius-control);min-width:0;min-height:40px;color:var(--color-ink);background:var(--color-surface);padding:9px 12px;font-size:14px;line-height:1.5}:where(input,textarea)::placeholder{color:var(--color-muted);opacity:1}:where(input[type=checkbox],input[type=radio]){accent-color:var(--color-accent)}:where(textarea){resize:vertical}:where(input:not([type=checkbox]):not([type=radio]),textarea,select):focus{border-color:var(--color-accent)}.ui-button,.quiet-button,.primary-button,.primary-action,.secondary-action,.management-action,.danger-action,.settings-save-button,.toolbar-action,.relation-actions button{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:38px;color:var(--color-ink);background:var(--color-surface);cursor:pointer;transition:background-color var(--motion-fast), border-color var(--motion-fast);justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:550;line-height:1.4;text-decoration:none;display:inline-flex}.ui-button:hover,.quiet-button:hover,.secondary-action:hover,.management-action:hover,.toolbar-action:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong)}.ui-button--primary,.primary-button,.primary-action,.settings-save-button{color:var(--color-on-accent);background:var(--color-accent);border-color:#0000}.ui-button--primary:hover,.primary-button:hover,.primary-action:hover,.settings-save-button:hover{background:var(--color-accent-hover);border-color:#0000}.ui-button--ghost{background:0 0;border-color:#0000}.ui-button--danger,.danger-action,.quiet-button.danger{color:var(--color-danger)}.ui-button--danger:hover,.danger-action:hover,.quiet-button.danger:hover{background:var(--color-danger-soft)}.ui-button--icon{flex:none;width:38px;padding:8px}.ui-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-width:0}.ui-badge{background:var(--color-surface-subtle);color:var(--color-muted);border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;line-height:1.4;display:inline-flex}.ui-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ui-empty{color:var(--color-muted);text-align:center;padding:40px 24px;font-size:14px}.ui-disclosure{border-top:1px solid var(--color-border);padding-block:16px}.ui-disclosure>summary{cursor:pointer;color:var(--color-ink);justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:550;list-style:none;display:flex}.ui-disclosure>summary::-webkit-details-marker{display:none}.ui-disclosure>summary:after{content:"";border:solid var(--color-muted);border-width:0 1.5px 1.5px 0;width:7px;height:7px;margin:0 4px 4px;transform:rotate(45deg)}.ui-disclosure[open]>summary:after{margin-top:5px;transform:rotate(225deg)}.ui-disclosure[open]>summary{margin-bottom:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important}}.toolbar-action{background:0 0;border-color:#0000}
|