fuli-context 0.9.0-beta.2 → 0.9.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/dist/web/assets/AboutPage-D-GyJNv1.js +1 -0
- package/dist/web/assets/AboutPage-c4dQpUiP.css +1 -0
- package/dist/web/assets/AgentConversations-DOuZgUeA.js +2 -0
- package/dist/web/assets/AgentConversations-DS8h3yKn.css +1 -0
- package/dist/web/assets/AgentHand-Y83Oo36U.css +1 -0
- package/dist/web/assets/AgentHand-eGsXoGSq.js +1 -0
- package/dist/web/assets/AgentName-BQTFCWn0.css +1 -0
- package/dist/web/assets/AgentName-Dtmu9Ff5.js +1 -0
- package/dist/web/assets/AgentProfilePage-D8Tvayn7.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-BTEfKZjF.js +1 -0
- package/dist/web/assets/ConnectionsPage-C1w99yN3.css +1 -0
- package/dist/web/assets/ConnectionsPage-DwOIcvl9.js +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-BrIMRblq.css +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-D11blfwU.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-BcEzYt65.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-CK2BAoGt.js +3 -0
- package/dist/web/assets/GrowthLoading-CIuQ1icy.css +1 -0
- package/dist/web/assets/GrowthLoading-KTjE2e50.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-B3x8vs3c.css +1 -0
- package/dist/web/assets/KnowledgeEditDialog-n9trHQ5d.js +1 -0
- package/dist/web/assets/KnowledgeInspector-BcNjgw9H.js +1 -0
- package/dist/web/assets/KnowledgeInspector-pgDELOEf.css +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-BzgxP-nG.css +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-DMBpGxLr.js +1 -0
- package/dist/web/assets/KnowledgePage-POkCMW8f.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-2FvQadhB.js +4 -0
- package/dist/web/assets/NotFoundPage-BCMZbeB8.js +1 -0
- package/dist/web/assets/OverviewPage-0CFWCG9-.css +1 -0
- package/dist/web/assets/OverviewPage-0mYifpjp.js +1 -0
- package/dist/web/assets/PersonalProfilePage-Chv2a2pi.css +1 -0
- package/dist/web/assets/PersonalProfilePage-JW6Muix6.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-CRbi64JP.js +1 -0
- package/dist/web/assets/ProjectAgentFirstTask-DJ0wTbh8.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-BgQLIpxg.css +1 -0
- package/dist/web/assets/ProjectAgentsPage-CQemHFxy.js +12 -0
- package/dist/web/assets/ProjectScopePicker-BwB7gK-7.js +1 -0
- package/dist/web/assets/ProjectScopePicker-DYA7L1Ex.css +1 -0
- package/dist/web/assets/PublicProjectsPage-CB272Sq-.js +1 -0
- package/dist/web/assets/ReviewPage-CelTZU4C.js +1 -0
- package/dist/web/assets/RoundtablesPage-ByVeZlgC.js +2 -0
- package/dist/web/assets/{SearchableSelect-Do6X3fXi.js → SearchableSelect-f7EHbyDL.js} +1 -1
- package/dist/web/assets/SettingsPage-5g7mRN2F.css +1 -0
- package/dist/web/assets/SettingsPage-nAijmm5f.js +1 -0
- package/dist/web/assets/SharedJefaReportPage-CjpJ9bkk.js +1 -0
- package/dist/web/assets/SharedJefaReportPage-D92FSPru.css +1 -0
- package/dist/web/assets/UiDisclosure-CWlC91Zt.js +1 -0
- package/dist/web/assets/WritingTastePage-DaHWY61P.js +1 -0
- package/dist/web/assets/WritingTastePage-SMGF39mf.css +1 -0
- package/dist/web/assets/agent-profile-CBvJHGjt.css +1 -0
- package/dist/web/assets/{task-evidence-DTiPCs7r.js → agent-work-summary-LeW-Al_S.js} +1 -1
- package/dist/web/assets/attention-store-Dk-_P4Oi.js +1 -0
- package/dist/web/assets/{catalog-JmKyJnKL.js → catalog-DN72452f.js} +1 -1
- package/dist/web/assets/{client-DTQ_tUr2.js → client-B2cRl-7c.js} +1 -1
- package/dist/web/assets/console-BtPqo79j.js +1 -0
- package/dist/web/assets/{conversation-launcher-settings-fUWCt3XG.js → conversation-launcher-settings-jkHRmWai.js} +1 -1
- package/dist/web/assets/{copy-CX6pyzAG.js → copy-D2LqwtPZ.js} +1 -1
- package/dist/web/assets/{i18n-CIIxzhPZ.js → i18n-D2CJkEYK.js} +2 -2
- package/dist/web/assets/{identity-CdFITIOu.js → identity-B3zEw-1u.js} +1 -1
- package/dist/web/assets/index-CNp0tRNp.css +1 -0
- package/dist/web/assets/index-UygXwZDZ.js +5 -0
- package/dist/web/assets/{model-CJsrDUNb.js → model-S7ehAjky.js} +1 -1
- package/dist/web/assets/{personal-profile-graph-CQLOait6.js → personal-profile-graph--GG3Mizo.js} +1 -1
- package/dist/web/assets/shared-report-CGlCpmNd.css +1 -0
- package/dist/web/assets/shared-report-DEK9wvhl.js +1 -0
- package/dist/web/assets/useAgentRoster-BAPKWZ9y.js +1 -0
- package/dist/web/assets/{useApi-CROJJdhE-fcdVGInY.js → useApi-CROJJdhE-BtFMXFjw.js} +1 -1
- package/dist/web/assets/{useModalDialog-B-45idX9.js → useModalDialog-D8tiJfbc.js} +1 -1
- package/dist/web/assets/{vue-router-BUX6njIv.js → vue-router-DkaTtPn0.js} +1 -1
- package/dist/web/index.html +16 -15
- package/docs/project-agent-memory.md +6 -0
- package/graph-provider/fuli_graph/app.py +3 -1
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/skills/capturing-session-knowledge/SKILL.md +4 -0
- package/skills/operating-fuli/SKILL.md +4 -0
- package/src/agent-tools/graph-definitions.js +2 -2
- package/src/agents/codex/lifecycle-hook.js +7 -0
- package/src/agents/codex/roundtable-config.js +3 -0
- package/src/agents/cursor/lifecycle-hook.js +1 -0
- package/src/agents/identity-receipt.js +11 -4
- package/src/conversations/current-task-lookup.js +40 -0
- package/src/conversations/sync-transcript.js +4 -2
- package/src/graphiti/federated-application.js +1 -0
- package/src/graphiti/provider-client.js +7 -4
- package/src/graphiti/task-entry-preferences.js +6 -7
- package/src/http/static-handler.js +3 -1
- package/src/mcp/instructions.js +8 -7
- package/src/mcp/tool-result.js +20 -8
- package/src/native-runtime/runtime.js +41 -6
- package/src/roundtables/turn-prompt.js +3 -0
- package/dist/web/assets/AboutPage-u2Bv6cO-.js +0 -1
- package/dist/web/assets/AboutPage-vYIBifKw.css +0 -1
- package/dist/web/assets/AgentHand-CsMcNXUm.js +0 -1
- package/dist/web/assets/AgentHand-D9sQu2vc.css +0 -1
- package/dist/web/assets/AgentName-BboCA-Fd.js +0 -1
- package/dist/web/assets/AgentName-Cydd0UI4.css +0 -1
- package/dist/web/assets/AgentProfilePage-Dyux6qE3.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage-BEJdvmX7.js +0 -1
- package/dist/web/assets/ConnectionsPage-CBHAdZXT.css +0 -1
- package/dist/web/assets/ConnectionsPage-Dw_hK_EM.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-B59X3rOi.css +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-DP_ktv3w.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-CAt8lVnr.js +0 -3
- package/dist/web/assets/EmployeeWorkbenchPage-CQwZnTA0.css +0 -1
- package/dist/web/assets/GrowthLoading-B_Hh0CRS.css +0 -1
- package/dist/web/assets/GrowthLoading-DIwqGFSc.js +0 -1
- package/dist/web/assets/KnowledgeEditDialog-D9NuRHvp.css +0 -1
- package/dist/web/assets/KnowledgeEditDialog-Degd9AGD.js +0 -1
- package/dist/web/assets/KnowledgeInspector--1NujtXW.css +0 -1
- package/dist/web/assets/KnowledgeInspector-yms1ysZ4.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-C64wNn8a.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-h2iKvQpO.css +0 -1
- package/dist/web/assets/KnowledgePage-BTFEXzgi.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-BsF1X4Aq.js +0 -4
- package/dist/web/assets/NotFoundPage-DfaNTiD1.js +0 -1
- package/dist/web/assets/OverviewPage-VXMfcWFI.js +0 -1
- package/dist/web/assets/PersonalProfilePage-C1LBhcYu.js +0 -1
- package/dist/web/assets/PersonalProfilePage-L8T5xMEC.css +0 -1
- package/dist/web/assets/PersonalProjectsPage-B5lV4ZJW.js +0 -1
- package/dist/web/assets/ProjectAgentFirstTask-DF-IvEqp.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-CgL92gng.js +0 -13
- package/dist/web/assets/ProjectAgentsPage-CoJ4qQlA.css +0 -1
- package/dist/web/assets/ProjectScopePicker-BvaGTMFx.css +0 -1
- package/dist/web/assets/ProjectScopePicker-CZUMdyYz.js +0 -1
- package/dist/web/assets/PublicProjectsPage-e4CpxHk9.js +0 -1
- package/dist/web/assets/ReviewPage-DugEaFvI.js +0 -1
- package/dist/web/assets/RoundtablesPage-642YtZBC.js +0 -2
- package/dist/web/assets/SettingsPage-Brl-SL33.css +0 -1
- package/dist/web/assets/SettingsPage-wqYxDPyu.js +0 -1
- package/dist/web/assets/SharedJefaReportPage-CNQDezJr.js +0 -1
- package/dist/web/assets/SharedJefaReportPage-DXbj_JhO.css +0 -1
- package/dist/web/assets/WritingTastePage-Bzg6AvnB.css +0 -1
- package/dist/web/assets/WritingTastePage-CAUvbDlL.js +0 -1
- package/dist/web/assets/agent-profile-CdKOh5xw.css +0 -1
- package/dist/web/assets/agent-profile.css_vue_type_style_index_0_src_true_lang-DHOcWSe_.js +0 -1
- package/dist/web/assets/console-CrhIK67Y.js +0 -1
- package/dist/web/assets/employee-dialog-Bh5ccIbK.css +0 -1
- package/dist/web/assets/index-CYZi7E1e.css +0 -1
- package/dist/web/assets/index-Dsgn8o4-.js +0 -2
- package/dist/web/assets/shared-report-Cll2Yj8W.js +0 -1
- package/dist/web/assets/shared-report-ezeb8dW4.css +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as e,N as t,T as n,Z as r,_ as i,a,at as o,b as s,h as c,j as ee,nt as l,v as u,w as te,x as d,y as f,z as p}from"./i18n-CIIxzhPZ.js";import{t as ne}from"./console-CrhIK67Y.js";import{t as m}from"./GrowthLoading-DIwqGFSc.js";import{i as h,n as g}from"./client-DTQ_tUr2.js";import{t as re}from"./SearchableSelect-Do6X3fXi.js";import{r as ie,t as _}from"./identity-CdFITIOu.js";import{u as v}from"./model-CJsrDUNb.js";var ae={class:`view`},oe={class:`section-title`},se={class:`review-list`,"data-review-queue":`personal`},ce={key:1,class:`review-error`,role:`alert`},le=[`disabled`],y={class:`review-stage`},ue={class:`review-meta`},de={class:`review-actions stacked-actions`},fe=[`disabled`,`onClick`],pe=[`disabled`,`onClick`],me=[`disabled`,`onClick`],he={key:2,class:`empty-state`},ge={key:0,class:`project-section`},_e={class:`section-toolbar`},ve={class:`review-list`,"data-review-queue":`shared`},b={key:1,class:`review-error`,role:`alert`},ye=[`disabled`],be={class:`review-stage`},xe={class:`review-meta`},Se={class:`review-actions`},Ce=[`disabled`,`onClick`],we=[`disabled`,`onClick`],Te={key:2,class:`empty-state`},x=n({__name:`ReviewPage`,setup(n){let x=ne(),S=r([]),C=r([]),w=r(``),T=r(!1),E=r(``),D=r(!1),O=r(``),k=r(new Set),A=r(new Set),j=0,M=null,N=0,P=null,F=i(()=>(x.state?.projects??[]).filter(e=>e.role===`maintainer`&&Oe(e))),Ee=i(()=>F.value.map(e=>({value:e.id,label:e.name,meta:`#`+_(e.id,26),search:ie(e.id)}))),I=i(()=>F.value.find(({id:e})=>e===w.value)??null),De=i(()=>{let e=I.value;return e?e.id+`\0`+e.providerUrl:``});function Oe(e){return L(x.state,e)}function L(e,t){if(e?.capabilities?.reviewProposals!==!0)return!1;let n=e.providers?.workspaces?.find(({providerUrl:e})=>e===t.providerUrl);if(!n||n.status!==`ready`)return!1;let r=n.capabilities;return!!(r&&typeof r==`object`&&r.reviewProposals===!0)}function R(e){return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)?.id??e.personalSpaces[0]?.id??``:``}function z(e,t){let n=(e?.projects??[]).find(n=>n.id===t&&n.role===`maintainer`&&L(e,n));return n?n.id+`\0`+n.providerUrl:``}function B(e){return e instanceof Error&&e.message?e.message:a(`common.errors.loadFailed`)}function V(e){return!!(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)}function H(e,t,n){let r=new Set(e.value);n?r.add(t):r.delete(t),e.value=r}function U(){j+=1,M?.abort(),M=null,S.value=[],E.value=``,T.value=!1}function W(){N+=1,P?.abort(),P=null,C.value=[],O.value=``,D.value=!1}function G(e,t){return t===j&&x.activePersonalSpace?.id===e}function K(e,t){let n=I.value;return t===N&&n?.id===e.id&&n.providerUrl===e.providerUrl}function q(e,t,n){return G(n,t)&&S.value.some(({id:t})=>t===e.id)}function J(e,t,n){return K(t,n)&&C.value.some(({id:t})=>t===e.id)}function Y(e,t){return e+`\0`+t}async function X(e=x.activePersonalSpace?.id){M?.abort();let t=++j,n=new AbortController;if(M=n,T.value=!0,E.value=``,!e){T.value=!1,M===n&&(M=null);return}try{let r=await g(`/api/personal-review?`+new URLSearchParams({personalSpaceId:e,status:`pending`}),{signal:n.signal});if(!G(e,t)||n.signal.aborted)return;S.value=r.drafts??[]}catch(r){if(!G(e,t)||n.signal.aborted||V(r))return;E.value=B(r)}finally{t===j&&M===n&&(T.value=!1,M=null)}}async function Z(){let e=I.value;if(!e)return;P?.abort();let t=++N,n=new AbortController;P=n,D.value=!0,O.value=``;try{let r=await g(`/api/review?`+new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`}),{signal:n.signal});if(!K(e,t)||n.signal.aborted)return;C.value=r.proposals??[]}catch(r){if(!K(e,t)||n.signal.aborted||V(r))return;O.value=B(r)}finally{t===N&&P===n&&(D.value=!1,P=null)}}async function Q(e,t){let n=x.activePersonalSpace?.id,r=j;if(!(!n||T.value||E.value||!q(e,r,n))&&!k.value.has(e.id)){H(k,e.id,!0);try{if(T.value||E.value||!q(e,r,n)||(await h(`/api/personal-review/`+encodeURIComponent(e.id)+`/decision`,{decision:t}),!G(n,r)))return;await Promise.all([X(n),x.refresh()])}catch(e){G(n,r)&&!V(e)&&(E.value=B(e))}finally{H(k,e.id,!1)}}}async function $(e,t){let n=I.value,r=N;if(!n||D.value||O.value||!J(e,n,r))return;let i=Y(n.id,e.id);if(!A.value.has(i)){H(A,i,!0);try{if(D.value||O.value||!J(e,n,r)||(await h(`/api/review/`+encodeURIComponent(e.id)+`/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),!K(n,r)))return;await Z()}catch(e){K(n,r)&&!V(e)&&(O.value=B(e))}finally{H(A,i,!1)}}}return p(()=>x.state,(e,t)=>{if(!e||!t)return;let n=R(t),r=R(e);r&&r===n&&X(r);let i=w.value,a=z(t,i),o=z(e,i);o&&o===a&&Z()},{flush:`sync`}),p(()=>x.activePersonalSpace?.id??``,e=>{U(),e&&X(e)},{immediate:!0,flush:`sync`}),p(F,e=>{e.some(({id:e})=>e===w.value)||(w.value=e[0]?.id??``)},{immediate:!0,flush:`sync`}),p(De,()=>{W(),I.value&&Z()},{immediate:!0,flush:`sync`}),ee(()=>{U(),W()}),(n,r)=>(t(),d(`section`,ae,[u(`div`,oe,[u(`h3`,null,o(l(a)(`pages.review.personalTitle`)),1),u(`p`,null,o(l(a)(`pages.review.personalCopy`)),1)]),u(`div`,se,[T.value?(t(),f(m,{key:0,variant:`compact`,label:l(a)(`pages.review.loadingPersonal`)},null,8,[`label`])):s(``,!0),E.value?(t(),d(`div`,ce,[u(`span`,null,o(E.value),1),u(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[0]||=e=>X()},o(l(a)(`common.actions.retry`)),9,le)])):s(``,!0),(t(!0),d(c,null,e(S.value,e=>(t(),d(`article`,{key:e.id,class:`review-item review-item-detailed`},[u(`div`,null,[u(`div`,y,o(l(a)(`pages.review.beforePublic`)),1),u(`h4`,null,o(e.episode.name),1),u(`p`,null,o(e.episode.summary||e.episode.source_description),1),u(`div`,ue,[u(`span`,null,o(l(a)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),u(`span`,null,o(l(a)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),u(`span`,null,o(l(v)(e.created_at)),1)])]),u(`div`,de,[k.value.has(e.id)?(t(),f(m,{key:0,variant:`inline`,label:l(a)(`pages.review.savingDecision`)},null,8,[`label`])):s(``,!0),u(`button`,{class:`secondary-action`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`keep_personal`)},o(l(a)(`pages.review.keepPersonal`)),9,fe),u(`button`,{class:`reject`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`ignore`)},o(l(a)(`pages.review.ignore`)),9,pe),l(x).state?.capabilities?.submitKnowledge?(t(),d(`button`,{key:1,class:`approve`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`submit_public`)},o(l(a)(`pages.review.submitPublic`)),9,me)):s(``,!0)])]))),128)),!T.value&&!E.value&&!S.value.length?(t(),d(`div`,he,o(l(a)(`pages.review.noPersonalDrafts`)),1)):s(``,!0)]),l(x).state?.capabilities?.reviewProposals&&F.value.length?(t(),d(`section`,ge,[u(`div`,_e,[u(`div`,null,[u(`h3`,null,o(l(a)(`pages.review.publicTitle`)),1),u(`p`,null,o(l(a)(`pages.review.publicCopy`)),1)]),te(re,{modelValue:w.value,"onUpdate:modelValue":r[1]||=e=>w.value=e,options:Ee.value,label:l(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),u(`div`,ve,[D.value?(t(),f(m,{key:0,variant:`compact`,label:l(a)(`pages.review.loadingPublic`)},null,8,[`label`])):s(``,!0),O.value?(t(),d(`div`,b,[u(`span`,null,o(O.value),1),u(`button`,{class:`secondary-action`,type:`button`,disabled:D.value,onClick:r[2]||=e=>Z()},o(l(a)(`common.actions.retry`)),9,ye)])):s(``,!0),(t(!0),d(c,null,e(C.value,e=>(t(),d(`article`,{key:e.id,class:`review-item`},[u(`div`,null,[u(`div`,be,o(l(a)(`pages.review.maintainerReview`)),1),u(`h4`,null,o(e.episode.name),1),u(`p`,null,o(e.episode.summary||e.episode.source_description),1),u(`div`,xe,[u(`span`,null,o(l(v)(e.created_at)),1)])]),u(`div`,Se,[A.value.has(Y(w.value,e.id))?(t(),f(m,{key:0,variant:`inline`,label:l(a)(`pages.review.savingDecision`)},null,8,[`label`])):s(``,!0),u(`button`,{class:`reject`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`reject`)},o(l(a)(`pages.review.reject`)),9,Ce),u(`button`,{class:`approve`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`approve`)},o(l(a)(`pages.review.approve`)),9,we)])]))),128)),!D.value&&!O.value&&!C.value.length?(t(),d(`div`,Te,o(l(a)(`pages.review.noProposals`)),1)):s(``,!0)])])):s(``,!0)]))}});export{x as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,N as r,T as i,V as a,Z as o,_ as s,at as c,b as l,c as u,d,h as f,j as p,m,nt as h,rt as g,u as _,v,w as y,x as b,y as x,z as S}from"./i18n-CIIxzhPZ.js";import{t as C}from"./GrowthLoading-DIwqGFSc.js";import{h as w,m as T}from"./useApi-CROJJdhE-fcdVGInY.js";import{t as E}from"./vue-router-BUX6njIv.js";import{a as D,i as O,n as k,r as A,t as j}from"./copy-CX6pyzAG.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=i({__name:`RoundtableCreate`,emits:[`created`,`cancel`],setup(i,{emit:a}){let p=a,g=o(``),y=o(`discussion`),S=o([{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=o(``),D=o(``),O=o(),j=o(3),M=o(30),q=o(30),J=o(5),Y=o(!1),X=o(``),Z=o({}),Q=o({}),ke=3,$=s(()=>g.value.trim()&&S.value.length>=2&&S.value.length<=6&&S.value.every(e=>e.name.trim())&&S.value.filter(e=>e.role===`moderator`).length===1&&S.value.every(e=>y.value!==`collaboration`||e.role!==`implementer`||!Z.value[e.id]||Q.value[e.id]?.trim())&&(y.value===`discussion`||S.value.some(e=>e.role===`implementer`)&&S.value.some(e=>e.role===`reviewer`)));function Ae(){S.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:g.value.trim(),mode:y.value,seats:S.value.map(e=>({...e,name:e.name.trim(),...e.role===`implementer`&&y.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}:{}}}:{}});p(`created`,e.id)}catch(e){X.value=e instanceof Error?e.message:k(`创建失败`,`Creation failed`)}finally{Y.value=!1}}}return(i,a)=>(r(),b(`section`,P,[v(`div`,F,[v(`h2`,I,c(h(k)(`创建圆桌`,`Create a roundtable`)),1),v(`button`,{type:`button`,onClick:a[0]||=e=>p(`cancel`),disabled:Y.value},c(h(k)(`关闭`,`Close`)),9,L)]),v(`form`,{onSubmit:m(je,[`prevent`])},[v(`label`,R,[e(c(h(k)(`共同目标`,`Shared goal`)),1),n(v(`textarea`,{"onUpdate:modelValue":a[1]||=e=>g.value=e,required:``,maxlength:`12000`,rows:`3`,placeholder:h(k)(`描述要一起解决的问题和期望的交付`,`Describe the problem and expected deliverable`)},null,8,z),[[d,g.value]])]),v(`label`,B,[e(c(h(k)(`方式`,`Mode`)),1),n(v(`select`,{"onUpdate:modelValue":a[2]||=e=>y.value=e},[v(`option`,V,c(h(A)(`discussion`)),1),v(`option`,H,c(h(A)(`collaboration`)),1)],512),[[_,y.value]])]),v(`div`,U,[v(`h3`,null,c(h(k)(`参与席位`,`Seats`)),1),v(`span`,null,c(S.value.length)+` / 6`,1)]),v(`p`,W,c(h(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),b(f,null,t(S.value,(i,a)=>(r(),b(`div`,{key:i.id,class:`rt-seat-form`},[v(`label`,G,[e(c(h(k)(`姓名`,`Name`)),1),n(v(`input`,{"onUpdate:modelValue":e=>i.name=e,required:``,maxlength:`120`,"aria-label":`${h(k)(`姓名`,`Name`)} ${a+1}`},null,8,K),[[d,i.name]])]),v(`label`,ee,[e(c(h(k)(`职责`,`Role`)),1),n(v(`select`,{"onUpdate:modelValue":e=>i.role=e,"aria-label":`${h(k)(`职责`,`Role`)} ${a+1}`},[(r(),b(f,null,t(w,e=>v(`option`,{key:e,value:e},c(h(A)(e)),9,ne)),64))],8,te),[[_,i.role]])]),v(`label`,re,[e(c(h(k)(`参与方式`,`Adapter`)),1),n(v(`select`,{"onUpdate:modelValue":e=>i.runtime=e,"aria-label":`${h(k)(`参与方式`,`Adapter`)} ${a+1}`},[(r(),b(f,null,t(T,e=>v(`option`,{key:e,value:e},c(h(A)(e)),9,ae)),64))],8,ie),[[_,i.runtime]])]),v(`button`,{type:`button`,disabled:S.value.length<=2||Y.value,"aria-label":`${h(k)(`移除`,`Remove`)} ${i.name||a+1}`,onClick:e=>S.value.splice(a,1)},`×`,8,oe),i.role===`implementer`&&y.value===`collaboration`?(r(),b(`div`,se,[v(`label`,null,[n(v(`input`,{"onUpdate:modelValue":e=>Z.value[i.id]=e,type:`checkbox`},null,8,ce),[[u,Z.value[i.id]]]),e(` `+c(h(k)(`允许此实施席位写入指定工作区`,`Allow this implementer to write to the specified workspace`)),1)]),Z.value[i.id]?(r(),b(`label`,le,[e(c(h(k)(`获授权工作区路径`,`Authorized workspace path`)),1),n(v(`input`,{"onUpdate:modelValue":e=>Q.value[i.id]=e,required:``},null,8,ue),[[d,Q.value[i.id]]])])):l(``,!0)])):l(``,!0)]))),128)),v(`button`,{type:`button`,disabled:S.value.length>=6||Y.value,onClick:Ae},c(h(k)(`添加席位`,`Add seat`)),9,de),!$.value&&g.value.trim()?(r(),b(`p`,fe,c(h(k)(`需要 2–6 个有姓名的席位和一位主持人;协作任务还需要实施者和审查者。`,`Use 2–6 named seats and exactly one moderator. Collaborative tasks also require an implementer and a reviewer.`)),1)):l(``,!0),v(`details`,pe,[v(`summary`,null,c(h(k)(`停止条件与项目`,`Limits and project`)),1),v(`label`,me,[e(c(h(k)(`已登记项目的本机路径(可选)`,`Registered local project path (optional)`)),1),n(v(`input`,{"onUpdate:modelValue":a[3]||=e=>E.value=e,placeholder:h(k)(`留空建立独立临时圆桌`,`Leave blank for an independent temporary room`)},null,8,he),[[d,E.value]])]),v(`p`,ge,c(h(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(),b(f,{key:0},[v(`label`,_e,[e(c(h(k)(`关联已有 Fuli 任务 ID(可选)`,`Existing Fuli task ID (optional)`)),1),n(v(`input`,{"onUpdate:modelValue":a[4]||=e=>D.value=e},null,512),[[d,D.value]])]),D.value.trim()?(r(),b(`label`,ve,[e(c(h(k)(`产物版本(用于任务验证)`,`Artifact revision (for task verification)`)),1),n(v(`input`,{"onUpdate:modelValue":a[5]||=e=>O.value=e,type:`number`,min:`0`,step:`1`},null,512),[[d,O.value,void 0,{number:!0}]])])):l(``,!0),v(`p`,ye,c(h(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)):l(``,!0),v(`div`,be,[v(`label`,xe,[e(c(h(k)(`讨论轮数`,`Discussion rounds`)),1),n(v(`input`,{"onUpdate:modelValue":a[6]||=e=>j.value=e,type:`number`,min:`1`,max:`3`,required:``},null,512),[[d,j.value,void 0,{number:!0}]])]),v(`label`,Se,[e(c(h(k)(`Agent 发言上限`,`Agent message limit`)),1),n(v(`input`,{"onUpdate:modelValue":a[7]||=e=>M.value=e,type:`number`,min:`1`,max:`30`,required:``},null,512),[[d,M.value,void 0,{number:!0}]])]),v(`label`,Ce,[e(c(h(k)(`总时限(分钟)`,`Total minutes`)),1),n(v(`input`,{"onUpdate:modelValue":a[8]||=e=>q.value=e,type:`number`,min:`1`,max:`30`,required:``},null,512),[[d,q.value,void 0,{number:!0}]])]),v(`label`,we,[e(c(h(k)(`单回合(分钟)`,`Minutes per turn`)),1),n(v(`input`,{"onUpdate:modelValue":a[9]||=e=>J.value=e,type:`number`,min:`1`,max:`5`,required:``},null,512),[[d,J.value,void 0,{number:!0}]])])])]),y.value===`collaboration`?(r(),b(`p`,Te,c(h(k)(`实施席位仍需要在工作端明确授权工作区写入;审查默认只读。执行结果等待你的验收。`,`Implementation still requires explicit workspace write permission on the worker. Reviews default to read only. Results await your acceptance.`)),1)):l(``,!0),X.value?(r(),b(`p`,Ee,c(X.value),1)):l(``,!0),v(`button`,{type:`submit`,class:`rt-primary`,disabled:!$.value||Y.value},[Y.value?(r(),x(C,{key:0,variant:`inline`,label:`创建圆桌 · Creating roundtable`})):(r(),b(`span`,Oe,c(h(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={class:`rt-muted`},je={class:`rt-muted`},Me={key:0,class:`rt-muted`},Ne={class:`rt-actions`},Pe=[`disabled`,`onClick`],Fe={key:1},Ie=[`disabled`,`onClick`],Le={key:1},Re={key:0,class:`rt-error`,role:`alert`},ze={key:1,class:`rt-invite`,"aria-labelledby":`rt-invite-title`},Be={class:`rt-section-heading`},Ve={id:`rt-invite-title`},He={class:`rt-field`},Ue=[`value`],We={class:`rt-muted`},Ge={class:`rt-field`},Ke={class:`rt-muted`},qe={class:`rt-field`},Je=[`placeholder`],Ye={key:0},Xe={key:1,class:`rt-field`},Ze={key:2,class:`rt-field`},Qe={class:`rt-muted`},$e={class:`rt-muted`},et={class:`rt-muted`},tt={class:`rt-muted`},nt=i({__name:`RoundtableSeats`,props:{room:{},activeSeatId:{}},emits:[`changed`],setup(i,{emit:a}){let s=i,m=a,_=o(null),y=o(``),w=o(``),T=o(``),E=o(``),D=o(typeof window>`u`?``:window.location.origin),j=o(!1),M=o(``),P=o(``),F=!1;S(()=>s.room.id,()=>{_.value=null,w.value=``,T.value=``}),p(()=>{F=!0,_.value=null});async function I(e){if(y.value)return;y.value=`invite:${e}`,w.value=``,_.value=null,T.value=``;let t=s.room.id;try{let n=await N.invite(t,e);!F&&s.room.id===t&&(_.value=n)}catch(e){w.value=e instanceof Error?e.message:k(`创建邀请失败`,`Invitation failed`)}finally{y.value=``}}async function L(e){if(!y.value){y.value=`revoke:${e}`,w.value=``;try{await N.revoke(s.room.id,e),_.value?.seatId===e&&(_.value=null),m(`changed`)}catch(e){w.value=e instanceof Error?e.message:k(`撤销失败`,`Revocation failed`)}finally{y.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=s.room.seats.find(e=>e.id===_.value?.seatId);if(!e||e.runtime===`mcp`)return``;let t=e=>`'${e.replaceAll(`'`,`''`)}'`;return`fl roundtable worker --url ${t(D.value)} --room ${t(s.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(s.room.id)}/mcp`}return(a,o)=>(r(),b(`section`,J,[v(`div`,Y,[v(`h2`,X,c(h(k)(`圆桌席位`,`Seats`)),1),v(`span`,null,c(i.room.seats.length),1)]),v(`p`,Z,c(h(k)(`邀请仅授予一个席位的权限。加入记录是历史证据,当前在线状态由工作端轮询和回合回执确定。`,`An invitation grants access to one seat. Join records are historical evidence; worker polling and turn receipts determine current activity.`)),1),v(`div`,Q,[(r(!0),b(f,null,t(i.room.seats,e=>(r(),b(`article`,{key:e.id,class:g([`rt-seat`,{"rt-seat-current":e.id===i.activeSeatId}])},[v(`div`,ke,[v(`strong`,null,c(e.name),1),v(`span`,$,c(h(A)(e.role)),1)]),v(`p`,null,c(h(A)(e.runtime)),1),v(`p`,Ae,c(e.identityKind===`fuli`?h(k)(`已绑定 Fuli 身份`,`Bound Fuli identity`):h(k)(`独立任务席位`,`Independent task seat`)),1),v(`p`,je,c(e.joinedAt?`${h(k)(`加入于`,`Joined`)} ${h(O)(e.joinedAt)}`:h(k)(`尚无加入记录`,`No join recorded`)),1),e.execution?(r(),b(`p`,Me,c(h(A)(e.execution.permission))+` · `+c(e.execution.workspace),1)):l(``,!0),v(`div`,Ne,[v(`button`,{type:`button`,disabled:!!y.value,onClick:t=>I(e.id)},[y.value===`invite:${e.id}`?(r(),x(C,{key:0,variant:`inline`,label:`创建席位邀请 · Creating seat invitation`})):(r(),b(`span`,Fe,c(h(k)(`邀请参与`,`Invite participant`)),1))],8,Pe),v(`button`,{type:`button`,disabled:!!y.value,onClick:t=>L(e.id)},[y.value===`revoke:${e.id}`?(r(),x(C,{key:0,variant:`inline`,label:`撤销席位凭据 · Revoking seat credentials`})):(r(),b(`span`,Le,c(h(k)(`撤销凭据`,`Revoke credentials`)),1))],8,Ie)])],2))),128))]),w.value?(r(),b(`p`,Re,c(w.value),1)):l(``,!0),_.value?(r(),b(`section`,ze,[v(`div`,Be,[v(`h3`,Ve,c(h(k)(`席位邀请 · 仅此次显示`,`Seat invitation · shown once`)),1),v(`button`,{type:`button`,onClick:o[0]||=e=>{_.value=null,T.value=``}},c(h(k)(`隐藏凭据`,`Hide credential`)),1)]),v(`p`,null,c(i.room.seats.find(e=>e.id===_.value?.seatId)?.name)+` · `+c(h(k)(`有效期至`,`Expires`))+` `+c(h(O)(_.value.expiresAt)),1),v(`label`,He,[e(c(h(k)(`席位访问凭据`,`Seat credential`)),1),v(`input`,{value:_.value.seatToken,readonly:``,autocomplete:`off`,spellcheck:`false`,type:`password`,"data-testid":`seat-token`,onFocus:o[1]||=e=>e.target.select()},null,40,Ue)]),v(`button`,{type:`button`,onClick:o[2]||=e=>R(_.value.seatToken,`token`)},c(T.value===`token`?h(k)(`凭据已复制`,`Credential copied`):h(k)(`复制凭据`,`Copy credential`)),1),v(`p`,We,c(h(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),v(`label`,Ge,[e(c(h(k)(`参与者可访问的协调端地址`,`Coordinator URL reachable by participant`)),1),n(v(`input`,{"onUpdate:modelValue":o[3]||=e=>D.value=e,type:`url`},null,512),[[d,D.value]])]),v(`p`,Ke,c(h(k)(`另一台电脑需要可访问的 HTTPS 地址,并在协调端设置 public-url;本机测试可使用回环地址。`,`Another computer needs a reachable HTTPS URL configured as public-url on the coordinator. Loopback works for local testing.`)),1),i.room.seats.find(e=>e.id===_.value?.seatId)?.runtime===`mcp`?(r(),b(f,{key:1},[v(`p`,$e,c(h(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),v(`pre`,null,[v(`code`,null,c(B()),1)]),v(`button`,{type:`button`,onClick:o[9]||=e=>R(B(),`mcp`)},c(T.value===`mcp`?h(k)(`地址已复制`,`URL copied`):h(k)(`复制 MCP 地址`,`Copy MCP URL`)),1),v(`p`,et,c(h(k)(`主动调用 join_roundtable,再通过 read_roundtable、claim_roundtable_turn、submit_roundtable_turn 参与自己的回合;参数 roomId 为下面的圆桌 ID。MCP 不会后台唤醒现有聊天。`,`Actively call join_roundtable, then use read_roundtable, claim_roundtable_turn and submit_roundtable_turn for your own turns, passing the room ID below as roomId. MCP does not wake existing chats in the background.`)),1)],64)):(r(),b(f,{key:0},[v(`label`,qe,[e(c(h(k)(`参与端本地工作区`,`Worker local workspace`)),1),n(v(`input`,{"onUpdate:modelValue":o[4]||=e=>E.value=e,placeholder:h(k)(`填写参与者电脑上的路径`,`Path on the participant’s computer`)},null,8,Je),[[d,E.value]])]),i.room.seats.find(e=>e.id===_.value?.seatId)?.execution?.permission===`workspace-write`?(r(),b(`label`,Ye,[n(v(`input`,{"onUpdate:modelValue":o[5]||=e=>j.value=e,type:`checkbox`},null,512),[[u,j.value]]),e(` `+c(h(k)(`工作端用户明确允许写入此工作区`,`The worker’s user explicitly permits writing to this workspace`)),1)])):l(``,!0),i.room.seats.find(e=>e.id===_.value?.seatId)?.runtime===`a2a`?(r(),b(`label`,Xe,[e(c(h(k)(`A2A 端点`,`A2A endpoint`)),1),n(v(`input`,{"onUpdate:modelValue":o[6]||=e=>M.value=e,type:`url`,placeholder:`https://…`},null,512),[[d,M.value]])])):l(``,!0),i.room.seats.find(e=>e.id===_.value?.seatId)?.runtime===`pi`?(r(),b(`label`,Ze,[e(c(h(k)(`参与电脑上的 Ollama 模型`,`Ollama model on participant computer`)),1),n(v(`input`,{"onUpdate:modelValue":o[7]||=e=>P.value=e,placeholder:`fuli-roundtable-qwen3-32k:latest`},null,512),[[d,P.value]])])):l(``,!0),v(`p`,null,c(h(k)(`在参与端 PowerShell 中,先设置环境变量,再启动工作端:`,`In the worker’s PowerShell, set the environment variable and start the worker:`)),1),v(`pre`,null,[v(`code`,null,`$env:FULI_ROUNDTABLE_TOKEN = '<`+c(h(k)(`粘贴席位凭据`,`PASTE_SEAT_CREDENTIAL`))+`>'
|
|
2
|
-
`+c(z()),1)]),v(`button`,{type:`button`,onClick:o[8]||=e=>R(z(),`command`)},c(T.value===`command`?h(k)(`命令已复制`,`Command copied`):h(k)(`复制工作端命令`,`Copy worker command`)),1),v(`p`,Qe,c(h(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)),v(`p`,tt,c(h(k)(`协调端地址`,`Coordinator URL`))+`: `+c(D.value)+` · `+c(h(k)(`圆桌`,`Room`))+`: `+c(i.room.id)+` · `+c(h(k)(`席位`,`Seat`))+`: `+c(_.value.seatId),1)])):l(``,!0)]))}}),rt={class:`rt-panel`,"aria-labelledby":`rt-results-title`},it={class:`rt-section-heading`},at={id:`rt-results-title`},ot={key:0,class:`rt-tag`},st={class:`rt-message-body`},ct={class:`rt-muted`},lt={key:0,class:`rt-advanced`},ut={class:`rt-message-body`},dt={class:`rt-muted`},ft={key:1,class:`rt-empty`},pt={key:2,class:`rt-table-scroll`},mt={key:3,class:`rt-muted`},ht={class:`rt-advanced`},gt={class:`rt-message-body`},_t={class:`rt-message-body`},vt={key:4,class:`rt-muted`},yt={key:5,class:`rt-artifacts`},bt={key:6,class:`rt-muted`},xt={class:`rt-muted`},St={key:7,class:`rt-table-scroll`},Ct={"data-testid":`runtime-receipts`},wt={key:8,class:`rt-empty`,"data-testid":`no-runtime-receipts`},Tt=i({__name:`RoundtableResults`,props:{snapshot:{}},setup(n){let i=n,a=s(()=>i.snapshot.messages.filter(e=>e.actual)),o=s(()=>i.snapshot.messages.filter(e=>e.kind===`dissent`)),u=s(()=>[...i.snapshot.outcome?.artifacts??[],...i.snapshot.tasks.flatMap(e=>e.artifacts??[])]),d=e=>i.snapshot.room.seats.find(t=>t.id===e)?.name??e??k(`系统`,`System`);function p(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 m(e){return e==null?k(`未报告`,`Not reported`):typeof e==`string`?e:JSON.stringify(e,null,2)}function g(e){return!e||!Object.keys(e).length?k(`未知`,`Unknown`):Object.entries(e).filter(([,e])=>typeof e==`number`).map(([e,t])=>`${e}: ${t}`).join(` · `)||k(`未知`,`Unknown`)}return(i,s)=>(r(),b(`section`,rt,[v(`div`,it,[v(`h2`,at,c(h(k)(`结果与证据`,`Results and evidence`)),1),n.snapshot.outcome?(r(),b(`span`,ot,c(h(A)(n.snapshot.outcome.acceptance)),1)):l(``,!0)]),n.snapshot.outcome?(r(),b(f,{key:0},[v(`p`,st,c(n.snapshot.outcome.body),1),v(`p`,ct,c(h(k)(`Agent 报告的结论保留为报告;人工验收和任务验证分别记录。`,`Agent conclusions remain reports. Human acceptance and task verification are recorded separately.`)),1),n.snapshot.outcome.verification?.reported==null?l(``,!0):(r(),b(`details`,lt,[v(`summary`,null,c(h(k)(`汇总验证报告`,`Outcome verification report`)),1),v(`p`,ut,c(m(n.snapshot.outcome.verification.reported)),1),v(`p`,dt,c(n.snapshot.outcome.verification.confirmed?h(k)(`服务端记录为已确认`,`Recorded as confirmed by server`):h(k)(`参与端报告,尚未确认`,`Participant report, not confirmed`)),1)]))],64)):(r(),b(`p`,ft,c(h(k)(`尚未提交最终结论。讨论、任务报告与实际执行记录会持续保留。`,`No final outcome has been submitted. Discussion, task reports and execution records are preserved.`)),1)),v(`h3`,null,c(h(k)(`任务`,`Tasks`)),1),n.snapshot.tasks.length?(r(),b(`div`,pt,[v(`table`,null,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,c(h(k)(`任务 / 阶段`,`Task / phase`)),1),v(`th`,null,c(h(k)(`负责人`,`Assignee`)),1),v(`th`,null,c(h(k)(`权限`,`Permission`)),1),v(`th`,null,c(h(k)(`状态`,`Status`)),1),v(`th`,null,c(h(k)(`依赖`,`Dependencies`)),1)])]),v(`tbody`,null,[(r(!0),b(f,null,t(n.snapshot.tasks,t=>(r(),b(`tr`,{key:t.id},[v(`td`,null,[e(c(t.title||t.id),1),v(`small`,null,c(h(A)(t.phase)),1)]),v(`td`,null,c(d(t.seatId)),1),v(`td`,null,c(h(A)(t.permission)),1),v(`td`,null,c(h(A)(t.status)),1),v(`td`,null,c(t.dependencies?.join(`, `)||`—`),1)]))),128))])])])):(r(),b(`p`,mt,c(h(k)(`本圆桌尚无执行任务。讨论消息不算工作进程执行。`,`No execution tasks in this room. Discussion messages are not worker execution.`)),1)),(r(!0),b(f,null,t(n.snapshot.tasks.filter(e=>e.verification!=null),e=>(r(),b(`div`,{key:e.id},[v(`details`,ht,[v(`summary`,null,c(h(k)(`任务验证报告`,`Task verification report`))+` · `+c(e.title||e.id),1),v(`p`,gt,c(m(e.verification)),1)])]))),128)),v(`h3`,null,c(h(k)(`保留的分歧`,`Retained dissent`)),1),(r(!0),b(f,null,t(o.value,e=>(r(),b(`article`,{key:e.id,class:`rt-dissent`},[v(`strong`,null,c(d(e.seatId))+` · #`+c(e.seq),1),v(`p`,_t,c(e.body),1)]))),128)),(r(!0),b(f,null,t(n.snapshot.outcome?.dissent??[],(e,t)=>(r(),b(`p`,{key:t,class:`rt-message-body`},c(p(e)),1))),128)),!o.value.length&&!n.snapshot.outcome?.dissent?.length?(r(),b(`p`,vt,c(h(k)(`尚未记录分歧。`,`No dissent recorded.`)),1)):l(``,!0),v(`h3`,null,c(h(k)(`产物引用`,`Artifact references`)),1),u.value.length?(r(),b(`ul`,yt,[(r(!0),b(f,null,t(u.value,(e,t)=>(r(),b(`li`,{key:t},c(h(j)(e)),1))),128))])):(r(),b(`p`,bt,c(h(k)(`尚无产物引用。`,`No artifact references reported.`)),1)),v(`h3`,null,c(h(k)(`实际运行回执`,`Actual runtime receipts`)),1),v(`p`,xt,c(h(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 stays unknown.`)),1),a.value.length?(r(),b(`div`,St,[v(`table`,Ct,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,c(h(k)(`席位 / 消息`,`Seat / message`)),1),v(`th`,null,c(h(k)(`报告的应用`,`Reported application`)),1),v(`th`,null,c(h(k)(`报告的模型`,`Reported model`)),1),v(`th`,null,c(h(k)(`会话`,`Session`)),1),v(`th`,null,c(h(k)(`用量`,`Usage`)),1),v(`th`,null,c(h(k)(`证据来源`,`Provenance`)),1),v(`th`,null,c(h(k)(`时间`,`Time`)),1)])]),v(`tbody`,null,[(r(!0),b(f,null,t(a.value,t=>(r(),b(`tr`,{key:t.id},[v(`td`,null,[e(c(d(t.seatId)),1),v(`small`,null,`#`+c(t.seq)+` · `+c(h(A)(t.kind)),1)]),v(`td`,null,c(t.actual?.applicationLabel||t.actual?.reportedApplication||t.actual?.sourceApplication||h(k)(`未知`,`Unknown`)),1),v(`td`,null,c(t.actual?.model||h(k)(`未知`,`Unknown`)),1),v(`td`,null,c(t.actual?.sessionId||h(k)(`未知`,`Unknown`)),1),v(`td`,null,c(g(t.actual?.usage)),1),v(`td`,null,[e(c(h(k)(`参与端报告`,`Participant reported`)),1),v(`small`,null,c(h(k)(`身份未独立验证`,`Identity not independently verified`)),1)]),v(`td`,null,c(h(O)(t.createdAt)),1)]))),128))])])])):(r(),b(`p`,wt,c(h(k)(`尚无实际运行回执。`,`No actual runtime receipts yet.`)),1))]))}}),Et={class:`rt-panel rt-event-details`},Dt={class:`rt-muted`},Ot={key:0,class:`rt-table-scroll`},kt={"data-testid":`turn-attempts`},At={key:1,class:`rt-muted`},jt={class:`rt-muted`},Mt={class:`rt-message-body`},Nt={key:2,class:`rt-muted`},Pt={class:`rt-events`},Ft={key:0},It=i({__name:`RoundtableEvents`,props:{snapshot:{}},setup(n){let i=n,a=e=>i.snapshot.room.seats.find(t=>t.id===e)?.name??e;return(i,o)=>(r(),b(`details`,Et,[v(`summary`,null,c(h(k)(`回合尝试、恢复与历史事件`,`Turn attempts, recovery and history`)),1),v(`p`,Dt,c(h(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),n.snapshot.attempts?.length?(r(),b(`div`,Ot,[v(`table`,kt,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,c(h(k)(`参与者`,`Participant`)),1),v(`th`,null,c(h(k)(`尝试`,`Attempt`)),1),v(`th`,null,c(h(k)(`状态`,`Status`)),1),v(`th`,null,c(h(k)(`领取时间`,`Claimed at`)),1),v(`th`,null,c(h(k)(`结束时间`,`Finished at`)),1)])]),v(`tbody`,null,[(r(!0),b(f,null,t(n.snapshot.attempts,e=>(r(),b(`tr`,{key:`${e.turnId}:${e.id}`},[v(`td`,null,c(a(e.seatId)),1),v(`td`,null,c(e.id),1),v(`td`,null,c(h(A)(e.status)),1),v(`td`,null,c(h(O)(e.startedAt)),1),v(`td`,null,c(e.finishedAt?h(O)(e.finishedAt):`—`),1)]))),128))])])])):(r(),b(`p`,At,c(h(k)(`尚无回合尝试。`,`No turn attempts yet.`)),1)),v(`h3`,null,c(h(k)(`过期结果存档`,`Stale result archive`)),1),v(`p`,jt,c(h(k)(`晚到结果保留在历史中,不替代当前讨论或交付结论。`,`Late results remain in history and do not replace current discussion or delivery outcomes.`)),1),(r(!0),b(f,null,t(n.snapshot.lateResults??[],e=>(r(),b(`article`,{key:`${e.turnId}:${e.attemptId}`,class:`rt-message`},[v(`strong`,null,c(a(e.seatId))+` · `+c(h(O)(e.receivedAt)),1),v(`p`,Mt,c(e.body),1),v(`small`,null,c(e.turnId)+` / `+c(e.attemptId),1)]))),128)),n.snapshot.lateResults?.length?l(``,!0):(r(),b(`p`,Nt,c(h(k)(`没有过期结果。`,`No stale results.`)),1)),v(`h3`,null,c(h(k)(`状态事件`,`Status events`)),1),v(`ol`,Pt,[(r(!0),b(f,null,t(n.snapshot.events??[],t=>(r(),b(`li`,{key:t.id},[v(`span`,null,c(h(A)(t.kind)),1),e(` · `+c(h(O)(t.createdAt)),1),t.kind===`cancellation_requested`&&t.confirmed!==!0?(r(),b(`small`,Ft,` · `+c(h(k)(`取消尚未确认`,`Cancellation not confirmed`)),1)):l(``,!0)]))),128))])]))}}),Lt={class:`rt-detail`},Rt={class:`rt-panel rt-room-heading`},zt={class:`rt-section-heading`},Bt={class:`rt-eyebrow`},Vt=[`data-status`],Ht={class:`rt-meta`},Ut={key:0,class:`rt-warning`},Wt={class:`rt-actions`},Gt=[`disabled`],Kt=[`disabled`],qt=[`disabled`],Jt=[`disabled`],Yt=[`disabled`],Xt={key:1,class:`rt-muted`},Zt={key:3,class:`rt-confirm`},Qt={class:`rt-field`},$t=[`disabled`],en={key:4,class:`rt-error`,role:`alert`},tn={key:5,class:`rt-advanced`},nn={class:`rt-muted`},rn={class:`rt-limit-form`},an={class:`rt-field`},on={class:`rt-field`},sn={class:`rt-field`},cn={class:`rt-field`},ln=[`disabled`],un={class:`rt-panel`,"aria-labelledby":`rt-messages-title`},dn={class:`rt-section-heading`},fn={id:`rt-messages-title`},pn={key:0,class:`rt-current-turn`},mn={key:0},hn={class:`rt-messages`,"aria-live":`polite`,"aria-relevant":`additions`},gn={class:`rt-section-heading`},_n={class:`rt-message-body`},vn={key:0,class:`rt-empty`},yn=[`disabled`],bn={class:`rt-field`},xn=[`placeholder`],Sn=[`disabled`],Cn={key:1},wn={key:3,class:`rt-advanced`},Tn={class:`rt-muted`},En={class:`rt-field`},Dn={class:`rt-actions`},On=[`disabled`],kn=[`disabled`],An=[`disabled`],jn={key:0,class:`rt-panel`},Mn=[`disabled`],Nn={key:0,class:`rt-confirm`},Pn=[`disabled`],Fn=i({__name:`RoundtableDetail`,props:{snapshot:{},refreshing:{type:Boolean}},emits:[`refresh`],setup(i,{emit:a}){let u=i,p=a,_=o(``),w=o(``),T=o(``),E=o(``),D=o(!1),j=o(!1),M=o(3),P=o(30),F=o(30),I=o(5),L=s(()=>u.snapshot.room),R=s(()=>[`concluded`,`failed`,`cancelled`].includes(L.value.status)),z=s(()=>L.value.seats.every(e=>e.joinedAt)),B=s(()=>L.value.status===`active`&&L.value.phase===`discussion`&&(L.value.round??1)>1&&u.snapshot.currentTurn?.status===`pending`&&L.value.phaseIndex===0),V=s(()=>[`paused`,`waiting_input`].includes(L.value.status)&&u.snapshot.currentTurn&&![`pending`,`claimed`].includes(u.snapshot.currentTurn.status)),H=s(()=>u.snapshot.currentTurn&&u.snapshot.currentTurn.status!==`claimed`&&[`discussion`,`planning`].includes(L.value.phase)),U=s(()=>!u.snapshot.currentTurn||[`pending`,`claimed`].includes(u.snapshot.currentTurn.status)),W=e=>L.value.seats.find(t=>t.id===e)?.name??e??k(`系统`,`System`);S(()=>L.value.id,()=>{_.value=``,w.value=``,D.value=!1,j.value=!1}),S(()=>`${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)}),p(`refresh`)}catch(e){w.value=e instanceof Error?e.message:k(`更新停止条件失败`,`Could not update limits`),p(`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=``,p(`refresh`)}catch(e){w.value=e instanceof Error?e.message:k(`操作失败`,`Action failed`),p(`refresh`)}finally{T.value=``}}}async function ee(){if(!(!_.value.trim()||T.value)){T.value=`message`,w.value=``;try{await N.message(L.value.id,_.value.trim()),_.value=``,p(`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(a,o)=>(r(),b(`div`,Lt,[v(`section`,Rt,[v(`div`,zt,[v(`span`,Bt,c(h(A)(L.value.mode))+` · `+c(L.value.binding?.projectId||h(k)(`独立临时任务`,`Independent temporary task`)),1),v(`span`,{class:`rt-tag`,"data-status":L.value.status},c(h(A)(L.value.status)),9,Vt)]),v(`h1`,null,c(L.value.goal),1),v(`div`,Ht,[v(`span`,null,c(h(k)(`阶段`,`Phase`))+`: `+c(h(A)(L.value.phase)),1),v(`span`,null,c(h(k)(`讨论轮数`,`Discussion rounds`))+`: `+c(L.value.round??0)+` / `+c(L.value.limits.maxRounds),1),v(`span`,null,c(h(k)(`Agent 发言`,`Agent messages`))+`: `+c(L.value.agentMessageCount??0)+` / `+c(L.value.limits.maxMessages),1),v(`span`,null,c(h(k)(`总时限`,`Time limit`))+`: `+c(Math.round(L.value.limits.maxDurationMs/6e4))+` `+c(h(k)(`分钟`,`min`)),1)]),L.value.stopReason?(r(),b(`p`,Ut,c(h(k)(`当前原因`,`Current reason`))+`: `+c(L.value.stopReason),1)):l(``,!0),v(`div`,Wt,[L.value.status===`draft`?(r(),b(`button`,{key:0,class:`rt-primary`,type:`button`,disabled:!!T.value||!z.value,onClick:o[0]||=e=>K(`start`)},c(h(k)(`开始圆桌`,`Start roundtable`)),9,Gt)):l(``,!0),L.value.status===`active`?(r(),b(`button`,{key:1,type:`button`,disabled:!!T.value,onClick:o[1]||=e=>K(`pause`)},c(h(k)(`暂停`,`Pause`)),9,Kt)):l(``,!0),[`paused`,`waiting_auth`,`waiting_input`].includes(L.value.status)&&!(L.value.phase===`synthesis`&&i.snapshot.outcome&&!i.snapshot.currentTurn)?(r(),b(`button`,{key:2,type:`button`,disabled:!!T.value||!U.value,onClick:o[2]||=e=>K(`resume`)},c(h(k)(`恢复`,`Resume`)),9,qt)):l(``,!0),R.value?l(``,!0):(r(),b(`button`,{key:3,type:`button`,disabled:!!T.value,onClick:o[3]||=e=>D.value=!D.value},c(h(k)(`停止`,`Stop`)),9,Jt)),v(`button`,{type:`button`,disabled:i.refreshing||!!T.value,onClick:o[4]||=e=>p(`refresh`)},c(h(k)(`刷新`,`Refresh`)),9,Yt)]),L.value.status===`draft`&&!z.value?(r(),b(`p`,Xt,c(h(k)(`先邀请所有席位,在各参与端完成预检并加入后开始。选择平台不会自动启动工作端。`,`Invite every seat and complete preflight and joining on each worker before starting. Choosing an adapter does not start a worker.`)),1)):l(``,!0),T.value&&T.value!==`message`?(r(),x(C,{key:2,variant:`inline`,label:te[T.value]||`更新圆桌 · Updating roundtable`},null,8,[`label`])):l(``,!0),D.value?(r(),b(`div`,Zt,[v(`p`,null,c(h(k)(`停止将拒绝新回合并请求取消当前运行。外部进程是否已取消,以工作端回执为准。`,`Stopping blocks new turns and requests cancellation of the current run. Worker receipts confirm whether external execution stopped.`)),1),v(`label`,Qt,[e(c(h(k)(`停止原因(可选)`,`Stop reason (optional)`)),1),n(v(`input`,{"onUpdate:modelValue":o[5]||=e=>E.value=e,maxlength:`2000`},null,512),[[d,E.value]])]),v(`button`,{type:`button`,disabled:!!T.value,onClick:o[6]||=e=>K(`stop`)},c(h(k)(`确认停止`,`Confirm stop`)),9,$t)])):l(``,!0),w.value?(r(),b(`p`,en,c(w.value),1)):l(``,!0),R.value?l(``,!0):(r(),b(`details`,tn,[v(`summary`,null,c(h(k)(`由你修改停止条件`,`Change limits explicitly`)),1),v(`p`,nn,c(h(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),v(`form`,{class:`rt-budget-form`,onSubmit:m(G,[`prevent`])},[v(`div`,rn,[v(`label`,an,[e(c(h(k)(`讨论轮数`,`Discussion rounds`)),1),n(v(`input`,{"onUpdate:modelValue":o[7]||=e=>M.value=e,type:`number`,min:`1`,max:`3`,required:``},null,512),[[d,M.value,void 0,{number:!0}]])]),v(`label`,on,[e(c(h(k)(`Agent 发言上限`,`Agent message limit`)),1),n(v(`input`,{"onUpdate:modelValue":o[8]||=e=>P.value=e,type:`number`,min:`1`,max:`30`,required:``},null,512),[[d,P.value,void 0,{number:!0}]])]),v(`label`,sn,[e(c(h(k)(`总时限(分钟)`,`Total minutes`)),1),n(v(`input`,{"onUpdate:modelValue":o[9]||=e=>F.value=e,type:`number`,min:`0.1`,step:`0.1`,max:`30`,required:``},null,512),[[d,F.value,void 0,{number:!0}]])]),v(`label`,cn,[e(c(h(k)(`单回合(分钟)`,`Minutes per turn`)),1),n(v(`input`,{"onUpdate:modelValue":o[10]||=e=>I.value=e,type:`number`,min:`0.1`,step:`0.1`,max:`5`,required:``},null,512),[[d,I.value,void 0,{number:!0}]])])]),v(`button`,{type:`submit`,disabled:!!T.value},c(h(k)(`确认修改停止条件`,`Confirm limit changes`)),9,ln)],32)]))]),y(nt,{room:L.value,"active-seat-id":i.snapshot.currentTurn?.seatId,onChanged:o[11]||=e=>p(`refresh`)},null,8,[`room`,`active-seat-id`]),v(`section`,un,[v(`div`,dn,[v(`h2`,fn,c(h(k)(`公开讨论`,`Shared discussion`)),1),v(`span`,null,c(i.snapshot.messages.length)+` `+c(h(k)(`条记录`,`records`)),1)]),i.snapshot.currentTurn?(r(),b(`div`,pn,[v(`strong`,null,c(h(k)(`当前回合`,`Current turn`))+` · `+c(W(i.snapshot.currentTurn.seatId)),1),v(`span`,null,c(h(A)(i.snapshot.currentTurn.status))+` · `+c(h(A)(i.snapshot.currentTurn.phase)),1),i.snapshot.currentTurn.deadline?(r(),b(`small`,mn,c(h(k)(`期限`,`Deadline`))+`: `+c(h(O)(i.snapshot.currentTurn.deadline)),1)):l(``,!0)])):l(``,!0),v(`div`,hn,[(r(!0),b(f,null,t(i.snapshot.messages,e=>(r(),b(`article`,{key:e.id,class:g([`rt-message`,{"rt-message-user":[`user`,`human`].includes(e.kind),"rt-message-system":e.kind===`system`}])},[v(`div`,gn,[v(`strong`,null,c(e.kind===`human`?h(k)(`你`,`You`):W(e.seatId)),1),v(`span`,null,c(h(A)(e.kind))+` · #`+c(e.seq),1)]),v(`p`,_n,c(e.body),1),v(`small`,null,c(h(O)(e.createdAt)),1)],2))),128)),i.snapshot.messages.length?l(``,!0):(r(),b(`p`,vn,c(h(k)(`这里会保存按顺序发布的提案、审查、交接和补充要求。`,`Ordered proposals, reviews, handoffs and your additions will appear here.`)),1))]),i.snapshot.hasMore?(r(),b(`button`,{key:1,type:`button`,disabled:i.refreshing,onClick:o[12]||=e=>p(`refresh`)},c(h(k)(`读取后续消息`,`Load remaining messages`)),9,yn)):l(``,!0),R.value?l(``,!0):(r(),b(`form`,{key:2,class:`rt-input-form`,onSubmit:m(ee,[`prevent`])},[v(`label`,bn,[e(c(h(k)(`补充要求`,`Add a requirement`)),1),n(v(`textarea`,{"onUpdate:modelValue":o[13]||=e=>_.value=e,maxlength:`16000`,rows:`3`,placeholder:h(k)(`所有获授权席位可见。不要填写凭据或他人的私有记忆。`,`Visible to all authorized seats. Keep credentials and others’ private memory out.`)},null,8,xn),[[d,_.value]])]),v(`button`,{type:`submit`,disabled:!_.value.trim()||!!T.value},[T.value===`message`?(r(),x(C,{key:0,variant:`inline`,label:`发送补充要求 · Sending requirement`})):(r(),b(`span`,Cn,c(h(k)(`发送`,`Send`)),1))],8,Sn)],32)),R.value?l(``,!0):(r(),b(`details`,wn,[v(`summary`,null,c(h(k)(`主持与恢复操作`,`Moderation and recovery`)),1),v(`p`,Tn,c(h(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),v(`label`,En,[e(c(h(k)(`操作原因(跳过回合时必填)`,`Reason (required when skipping a turn)`)),1),n(v(`input`,{"onUpdate:modelValue":o[14]||=e=>E.value=e,maxlength:`2000`},null,512),[[d,E.value]])]),v(`div`,Dn,[v(`button`,{type:`button`,disabled:!!T.value||!B.value,onClick:o[15]||=e=>K(`advance_phase`)},c(h(k)(`提前推进阶段`,`Advance phase early`)),9,On),v(`button`,{type:`button`,disabled:!!T.value||!V.value,onClick:o[16]||=e=>K(`retry_turn`)},c(h(k)(`重试回合`,`Retry turn`)),9,kn),v(`button`,{type:`button`,disabled:!!T.value||!H.value||!E.value.trim(),onClick:o[17]||=e=>K(`skip_turn`)},c(h(k)(`记录并跳过回合`,`Record and skip turn`)),9,An)])]))]),y(Tt,{snapshot:i.snapshot},null,8,[`snapshot`]),y(It,{snapshot:i.snapshot},null,8,[`snapshot`]),L.value.status===`waiting_input`&&L.value.phase===`synthesis`&&i.snapshot.outcome?(r(),b(`section`,jn,[v(`h2`,null,c(h(k)(`由你验收`,`Your acceptance`)),1),v(`p`,null,c(h(k)(`检查结论、保留分歧、产物和验证报告后,明确记录是否接受交付。人工接受不会制造模型用量或工作进程证据。`,`Review the conclusion, dissent, artifacts and verification reports before accepting delivery. Acceptance does not create model usage or worker evidence.`)),1),v(`button`,{type:`button`,disabled:!!T.value,onClick:o[18]||=e=>j.value=!j.value},c(h(k)(`检查并接受交付`,`Review and accept delivery`)),9,Mn),j.value?(r(),b(`div`,Nn,[v(`p`,null,c(h(k)(`此操作记录你的人工验收,并结束本圆桌。`,`This records your acceptance and concludes this room.`)),1),v(`button`,{class:`rt-primary`,type:`button`,disabled:!!T.value,onClick:o[19]||=e=>K(`complete`)},c(h(k)(`确认接受交付`,`Confirm acceptance`)),9,Pn),v(`button`,{type:`button`,onClick:o[20]||=e=>j.value=!1},c(h(k)(`继续检查`,`Keep reviewing`)),1)])):l(``,!0)])):l(``,!0)]))}});function In(e){let t=o([]),n=o(null),r=o(!1),i=o(``),a=o(!1),s=0,c=!1,l;async function u(){if(r.value||c)return;let o=s,l=e.value;r.value=!0;try{let e=n.value?.messages.at(-1)?.seq??0,r=l?await N.read(l,e):await N.list();if(c||o!==s)return;if(`room`in r){let e=new Map([...n.value?.messages??[],...r.messages].map(e=>[e.id,e]));n.value={...r,messages:[...e.values()].sort((e,t)=>e.seq-t.seq)}}else t.value=r.rooms;a.value=!0,i.value=``}catch(e){!c&&o===s&&(i.value=e instanceof Error?e.message:k(`读取圆桌失败`,`Could not read roundtable`))}finally{o===s&&(r.value=!1)}}function d(){c||(l=setTimeout(async()=>{await u(),d()},4e3))}return S(e,async()=>{s++,r.value=!1,n.value=null,i.value=``,a.value=!1;let e=s;l&&clearTimeout(l),await u(),e===s&&d()},{immediate:!0}),p(()=>{c=!0,s++,l&&clearTimeout(l)}),{rooms:t,snapshot:n,loading:r,loaded:a,error:i,refresh:u}}var Ln={class:`rt-workspace`},Rn={class:`rt-page-header`},zn={class:`rt-breadcrumb`},Bn={class:`rt-actions`},Vn={class:`rt-page-content`},Hn={key:0,class:`rt-error rt-panel`,role:`alert`},Un=[`disabled`],Wn={key:2,class:`rt-refresh-status`},Gn={class:`rt-intro`},Kn={class:`rt-eyebrow`},qn={class:`rt-panel`,"aria-labelledby":`rt-list-title`},Jn={class:`rt-section-heading`},Yn={id:`rt-list-title`},Xn=[`disabled`],Zn={key:0,class:`rt-room-list`},Qn={class:`rt-section-heading`},$n={class:`rt-tag`},er={key:1,class:`rt-empty`},tr={class:`rt-panel rt-capability-map`,"aria-labelledby":`rt-map-title`},nr={class:`rt-eyebrow`},rr={id:`rt-map-title`},ir={class:`rt-tag`},ar={class:`rt-muted`},or=i({__name:`RoundtablesPage`,setup(n){let i=T(),u=w(),d=s(()=>typeof i.params.roomId==`string`?i.params.roomId:``),{rooms:p,snapshot:m,loading:g,loaded:_,error:S,refresh:j}=In(d),M=o(!1),N=s(()=>d.value?!!m.value:_.value||M.value);async function P(e){M.value=!1,await u.push(`/roundtables/${encodeURIComponent(e)}`)}return(n,i)=>(r(),b(`main`,Ln,[v(`header`,Rn,[v(`div`,null,[y(h(E),{class:`rt-brand`,to:`/`},{default:a(()=>[i[4]||=e(`Fuli `,-1),v(`span`,null,c(h(k)(`复利`,``)),1)]),_:1}),v(`div`,zn,[y(h(E),{to:`/roundtables`},{default:a(()=>[e(c(h(k)(`Agent 圆桌`,`Agent Roundtable`)),1)]),_:1}),i[5]||=v(`span`,{class:`rt-tag`},`Beta`,-1)])]),v(`div`,Bn,[d.value?(r(),x(h(E),{key:0,to:`/roundtables`},{default:a(()=>[e(c(h(k)(`全部圆桌`,`All roundtables`)),1)]),_:1})):l(``,!0),y(h(E),{to:`/project-agents`},{default:a(()=>[e(c(h(k)(`Agent 目录`,`Agent directory`)),1)]),_:1}),y(D)])]),v(`div`,Vn,[h(S)?(r(),b(`div`,Hn,[v(`strong`,null,c(h(k)(`读取失败,保留已加载内容`,`Could not refresh; loaded content is preserved`)),1),v(`p`,null,c(h(S)),1),v(`button`,{type:`button`,disabled:h(g),onClick:i[0]||=(...e)=>h(j)&&h(j)(...e)},c(h(k)(`重试`,`Retry`)),9,Un)])):l(``,!0),h(g)&&!N.value?(r(),x(C,{key:1,label:d.value?`读取圆桌与公开消息 · Loading roundtable and shared messages`:`读取圆桌列表 · Loading roundtable list`},null,8,[`label`])):l(``,!0),h(g)&&N.value?(r(),b(`div`,Wn,[y(C,{variant:`inline`,label:d.value?`刷新圆桌与公开消息 · Refreshing roundtable and shared messages`:`刷新圆桌列表 · Refreshing roundtable list`},null,8,[`label`])])):l(``,!0),h(m)?(r(),x(Fn,{key:h(m).room.id,snapshot:h(m),refreshing:h(g),onRefresh:h(j)},null,8,[`snapshot`,`refreshing`,`onRefresh`])):d.value?l(``,!0):(r(),b(f,{key:4},[v(`section`,Gn,[v(`div`,null,[v(`p`,Kn,c(h(k)(`一起讨论,分别执行,共同交付`,`Discuss together. Execute independently. Deliver with evidence.`)),1),v(`h1`,null,c(h(k)(`让不同 Agent 围绕同一个目标工作。`,`Bring different agents around one shared goal.`)),1),v(`p`,null,c(h(k)(`身份和长期知识由 Fuli 管理。本次讨论、分工、回合与结果留在圆桌里,执行由获授权的参与端完成。`,`Fuli manages identity and lasting knowledge. This roundtable keeps discussion, tasks, turns and outcomes; authorized participant workers perform execution.`)),1)]),v(`button`,{class:`rt-primary`,type:`button`,onClick:i[1]||=e=>M.value=!M.value},c(h(k)(`创建圆桌`,`Create roundtable`)),1)]),M.value?(r(),x(q,{key:0,onCreated:P,onCancel:i[2]||=e=>M.value=!1})):l(``,!0),v(`section`,qn,[v(`div`,Jn,[v(`h2`,Yn,c(h(k)(`你的圆桌`,`Your roundtables`)),1),v(`button`,{type:`button`,disabled:h(g),onClick:i[3]||=(...e)=>h(j)&&h(j)(...e)},c(h(k)(`刷新`,`Refresh`)),9,Xn)]),h(p).length?(r(),b(`div`,Zn,[(r(!0),b(f,null,t(h(p),e=>(r(),x(h(E),{key:e.id,class:`rt-room-card`,to:`/roundtables/${encodeURIComponent(e.id)}`},{default:a(()=>[v(`div`,Qn,[v(`span`,$n,c(h(A)(e.status)),1),v(`small`,null,c(h(A)(e.mode)),1)]),v(`h3`,null,c(e.goal),1),v(`p`,null,c(h(A)(e.phase))+` · `+c(e.seats.length)+` `+c(h(k)(`位参与者`,`participants`)),1),v(`small`,null,c(h(O)(e.updatedAt||e.createdAt)),1)]),_:2},1032,[`to`]))),128))])):!h(g)&&!h(S)?(r(),b(`p`,er,c(h(k)(`还没有圆桌。创建一个目标明确的讨论或协作任务,邀请独立参与者加入。`,`No roundtables yet. Create a focused discussion or collaborative task and invite independent participants.`)),1)):l(``,!0)]),v(`section`,tr,[v(`p`,nr,c(h(k)(`完整产品版图`,`Product capability map`)),1),v(`h2`,rr,c(h(k)(`同一个协作层,连接长期知识与实际工作。`,`One collaboration layer connects lasting knowledge to real work.`)),1),v(`ol`,null,[v(`li`,null,[v(`span`,ir,c(h(k)(`已提供`,`Available`)),1),v(`strong`,null,c(h(k)(`身份与知识`,`Identity and knowledge`)),1),v(`p`,null,c(h(k)(`Agent 职责、项目范围、确认状态与时间历史。按需读取,不因同桌共享私有记忆。`,`Agent roles, project scope, confirmation and temporal history. Retrieved on demand; shared rooms do not expose private memory.`)),1)]),v(`li`,null,[i[6]||=v(`span`,{class:`rt-tag`},`Beta`,-1),v(`strong`,null,c(h(k)(`圆桌协作`,`Roundtable coordination`)),1),v(`p`,null,c(h(k)(`共同目标 → 讨论 → 分工 → 实施 → 审查 → 汇总与人工验收。`,`Shared goal → discussion → planning → implementation → review → synthesis and human acceptance.`)),1)]),v(`li`,null,[i[7]||=v(`span`,{class:`rt-tag`},`Beta`,-1),v(`strong`,null,c(h(k)(`开放接入`,`Open adapters`)),1),v(`p`,null,c(h(k)(`CLI、MCP、xAI API;A2A 按已验证的协议能力试验接入。需要可调用接口、凭据和运行端。`,`CLI, MCP and xAI API. A2A is experimental within verified protocol capabilities. Requires a callable interface, credentials and a worker.`)),1)]),v(`li`,null,[i[8]||=v(`span`,{class:`rt-tag`},`Beta`,-1),v(`strong`,null,c(h(k)(`跨电脑交付`,`Delivery across computers`)),1),v(`p`,null,c(h(k)(`一台协调端,各参与端主动领取授权回合;公开消息、分歧、产物和实际来源一起保留。`,`One coordinator; workers pull authorized turns. Shared messages, dissent, artifacts and actual sources stay together.`)),1)])]),v(`p`,ar,c(h(k)(`Grok API 席位与现有 Grok Bot 分开:前者由工作端调用 xAI,后者需要在官方自定义 HTTPS MCP 设置中主动配置。没有开放接口的平台、云端常驻和完整 A2A 兼容仍待支持。Beta 能力不等于已通过每种模型、客户端和电脑的真实验收。`,`Grok API seats and existing Grok Bots are distinct: workers call xAI for the former; the latter require explicit setup through official HTTPS MCP settings. Closed platforms, always-on cloud hosting and full A2A compatibility remain future work. Beta availability does not imply live verification of every model, client and computer.`)),1)])],64))])]))}});export{or as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.settings-fields[data-v-d1c1de43]{border:0;min-width:0;margin:0;padding:0;display:contents}.settings-view[data-v-d1c1de43]{background:#f7f8f6;padding-top:24px}.settings-content[data-v-d1c1de43]{gap:18px;width:min(1120px,100%);margin:0 auto;display:grid}.settings-form[data-v-d1c1de43]{gap:18px;display:grid}.settings-card[data-v-d1c1de43]{background:#fff;border:1px solid #d7ddd8;border-radius:12px;padding:26px;box-shadow:0 8px 30px #2b3b320a}.section-heading[data-v-d1c1de43]{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.settings-card h3[data-v-d1c1de43]{color:#2e3c34;font-size:19px}.section-heading p[data-v-d1c1de43]{color:#879089;margin-top:5px;font-size:11px}.resource-totals[data-v-d1c1de43]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resource-totals article[data-v-d1c1de43]{background:#f7f9f7;border:1px solid #dce2dd;border-radius:10px;align-content:center;gap:7px;min-height:126px;padding:20px 22px;display:grid}.resource-totals span[data-v-d1c1de43]{color:#667169;font-size:12px}.resource-totals strong[data-v-d1c1de43]{color:#24332a;letter-spacing:-.04em;font-size:clamp(25px,3vw,34px)}.resource-totals small[data-v-d1c1de43]{color:#8a938d;font-size:11px}.resource-breakdowns[data-v-d1c1de43]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;display:grid}.resource-group[data-v-d1c1de43]{gap:13px;display:grid}.resource-group h4[data-v-d1c1de43],.port-section h4[data-v-d1c1de43]{color:#536058;font-size:12px}.resource-row[data-v-d1c1de43]{gap:6px;display:grid}.resource-row>div[data-v-d1c1de43]{color:#67736b;justify-content:space-between;gap:12px;font-size:11px;display:flex}.resource-row strong[data-v-d1c1de43]{color:#36443b;font-weight:650}.resource-row i[data-v-d1c1de43]{background:#eef1ee;border-radius:999px;height:5px;overflow:hidden}.resource-row b[data-v-d1c1de43]{border-radius:inherit;background:#6f8f79;height:100%;display:block}.resource-group:last-child .resource-row b[data-v-d1c1de43]{background:#82958a}.resource-notes[data-v-d1c1de43]{color:#8a938d;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:10px;display:flex}.restart-chip[data-v-d1c1de43]{color:#8d5a18;background:#fff8ec;border:1px solid #d7aa68;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.port-section[data-v-d1c1de43]{gap:13px;display:grid}.port-section+.port-section[data-v-d1c1de43]{border-top:1px solid #edf0ed;margin-top:25px;padding-top:22px}.development-section>div[data-v-d1c1de43]{align-items:center;gap:9px;display:flex}.development-section>div>span[data-v-d1c1de43]{color:#78633a;background:#f6f0e4;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:700}.development-section>p[data-v-d1c1de43]{color:#8b948e;font-size:10px}.port-grid[data-v-d1c1de43]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.port-grid label[data-v-d1c1de43]{color:#59655e;gap:7px;font-size:11px;display:grid}.port-grid input[data-v-d1c1de43],.select-row[data-v-d1c1de43] .settings-select .searchable-select-trigger{color:#2f3d34;width:100%;min-height:40px;font:inherit;background:#fbfcfb;border:1px solid #ccd4ce;border-radius:8px;outline:none;padding:0 11px}.port-grid input[data-v-d1c1de43]:focus,.select-row[data-v-d1c1de43] .settings-select .searchable-select-trigger:focus-visible{border-color:#6f8f79;box-shadow:0 0 0 3px #6f8f791f}.port-grid small[data-v-d1c1de43]{color:#9aa29d;font-size:9px}.behavior-card>h3[data-v-d1c1de43],.conversation-launcher-card>h3[data-v-d1c1de43]{margin-bottom:14px}.conversation-launcher-list[data-v-d1c1de43]{display:grid}.conversation-launcher-row[data-v-d1c1de43]{border-top:1px solid #edf0ed;padding:16px 0}.conversation-launcher-row[data-v-d1c1de43]:first-child{border-top:0}.conversation-launcher-heading[data-v-d1c1de43]{justify-content:space-between;align-items:center;gap:20px;min-height:34px;display:flex}.conversation-launcher-heading>span[data-v-d1c1de43]{gap:4px;display:grid}.conversation-launcher-heading strong[data-v-d1c1de43]{color:#354239;font-size:12px}.conversation-launcher-heading small[data-v-d1c1de43]{color:#8b948e;font-size:9px}.conversation-launcher-switch[data-v-d1c1de43]{color:#667169;align-items:center;gap:9px;font-size:10px;display:flex}.conversation-launcher-switch input[role=switch][data-v-d1c1de43]{margin:0}.conversation-launcher-note[data-v-d1c1de43]{color:#8b948e;max-width:760px;margin-top:9px;font-size:9px;line-height:1.45;display:block}.conversation-launcher-fields[data-v-d1c1de43]{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-d1c1de43]{color:#59655e;grid-template-rows:18px 40px;align-content:start;gap:7px;min-width:0;font-size:10px;display:grid}.conversation-launcher-fields>label>span[data-v-d1c1de43]{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:18px;display:block;overflow:hidden}.conversation-launcher-fields code[data-v-d1c1de43]{color:#7b857e;font-size:9px}.conversation-launcher-fields[data-v-d1c1de43] .launcher-select{width:100%;min-width:0;height:40px}.conversation-launcher-fields input[data-v-d1c1de43],.conversation-launcher-fields[data-v-d1c1de43] .launcher-select .searchable-select-trigger{box-sizing:border-box;color:#2f3d34;width:100%;height:40px;min-height:40px;font:inherit;background:#fbfcfb;border:1px solid #ccd4ce;border-radius:8px;outline:none;padding:0 11px;line-height:1.2}.conversation-launcher-fields input[data-v-d1c1de43]:focus,.conversation-launcher-fields[data-v-d1c1de43] .launcher-select .searchable-select-trigger:focus-visible{border-color:#6f8f79;box-shadow:0 0 0 3px #6f8f791f}.conversation-launcher-fields[data-v-d1c1de43] .launcher-select .searchable-select-current{align-items:center}.conversation-launcher-fields[data-v-d1c1de43] .launcher-select .searchable-select-current-label{font-weight:500}.conversation-launcher-fields[data-v-d1c1de43] .launcher-select .searchable-select-panel{width:100%;min-width:0}.setting-list[data-v-d1c1de43]{display:grid}.setting-row[data-v-d1c1de43]{cursor:pointer;border-top:1px solid #edf0ed;justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.setting-row[data-v-d1c1de43]:first-child{border-top:0}.setting-row>span[data-v-d1c1de43]{gap:4px;display:grid}.setting-row strong[data-v-d1c1de43]{color:#354239;font-size:12px}.setting-row small[data-v-d1c1de43]{color:#8b948e;font-size:10px}.setting-row input[role=switch][data-v-d1c1de43],.conversation-launcher-switch input[role=switch][data-v-d1c1de43]{appearance:none;cursor:pointer;background:#cbd2cd;border-radius:999px;width:38px;height:21px;transition:background .18s;position:relative}.setting-row input[role=switch][data-v-d1c1de43]:after,.conversation-launcher-switch input[role=switch][data-v-d1c1de43]:after{content:"";background:#fff;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-d1c1de43]:checked,.conversation-launcher-switch input[role=switch][data-v-d1c1de43]:checked{background:#688b73}.setting-row input[role=switch][data-v-d1c1de43]:checked:after,.conversation-launcher-switch input[role=switch][data-v-d1c1de43]:checked:after{transform:translate(17px,-50%)}.select-row .settings-select[data-v-d1c1de43]{width:180px;min-width:0}.select-row[data-v-d1c1de43] .settings-select .searchable-select-trigger{background:#fbfcfb;border-radius:8px;padding:0 14px 0 11px}.select-row[data-v-d1c1de43] .settings-select .searchable-select-current{align-items:center}.select-row[data-v-d1c1de43] .settings-select .searchable-select-current-label{font-weight:500}.select-row[data-v-d1c1de43] .settings-select .searchable-select-arrow{border-width:1.5px;width:8px;height:8px;margin-right:1px}.select-row[data-v-d1c1de43] .settings-select .searchable-select-panel{width:100%;min-width:0}.settings-top-status[data-v-d1c1de43]{color:#7d8780;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:0 4px 2px;font-size:10px;display:flex}.settings-top-status strong[data-v-d1c1de43]{color:#477356;font-weight:700}.settings-error[data-v-d1c1de43]{color:#8c3934;background:#fff2f0;border-radius:8px;padding:11px 13px;font-size:11px}@media (width<=900px){.port-grid[data-v-d1c1de43],.conversation-launcher-fields[data-v-d1c1de43]{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-launcher-template[data-v-d1c1de43]{grid-column:1/-1}}@media (width<=680px){.settings-card[data-v-d1c1de43]{padding:20px}.resource-totals[data-v-d1c1de43],.resource-breakdowns[data-v-d1c1de43],.port-grid[data-v-d1c1de43],.conversation-launcher-fields[data-v-d1c1de43]{grid-template-columns:1fr}.conversation-launcher-template[data-v-d1c1de43]{grid-column:auto}.select-row[data-v-d1c1de43]{flex-direction:column;align-items:flex-start;padding:14px 0}.select-row .settings-select[data-v-d1c1de43]{width:100%}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,M as r,N as i,T as a,Z as o,_ as s,a as c,at as l,b as u,c as d,d as f,h as p,i as m,it as h,j as ee,m as te,n as ne,nt as g,r as re,v as _,w as v,x as y,y as b,z as ie}from"./i18n-CIIxzhPZ.js";import{t as ae}from"./console-CrhIK67Y.js";import{t as x}from"./GrowthLoading-DIwqGFSc.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as oe,n as C}from"./client-DTQ_tUr2.js";import{t as w}from"./SearchableSelect-Do6X3fXi.js";import{i as se,n as T,s as ce,t as E}from"./conversation-launcher-settings-fUWCt3XG.js";var le=[`aria-label`],ue={class:`settings-content`},de={key:1,class:`settings-top-status`,role:`status`},fe={key:0},pe={key:1},me={class:`settings-card resource-card`},he={class:`section-heading`},ge={key:0},_e=[`disabled`],ve={key:1,class:`settings-error`,role:`alert`},ye={class:`resource-totals`},D={class:`resource-breakdowns`},O={class:`resource-group`},k={class:`resource-group`},A={class:`resource-notes`},j={key:0},M={key:1},N=[`aria-busy`],P=[`disabled`],be={class:`settings-card ports-card`},xe={class:`section-heading`},Se={key:0,class:`restart-chip`},Ce={class:`port-section`},we={class:`port-grid`},Te=[`onUpdate:modelValue`],Ee={class:`port-section development-section`},De={id:`conversation-launchers`,class:`settings-card conversation-launcher-card`},Oe={class:`conversation-launcher-list`},ke={class:`conversation-launcher-heading`},Ae={class:`conversation-launcher-switch`},je=[`onUpdate:modelValue`],Me={key:0,class:`conversation-launcher-note`},Ne={key:1,class:`conversation-launcher-fields`},Pe=[`onUpdate:modelValue`],Fe={class:`conversation-launcher-template`},Ie=[`onUpdate:modelValue`],Le={class:`settings-card behavior-card`},Re={class:`setting-list`},ze={class:`setting-row`},Be=[`checked`],Ve={class:`setting-row`},He=[`checked`],Ue={class:`setting-row`},We={class:`setting-row select-row`},Ge={class:`setting-row select-row`},Ke={class:`setting-row select-row`},qe={key:0,class:`settings-error`,role:`alert`},Je={key:4,class:`settings-error`,role:`alert`},F=S(a({__name:`SettingsPage`,setup(a){let S=ae(),F=o(null),I=o(null),L=o(null),R=o(!0),z=s({get:()=>S.settingsSaving,set:e=>{S.settingsSaving=e}}),B=o(!1),V=o(``),H=o(``),U=o(!1),W=null,Ye=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=s({get:()=>ne(),set:e=>m(e)}),K=[5,10,30,60],Xe=se,Ze=s(()=>[{value:`zh-CN`,label:c(`settings.behavior.zh`)},{value:`en-US`,label:c(`settings.behavior.en`)}]),Qe=s(()=>K.map(e=>({value:String(e),label:c(`settings.resources.refreshUnit`,{seconds:e})}))),$e=s(()=>[{value:`native`,label:c(`settings.behavior.runtimeModes.native`)},{value:`container`,label:c(`settings.behavior.runtimeModes.container`)}]),et=s(()=>[{value:`any`,label:c(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:c(`settings.conversationLaunchers.idFormats.uuid`)}]),tt=s(()=>S.state?.capturePolicy?.enabled!==!1),nt=s(()=>S.state?.agentAccessPolicy?.enabled!==!1),rt=s(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),it=s(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),at=s(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);r(async()=>{S.runtimeStatus===`idle`&&S.refresh(),await Promise.all([ot(),q()]),R.value=!1}),ee(Y),ie(()=>I.value?.resourceRefreshSeconds,()=>st());async function ot(){try{let e=await C(`/api/system/settings`);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:E(e.configured.conversationLaunchers)},T(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:c(`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:c(`settings.resources.unavailable`)}finally{B.value=!1}}}async function J(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await oe(`/api/system/settings`,I.value);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:E(e.configured.conversationLaunchers)},T(e.configured.conversationLaunchers),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:c(`settings.saveError`)}finally{z.value=!1}}}function st(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void q(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function ct(e){S.updateCapturePolicy(e.currentTarget.checked)}function lt(e){S.updateAgentAccessPolicy(e.currentTarget.checked)}function ut(e){(e===`zh-CN`||e===`en-US`)&&m(e)}function dt(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function ft(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function pt(e){let t=c(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?ce(e):t}function mt(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 re.global.te(t)?c(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)):`—`}return(r,a)=>(i(),y(`section`,{class:`view settings-view`,"aria-label":g(c)(`settings.aria`)},[_(`div`,ue,[z.value?(i(),b(x,{key:0,variant:`inline`,label:g(c)(`settings.saving`)},null,8,[`label`])):u(``,!0),U.value||F.value?.restartRequired?(i(),y(`div`,de,[U.value?(i(),y(`strong`,fe,l(g(c)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(i(),y(`span`,pe,l(g(c)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),_(`section`,me,[_(`header`,he,[_(`div`,null,[_(`h3`,null,l(g(c)(`settings.resources.title`)),1),L.value?(i(),y(`p`,ge,l(g(c)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),_(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:q},l(g(c)(`common.actions.refresh`)),9,_e)]),B.value?(i(),b(x,{key:0,variant:L.value?`inline`:`compact`,label:g(c)(`settings.resources.loading`)},null,8,[`variant`,`label`])):u(``,!0),H.value?(i(),y(`p`,ve,l(H.value),1)):L.value?(i(),y(p,{key:2},[_(`div`,ye,[_(`article`,null,[_(`span`,null,l(g(c)(`settings.resources.memory`)),1),_(`strong`,null,l(Z(L.value.memory.usedBytes)),1),_(`small`,null,l(g(c)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),_(`article`,null,[_(`span`,null,l(g(c)(`settings.resources.disk`)),1),_(`strong`,null,l(Z(L.value.disk.usedBytes)),1),_(`small`,null,l(g(c)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),_(`div`,D,[_(`div`,O,[_(`h4`,null,l(g(c)(`settings.resources.memory`)),1),(i(!0),y(p,null,t(L.value.memory.components,e=>(i(),y(`div`,{key:e.id,class:`resource-row`},[_(`div`,null,[_(`span`,null,l(X(e)),1),_(`strong`,null,l(Z(e.bytes)),1)]),_(`i`,null,[_(`b`,{style:h({width:Q(e.bytes,rt.value)})},null,4)])]))),128))]),_(`div`,k,[_(`h4`,null,l(g(c)(`settings.resources.disk`)),1),(i(!0),y(p,null,t(L.value.disk.components,e=>(i(),y(`div`,{key:e.id,class:`resource-row`},[_(`div`,null,[_(`span`,null,l(X(e)),1),_(`strong`,null,l(Z(e.bytes)),1)]),_(`i`,null,[_(`b`,{style:h({width:Q(e.bytes,it.value)})},null,4)])]))),128))])]),_(`div`,A,[_(`span`,null,l(g(c)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(i(),y(`span`,j,l(g(c)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(i(),y(`span`,M,l(g(c)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):u(``,!0),_(`span`,null,l(g(c)(L.value.exclusions.includes(`shared-container-vm-overhead`)?`settings.resources.exclusionsContainer`:`settings.resources.exclusionsNative`)),1)])],64)):u(``,!0)]),R.value&&!I.value?(i(),b(x,{key:2,variant:`compact`,label:g(c)(`settings.loading`)},null,8,[`label`])):u(``,!0),I.value?(i(),y(`form`,{key:3,id:`settings-form`,class:`settings-form`,"aria-busy":z.value,onSubmit:te(J,[`prevent`])},[_(`fieldset`,{class:`settings-fields`,disabled:z.value},[_(`section`,be,[_(`header`,xe,[_(`h3`,null,l(g(c)(`settings.ports.title`)),1),F.value?.restartRequired?(i(),y(`span`,Se,l(g(c)(`settings.restartRequired`)),1)):u(``,!0)]),_(`div`,Ce,[_(`h4`,null,l(g(c)(`settings.ports.personal`)),1),_(`div`,we,[(i(),y(p,null,t(Ye,e=>_(`label`,{key:e},[_(`span`,null,l(g(c)(`settings.ports.${e}`)),1),n(_(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,Te),[[f,I.value.ports[e],void 0,{number:!0}]]),_(`small`,null,l(g(c)(`settings.ports.active`,{port:mt(e)})),1)])),64))])]),_(`div`,Ee,[_(`div`,null,[_(`h4`,null,l(g(c)(`settings.ports.development`)),1),_(`span`,null,l(g(c)(`settings.ports.developing`)),1)]),_(`p`,null,l(g(c)(`settings.ports.developmentMeta`)),1)])]),_(`section`,De,[_(`h3`,null,l(g(c)(`settings.conversationLaunchers.title`)),1),_(`div`,Oe,[(i(!0),y(p,null,t(g(Xe),t=>(i(),y(`article`,{key:t,class:`conversation-launcher-row`},[_(`div`,ke,[_(`span`,null,[_(`strong`,null,l(pt(t)),1),_(`small`,null,l(g(c)(`settings.conversationLaunchers.sourceId`,{id:t})),1)]),_(`label`,Ae,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.enabled`)),1),n(_(`input`,{"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].enabled=e,type:`checkbox`,role:`switch`},null,8,je),[[d,I.value.conversationLaunchers[t].enabled]])])]),I.value.conversationLaunchers[t].enabled&&t===`codex`?(i(),y(`small`,Me,l(g(c)(`settings.conversationLaunchers.idFormatMeta`)),1)):u(``,!0),I.value.conversationLaunchers[t].enabled?(i(),y(`div`,Ne,[_(`label`,null,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.idFormat`)),1),v(w,{modelValue:I.value.conversationLaunchers[t].idFormat,"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].idFormat=e,class:`launcher-select`,"control-id":`settings-conversation-${t}-id-format`,options:et.value,label:g(c)(`settings.conversationLaunchers.idFormat`)},null,8,[`modelValue`,`onUpdate:modelValue`,`control-id`,`options`,`label`])]),_(`label`,null,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.appName`)),1),n(_(`input`,{"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].appName=e,type:`text`,maxlength:`64`,required:``},null,8,Pe),[[f,I.value.conversationLaunchers[t].appName,void 0,{trim:!0}]])]),_(`label`,Fe,[_(`span`,null,[e(l(g(c)(`settings.conversationLaunchers.urlTemplate`))+` `,1),a[1]||=_(`small`,null,[_(`code`,null,`{id}`)],-1)]),n(_(`input`,{"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].urlTemplate=e,type:`text`,maxlength:`1024`,spellcheck:`false`,required:``},null,8,Ie),[[f,I.value.conversationLaunchers[t].urlTemplate,void 0,{trim:!0}]])])])):u(``,!0)]))),128))])]),_(`section`,Le,[_(`h3`,null,l(g(c)(`settings.behavior.title`)),1),_(`div`,Re,[_(`label`,ze,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.capture`)),1),_(`small`,null,l(g(c)(`settings.behavior.captureMeta`)),1)]),_(`input`,{type:`checkbox`,role:`switch`,checked:tt.value,onChange:ct},null,40,Be)]),_(`label`,Ve,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.agentAccess`)),1),_(`small`,null,l(g(c)(`settings.behavior.agentAccessMeta`)),1)]),_(`input`,{type:`checkbox`,role:`switch`,checked:nt.value,onChange:lt},null,40,He)]),_(`label`,Ue,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.lanAccess`)),1),_(`small`,null,l(g(c)(`settings.behavior.lanAccessMeta`)),1)]),n(_(`input`,{"onUpdate:modelValue":a[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[d,I.value.lanAccess]])]),_(`div`,We,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.runtimeMode`)),1),_(`small`,null,l(at.value?g(c)(`settings.behavior.runtimeRecommendation`):g(c)(`settings.behavior.runtimeModeMeta`,{mode:g(c)(`settings.behavior.runtimeModes.${F.value?.active.graphRuntimeMode??I.value.graphRuntimeMode}`)})),1)]),v(w,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:$e.value,label:g(c)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":ft},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ge,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.language`)),1)]),v(w,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ze.value,label:g(c)(`settings.behavior.language`),"onUpdate:modelValue":ut},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ke,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.resources.refresh`)),1)]),v(w,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:Qe.value,label:g(c)(`settings.resources.refresh`),"onUpdate:modelValue":dt},null,8,[`model-value`,`options`,`label`])])])])],8,P),V.value?(i(),y(`p`,qe,l(V.value),1)):u(``,!0)],40,N)):R.value?u(``,!0):(i(),y(`p`,Je,l(V.value||g(c)(`settings.loadError`)),1))])],8,le))}}),[[`__scopeId`,`data-v-d1c1de43`]]);export{F as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as e,T as t,Z as n,_ as r,a as i,at as a,b as o,h as s,nt as c,v as l,x as u,y as d,z as f}from"./i18n-CIIxzhPZ.js";import{t as p}from"./GrowthLoading-DIwqGFSc.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-fcdVGInY.js";import{i as g,n as _,t as v}from"./shared-report-Cll2Yj8W.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(t({__name:`SharedJefaReportPage`,setup(t){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;f(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(),u(`main`,y,[l(`header`,null,[n[1]||=l(`strong`,null,`Jefa`,-1),l(`h1`,null,a(c(i)(`employees.share.title`)),1),l(`span`,null,a(c(i)(`employees.share.readOnly`)),1)]),T.value?(e(),d(p,{key:0,label:c(i)(`employees.loadingReport`)},null,8,[`label`])):D.value?(e(),u(`div`,b,[l(`p`,null,a(D.value),1),l(`button`,{type:`button`,onClick:j},a(c(i)(`employees.retry`)),1)])):(e(),u(s,{key:2},[E.value?(e(),u(`p`,x,a(c(i)(`employees.share.unavailableCount`,{count:E.value})),1)):o(``,!0),O.value?(e(),d(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(),u(`div`,S,[l(`h2`,null,a(c(i)(`employees.shareContent.emptyTitle`)),1),l(`p`,null,a(c(i)(`employees.shareContent.emptyReport`,{count:C.value.length})),1),l(`button`,{type:`button`,onClick:j},a(c(i)(`common.actions.refresh`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-0c275c93`]]);export{C as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.shared-jefa-report[data-v-0c275c93]{background:#fff;flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.shared-jefa-report>header[data-v-0c275c93]{border-bottom:1px solid #e2e9e4;align-items:center;gap:16px;padding:20px 24px;display:flex}header strong[data-v-0c275c93]{color:#315c43;font-size:22px}header h1[data-v-0c275c93]{margin:0;font-size:18px}header span[data-v-0c275c93]{color:#526659;margin-left:auto;font-size:12px}.report-state[data-v-0c275c93]{text-align:center;margin:auto;padding:24px}.report-state h2[data-v-0c275c93]{font-size:18px}.report-state p[data-v-0c275c93]{color:#526659;max-width:44ch;line-height:1.7}.report-state button[data-v-0c275c93]{color:#315c43;background:#fff;border:1px solid #bdcbbf;border-radius:8px;min-height:44px;padding:8px 16px}.report-warning[data-v-0c275c93]{color:#8d5a31;margin:12px 24px 0;font-size:13px}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.writing-taste-view[data-v-4bfe6da0]{background:#f7f8f6;padding:18px 32px 40px;overflow:auto}.writing-taste-view[data-v-4bfe6da0]>:not(.vue-dialog){width:min(980px,100%);margin-inline:auto}.writing-taste-back[data-v-4bfe6da0]{color:#65746b;align-items:center;gap:7px;margin-bottom:14px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.writing-taste-back[data-v-4bfe6da0]:hover{color:#344b3e}.writing-taste-hero[data-v-4bfe6da0]{background:#fff;border:1px solid #d7ded9;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-4bfe6da0],.writing-taste-hero.status-active[data-v-4bfe6da0]{border-color:#c9d8ce}.writing-taste-hero__copy[data-v-4bfe6da0]{gap:7px;display:grid}.writing-taste-status[data-v-4bfe6da0]{color:#5c7064;background:#e9eeea;border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:3px 8px;font-size:9px;font-weight:800;display:inline-flex}.writing-taste-status i[data-v-4bfe6da0]{background:#668572;border-radius:50%;width:5px;height:5px}.writing-taste-hero h2[data-v-4bfe6da0],.writing-taste-hero p[data-v-4bfe6da0]{margin:0}.writing-taste-hero h2[data-v-4bfe6da0]{color:#2d3e35;letter-spacing:-.015em;font-size:22px}.writing-taste-hero p[data-v-4bfe6da0]{color:#6e7972;max-width:680px;font-size:11px;line-height:1.65}.writing-taste-hero__score[data-v-4bfe6da0]{color:#809087;border-left:1px solid #e0e5e1;grid-template-columns:auto 1fr;align-items:baseline;min-width:104px;padding:14px 16px;display:grid}.writing-taste-hero__score strong[data-v-4bfe6da0]{color:#3d5b4b;font-size:28px}.writing-taste-hero__score span[data-v-4bfe6da0]{font-size:12px}.writing-taste-hero__score small[data-v-4bfe6da0]{grid-column:1/-1;font-size:9px}.writing-taste-readiness[data-v-4bfe6da0]{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.writing-taste-readiness article[data-v-4bfe6da0]{color:#89918c;background:#fbfcfb;border:1px solid #e0e4e1;border-radius:9px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:10px;display:grid}.writing-taste-readiness article.met[data-v-4bfe6da0]{color:#577364;background:#f6f9f7;border-color:#d3ddd7}.writing-taste-readiness article>span[data-v-4bfe6da0]{background:#ecefed;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;font-weight:800;display:grid}.writing-taste-readiness article.met>span[data-v-4bfe6da0]{color:#fff;background:#6f8c7b}.writing-taste-readiness article div[data-v-4bfe6da0]{gap:2px;min-width:0;display:grid}.writing-taste-readiness strong[data-v-4bfe6da0],.writing-taste-readiness small[data-v-4bfe6da0]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.writing-taste-readiness strong[data-v-4bfe6da0]{color:#526159;font-size:9px}.writing-taste-readiness small[data-v-4bfe6da0]{font-size:9px}.writing-taste-rules[data-v-4bfe6da0]{margin-top:24px}.writing-taste-rules>header[data-v-4bfe6da0]{align-items:center;gap:8px;padding:0 2px 10px;display:flex}.writing-taste-rules>header h2[data-v-4bfe6da0]{color:#34433b;margin:0;font-size:15px}.writing-taste-rules>header span[data-v-4bfe6da0]{color:#6c786f;text-align:center;background:#e5e9e6;border-radius:999px;min-width:20px;padding:2px 6px;font-size:9px;font-weight:800}.writing-taste-rule-list[data-v-4bfe6da0]{gap:9px;display:grid}.writing-taste-rule[data-v-4bfe6da0]{background:#fff;border:1px solid #dce2de;border-radius:11px;gap:10px;padding:15px 17px;display:grid}.writing-taste-rule.is-hypothesis[data-v-4bfe6da0]{background:#fbfbfa}.writing-taste-rule.has-conflict[data-v-4bfe6da0]{border-color:#d8b9b5}.writing-taste-rule__status[data-v-4bfe6da0]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.writing-taste-rule__status span[data-v-4bfe6da0]{color:#68756d;background:#edf0ee;border-radius:999px;padding:2px 7px;font-size:8px;font-weight:800}.writing-taste-rule__status .confirmed[data-v-4bfe6da0],.writing-taste-rule__status .observed[data-v-4bfe6da0]{color:#466352;background:#e2ebe5}.writing-taste-rule__status .conflict[data-v-4bfe6da0]{color:#874a45;background:#f3e3e1}.writing-taste-rule__body[data-v-4bfe6da0]{gap:5px;display:grid}.writing-taste-rule h3[data-v-4bfe6da0],.writing-taste-rule p[data-v-4bfe6da0]{margin:0}.writing-taste-rule h3[data-v-4bfe6da0]{color:#33443b;font-size:13px}.writing-taste-rule p[data-v-4bfe6da0]{color:#49574f;font-size:11px;line-height:1.65}.writing-taste-rule__body small[data-v-4bfe6da0]{color:#818a84;font-size:9px;line-height:1.5}.writing-taste-rule footer[data-v-4bfe6da0]{border-top:1px solid #edf0ee;justify-content:space-between;align-items:center;gap:14px;padding-top:9px;display:flex}.writing-taste-rule footer>div[data-v-4bfe6da0]:first-child{color:#89918c;flex-wrap:wrap;gap:10px;font-size:8px;display:flex}.writing-taste-rule__actions[data-v-4bfe6da0]{gap:7px;display:flex}.writing-taste-rule__actions button[data-v-4bfe6da0],.writing-taste-agent-preview button[data-v-4bfe6da0]{padding:6px 10px;font-size:9px}.writing-taste-empty[data-v-4bfe6da0],.writing-taste-unavailable[data-v-4bfe6da0]{color:#7d8780;border:1px dashed #d8ded9;border-radius:11px;place-items:center;min-height:180px;font-size:11px;display:grid}.writing-taste-agent-preview[data-v-4bfe6da0]{background:#f2f5f3;border:1px solid #d8dfda;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-4bfe6da0],.writing-taste-agent-preview p[data-v-4bfe6da0]{margin:0}.writing-taste-agent-preview h2[data-v-4bfe6da0]{color:#3c4d44;font-size:13px}.writing-taste-agent-preview p[data-v-4bfe6da0]{color:#758078;margin-top:4px;font-size:9px;line-height:1.5}.writing-taste-agent-preview pre[data-v-4bfe6da0]{color:#dce7df;white-space:pre-wrap;overflow-wrap:anywhere;background:#26372e;border-radius:8px;grid-column:1/-1;max-height:360px;margin:0;padding:14px;font:10px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}@media (width<=980px){.writing-taste-readiness[data-v-4bfe6da0]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=680px){.writing-taste-view[data-v-4bfe6da0]{padding-inline:18px}.writing-taste-hero[data-v-4bfe6da0]{grid-template-columns:1fr}.writing-taste-hero__score[data-v-4bfe6da0]{border-top:1px solid #e0e5e1;border-left:0}.writing-taste-readiness[data-v-4bfe6da0]{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-taste-rule footer[data-v-4bfe6da0],.writing-taste-agent-preview[data-v-4bfe6da0]{flex-direction:column;grid-template-columns:1fr;align-items:start}.writing-taste-agent-preview pre[data-v-4bfe6da0]{grid-column:1}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,N as n,T as r,V as i,Z as a,_ as o,a as s,at as c,b as l,h as u,j as ee,nt as d,rt as f,v as p,w as m,x as h,y as g,z as te}from"./i18n-CIIxzhPZ.js";import{t as ne}from"./console-CrhIK67Y.js";import{t as _}from"./GrowthLoading-DIwqGFSc.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./vue-router-BUX6njIv.js";import{n as ie}from"./client-DTQ_tUr2.js";import{i as y,n as b,t as x}from"./KnowledgeEditDialog-Degd9AGD.js";import{u as S,x as ae}from"./model-CJsrDUNb.js";import{t as oe}from"./personal-profile-graph-CQLOait6.js";var se={class:`view writing-taste-view`},ce={key:2,class:`writing-taste-unavailable`},le=[`role`],ue={class:`writing-taste-hero__copy`},de={class:`writing-taste-status`},C={class:`writing-taste-hero__score`,"aria-hidden":`true`},w=[`aria-label`],T={"aria-hidden":`true`},E={class:`writing-taste-rules`},D={key:0,class:`writing-taste-rule-list`},O={class:`writing-taste-rule__status`},k={key:0,class:`conflict`},A={class:`writing-taste-rule__body`},j={key:0},M={key:1},N={key:0},P={key:0,class:`writing-taste-rule__actions`},F=[`onClick`],I=[`onClick`],L={key:1,class:`writing-taste-empty`},R={key:0,class:`writing-taste-agent-preview`},z={key:0},B=v(r({__name:`WritingTastePage`,setup(r){let v=ne(),B=a(null),V=a(null),H=a(!1),U=a(!1),W=a(null),G=a(null),K=a(!1),q=0,J=null,Y=y(o(()=>H.value&&!B.value)),X=o(()=>ae(V.value)),Z=o(()=>new Map(X.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),fe=o(()=>B.value?.status===`active`?s(`writingTaste.page.activeTitle`):B.value?.status===`preview_ready`?s(`writingTaste.page.previewTitle`):s(`writingTaste.page.collectingTitle`)),pe=o(()=>B.value?.status===`active`?s(`writingTaste.page.activeCopy`):B.value?.status===`preview_ready`?s(`writingTaste.page.previewCopy`):s(`writingTaste.page.collectingCopy`));te(()=>v.activePersonalSpace?.id,e=>{B.value=null,V.value=null,W.value=null,G.value=null,K.value=!1,Q(e)},{immediate:!0,flush:`sync`});async function Q(e=v.activePersonalSpace?.id){let t=++q;if(J?.abort(),J=null,U.value=!1,!e){H.value=!1;return}let n=new AbortController;J=n,H.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a]=await Promise.all([ie(`/api/writing-taste-profile?${r}`,{signal:n.signal}),oe(e,n.signal)]);if(t!==q)return;B.value=ye(i)?i:null,V.value=be(a)?a:null,ve()}catch{if(t!==q)return;B.value=null,V.value=null,U.value=!0}finally{t===q&&(H.value=!1,J=null)}}ee(()=>{q+=1,J?.abort()});function $(e){return Z.value.get(`${e.item_kind}:${e.item_id}`)??null}function me(e){W.value=$(e)}function he(e){G.value=$(e)}function ge(e){if(e.preference_scope!==`project`||!e.preference_project_id)return s(`writingTaste.page.globalScope`);let t=v.state?.personalProjects?.find(({project_id:t})=>t===e.preference_project_id);return s(`writingTaste.page.projectScope`,{project:t?.profile.name??e.preference_project_id})}function _e(e){return e.key===`conflicts`?s(`writingTaste.criteria.conflictsProgress`,{current:e.current}):s(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function ve(){W.value&&=Z.value.get(`${W.value.itemKind}:${W.value.id}`)??null,G.value&&=Z.value.get(`${G.value.itemKind}:${G.value.id}`)??null}function ye(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 be(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.nodes)&&Array.isArray(t.edges)}return(r,a)=>(n(),h(`section`,se,[m(d(re),{class:`writing-taste-back`,to:`/preferences`},{default:i(()=>[a[6]||=p(`span`,{"aria-hidden":`true`},`←`,-1),e(` `+c(d(s)(`writingTaste.page.back`)),1)]),_:1}),H.value&&!d(Y)?(n(),g(_,{key:0,variant:`inline`,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):l(``,!0),d(Y)?(n(),g(_,{key:1,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):B.value?(n(),h(u,{key:3},[p(`header`,{class:f([`writing-taste-hero`,`status-${B.value.status}`])},[p(`div`,ue,[p(`span`,de,[a[7]||=p(`i`,{"aria-hidden":`true`},null,-1),e(` `+c(d(s)(`writingTaste.status.${B.value.status}`)),1)]),p(`h2`,null,c(fe.value),1),p(`p`,null,c(pe.value),1)]),p(`div`,C,[p(`strong`,null,c(B.value.readiness.rule_count),1),p(`span`,null,`/ `+c(B.value.readiness.thresholds.rule_count),1),p(`small`,null,c(d(s)(`writingTaste.criteria.rules`)),1)])],2),p(`section`,{class:`writing-taste-readiness`,"aria-label":d(s)(`writingTaste.page.readinessAria`)},[(n(!0),h(u,null,t(B.value.readiness.criteria,e=>(n(),h(`article`,{key:e.key,class:f({met:e.met})},[p(`span`,T,c(e.met?`✓`:`·`),1),p(`div`,null,[p(`strong`,null,c(d(s)(`writingTaste.criteria.${e.key}`)),1),p(`small`,null,c(_e(e)),1)])],2))),128))],8,w),p(`section`,E,[p(`header`,null,[p(`h2`,null,c(d(s)(`writingTaste.page.rulesTitle`)),1),p(`span`,null,c(B.value.rules.length),1)]),B.value.rules.length?(n(),h(`div`,D,[(n(!0),h(u,null,t(B.value.rules,e=>(n(),h(`article`,{key:`${e.item_kind}:${e.item_id}`,class:f([`writing-taste-rule`,{"has-conflict":e.has_conflict,"is-hypothesis":e.evidence_status===`Working hypothesis`}])},[p(`div`,O,[p(`span`,{class:f(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},c(d(s)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),p(`span`,null,c(ge(e)),1),e.has_conflict?(n(),h(`span`,k,c(d(s)(`writingTaste.page.conflict`)),1)):l(``,!0)]),p(`div`,A,[p(`h3`,null,c(e.title),1),p(`p`,null,c(e.instruction),1),e.reason?(n(),h(`small`,j,c(e.reason),1)):l(``,!0),e.contexts.length?(n(),h(`small`,M,c(d(s)(`writingTaste.page.contexts`,{contexts:e.contexts.join(`、`)})),1)):l(``,!0)]),p(`footer`,null,[p(`div`,null,[p(`span`,null,c(d(s)(`writingTaste.page.evidence`,{evidence:e.evidence_count})),1),p(`span`,null,c(d(s)(`writingTaste.page.sessions`,{sessions:e.session_count})),1),e.updated_at?(n(),h(`span`,N,c(d(s)(`writingTaste.page.updated`,{time:d(S)(e.updated_at)})),1)):l(``,!0)]),$(e)?(n(),h(`div`,P,[p(`button`,{class:`secondary-action`,type:`button`,onClick:t=>he(e)},c(d(s)(`writingTaste.page.edit`)),9,F),e.evidence_status===`Confirmed`?l(``,!0):(n(),h(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>me(e)},c(d(s)(`writingTaste.page.confirm`)),9,I))])):l(``,!0)])],2))),128))])):(n(),h(`div`,L,c(d(s)(`writingTaste.page.rulesEmpty`)),1))]),B.value.ready&&B.value.agent_markdown?(n(),h(`section`,R,[p(`div`,null,[p(`h2`,null,c(d(s)(`writingTaste.page.agentPreviewTitle`)),1),p(`p`,null,c(d(s)(`writingTaste.page.agentPreviewCopy`)),1)]),p(`button`,{class:`secondary-action`,type:`button`,onClick:a[1]||=e=>K.value=!K.value},c(K.value?d(s)(`writingTaste.page.hideAgentPreview`):d(s)(`writingTaste.page.showAgentPreview`)),1),K.value?(n(),h(`pre`,z,c(B.value.agent_markdown),1)):l(``,!0)])):l(``,!0)],64)):(n(),h(`div`,ce,[p(`p`,{role:U.value?`alert`:void 0},c(d(s)(U.value?`common.errors.loadFailed`:`writingTaste.page.profileUnavailable`)),9,le),d(v).activePersonalSpace?(n(),h(`button`,{key:0,type:`button`,class:`secondary-action`,onClick:a[0]||=e=>Q()},c(d(s)(`common.actions.retry`)),1)):l(``,!0)])),m(x,{item:G.value,"personal-space-id":d(v).activePersonalSpace?.id??``,"personal-project-id":null,projects:d(v).state?.personalProjects??[],"replacement-items":X.value,onClose:a[2]||=e=>G.value=null,onSaved:a[3]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),m(b,{item:W.value,"personal-space-id":d(v).activePersonalSpace?.id??``,"personal-project-id":null,onClose:a[4]||=e=>W.value=null,onSaved:a[5]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-4bfe6da0`]]);export{B as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.agents-directory,.agent-profile-page{color:var(--text-primary,#293f33);min-width:0}.agents-directory-heading,.agent-section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.agents-directory-heading h2{margin:0;font-size:24px}.agents-directory-heading p{color:var(--text-muted,#637369);margin:6px 0 0}.agent-profile-actions{flex-shrink:0;align-items:center;gap:18px;display:flex}.agents-directory .primary-button,.agent-simple-settings .primary-button{color:#fff;font:inherit;cursor:pointer;background:#334e3e;border:0;border-radius:8px;padding:10px 18px}.agent-profile-page .quiet-button,.agents-directory .quiet-button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #ccd7cf;border-radius:8px;padding:9px 15px;text-decoration:none}.agents-directory-filters{gap:12px;margin:26px 0 16px;display:flex}.agents-directory-search{flex:1;min-width:100px}.agents-directory input,.agents-directory select,.agent-simple-settings select,.agent-simple-settings textarea{box-sizing:border-box;background:var(--surface,#fff);width:100%;color:inherit;font:inherit;border:1px solid #ced8d1;border-radius:8px;padding:11px 13px}.agents-directory-filters>select{width:auto}.agents-directory input:focus-visible,.agent-simple-settings textarea:focus-visible,.agent-simple-settings select:focus-visible{outline-offset:2px;outline:2px solid #50785f}.agents-directory-list{background:var(--surface,#fff);border:1px solid #d8e0da;border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.agents-directory-list>li{border-bottom:1px solid #e4e9e5;align-items:center;gap:20px;padding:24px;display:flex}.agents-directory-list>li:last-child{border-bottom:0}.agent-portrait{color:#32523e;background:#e6eee8;border-radius:20px;flex:0 0 76px;place-items:center;width:76px;height:76px;font-size:36px;display:grid}.agent-portrait.small{border-radius:12px;flex-basis:44px;width:44px;height:44px;font-size:24px}.agent-directory-person{flex:1;min-width:0}.agent-directory-name{align-items:center;gap:10px;font-size:17px;font-weight:650;display:flex}.agent-directory-person p{-webkit-line-clamp:2;color:#5e6b62;-webkit-box-orient:vertical;margin:7px 0 9px;line-height:1.6;display:-webkit-box;overflow:hidden}.agent-inline-skills{flex-wrap:wrap;gap:8px;display:flex}.agent-inline-skills>span{color:#536659;overflow-wrap:anywhere;background:#f0f4f1;border-radius:5px;padding:4px 8px;font-size:12px}.agent-directory-projects{color:#65746a;flex-direction:column;gap:7px;width:150px;font-size:13px;display:flex}.agent-directory-status{font-size:12px}.agent-directory-open{color:inherit;padding:8px}.agent-profile-empty{text-align:center;color:#68796d;padding:48px 20px}.agent-profile-page{box-sizing:border-box;width:100%;max-width:1080px;margin:0 auto}.agent-profile-back{color:#567361;margin-bottom:34px;font-size:14px;text-decoration:none;display:inline-block}.agent-resume-header{align-items:flex-start;gap:24px;padding-bottom:32px;display:flex}.agent-resume-intro{flex:1;min-width:0}.agent-resume-intro h1{letter-spacing:-.025em;margin:0 0 12px;font-size:clamp(26px,3vw,36px)}.agent-resume-intro>p{overflow-wrap:anywhere;max-width:650px;margin:0 0 16px;line-height:1.8}.agent-resume-meta{color:#68796d;flex-wrap:wrap;gap:20px;font-size:12px;display:flex}.agent-resume-section{border-top:1px solid #dce3dd;padding:30px 0}.agent-resume-section h2{margin:0 0 22px;font-size:19px}.agent-resume-section h3{margin:0 0 8px;font-size:14px}.agent-resume-section p{white-space:pre-line;overflow-wrap:anywhere;margin:8px 0;line-height:1.8}.agent-character{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;display:grid}.agent-character p{font-size:14px}.agent-muted,.agent-work-timeline small{color:#68796d}.agent-strengths{margin-top:26px}.agent-strengths h3{margin-bottom:12px}.agent-expectation{background:#eaf0eb;border-radius:8px;padding:16px 20px}.agent-expectation strong{margin-bottom:6px;font-size:13px;display:block}.agent-resume-list{margin:0;padding:0;list-style:none}.agent-resume-list li{padding:14px 0}.agent-resume-list li+li{border-top:1px solid #e2e7e3}.agent-section-heading h2{margin-bottom:0}.agent-section-heading{margin-bottom:20px}.agent-section-heading>a{color:inherit}.agent-section-heading>span{color:#68796d;font-size:12px}.agent-organization{padding:18px 0}.agent-org-lead,.agent-org-members{gap:24px;padding:10px 0;display:flex}.agent-org-lead>span,.agent-org-members>span{color:#68796d;min-width:54px;font-size:12px}.agent-org-members{border-left:2px solid #d9e4db;margin-left:18px;padding-left:18px}.agent-org-members ul{flex-wrap:wrap;gap:16px;margin:0;padding:0;list-style:none;display:flex}.agent-work-timeline{border-left:1px solid #cbd8ce;margin:24px 0 0 6px;padding:0 0 0 24px;list-style:none}.agent-work-timeline>li{margin:0 0 28px;position:relative}.agent-work-timeline>li:before{content:"";background:#66816f;border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:-29px}.agent-work-timeline .agent-section-heading{margin-bottom:8px}.agent-work-timeline a{font-weight:600}.agent-work-timeline p{font-size:14px}.agent-work-timeline small{font-size:12px}.agent-collaborators{flex-wrap:wrap;gap:20px 36px;padding:0;list-style:none;display:flex}.agent-collaborators li{flex-direction:column;gap:6px;display:flex}.agent-collaborators span{color:#68796d;font-size:12px}.agent-profile-footer{border-top:1px solid #dce3dd;gap:24px;padding:24px 0;font-size:13px;display:flex}.agent-profile-footer a,.agent-profile-actions a,.agent-section-heading>a{color:#45684f}.agent-simple-settings{background:var(--surface,#fff);border:1px solid #d5dfd8;border-radius:12px;margin:0 0 26px;padding:24px}.agent-simple-settings h3{margin:0 0 20px}.agent-simple-settings label{flex-direction:column;gap:8px;margin-bottom:20px;font-size:14px;display:flex}.agent-simple-settings small{color:#68796d;font-size:12px}.agent-simple-settings details{margin:24px 0}.agent-simple-settings summary,.agent-resume-section summary{cursor:pointer;margin-bottom:16px;font-size:13px}.agent-simple-settings textarea{resize:vertical;min-height:70px}.agent-simple-settings button:disabled{opacity:.6;cursor:wait}@media (width<=760px){.agents-directory-filters{flex-wrap:wrap}.agents-directory-search{flex-basis:100%}.agents-directory-list>li{gap:12px;padding:18px 14px}.agent-directory-projects,.agent-directory-status{display:none}.agent-resume-header{flex-wrap:wrap;gap:18px}.agent-resume-header .agent-profile-actions{justify-content:flex-end;width:100%}.agent-character{grid-template-columns:1fr;gap:18px}.agent-portrait{border-radius:16px;flex-basis:56px;width:56px;height:56px;font-size:28px}.agent-profile-back{margin-bottom:24px}.agent-section-heading{align-items:flex-start}.agent-simple-settings{padding:18px}.agent-org-members{gap:12px}.agents-directory-heading{align-items:flex-start}.agents-directory-heading .agent-profile-actions{gap:10px;font-size:12px}.agent-directory-open{padding:4px}.agent-profile-page .agent-section-heading>span{white-space:nowrap}}.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}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Z as e,a as t,z as n}from"./i18n-CIIxzhPZ.js";import{n as r}from"./client-DTQ_tUr2.js";import{t as i}from"./task-evidence-DTiPCs7r.js";function a(a){let o=e([]),s=e(!1),c=e(``),l=0;async function u(){let e=++l,n=a.value;if(o.value=[],c.value=``,!a.value){s.value=!1;return}s.value=!0;try{let t=await r(`/api/project-agents?${new URLSearchParams({personalSpaceId:n})}`);if(e!==l)return;o.value=i(t).filter(e=>!!(e&&typeof e==`object`&&`agentId`in e&&`profile`in e&&`personalSpaceId`in e&&e.personalSpaceId===n))}catch(n){e===l&&(c.value=n instanceof Error?n.message:t(`agentProfiles.loadError`))}finally{e===l&&(s.value=!1)}}return n(a,u,{immediate:!0}),{agents:o,loading:s,error:c,load:u}}export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,G as r,J as i,K as a,O as o,U as s,W as c,Y as l,Z as u,_ as d,a as f,et as p,q as m,tt as h,z as g}from"./i18n-CIIxzhPZ.js";import{n as _,r as v}from"./client-DTQ_tUr2.js";var y=typeof window<`u`,b,x=e=>b=e,S=Symbol();function C(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var w=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function T(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function E(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){j(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function D(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function O(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var k=typeof navigator==`object`?navigator:{userAgent:``},A=/Macintosh/.test(k.userAgent)&&/AppleWebKit/.test(k.userAgent)&&!/Safari/.test(k.userAgent),j=y?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!A?M:`msSaveOrOpenBlob`in k?N:P:()=>{};function M(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?O(r):D(r.href)?E(e,t,n):(r.target=`_blank`,O(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){O(r)},0))}function N(e,t=`download`,n){if(typeof e==`string`)if(D(e))E(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){O(t)})}else navigator.msSaveOrOpenBlob(T(e,n),t)}function P(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return E(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(w.HTMLElement))||`safari`in w,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||A)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:F}=Object;function I(){let e=s(!0),t=e.run(()=>u({})),n=[],r=[],i=m({install(e){x(i),i._a=e,e.provide(S,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var L=()=>{};function R(e,t,n,r=L){e.add(t);let a=()=>{e.delete(t)&&r()};return!n&&c()&&i(a),a}function z(e,...t){e.forEach(e=>{e(...t)})}var B=e=>e(),V=Symbol(),H=Symbol();function U(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n],o=e[n];C(o)&&C(i)&&Object.hasOwn(e,n)&&!a(i)&&!r(i)?e[n]=U(o,i):e[n]=i}return e}var W=Symbol();function G(e){return!e||typeof e!=`object`||!Object.hasOwn(e,W)}var{assign:K}=Object;function q(e){return!!(a(e)&&e.effect)}function J(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),K(h(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=m(d(()=>{x(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Y(e,l,t,n,r,!0),c}function Y(e,n,i={},o,c,u){let d,f=K({actions:{}},i),m={deep:!0},h,_,v=new Set,y=new Set,b=o.state.value[e];!u&&!b&&(o.state.value[e]={});let S;function C(n){let r;h=_=!1,typeof n==`function`?(n(o.state.value[e]),r={type:`patch function`,storeId:e,events:void 0}):(U(o.state.value[e],n),r={type:`patch object`,payload:n,storeId:e,events:void 0});let i=S=Symbol();t().then(()=>{S===i&&(h=!0)}),_=!0,z(v,r,o.state.value[e])}let w=u?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{K(e,t)})}:L;function T(){d.stop(),v.clear(),y.clear(),o._s.delete(e)}let E=(t,n=``)=>{if(V in t)return t[H]=n,t;let r=function(){x(o);let n=Array.from(arguments),i=new Set,a=new Set;function s(e){i.add(e)}function c(e){a.add(e)}z(y,{args:n,name:r[H],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw z(a,e),e}return l instanceof Promise?l.then(e=>(z(i,e),e)).catch(e=>(z(a,e),Promise.reject(e))):(z(i,l),l)};return r[V]=!0,r[H]=n,r},D=l({_p:o,$id:e,$onAction:R.bind(null,y),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return L;let r=R(v,t,n.detached,()=>i()),i=d.run(()=>g(()=>o.state.value[e],r=>{(n.flush===`sync`?_:h)&&t({storeId:e,type:`direct`,events:void 0},r)},K({},m,n)));return r},$dispose:T});o._s.set(e,D);let O=(o._a&&o._a.runWithContext||B)(()=>o._e.run(()=>(d=s()).run(()=>n({action:E}))));for(let t in O){let n=O[t];a(n)&&!q(n)||r(n)?u||(b&&G(n)&&(a(n)?n.value=b[t]:U(n,b[t])),o.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),f.actions[t]=n)}return K(D,O),K(p(D),O),Object.defineProperty(D,"$state",{get:()=>o.state.value[e],set:e=>{C(t=>{K(t,e)})}}),o._p.forEach(e=>{let t=d.run(()=>e({store:D,app:o._a,pinia:o,options:f}));K(D,t)}),b&&u&&i.hydrate&&i.hydrate(D.$state,b),h=!0,_=!0,D}function X(e,t,r){let i,a=typeof t==`function`;i=a?r:t;function s(r,s){let c=n();return r||=c?o(S,null):null,r&&x(r),r=b,r._s.has(e)||(a?Y(e,t,i,r):J(e,i,r)),r._s.get(e)}return s.$id=e,s}var Z=X(`console`,()=>{let t=e(null),n=u(`idle`),r=u(!1),i=u(null),a=d(()=>{let e=t.value;return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)??e.personalSpaces[0]??null:null}),o=d(()=>t.value?.mode===`connected`?`ready`:t.value?.mode===`degraded`?`error`:`disconnected`);async function s(){n.value=`loading`;try{t.value=await _(`/api/state`),n.value=`ready`}catch(e){n.value=`error`,h(e)}}async function c(e){try{let n=await v(`/api/capture-policy`,{enabled:e});t.value&&={...t.value,capturePolicy:n},m(f(e?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){h(e)}}async function l(e){try{let n=await v(`/api/agent-access-policy`,{enabled:e});t.value&&={...t.value,agentAccessPolicy:n},m(f(e?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){h(e)}}function p(e){return t.value?.capabilities?.[e]===!0}function m(e){i.value={message:e,tone:`success`}}function h(e){i.value={message:e instanceof Error?e.message:f(`common.errors.operationFailed`),tone:`error`}}function g(){i.value=null}return{state:t,runtimeStatus:n,settingsSaving:r,feedback:i,activePersonalSpace:a,publicRuntimeStatus:o,refresh:s,updateCapturePolicy:c,updateAgentAccessPolicy:l,hasCapability:p,notify:m,reportError:h,clearFeedback:g}});export{I as n,X as r,Z as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.employee-dialog{color:#253c2f;box-sizing:border-box;background:#fff;border:1px solid #dce4df;border-radius:16px;width:min(640px,100vw - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:hidden}.employee-dialog::backdrop{background:#0f1d1561}.employee-dialog-shell{flex-direction:column;min-height:0;max-height:calc(100dvh - 34px);display:flex}.employee-dialog header,.employee-dialog footer{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;display:flex}.employee-dialog header{border-bottom:1px solid #e6ece8}.employee-dialog h2{margin:0;font-size:20px}.employee-dialog button{color:#36523f;min-height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #d8e2dc;border-radius:8px;padding:8px 12px}.employee-dialog header>button{border:0;font-size:24px}.employee-dialog button:disabled{opacity:.5;cursor:default}.employee-dialog .primary{color:#fff;background:#315c43;border-color:#315c43}.employee-dialog footer{border-top:1px solid #e6ece8;justify-content:flex-end}.employee-dialog-body{overscroll-behavior:contain;flex-direction:column;gap:18px;min-height:0;padding:20px 24px;display:flex;overflow-y:auto}.employee-dialog-body>label{color:#526659;flex-direction:column;gap:8px;font-size:13px;display:flex}.employee-dialog-body input:not([type=checkbox]),.employee-dialog-body select,.employee-dialog-body textarea{width:100%;min-width:0;min-height:40px;font:inherit;color:#253c2f;box-sizing:border-box;background:#fff;border:1px solid #cddbd2;border-radius:8px;padding:9px 11px}.employee-dialog-body textarea{resize:vertical}.employee-dialog :is(button,input,textarea,select,a):focus-visible{outline-offset:2px;outline:2px solid #356448}.employee-dialog-error{color:#903c30}.employee-dialog-body p{overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.6}.employee-task-status{color:#526659}@media (width<=640px){.employee-dialog header,.employee-dialog footer,.employee-dialog-body{padding:16px}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.brand-block[data-v-3ccab825]{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-3ccab825]: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-3ccab825]{appearance:none;color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;display:block}.brand-effect-button[data-v-3ccab825]:focus{outline:none}.brand-block.is-keyboard-focused .brand-mark-wrap[data-v-3ccab825]{border-radius:50%;box-shadow:0 0 0 2px #789084}.brand-mark-wrap[data-v-3ccab825]{flex:none;width:38px;height:38px;position:relative}.brand-mark[data-v-3ccab825]{object-fit:contain;width:38px;height:38px;display:block}.brand-orbit[data-v-3ccab825]{z-index:3;opacity:0;pointer-events:none;border-radius:50%;animation:.94s cubic-bezier(.2,.7,.22,1) both brand-orbit-travel-3ccab825;position:absolute;inset:-8px}.brand-orbit[data-v-3ccab825]:before{content:"";border-radius:inherit;background:conic-gradient(from 20deg, transparent 0 74%, #e6b14a00 79%, #e6b14a3d 87%, #fff4d3c7 96%, transparent 100%);position:absolute;inset:0;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 2px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 2px),#000 calc(100% - 1.5px))}.brand-orbit[data-v-3ccab825]:after{content:"";background:radial-gradient(circle at 34% 30%,#fff 0 14%,#fff1c7 30%,#e8b653 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-3ccab825]{min-width:0;display:grid;position:relative}.brand-title-row[data-v-3ccab825]{align-items:baseline;gap:7px;display:flex}.brand-name[data-v-3ccab825]{letter-spacing:-.02em;font-size:18px;font-weight:700}.brand-version[data-v-3ccab825]{color:#8a928c;letter-spacing:.02em;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:600}.brand-version-button[data-v-3ccab825]{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-3ccab825]{color:#555e57}.brand-version-button[data-v-3ccab825]:focus-visible{outline:none;box-shadow:0 0 0 2px #789084}.brand-update-dot[data-v-3ccab825]{background:#d53d3d;border-radius:50%;flex:none;width:5px;height:5px;box-shadow:0 1px 4px #bd1e1e47}.brand-subtitle[data-v-3ccab825]{color:#747d76;margin-top:2px;font-size:10px}.brand-copy-reflection[data-v-3ccab825]{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-3ccab825;position:absolute;top:0;left:0;right:0}.brand-copy-reflection .brand-name[data-v-3ccab825],.brand-copy-reflection .brand-version[data-v-3ccab825]{color:#c89536;text-shadow:0 0 6px #efbe5d47}.brand-update-popover[data-v-3ccab825]{z-index:20;color:#263129;background:#fff;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-3ccab825]{font-size:11px;line-height:1.45;display:block}.brand-update-popover p[data-v-3ccab825]{color:#5a665e;margin:5px 0 9px;font-size:10px;line-height:1.5}.brand-update-popover code[data-v-3ccab825]{color:#27342b;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#f1f4f1;border-radius:7px;padding:7px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;line-height:1.45;display:block}.brand-update-popover a[data-v-3ccab825]{color:#356c55;text-underline-offset:2px;margin-top:9px;font-size:10px;font-weight:650;text-decoration-thickness:1px;display:inline-block}.brand-update-popover a[data-v-3ccab825]:hover{color:#234d3b}.brand-update-popover a[data-v-3ccab825]:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #789084}.brand-block.is-sparkling[data-v-3ccab825]:before{animation:1.05s ease-out both brand-halo-3ccab825}@keyframes brand-orbit-travel-3ccab825{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-3ccab825{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-3ccab825{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-3ccab825]{display:none}.brand-block.is-sparkling[data-v-3ccab825]:before{animation:.28s ease-out both brand-reduced-halo-3ccab825}.brand-copy-reflection[data-v-3ccab825]{clip-path:inset(0);animation:.28s ease-out both brand-reduced-glint-3ccab825}@keyframes brand-reduced-halo-3ccab825{0%,to{opacity:0}45%{opacity:.72}}@keyframes brand-reduced-glint-3ccab825{0%,to{opacity:0}45%{opacity:.58}}}.navigation-recovery[data-v-83dee1c5]{color:#6d481e;background:#faf1e5;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-83dee1c5]{flex:1;min-width:0}.navigation-recovery strong[data-v-83dee1c5]{font-weight:650}.navigation-recovery p[data-v-83dee1c5]{margin:4px 0 0;line-height:1.6}.navigation-recovery a[data-v-83dee1c5]{flex-shrink:0;text-decoration:none}.navigation-recovery-dismiss[data-v-83dee1c5]{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px}.navigation-recovery[data-v-83dee1c5] :is(a,button):focus-visible{outline-offset:3px;outline:2px solid #805623}@media (width<=640px){.navigation-recovery[data-v-83dee1c5]{flex-wrap:wrap;gap:10px;margin:10px 12px}.navigation-recovery>div[data-v-83dee1c5]{flex-basis:100%}}.employee-workbench-link[data-v-8788995d]{color:inherit;padding:8px}.employee-nav-row[data-v-8788995d]{align-items:center;gap:4px;min-width:0;display:flex}.employee-nav-row>.employee-nav[data-v-8788995d]{flex:1;min-width:0}.employee-nav-row>.agent-hand[data-v-8788995d]{width:auto;margin-inline-end:4px}.employee-nav-mark[data-v-8788995d]{color:#315c43;background:#e3ece6;border-radius:7px;flex:0 0 26px;place-items:center;height:26px;font-size:15px;font-weight:650;display:grid;overflow:hidden}.employee-nav-mark img[data-v-8788995d]{object-fit:cover;width:100%;height:100%}.attention-nav[data-v-521df451]{justify-content:space-between;align-items:center;gap:8px;display:flex}.attention-dialog[data-v-521df451]{width:min(700px,100vw - 32px)}.attention-toolbar[data-v-521df451]{justify-content:flex-end;gap:8px;display:flex}.attention-item[data-v-521df451]{overflow-wrap:anywhere;border-bottom:1px solid #e0e7e2;padding-block:6px 24px}.attention-item[data-v-521df451]:last-child{border-bottom:0;padding-bottom:0}.attention-item h3[data-v-521df451]{margin:8px 0;font-size:17px}.attention-item .attention-meta[data-v-521df451]{color:#526659;font-size:12px}.attention-item .attention-action[data-v-521df451]{margin-block:12px;font-weight:650}.attention-item form[data-v-521df451]{gap:8px;margin-top:16px;display:grid}.attention-item form button[data-v-521df451]{justify-self:end}.attention-item form label[data-v-521df451]{font-size:13px}.attention-item a[data-v-521df451]{color:#315c43}@media (width<=640px){.attention-item textarea[data-v-521df451]{font-size:16px}}.topbar--workbench[data-v-a0fe6da2]{display:none}.workbench-host-label[data-v-a0fe6da2]{color:#58675d;font-size:12px;font-weight:600}@media (width<=920px){.topbar--workbench[data-v-a0fe6da2]{background:#fff;border:0;justify-content:flex-start;gap:12px;min-height:44px;padding:7px 16px;display:flex}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#202522;font-synthesis:none;background:#f4f5f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;scrollbar-color:#b8c2bb transparent;scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:#b8c2bb padding-box padding-box;border:1px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:#98a69d}[hidden]{display:none!important}html,body{height:100%;overflow:hidden}body{min-width:1060px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h1{letter-spacing:-.02em;font-size:18px}h2{letter-spacing:-.025em;font-size:25px}h3{font-size:15px}.app-shell{grid-template-columns:240px minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.sidebar{background:#eef0ed;border-right:1px solid #dce0db;flex-direction:column;height:100dvh;min-height:0;padding:20px 14px 16px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar>.brand-block,.sidebar-foot{flex:none}.primary-nav{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;align-content:start;gap:3px;min-height:0;padding:2px 2px 12px;display:grid;overflow:hidden auto}.nav-section-label{color:#939a94;letter-spacing:.12em;text-transform:uppercase;margin:0 10px 5px;font-size:9px;font-weight:700}.nav-space-label,.nav-tool-label,.nav-about-label{margin-top:16px}.primary-nav button{color:#505852;text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:24px 1fr auto;align-items:center;width:100%;padding:9px 10px;font-size:13px;display:grid;position:relative}.primary-nav button:hover{background:#e4e7e3}.primary-nav button:focus-visible{outline-offset:1px;outline:2px solid #91a398}.primary-nav button[aria-pressed=true]{color:#243b31;background:#dde4df;font-weight:650}.primary-nav .space-nav-button{min-height:52px;padding-block:8px}.primary-nav .personal-space-button[aria-pressed=true]{color:#254234;background:#dde7e1}.primary-nav .public-space-button[aria-pressed=true]{color:#2c414d;background:#e0e6e9}.nav-copy{gap:2px;display:grid}.nav-copy strong{font-size:13px;font-weight:650}.nav-copy small{color:#858d87;font-size:9px;font-weight:500}.primary-nav #review-count{color:#fff;text-align:center;background:#b94e45;border-radius:9px;min-width:20px;padding:1px 6px;font-size:10px}.nav-icon{width:17px;height:17px;-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 #d7dbd6;gap:11px;margin-top:auto;padding:12px 2px 2px;display:grid}.sidebar-foot small{color:#747d76;margin-top:2px;font-size:10px}.sidebar-foot strong{font-size:12px;display:block}.service-runtime-list{gap:8px;display:grid}.runtime-status{align-items:center;gap:8px;min-width:0;display:flex}.runtime-status>div{min-width:0}.capture-setting{color:#626b65;cursor:pointer;border-top:1px solid #dde1dc;justify-content:space-between;align-items:center;gap:8px;padding-top:9px;font-size:10px;display:flex}.capture-setting>span{min-width:0}.capture-setting>span strong{color:#46534b}.capture-setting>span small{margin-top:2px;display:block}.agent-access-setting{padding-top:10px}.agent-access-setting[data-enabled=false]>span strong{color:#8b4f49}.capture-setting input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.capture-setting i{background:#c8cdc9;border:1px solid #b9c0bb;border-radius:999px;flex:none;width:31px;height:18px;transition:background-color .16s,border-color .16s;position:relative}.capture-setting i:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #222b2538}.capture-setting input:checked+i{background:#5f816d;border-color:#537461}.capture-setting input:checked+i:after{transform:translate(13px)}.capture-setting input:focus-visible+i{outline-offset:2px;outline:2px solid #91a398}.capture-setting input:disabled+i{opacity:.55}.status-dot{background:#c4a34a;border-radius:50%;width:8px;height:8px}.status-dot.ready{background:#3f8b64}.status-dot.error{background:#b94e45}.status-dot.disconnected{background:#aeb5af}.workspace{flex-direction:column;min-width:0;height:100dvh;min-height:0;display:flex;overflow:hidden}.topbar{background:#fafbf9eb;border-bottom:1px solid #e1e4df;flex:none;justify-content:space-between;align-items:center;gap:28px;min-height:72px;padding:16px 32px;display:flex}.topbar-heading{align-content:center;gap:2px;min-width:0;display:grid}.topbar-heading .eyebrow{margin:0 0 2px}.topbar-heading h2{line-height:1.12}.topbar-description{color:#7b847e;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(58vw,820px);font-size:10px;line-height:1.45;overflow:hidden}.topbar-actions{flex:none;align-items:center;gap:14px;display:flex}.eyebrow{color:#879088;letter-spacing:.14em;margin-bottom:5px;font-size:10px;font-weight:700}.quiet-button,.subscription-form button{color:#3f4741;background:#fff;border:1px solid #cfd5cf;border-radius:7px;padding:7px 12px;font-size:12px}.quiet-button:hover,.subscription-form button:hover{border-color:#8e9b92}.settings-save-button{color:#fff;background:#344c3d;border:0;border-radius:7px;padding:8px 13px;font-size:12px;font-weight:700}.settings-save-button:hover{background:#2b4234}.settings-save-button:focus-visible{outline-offset:2px;outline:2px solid #91a398}.feedback{color:#8b3f38;background:#fbf3f2;border:1px solid #d8b3ae;border-radius:7px;margin:18px 32px 0;padding:10px 12px;font-size:13px}.feedback.success{color:#356046;background:#f1f7f3;border-color:#bfd3c5}.view{flex:1;min-height:0;padding:30px 32px 44px;overflow:auto}.view[data-view-panel=personal-profile]{flex-direction:column;padding:18px 32px 20px;display:flex;overflow:hidden}.section-toolbar{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.section-toolbar p{color:#68716a;font-size:13px;line-height:1.55}.mode-chip{color:#426352;background:#f5f8f6;border:1px solid #c8d3cb;border-radius:999px;padding:5px 9px;font-size:11px}.overview-summary{background:#fff;border:1px solid #dce1dc;border-radius:9px;grid-template-columns:minmax(220px,1.15fr) minmax(170px,.8fr) minmax(220px,1fr);margin:0 0 34px;display:grid;overflow:hidden}.overview-summary-card{min-width:0;min-height:166px;color:inherit;border-right:1px solid #e5e8e5;flex-direction:column;padding:21px 23px 18px;text-decoration:none;transition:background-color .15s,box-shadow .15s;display:flex;position:relative}.overview-summary-card:last-child{border-right:0}.overview-summary-card:hover{background:#f7f9f7}.overview-summary-card:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #7f9b8a}.overview-space-card{background:#fbfcfb}.overview-summary-label{color:#737c76;font-size:11px;font-weight:650}.overview-summary-name,.overview-summary-value{color:#26372e;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin-top:10px;font-size:28px;font-weight:620;line-height:1.15;display:block;overflow:hidden}.overview-summary-name{font-size:25px}.overview-shared-value{font-size:24px}.overview-summary-meta{color:#78817a;align-items:center;gap:7px;min-height:18px;margin-top:7px;font-size:11px;line-height:1.45;display:flex}.overview-status-dot{background:#aeb5af;border-radius:50%;flex:none;width:7px;height:7px}.overview-status-dot.ready{background:#3f8b64}.overview-status-dot.error{background:#b94e45}.overview-summary-action{color:#315b46;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:18px;font-size:11px;font-weight:680;display:flex}.overview-summary-action>span{color:#789083;font-size:15px;transition:transform .15s}.overview-summary-card:hover .overview-summary-action>span{transform:translate(2px)}.overview-shared-projects-card.is-disconnected .overview-summary-value{color:#67716a}.overview-shared-projects-card.is-error .overview-summary-value{color:#8b4b43}.two-column{grid-template-columns:1.15fr .85fr;gap:24px;display:grid}.section-block{border-top:1px solid #cfd5cf;padding-top:14px}.section-title{margin-bottom:14px}.flow-list{gap:17px;margin:0;padding:0;list-style:none;display:grid}.flow-list li{grid-template-columns:28px 1fr;align-items:start;gap:11px;display:grid}.flow-list li>span{color:#3f5d4e;background:#e3e9e5;border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:grid}.flow-list strong{font-size:13px}.flow-list p{color:#79817b;margin-top:3px;font-size:12px}.space-heading{grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:15px;padding:0 0 18px;display:grid}.space-heading-icon{color:#3f6652;background-color:#fff;border:1px solid #d7ded9;border-radius:10px;place-items:center;width:42px;height:42px;display:grid}.space-heading-icon .nav-icon{width:21px;height:21px}.public-space-heading .space-heading-icon{color:#496272;background-color:#f8fafb;border-color:#d5dde2}.space-heading p{color:#68716a;font-size:13px;line-height:1.55}.space-heading-status{text-align:right;border-left:1px solid #dfe3df;min-width:94px;padding-left:20px}.space-heading-status strong{color:#31523f;font-size:24px;font-weight:620;display:block}.space-heading-status span,.space-heading-status small{color:#747d76;font-size:10px;display:block}.space-heading-status small{color:#9aa19b;margin-top:2px}.public-space-stats{background:#f9fbfc;border:1px solid #d8dfe3;border-radius:8px;align-items:stretch;display:flex}.public-space-stats span{color:#79838a;text-align:center;min-width:76px;padding:9px 12px;font-size:9px}.public-space-stats span+span{border-left:1px solid #dde3e6}.public-space-stats strong{color:#385363;font-size:18px;line-height:1.15;display:block}.personal-profile-summary{background:#f0f3f0;border-radius:8px;align-items:center;gap:0;min-height:50px;padding:0 16px;display:flex}.personal-profile-summary strong{color:#314a3d;font-size:18px;display:block}.personal-profile-summary>button{color:#7a837d;text-align:left;background:0 0;border:0;min-width:102px;padding:10px 18px;font-size:10px;transition:color .15s,background-color .15s,box-shadow .15s}.personal-profile-summary>button+button{border-left:1px solid #dce2dd}.personal-profile-summary>button small{color:#879089;margin-top:2px;font-size:8px;font-weight:650;display:block}.personal-profile-summary>button:hover{color:#415249;background:#e9eeea}.personal-profile-summary>button:focus{outline:none}.personal-profile-summary>button:focus-visible{outline-offset:-2px;outline:2px solid #91a398}.personal-profile-summary>button[aria-pressed=true]{color:#2f4d3d;background:#e3ebe6;box-shadow:inset 0 -2px #71877a}.personal-profile-summary>button[aria-pressed=true] small{color:currentColor}.personal-profile-summary p{color:#7c857f;margin-left:auto;font-size:10px}.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{color:#69726c;background:0 0;border:1px solid #0000;border-radius:6px;min-width:64px;padding:6px 9px;font-size:10px}.personal-profile-filters button:hover{background:#eef2ef}.personal-profile-filters button[aria-pressed=true]{color:#31523f;background:#edf3ef;border-color:#aebfb4;font-weight:650}.personal-profile-scope-filter{width:min(240px,28vw)}.personal-profile-scope-filter .searchable-select-trigger{background:#fff;border-radius:6px;min-height:30px}.personal-profile-layout{isolation:isolate;background:#fff;border:1px solid #cfd7d1;border-radius:8px;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{color:#8b938d;background:#f7f8f6;border-bottom:1px solid #e0e4e0;padding:10px 15px;font-size:9px;font-weight:680}.personal-profile-row{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;width:100%;height:100%;padding:12px 15px}.personal-profile-row:hover{background:#f8faf8}.personal-profile-row.selected{background:#f1f6f3;box-shadow:inset 0 0 0 1px #d2dfd7}.profile-aspect-mark{border-radius:999px;width:fit-content;padding:4px 8px;font-size:9px;font-weight:680}.profile-aspect-mark.taste{color:#5f5640;background:#f5f0e5}.profile-aspect-mark.personality{color:#4f5f78;background:#edf1f6}.profile-aspect-mark.judgment_preference{color:#405e50;background:#eaf3ee}.personal-profile-copy,.personal-profile-origin{gap:4px;min-width:0;display:grid}.personal-profile-copy strong,.personal-profile-origin strong{color:#303b35;font-size:11px}.personal-profile-origin strong.has-conflict{color:#53615a}.personal-profile-copy small,.personal-profile-origin small,.personal-profile-row time{color:#7b847e;font-size:9px;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 #cfd5cf;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{background:#fafbfa;border:1px dashed #d8ddd8;border-radius:8px;grid-column:1/-1}.project-card{background:#fff;border:1px solid #dfe3de;border-radius:9px;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:#28352e;overflow-wrap:anywhere;margin:0;font-size:16px}.project-purpose{color:#626c65;min-height:38px;margin-top:12px;font-size:12px;line-height:1.55}.completion-badge{text-align:center;background:#f8faf8;border:1px solid #d4dbd5;border-radius:8px;flex:none;min-width:54px;padding:7px 8px}.completion-badge strong{color:#345241;font-size:18px;line-height:1;display:block}.completion-badge span{color:#7c857e;font-size:9px}.evidence-row{flex-wrap:wrap;gap:5px;min-height:24px;margin-top:13px;display:flex}.status-chip{color:#4d6558;background:#f7faf8;border:1px solid #d5ddd7;border-radius:999px;align-items:center;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650;display:inline-flex}.status-chip.owner{color:#2f5943;background:#eef6f1;border-color:#b8cdbf}.status-chip.private{color:#746448;background:#fbf8f1;border-color:#ddd5c5}.completion-note{color:#879088;margin-top:14px;font-size:10px}.completion-details{border-top:1px solid #e7eae7;margin-top:13px;padding-top:10px}.completion-details summary,.episode-details summary{color:#53645a;cursor:pointer;font-size:10px}.completion-columns{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:11px;display:grid}.assessment-block{background:#f7f8f7;border-radius:6px;min-width:0;padding:8px}.assessment-block>strong{color:#59645d;font-size:9px}.assessment-block ul{color:#6f7872;margin:5px 0 0;padding-left:14px;font-size:9px;line-height:1.45}.assessment-block.inferred{background:#faf8f2}.project-access,.project-actions{align-items:center;gap:7px;margin-top:14px;display:flex}.project-access{border-top:1px solid #e8ebe8;padding-top:12px}.project-actions{flex-wrap:wrap}.primary-action,.secondary-action,.management-action,.danger-action,.relation-actions button{border-radius:7px;min-height:32px;padding:7px 11px;font-size:10px;font-weight:600}.primary-action{color:#fff;background:#426f58;border:1px solid #3e6b54}.secondary-action{color:#53615a;background:#fff;border:1px solid #cdd5cf}.management-action{color:#59665f;background:#f8faf8;border:1px solid #d6dcd7}.danger-action{color:#fff;background:#ad4d44;border:1px solid #a64940}.primary-action:hover{background:#365f4a}.secondary-action:hover,.management-action:hover{background:#fafcfb;border-color:#9eaca2}.danger-action:hover{background:#983f37}.primary-action:disabled,.secondary-action:disabled,.management-action:disabled,.danger-action:disabled{cursor:wait;opacity:.58}.project-release-meta{border-left:1px solid #e2e6e2;gap:1px;margin-left:auto;padding-left:11px;display:grid}.project-release-meta strong{color:#3e5c4c;font-size:10px}.project-release-meta span{color:#89918b;font-size:9px}.project-card-footer{border-top:1px solid #e7eae7;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:#7f8982;font-size:9px;font-weight:650}.project-subscription-state{color:#53625a;align-items:center;gap:7px;font-size:10px;display:flex}.subscription-indicator{align-items:center;gap:6px;display:inline-flex}.subscription-indicator i{background:#3f8b64;border-radius:50%;width:7px;height:7px}.subscription-action{min-height:30px;margin-left:4px;padding:5px 10px;font-size:11px}.project-publication-bar{background:#f8faf8;border:1px solid #dfe5e0;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;padding:12px;display:flex}.project-publication-bar strong{color:#3d4f45;font-size:10px;display:block}.project-publication-bar span{color:#7e8881;margin-top:2px;font-size:9px;display:block}.project-relations{gap:6px;margin-top:11px;display:grid}.relation-loading{padding:9px 0 2px}.project-relation-row{background:#f7f8f7;border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.project-relation-row strong{font-size:10px;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:11px}.relation-section-toolbar .primary-action:disabled{cursor:not-allowed}.relation-composer{background:#fff;border:1px solid #d9ded9;border-radius:10px;margin-top:16px;box-shadow:0 10px 30px #2330280f}.relation-composer-form{padding:18px}.relation-preview{background:#f8faf8;border:1px solid #e0e5e1;border-radius:9px;grid-template-columns:minmax(180px,1fr) minmax(150px,.65fr) minmax(180px,1fr);align-items:center;gap:16px;padding:18px;display:grid}.relation-preview-node{background:#fff;border:1px solid #ced8d1;border-radius:9px;align-content:center;gap:4px;min-width:0;min-height:98px;padding:15px;display:grid}.relation-preview-node span{color:#849087;letter-spacing:.09em;font-size:9px;font-weight:700}.relation-preview-node strong{color:#2e4137;overflow-wrap:anywhere;font-size:15px}.relation-preview-node small{color:#818a84;font-size:9px}.relation-preview-target{border-color:#ccd8de}.relation-preview-connector{text-align:center;grid-template-rows:auto 1px;align-items:center;gap:8px;display:grid}.relation-preview-connector span{color:#3f6250;overflow-wrap:anywhere;background:#fff;border:1px solid #c6d3cb;border-radius:999px;width:fit-content;max-width:100%;margin:0 auto;padding:4px 9px;font-size:10px;font-weight:650}.relation-preview-connector i{border-top:1px solid #91a399;width:100%}.relation-builder{border-top:1px solid #e3e7e3;border-bottom:1px solid #e3e7e3;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 #e4e8e4;padding-left:18px}.relation-builder-step>label,.relation-builder-step legend{color:#36443c;margin:3px 0 9px;padding:0;font-size:11px;font-weight:650;display:block}.relation-builder-step>select,.relation-builder-step>input{width:100%}.relation-builder-step>small{color:#8a928c;margin-top:8px;font-size:9px;line-height:1.45;display:block}.relation-step-number{color:#8b958e;letter-spacing:.11em;font-size:9px;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{cursor:pointer;background:#fff;border:1px solid #dce2dd;border-radius:7px;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{background:#fafcfb;border-color:#aebbb2}.relation-type-options label:has(input:checked){background:#f1f6f3;border-color:#6d8b7b;box-shadow:0 0 0 1px #4d6f5c14}.relation-target-option:has(input:checked){background:#f1f6f3;border-color:#6d8b7b;box-shadow:0 0 0 1px #4d6f5c14}.relation-type-options input,.relation-target-option input{accent-color:#426f58;margin:2px 0 0}.relation-type-options span,.relation-target-option span{min-width:0}.relation-type-options strong,.relation-target-option strong{color:#3b4941;font-size:10px;display:block}.relation-type-options small,.relation-target-option small{color:#7f8882;overflow-wrap:anywhere;margin-top:3px;font-size:9px;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:#8b938d;text-align:center;padding:18px 8px;font-size:10px}.relation-composer-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 20px;padding-top:15px;display:grid}.relation-rule{color:#69736c;font-size:10px;line-height:1.45}.relation-validation{color:#98483f;grid-column:1;font-size:10px}.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 #e3e6e2;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:#3f8b64;border-radius:50%;width:7px;height:7px}.provider-row i.disconnected{background:#aeb5af}.provider-row strong,.subscription-row strong{font-size:12px;display:block}.provider-row span,.subscription-row span{color:#7a837c;font-size:11px}.provider-row .provider-state{color:#6d7770;font-size:10px;font-weight:620}.connections-view{padding-top:24px}.connection-intro{max-width:760px}.connection-intro h3{font-size:18px}.connection-intro p{color:#6d7770;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{background:#fff;border:1px solid #cfd7d1;border-radius:8px;min-width:0;padding:18px}.service-connection-card[data-status=ready]{border-color:#b8cbbf}.service-connection-card[data-status=error]{border-color:#dcc3bf}.service-connection-card>header{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;display:grid}.service-connection-card>header .eyebrow{margin-bottom:2px;font-size:8px}.service-connection-card>header h3{color:#2f3c35;font-size:15px}.service-connection-icon{color:#426652;background:#f5f8f6;border:1px solid #d4ddd7;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.service-connection-icon.public{color:#4f6875;background:#f6f8f9;border-color:#d6dde1}.service-state{color:#66716a;align-items:center;gap:6px;font-size:10px;font-weight:650;display:inline-flex}.service-state:before{content:"";background:#aeb5af;border-radius:50%;width:6px;height:6px}.service-connection-card[data-status=ready] .service-state{color:#3c654f}.service-connection-card[data-status=ready] .service-state:before{background:#3f8b64}.service-connection-card[data-status=error] .service-state{color:#8b4b44}.service-connection-card[data-status=error] .service-state:before{background:#b94e45}.service-connection-card>p{color:#69736c;min-height:38px;margin-top:15px;font-size:11px;line-height:1.55}.service-connection-card dl{border-top:1px solid #e4e8e4;margin:14px 0 0}.service-connection-card dl>div{border-bottom:1px solid #edf0ed;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:#8a928c;font-size:9px}.service-connection-card dd{color:#4d5851;overflow-wrap:anywhere;margin:0;font-size:10px}.connection-subscriptions{border-top:1px solid #d9dfda;margin-top:24px;padding-top:16px}.connection-subscriptions .section-title{margin-bottom:10px}.connection-subscriptions .section-title p{color:#7b847e;margin-top:4px;font-size:10px}.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:8px;font-weight:750;display:inline-flex}.feature-badge.beta{color:#8a5b15;background:#fff8e8;border:1px solid #dfbd82}.external-knowledge-section,.conflict-policy-section{border-top:1px solid #d9dfda;margin-top:14px;padding-top:12px}.section-title-with-help{align-items:center;gap:7px;display:flex}.section-help-link{color:#627168;background:#fff;border:1px solid #cbd4ce;border-radius:50%;flex:none;place-items:center;width:17px;height:17px;font-size:10px;font-weight:750;line-height:1;text-decoration:none;display:inline-grid}.section-help-link:hover{color:#365744;background:#f6f9f7;border-color:#81958a}.section-help-link:focus-visible{outline-offset:2px;outline:2px solid #91a398}.external-binding-count{color:#8a928c;font-size:9px;font-weight:620}.external-binding-list{margin-top:10px;display:grid}.external-binding-row{border-bottom:1px solid #e3e6e2;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:55px;display:grid}.external-binding-row>i{background:#3f8b64;border-radius:50%;width:7px;height:7px}.external-binding-row[data-status=error]>i{background:#b94e45}.external-binding-row strong{color:#354139;font-size:12px;display:block}.external-binding-row span,.external-binding-row small{color:#7a837c;margin-top:2px;font-size:9px;display:block}.external-binding-row small{color:#985149}.external-binding-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.quiet-button.danger{color:#914b44}.compact-empty{color:#858d87;padding:18px 0;font-size:11px}.external-binding-form{background:#fafbfa;border:1px solid #dce2dd;border-radius:8px;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{color:#68726b;gap:5px;min-width:0;font-size:9px;display:grid}.external-binding-form input,.external-binding-form textarea,.external-binding-form .searchable-select,.conflict-policy-controls .searchable-select{width:100%;min-width:0}.external-binding-form input,.external-binding-form textarea,.external-binding-form .searchable-select-trigger,.conflict-policy-controls .searchable-select-trigger{color:#354139;background:#fff;border:1px solid #cfd7d1;border-radius:6px;width:100%;min-width:0;padding:7px 8px;font-size:11px}.external-binding-form textarea{resize:vertical}.external-binding-form .wide-field{grid-column:span 3}.trusted-code-badge{color:#765718;background:#fff9ea;border:1px solid #dbc58f;border-radius:5px;width:fit-content;padding:5px 7px;font-size:9px}.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 #dce1dc;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:#7a837d;background:0 0;border:0;padding:0 1px;font-size:12px;font-weight:620;position:relative}.knowledge-mode-switch button[aria-selected=true]{color:#2f4d3d}.knowledge-mode-switch button[aria-selected=true]:after{content:"";background:#3f6b55;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}#graph-count.search-active{color:#8a5b16;font-weight:650}.graph-toolbar{flex-wrap:wrap;align-items:center;gap:8px 10px;min-height:48px;padding:8px 0;display:flex}select,input,textarea{color:#303632;background:#fff;border:1px solid #cfd5cf;border-radius:7px;outline:none;padding:7px 9px;font-size:12px}textarea{resize:vertical;line-height:1.5}select:focus,input:focus,textarea:focus{border-color:#6f8577;box-shadow:0 0 0 2px #54715f1a}.searchable-select{color:#303632;vertical-align:middle;min-width:128px;font-size:11px;display:inline-block;position:relative}.searchable-select-native{display:none!important}.searchable-select-trigger{color:#39433d;text-align:left;background:#fff;border:1px solid #cfd5cf;border-radius:7px;grid-template-columns:minmax(0,1fr) 12px;align-items:center;gap:8px;width:100%;min-height:32px;padding:6px 9px;display:grid}.searchable-select-trigger:hover{background:#fcfdfc;border-color:#a9b4ac}.searchable-select-trigger:focus-visible{border-color:#6f8577;outline:0;box-shadow:0 0 0 2px #54715f1f}.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:#8a938d;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-weight:520;overflow:hidden}.searchable-select-arrow{border-bottom:1.5px solid #7d8881;border-right:1.5px solid #7d8881;justify-self:end;width:7px;height:7px;transition:transform .14s;transform:translateY(-2px)rotate(45deg)}.searchable-select.open .searchable-select-arrow{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;background:#fff;border:1px solid #d4dad5;border-radius:9px;width:max(100%,268px);padding:7px;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 14px 36px #23302824}.searchable-select.open-up .searchable-select-panel{top:auto;bottom:calc(100% + 5px)}.searchable-select-search{padding:2px 2px 7px}.searchable-select-search input{background:#f7f9f7;border-color:#dbe0dc;width:100%;height:31px;padding:6px 8px;font-size:10px}.searchable-select-options{overscroll-behavior:contain;gap:2px;max-height:228px;display:grid;overflow:auto}.searchable-select-option{color:#455149;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 8px;display:grid}.searchable-select-option:hover,.searchable-select-option:focus-visible{background:#f2f6f3;outline:0}.searchable-select-option[aria-selected=true]{color:#2f5541;background:#edf4ef}.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:10px;font-weight:620;overflow:hidden}.searchable-select-option-copy small{color:#8a938d;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;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:#47705a}.searchable-select-empty{color:#8a938d;text-align:center;padding:20px 8px;font-size:10px}.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{color:#4e5d54;cursor:pointer;background:#fff;border:1px solid #cfd5cf;border-radius:7px;align-items:center;gap:8px;min-height:32px;padding:6px 9px;font-size:10px;list-style:none;display:flex}.personal-context-picker>summary::-webkit-details-marker{display:none}.personal-context-picker>summary span{color:#7e8982}.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;background:#fff;border:1px solid #d7ddd8;border-radius:8px;width:286px;padding:13px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #2330281a}.personal-context-panel>strong{color:#34483d;font-size:11px}.personal-context-panel>p{color:#7b847e;margin-top:4px;font-size:9px;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:#f3f6f4}.personal-context-option input{margin:0}.personal-context-option span{gap:2px;display:grid}.personal-context-option strong{color:#3f4d45;font-size:10px}.personal-context-option small{color:#879088;font-size:9px}.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 #dfe3de;align-items:center;gap:3px;margin-left:auto;padding-left:4px;display:flex}.graph-controls{gap:3px;display:flex}.toolbar-action{color:#566059;background:0 0;border:1px solid #0000;border-radius:6px;min-width:31px;height:31px;padding:0 8px;font-size:12px}.toolbar-action:hover{color:#253d32;background:#fff;border-color:#d2d8d2}.toolbar-action:focus-visible{outline-offset:1px;outline:2px solid #3f6b5547}.knowledge-layout{isolation:isolate;background:#fbfcfa;border:1px solid #cfd7d1;border-radius:8px;flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;min-height:0;display:grid;overflow:hidden}.knowledge-directory-panel{background:#fff;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden;container:knowledge-directory/inline-size}.directory-kind-tabs{z-index:4;background:#fafbf9f7;border-bottom:1px solid #dfe4df;align-items:stretch;gap:22px;min-height:44px;padding:0 16px;display:flex;position:sticky;top:0}.directory-kind-tab{color:#737d76;background:0 0;border:0;align-items:center;gap:7px;min-width:0;padding:0 1px;font-size:11px;font-weight:620;display:inline-flex;position:relative}.directory-kind-tab:hover{color:#365543}.directory-kind-tab:focus-visible{outline-offset:-2px;outline:2px solid #3f6b5547}.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:#294838}.directory-kind-tab[aria-selected=true]:after{background:#52725f}.directory-kind-tab small{color:#78827b;text-align:center;background:#edf0ed;border-radius:999px;min-width:20px;padding:1px 6px;font-size:9px;font-weight:650}.directory-kind-tab[aria-selected=true] small{color:#3b604b;background:#e5eee8}.directory-tab-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.directory-section-heading{background:#f7f8f6;border-bottom:1px solid #e0e4e0;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:#34453b;font-size:11px;font-weight:680}.directory-section-copy span,.directory-section-count{color:#838c85;font-size:9px;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{background:#eef1ee;border:1px solid #dce2dd;border-radius:7px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.knowledge-status-option{color:#707a73;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;height:24px;padding:0 7px;font-size:9px;font-weight:640;display:inline-flex}.knowledge-status-option:hover{color:#395545;background:#ffffffb8}.knowledge-status-option:focus-visible{outline-offset:1px;outline:2px solid #3f6b5547}.knowledge-status-option[aria-pressed=true]{color:#355844;background:#fff;border-color:#cbd7cf}.knowledge-status-option[data-status=historical][aria-pressed=true]{color:#78594f;background:#fbf5f3;border-color:#e1cec8}.knowledge-status-option span{min-width:16px;color:inherit;text-align:center;background:#4f695914;border-radius:999px;padding:0 4px;font-size:8px;line-height:16px}.knowledge-directory-virtual-list,.project-material-virtual-list{flex:1;min-width:0;min-height:0}.project-material-row{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;grid-template-columns:minmax(0,1fr) minmax(94px,118px) auto;align-items:center;gap:16px;width:100%;height:100%;padding:10px 16px;display:grid}.project-material-row:hover{background:#f8faf8}.project-material-row.selected{background:#f1f6f3;box-shadow:inset 0 0 0 1px #9fb5a8}.project-material-copy{gap:4px;min-width:0;display:grid}.project-material-copy strong{color:#2f3933;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:630;overflow:hidden}.project-material-copy small{color:#79827c;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.4;overflow:hidden}.project-material-type{color:#4b6858;font-size:10px;font-weight:620}.project-material-link{color:#52705f;text-align:right;font-size:9px;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{color:#8b938d;letter-spacing:.05em;background:#f7f8f6;border-bottom:1px solid #e0e4e0;padding:10px 16px;font-size:9px;font-weight:680}.knowledge-row{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;height:100%;padding:11px 16px;font-size:10px}.knowledge-table-head>span,.knowledge-row>span{min-width:0}.knowledge-row:hover{background:#f8faf8}.knowledge-row.selected{background:#f1f6f3;box-shadow:inset 0 0 0 1px #9fb5a8}.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{color:#2f3933;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:630;overflow:hidden}.human-change-badge{color:#765126;white-space:nowrap;background:#fff1d9;border-radius:999px;flex:none;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700}.human-change-badge.state-viewed{color:#4f6076;background:#eaf0f7}.knowledge-row-content small{color:#79827c;text-overflow:ellipsis;white-space:nowrap;font-size:10px;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:#4b6858;font-weight:620}.knowledge-row-source,.knowledge-row-time{color:#7d867f}.knowledge-row-quadrant{color:#59655e;white-space:nowrap;background:#f0f2ef;border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650}.knowledge-row-quadrant.known_known{color:#356047;background:#edf6f0}.knowledge-row-quadrant.known_unknown{color:#77602f;background:#f7f2e5}.knowledge-row-quadrant.unknown_known{color:#4d5f78;background:#eef2f7}.knowledge-row-quadrant.unknown_unknown{color:#725d70;background:#f5eff4}.knowledge-row-quadrant.unclassified{color:#666e68;background:#eff1ef}.knowledge-review-state{color:#59655e;white-space:nowrap;background:#f0f2ef;border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650}.knowledge-review-state.state-confirmed{color:#356047;background:#edf6f0}.knowledge-review-state.state-agent_confirmed{color:#4d5f78;background:#eef2f7}.knowledge-review-state.state-pending,.knowledge-review-state.state-needs_review{color:#77602f;background:#f7f2e5}.knowledge-review-state.state-exploratory{color:#725d70;background:#f5eff4}.knowledge-review-state.state-unclassified{color:#666e68;background:#eff1ef}.knowledge-status{border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650}.knowledge-status.current{color:#356047;background:#edf6f0}.knowledge-status.historical{color:#80645d;background:#f7efed}@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,.knowledge-row{grid-template-columns:minmax(160px,1fr) 92px 58px}.knowledge-column-quadrant,.knowledge-row-quadrant{display:none}}.graph-inspector{overscroll-behavior:contain;background:#fff;border-left:1px solid #d7ddd8;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:#737c75;font-size:12px;line-height:1.55}.inspector-classification{background:#f7f9f7;border:1px solid #dbe1dc;border-radius:7px;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:#7f8982;font-size:9px;font-weight:650}.inspector-classification strong{color:#40574a;font-size:11px}.inspector-classification p{color:#68726b;font-size:10px;line-height:1.55}.inspector-classification.state-pending,.inspector-classification.state-needs_review{background:#faf8f1;border-color:#e2d7bd}.inspector-classification.state-pending strong,.inspector-classification.state-needs_review strong{color:#755d2e}.inspector-classification.state-exploratory{background:#f8f5f8;border-color:#ddd3dc}.inspector-classification.state-exploratory strong{color:#6f596c}.inspector-classification.state-unclassified{background:#f5f6f5;border-color:#d9ddda}.inspector-classification.state-unclassified strong{color:#626b65}.inspector-human-change{background:#fff9ee;border:1px solid #e2d3b8;border-radius:7px;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:#8b7a61;font-size:9px;font-weight:650}.inspector-human-change strong{color:#765126;font-size:11px}.inspector-human-change p{color:#766b5b;font-size:10px;line-height:1.55}.inspector-human-change.state-viewed{background:#f5f8fb;border-color:#d3dce7}.inspector-human-change.state-viewed strong{color:#4f6076}.inspector-human-change.state-reviewed{background:#f6f9f7;border-color:#d8e2db}.inspector-human-change.state-reviewed strong{color:#456451}.inspector-replacement{background:#fbf9f3;border:1px solid #dfd7c5;border-radius:7px;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:#8a806b;font-size:9px;font-weight:650}.inspector-replacement-heading strong{color:#695934;font-size:11px}.inspector-replacement>p{color:#766f60;font-size:10px;line-height:1.55}.inspector-replacement-link{width:100%;color:inherit;text-align:left;background:#fff;border:1px solid #d7ded8;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid}.inspector-replacement-link:hover{background:#f6f9f7;border-color:#9fb2a5}.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:#3d4d44;font-size:10px}.inspector-replacement-link small{color:#7d8780;font-size:9px}.inspector-replacement-link b{color:#446b57;white-space:nowrap;font-size:9px;font-weight:680}.inspector-project-material{background:#f4f8f5;border:1px solid #cfdcd4;border-radius:7px;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:#7b8980;font-size:9px;font-weight:650}.inspector-project-material strong{color:#3f5e4d;font-size:11px}.inspector-project-material p{color:#657269;font-size:10px;line-height:1.55}.inspector-identity{background:#f3f6f3;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:#7f8982;font-size:8px;font-weight:650}.inspector-identity code{color:#4e5c54;overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;line-height:1.35}.inspector-identity-copy{color:#4a6b59;background:0 0;border:0;padding:2px 4px;font-size:8px}.inspector-identity-copy:hover{color:#274a38;text-decoration:underline}.inspector-identity-copy:focus-visible{outline-offset:2px;outline:1px solid #799284}.inspector-meta{gap:8px;margin-top:18px;display:grid}.inspector-meta div{border-top:1px solid #e6e8e5;padding-top:8px}.inspector-meta dt{color:#8a928c;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.inspector-meta dd{overflow-wrap:anywhere;margin:3px 0 0;font-size:12px}.inspector-attributes{margin-top:0}.inspector-subtitle{color:#5d665f;margin:20px 0 7px;font-size:11px;font-weight:650}.inspector-reasoning{color:#626c65;white-space:pre-wrap;font-size:11px;line-height:1.6}.inspector-relations{display:grid}.inspector-relation{border-top:1px solid #edf0ec;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;padding:10px 0;font-size:10px;display:grid}.relation-type{color:#4f6d5d;letter-spacing:.035em;overflow-wrap:anywhere;font-size:9px;font-weight:700;line-height:1.4}.relation-target{color:#737c75;overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.55}.inspector-evidence{gap:7px;display:grid}.evidence-card{background:#fafbf9;border:1px solid #e0e5e1;border-radius:7px;padding:10px}.evidence-card strong{color:#3c4b43;font-size:11px;display:block}.evidence-card p{color:#68726b;margin-top:4px;font-size:10px;line-height:1.5}.evidence-card span{color:#909791;margin-top:6px;font-size:9px;display:block}.evidence-card .evidence-excerpt{color:#59635d;white-space:pre-wrap;background:#f1f4f1;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:#446755;background:0 0;border:0;margin:0;padding:0;font-size:10px;font-weight:650;text-decoration:none;display:inline-flex}.evidence-source-action:hover{color:#294c3a;text-decoration:underline}.evidence-source-action:disabled{color:#a3aaa5;cursor:not-allowed;text-decoration:none}.conflict-title{color:#806338}.suspected-conflicts .history-row strong{color:#775b31}.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 #e8ebe8;padding:9px 0}.history-row strong{color:#435149;font-size:10px}.history-row p{color:#68726b;margin-top:3px;font-size:10px;line-height:1.45}.history-row span{color:#929993;margin-top:4px;font-size:9px;display:block}.history-row small{color:#77827a;margin-top:4px;font-size:9px;display:block}.section-toolbar{border-bottom:1px solid #dfe3de;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 #e0e3df;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:#677069;font-size:12px;line-height:1.55}.review-stage{color:#607068;letter-spacing:.08em;text-transform:uppercase;width:fit-content;margin-bottom:7px;font-size:9px;font-weight:700}.review-meta{color:#89908b;gap:12px;margin-top:9px;font-size:10px;display:flex}.review-actions{align-items:center;gap:7px;display:flex}.review-actions button{border-radius:7px;padding:7px 11px;font-size:12px}.approve{color:#fff;background:#3f6b55;border:1px solid #335e49}.reject{color:#666e68;background:#fff;border:1px solid #d0d5d0}.stacked-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;max-width:240px}.episode-details{margin-top:13px}.episode-body{background:#fafbfa;border:1px solid #e2e6e2;border-radius:7px;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:#89918b;font-size:9px}.episode-meta dd{color:#555f58;overflow-wrap:anywhere;margin:2px 0 0;font-size:10px}.episode-section{gap:5px;display:grid}.episode-section>strong{color:#5b655e;font-size:10px}.episode-record{border-top:1px solid #e7eae7;grid-template-columns:auto minmax(100px,.6fr) minmax(0,1fr);align-items:start;gap:7px;padding:6px 0;font-size:10px;display:grid}.episode-record small{color:#7a837c;overflow-wrap:anywhere;line-height:1.45}.empty-state{text-align:center;color:#858d87;padding:40px 0;font-size:13px}.connections-grid{align-items:start}.subscription-form{border-top:1px solid #dfe3de;gap:7px;margin-top:18px;padding-top:14px;display:flex}.subscription-form .searchable-select{flex:1}.muted{color:#7a837c;font-size:12px}.publish-dialog{color:#27312b;background:#fff;border:0;border-radius:12px;width:min(500px,100vw - 32px);padding:0;box-shadow:0 24px 70px #18221c3d}.publish-dialog::backdrop{background:#1c221e6b}.publish-dialog-shell{padding:24px}.publish-dialog h3{margin:0;font-size:20px}.publish-dialog-intro{color:#69736c;gap:4px;margin-top:13px;font-size:12px;line-height:1.55;display:grid}.publish-dialog-intro strong{color:#334039;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:#46534c;font-size:11px;font-weight:650}.publish-release-fields small{color:#89918b;font-size:9px}.publish-impact{border-top:1px solid #e2e6e2;border-bottom:1px solid #e2e6e2;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 #eceeec}.publish-impact strong{color:#34453c;font-size:11px}.publish-impact span{color:#6f7872;font-size:11px;line-height:1.5}.publish-dialog-error{color:#99483f;margin-top:12px;font-size:11px}.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{color:#27312b;background:#fff;border:0;border-radius:12px;width:min(900px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;overflow:hidden;box-shadow:0 24px 70px #18221c3d}.project-dialog::backdrop{background:#1c221e6b}.project-dialog-shell{box-sizing:border-box;max-height:calc(100vh - 48px);padding:24px;overflow:auto}.project-dialog-header{border-bottom:1px solid #e1e5e2;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:#737d76;margin-top:5px;font-size:11px;line-height:1.5}.project-dialog-header>button{flex:none}.project-latest-release{border-bottom:1px solid #e3e6e3;padding:18px 0}.project-latest-release h4,.project-detail-section-heading h4,.danger-zone h4{color:#344239;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:#345a46;font-size:14px}.release-copy p{color:#59645d;font-size:11px;line-height:1.5}.release-copy small{color:#858e87;font-size:9px}.project-detail-columns{grid-template-columns:1fr 1fr;gap:24px;padding:20px 0;display:grid}.project-detail-columns>section+section{border-left:1px solid #e3e6e3;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 #e8ebe8;grid-template-columns:72px minmax(0,1fr);gap:3px 10px;padding:11px 0;display:grid}.project-release-item strong{color:#3e5c4c;grid-row:1/span 2;font-size:10px}.project-release-item p{color:#59635c;font-size:10px;line-height:1.45}.project-release-item small{color:#89918b;font-size:9px}.project-detail-relation{border-top:1px solid #e8ebe8;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:10px}.project-detail-relation small{color:#879088;grid-column:2;font-size:9px}.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 #e2e6e2;justify-content:space-between;align-items:center;gap:20px;padding-top:16px;display:flex}.project-dialog-actions span{color:#89918b;font-size:9px}.management-summary{border-bottom:1px solid #e2e6e2;grid-template-columns:repeat(3,1fr);display:grid}.management-summary div{padding:18px 16px}.management-summary div+div{border-left:1px solid #e4e7e4}.management-summary span,.management-summary strong{display:block}.management-summary span{color:#89918b;font-size:9px}.management-summary strong{color:#3c4a42;margin-top:4px;font-size:12px}.danger-zone{background:#fcf8f7;border:1px solid #e5cfcc;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:22px;padding:18px;display:grid}.danger-zone p{color:#7d6966;margin-top:5px;font-size:10px;line-height:1.5}.delete-confirmation{border-top:1px solid #ead8d5;grid-column:1/-1;padding-top:16px}.delete-confirmation label{color:#6f5c59;gap:6px;font-size:10px;display:grid}.delete-confirmation>p{color:#99483f}.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 #e1e5e2;padding-left:28px}.knowledge-edit-columns h4{color:#344239;margin:0 0 6px;font-size:13px}.knowledge-edit-columns section>p{color:#78817b;font-size:10px;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:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.knowledge-editor-form .knowledge-classification-warning{color:#755f35;background:#faf8f1;border:1px solid #e3d8bf;border-radius:7px;padding:9px 10px;font-size:10px;line-height:1.5}.knowledge-confirmation-fields{background:#f9faf9;border:1px solid #dfe4e0;border-radius:8px;gap:11px;margin:0;padding:13px;display:grid}.knowledge-confirmation-fields legend{color:#45534a;padding:0 5px;font-size:10px;font-weight:680}.knowledge-confirmation-fields .knowledge-taxonomy-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-confirmation-fields>p{color:#7c857f;font-size:9px;line-height:1.5}.knowledge-replacement-fields{background:#fbfaf6;border:1px solid #e3dccb;border-radius:8px;gap:10px;margin:0;padding:13px;display:grid}.knowledge-replacement-fields legend{color:#5e553f;padding:0 5px;font-size:10px;font-weight:680}.knowledge-replacement-fields>p{color:#837b69;font-size:9px;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 #e3e6e3;padding-bottom:16px}.knowledge-project-source span,.knowledge-project-preview span{color:#89918b;letter-spacing:.08em;font-size:9px;font-weight:700;display:block}.knowledge-project-source strong{color:#34443b;margin-top:5px;font-size:15px;display:block}.knowledge-project-source p{color:#6e7871;margin-top:4px;font-size:11px;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:#5c665f;grid-column:1/-1;margin-bottom:4px;font-size:10px;font-weight:650}.knowledge-project-mode label{cursor:pointer;background:#fff;border:1px solid #d7ddd8;border-radius:8px;align-items:flex-start;gap:9px;padding:11px;display:flex}.knowledge-project-mode label:has(input:checked){background:#f5f8f6;border-color:#789487}.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:#3c4942;font-size:11px}.knowledge-project-mode small,.toggle-row small,.knowledge-project-fields small{color:#858e87;font-size:9px;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:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.knowledge-project-fields .full-width{grid-column:1/-1}.knowledge-project-relation{border-top:1px solid #e5e8e5;border-bottom:1px solid #e5e8e5;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{background:#fafbfa;border:1px solid #dce2dd;border-radius:8px;padding:14px}.knowledge-project-preview>div:first-child>strong{color:#34463c;margin-top:4px;font-size:12px;display:block}.knowledge-project-preview>div:first-child>p{color:#6d7770;margin-top:4px;font-size:10px;line-height:1.5}.knowledge-project-compare{background:#e1e5e2;border:1px solid #e1e5e2;grid-template-columns:1fr 1fr;gap:1px;margin-top:13px;display:grid}.knowledge-project-compare article{background:#fff;min-width:0;padding:11px}.knowledge-project-compare strong{color:#3f4b44;margin-top:4px;font-size:10px;display:block}.knowledge-project-compare p{color:#6e7771;white-space:pre-wrap;margin-top:4px;font-size:9px;line-height:1.5}.knowledge-project-conflict-options{border:0;border-top:1px solid #e5ddd4;gap:7px;margin:14px 0 0;padding:12px 0 0;display:grid}.knowledge-project-conflict-options label{color:#625b50;font-size:10px}.knowledge-project-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.knowledge-project-actions button{min-width:96px}.project-profile-dialog{color:#27312b;background:#fff;border:0;border-radius:12px;width:min(820px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;overflow:hidden;box-shadow:0 24px 70px #18221c3d}.project-profile-dialog::backdrop{background:#1c221e6b}.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 #e1e5e2;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:#737d76;margin-top:5px;font-size:11px;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:#5f6962;align-content:start;gap:6px;font-size:10px;font-weight:600;display:grid}.project-profile-fields small{color:#858e87;font-size:9px;font-weight:500}.project-profile-wide-field{grid-column:1/-1}.project-source-editor{border-top:1px solid #e2e6e2;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:#344239;margin:0;font-size:13px}.project-source-editor-heading p{color:#78817b;margin-top:4px;font-size:10px;line-height:1.5}.project-source-list{gap:9px;margin-top:14px;display:grid}.project-source-row{background:#fafbfa;border:1px solid #dfe4e0;border-radius:8px;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{color:#8b554e;background:0 0;border:0;min-height:32px;padding:6px 9px;font-size:10px}.project-source-remove:hover{color:#713b35;text-decoration:underline}.project-source-empty{color:#858e87;margin-top:13px;font-size:10px}.project-profile-state-note{color:#68736b;background:#f7f9f7;border:1px solid #dce2dd;border-radius:7px;padding:11px 12px;font-size:10px;line-height:1.55}.project-profile-error{color:#99483f;margin-top:11px;font-size:11px}.project-profile-dialog-actions{border-top:1px solid #e2e6e2;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){body{min-width:920px}.app-shell{grid-template-columns:210px 1fr}.two-column{grid-template-columns:1fr}.overview-summary-card{padding-inline:18px}.relation-builder{grid-template-columns:1fr 1.6fr}.relation-target-step{border-top:1px solid #e4e8e4;border-left:0;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}}.mobile-nav-toggle,.mobile-nav-close{display:none}@media (width<=720px){.overview-summary{grid-template-columns:minmax(0,1fr)}.overview-summary-card{border-bottom:1px solid #e5e8e5;border-right:0;min-height:140px}.overview-summary-card:last-child{border-bottom:0}.overview-summary-name{white-space:normal;overflow-wrap:anywhere}.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}.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-top:1px solid #dce4df;border-left:0;min-width:0;min-height:0}.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){body{min-width:0}.app-shell{flex-direction:column;width:100%;height:100dvh;display:flex}.sidebar{z-index:40;border-right:1px solid #dce0db;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:#1b261f47;border:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}.sidebar.is-mobile-open{display:flex}.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}.mobile-nav-toggle{flex:none;align-items:center;gap:7px;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:180px}.topbar-description{text-overflow:clip;white-space:normal;max-width:none;overflow:visible}.topbar-actions{justify-content:flex-end;gap:8px;width:100%}.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-targets{flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;display:flex}.external-binding-row .external-binding-targets b{color:#6d7871;font-size:9px;font-weight:650}.external-binding-row .external-binding-target-chip{color:#486151;background:#f5f8f6;border:1px solid #d8e1da;border-radius:999px;align-items:center;width:fit-content;margin:0;padding:3px 7px;font-size:8px;font-weight:620;display:inline-flex}.external-binding-row .external-binding-target-chip[data-status=error]{color:#8f4c46;background:#fbf6f5;border-color:#e1ccca}.external-binding-editor{background:#fafbfa;border:1px solid #dce2dd;border-radius:8px;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{color:#68726b;grid-area:1/1/auto/4;gap:5px;min-width:0;font-size:9px;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{background:#fff;border:1px solid #e1e6e2;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{color:#56635b;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:10px;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{appearance:none;color:#fff;letter-spacing:.01em;background:#426f58;border:1px solid #3e6b54;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-width:112px;min-height:36px;padding:8px 14px;font-size:11px;font-weight:720;transition:background-color .16s;display:inline-flex}.external-create-action-icon{color:#fff;border:1px solid #ffffffb8;border-radius:50%;flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;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)}.external-create-action:hover{background:#365f4a}.external-create-action:active{background:#2f533f}.external-create-action:focus-visible{outline-offset:2px;outline:2px solid #91a398}.external-create-action:disabled{cursor:wait;opacity:.58}@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-editor{grid-template-columns:minmax(0,1fr);padding:12px}.external-target-mode-row{grid-template-columns:minmax(0,1fr);gap:6px}}.graph-stage{background:#f9faf8;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;background:#fff;border-right:1px solid #dbe1dc;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:#7e8881;letter-spacing:.1em;grid-column:1/-1;font-size:8px;font-weight:720}.project-hierarchy-aside header>strong{color:#30483a;font-size:15px;font-weight:680}.project-hierarchy-aside header>small{color:#60756a;background:#edf2ee;border-radius:999px;padding:2px 6px;font-size:8px;font-weight:680}.project-hierarchy-aside>p{color:#79837c;margin-top:7px;font-size:9px;line-height:1.5}.project-hierarchy-aside nav{border-top:1px solid #e4e8e5;margin-top:14px;display:grid}.project-parent-link{min-width:0;color:inherit;border-bottom:1px solid #e8ece9;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:#f7f9f7}.project-parent-link:focus-visible{outline-offset:2px;outline:2px solid #3f6b5547}.project-parent-icon{color:#466c58;background:#edf3ef;border-radius:7px;place-items:center;width:32px;height:32px;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:#7e8982;font-size:8px}.project-parent-link strong{color:#34483d;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:680;overflow:hidden}.project-parent-link em{color:#6f7a73;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-style:normal;overflow:hidden}.project-parent-link b{color:#54705f;font-size:11px;font-weight:680}.graph-relation-legend{z-index:4;position:absolute;top:12px;left:12px}.graph-relation-legend>summary{color:#536159;cursor:pointer;background:#fffffff2;border:1px solid #d8ded9;border-radius:7px;grid-template-columns:15px auto auto 8px;align-items:center;gap:6px;min-height:30px;padding:5px 8px;font-size:9px;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:#557161;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.graph-relation-legend>summary small{color:#68776e;text-align:center;background:#edf1ee;border-radius:999px;justify-self:end;width:fit-content;min-width:17px;padding:1px 5px;font-size:8px}.graph-relation-legend>summary i{border-bottom:1.3px solid #7d8881;border-right:1.3px solid #7d8881;width:6px;height:6px;transform:translateY(-2px)rotate(45deg)}.graph-relation-legend[open]>summary i{transform:translateY(2px)rotate(225deg)}.graph-relation-legend-panel{background:#fffffffa;border:1px solid #d8ded9;border-radius:8px;width:250px;margin-top:6px;padding:12px;box-shadow:0 12px 30px #23302821}.graph-relation-legend-panel header{gap:2px;padding-bottom:9px;display:grid}.graph-relation-legend-panel header strong{color:#34473c;font-size:11px}.graph-relation-legend-panel header span{color:#818b84;font-size:8px}.graph-relation-legend-panel ul{border-top:1px solid #e5e9e6;max-height:300px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.graph-relation-legend-panel li{border-bottom:1px solid #edf0ed;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{color:#54705f;background:#f0f4f1;border-radius:7px;width:28px;height:28px;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:#3d4c43;font-size:10px}.graph-relation-legend-panel li small{color:#7b857e;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.graph-search-legend{z-index:2;color:#765019;pointer-events:none;background:#fffcf4f0;border:1px solid #e1c997;border-radius:6px;align-items:center;gap:7px;padding:7px 9px;font-size:10px;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:#bd7416;border-radius:50%;width:8px;height:8px}.graph-search-status{z-index:3;box-sizing:border-box;color:#354139;background:#fffffff7;border:1px solid #d8ded9;border-radius:9px;width:min(440px,100% - 36px);padding:15px 16px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #2b383021}.graph-search-status[hidden]{display:none}.graph-search-status-kicker{color:#875b1c;letter-spacing:.08em;margin-bottom:5px;font-size:9px;font-weight:720;display:block}.graph-search-status-title{font-size:14px;font-weight:680;display:block}.graph-search-status-copy{color:#6b756e;margin-top:5px;font-size:10px;line-height:1.55}.graph-search-suggestions{gap:5px;margin-top:11px;display:grid}.graph-search-suggestion{color:inherit;background:#f8faf8;border:1px solid #e0e5e1;border-radius:6px;justify-content:space-between;align-items:center;gap:18px;padding:8px 9px;text-decoration:none;display:flex}.graph-search-suggestion:hover{background:#f3f7f4;border-color:#a8b9ae}.graph-search-suggestion>span{gap:2px;min-width:0;display:grid}.graph-search-suggestion strong{color:#3b4941;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.graph-search-suggestion small{color:#859088;font-size:9px}.graph-search-suggestion b{color:#446b57;flex:none;font-size:10px;font-weight:680}.graph-empty{color:#858d87;pointer-events:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.graph-hint{color:#88908a;text-align:right;margin-top:8px;font-size:10px}.graph-edge{stroke:#b5beb7;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:#c48738;stroke-width:2.2px;stroke-dasharray:4 3;opacity:.9}.graph-edge.human-change-viewed{stroke:#6f8299}.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:#dce2dd;stroke-width:.8px;transition:fill .12s,stroke .12s}.graph-edge-label-icon{fill:none;stroke:#6e7d74;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .12s}.graph-edge-label-text{fill:#66736b;pointer-events:none;font-size:8.5px;font-weight:650;transition:fill .12s}.graph-arrow{fill:#aeb8b0}.graph-node{cursor:move;outline:none;transition:opacity .12s}.graph-node-human-marker{fill:#d18a30;stroke:#fff;stroke-width:1.5px;pointer-events:none}.graph-node.human-change-viewed .graph-node-human-marker{fill:#70849b}.graph-node-shape{stroke:#fff;stroke-width:2.5px;filter:drop-shadow(0 1px 2px #1c2a2126);transition:stroke .12s,stroke-width .12s,opacity .12s}.graph-project-ring{fill:#f7faf8;stroke:#b9cbbf;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:#466c58;stroke:#fff;stroke-width:2.5px}.graph-project-icon{fill:none;stroke:#fff;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.graph-node-label{fill:#3b443e;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#f9faf8;stroke-width:3px;stroke-linejoin:round;font-size:10px;font-weight:540}.graph-node-id{fill:#7f8982;letter-spacing:.02em;text-anchor:middle;pointer-events:none;opacity:0;paint-order:stroke;stroke:#f9faf8;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:#fff8e8;stroke:#bd7416;stroke-width:1px}.graph-search-badge text{fill:#855916;text-anchor:middle;paint-order:stroke;stroke:#fff8e8;stroke-width:1px;font-size:8px;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:#334d42;stroke-width:3.5px}.graph-node:not(.project-node).related .graph-node-shape{stroke:#789282;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:#edf4ef;stroke:#315541;stroke-width:2.4px}.graph-node.project-node.related .graph-project-ring{stroke:#789282;stroke-width:2px}.graph-node:not(.project-node).search-match .graph-node-shape{stroke:#bd7416;stroke-width:5px;filter:drop-shadow(0 0 5px #bd74166b)}.graph-node.project-node.search-match .graph-project-ring{fill:#fff8e8;stroke:#bd7416;stroke-width:3px;filter:drop-shadow(0 0 5px #bd741652)}.graph-node.pinned .graph-node-shape{stroke:#658271;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:#6c8a79;stroke-width:2px;opacity:.9}.graph-edge.selected{stroke:#334d42;stroke-width:2.8px;opacity:1}.graph-edge.search-match{stroke:#bd7416;stroke-width:2.8px;opacity:1}.graph-edge-label.search-match{opacity:1}.graph-edge-label.search-match .graph-edge-label-bg{fill:#fff8e8;stroke:#d39a4e}.graph-edge-label.search-match .graph-edge-label-icon{stroke:#855916}.graph-edge-label.search-match .graph-edge-label-text{fill:#855916}.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:#f2f7f4;stroke:#9fb5a8}.graph-edge-label.related .graph-edge-label-icon,.graph-edge-label.selected .graph-edge-label-icon{stroke:#405f4f}.graph-edge-label.related .graph-edge-label-text,.graph-edge-label.selected .graph-edge-label-text{fill:#405f4f;font-weight:700}#app{height:100%}.primary-nav a{color:#505852;text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:24px 1fr auto;align-items:center;width:100%;padding:9px 10px;font-size:13px;text-decoration:none;display:grid;position:relative}.primary-nav a:hover{background:#e4e7e3}.primary-nav a:focus-visible{outline-offset:1px;outline:2px solid #91a398}.primary-nav a.is-active{color:#243b31;background:#dde4df;font-weight:650}.primary-nav a.space-nav-button{min-height:52px;padding-block:8px}.primary-nav a.personal-space-button.is-active{color:#254234;background:#dde7e1}.primary-nav a.public-space-button.is-active{color:#2c414d;background:#e0e6e9}.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:#aeb5af}.provider-row i.error{background:#b94e45}.provider-row i.ready{background:#3f8b64}.view-loading{color:#778079;place-items:center;min-height:240px;font-size:12px;display:grid}.inline-error{color:#8b3f38}.inspector-meta>div{min-width:0}.inspector-meta dd{overflow-wrap:anywhere}.inspector-placeholder{color:#7b847e;font-size:11px;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:#67716a;gap:5px;font-size:10px;display:grid}.compact-relation-form select{min-width:0}.compact-relation-form .searchable-select{width:100%;min-width:0}.compact-relation-preview{background:#f8faf8;border:1px solid #dfe5e0;border-radius:8px;grid-column:1/-1;gap:4px;padding:11px 12px;display:grid}.compact-relation-preview span{color:#7f8982;letter-spacing:.08em;font-size:9px;font-weight:700}.compact-relation-preview strong{color:#35483e;font-size:11px}.compact-relation-preview p{color:#717b74;font-size:10px;line-height:1.5}.project-delete-confirmation{color:#6f5c59;gap:7px;padding:18px 0;font-size:10px;display:grid}.project-delete-confirmation strong{color:#493c3a}.vue-dialog[open]{z-index:20;width:min(980px,100vw - 64px);max-height:calc(100vh - 64px);margin:auto;display:grid;position:fixed;inset:0}.knowledge-edit-dialog.vue-dialog{width:min(1080px,100vw - 64px)}.vue-dialog::backdrop{background:#171f1b59}@media (width<=1180px){.compact-relation-form{grid-template-columns:repeat(2,minmax(180px,1fr))}}.locale-switcher{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;align-items:center;gap:2px;padding:2px;display:inline-flex}.locale-switcher button{color:#6a746d;min-width:30px;min-height:26px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 7px;font-size:11px;font-weight:700}.locale-switcher button:hover{color:#2f5d49}.locale-switcher button[aria-pressed=true]{color:#2f5d49;background:#fff;box-shadow:0 1px 2px #20342a1f}
|