fuli-context 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/README.zh-CN.md +4 -1
- package/dist/web/assets/{AboutPage-BjMmpwJB.js → AboutPage-fBq5VFoQ.js} +1 -1
- package/dist/web/assets/AgentHand-CMZk5GjY.js +1 -0
- package/dist/web/assets/AgentName-Cydd0UI4.css +1 -0
- package/dist/web/assets/AgentName-DRZHAIB2.js +1 -0
- package/dist/web/assets/AgentProfilePage-BPQEfMhB.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-CKZfrcuD.js +1 -0
- package/dist/web/assets/{ConnectionsPage-BKGxFDos.js → ConnectionsPage-COb56qnk.js} +1 -1
- package/dist/web/assets/EmployeeRecruitDialog-BLTpjCcK.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-CQwZnTA0.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-HUd-gne2.js +3 -0
- package/dist/web/assets/{GrowthLoading-WXCj8b0r.js → GrowthLoading-Bu_kH-I8.js} +1 -1
- package/dist/web/assets/{KnowledgeEditDialog-Bkie08ZA.js → KnowledgeEditDialog-BTwXXRCD.js} +1 -1
- package/dist/web/assets/{KnowledgeInspector-Cez-Z_95.js → KnowledgeInspector-Ct5hl2--.js} +1 -1
- package/dist/web/assets/{KnowledgeOrganizerPage-BYmTPA_8.js → KnowledgeOrganizerPage-DMC8Hh43.js} +1 -1
- package/dist/web/assets/KnowledgePage-uXW1Eovz.js +1 -0
- package/dist/web/assets/{KnowledgeWorkspace-DKij2_B4.js → KnowledgeWorkspace-DmHIc0jb.js} +1 -1
- package/dist/web/assets/{NotFoundPage-HGV-q-bh.js → NotFoundPage-C0yOR9T9.js} +1 -1
- package/dist/web/assets/{OverviewPage-DE29_F_Y.js → OverviewPage-BreX_kb4.js} +1 -1
- package/dist/web/assets/{PersonalProfilePage-B95DFc7x.js → PersonalProfilePage-CX1a6_E3.js} +1 -1
- package/dist/web/assets/PersonalProjectsPage-Br1S8ETM.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-CA04h1Uf.js +13 -0
- package/dist/web/assets/ProjectAgentsPage-CZWWV4Kw.css +1 -0
- package/dist/web/assets/{ProjectScopePicker-Cu5PdxF6.js → ProjectScopePicker-DVHfXX1f.js} +1 -1
- package/dist/web/assets/{PublicProjectsPage-BY4B3_t3.js → PublicProjectsPage-CtctKml1.js} +1 -1
- package/dist/web/assets/{ReviewPage-C9vCesNu.js → ReviewPage-DUqaK-do.js} +1 -1
- package/dist/web/assets/{SearchableSelect-214TvfYg.js → SearchableSelect-BZtyYmZN.js} +1 -1
- package/dist/web/assets/{SettingsPage-D9TnzcFc.js → SettingsPage-CB4ymLr8.js} +1 -1
- package/dist/web/assets/{SharedJefaReportPage-CdSGI_OE.js → SharedJefaReportPage-CbFtrDCY.js} +1 -1
- package/dist/web/assets/{WritingTastePage-CUE1dU8f.js → WritingTastePage-B7lSzs2z.js} +1 -1
- package/dist/web/assets/agent-profile-CdKOh5xw.css +1 -0
- package/dist/web/assets/agent-profile.css_vue_type_style_index_0_src_true_lang-C22UdfU0.js +1 -0
- package/dist/web/assets/catalog-DU4Kfd-N.js +1 -0
- package/dist/web/assets/{client-Bl4oiW3E.js → client-CEHkJJ-5.js} +1 -1
- package/dist/web/assets/{console-BAIVNC-N.js → console--CZxc3PW.js} +1 -1
- package/dist/web/assets/{conversation-launcher-settings-DpRI_Jp2.js → conversation-launcher-settings-Co1RlTFH.js} +1 -1
- package/dist/web/assets/{i18n-CVFADb_M.js → i18n-BtOOoyJd.js} +3 -3
- package/dist/web/assets/{identity-Dt0WZgqo.js → identity-CsowvtIm.js} +1 -1
- package/dist/web/assets/index-7X3LGByg.js +2 -0
- package/dist/web/assets/index-CWMqDq8g.css +1 -0
- package/dist/web/assets/{model-B8sOxih0.js → model-CGpllrds.js} +1 -1
- package/dist/web/assets/{personal-profile-graph-aAqex7ty.js → personal-profile-graph-BNTG4PSY.js} +1 -1
- package/dist/web/assets/profile-model-BQO4zNs9.js +1 -0
- package/dist/web/assets/{shared-report-BQD6l_cS.js → shared-report-BFUJqqQe.js} +1 -1
- package/dist/web/assets/task-evidence-BUu7yYIn.js +1 -0
- package/dist/web/assets/{useApi-CROJJdhE-CuJ16v2S.js → useApi-CROJJdhE-raNlHRDl.js} +1 -1
- package/dist/web/assets/{useModalDialog-Ddv2XJQi.js → useModalDialog-CroGk2Cs.js} +1 -1
- package/dist/web/assets/{vue-router-C8KuEZ6a.js → vue-router-JFYBLXB1.js} +1 -1
- package/dist/web/index.html +12 -10
- package/docs/agent-conversations-and-collaboration.md +115 -0
- package/docs/agent-interface-architecture.md +17 -0
- package/docs/employee-agents.md +14 -1
- package/docs/project-agent-memory.md +34 -1
- package/graph-provider/fuli_graph/agent_conversation_models.py +72 -0
- package/graph-provider/fuli_graph/agent_conversation_routes.py +47 -0
- package/graph-provider/fuli_graph/agent_loan_models.py +28 -0
- package/graph-provider/fuli_graph/agent_quality_policy.py +151 -0
- package/graph-provider/fuli_graph/agent_verification_models.py +22 -0
- package/graph-provider/fuli_graph/conversation_context.py +30 -0
- package/graph-provider/fuli_graph/knowledge_search.py +8 -16
- package/graph-provider/fuli_graph/project_agent_executor_models.py +3 -0
- package/graph-provider/fuli_graph/project_agent_memory_routes.py +2 -0
- package/graph-provider/fuli_graph/project_agent_models.py +10 -0
- package/graph-provider/fuli_graph/project_agent_routes.py +5 -1
- package/graph-provider/fuli_graph/project_agent_task_models.py +4 -0
- package/graph-provider/fuli_graph/runtime.py +14 -0
- package/graph-provider/fuli_graph/store.py +6 -0
- package/graph-provider/fuli_graph/store_agent_conversations.py +206 -0
- package/graph-provider/fuli_graph/store_agent_loans.py +146 -0
- package/graph-provider/fuli_graph/store_agent_verification.py +111 -0
- package/graph-provider/fuli_graph/store_project_agent_executors.py +2 -0
- package/graph-provider/fuli_graph/store_project_agent_task_activity.py +6 -0
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +20 -8
- package/graph-provider/fuli_graph/store_task_contexts.py +9 -0
- package/graph-provider/fuli_graph/task_context_routes.py +7 -0
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +15 -15
- package/package.json +4 -3
- package/skills/capturing-session-knowledge/SKILL.md +20 -2
- package/skills/operating-fuli/SKILL.md +4 -0
- package/src/agent-tools/agent-collaboration-definitions.js +30 -0
- package/src/agent-tools/agent-conversation-definitions.js +21 -0
- package/src/agent-tools/employee-definitions.js +6 -5
- package/src/agent-tools/graph-definitions.js +19 -35
- package/src/agent-tools/graph-handlers.js +17 -1
- package/src/agent-tools/interface-catalog.js +2 -0
- package/src/agent-tools/project-agent-definitions.js +21 -0
- package/src/agent-tools/project-relation-definitions.js +36 -0
- package/src/agents/claude-code/conversation-transcript.js +20 -0
- package/src/agents/claude-code/lifecycle-hook.js +154 -0
- package/src/agents/claude-code/lifecycle-hooks.js +20 -0
- package/src/agents/codex/conversation-transcript.js +22 -0
- package/src/agents/codex/lifecycle-hook.js +47 -8
- package/src/agents/codex/lifecycle-hooks.js +6 -6
- package/src/agents/cursor/lifecycle-hook.js +5 -4
- package/src/app/agent-request-context.js +6 -1
- package/src/app/test-tools.js +26 -0
- package/src/conversations/sync-transcript.js +144 -0
- package/src/conversations/task-context-view.js +28 -0
- package/src/conversations/transcript-guard.js +54 -0
- package/src/conversations/transcript-reader.js +113 -0
- package/src/employees/service.js +8 -1
- package/src/graphiti/agent-collaboration.js +62 -0
- package/src/graphiti/agent-conversations.js +75 -0
- package/src/graphiti/agent-knowledge-workflows.js +8 -2
- package/src/graphiti/project-agent-control-plane.js +22 -2
- package/src/graphiti/project-agent-mapping.js +19 -1
- package/src/graphiti/project-agent-task-entry.js +11 -1
- package/src/graphiti/project-agent-workflows.js +11 -1
- package/src/graphiti/project-path-context.js +17 -10
- package/src/graphiti/provider-client.js +17 -0
- package/src/graphiti/verification-preference.js +24 -0
- package/src/http/graph-api-router.js +17 -0
- package/src/mcp/create-mcp-server.js +19 -5
- package/src/mcp/employee-tool-catalog.js +22 -0
- package/src/mcp/session-id.js +4 -0
- package/src/mcp/tool-annotations.js +8 -1
- package/src/mcp/tool-result.js +3 -1
- package/src/setup/agent-installation-status.js +1 -0
- package/src/setup/claude-code-config.js +13 -19
- package/dist/web/assets/AgentHand-BfLYPGjg.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-D-W043v4.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-Cz7y-IFD.css +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-HHQPxdqI.js +0 -3
- package/dist/web/assets/KnowledgePage-Ck7tIBDn.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-Bt7tFF5Z.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-BioDR9OW.css +0 -1
- package/dist/web/assets/ProjectAgentsPage-CiiPNe_G.js +0 -12
- package/dist/web/assets/index-BUMq5zNh.js +0 -2
- package/dist/web/assets/index-C0ci8dnU.css +0 -1
- package/src/mcp/task-context-registry.js +0 -165
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,N as r,T as i,Z as a,_ as o,a as s,at as c,b as l,d as ee,h as u,j as te,m as ne,n as re,nt as d,rt as ie,v as f,w as p,x as m,y as h}from"./i18n-CVFADb_M.js";import{t as ae}from"./console-BAIVNC-N.js";import{t as g}from"./GrowthLoading-WXCj8b0r.js";import{h as oe}from"./useApi-CROJJdhE-CuJ16v2S.js";import{i as _,n as v,t as y}from"./client-Bl4oiW3E.js";import{t as b}from"./useModalDialog-Ddv2XJQi.js";import{t as se}from"./paths-CDREouhi.js";import{t as x}from"./SearchableSelect-214TvfYg.js";import{r as S,t as C}from"./identity-Dt0WZgqo.js";var ce={class:`view`},le={class:`space-heading public-space-heading`},ue=[`aria-label`],de={class:`project-grid`},fe={class:`project-card-heading`},pe={class:`project-card-heading-actions`},me=[`onClick`],he={class:`completion-badge`},ge={class:`project-purpose`},_e={class:`evidence-row`},ve={key:0,class:`muted`},ye={class:`project-access`},be={class:`muted`},xe={key:0,class:`project-release-meta`},Se={class:`project-card-footer`},Ce=[`onClick`],we=[`onClick`],Te={key:0,class:`empty-state project-empty`},Ee={class:`project-section`},De={class:`section-toolbar compact-toolbar relation-section-toolbar`},Oe=[`disabled`],ke={key:0,class:`muted`},Ae={class:`compact-relation-preview`,"aria-live":`polite`},je={key:0},Me={key:1},Ne={class:`primary-action`,type:`submit`},Pe={key:0,class:`project-dialog-shell`},Fe={class:`project-dialog-header`},Ie={id:`public-project-details-title`},Le={class:`project-latest-release`},Re={key:0},ze={key:1,class:`muted`},Be={class:`project-detail-columns`},Ve={key:1,class:`muted`},He={key:0,class:`muted`},Ue={key:1,class:`project-latest-release`},We={class:`muted`},Ge={class:`project-dialog-actions`},Ke={key:0,class:`project-dialog-shell`},qe={class:`project-dialog-header`},Je={id:`public-project-deletion-title`},Ye=[`disabled`],Xe={class:`project-delete-confirmation`},Ze=[`disabled`],Qe={key:0,class:`publish-dialog-error`,role:`alert`},$e={class:`project-dialog-actions`},et=[`disabled`],tt={key:1},nt=`fuli-workspace-v1`,w=i({__name:`PublicProjectsPage`,setup(i){let w=ae(),rt=oe(),T=a(null),E=a([]),D=a([]),O=a(!1),k=a(!1),A=a(``),j=a(``),M=a(`RELATED_TO`),N=a(null),P=a(``),F=a(!1),I=a(``),L=0,R=null,z=o(()=>w.state?.projects??[]),it=o(()=>w.state?.providers?.workspaces??[]),B=o(()=>new Set((w.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),V=o(()=>z.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),H=o(()=>V.value.filter(({providerUrl:e})=>X(e))),at=o(()=>H.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ot=o(()=>{let e=z.value.find(({id:e})=>e===A.value);return!e||!X(e.providerUrl)?[]:z.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&X(n))}),st=o(()=>ot.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ct=o(()=>z.value.find(({id:e})=>e===A.value)??null),lt=o(()=>z.value.find(({id:e})=>e===j.value)??null),ut=o(()=>W.value.find(({value:e})=>e===M.value)?.label??s(`pages.publicProjects.relationLabels.relatedTo`)),dt=o(()=>T.value?X(T.value.providerUrl):!1),U=o(()=>!!(N.value&&P.value===N.value.name)),W=o(()=>[{value:`PART_OF`,label:s(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:s(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:s(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:s(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:s(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:s(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:s(`pages.publicProjects.relationLabels.relatedTo`)}]),{dialogRef:ft,initialFocusRef:pt,onCancel:G,onKeydown:K}=b(()=>!!T.value,Q),{dialogRef:mt,initialFocusRef:ht,onCancel:q,onKeydown:J}=b(()=>!!N.value,xt);function Y(e){return`${e.providerUrl}::${e.id}`}function X(e){return it.value.find(({providerUrl:t})=>t===e)?.protocol!==nt}function Z(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||s(`pages.publicProjects.fallbackDescription`)}async function gt(e){try{if(B.value.has(Y(e))){let t=new URLSearchParams({personalSpaceId:w.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await y(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),w.notify(s(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:w.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),w.notify(s(`pages.publicProjects.subscribed`,{name:e.name}));await w.refresh()}catch(e){w.reportError(e)}}async function _t(e){if(Q(),T.value=e,E.value=[],D.value=[],!X(e.providerUrl))return;let t=++L,n=new AbortController;R=n,O.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([v(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),v(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==L||n.signal.aborted)return;E.value=i.releases??[],D.value=a.relations??[]}catch(e){if(t!==L||n.signal.aborted)return;w.reportError(e)}finally{if(t!==L||n.signal.aborted)return;O.value=!1,R===n&&(R=null)}}async function vt(e){Q(),await rt.push(se(`public`,e.id,`graph`))}function yt(){L+=1,R?.abort(),R=null,O.value=!1}function Q(){yt(),T.value=null,E.value=[],D.value=[]}function bt(e){X(e.providerUrl)&&(N.value=e,P.value=``,I.value=``)}function xt(){F.value||(N.value=null,P.value=``,I.value=``)}async function St(){let e=N.value;if(!e||!U.value){I.value=s(`pages.publicProjects.deleteNameRequired`);return}if(!X(e.providerUrl)){I.value=s(`pages.publicProjects.providerOperationsUnavailable`);return}F.value=!0,I.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await y(`/api/projects/${encodeURIComponent(e.id)}?${t}`),T.value=null,N.value=null,w.notify(s(`pages.publicProjects.deleted`,{name:e.name})),await w.refresh()}catch(e){I.value=e instanceof Error?e.message:s(`pages.publicProjects.deleteFailed`),w.reportError(e)}finally{F.value=!1}}async function Ct(){let e=z.value.find(({id:e})=>e===A.value),t=z.value.find(({id:e})=>e===j.value);if(!e||!t){w.reportError(Error(s(`pages.publicProjects.chooseRelationProjects`)));return}if(!X(e.providerUrl)){w.reportError(Error(s(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:M.value,note:null}),k.value=!1,A.value=``,j.value=``,w.notify(M.value===`PART_OF`?s(`pages.publicProjects.parentRelationSubmitted`):s(`pages.publicProjects.relationCreated`))}catch(e){w.reportError(e)}}te(yt);function $(e){return e?new Date(e).toLocaleString(re()):s(`pages.publicProjects.timeNotRecorded`)}return(i,a)=>(r(),m(`section`,ce,[f(`div`,le,[a[11]||=f(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[f(`span`,{class:`nav-icon nav-icon-public-project`})],-1),f(`div`,null,[f(`p`,null,c(d(s)(`pages.publicProjects.intro`)),1)]),f(`div`,{class:`public-space-stats`,"aria-label":d(s)(`pages.publicProjects.overviewAria`)},[f(`span`,null,[f(`strong`,null,c(z.value.length),1),e(c(d(s)(`pages.publicProjects.discoverable`)),1)]),f(`span`,null,[f(`strong`,null,c(d(w).state?.subscriptions.length??0),1),e(c(d(s)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),f(`div`,de,[(r(!0),m(u,null,t(z.value,e=>(r(),m(`article`,{key:Y(e),class:`project-card`},[f(`div`,fe,[f(`div`,null,[f(`h4`,null,c(e.name),1)]),f(`div`,pe,[e.can_manage&&X(e.providerUrl)?(r(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>bt(e)},c(d(s)(`pages.publicProjects.manage`)),9,me)):l(``,!0),f(`div`,he,[f(`strong`,null,c(e.profile?.assessment?.score??`—`),1),f(`span`,null,c(e.profile?.assessment?d(s)(`pages.publicProjects.coverage`):d(s)(`pages.publicProjects.noSummary`)),1)])])]),f(`p`,ge,c(Z(e)),1),f(`div`,_e,[(r(!0),m(u,null,t(e.profile?.sources??[],(e,t)=>(r(),m(`span`,{key:t,class:`status-chip`},c(e.kind??d(s)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?l(``,!0):(r(),m(`span`,ve,c(d(s)(`pages.publicProjects.noSources`)),1))]),f(`div`,ye,[f(`span`,{class:ie([`status-chip`,{owner:e.isOwner}])},c(e.isOwner?`Owner`:e.role??`Reader`),3),f(`span`,be,c(e.isOwner?d(s)(`pages.publicProjects.publishedByYou`):d(s)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&X(e.providerUrl)?(r(),m(`span`,xe,[f(`strong`,null,c(e.current_release.version),1),f(`span`,null,c($(e.current_release.published_at)),1)])):l(``,!0)]),f(`footer`,Se,[f(`button`,{class:`secondary-action`,type:`button`,onClick:t=>gt(e)},c(B.value.has(Y(e))?d(s)(`pages.publicProjects.unsubscribe`):d(s)(`pages.publicProjects.subscribe`)),9,Ce),f(`button`,{class:`primary-action`,type:`button`,onClick:t=>_t(e)},c(d(s)(`common.actions.viewDetails`)),9,we)])]))),128)),z.value.length?l(``,!0):(r(),m(`div`,Te,c(d(s)(`pages.publicProjects.noProjects`)),1))]),f(`section`,Ee,[f(`div`,De,[f(`div`,null,[f(`h3`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.relationsCopy`)),1)]),f(`button`,{class:`primary-action`,type:`button`,disabled:!H.value.length,onClick:a[0]||=e=>k.value=!k.value},c(d(s)(`pages.publicProjects.addRelation`)),9,Oe)]),V.value.length&&!H.value.length?(r(),m(`p`,ke,c(d(s)(`pages.publicProjects.providerOperationsUnavailable`)),1)):l(``,!0),k.value?(r(),m(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(Ct,[`prevent`])},[f(`label`,null,[e(c(d(s)(`pages.publicProjects.sourceProject`))+` `,1),p(x,{modelValue:A.value,"onUpdate:modelValue":a[1]||=e=>A.value=e,options:at.value,label:d(s)(`pages.publicProjects.sourceProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:a[2]||=e=>j.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.relation`))+` `,1),p(x,{modelValue:M.value,"onUpdate:modelValue":a[3]||=e=>M.value=e,options:W.value,label:d(s)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.targetProject`))+` `,1),p(x,{modelValue:j.value,"onUpdate:modelValue":a[4]||=e=>j.value=e,options:st.value,label:d(s)(`pages.publicProjects.targetProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`div`,Ae,[f(`span`,null,c(d(s)(`pages.publicProjects.preview`)),1),f(`strong`,null,c(ct.value?.name||d(s)(`pages.publicProjects.sourceProject`))+` `+c(ut.value)+` `+c(lt.value?.name||d(s)(`pages.publicProjects.targetProject`)),1),M.value===`PART_OF`?(r(),m(`p`,je,c(d(s)(`pages.publicProjects.parentConfirmation`)),1)):(r(),m(`p`,Me,c(d(s)(`pages.publicProjects.relationBoundary`)),1))]),f(`button`,Ne,c(d(s)(`pages.publicProjects.addRelation`)),1)],32)):l(``,!0)]),f(`dialog`,{ref_key:`detailsDialogRef`,ref:ft,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-details-title`,onCancel:a[6]||=(...e)=>d(G)&&d(G)(...e),onKeydown:a[7]||=(...e)=>d(K)&&d(K)(...e)},[T.value?(r(),m(`div`,Pe,[f(`header`,Fe,[f(`div`,null,[f(`h3`,Ie,c(T.value.name),1),f(`p`,null,c(Z(T.value)),1)]),f(`button`,{ref_key:`detailsInitialFocusRef`,ref:pt,class:`secondary-action`,type:`button`,onClick:Q},c(d(s)(`common.actions.close`)),513)]),dt.value?(r(),m(u,{key:0},[f(`section`,Le,[f(`h4`,null,c(d(s)(`pages.publicProjects.latestRelease`)),1),T.value.current_release?(r(),m(`p`,Re,[f(`strong`,null,c(T.value.current_release.version),1),e(` · `+c($(T.value.current_release.published_at)),1)])):(r(),m(`p`,ze,c(d(s)(`pages.publicProjects.noRelease`)),1))]),f(`div`,Be,[f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.releaseHistory`)),1),O.value?(r(),h(g,{key:0,variant:`compact`,label:d(s)(`pages.publicProjects.loading`)},null,8,[`label`])):l(``,!0),(r(!0),m(u,null,t(E.value,e=>(r(),m(`article`,{key:e.version,class:`project-release-item`},[f(`strong`,null,c(e.version),1),f(`p`,null,c(e.update_summary),1),f(`small`,null,c($(e.published_at)),1)]))),128)),!O.value&&!E.value.length?(r(),m(`p`,Ve,c(d(s)(`pages.publicProjects.noReleaseHistory`)),1)):l(``,!0)]),f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),(r(!0),m(u,null,t(D.value,e=>(r(),m(`article`,{key:e.id,class:`project-detail-relation`},[f(`strong`,null,c(e.relation_type),1),f(`small`,null,c(e.status??`active`),1)]))),128)),!O.value&&!D.value.length?(r(),m(`p`,He,c(d(s)(`pages.publicProjects.noRelations`)),1)):l(``,!0)])])],64)):(r(),m(`section`,Ue,[f(`p`,We,c(d(s)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1)])),f(`footer`,Ge,[f(`span`,null,c(d(s)(`pages.publicProjects.contentManagementSeparated`)),1),f(`button`,{class:`primary-action`,type:`button`,onClick:a[5]||=e=>vt(T.value)},c(d(s)(`pages.publicProjects.viewGraph`)),1)])])):l(``,!0)],544),f(`dialog`,{ref_key:`deletionDialogRef`,ref:mt,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-deletion-title`,onCancel:a[9]||=(...e)=>d(q)&&d(q)(...e),onKeydown:a[10]||=(...e)=>d(J)&&d(J)(...e)},[N.value?(r(),m(`div`,Ke,[f(`header`,qe,[f(`div`,null,[f(`h3`,Je,c(d(s)(`pages.publicProjects.deleteTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.deleteCopy`)),1)]),f(`button`,{class:`secondary-action`,type:`button`,disabled:F.value,onClick:xt},c(d(s)(`common.actions.close`)),9,Ye)]),f(`label`,Xe,[e(c(d(s)(`pages.publicProjects.enterFullName`))+` `,1),f(`strong`,null,c(N.value.name),1),n(f(`input`,{ref_key:`deletionInitialFocusRef`,ref:ht,"onUpdate:modelValue":a[8]||=e=>P.value=e,autocomplete:`off`,disabled:F.value},null,8,Ze),[[ee,P.value]])]),I.value?(r(),m(`p`,Qe,c(I.value),1)):l(``,!0),f(`footer`,$e,[f(`span`,null,c(d(s)(`pages.publicProjects.deleteWarning`)),1),f(`button`,{class:`reject`,type:`button`,disabled:!U.value||F.value,onClick:St},[F.value?(r(),h(g,{key:0,variant:`inline`,label:d(s)(`pages.publicProjects.deleting`)},null,8,[`label`])):(r(),m(`span`,tt,c(d(s)(`pages.publicProjects.deletePermanently`)),1))],8,et)])])):l(``,!0)],544)]))}});export{w as default};
|
|
1
|
+
import{C as e,F as t,H as n,N as r,T as i,Z as a,_ as o,a as s,at as c,b as l,d as ee,h as u,j as te,m as ne,n as re,nt as d,rt as ie,v as f,w as p,x as m,y as h}from"./i18n-BtOOoyJd.js";import{t as ae}from"./console--CZxc3PW.js";import{t as g}from"./GrowthLoading-Bu_kH-I8.js";import{h as oe}from"./useApi-CROJJdhE-raNlHRDl.js";import{i as _,n as v,t as y}from"./client-CEHkJJ-5.js";import{t as b}from"./useModalDialog-CroGk2Cs.js";import{t as se}from"./paths-CDREouhi.js";import{t as x}from"./SearchableSelect-BZtyYmZN.js";import{r as S,t as C}from"./identity-CsowvtIm.js";var ce={class:`view`},le={class:`space-heading public-space-heading`},ue=[`aria-label`],de={class:`project-grid`},fe={class:`project-card-heading`},pe={class:`project-card-heading-actions`},me=[`onClick`],he={class:`completion-badge`},ge={class:`project-purpose`},_e={class:`evidence-row`},ve={key:0,class:`muted`},ye={class:`project-access`},be={class:`muted`},xe={key:0,class:`project-release-meta`},Se={class:`project-card-footer`},Ce=[`onClick`],we=[`onClick`],Te={key:0,class:`empty-state project-empty`},Ee={class:`project-section`},De={class:`section-toolbar compact-toolbar relation-section-toolbar`},Oe=[`disabled`],ke={key:0,class:`muted`},Ae={class:`compact-relation-preview`,"aria-live":`polite`},je={key:0},Me={key:1},Ne={class:`primary-action`,type:`submit`},Pe={key:0,class:`project-dialog-shell`},Fe={class:`project-dialog-header`},Ie={id:`public-project-details-title`},Le={class:`project-latest-release`},Re={key:0},ze={key:1,class:`muted`},Be={class:`project-detail-columns`},Ve={key:1,class:`muted`},He={key:0,class:`muted`},Ue={key:1,class:`project-latest-release`},We={class:`muted`},Ge={class:`project-dialog-actions`},Ke={key:0,class:`project-dialog-shell`},qe={class:`project-dialog-header`},Je={id:`public-project-deletion-title`},Ye=[`disabled`],Xe={class:`project-delete-confirmation`},Ze=[`disabled`],Qe={key:0,class:`publish-dialog-error`,role:`alert`},$e={class:`project-dialog-actions`},et=[`disabled`],tt={key:1},nt=`fuli-workspace-v1`,w=i({__name:`PublicProjectsPage`,setup(i){let w=ae(),rt=oe(),T=a(null),E=a([]),D=a([]),O=a(!1),k=a(!1),A=a(``),j=a(``),M=a(`RELATED_TO`),N=a(null),P=a(``),F=a(!1),I=a(``),L=0,R=null,z=o(()=>w.state?.projects??[]),it=o(()=>w.state?.providers?.workspaces??[]),B=o(()=>new Set((w.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),V=o(()=>z.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),H=o(()=>V.value.filter(({providerUrl:e})=>X(e))),at=o(()=>H.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ot=o(()=>{let e=z.value.find(({id:e})=>e===A.value);return!e||!X(e.providerUrl)?[]:z.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&X(n))}),st=o(()=>ot.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ct=o(()=>z.value.find(({id:e})=>e===A.value)??null),lt=o(()=>z.value.find(({id:e})=>e===j.value)??null),ut=o(()=>W.value.find(({value:e})=>e===M.value)?.label??s(`pages.publicProjects.relationLabels.relatedTo`)),dt=o(()=>T.value?X(T.value.providerUrl):!1),U=o(()=>!!(N.value&&P.value===N.value.name)),W=o(()=>[{value:`PART_OF`,label:s(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:s(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:s(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:s(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:s(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:s(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:s(`pages.publicProjects.relationLabels.relatedTo`)}]),{dialogRef:ft,initialFocusRef:pt,onCancel:G,onKeydown:K}=b(()=>!!T.value,Q),{dialogRef:mt,initialFocusRef:ht,onCancel:q,onKeydown:J}=b(()=>!!N.value,xt);function Y(e){return`${e.providerUrl}::${e.id}`}function X(e){return it.value.find(({providerUrl:t})=>t===e)?.protocol!==nt}function Z(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||s(`pages.publicProjects.fallbackDescription`)}async function gt(e){try{if(B.value.has(Y(e))){let t=new URLSearchParams({personalSpaceId:w.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await y(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),w.notify(s(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:w.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),w.notify(s(`pages.publicProjects.subscribed`,{name:e.name}));await w.refresh()}catch(e){w.reportError(e)}}async function _t(e){if(Q(),T.value=e,E.value=[],D.value=[],!X(e.providerUrl))return;let t=++L,n=new AbortController;R=n,O.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([v(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),v(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==L||n.signal.aborted)return;E.value=i.releases??[],D.value=a.relations??[]}catch(e){if(t!==L||n.signal.aborted)return;w.reportError(e)}finally{if(t!==L||n.signal.aborted)return;O.value=!1,R===n&&(R=null)}}async function vt(e){Q(),await rt.push(se(`public`,e.id,`graph`))}function yt(){L+=1,R?.abort(),R=null,O.value=!1}function Q(){yt(),T.value=null,E.value=[],D.value=[]}function bt(e){X(e.providerUrl)&&(N.value=e,P.value=``,I.value=``)}function xt(){F.value||(N.value=null,P.value=``,I.value=``)}async function St(){let e=N.value;if(!e||!U.value){I.value=s(`pages.publicProjects.deleteNameRequired`);return}if(!X(e.providerUrl)){I.value=s(`pages.publicProjects.providerOperationsUnavailable`);return}F.value=!0,I.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await y(`/api/projects/${encodeURIComponent(e.id)}?${t}`),T.value=null,N.value=null,w.notify(s(`pages.publicProjects.deleted`,{name:e.name})),await w.refresh()}catch(e){I.value=e instanceof Error?e.message:s(`pages.publicProjects.deleteFailed`),w.reportError(e)}finally{F.value=!1}}async function Ct(){let e=z.value.find(({id:e})=>e===A.value),t=z.value.find(({id:e})=>e===j.value);if(!e||!t){w.reportError(Error(s(`pages.publicProjects.chooseRelationProjects`)));return}if(!X(e.providerUrl)){w.reportError(Error(s(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:M.value,note:null}),k.value=!1,A.value=``,j.value=``,w.notify(M.value===`PART_OF`?s(`pages.publicProjects.parentRelationSubmitted`):s(`pages.publicProjects.relationCreated`))}catch(e){w.reportError(e)}}te(yt);function $(e){return e?new Date(e).toLocaleString(re()):s(`pages.publicProjects.timeNotRecorded`)}return(i,a)=>(r(),m(`section`,ce,[f(`div`,le,[a[11]||=f(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[f(`span`,{class:`nav-icon nav-icon-public-project`})],-1),f(`div`,null,[f(`p`,null,c(d(s)(`pages.publicProjects.intro`)),1)]),f(`div`,{class:`public-space-stats`,"aria-label":d(s)(`pages.publicProjects.overviewAria`)},[f(`span`,null,[f(`strong`,null,c(z.value.length),1),e(c(d(s)(`pages.publicProjects.discoverable`)),1)]),f(`span`,null,[f(`strong`,null,c(d(w).state?.subscriptions.length??0),1),e(c(d(s)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),f(`div`,de,[(r(!0),m(u,null,t(z.value,e=>(r(),m(`article`,{key:Y(e),class:`project-card`},[f(`div`,fe,[f(`div`,null,[f(`h4`,null,c(e.name),1)]),f(`div`,pe,[e.can_manage&&X(e.providerUrl)?(r(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>bt(e)},c(d(s)(`pages.publicProjects.manage`)),9,me)):l(``,!0),f(`div`,he,[f(`strong`,null,c(e.profile?.assessment?.score??`—`),1),f(`span`,null,c(e.profile?.assessment?d(s)(`pages.publicProjects.coverage`):d(s)(`pages.publicProjects.noSummary`)),1)])])]),f(`p`,ge,c(Z(e)),1),f(`div`,_e,[(r(!0),m(u,null,t(e.profile?.sources??[],(e,t)=>(r(),m(`span`,{key:t,class:`status-chip`},c(e.kind??d(s)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?l(``,!0):(r(),m(`span`,ve,c(d(s)(`pages.publicProjects.noSources`)),1))]),f(`div`,ye,[f(`span`,{class:ie([`status-chip`,{owner:e.isOwner}])},c(e.isOwner?`Owner`:e.role??`Reader`),3),f(`span`,be,c(e.isOwner?d(s)(`pages.publicProjects.publishedByYou`):d(s)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&X(e.providerUrl)?(r(),m(`span`,xe,[f(`strong`,null,c(e.current_release.version),1),f(`span`,null,c($(e.current_release.published_at)),1)])):l(``,!0)]),f(`footer`,Se,[f(`button`,{class:`secondary-action`,type:`button`,onClick:t=>gt(e)},c(B.value.has(Y(e))?d(s)(`pages.publicProjects.unsubscribe`):d(s)(`pages.publicProjects.subscribe`)),9,Ce),f(`button`,{class:`primary-action`,type:`button`,onClick:t=>_t(e)},c(d(s)(`common.actions.viewDetails`)),9,we)])]))),128)),z.value.length?l(``,!0):(r(),m(`div`,Te,c(d(s)(`pages.publicProjects.noProjects`)),1))]),f(`section`,Ee,[f(`div`,De,[f(`div`,null,[f(`h3`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.relationsCopy`)),1)]),f(`button`,{class:`primary-action`,type:`button`,disabled:!H.value.length,onClick:a[0]||=e=>k.value=!k.value},c(d(s)(`pages.publicProjects.addRelation`)),9,Oe)]),V.value.length&&!H.value.length?(r(),m(`p`,ke,c(d(s)(`pages.publicProjects.providerOperationsUnavailable`)),1)):l(``,!0),k.value?(r(),m(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(Ct,[`prevent`])},[f(`label`,null,[e(c(d(s)(`pages.publicProjects.sourceProject`))+` `,1),p(x,{modelValue:A.value,"onUpdate:modelValue":a[1]||=e=>A.value=e,options:at.value,label:d(s)(`pages.publicProjects.sourceProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:a[2]||=e=>j.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.relation`))+` `,1),p(x,{modelValue:M.value,"onUpdate:modelValue":a[3]||=e=>M.value=e,options:W.value,label:d(s)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.targetProject`))+` `,1),p(x,{modelValue:j.value,"onUpdate:modelValue":a[4]||=e=>j.value=e,options:st.value,label:d(s)(`pages.publicProjects.targetProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`div`,Ae,[f(`span`,null,c(d(s)(`pages.publicProjects.preview`)),1),f(`strong`,null,c(ct.value?.name||d(s)(`pages.publicProjects.sourceProject`))+` `+c(ut.value)+` `+c(lt.value?.name||d(s)(`pages.publicProjects.targetProject`)),1),M.value===`PART_OF`?(r(),m(`p`,je,c(d(s)(`pages.publicProjects.parentConfirmation`)),1)):(r(),m(`p`,Me,c(d(s)(`pages.publicProjects.relationBoundary`)),1))]),f(`button`,Ne,c(d(s)(`pages.publicProjects.addRelation`)),1)],32)):l(``,!0)]),f(`dialog`,{ref_key:`detailsDialogRef`,ref:ft,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-details-title`,onCancel:a[6]||=(...e)=>d(G)&&d(G)(...e),onKeydown:a[7]||=(...e)=>d(K)&&d(K)(...e)},[T.value?(r(),m(`div`,Pe,[f(`header`,Fe,[f(`div`,null,[f(`h3`,Ie,c(T.value.name),1),f(`p`,null,c(Z(T.value)),1)]),f(`button`,{ref_key:`detailsInitialFocusRef`,ref:pt,class:`secondary-action`,type:`button`,onClick:Q},c(d(s)(`common.actions.close`)),513)]),dt.value?(r(),m(u,{key:0},[f(`section`,Le,[f(`h4`,null,c(d(s)(`pages.publicProjects.latestRelease`)),1),T.value.current_release?(r(),m(`p`,Re,[f(`strong`,null,c(T.value.current_release.version),1),e(` · `+c($(T.value.current_release.published_at)),1)])):(r(),m(`p`,ze,c(d(s)(`pages.publicProjects.noRelease`)),1))]),f(`div`,Be,[f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.releaseHistory`)),1),O.value?(r(),h(g,{key:0,variant:`compact`,label:d(s)(`pages.publicProjects.loading`)},null,8,[`label`])):l(``,!0),(r(!0),m(u,null,t(E.value,e=>(r(),m(`article`,{key:e.version,class:`project-release-item`},[f(`strong`,null,c(e.version),1),f(`p`,null,c(e.update_summary),1),f(`small`,null,c($(e.published_at)),1)]))),128)),!O.value&&!E.value.length?(r(),m(`p`,Ve,c(d(s)(`pages.publicProjects.noReleaseHistory`)),1)):l(``,!0)]),f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),(r(!0),m(u,null,t(D.value,e=>(r(),m(`article`,{key:e.id,class:`project-detail-relation`},[f(`strong`,null,c(e.relation_type),1),f(`small`,null,c(e.status??`active`),1)]))),128)),!O.value&&!D.value.length?(r(),m(`p`,He,c(d(s)(`pages.publicProjects.noRelations`)),1)):l(``,!0)])])],64)):(r(),m(`section`,Ue,[f(`p`,We,c(d(s)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1)])),f(`footer`,Ge,[f(`span`,null,c(d(s)(`pages.publicProjects.contentManagementSeparated`)),1),f(`button`,{class:`primary-action`,type:`button`,onClick:a[5]||=e=>vt(T.value)},c(d(s)(`pages.publicProjects.viewGraph`)),1)])])):l(``,!0)],544),f(`dialog`,{ref_key:`deletionDialogRef`,ref:mt,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-deletion-title`,onCancel:a[9]||=(...e)=>d(q)&&d(q)(...e),onKeydown:a[10]||=(...e)=>d(J)&&d(J)(...e)},[N.value?(r(),m(`div`,Ke,[f(`header`,qe,[f(`div`,null,[f(`h3`,Je,c(d(s)(`pages.publicProjects.deleteTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.deleteCopy`)),1)]),f(`button`,{class:`secondary-action`,type:`button`,disabled:F.value,onClick:xt},c(d(s)(`common.actions.close`)),9,Ye)]),f(`label`,Xe,[e(c(d(s)(`pages.publicProjects.enterFullName`))+` `,1),f(`strong`,null,c(N.value.name),1),n(f(`input`,{ref_key:`deletionInitialFocusRef`,ref:ht,"onUpdate:modelValue":a[8]||=e=>P.value=e,autocomplete:`off`,disabled:F.value},null,8,Ze),[[ee,P.value]])]),I.value?(r(),m(`p`,Qe,c(I.value),1)):l(``,!0),f(`footer`,$e,[f(`span`,null,c(d(s)(`pages.publicProjects.deleteWarning`)),1),f(`button`,{class:`reject`,type:`button`,disabled:!U.value||F.value,onClick:St},[F.value?(r(),h(g,{key:0,variant:`inline`,label:d(s)(`pages.publicProjects.deleting`)},null,8,[`label`])):(r(),m(`span`,tt,c(d(s)(`pages.publicProjects.deletePermanently`)),1))],8,et)])])):l(``,!0)],544)]))}});export{w as default};
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-BtOOoyJd.js";import{t as ne}from"./console--CZxc3PW.js";import{t as m}from"./GrowthLoading-Bu_kH-I8.js";import{i as h,n as g}from"./client-CEHkJJ-5.js";import{t as re}from"./SearchableSelect-BZtyYmZN.js";import{r as ie,t as _}from"./identity-CsowvtIm.js";import{u as v}from"./model-CGpllrds.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 +1 @@
|
|
|
1
|
-
import{A as e,F as t,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,n as ee,nt as g,rt as _,v,x as y,z as b}from"./i18n-
|
|
1
|
+
import{A as e,F as t,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,n as ee,nt as g,rt as _,v,x as y,z as b}from"./i18n-BtOOoyJd.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],te={key:0,class:`searchable-select-search`},ne=[`placeholder`,`aria-label`],re=[`id`],ie=[`aria-selected`,`disabled`,`onClick`,`onKeydown`],ae={class:`searchable-select-option-copy`},oe={key:0},se={key:1,class:`searchable-select-empty`},k=o({__name:`SearchableSelect`,props:{modelValue:{},options:{},label:{},controlId:{default:void 0},placeholder:{default:void 0},searchPlaceholder:{default:void 0},searchable:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},name:{default:void 0}},emits:[`update:modelValue`,`change`],setup(o,{emit:k}){let A=o,j=k,M=s(null),N=s(null),P=s(null),F=s(null),I=s(!1),L=s(!1),R=s(``),z=a().replace(/[^A-Za-z0-9_-]/g,``),B=c(()=>A.label),V=c(()=>A.placeholder??l(`common.searchableSelect.placeholder`)),H=c(()=>A.searchPlaceholder??l(`common.searchableSelect.searchPlaceholder`)),U=c(()=>`${A.controlId||`searchable-select-${z}`}-options`),W=c(()=>A.options.find(({value:e})=>e===A.modelValue)??null),G=c(()=>A.searchable??A.options.length>5),K=c(()=>{let e=ee(),t=R.value.trim().toLocaleLowerCase(e);return t?A.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):A.options});b(()=>A.disabled,e=>{e&&J()}),r(()=>{document.addEventListener(`pointerdown`,X)}),m(()=>{document.removeEventListener(`pointerdown`,X)});async function ce(){I.value?J():await q()}async function q(){A.disabled||(R.value=``,pe(),I.value=!0,await e(),G.value?P.value?.focus():fe()?.focus())}function J({restoreFocus:t=!1}={}){I.value=!1,L.value=!1,R.value=``,t&&e(()=>N.value?.focus())}function Y(e){A.disabled||e.disabled||(j(`update:modelValue`,e.value),j(`change`,e.value),J({restoreFocus:!0}))}function le(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),q())}function ue(e){if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function de(e,t){if(e.key===`Enter`||e.key===` `){e.preventDefault(),Y(t);return}if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let n=Q(),r=n.indexOf(e.currentTarget);n[e.key===`Home`?0:e.key===`End`?n.length-1:e.key===`ArrowDown`?Math.min(n.length-1,r+1):Math.max(0,r-1)]?.focus()}function X(e){I.value&&!M.value?.contains(e.target)&&J()}function Z(e){let t=e.relatedTarget;t&&M.value?.contains(t)||queueMicrotask(()=>{I.value&&!M.value?.contains(document.activeElement)&&J()})}function Q(){return[...F.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function $(){return Q()[0]??null}function fe(){return Q().find(e=>e.getAttribute(`aria-selected`)===`true`)??$()}function pe(){let e=N.value?.getBoundingClientRect();L.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,r)=>(i(),y(`div`,{ref_key:`root`,ref:M,class:_([`searchable-select`,{open:I.value,"open-up":L.value,disabled:o.disabled}]),"data-select-id":o.controlId,onFocusout:Z},[v(`select`,{class:`searchable-select-native`,value:o.modelValue,name:o.name,required:o.required,disabled:o.disabled,tabindex:`-1`,"aria-hidden":`true`},[(i(!0),y(p,null,t(o.options,e=>(i(),y(`option`,{key:e.value,value:e.value,disabled:e.disabled},u(e.label),9,C))),128))],8,S),v(`button`,{ref_key:`trigger`,ref:N,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":I.value,"aria-controls":U.value,"aria-label":B.value,disabled:o.disabled,onPointerdown:r[0]||=h(()=>{},[`stop`]),onClick:h(ce,[`stop`]),onKeydown:le},[v(`span`,T,[v(`span`,E,u(W.value?.label||V.value),1),W.value?.meta?(i(),y(`small`,D,u(W.value.meta),1)):d(``,!0)]),r[3]||=v(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),v(`div`,{class:`searchable-select-panel`,hidden:!I.value},[G.value?(i(),y(`div`,te,[n(v(`input`,{ref_key:`searchInput`,ref:P,"onUpdate:modelValue":r[1]||=e=>R.value=e,type:`search`,autocomplete:`off`,placeholder:H.value,"aria-label":g(l)(`common.searchableSelect.searchAria`,{label:B.value}),onKeydown:ue},null,40,ne),[[f,R.value]])])):d(``,!0),v(`div`,{id:U.value,ref_key:`optionsList`,ref:F,class:`searchable-select-options`,role:`listbox`},[(i(!0),y(p,null,t(K.value,e=>(i(),y(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===o.modelValue,disabled:e.disabled,onMousedown:r[2]||=h(()=>{},[`prevent`]),onClick:t=>Y(e),onKeydown:t=>de(t,e)},[v(`span`,ae,[v(`strong`,null,u(e.label),1),e.meta?(i(),y(`small`,oe,u(e.meta),1)):d(``,!0)]),r[4]||=v(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ie))),128))],8,re),K.value.length===0?(i(),y(`p`,se,u(g(l)(`common.searchableSelect.noMatches`)),1)):d(``,!0)],8,O)],42,x))}});export{k as t};
|
|
@@ -1 +1 @@
|
|
|
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-CVFADb_M.js";import{t as ae}from"./console-BAIVNC-N.js";import{t as x}from"./GrowthLoading-WXCj8b0r.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as oe,n as C}from"./client-Bl4oiW3E.js";import{t as w}from"./SearchableSelect-214TvfYg.js";import{i as se,n as T,s as ce,t as E}from"./conversation-launcher-settings-DpRI_Jp2.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
|
+
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-BtOOoyJd.js";import{t as ae}from"./console--CZxc3PW.js";import{t as x}from"./GrowthLoading-Bu_kH-I8.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as oe,n as C}from"./client-CEHkJJ-5.js";import{t as w}from"./SearchableSelect-BZtyYmZN.js";import{i as se,n as T,s as ce,t as E}from"./conversation-launcher-settings-Co1RlTFH.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};
|
package/dist/web/assets/{SharedJefaReportPage-CdSGI_OE.js → SharedJefaReportPage-CbFtrDCY.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-BtOOoyJd.js";import{t as p}from"./GrowthLoading-Bu_kH-I8.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-raNlHRDl.js";import{i as g,n as _,t as v}from"./shared-report-BFUJqqQe.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 +1 @@
|
|
|
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-
|
|
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-BtOOoyJd.js";import{t as ne}from"./console--CZxc3PW.js";import{t as _}from"./GrowthLoading-Bu_kH-I8.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./vue-router-JFYBLXB1.js";import{n as ie}from"./client-CEHkJJ-5.js";import{i as y,n as b,t as x}from"./KnowledgeEditDialog-BTwXXRCD.js";import{u as S,x as ae}from"./model-CGpllrds.js";import{t as oe}from"./personal-profile-graph-BNTG4PSY.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};
|
|
@@ -0,0 +1 @@
|
|
|
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}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Z as e,a as t,z as n}from"./i18n-BtOOoyJd.js";import{n as r}from"./client-CEHkJJ-5.js";import{t as i}from"./task-evidence-BUu7yYIn.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Z as e,a as t}from"./i18n-BtOOoyJd.js";import{n}from"./client-CEHkJJ-5.js";function r(e){let t=/^employee\.([a-z][a-z0-9-]{0,63})$/.exec(e.agentId)?.[1];return t&&e.profile.capabilities.includes(`fuli.employee:${t}`)?t:null}var i=e([]),a=e(!1),o=e(``),s=``,c=null,l=0;async function u(e){if(!e)return[];let t=await n(`/api/employee-templates?${new URLSearchParams({personalSpaceId:e})}`);return Array.isArray(t.templates)?t.templates:[]}function d(e){if(e===s&&c)return c;let t=++l;return e!==s&&(i.value=[]),s=e,o.value=``,e?(a.value=!0,c=u(e).then(e=>{t===l&&(i.value=e)}).catch(e=>{t===l&&(i.value=[],o.value=f(e))}).finally(()=>{t===l&&(a.value=!1,c=null)}),c):(i.value=[],a.value=!1,Promise.resolve())}function f(e){let n=e instanceof Error?e.message:``;try{let e=JSON.parse(n);return e.code&&[`runtime_unavailable`,`assignment_required`,`project_not_found`,`identity_conflict`,`reactivation_required`,`assignment_scope_conflict`,`assignment_update_incomplete`].includes(e.code)?t(`employees.errors.${e.code}`):e.error||t(`employees.loadError`)}catch{return n||t(`employees.loadError`)}}export{i as a,r as i,a as n,u as o,f as r,d as s,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./i18n-
|
|
1
|
+
import{a as e}from"./i18n-BtOOoyJd.js";var t=class extends Error{status;detail;constructor(e,t,n=``){super(e),this.name=`ApiError`,this.status=t,this.detail=n}};async function n(n,r){let i=await fetch(n,r);if(!i.ok){let n=(await i.text()).trim();throw new t(i.status>=500?e(`common.errors.serviceUnavailable`,{status:i.status}):n||e(`common.errors.requestFailed`,{status:i.status}),i.status,n)}return i.json()}function r(e,t){return n(e,t)}function i(e,t){return n(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function a(e,t){return n(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function o(e,t){return n(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function s(e){return n(e,{method:`DELETE`})}export{a,i,r as n,o as r,s as t};
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-BtOOoyJd.js";import{n as _,r as v}from"./client-CEHkJJ-5.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 +1 @@
|
|
|
1
|
-
import{$ as e,X as t,a as n}from"./i18n-
|
|
1
|
+
import{$ as e,X as t,a as n}from"./i18n-BtOOoyJd.js";import{n as r}from"./client-CEHkJJ-5.js";var i=[`codex`,`claude`,`claude_code`,`cursor`,`gemini_cli`,`kiro`,`other`],a={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`Other Agent`},o=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,s=/^[^\u0000-\u001f\u007f]{1,512}$/,c=new Set([`about`,`blob`,`data`,`file`,`javascript`]),l={codex:{enabled:!0,idFormat:`uuid`,appName:`Codex`,urlTemplate:`codex://threads/{id}`},claude:{enabled:!1,idFormat:`any`,appName:`Claude`,urlTemplate:``},claude_code:{enabled:!1,idFormat:`any`,appName:`Claude Code`,urlTemplate:``},cursor:{enabled:!1,idFormat:`any`,appName:`Cursor`,urlTemplate:``},gemini_cli:{enabled:!1,idFormat:`any`,appName:`Gemini CLI`,urlTemplate:``},kiro:{enabled:!1,idFormat:`any`,appName:`Kiro`,urlTemplate:``},other:{enabled:!1,idFormat:`any`,appName:`Other Agent`,urlTemplate:``}};function u(e={}){let t=e.source_application?.trim().toLocaleLowerCase().replaceAll(`-`,`_`).replaceAll(` `,`_`);if(t&&a[t])return t;let n=`${e.source_kind??``} ${e.source_description??``}`.toLocaleLowerCase();return n.includes(`claude`)?`claude_code`:n.includes(`cursor`)?`cursor`:n.includes(`gemini`)?`gemini_cli`:n.includes(`kiro`)?`kiro`:n.includes(`codex`)?`codex`:`other`}function d(e){let t=u(e);return t===`other`?n(`knowledge.domain.actors.otherAgent`):a[t]}function f(e){return a[e]}function p(e={},t=l){if(m(e,t)!==`available`)return null;let n=t[u(e)],r=e.session_id.trim();return n.urlTemplate.replace(`{id}`,encodeURIComponent(r))}function m(e={},t=l){let n=t[u(e)];return n?.enabled?_(e.session_id?.trim()??``,n.idFormat)?v(n.urlTemplate)?`available`:`invalid_template`:`invalid_id`:`disabled`}function h(e={},t=l){let n=t[u(e)];return n?.enabled&&n.appName.trim()?n.appName.trim():null}async function g(e={},t=globalThis.navigator?.clipboard){return!e.session_id||!t?.writeText?!1:(await t.writeText(e.session_id),!0)}function _(e,t){return s.test(e)?t===`any`||o.test(e):!1}function v(e){if(e.split(`{id}`).length!==2||/\s/.test(e))return!1;let t=/^([a-z][a-z0-9+.-]*):/i.exec(e)?.[1]?.toLocaleLowerCase();return!!t&&!c.has(t)}var y=e(w(l)),b=null;function x(){return C(),t(y)}function S(e){y.value=w(e)}function C({force:e=!1}={}){return!e&&b||(b=r(`/api/system/settings`).then(e=>{S(e.configured.conversationLaunchers)}).catch(()=>void 0)),b}function w(e){return Object.fromEntries(i.map(t=>[t,{...l[t],...e?.[t]??{}}]))}export{g as a,h as c,i,p as l,S as n,d as o,x as r,f as s,w as t};
|