fuli-context 0.7.7 → 0.7.8

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.
Files changed (44) hide show
  1. package/dist/web/assets/{AboutPage-BcZeFcHe.js → AboutPage-9CVX91tr.js} +1 -1
  2. package/dist/web/assets/{ConnectionsPage-xAQYl1SQ.js → ConnectionsPage-CWbCVFdv.js} +1 -1
  3. package/dist/web/assets/{EmployeeRecruitDialog-CbPAmhy7.js → EmployeeRecruitDialog-CQgNpGJ_.js} +1 -1
  4. package/dist/web/assets/EmployeeWorkbenchPage-CWg4WJhr.css +1 -0
  5. package/dist/web/assets/EmployeeWorkbenchPage-CwU4qBgD.js +1 -0
  6. package/dist/web/assets/{KnowledgeEditDialog-UnnBDt0I.js → KnowledgeEditDialog-B6TGAcFH.js} +1 -1
  7. package/dist/web/assets/{KnowledgeInspector-BqPJH5Rr.js → KnowledgeInspector-M2pLY0bR.js} +1 -1
  8. package/dist/web/assets/{KnowledgeOrganizerPage-CyvRflXM.js → KnowledgeOrganizerPage-DzeAlk9b.js} +1 -1
  9. package/dist/web/assets/KnowledgePage-BJu9w0fF.js +1 -0
  10. package/dist/web/assets/{KnowledgeWorkspace-CfIjhOog.js → KnowledgeWorkspace-CCt8rnBb.js} +1 -1
  11. package/dist/web/assets/{OverviewPage-Xyfm5xkZ.js → OverviewPage-CZswVqui.js} +1 -1
  12. package/dist/web/assets/{PersonalProfilePage-DB9mByB3.js → PersonalProfilePage-f1nSF6kx.js} +1 -1
  13. package/dist/web/assets/PersonalProjectsPage-D__eJf0t.js +1 -0
  14. package/dist/web/assets/{ProjectAgentsPage-DeeQByPX.js → ProjectAgentsPage-LrwagMGj.js} +1 -1
  15. package/dist/web/assets/{PublicProjectsPage-BEZ1YPs3.js → PublicProjectsPage-BdC2Qk4n.js} +1 -1
  16. package/dist/web/assets/{ReviewPage-CQYGwFBH.js → ReviewPage-Cbgl8_Si.js} +1 -1
  17. package/dist/web/assets/{SearchableSelect-D27H0MoP.js → SearchableSelect-ERm-k4KI.js} +1 -1
  18. package/dist/web/assets/{SettingsPage-BlEZ03Yi.js → SettingsPage-DWso4x29.js} +1 -1
  19. package/dist/web/assets/{WritingTastePage-DvRt_nmP.js → WritingTastePage-CFpCjmIY.js} +1 -1
  20. package/dist/web/assets/{catalog-DFvIaHVS.js → catalog-WGLn7ERJ.js} +1 -1
  21. package/dist/web/assets/{console-tOxOl8Vq.js → console-DQgu0JIA.js} +1 -1
  22. package/dist/web/assets/{conversation-launcher-settings-DuFSpPAo.js → conversation-launcher-settings-0KtlG_LV.js} +1 -1
  23. package/dist/web/assets/{i18n-CgBHZthI.js → i18n-ByRiA3pJ.js} +2 -2
  24. package/dist/web/assets/{identity-CFo_Uw1H.js → identity-CxdPRMwH.js} +1 -1
  25. package/dist/web/assets/index-JAZe6lfX.js +2 -0
  26. package/dist/web/assets/index-wcXzzggp.css +1 -0
  27. package/dist/web/assets/{model-BtnVr7fX.js → model-Db4-KefQ.js} +1 -1
  28. package/dist/web/assets/{useApi-CROJJdhE-B6MHm_Av.js → useApi-CROJJdhE-CePMjc08.js} +1 -1
  29. package/dist/web/assets/{vue-router-CzHm-y-x.js → vue-router-CzX-hn3P.js} +1 -1
  30. package/dist/web/index.html +7 -7
  31. package/graph-provider/pyproject.toml +1 -1
  32. package/npm-shrinkwrap.json +2 -2
  33. package/package.json +1 -1
  34. package/src/cli/update-command.js +6 -43
  35. package/src/http/api-router.js +5 -0
  36. package/src/semantic-version.js +42 -0
  37. package/src/system/package-version-checker.js +72 -0
  38. package/src/system/system-service.js +3 -0
  39. package/dist/web/assets/EmployeeWorkbenchPage-BQvTLoc8.css +0 -1
  40. package/dist/web/assets/EmployeeWorkbenchPage-DF3EL0Ui.js +0 -1
  41. package/dist/web/assets/KnowledgePage-59eczTqe.js +0 -1
  42. package/dist/web/assets/PersonalProjectsPage-_-YXVi5O.js +0 -1
  43. package/dist/web/assets/index-CJc5ppXH.css +0 -1
  44. package/dist/web/assets/index-yCi3cz2l.js +0 -2
@@ -1 +1 @@
1
- import{C as e,S as t,a as n,et as r,g as i,h as a,j as o,rt as s,tt as c,x as l,y as u,z as d}from"./i18n-CgBHZthI.js";import{t as f}from"./console-tOxOl8Vq.js";import{t as p}from"./vue-router-CzHm-y-x.js";import{n as m,t as h}from"./paths-CDREouhi.js";var g={class:`view overview-view`},_=[`aria-label`],v={class:`overview-summary-label`},y={class:`overview-summary-name`},b={class:`overview-summary-meta`},x={class:`overview-summary-action`},S={class:`overview-summary-label`},C={class:`overview-summary-value`},w={class:`overview-summary-meta`},T={class:`overview-summary-action`},E={class:`overview-summary-label`},D={class:`overview-summary-value overview-shared-value`},O={class:`overview-summary-meta`},k={class:`overview-summary-action`},A={class:`two-column`},j={class:`section-block`},M={class:`section-title`},N={class:`flow-list`},P={class:`section-block`},F={class:`section-title`},I={class:`provider-list`},L={class:`provider-row`},R={class:`provider-state`},z={class:`provider-row`},B={class:`provider-state`},V=e({__name:`OverviewPage`,setup(e){let V=f(),H=a(()=>V.state),U=a(()=>V.activePersonalSpace),W=a(()=>U.value?.id??H.value?.activePersonalSpaceId??`current`),G=a(()=>h(`personal`,W.value,`directory`)),K=a(()=>m(W.value,`graph`)),q=a(()=>H.value?.providers?.workspaces??[]),J=a(()=>q.value.filter(({status:e})=>e===`ready`).length),Y=a(()=>V.publicRuntimeStatus===`ready`?`/public-projects`:`/connections`),X=a(()=>V.runtimeStatus===`error`?n(`pages.overview.personalSpaceUnavailable`):V.runtimeStatus===`ready`?n(`pages.overview.personalSpaceLocal`):n(`pages.overview.personalSpaceLoading`)),Z=a(()=>V.publicRuntimeStatus===`error`?n(`pages.overview.publicUnavailable`):V.publicRuntimeStatus===`ready`?String(H.value?.projects.length??0):n(`pages.overview.publicDisconnected`)),Q=a(()=>V.publicRuntimeStatus===`error`?n(`pages.overview.publicUnavailableCopy`):V.publicRuntimeStatus===`ready`?(H.value?.projects.length??0)===0?n(`pages.overview.noSharedProjects`):n(`pages.overview.sharedSubscriptions`,{count:H.value?.subscriptions.length??0}):n(`pages.overview.publicDisconnectedCopy`)),$=a(()=>V.publicRuntimeStatus===`error`?n(`pages.overview.checkConnection`):V.publicRuntimeStatus===`ready`?n(`pages.overview.browseSharedProjects`):n(`pages.overview.connectPublic`));return(e,a)=>(o(),u(`section`,g,[i(`nav`,{class:`overview-summary`,"aria-label":r(n)(`pages.overview.metricsAria`)},[t(r(p),{class:`overview-summary-card overview-space-card`,to:G.value},{default:d(()=>[i(`span`,v,s(r(n)(`pages.overview.currentPersonalSpace`)),1),i(`strong`,y,s(U.value?.name??r(n)(`pages.overview.personalSpaceFallback`)),1),i(`span`,b,[i(`i`,{class:c([`overview-status-dot`,r(V).runtimeStatus===`ready`?`ready`:r(V).runtimeStatus]),"aria-hidden":`true`},null,2),l(` `+s(X.value),1)]),i(`span`,x,[l(s(r(n)(`pages.overview.openKnowledge`))+` `,1),a[0]||=i(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`to`]),t(r(p),{class:`overview-summary-card overview-personal-projects-card`,to:K.value},{default:d(()=>[i(`span`,S,s(r(n)(`pages.overview.personalProjects`)),1),i(`strong`,C,s(H.value?.personalProjects?.length??0),1),i(`span`,w,s(r(n)(`pages.overview.personalProjectsCopy`)),1),i(`span`,T,[l(s(r(n)(`pages.overview.viewPersonalProjects`))+` `,1),a[1]||=i(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`to`]),t(r(p),{class:c([`overview-summary-card overview-shared-projects-card`,`is-${r(V).publicRuntimeStatus}`]),to:Y.value},{default:d(()=>[i(`span`,E,s(r(n)(`pages.overview.sharedProjects`)),1),i(`strong`,D,s(Z.value),1),i(`span`,O,s(Q.value),1),i(`span`,k,[l(s($.value)+` `,1),a[2]||=i(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`class`,`to`])],8,_),i(`div`,A,[i(`section`,j,[i(`div`,M,[i(`h3`,null,s(r(n)(`pages.overview.dataFlow`)),1)]),i(`ol`,N,[i(`li`,null,[a[3]||=i(`span`,null,`1`,-1),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.flow.identifyTitle`)),1),i(`p`,null,s(r(n)(`pages.overview.flow.identifyCopy`)),1)])]),i(`li`,null,[a[4]||=i(`span`,null,`2`,-1),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.flow.structureTitle`)),1),i(`p`,null,s(r(n)(`pages.overview.flow.structureCopy`)),1)])]),i(`li`,null,[a[5]||=i(`span`,null,`3`,-1),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.flow.routeTitle`)),1),i(`p`,null,s(r(n)(`pages.overview.flow.routeCopy`)),1)])])])]),i(`section`,P,[i(`div`,F,[i(`h3`,null,s(r(n)(`pages.overview.serviceStatus`)),1)]),i(`div`,I,[i(`div`,L,[i(`i`,{class:c({error:H.value?.providers?.personal?.status!==`ready`})},null,2),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.localKnowledge`)),1),a[6]||=i(`span`,null,`Graphiti / Neo4j`,-1)]),i(`span`,R,s(H.value?.providers?.personal?.status===`ready`?r(n)(`common.status.connected`):r(n)(`common.status.connectionError`)),1)]),i(`div`,z,[i(`i`,{class:c(r(V).publicRuntimeStatus)},null,2),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.publicService`)),1),i(`span`,null,s(r(V).publicRuntimeStatus===`ready`?r(n)(`pages.overview.sharedServicesReady`,{count:J.value||q.value.length}):r(V).publicRuntimeStatus===`error`?r(n)(`pages.overview.publicTemporarilyUnavailable`):r(n)(`pages.overview.publicOfflineLocalUnaffected`)),1)]),i(`span`,B,s(r(V).publicRuntimeStatus===`ready`?r(n)(`common.status.connected`):r(V).publicRuntimeStatus===`error`?r(n)(`common.status.connectionError`):r(n)(`common.status.notConnected`)),1)])])])])]))}});export{V as default};
1
+ import{C as e,S as t,a as n,et as r,g as i,h as a,j as o,rt as s,tt as c,x as l,y as u,z as d}from"./i18n-ByRiA3pJ.js";import{t as f}from"./console-DQgu0JIA.js";import{t as p}from"./vue-router-CzX-hn3P.js";import{n as m,t as h}from"./paths-CDREouhi.js";var g={class:`view overview-view`},_=[`aria-label`],v={class:`overview-summary-label`},y={class:`overview-summary-name`},b={class:`overview-summary-meta`},x={class:`overview-summary-action`},S={class:`overview-summary-label`},C={class:`overview-summary-value`},w={class:`overview-summary-meta`},T={class:`overview-summary-action`},E={class:`overview-summary-label`},D={class:`overview-summary-value overview-shared-value`},O={class:`overview-summary-meta`},k={class:`overview-summary-action`},A={class:`two-column`},j={class:`section-block`},M={class:`section-title`},N={class:`flow-list`},P={class:`section-block`},F={class:`section-title`},I={class:`provider-list`},L={class:`provider-row`},R={class:`provider-state`},z={class:`provider-row`},B={class:`provider-state`},V=e({__name:`OverviewPage`,setup(e){let V=f(),H=a(()=>V.state),U=a(()=>V.activePersonalSpace),W=a(()=>U.value?.id??H.value?.activePersonalSpaceId??`current`),G=a(()=>h(`personal`,W.value,`directory`)),K=a(()=>m(W.value,`graph`)),q=a(()=>H.value?.providers?.workspaces??[]),J=a(()=>q.value.filter(({status:e})=>e===`ready`).length),Y=a(()=>V.publicRuntimeStatus===`ready`?`/public-projects`:`/connections`),X=a(()=>V.runtimeStatus===`error`?n(`pages.overview.personalSpaceUnavailable`):V.runtimeStatus===`ready`?n(`pages.overview.personalSpaceLocal`):n(`pages.overview.personalSpaceLoading`)),Z=a(()=>V.publicRuntimeStatus===`error`?n(`pages.overview.publicUnavailable`):V.publicRuntimeStatus===`ready`?String(H.value?.projects.length??0):n(`pages.overview.publicDisconnected`)),Q=a(()=>V.publicRuntimeStatus===`error`?n(`pages.overview.publicUnavailableCopy`):V.publicRuntimeStatus===`ready`?(H.value?.projects.length??0)===0?n(`pages.overview.noSharedProjects`):n(`pages.overview.sharedSubscriptions`,{count:H.value?.subscriptions.length??0}):n(`pages.overview.publicDisconnectedCopy`)),$=a(()=>V.publicRuntimeStatus===`error`?n(`pages.overview.checkConnection`):V.publicRuntimeStatus===`ready`?n(`pages.overview.browseSharedProjects`):n(`pages.overview.connectPublic`));return(e,a)=>(o(),u(`section`,g,[i(`nav`,{class:`overview-summary`,"aria-label":r(n)(`pages.overview.metricsAria`)},[t(r(p),{class:`overview-summary-card overview-space-card`,to:G.value},{default:d(()=>[i(`span`,v,s(r(n)(`pages.overview.currentPersonalSpace`)),1),i(`strong`,y,s(U.value?.name??r(n)(`pages.overview.personalSpaceFallback`)),1),i(`span`,b,[i(`i`,{class:c([`overview-status-dot`,r(V).runtimeStatus===`ready`?`ready`:r(V).runtimeStatus]),"aria-hidden":`true`},null,2),l(` `+s(X.value),1)]),i(`span`,x,[l(s(r(n)(`pages.overview.openKnowledge`))+` `,1),a[0]||=i(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`to`]),t(r(p),{class:`overview-summary-card overview-personal-projects-card`,to:K.value},{default:d(()=>[i(`span`,S,s(r(n)(`pages.overview.personalProjects`)),1),i(`strong`,C,s(H.value?.personalProjects?.length??0),1),i(`span`,w,s(r(n)(`pages.overview.personalProjectsCopy`)),1),i(`span`,T,[l(s(r(n)(`pages.overview.viewPersonalProjects`))+` `,1),a[1]||=i(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`to`]),t(r(p),{class:c([`overview-summary-card overview-shared-projects-card`,`is-${r(V).publicRuntimeStatus}`]),to:Y.value},{default:d(()=>[i(`span`,E,s(r(n)(`pages.overview.sharedProjects`)),1),i(`strong`,D,s(Z.value),1),i(`span`,O,s(Q.value),1),i(`span`,k,[l(s($.value)+` `,1),a[2]||=i(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:1},8,[`class`,`to`])],8,_),i(`div`,A,[i(`section`,j,[i(`div`,M,[i(`h3`,null,s(r(n)(`pages.overview.dataFlow`)),1)]),i(`ol`,N,[i(`li`,null,[a[3]||=i(`span`,null,`1`,-1),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.flow.identifyTitle`)),1),i(`p`,null,s(r(n)(`pages.overview.flow.identifyCopy`)),1)])]),i(`li`,null,[a[4]||=i(`span`,null,`2`,-1),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.flow.structureTitle`)),1),i(`p`,null,s(r(n)(`pages.overview.flow.structureCopy`)),1)])]),i(`li`,null,[a[5]||=i(`span`,null,`3`,-1),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.flow.routeTitle`)),1),i(`p`,null,s(r(n)(`pages.overview.flow.routeCopy`)),1)])])])]),i(`section`,P,[i(`div`,F,[i(`h3`,null,s(r(n)(`pages.overview.serviceStatus`)),1)]),i(`div`,I,[i(`div`,L,[i(`i`,{class:c({error:H.value?.providers?.personal?.status!==`ready`})},null,2),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.localKnowledge`)),1),a[6]||=i(`span`,null,`Graphiti / Neo4j`,-1)]),i(`span`,R,s(H.value?.providers?.personal?.status===`ready`?r(n)(`common.status.connected`):r(n)(`common.status.connectionError`)),1)]),i(`div`,z,[i(`i`,{class:c(r(V).publicRuntimeStatus)},null,2),i(`div`,null,[i(`strong`,null,s(r(n)(`pages.overview.publicService`)),1),i(`span`,null,s(r(V).publicRuntimeStatus===`ready`?r(n)(`pages.overview.sharedServicesReady`,{count:J.value||q.value.length}):r(V).publicRuntimeStatus===`error`?r(n)(`pages.overview.publicTemporarilyUnavailable`):r(n)(`pages.overview.publicOfflineLocalUnaffected`)),1)]),i(`span`,B,s(r(V).publicRuntimeStatus===`ready`?r(n)(`common.status.connected`):r(V).publicRuntimeStatus===`error`?r(n)(`common.status.connectionError`):r(n)(`common.status.notConnected`)),1)])])])])]))}});export{V as default};
@@ -1 +1 @@
1
- import{B as e,C as t,L as n,N as r,S as i,Y as a,_ as o,a as s,et as c,g as l,h as u,j as d,l as f,m as p,n as m,nt as h,rt as g,tt as _,u as v,v as y,x as b,y as x,z as S}from"./i18n-CgBHZthI.js";import{a as ee,i as C,r as w,t as te}from"./console-tOxOl8Vq.js";import{t as T}from"./vue-router-CzHm-y-x.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as D}from"./SearchableSelect-D27H0MoP.js";import{a as ne,i as O,n as k,t as A}from"./KnowledgeEditDialog-UnnBDt0I.js";import{n as re,t as ie}from"./KnowledgeInspector-BqPJH5Rr.js";import{C as j,D as ae,E as oe,_ as M,u as N,v as P,x as se}from"./model-BtnVr7fX.js";function ce(e,t=[]){let n=[],r=e.filter(e=>!e.invalidAt);for(let e=0;e<r.length;e+=1)for(let i=e+1;i<r.length;i+=1){let a=r[e],o=r[i];if(!U(a,o)||!W(a,o)||G(a,o))continue;let[c,l]=ue(a,o),u=B(L(c),L(l)),d=H(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&F(e,c,l))??null;n.push({id:q(c,l),preferenceKey:I(c),scopeKey:R(c),scopeLabel:z(c),left:c,right:l,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:s(`preferences.shared.conflictReason`,{key:I(c)}),aiRecord:f})}return n.sort((e,t)=>{let n=m();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function le(e){return[e.left_item_id,e.right_item_id]}function F(e,t,n){let r=new Set([`${e.left_item_kind}:${e.left_item_id}`,`${e.right_item_kind}:${e.right_item_id}`]);return r.has(`${t.itemKind}:${t.id}`)&&r.has(`${n.itemKind}:${n.id}`)}function I(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function L(e){return e.body.trim()}function R(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?s(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):s(`preferences.shared.personalGlobal`)}function B(e,t){let n=J(e),r=J(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&de(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(Y(e,r[t]))}return{shared:a,leftOnly:o,rightOnly:r.filter((e,t)=>!i.has(t)),similarity:a.length/Math.max(n.length,r.length,1)}}function V(e,t){let n=[...J(e)];for(let e of J(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=Y(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function H(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function U(e,t){return R(e)===R(t)}function W(e,t){return X(I(e))===X(I(t))}function G(e,t){return X(L(e))===X(L(t))}function ue(e,t){let n=K(e),r=K(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function K(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function q(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function J(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=X(e),r=X(t);if(n===r)return!0;let i=n.length<=r.length?n:r,a=i===n?r:n;return i.length>=2&&a.includes(i)}function Y(e,t){return X(e).length>=X(t).length?e:t}function X(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var fe={key:0,open:``,class:`project-dialog conflict-resolution-dialog vue-dialog`},pe={class:`project-dialog-shell conflict-resolution-shell`},Z={class:`project-dialog-header`},me=[`disabled`],he=[`aria-label`],Q=[`aria-label`],ge={class:`conflict-side conflict-side-left`},_e={class:`conflict-side-heading`},ve={class:`conflict-side conflict-side-right`},ye={class:`conflict-side-heading`},$=[`aria-label`],be={key:0},xe={key:1,class:`muted`},Se={key:0},Ce={key:1,class:`muted`},we={key:0},Te={key:1,class:`muted`},Ee=[`aria-label`],De=[`aria-pressed`],Oe={key:0},ke=[`aria-pressed`],Ae=[`aria-pressed`],je=[`disabled`,`aria-pressed`],Me={key:0,class:`conflict-resolution-detail`},Ne=[`aria-label`],Pe=[`aria-pressed`],Fe=[`aria-pressed`],Ie={key:1,class:`conflict-resolution-detail`},Le=[`aria-label`],Re=[`aria-pressed`],ze=[`aria-pressed`],Be={value:``,disabled:``},Ve=[`value`],He={class:`conflict-impact-preview`},Ue={class:`conflict-resolution-reason`},We={key:2,class:`dialog-error`},Ge={class:`project-dialog-actions conflict-resolution-actions`},Ke=[`disabled`],qe=[`disabled`],Je=E(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:i}){let o=t,m=i,h=te(),_=a(null),S=a(`right`),w=a(`right`),T=a(``),E=a(``),D=a(``),ne=a(``),O=a(!1),k=a(``),A=u(()=>{let e=o.conflict;if(!e)return[];let t=w.value===`left`?e.left:e.right;return o.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),re=u(()=>A.value.length>0),ie=u(()=>{let e=o.conflict;if(!e||!_.value)return s(`preferences.dialog.impact.choose`);if(_.value===`merge`){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left;return s(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(_.value===`keep_left`||_.value===`keep_right`){let t=_.value===`keep_left`?e.left:e.right,n=_.value===`keep_left`?e.right:e.left;return s(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=w.value===`left`?e.left:e.right,n=A.value.find(({project_id:e})=>e===T.value);return n?s(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):s(`preferences.dialog.impact.chooseProject`)});n(()=>o.conflict,e=>{e&&(S.value=`right`,w.value=`right`,E.value=V(L(e.right),L(e.left)),_.value=e.recommendedAction,T.value=``,k.value=``,ae(e.recommendedAction))},{immediate:!0}),n([w,A],()=>{T.value&&A.value.some(({project_id:e})=>e===T.value)||(T.value=A.value[0]?.project_id??``)},{immediate:!0});function j(e){_.value=e,(!D.value.trim()||D.value===ne.value)&&ae(e)}function ae(e){let t=o.conflict,n=t&&e?F(e,t):``;ne.value=n,D.value=n}async function oe(){let e=o.conflict;if(!e||!_.value)return I(s(`preferences.dialog.errors.actionRequired`));if(!D.value.trim())return I(s(`preferences.dialog.errors.reasonRequired`));if(_.value===`merge`&&!E.value.trim())return I(s(`preferences.dialog.errors.mergedValueRequired`));if(_.value===`split_scope`&&!T.value)return I(s(`preferences.dialog.errors.projectRequired`));O.value=!0,k.value=``;try{_.value===`merge`?await M(e):_.value===`split_scope`?await ce(e):await se(e,_.value),e.aiRecord&&await ee(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:o.personalSpaceId,resolution:_.value,reason:D.value.trim()}),h.notify(s(`preferences.dialog.resolved`)),m(`resolved`),m(`close`)}catch(e){k.value=e instanceof Error?e.message:s(`preferences.dialog.errors.failed`),h.reportError(e)}finally{O.value=!1}}async function M(e){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left,r={personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`update`,reason:D.value.trim()};t.itemKind===`entity`?(r.name=t.title,r.summary=E.value.trim()):r.fact=E.value.trim(),t.classificationExplicit&&t.originQuadrant!==`unclassified`&&(r.originQuadrant=t.originQuadrant,r.confirmationStatus=`confirmed`,r.confirmationBasis={existenceReason:s(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:t.confirmationBasis?.quadrant_reason||t.reasoningSummary||s(`preferences.dialog.audit.keepQuadrant`),proposedBy:t.confirmationBasis?.proposed_by?le(t.confirmationBasis.proposed_by):{kind:`import`,label:s(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:s(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,r),await C(`/api/knowledge/${n.itemKind}/${encodeURIComponent(n.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:t.id,replacementItemKind:t.itemKind})}async function se(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function ce(e){let t=w.value===`left`?e.left:e.right;await ee(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:o.personalSpaceId,scope:`project`,projectId:T.value,reason:D.value.trim()})}function le(e){return{kind:e.kind,label:e.label??null}}function F(e,t){return e===`merge`?s(`preferences.dialog.defaultReason.merge`):e===`keep_left`?s(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?s(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):s(`preferences.dialog.defaultReason.split`)}function I(e){k.value=e}return(n,i)=>t.conflict?(d(),x(`dialog`,fe,[l(`div`,pe,[l(`header`,Z,[l(`div`,null,[i[15]||=l(`p`,{class:`eyebrow`},`CONFLICT RESOLUTION`,-1),l(`h3`,null,g(c(s)(`preferences.dialog.title`)),1),l(`p`,null,g(c(s)(`preferences.dialog.intro`,{reason:t.conflict.reason})),1)]),l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[0]||=e=>m(`close`)},g(c(s)(`common.actions.close`)),9,me)]),l(`section`,{class:`conflict-pair-context`,"aria-label":c(s)(`preferences.dialog.basisAria`)},[l(`span`,null,[b(g(c(s)(`preferences.dialog.preferenceKey`))+` `,1),l(`strong`,null,g(t.conflict.preferenceKey),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.effectiveScope`))+` `,1),l(`strong`,null,g(t.conflict.scopeLabel),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.suggestion`))+` `,1),l(`strong`,null,g(t.conflict.recommendedAction===`merge`?c(s)(`preferences.dialog.mergeSuggestion`):c(s)(`preferences.dialog.reviewSuggestion`)),1)])],8,he),l(`section`,{class:`conflict-comparison`,"aria-label":c(s)(`preferences.dialog.comparisonAria`)},[l(`article`,ge,[l(`div`,_e,[l(`span`,null,g(c(s)(`preferences.dialog.older`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.left))),1)]),l(`h4`,null,g(t.conflict.left.title),1),l(`p`,null,g(c(L)(t.conflict.left)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.left.evidence.length}))+` · `+g(t.conflict.left.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[1]||=e=>m(`edit`,t.conflict.left)},g(c(s)(`preferences.dialog.editA`)),1)]),l(`article`,ve,[l(`div`,ye,[l(`span`,null,g(c(s)(`preferences.dialog.newer`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.right))),1)]),l(`h4`,null,g(t.conflict.right.title),1),l(`p`,null,g(c(L)(t.conflict.right)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.right.evidence.length}))+` · `+g(t.conflict.right.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[2]||=e=>m(`edit`,t.conflict.right)},g(c(s)(`preferences.dialog.editB`)),1)])],8,Q),l(`section`,{class:`conflict-difference`,"aria-label":c(s)(`preferences.dialog.differenceAria`)},[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.shared`)),1),t.conflict.difference.shared.length?(d(),x(`p`,be,[(d(!0),x(p,null,r(t.conflict.difference.shared,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,xe,g(c(s)(`preferences.dialog.noShared`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyA`)),1),t.conflict.difference.leftOnly.length?(d(),x(`p`,Se,[(d(!0),x(p,null,r(t.conflict.difference.leftOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Ce,g(c(s)(`preferences.dialog.noUnique`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyB`)),1),t.conflict.difference.rightOnly.length?(d(),x(`p`,we,[(d(!0),x(p,null,r(t.conflict.difference.rightOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Te,g(c(s)(`preferences.dialog.noUnique`)),1))])],8,$),l(`section`,{class:`conflict-resolution-options`,"aria-label":c(s)(`preferences.dialog.actionsAria`)},[l(`button`,{type:`button`,"aria-pressed":_.value===`merge`,onClick:i[3]||=e=>j(`merge`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.merge`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(d(),x(`em`,Oe,g(c(s)(`preferences.dialog.actions.recommended`)),1)):y(``,!0)],8,De),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_left`,onClick:i[4]||=e=>j(`keep_left`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepA`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepACopy`)),1)],8,ke),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_right`,onClick:i[5]||=e=>j(`keep_right`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepB`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ae),l(`button`,{type:`button`,disabled:!re.value,"aria-pressed":_.value===`split_scope`,onClick:i[6]||=e=>j(`split_scope`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.split`)),1),l(`span`,null,g(re.value?c(s)(`preferences.dialog.actions.splitCopy`):c(s)(`preferences.dialog.actions.noProjects`)),1)],8,je)],8,Ee),_.value===`merge`?(d(),x(`section`,Me,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.mergeIdentityAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.canonicalIdentity`)),1),l(`button`,{type:`button`,"aria-pressed":S.value===`left`,onClick:i[7]||=e=>S.value=`left`},g(c(s)(`preferences.dialog.identityA`)),9,Pe),l(`button`,{type:`button`,"aria-pressed":S.value===`right`,onClick:i[8]||=e=>S.value=`right`},g(c(s)(`preferences.dialog.identityB`)),9,Fe)],8,Ne),l(`label`,null,[b(g(c(s)(`preferences.dialog.mergedContent`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[9]||=e=>E.value=e,rows:`4`,maxlength:`4096`},null,512),[[v,E.value]])])])):y(``,!0),_.value===`split_scope`?(d(),x(`section`,Ie,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.splitRecordAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.adjustRecord`)),1),l(`button`,{type:`button`,"aria-pressed":w.value===`left`,onClick:i[10]||=e=>w.value=`left`},` A `,8,Re),l(`button`,{type:`button`,"aria-pressed":w.value===`right`,onClick:i[11]||=e=>w.value=`right`},` B `,8,ze)],8,Le),l(`label`,null,[b(g(c(s)(`preferences.dialog.projectOnly`))+` `,1),e(l(`select`,{"onUpdate:modelValue":i[12]||=e=>T.value=e},[l(`option`,Be,g(c(s)(`preferences.dialog.chooseProject`)),1),(d(!0),x(p,null,r(A.value,e=>(d(),x(`option`,{key:e.project_id,value:e.project_id},g(e.profile.name),9,Ve))),128))],512),[[f,T.value]])])])):y(``,!0),l(`section`,He,[l(`span`,null,g(c(s)(`preferences.dialog.impactTitle`)),1),l(`p`,null,g(ie.value),1)]),l(`label`,Ue,[b(g(c(s)(`preferences.dialog.reason`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[13]||=e=>D.value=e,rows:`2`,maxlength:`2000`},null,512),[[v,D.value]])]),k.value?(d(),x(`p`,We,g(k.value),1)):y(``,!0),l(`footer`,Ge,[l(`span`,null,g(c(s)(`preferences.dialog.pendingCopy`)),1),l(`div`,null,[l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[14]||=e=>m(`close`)},g(c(s)(`preferences.dialog.defer`)),9,Ke),l(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!_.value,onClick:oe},g(O.value?c(s)(`preferences.dialog.processing`):c(s)(`preferences.dialog.confirm`)),9,qe)])])])])):y(``,!0)}}),[[`__scopeId`,`data-v-dee70ac5`]]),Ye=[`aria-label`],Xe={class:`writing-taste-milestone__copy`},Ze={class:`writing-taste-milestone__heading`},Qe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},$e={class:`writing-taste-milestone__metrics`},et=E(t({__name:`WritingTasteMilestone`,props:{profile:{}},setup(e){let t=e,n=u(()=>t.profile?.ready===!0),r=u(()=>t.profile?.status===`active`?s(`writingTaste.milestone.activeTitle`):t.profile?.status===`preview_ready`?s(`writingTaste.milestone.previewTitle`):s(`writingTaste.milestone.collectingTitle`)),i=u(()=>n.value?s(`writingTaste.milestone.readyCopy`):s(`writingTaste.milestone.collectingCopy`)),a=u(()=>{let e=t.profile?.readiness;if(!e)return 0;let n=[f(e.rule_count,e.thresholds.rule_count),f(e.evidence_count,e.thresholds.evidence_count),f(e.session_count,e.thresholds.session_count),f(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(n.reduce((e,t)=>e+t,0)/n.length*100)});function f(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(t,u)=>e.profile?(d(),x(`section`,{key:0,class:_([`writing-taste-milestone`,`status-${e.profile.status}`]),"aria-label":c(s)(`writingTaste.milestone.aria`)},[u[1]||=l(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[l(`span`),l(`span`),l(`span`)],-1),l(`div`,Xe,[l(`div`,Ze,[l(`h2`,null,g(r.value),1),l(`span`,null,g(c(s)(`writingTaste.status.${e.profile.status}`)),1)]),l(`p`,null,g(i.value),1),l(`div`,Qe,[l(`i`,{style:h({width:`${a.value}%`})},null,4)]),l(`div`,$e,[l(`small`,null,g(c(s)(`writingTaste.milestone.rules`,{current:e.profile.readiness.rule_count,target:e.profile.readiness.thresholds.rule_count})),1),l(`small`,null,g(c(s)(`writingTaste.milestone.sessions`,{current:e.profile.readiness.session_count,target:e.profile.readiness.thresholds.session_count})),1)])]),n.value?(d(),o(c(T),{key:0,class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:S(()=>[b(g(c(s)(`writingTaste.milestone.open`))+` `,1),u[0]||=l(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})):y(``,!0)],10,Ye)):y(``,!0)}}),[[`__scopeId`,`data-v-d56b0112`]]),tt={class:`view vue-personal-profile`},nt=[`aria-label`],rt=[`aria-label`,`aria-pressed`],it=[`aria-label`,`aria-pressed`],at=[`aria-label`,`aria-pressed`],ot={key:0},st={key:1},ct=[`aria-label`,`aria-pressed`],lt=[`aria-label`],ut={class:`personal-profile-toolbar`},dt={class:`personal-profile-filter-groups`},ft=[`aria-label`],pt=[`aria-pressed`,`onClick`],mt={class:`personal-profile-toolbar-actions`},ht={key:0,class:`muted`},gt={key:1,class:`muted`},_t={key:2,class:`muted`},vt=[`aria-label`],yt={class:`preference-conflict-list`},bt={class:`preference-conflict-card-heading`},xt={class:`preference-conflict-pair`},St={key:0},Ct={class:`preference-conflict-actions`},wt=[`disabled`,`onClick`],Tt=[`onClick`],Et={key:0,class:`empty-state`},Dt={key:3,class:`personal-profile-layout`},Ot={class:`personal-profile-table-head`,"aria-hidden":`true`},kt=[`onClick`],At={class:`personal-profile-copy`},jt={class:`personal-profile-origin`},Mt={class:`empty-state`},Nt=E(t({__name:`PersonalProfilePage`,setup(e){let t=te(),f=a(null),h=a(null),v=a(!1),C=O(u(()=>v.value&&!f.value)),T=a(`all`),E=a(`all`),F=a(`all`),I=a(!1),R=a(null),z=a(null),B=a(null),V=a(null),H=a([]),U=a(``),W=u(()=>se(f.value)),G=u(()=>ce(W.value,H.value)),ue=u(()=>new Set(G.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),K=u(()=>new Set(H.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(le))),q=u(()=>W.value.filter(e=>$(e)&&(F.value===`all`||M(e)===F.value))),J=u(()=>JSON.stringify([T.value,E.value,F.value,I.value])),de=u(()=>R.value?q.value.findIndex(({id:e,itemKind:t})=>e===R.value?.id&&t===R.value?.itemKind):-1),Y=u(()=>G.value.filter(({left:e,right:t})=>$(e)||$(t))),X=u(()=>[[`all`,s(`preferences.profile.filters.all`)],[`taste`,s(`preferences.profile.filters.taste`)],[`personality`,s(`preferences.profile.filters.personality`)],[`judgment_preference`,s(`preferences.profile.filters.judgment`)]]),fe=u(()=>{let e=new Map((t.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),n=[...new Set(W.value.filter(({preferenceScope:e,preferenceProjectId:t})=>e===`project`&&!!t).map(({preferenceProjectId:e})=>e))].sort((t,n)=>(e.get(t)??t).localeCompare(e.get(n)??n,m()));return[{value:`all`,label:s(`preferences.profile.scopes.all`),meta:s(`common.counts.items`,{count:W.value.length})},{value:`global`,label:s(`preferences.profile.scopes.global`),meta:s(`common.counts.items`,{count:W.value.filter(({preferenceScope:e})=>e!==`project`).length})},...n.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:s(`preferences.profile.scopes.projectMeta`,{count:W.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),pe=u(()=>W.value.filter(e=>M(e)===`confirmed`).length),Z=u(()=>W.value.filter(e=>M(e)===`pending`).length),me=u(()=>W.value.filter(e=>M(e)===`agent_confirmed`).length),he=u(()=>I.value?s(`preferences.profile.summaryGuidance.conflicts`):F.value===`pending`?s(`preferences.profile.summaryGuidance.pending`):F.value===`confirmed`?s(`preferences.profile.summaryGuidance.confirmed`):F.value===`agent_confirmed`?s(`preferences.profile.summaryGuidance.agentConfirmed`):s(`preferences.profile.summaryGuidance.default`));n(()=>t.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0}),n([T,E,F,I],()=>{R.value&&!q.value.some(({id:e})=>e===R.value?.id)&&(R.value=null)}),n(fe,e=>{e.some(({value:e})=>e===E.value)||(E.value=`all`)});async function Q(e=t.activePersonalSpace?.id){if(e){v.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`}),n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a,o]=await Promise.all([w(`/api/graph?${t}`),w(`/api/preference-conflicts?${n}`),w(`/api/writing-taste-profile?${r}`).catch(()=>null)]);f.value=i,H.value=Array.isArray(a)?a:[],h.value=ge(o)?o:null,R.value&&=W.value.find(({id:e})=>e===R.value?.id)??null}catch(e){f.value=null,h.value=null,t.reportError(e)}finally{v.value=!1}}}function ge(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 _e(e){let t=ae(e),n=G.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${s(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${s(`preferences.profile.statusSuffix.conflict`)}`:K.value.has(e.id)?`${t} · ${s(`preferences.profile.statusSuffix.aiResolved`)}`:t}function ve(e){return`${e.itemKind}:${e.id}`}function ye(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return s(`preferences.shared.personalGlobal`);let n=t.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return s(`preferences.shared.projectOnly`,{project:n?.profile.name??e.preferenceProjectId})}function $(e){if(T.value!==`all`&&e.profileAspect!==T.value||E.value===`global`&&e.preferenceScope===`project`)return!1;if(E.value.startsWith(`project:`)){let t=E.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function be(e){if(e.scopeKey===`global`)return s(`preferences.shared.personalGlobal`);let n=e.scopeKey.slice(8),r=t.state?.personalProjects?.find(({project_id:e})=>e===n);return s(`preferences.shared.projectOnly`,{project:r?.profile.name??n})}function xe(e){T.value=e.profileAspect??`all`,E.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,I.value=!1,R.value=e}function Se(e){V.value=null,B.value=e}function Ce(e){let t=!I.value&&F.value===e?`all`:e;I.value=!1,F.value=t,t!==`all`&&(R.value=q.value.at(0)??null)}function we(e=!1){let t=e||!I.value;I.value=t,t&&(F.value=`all`,R.value=null)}async function Te(e){let n=t.activePersonalSpace?.id;if(!(!n||e.aiRecord)){U.value=e.id;try{let r=await ee(`/api/preference-conflicts/defer`,{personalSpaceId:n,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:s(`preferences.profile.deferReason`)});H.value=[r,...H.value.filter(({id:e})=>e!==r.id)],t.notify(s(`preferences.profile.deferNotice`))}catch(e){t.reportError(e)}finally{U.value=``}}}return(e,n)=>(d(),x(`section`,tt,[l(`div`,{class:`personal-profile-summary`,"aria-label":c(s)(`preferences.profile.summaryAria`)},[l(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":c(s)(`preferences.profile.summary.confirmedAria`,{count:pe.value}),"aria-pressed":!I.value&&F.value===`confirmed`,onClick:n[0]||=e=>Ce(`confirmed`)},[l(`strong`,null,g(pe.value),1),b(g(c(s)(`preferences.profile.summary.confirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.viewRecords`)),1)],8,rt),l(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":c(s)(`preferences.profile.summary.agentConfirmedAria`,{count:me.value}),"aria-pressed":!I.value&&F.value===`agent_confirmed`,onClick:n[1]||=e=>Ce(`agent_confirmed`)},[l(`strong`,null,g(me.value),1),b(g(c(s)(`preferences.profile.summary.agentConfirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.belowHuman`)),1)],8,it),l(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":c(s)(`preferences.profile.summary.pendingAria`,{count:Z.value}),"aria-pressed":!I.value&&F.value===`pending`,onClick:n[2]||=e=>Ce(`pending`)},[l(`strong`,null,g(Z.value),1),b(g(c(s)(`preferences.profile.summary.pending`))+` `,1),Z.value?(d(),x(`small`,ot,g(c(s)(`preferences.profile.summary.reviewAndConfirm`)),1)):(d(),x(`small`,st,g(c(s)(`preferences.profile.summary.viewRecords`)),1))],8,at),l(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":G.value.length?c(s)(`preferences.profile.summary.conflictAria`,{count:G.value.length}):c(s)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":I.value,onClick:n[3]||=e=>we()},[l(`strong`,null,g(G.value.length),1),b(g(c(s)(`preferences.profile.summary.conflicts`))+` `,1),l(`small`,null,g(G.value.length?c(s)(`preferences.profile.summary.reviewAndHandle`):c(s)(`preferences.profile.summary.viewRecords`)),1)],8,ct),l(`p`,null,g(he.value),1)],8,nt),i(et,{profile:h.value},null,8,[`profile`]),G.value.length&&!I.value&&F.value===`all`?(d(),x(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":c(s)(`preferences.profile.alert.aria`)},[n[15]||=l(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.alert.kicker`)),1),l(`h2`,null,g(c(s)(`preferences.profile.alert.title`,{count:G.value.length})),1),l(`p`,null,g(c(s)(`preferences.profile.alert.copy`)),1)]),l(`button`,{class:`primary-action`,type:`button`,onClick:n[4]||=e=>we(!0)},g(c(s)(`preferences.profile.alert.action`)),1)],8,lt)):y(``,!0),l(`div`,ut,[l(`div`,dt,[l(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":c(s)(`preferences.profile.filters.aspectAria`)},[(d(!0),x(p,null,r(X.value,([e,t])=>(d(),x(`button`,{key:e,type:`button`,"aria-pressed":T.value===e,onClick:t=>T.value=e},g(t),9,pt))),128))],8,ft),i(D,{modelValue:E.value,"onUpdate:modelValue":n[5]||=e=>E.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:c(s)(`preferences.profile.filters.scopeLabel`),options:fe.value,"search-placeholder":c(s)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),l(`div`,mt,[I.value?(d(),x(`span`,ht,g(c(s)(`preferences.profile.filters.conflictsCount`,{visible:Y.value.length,total:G.value.length})),1)):F.value===`all`?(d(),x(`span`,_t,g(q.value.length===W.value.length?c(s)(`preferences.profile.filters.personalUnderstanding`,{count:W.value.length}):c(s)(`preferences.profile.filters.visibleCount`,{visible:q.value.length,total:W.value.length})),1)):(d(),x(`span`,gt,g(c(s)(`preferences.profile.filters.reviewCount`,{count:q.value.length,status:F.value===`pending`?c(s)(`preferences.profile.summary.pending`):F.value===`agent_confirmed`?c(s)(`preferences.profile.summary.agentConfirmed`):c(s)(`preferences.profile.summary.confirmed`)})),1)),l(`button`,{class:`toolbar-action`,type:`button`,onClick:n[6]||=e=>Q()},g(c(s)(`common.actions.refresh`)),1)])]),c(C)?(d(),o(ne,{key:1,label:c(s)(`preferences.profile.directory.loading`)},null,8,[`label`])):I.value?(d(),x(`section`,{key:2,class:`preference-conflict-workbench`,"aria-label":c(s)(`preferences.profile.workbench.aria`)},[l(`header`,null,[l(`div`,null,[n[16]||=l(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),l(`h2`,null,g(c(s)(`preferences.profile.workbench.title`)),1)]),l(`p`,null,g(c(s)(`preferences.profile.workbench.copy`)),1)]),l(`div`,yt,[(d(!0),x(p,null,r(Y.value,(e,t)=>(d(),x(`article`,{key:e.id,class:`preference-conflict-card`},[l(`div`,bt,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.group`,{index:t+1})),1),l(`h3`,null,g(e.preferenceKey),1)]),l(`div`,null,[l(`span`,null,g(be(e)),1),l(`strong`,null,g(e.aiRecord?c(s)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?c(s)(`preferences.profile.workbench.mergeSuggested`):c(s)(`preferences.profile.workbench.humanReview`)),1)])]),l(`div`,xt,[l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.older`)),1),l(`strong`,null,g(e.left.title),1),l(`p`,null,g(c(L)(e.left)),1),l(`small`,null,g(c(N)(c(P)(e.left))),1)]),n[17]||=l(`i`,{"aria-hidden":`true`},`↔`,-1),l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.newer`)),1),l(`strong`,null,g(e.right.title),1),l(`p`,null,g(c(L)(e.right)),1),l(`small`,null,g(c(N)(c(P)(e.right))),1)])]),l(`footer`,null,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.reason`)),1),l(`p`,null,g(e.reason),1),e.difference.rightOnly.length?(d(),x(`small`,St,g(c(s)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):y(``,!0)]),l(`div`,Ct,[l(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||U.value===e.id,onClick:t=>Te(e)},g(e.aiRecord?c(s)(`preferences.profile.workbench.deferred`):U.value===e.id?c(s)(`preferences.profile.workbench.deferring`):c(s)(`preferences.profile.workbench.defer`)),9,wt),l(`button`,{class:`primary-action`,type:`button`,onClick:t=>V.value=e},g(c(s)(`preferences.profile.workbench.handleNow`)),9,Tt)])])]))),128))]),v.value||!Y.value.length?(d(),x(`div`,Et,g(v.value?c(s)(`preferences.profile.workbench.loading`):G.value.length?c(s)(`preferences.profile.workbench.noFiltered`):c(s)(`preferences.profile.workbench.empty`)),1)):y(``,!0)],8,vt)):(d(),x(`div`,Dt,[i(re,{class:`personal-profile-directory`,items:q.value,"row-height":76,"active-index":de.value,"reset-key":J.value,"item-key":ve,label:c(s)(`preferences.profile.directory.aria`)},{header:S(()=>[l(`div`,Ot,[l(`span`,null,g(c(s)(`preferences.profile.directory.aspect`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.content`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.statusScopeSource`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.updated`)),1)])]),default:S(({item:e})=>[l(`button`,{class:_([`personal-profile-row`,{selected:R.value?.id===e.id,"pending-review":c(M)(e)===`pending`,"ai-resolved-conflict":K.value.has(e.id)}]),type:`button`,onClick:t=>R.value=e},[l(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},g(c(j)(e.profileAspect)),3),l(`span`,At,[l(`strong`,null,g(e.title),1),l(`small`,null,g(e.body),1)]),l(`span`,jt,[l(`strong`,{class:_({"has-conflict":ue.value.has(e.id)})},g(_e(e)),3),l(`small`,null,g(c(oe)(e.originQuadrant))+` · `+g(ye(e))+` · `+g(c(s)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),l(`time`,null,g(c(N)(c(P)(e))),1)],10,kt)]),empty:S(()=>[l(`div`,Mt,g(W.value.length?c(s)(`preferences.profile.directory.noFiltered`):c(s)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),i(ie,{class:`personal-profile-inspector`,item:R.value,graph:f.value,editable:``,onConfirm:n[7]||=e=>z.value=e,onEdit:n[8]||=e=>B.value=e,onOpenReplacement:xe},null,8,[`item`,`graph`])])),i(A,{item:B.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,projects:c(t).state?.personalProjects??[],"replacement-items":W.value,onClose:n[9]||=e=>B.value=null,onSaved:n[10]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),i(k,{item:z.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,onClose:n[11]||=e=>z.value=null,onSaved:n[12]||=e=>Q()},null,8,[`item`,`personal-space-id`]),i(Je,{conflict:V.value,"personal-space-id":c(t).activePersonalSpace?.id??``,projects:c(t).state?.personalProjects??[],onClose:n[13]||=e=>V.value=null,onResolved:n[14]||=e=>Q(),onEdit:Se},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7fb5a54c`]]);export{Nt as default};
1
+ import{B as e,C as t,L as n,N as r,S as i,Y as a,_ as o,a as s,et as c,g as l,h as u,j as d,l as f,m as p,n as m,nt as h,rt as g,tt as _,u as v,v as y,x as b,y as x,z as S}from"./i18n-ByRiA3pJ.js";import{a as ee,i as C,r as w,t as te}from"./console-DQgu0JIA.js";import{t as T}from"./vue-router-CzX-hn3P.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as D}from"./SearchableSelect-ERm-k4KI.js";import{a as ne,i as O,n as k,t as A}from"./KnowledgeEditDialog-B6TGAcFH.js";import{n as re,t as ie}from"./KnowledgeInspector-M2pLY0bR.js";import{C as j,D as ae,E as oe,_ as M,u as N,v as P,x as se}from"./model-Db4-KefQ.js";function ce(e,t=[]){let n=[],r=e.filter(e=>!e.invalidAt);for(let e=0;e<r.length;e+=1)for(let i=e+1;i<r.length;i+=1){let a=r[e],o=r[i];if(!U(a,o)||!W(a,o)||G(a,o))continue;let[c,l]=ue(a,o),u=B(L(c),L(l)),d=H(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&F(e,c,l))??null;n.push({id:q(c,l),preferenceKey:I(c),scopeKey:R(c),scopeLabel:z(c),left:c,right:l,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:s(`preferences.shared.conflictReason`,{key:I(c)}),aiRecord:f})}return n.sort((e,t)=>{let n=m();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function le(e){return[e.left_item_id,e.right_item_id]}function F(e,t,n){let r=new Set([`${e.left_item_kind}:${e.left_item_id}`,`${e.right_item_kind}:${e.right_item_id}`]);return r.has(`${t.itemKind}:${t.id}`)&&r.has(`${n.itemKind}:${n.id}`)}function I(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function L(e){return e.body.trim()}function R(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?s(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):s(`preferences.shared.personalGlobal`)}function B(e,t){let n=J(e),r=J(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&de(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(Y(e,r[t]))}return{shared:a,leftOnly:o,rightOnly:r.filter((e,t)=>!i.has(t)),similarity:a.length/Math.max(n.length,r.length,1)}}function V(e,t){let n=[...J(e)];for(let e of J(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=Y(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function H(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function U(e,t){return R(e)===R(t)}function W(e,t){return X(I(e))===X(I(t))}function G(e,t){return X(L(e))===X(L(t))}function ue(e,t){let n=K(e),r=K(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function K(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function q(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function J(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=X(e),r=X(t);if(n===r)return!0;let i=n.length<=r.length?n:r,a=i===n?r:n;return i.length>=2&&a.includes(i)}function Y(e,t){return X(e).length>=X(t).length?e:t}function X(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var fe={key:0,open:``,class:`project-dialog conflict-resolution-dialog vue-dialog`},pe={class:`project-dialog-shell conflict-resolution-shell`},Z={class:`project-dialog-header`},me=[`disabled`],he=[`aria-label`],Q=[`aria-label`],ge={class:`conflict-side conflict-side-left`},_e={class:`conflict-side-heading`},ve={class:`conflict-side conflict-side-right`},ye={class:`conflict-side-heading`},$=[`aria-label`],be={key:0},xe={key:1,class:`muted`},Se={key:0},Ce={key:1,class:`muted`},we={key:0},Te={key:1,class:`muted`},Ee=[`aria-label`],De=[`aria-pressed`],Oe={key:0},ke=[`aria-pressed`],Ae=[`aria-pressed`],je=[`disabled`,`aria-pressed`],Me={key:0,class:`conflict-resolution-detail`},Ne=[`aria-label`],Pe=[`aria-pressed`],Fe=[`aria-pressed`],Ie={key:1,class:`conflict-resolution-detail`},Le=[`aria-label`],Re=[`aria-pressed`],ze=[`aria-pressed`],Be={value:``,disabled:``},Ve=[`value`],He={class:`conflict-impact-preview`},Ue={class:`conflict-resolution-reason`},We={key:2,class:`dialog-error`},Ge={class:`project-dialog-actions conflict-resolution-actions`},Ke=[`disabled`],qe=[`disabled`],Je=E(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:i}){let o=t,m=i,h=te(),_=a(null),S=a(`right`),w=a(`right`),T=a(``),E=a(``),D=a(``),ne=a(``),O=a(!1),k=a(``),A=u(()=>{let e=o.conflict;if(!e)return[];let t=w.value===`left`?e.left:e.right;return o.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),re=u(()=>A.value.length>0),ie=u(()=>{let e=o.conflict;if(!e||!_.value)return s(`preferences.dialog.impact.choose`);if(_.value===`merge`){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left;return s(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(_.value===`keep_left`||_.value===`keep_right`){let t=_.value===`keep_left`?e.left:e.right,n=_.value===`keep_left`?e.right:e.left;return s(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=w.value===`left`?e.left:e.right,n=A.value.find(({project_id:e})=>e===T.value);return n?s(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):s(`preferences.dialog.impact.chooseProject`)});n(()=>o.conflict,e=>{e&&(S.value=`right`,w.value=`right`,E.value=V(L(e.right),L(e.left)),_.value=e.recommendedAction,T.value=``,k.value=``,ae(e.recommendedAction))},{immediate:!0}),n([w,A],()=>{T.value&&A.value.some(({project_id:e})=>e===T.value)||(T.value=A.value[0]?.project_id??``)},{immediate:!0});function j(e){_.value=e,(!D.value.trim()||D.value===ne.value)&&ae(e)}function ae(e){let t=o.conflict,n=t&&e?F(e,t):``;ne.value=n,D.value=n}async function oe(){let e=o.conflict;if(!e||!_.value)return I(s(`preferences.dialog.errors.actionRequired`));if(!D.value.trim())return I(s(`preferences.dialog.errors.reasonRequired`));if(_.value===`merge`&&!E.value.trim())return I(s(`preferences.dialog.errors.mergedValueRequired`));if(_.value===`split_scope`&&!T.value)return I(s(`preferences.dialog.errors.projectRequired`));O.value=!0,k.value=``;try{_.value===`merge`?await M(e):_.value===`split_scope`?await ce(e):await se(e,_.value),e.aiRecord&&await ee(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:o.personalSpaceId,resolution:_.value,reason:D.value.trim()}),h.notify(s(`preferences.dialog.resolved`)),m(`resolved`),m(`close`)}catch(e){k.value=e instanceof Error?e.message:s(`preferences.dialog.errors.failed`),h.reportError(e)}finally{O.value=!1}}async function M(e){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left,r={personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`update`,reason:D.value.trim()};t.itemKind===`entity`?(r.name=t.title,r.summary=E.value.trim()):r.fact=E.value.trim(),t.classificationExplicit&&t.originQuadrant!==`unclassified`&&(r.originQuadrant=t.originQuadrant,r.confirmationStatus=`confirmed`,r.confirmationBasis={existenceReason:s(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:t.confirmationBasis?.quadrant_reason||t.reasoningSummary||s(`preferences.dialog.audit.keepQuadrant`),proposedBy:t.confirmationBasis?.proposed_by?le(t.confirmationBasis.proposed_by):{kind:`import`,label:s(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:s(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,r),await C(`/api/knowledge/${n.itemKind}/${encodeURIComponent(n.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:t.id,replacementItemKind:t.itemKind})}async function se(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function ce(e){let t=w.value===`left`?e.left:e.right;await ee(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:o.personalSpaceId,scope:`project`,projectId:T.value,reason:D.value.trim()})}function le(e){return{kind:e.kind,label:e.label??null}}function F(e,t){return e===`merge`?s(`preferences.dialog.defaultReason.merge`):e===`keep_left`?s(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?s(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):s(`preferences.dialog.defaultReason.split`)}function I(e){k.value=e}return(n,i)=>t.conflict?(d(),x(`dialog`,fe,[l(`div`,pe,[l(`header`,Z,[l(`div`,null,[i[15]||=l(`p`,{class:`eyebrow`},`CONFLICT RESOLUTION`,-1),l(`h3`,null,g(c(s)(`preferences.dialog.title`)),1),l(`p`,null,g(c(s)(`preferences.dialog.intro`,{reason:t.conflict.reason})),1)]),l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[0]||=e=>m(`close`)},g(c(s)(`common.actions.close`)),9,me)]),l(`section`,{class:`conflict-pair-context`,"aria-label":c(s)(`preferences.dialog.basisAria`)},[l(`span`,null,[b(g(c(s)(`preferences.dialog.preferenceKey`))+` `,1),l(`strong`,null,g(t.conflict.preferenceKey),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.effectiveScope`))+` `,1),l(`strong`,null,g(t.conflict.scopeLabel),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.suggestion`))+` `,1),l(`strong`,null,g(t.conflict.recommendedAction===`merge`?c(s)(`preferences.dialog.mergeSuggestion`):c(s)(`preferences.dialog.reviewSuggestion`)),1)])],8,he),l(`section`,{class:`conflict-comparison`,"aria-label":c(s)(`preferences.dialog.comparisonAria`)},[l(`article`,ge,[l(`div`,_e,[l(`span`,null,g(c(s)(`preferences.dialog.older`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.left))),1)]),l(`h4`,null,g(t.conflict.left.title),1),l(`p`,null,g(c(L)(t.conflict.left)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.left.evidence.length}))+` · `+g(t.conflict.left.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[1]||=e=>m(`edit`,t.conflict.left)},g(c(s)(`preferences.dialog.editA`)),1)]),l(`article`,ve,[l(`div`,ye,[l(`span`,null,g(c(s)(`preferences.dialog.newer`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.right))),1)]),l(`h4`,null,g(t.conflict.right.title),1),l(`p`,null,g(c(L)(t.conflict.right)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.right.evidence.length}))+` · `+g(t.conflict.right.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[2]||=e=>m(`edit`,t.conflict.right)},g(c(s)(`preferences.dialog.editB`)),1)])],8,Q),l(`section`,{class:`conflict-difference`,"aria-label":c(s)(`preferences.dialog.differenceAria`)},[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.shared`)),1),t.conflict.difference.shared.length?(d(),x(`p`,be,[(d(!0),x(p,null,r(t.conflict.difference.shared,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,xe,g(c(s)(`preferences.dialog.noShared`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyA`)),1),t.conflict.difference.leftOnly.length?(d(),x(`p`,Se,[(d(!0),x(p,null,r(t.conflict.difference.leftOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Ce,g(c(s)(`preferences.dialog.noUnique`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyB`)),1),t.conflict.difference.rightOnly.length?(d(),x(`p`,we,[(d(!0),x(p,null,r(t.conflict.difference.rightOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Te,g(c(s)(`preferences.dialog.noUnique`)),1))])],8,$),l(`section`,{class:`conflict-resolution-options`,"aria-label":c(s)(`preferences.dialog.actionsAria`)},[l(`button`,{type:`button`,"aria-pressed":_.value===`merge`,onClick:i[3]||=e=>j(`merge`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.merge`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(d(),x(`em`,Oe,g(c(s)(`preferences.dialog.actions.recommended`)),1)):y(``,!0)],8,De),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_left`,onClick:i[4]||=e=>j(`keep_left`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepA`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepACopy`)),1)],8,ke),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_right`,onClick:i[5]||=e=>j(`keep_right`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepB`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ae),l(`button`,{type:`button`,disabled:!re.value,"aria-pressed":_.value===`split_scope`,onClick:i[6]||=e=>j(`split_scope`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.split`)),1),l(`span`,null,g(re.value?c(s)(`preferences.dialog.actions.splitCopy`):c(s)(`preferences.dialog.actions.noProjects`)),1)],8,je)],8,Ee),_.value===`merge`?(d(),x(`section`,Me,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.mergeIdentityAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.canonicalIdentity`)),1),l(`button`,{type:`button`,"aria-pressed":S.value===`left`,onClick:i[7]||=e=>S.value=`left`},g(c(s)(`preferences.dialog.identityA`)),9,Pe),l(`button`,{type:`button`,"aria-pressed":S.value===`right`,onClick:i[8]||=e=>S.value=`right`},g(c(s)(`preferences.dialog.identityB`)),9,Fe)],8,Ne),l(`label`,null,[b(g(c(s)(`preferences.dialog.mergedContent`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[9]||=e=>E.value=e,rows:`4`,maxlength:`4096`},null,512),[[v,E.value]])])])):y(``,!0),_.value===`split_scope`?(d(),x(`section`,Ie,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.splitRecordAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.adjustRecord`)),1),l(`button`,{type:`button`,"aria-pressed":w.value===`left`,onClick:i[10]||=e=>w.value=`left`},` A `,8,Re),l(`button`,{type:`button`,"aria-pressed":w.value===`right`,onClick:i[11]||=e=>w.value=`right`},` B `,8,ze)],8,Le),l(`label`,null,[b(g(c(s)(`preferences.dialog.projectOnly`))+` `,1),e(l(`select`,{"onUpdate:modelValue":i[12]||=e=>T.value=e},[l(`option`,Be,g(c(s)(`preferences.dialog.chooseProject`)),1),(d(!0),x(p,null,r(A.value,e=>(d(),x(`option`,{key:e.project_id,value:e.project_id},g(e.profile.name),9,Ve))),128))],512),[[f,T.value]])])])):y(``,!0),l(`section`,He,[l(`span`,null,g(c(s)(`preferences.dialog.impactTitle`)),1),l(`p`,null,g(ie.value),1)]),l(`label`,Ue,[b(g(c(s)(`preferences.dialog.reason`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[13]||=e=>D.value=e,rows:`2`,maxlength:`2000`},null,512),[[v,D.value]])]),k.value?(d(),x(`p`,We,g(k.value),1)):y(``,!0),l(`footer`,Ge,[l(`span`,null,g(c(s)(`preferences.dialog.pendingCopy`)),1),l(`div`,null,[l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[14]||=e=>m(`close`)},g(c(s)(`preferences.dialog.defer`)),9,Ke),l(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!_.value,onClick:oe},g(O.value?c(s)(`preferences.dialog.processing`):c(s)(`preferences.dialog.confirm`)),9,qe)])])])])):y(``,!0)}}),[[`__scopeId`,`data-v-dee70ac5`]]),Ye=[`aria-label`],Xe={class:`writing-taste-milestone__copy`},Ze={class:`writing-taste-milestone__heading`},Qe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},$e={class:`writing-taste-milestone__metrics`},et=E(t({__name:`WritingTasteMilestone`,props:{profile:{}},setup(e){let t=e,n=u(()=>t.profile?.ready===!0),r=u(()=>t.profile?.status===`active`?s(`writingTaste.milestone.activeTitle`):t.profile?.status===`preview_ready`?s(`writingTaste.milestone.previewTitle`):s(`writingTaste.milestone.collectingTitle`)),i=u(()=>n.value?s(`writingTaste.milestone.readyCopy`):s(`writingTaste.milestone.collectingCopy`)),a=u(()=>{let e=t.profile?.readiness;if(!e)return 0;let n=[f(e.rule_count,e.thresholds.rule_count),f(e.evidence_count,e.thresholds.evidence_count),f(e.session_count,e.thresholds.session_count),f(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(n.reduce((e,t)=>e+t,0)/n.length*100)});function f(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(t,u)=>e.profile?(d(),x(`section`,{key:0,class:_([`writing-taste-milestone`,`status-${e.profile.status}`]),"aria-label":c(s)(`writingTaste.milestone.aria`)},[u[1]||=l(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[l(`span`),l(`span`),l(`span`)],-1),l(`div`,Xe,[l(`div`,Ze,[l(`h2`,null,g(r.value),1),l(`span`,null,g(c(s)(`writingTaste.status.${e.profile.status}`)),1)]),l(`p`,null,g(i.value),1),l(`div`,Qe,[l(`i`,{style:h({width:`${a.value}%`})},null,4)]),l(`div`,$e,[l(`small`,null,g(c(s)(`writingTaste.milestone.rules`,{current:e.profile.readiness.rule_count,target:e.profile.readiness.thresholds.rule_count})),1),l(`small`,null,g(c(s)(`writingTaste.milestone.sessions`,{current:e.profile.readiness.session_count,target:e.profile.readiness.thresholds.session_count})),1)])]),n.value?(d(),o(c(T),{key:0,class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:S(()=>[b(g(c(s)(`writingTaste.milestone.open`))+` `,1),u[0]||=l(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})):y(``,!0)],10,Ye)):y(``,!0)}}),[[`__scopeId`,`data-v-d56b0112`]]),tt={class:`view vue-personal-profile`},nt=[`aria-label`],rt=[`aria-label`,`aria-pressed`],it=[`aria-label`,`aria-pressed`],at=[`aria-label`,`aria-pressed`],ot={key:0},st={key:1},ct=[`aria-label`,`aria-pressed`],lt=[`aria-label`],ut={class:`personal-profile-toolbar`},dt={class:`personal-profile-filter-groups`},ft=[`aria-label`],pt=[`aria-pressed`,`onClick`],mt={class:`personal-profile-toolbar-actions`},ht={key:0,class:`muted`},gt={key:1,class:`muted`},_t={key:2,class:`muted`},vt=[`aria-label`],yt={class:`preference-conflict-list`},bt={class:`preference-conflict-card-heading`},xt={class:`preference-conflict-pair`},St={key:0},Ct={class:`preference-conflict-actions`},wt=[`disabled`,`onClick`],Tt=[`onClick`],Et={key:0,class:`empty-state`},Dt={key:3,class:`personal-profile-layout`},Ot={class:`personal-profile-table-head`,"aria-hidden":`true`},kt=[`onClick`],At={class:`personal-profile-copy`},jt={class:`personal-profile-origin`},Mt={class:`empty-state`},Nt=E(t({__name:`PersonalProfilePage`,setup(e){let t=te(),f=a(null),h=a(null),v=a(!1),C=O(u(()=>v.value&&!f.value)),T=a(`all`),E=a(`all`),F=a(`all`),I=a(!1),R=a(null),z=a(null),B=a(null),V=a(null),H=a([]),U=a(``),W=u(()=>se(f.value)),G=u(()=>ce(W.value,H.value)),ue=u(()=>new Set(G.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),K=u(()=>new Set(H.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(le))),q=u(()=>W.value.filter(e=>$(e)&&(F.value===`all`||M(e)===F.value))),J=u(()=>JSON.stringify([T.value,E.value,F.value,I.value])),de=u(()=>R.value?q.value.findIndex(({id:e,itemKind:t})=>e===R.value?.id&&t===R.value?.itemKind):-1),Y=u(()=>G.value.filter(({left:e,right:t})=>$(e)||$(t))),X=u(()=>[[`all`,s(`preferences.profile.filters.all`)],[`taste`,s(`preferences.profile.filters.taste`)],[`personality`,s(`preferences.profile.filters.personality`)],[`judgment_preference`,s(`preferences.profile.filters.judgment`)]]),fe=u(()=>{let e=new Map((t.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),n=[...new Set(W.value.filter(({preferenceScope:e,preferenceProjectId:t})=>e===`project`&&!!t).map(({preferenceProjectId:e})=>e))].sort((t,n)=>(e.get(t)??t).localeCompare(e.get(n)??n,m()));return[{value:`all`,label:s(`preferences.profile.scopes.all`),meta:s(`common.counts.items`,{count:W.value.length})},{value:`global`,label:s(`preferences.profile.scopes.global`),meta:s(`common.counts.items`,{count:W.value.filter(({preferenceScope:e})=>e!==`project`).length})},...n.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:s(`preferences.profile.scopes.projectMeta`,{count:W.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),pe=u(()=>W.value.filter(e=>M(e)===`confirmed`).length),Z=u(()=>W.value.filter(e=>M(e)===`pending`).length),me=u(()=>W.value.filter(e=>M(e)===`agent_confirmed`).length),he=u(()=>I.value?s(`preferences.profile.summaryGuidance.conflicts`):F.value===`pending`?s(`preferences.profile.summaryGuidance.pending`):F.value===`confirmed`?s(`preferences.profile.summaryGuidance.confirmed`):F.value===`agent_confirmed`?s(`preferences.profile.summaryGuidance.agentConfirmed`):s(`preferences.profile.summaryGuidance.default`));n(()=>t.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0}),n([T,E,F,I],()=>{R.value&&!q.value.some(({id:e})=>e===R.value?.id)&&(R.value=null)}),n(fe,e=>{e.some(({value:e})=>e===E.value)||(E.value=`all`)});async function Q(e=t.activePersonalSpace?.id){if(e){v.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`}),n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a,o]=await Promise.all([w(`/api/graph?${t}`),w(`/api/preference-conflicts?${n}`),w(`/api/writing-taste-profile?${r}`).catch(()=>null)]);f.value=i,H.value=Array.isArray(a)?a:[],h.value=ge(o)?o:null,R.value&&=W.value.find(({id:e})=>e===R.value?.id)??null}catch(e){f.value=null,h.value=null,t.reportError(e)}finally{v.value=!1}}}function ge(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 _e(e){let t=ae(e),n=G.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${s(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${s(`preferences.profile.statusSuffix.conflict`)}`:K.value.has(e.id)?`${t} · ${s(`preferences.profile.statusSuffix.aiResolved`)}`:t}function ve(e){return`${e.itemKind}:${e.id}`}function ye(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return s(`preferences.shared.personalGlobal`);let n=t.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return s(`preferences.shared.projectOnly`,{project:n?.profile.name??e.preferenceProjectId})}function $(e){if(T.value!==`all`&&e.profileAspect!==T.value||E.value===`global`&&e.preferenceScope===`project`)return!1;if(E.value.startsWith(`project:`)){let t=E.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function be(e){if(e.scopeKey===`global`)return s(`preferences.shared.personalGlobal`);let n=e.scopeKey.slice(8),r=t.state?.personalProjects?.find(({project_id:e})=>e===n);return s(`preferences.shared.projectOnly`,{project:r?.profile.name??n})}function xe(e){T.value=e.profileAspect??`all`,E.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,I.value=!1,R.value=e}function Se(e){V.value=null,B.value=e}function Ce(e){let t=!I.value&&F.value===e?`all`:e;I.value=!1,F.value=t,t!==`all`&&(R.value=q.value.at(0)??null)}function we(e=!1){let t=e||!I.value;I.value=t,t&&(F.value=`all`,R.value=null)}async function Te(e){let n=t.activePersonalSpace?.id;if(!(!n||e.aiRecord)){U.value=e.id;try{let r=await ee(`/api/preference-conflicts/defer`,{personalSpaceId:n,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:s(`preferences.profile.deferReason`)});H.value=[r,...H.value.filter(({id:e})=>e!==r.id)],t.notify(s(`preferences.profile.deferNotice`))}catch(e){t.reportError(e)}finally{U.value=``}}}return(e,n)=>(d(),x(`section`,tt,[l(`div`,{class:`personal-profile-summary`,"aria-label":c(s)(`preferences.profile.summaryAria`)},[l(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":c(s)(`preferences.profile.summary.confirmedAria`,{count:pe.value}),"aria-pressed":!I.value&&F.value===`confirmed`,onClick:n[0]||=e=>Ce(`confirmed`)},[l(`strong`,null,g(pe.value),1),b(g(c(s)(`preferences.profile.summary.confirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.viewRecords`)),1)],8,rt),l(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":c(s)(`preferences.profile.summary.agentConfirmedAria`,{count:me.value}),"aria-pressed":!I.value&&F.value===`agent_confirmed`,onClick:n[1]||=e=>Ce(`agent_confirmed`)},[l(`strong`,null,g(me.value),1),b(g(c(s)(`preferences.profile.summary.agentConfirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.belowHuman`)),1)],8,it),l(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":c(s)(`preferences.profile.summary.pendingAria`,{count:Z.value}),"aria-pressed":!I.value&&F.value===`pending`,onClick:n[2]||=e=>Ce(`pending`)},[l(`strong`,null,g(Z.value),1),b(g(c(s)(`preferences.profile.summary.pending`))+` `,1),Z.value?(d(),x(`small`,ot,g(c(s)(`preferences.profile.summary.reviewAndConfirm`)),1)):(d(),x(`small`,st,g(c(s)(`preferences.profile.summary.viewRecords`)),1))],8,at),l(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":G.value.length?c(s)(`preferences.profile.summary.conflictAria`,{count:G.value.length}):c(s)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":I.value,onClick:n[3]||=e=>we()},[l(`strong`,null,g(G.value.length),1),b(g(c(s)(`preferences.profile.summary.conflicts`))+` `,1),l(`small`,null,g(G.value.length?c(s)(`preferences.profile.summary.reviewAndHandle`):c(s)(`preferences.profile.summary.viewRecords`)),1)],8,ct),l(`p`,null,g(he.value),1)],8,nt),i(et,{profile:h.value},null,8,[`profile`]),G.value.length&&!I.value&&F.value===`all`?(d(),x(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":c(s)(`preferences.profile.alert.aria`)},[n[15]||=l(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.alert.kicker`)),1),l(`h2`,null,g(c(s)(`preferences.profile.alert.title`,{count:G.value.length})),1),l(`p`,null,g(c(s)(`preferences.profile.alert.copy`)),1)]),l(`button`,{class:`primary-action`,type:`button`,onClick:n[4]||=e=>we(!0)},g(c(s)(`preferences.profile.alert.action`)),1)],8,lt)):y(``,!0),l(`div`,ut,[l(`div`,dt,[l(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":c(s)(`preferences.profile.filters.aspectAria`)},[(d(!0),x(p,null,r(X.value,([e,t])=>(d(),x(`button`,{key:e,type:`button`,"aria-pressed":T.value===e,onClick:t=>T.value=e},g(t),9,pt))),128))],8,ft),i(D,{modelValue:E.value,"onUpdate:modelValue":n[5]||=e=>E.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:c(s)(`preferences.profile.filters.scopeLabel`),options:fe.value,"search-placeholder":c(s)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),l(`div`,mt,[I.value?(d(),x(`span`,ht,g(c(s)(`preferences.profile.filters.conflictsCount`,{visible:Y.value.length,total:G.value.length})),1)):F.value===`all`?(d(),x(`span`,_t,g(q.value.length===W.value.length?c(s)(`preferences.profile.filters.personalUnderstanding`,{count:W.value.length}):c(s)(`preferences.profile.filters.visibleCount`,{visible:q.value.length,total:W.value.length})),1)):(d(),x(`span`,gt,g(c(s)(`preferences.profile.filters.reviewCount`,{count:q.value.length,status:F.value===`pending`?c(s)(`preferences.profile.summary.pending`):F.value===`agent_confirmed`?c(s)(`preferences.profile.summary.agentConfirmed`):c(s)(`preferences.profile.summary.confirmed`)})),1)),l(`button`,{class:`toolbar-action`,type:`button`,onClick:n[6]||=e=>Q()},g(c(s)(`common.actions.refresh`)),1)])]),c(C)?(d(),o(ne,{key:1,label:c(s)(`preferences.profile.directory.loading`)},null,8,[`label`])):I.value?(d(),x(`section`,{key:2,class:`preference-conflict-workbench`,"aria-label":c(s)(`preferences.profile.workbench.aria`)},[l(`header`,null,[l(`div`,null,[n[16]||=l(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),l(`h2`,null,g(c(s)(`preferences.profile.workbench.title`)),1)]),l(`p`,null,g(c(s)(`preferences.profile.workbench.copy`)),1)]),l(`div`,yt,[(d(!0),x(p,null,r(Y.value,(e,t)=>(d(),x(`article`,{key:e.id,class:`preference-conflict-card`},[l(`div`,bt,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.group`,{index:t+1})),1),l(`h3`,null,g(e.preferenceKey),1)]),l(`div`,null,[l(`span`,null,g(be(e)),1),l(`strong`,null,g(e.aiRecord?c(s)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?c(s)(`preferences.profile.workbench.mergeSuggested`):c(s)(`preferences.profile.workbench.humanReview`)),1)])]),l(`div`,xt,[l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.older`)),1),l(`strong`,null,g(e.left.title),1),l(`p`,null,g(c(L)(e.left)),1),l(`small`,null,g(c(N)(c(P)(e.left))),1)]),n[17]||=l(`i`,{"aria-hidden":`true`},`↔`,-1),l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.newer`)),1),l(`strong`,null,g(e.right.title),1),l(`p`,null,g(c(L)(e.right)),1),l(`small`,null,g(c(N)(c(P)(e.right))),1)])]),l(`footer`,null,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.reason`)),1),l(`p`,null,g(e.reason),1),e.difference.rightOnly.length?(d(),x(`small`,St,g(c(s)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):y(``,!0)]),l(`div`,Ct,[l(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||U.value===e.id,onClick:t=>Te(e)},g(e.aiRecord?c(s)(`preferences.profile.workbench.deferred`):U.value===e.id?c(s)(`preferences.profile.workbench.deferring`):c(s)(`preferences.profile.workbench.defer`)),9,wt),l(`button`,{class:`primary-action`,type:`button`,onClick:t=>V.value=e},g(c(s)(`preferences.profile.workbench.handleNow`)),9,Tt)])])]))),128))]),v.value||!Y.value.length?(d(),x(`div`,Et,g(v.value?c(s)(`preferences.profile.workbench.loading`):G.value.length?c(s)(`preferences.profile.workbench.noFiltered`):c(s)(`preferences.profile.workbench.empty`)),1)):y(``,!0)],8,vt)):(d(),x(`div`,Dt,[i(re,{class:`personal-profile-directory`,items:q.value,"row-height":76,"active-index":de.value,"reset-key":J.value,"item-key":ve,label:c(s)(`preferences.profile.directory.aria`)},{header:S(()=>[l(`div`,Ot,[l(`span`,null,g(c(s)(`preferences.profile.directory.aspect`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.content`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.statusScopeSource`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.updated`)),1)])]),default:S(({item:e})=>[l(`button`,{class:_([`personal-profile-row`,{selected:R.value?.id===e.id,"pending-review":c(M)(e)===`pending`,"ai-resolved-conflict":K.value.has(e.id)}]),type:`button`,onClick:t=>R.value=e},[l(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},g(c(j)(e.profileAspect)),3),l(`span`,At,[l(`strong`,null,g(e.title),1),l(`small`,null,g(e.body),1)]),l(`span`,jt,[l(`strong`,{class:_({"has-conflict":ue.value.has(e.id)})},g(_e(e)),3),l(`small`,null,g(c(oe)(e.originQuadrant))+` · `+g(ye(e))+` · `+g(c(s)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),l(`time`,null,g(c(N)(c(P)(e))),1)],10,kt)]),empty:S(()=>[l(`div`,Mt,g(W.value.length?c(s)(`preferences.profile.directory.noFiltered`):c(s)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),i(ie,{class:`personal-profile-inspector`,item:R.value,graph:f.value,editable:``,onConfirm:n[7]||=e=>z.value=e,onEdit:n[8]||=e=>B.value=e,onOpenReplacement:xe},null,8,[`item`,`graph`])])),i(A,{item:B.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,projects:c(t).state?.personalProjects??[],"replacement-items":W.value,onClose:n[9]||=e=>B.value=null,onSaved:n[10]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),i(k,{item:z.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,onClose:n[11]||=e=>z.value=null,onSaved:n[12]||=e=>Q()},null,8,[`item`,`personal-space-id`]),i(Je,{conflict:V.value,"personal-space-id":c(t).activePersonalSpace?.id??``,projects:c(t).state?.personalProjects??[],onClose:n[13]||=e=>V.value=null,onResolved:n[14]||=e=>Q(),onEdit:Se},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7fb5a54c`]]);export{Nt as default};
@@ -0,0 +1 @@
1
+ import{C as e,_ as t,j as n}from"./i18n-ByRiA3pJ.js";import{t as r}from"./KnowledgeWorkspace-CCt8rnBb.js";var i=e({__name:`PersonalProjectsPage`,setup(e){return(e,i)=>(n(),t(r,{"personal-projects-only":``}))}});export{i as default};
@@ -1,4 +1,4 @@
1
- import{A as e,B as t,C as n,D as r,L as i,N as a,P as o,S as s,Y as c,_ as l,a as u,d,et as f,g as p,h as m,j as h,l as g,m as _,n as v,p as y,rt as b,s as x,tt as S,u as C,v as w,x as T,y as E,z as D}from"./i18n-CgBHZthI.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./console-tOxOl8Vq.js";import{t as P}from"./vue-router-CzHm-y-x.js";import{t as F}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as I,i as L,o as ee}from"./catalog-DFvIaHVS.js";import{t as R}from"./SearchableSelect-D27H0MoP.js";import{n as te,r as z,t as ne}from"./EmployeeRecruitDialog-CbPAmhy7.js";function B(e){return e&&typeof e==`object`?e:{}}function V(e,t,n){return e[t]??e[n]}function H(e,t,n){let r=V(e,t,n);return typeof r==`string`?r:null}function U(e,t,n){let r=V(e,t,n);return Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:null}function W(e,t,n){let r=V(e,t,n);return typeof r==`number`&&Number.isInteger(r)&&r>=0?r:null}function re(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=H(t,`source`,`source`),r=W(t,`totalTokens`,`total_tokens`);return![`executor`,`host`,`dingdong`].includes(n??``)||r===null?null:{source:n,totalTokens:r,inputTokens:W(t,`inputTokens`,`input_tokens`),outputTokens:W(t,`outputTokens`,`output_tokens`),cachedInputTokens:W(t,`cachedInputTokens`,`cached_input_tokens`),cacheWriteInputTokens:W(t,`cacheWriteInputTokens`,`cache_write_input_tokens`),reasoningOutputTokens:W(t,`reasoningOutputTokens`,`reasoning_output_tokens`)}}function ie(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=H(t,`application`,`application`);return[`codex`,`claude`,`claude_code`,`cursor`,`kiro`,`other`].includes(n??``)?{application:n,sessionId:H(t,`sessionId`,`session_id`),sessionUrl:H(t,`sessionUrl`,`session_url`)}:null}function G(e){return Array.isArray(e)?e:[]}function ae(e){let t=B(e);return Array.isArray(e)?e:G(t.agents??t.items)}function oe(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{mode:H(t,`mode`,`mode`)??null,reasoningEffort:H(t,`reasoningEffort`,`reasoning_effort`)??null,capabilityHints:G(V(t,`capabilityHints`,`capability_hints`)).filter(e=>typeof e==`string`)}}function K(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{enabled:typeof t.enabled==`boolean`?t.enabled:null,independentVerification:typeof V(t,`independentVerification`,`independent_verification`)==`boolean`?V(t,`independentVerification`,`independent_verification`):null,conflictFreeScopes:typeof V(t,`conflictFreeScopes`,`conflict_free_scopes`)==`boolean`?V(t,`conflictFreeScopes`,`conflict_free_scopes`):null,reason:H(t,`reason`,`reason`),workstreamBoundaries:G(V(t,`workstreamBoundaries`,`workstream_boundaries`)).filter(e=>typeof e==`string`)}}function se(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=G(V(t,`allowList`,`allow_list`)).map(e=>{if(typeof e==`string`)return{executorId:e};let t=B(e);return{executorId:H(t,`executorId`,`executor_id`)??``,label:H(t,`label`,`label`),provider:H(t,`provider`,`provider`),model:H(t,`model`,`model`),client:H(t,`client`,`client`)}}).filter(({executorId:e})=>e),r=G(V(t,`lockedExecutorIds`,`locked_executor_ids`)).filter(e=>typeof e==`string`),i=G(V(t,`preferredExecutorIds`,`preferred_executor_ids`)).filter(e=>typeof e==`string`);return{mode:H(t,`mode`,`mode`)??`flexible`,allowList:n,lockedExecutorIds:r,preferredExecutorIds:i}}function q(e){if(!e||typeof e!=`object`)return null;let t=B(e),n={executor:H(t,`executor`,`executor`),provider:H(t,`provider`,`provider`)??H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`model`,`model`)??H(t,`actualModel`,`actual_model`),client:H(t,`client`,`client`)??H(t,`sourceApplication`,`source_application`),rule:H(t,`rule`,`rule`),fallback:H(t,`fallback`,`fallback`),reportedAt:H(t,`reportedAt`,`reported_at`)};return[n.executor,n.provider,n.model,n.rule,n.fallback].some(Boolean)?n:null}function ce(e,t){let n=B(e),r=H(n,`personalProjectId`,`personal_project_id`),i=H(n,`assignmentId`,`assignment_id`);return!r||!i?null:{assignmentId:i,personalSpaceId:H(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,personalProjectId:r,agentId:H(n,`agentId`,`agent_id`)??t.agentId,responsibility:H(n,`responsibility`,`responsibility`)??t.profile.responsibility,scope:H(n,`scope`,`scope`),workKinds:G(V(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),capabilities:G(n.capabilities).filter(e=>typeof e==`string`),modelStrategyOverride:oe(V(n,`modelStrategyOverride`,`model_strategy_override`)),executorPolicyOverride:se(V(n,`executorPolicyOverride`,`executor_policy_override`)),reason:H(n,`reason`,`reason`),status:H(n,`status`,`status`)??`active`,revision:typeof n.revision==`number`?n.revision:void 0,sourceApplication:H(n,`sourceApplication`,`source_application`),sourceSessionId:H(n,`sourceSessionId`,`source_session_id`),assignedAt:H(n,`assignedAt`,`assigned_at`)??t.createdAt,updatedAt:H(n,`updatedAt`,`updated_at`)??t.updatedAt,endedAt:H(n,`endedAt`,`ended_at`),endReason:H(n,`endReason`,`end_reason`),replacedByAssignmentId:H(n,`replacedByAssignmentId`,`replaced_by_assignment_id`)}}function le(e){let t=B(e);return{agentId:H(t,`agentId`,`agent_id`)??``,assignmentId:H(t,`assignmentId`,`assignment_id`),role:H(t,`role`,`role`)??`collaborator`,status:H(t,`status`,`status`),assignmentSummary:H(t,`assignmentSummary`,`assignment_summary`),joinedAt:H(t,`joinedAt`,`joined_at`),updatedAt:H(t,`updatedAt`,`updated_at`),endedAt:H(t,`endedAt`,`ended_at`)}}function ue(e){if(Array.isArray(e))return e.map(e=>{let t=B(e);return{agentId:H(t,`agentId`,`agent_id`),agentName:H(t,`agentName`,`agent_name`),occupationEmoji:H(t,`occupationEmoji`,`occupation_emoji`),workerId:H(t,`workerId`,`worker_id`),workerLabel:H(t,`workerLabel`,`worker_label`),workerOccupationEmoji:H(t,`workerOccupationEmoji`,`worker_occupation_emoji`),participantRole:H(t,`participantRole`,`participant_role`),executor:H(t,`executor`,`executor`),executorId:H(t,`executorId`,`executor_id`),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),workSummary:H(t,`workSummary`,`work_summary`),status:H(t,`status`,`status`)}})}function de(e){let t=B(e),n=H(t,`eventId`,`event_id`),r=H(t,`taskId`,`task_id`);if(!n||!r)return null;let i=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`),rule:H(t,`routingRuleId`,`routing_rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`),reportedAt:H(t,`createdAt`,`created_at`)});return{eventId:n,taskId:r,agentId:H(t,`agentId`,`agent_id`),status:H(t,`status`,`status`),actorKind:H(t,`actorKind`,`actor_kind`)??void 0,summary:H(t,`summary`,`summary`)??``,sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),actualExecution:i,actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`),workerId:H(t,`workerId`,`worker_id`),workerLabel:H(t,`workerLabel`,`worker_label`),workerOccupationEmoji:H(t,`workerOccupationEmoji`,`worker_occupation_emoji`),workerStatus:H(t,`workerStatus`,`worker_status`),createdAt:H(t,`createdAt`,`created_at`)??``}}function fe(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{decisionId:H(t,`decisionId`,`decision_id`)??void 0,taskId:H(t,`taskId`,`task_id`)??void 0,coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`),complexity:(()=>{let e=V(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:G(V(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),outcome:H(t,`outcome`,`outcome`)??H(t,`routingOutcome`,`routing_outcome`),reason:H(t,`reason`,`reason`)??H(t,`routingReason`,`routing_reason`),matchBasis:G(V(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),candidateAgentIds:G(V(t,`candidateAgentIds`,`candidate_agent_ids`)).filter(e=>typeof e==`string`),optimizationPriority:G(V(t,`optimizationPriority`,`optimization_priority`)).filter(e=>typeof e==`string`),parallelPlan:K(V(t,`parallelPlan`,`parallel_plan`)),selectedModelStrategy:oe(V(t,`selectedModelStrategy`,`selected_model_strategy`)),modelStrategySource:H(t,`modelStrategySource`,`model_strategy_source`)??void 0,ruleId:H(t,`ruleId`,`rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`)??H(t,`executorRuleId`,`executor_rule_id`),fallback:H(t,`fallback`,`fallback`)??H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`)}}function J(e){return e!=null&&(typeof e!=`string`||e.length>0)&&(!Array.isArray(e)||e.length>0)}function pe(e){return[`staffingIntent`,`staffing_intent`,`routingOutcome`,`routing_outcome`,`routingReason`,`routing_reason`,`routingExplanation`,`routing_explanation`,`coordinatorAgentId`,`coordinator_agent_id`,`complexity`,`complexityBasis`,`complexity_basis`,`matchBasis`,`match_basis`,`candidateAgentIds`,`candidate_agent_ids`].some(t=>J(e[t]))?fe({outcome:V(e,`routingOutcome`,`routing_outcome`),reason:V(e,`routingReason`,`routing_reason`),matchBasis:V(e,`matchBasis`,`match_basis`),coordinatorAgentId:V(e,`coordinatorAgentId`,`coordinator_agent_id`),complexity:V(e,`complexity`,`complexity`),complexityBasis:V(e,`complexityBasis`,`complexity_basis`),candidateAgentIds:V(e,`candidateAgentIds`,`candidate_agent_ids`)}):null}function me(e){let t=B(e),n=H(t,`taskId`,`task_id`);if(!n)return null;let r=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`),rule:H(t,`routingRuleId`,`routing_rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`)}),i=fe(V(t,`routingDecision`,`routing_decision`))??pe(t);return{taskId:n,personalSpaceId:H(t,`personalSpaceId`,`personal_space_id`)??void 0,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),title:H(t,`title`,`title`)??n,objective:H(t,`objective`,`objective`),workKind:H(t,`workKind`,`work_kind`),status:H(t,`status`,`status`),runId:H(t,`runId`,`run_id`),executionId:H(t,`executionId`,`execution_id`),ownerAgentId:H(t,`ownerAgentId`,`owner_agent_id`),leadAgentId:H(t,`leadAgentId`,`lead_agent_id`),coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`),hrAgentId:H(t,`hrAgentId`,`hr_agent_id`),recruitmentId:H(t,`recruitmentId`,`recruitment_id`),participants:G(t.participants).map(le),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),resultSummary:H(t,`resultSummary`,`result_summary`),failureReason:H(t,`failureReason`,`failure_reason`),createdAt:H(t,`createdAt`,`created_at`),updatedAt:H(t,`updatedAt`,`updated_at`),completedAt:H(t,`completedAt`,`completed_at`),effectiveModelStrategy:oe(V(t,`effectiveModelStrategy`,`effective_model_strategy`)),effectiveExecutorPolicy:se(V(t,`effectiveExecutorPolicy`,`effective_executor_policy`)??V(t,`executorPolicy`,`executor_policy`)),staffingIntent:H(t,`staffingIntent`,`staffing_intent`),requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),executorCapabilityHints:G(V(t,`executorCapabilityHints`,`executor_capability_hints`)).filter(e=>typeof e==`string`),routingOutcome:H(t,`routingOutcome`,`routing_outcome`),routingReason:H(t,`routingReason`,`routing_reason`),routingExplanation:H(t,`routingExplanation`,`routing_explanation`),matchBasis:G(V(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),complexity:(()=>{let e=V(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:G(V(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),modelStrategySource:H(t,`modelStrategySource`,`model_strategy_source`)??void 0,actualExecution:r,executionSummary:ue(V(t,`executionSummary`,`execution_summary`)),routingDecision:i,events:G(t.events).map(de).filter(Boolean)}}function he(e){return e.executionSummary===void 0?(e.events??[]).filter(e=>!!(e.workerId||e.workerLabel||e.workerOccupationEmoji||e.workerStatus)):[]}function ge(e){return!!(e&&(e.enabled||e.independentVerification||e.conflictFreeScopes||e.reason||e.workstreamBoundaries?.length))}function _e(e){return e.actualExecution??{provider:e.actualModelProvider??null,model:e.actualModel??null,client:e.sourceApplication??null,reportedAt:e.createdAt}}function ve(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:ye(t),toDate:ye(e)}}function ye(e){return e.toISOString().slice(0,10)}function be(e,t){let n=B(e),r=G(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=B(e);return{date:H(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:G(t.tasks).map(xe).filter(e=>!!e)}}).filter(({date:e})=>e),a=H(n,`fromDate`,`from_date`),o=H(n,`toDate`,`to_date`),s=i.some(({total:e,tasks:t})=>e>0||!!t?.length),c=a??(i.length?i.map(({date:e})=>e).sort()[0]:void 0),l=o??(i.length?i.map(({date:e})=>e).sort().at(-1):void 0),u=s&&c&&l?Y(i,c,l):[];return{agentId:H(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:H(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Y(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=ye(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function xe(e){let t=B(e),n=H(t,`taskId`,`task_id`);if(!n)return null;let r=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`)});return{taskId:n,title:H(t,`title`,`title`)??n,status:H(t,`status`,`status`),summary:H(t,`summary`,`summary`)??``,occurredAt:H(t,`occurredAt`,`occurred_at`)??``,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),assignmentId:H(t,`assignmentId`,`assignment_id`),collaborators:G(t.collaborators).map(le),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`)}}var Se={class:`project-agent-assignment-dialog-header`},Ce={id:`project-agent-assignment-dialog-title`},we=[`disabled`],Te={class:`project-agent-assignment-dialog-fields`},Ee={key:0},De={key:1},Oe=[`value`],ke={key:2},Ae={key:3,class:`project-agent-assignment-wide-field`},je=[`disabled`],X={key:4},Me=[`disabled`],Ne={key:5},Pe=[`disabled`,`placeholder`],Fe={class:`project-agent-assignment-wide-field`},Ie=[`disabled`,`placeholder`],Le={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},Z={class:`project-agent-assignment-dialog-actions`},Re=[`disabled`],ze=[`disabled`],Be=F(n({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:n}){let r=e,a=n,o=c(``),l=c(``),d=c(``),g=c(``),_=c(``),v=c(``),x=c(!1),S=c(``),{dialogRef:T,initialFocusRef:D,onCancel:k,onKeydown:A}=te(()=>r.open,()=>a(`close`)),j=m(()=>r.action!==`assign`),M=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),N=m(()=>r.availableAgents.filter(e=>e.agentId!==r.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.name,meta:e.agentId})));i(()=>[r.open,r.agent,r.assignment,r.action,r.defaultProjectId],()=>{r.open&&(o.value=r.assignment?.personalProjectId??r.defaultProjectId??r.projects[0]?.project_id??``,l.value=``,d.value=r.assignment?.responsibility??r.agent?.profile.responsibility??``,g.value=r.assignment?.scope??``,_.value=r.assignment?.workKinds?.join(`
1
+ import{A as e,B as t,C as n,D as r,L as i,N as a,P as o,S as s,Y as c,_ as l,a as u,d,et as f,g as p,h as m,j as h,l as g,m as _,n as v,p as y,rt as b,s as x,tt as S,u as C,v as w,x as T,y as E,z as D}from"./i18n-ByRiA3pJ.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./console-DQgu0JIA.js";import{t as P}from"./vue-router-CzX-hn3P.js";import{t as F}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as I,i as L,o as ee}from"./catalog-WGLn7ERJ.js";import{t as R}from"./SearchableSelect-ERm-k4KI.js";import{n as te,r as z,t as ne}from"./EmployeeRecruitDialog-CQgNpGJ_.js";function B(e){return e&&typeof e==`object`?e:{}}function V(e,t,n){return e[t]??e[n]}function H(e,t,n){let r=V(e,t,n);return typeof r==`string`?r:null}function U(e,t,n){let r=V(e,t,n);return Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:null}function W(e,t,n){let r=V(e,t,n);return typeof r==`number`&&Number.isInteger(r)&&r>=0?r:null}function re(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=H(t,`source`,`source`),r=W(t,`totalTokens`,`total_tokens`);return![`executor`,`host`,`dingdong`].includes(n??``)||r===null?null:{source:n,totalTokens:r,inputTokens:W(t,`inputTokens`,`input_tokens`),outputTokens:W(t,`outputTokens`,`output_tokens`),cachedInputTokens:W(t,`cachedInputTokens`,`cached_input_tokens`),cacheWriteInputTokens:W(t,`cacheWriteInputTokens`,`cache_write_input_tokens`),reasoningOutputTokens:W(t,`reasoningOutputTokens`,`reasoning_output_tokens`)}}function ie(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=H(t,`application`,`application`);return[`codex`,`claude`,`claude_code`,`cursor`,`kiro`,`other`].includes(n??``)?{application:n,sessionId:H(t,`sessionId`,`session_id`),sessionUrl:H(t,`sessionUrl`,`session_url`)}:null}function G(e){return Array.isArray(e)?e:[]}function ae(e){let t=B(e);return Array.isArray(e)?e:G(t.agents??t.items)}function oe(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{mode:H(t,`mode`,`mode`)??null,reasoningEffort:H(t,`reasoningEffort`,`reasoning_effort`)??null,capabilityHints:G(V(t,`capabilityHints`,`capability_hints`)).filter(e=>typeof e==`string`)}}function K(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{enabled:typeof t.enabled==`boolean`?t.enabled:null,independentVerification:typeof V(t,`independentVerification`,`independent_verification`)==`boolean`?V(t,`independentVerification`,`independent_verification`):null,conflictFreeScopes:typeof V(t,`conflictFreeScopes`,`conflict_free_scopes`)==`boolean`?V(t,`conflictFreeScopes`,`conflict_free_scopes`):null,reason:H(t,`reason`,`reason`),workstreamBoundaries:G(V(t,`workstreamBoundaries`,`workstream_boundaries`)).filter(e=>typeof e==`string`)}}function se(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=G(V(t,`allowList`,`allow_list`)).map(e=>{if(typeof e==`string`)return{executorId:e};let t=B(e);return{executorId:H(t,`executorId`,`executor_id`)??``,label:H(t,`label`,`label`),provider:H(t,`provider`,`provider`),model:H(t,`model`,`model`),client:H(t,`client`,`client`)}}).filter(({executorId:e})=>e),r=G(V(t,`lockedExecutorIds`,`locked_executor_ids`)).filter(e=>typeof e==`string`),i=G(V(t,`preferredExecutorIds`,`preferred_executor_ids`)).filter(e=>typeof e==`string`);return{mode:H(t,`mode`,`mode`)??`flexible`,allowList:n,lockedExecutorIds:r,preferredExecutorIds:i}}function q(e){if(!e||typeof e!=`object`)return null;let t=B(e),n={executor:H(t,`executor`,`executor`),provider:H(t,`provider`,`provider`)??H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`model`,`model`)??H(t,`actualModel`,`actual_model`),client:H(t,`client`,`client`)??H(t,`sourceApplication`,`source_application`),rule:H(t,`rule`,`rule`),fallback:H(t,`fallback`,`fallback`),reportedAt:H(t,`reportedAt`,`reported_at`)};return[n.executor,n.provider,n.model,n.rule,n.fallback].some(Boolean)?n:null}function ce(e,t){let n=B(e),r=H(n,`personalProjectId`,`personal_project_id`),i=H(n,`assignmentId`,`assignment_id`);return!r||!i?null:{assignmentId:i,personalSpaceId:H(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,personalProjectId:r,agentId:H(n,`agentId`,`agent_id`)??t.agentId,responsibility:H(n,`responsibility`,`responsibility`)??t.profile.responsibility,scope:H(n,`scope`,`scope`),workKinds:G(V(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),capabilities:G(n.capabilities).filter(e=>typeof e==`string`),modelStrategyOverride:oe(V(n,`modelStrategyOverride`,`model_strategy_override`)),executorPolicyOverride:se(V(n,`executorPolicyOverride`,`executor_policy_override`)),reason:H(n,`reason`,`reason`),status:H(n,`status`,`status`)??`active`,revision:typeof n.revision==`number`?n.revision:void 0,sourceApplication:H(n,`sourceApplication`,`source_application`),sourceSessionId:H(n,`sourceSessionId`,`source_session_id`),assignedAt:H(n,`assignedAt`,`assigned_at`)??t.createdAt,updatedAt:H(n,`updatedAt`,`updated_at`)??t.updatedAt,endedAt:H(n,`endedAt`,`ended_at`),endReason:H(n,`endReason`,`end_reason`),replacedByAssignmentId:H(n,`replacedByAssignmentId`,`replaced_by_assignment_id`)}}function le(e){let t=B(e);return{agentId:H(t,`agentId`,`agent_id`)??``,assignmentId:H(t,`assignmentId`,`assignment_id`),role:H(t,`role`,`role`)??`collaborator`,status:H(t,`status`,`status`),assignmentSummary:H(t,`assignmentSummary`,`assignment_summary`),joinedAt:H(t,`joinedAt`,`joined_at`),updatedAt:H(t,`updatedAt`,`updated_at`),endedAt:H(t,`endedAt`,`ended_at`)}}function ue(e){if(Array.isArray(e))return e.map(e=>{let t=B(e);return{agentId:H(t,`agentId`,`agent_id`),agentName:H(t,`agentName`,`agent_name`),occupationEmoji:H(t,`occupationEmoji`,`occupation_emoji`),workerId:H(t,`workerId`,`worker_id`),workerLabel:H(t,`workerLabel`,`worker_label`),workerOccupationEmoji:H(t,`workerOccupationEmoji`,`worker_occupation_emoji`),participantRole:H(t,`participantRole`,`participant_role`),executor:H(t,`executor`,`executor`),executorId:H(t,`executorId`,`executor_id`),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),workSummary:H(t,`workSummary`,`work_summary`),status:H(t,`status`,`status`)}})}function de(e){let t=B(e),n=H(t,`eventId`,`event_id`),r=H(t,`taskId`,`task_id`);if(!n||!r)return null;let i=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`),rule:H(t,`routingRuleId`,`routing_rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`),reportedAt:H(t,`createdAt`,`created_at`)});return{eventId:n,taskId:r,agentId:H(t,`agentId`,`agent_id`),status:H(t,`status`,`status`),actorKind:H(t,`actorKind`,`actor_kind`)??void 0,summary:H(t,`summary`,`summary`)??``,sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),actualExecution:i,actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`),workerId:H(t,`workerId`,`worker_id`),workerLabel:H(t,`workerLabel`,`worker_label`),workerOccupationEmoji:H(t,`workerOccupationEmoji`,`worker_occupation_emoji`),workerStatus:H(t,`workerStatus`,`worker_status`),createdAt:H(t,`createdAt`,`created_at`)??``}}function fe(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{decisionId:H(t,`decisionId`,`decision_id`)??void 0,taskId:H(t,`taskId`,`task_id`)??void 0,coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`),complexity:(()=>{let e=V(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:G(V(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),outcome:H(t,`outcome`,`outcome`)??H(t,`routingOutcome`,`routing_outcome`),reason:H(t,`reason`,`reason`)??H(t,`routingReason`,`routing_reason`),matchBasis:G(V(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),candidateAgentIds:G(V(t,`candidateAgentIds`,`candidate_agent_ids`)).filter(e=>typeof e==`string`),optimizationPriority:G(V(t,`optimizationPriority`,`optimization_priority`)).filter(e=>typeof e==`string`),parallelPlan:K(V(t,`parallelPlan`,`parallel_plan`)),selectedModelStrategy:oe(V(t,`selectedModelStrategy`,`selected_model_strategy`)),modelStrategySource:H(t,`modelStrategySource`,`model_strategy_source`)??void 0,ruleId:H(t,`ruleId`,`rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`)??H(t,`executorRuleId`,`executor_rule_id`),fallback:H(t,`fallback`,`fallback`)??H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`)}}function J(e){return e!=null&&(typeof e!=`string`||e.length>0)&&(!Array.isArray(e)||e.length>0)}function pe(e){return[`staffingIntent`,`staffing_intent`,`routingOutcome`,`routing_outcome`,`routingReason`,`routing_reason`,`routingExplanation`,`routing_explanation`,`coordinatorAgentId`,`coordinator_agent_id`,`complexity`,`complexityBasis`,`complexity_basis`,`matchBasis`,`match_basis`,`candidateAgentIds`,`candidate_agent_ids`].some(t=>J(e[t]))?fe({outcome:V(e,`routingOutcome`,`routing_outcome`),reason:V(e,`routingReason`,`routing_reason`),matchBasis:V(e,`matchBasis`,`match_basis`),coordinatorAgentId:V(e,`coordinatorAgentId`,`coordinator_agent_id`),complexity:V(e,`complexity`,`complexity`),complexityBasis:V(e,`complexityBasis`,`complexity_basis`),candidateAgentIds:V(e,`candidateAgentIds`,`candidate_agent_ids`)}):null}function me(e){let t=B(e),n=H(t,`taskId`,`task_id`);if(!n)return null;let r=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`),rule:H(t,`routingRuleId`,`routing_rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`)}),i=fe(V(t,`routingDecision`,`routing_decision`))??pe(t);return{taskId:n,personalSpaceId:H(t,`personalSpaceId`,`personal_space_id`)??void 0,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),title:H(t,`title`,`title`)??n,objective:H(t,`objective`,`objective`),workKind:H(t,`workKind`,`work_kind`),status:H(t,`status`,`status`),runId:H(t,`runId`,`run_id`),executionId:H(t,`executionId`,`execution_id`),ownerAgentId:H(t,`ownerAgentId`,`owner_agent_id`),leadAgentId:H(t,`leadAgentId`,`lead_agent_id`),coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`),hrAgentId:H(t,`hrAgentId`,`hr_agent_id`),recruitmentId:H(t,`recruitmentId`,`recruitment_id`),participants:G(t.participants).map(le),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),resultSummary:H(t,`resultSummary`,`result_summary`),failureReason:H(t,`failureReason`,`failure_reason`),createdAt:H(t,`createdAt`,`created_at`),updatedAt:H(t,`updatedAt`,`updated_at`),completedAt:H(t,`completedAt`,`completed_at`),effectiveModelStrategy:oe(V(t,`effectiveModelStrategy`,`effective_model_strategy`)),effectiveExecutorPolicy:se(V(t,`effectiveExecutorPolicy`,`effective_executor_policy`)??V(t,`executorPolicy`,`executor_policy`)),staffingIntent:H(t,`staffingIntent`,`staffing_intent`),requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),executorCapabilityHints:G(V(t,`executorCapabilityHints`,`executor_capability_hints`)).filter(e=>typeof e==`string`),routingOutcome:H(t,`routingOutcome`,`routing_outcome`),routingReason:H(t,`routingReason`,`routing_reason`),routingExplanation:H(t,`routingExplanation`,`routing_explanation`),matchBasis:G(V(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),complexity:(()=>{let e=V(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:G(V(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),modelStrategySource:H(t,`modelStrategySource`,`model_strategy_source`)??void 0,actualExecution:r,executionSummary:ue(V(t,`executionSummary`,`execution_summary`)),routingDecision:i,events:G(t.events).map(de).filter(Boolean)}}function he(e){return e.executionSummary===void 0?(e.events??[]).filter(e=>!!(e.workerId||e.workerLabel||e.workerOccupationEmoji||e.workerStatus)):[]}function ge(e){return!!(e&&(e.enabled||e.independentVerification||e.conflictFreeScopes||e.reason||e.workstreamBoundaries?.length))}function _e(e){return e.actualExecution??{provider:e.actualModelProvider??null,model:e.actualModel??null,client:e.sourceApplication??null,reportedAt:e.createdAt}}function ve(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:ye(t),toDate:ye(e)}}function ye(e){return e.toISOString().slice(0,10)}function be(e,t){let n=B(e),r=G(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=B(e);return{date:H(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:G(t.tasks).map(xe).filter(e=>!!e)}}).filter(({date:e})=>e),a=H(n,`fromDate`,`from_date`),o=H(n,`toDate`,`to_date`),s=i.some(({total:e,tasks:t})=>e>0||!!t?.length),c=a??(i.length?i.map(({date:e})=>e).sort()[0]:void 0),l=o??(i.length?i.map(({date:e})=>e).sort().at(-1):void 0),u=s&&c&&l?Y(i,c,l):[];return{agentId:H(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:H(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Y(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=ye(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function xe(e){let t=B(e),n=H(t,`taskId`,`task_id`);if(!n)return null;let r=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`)});return{taskId:n,title:H(t,`title`,`title`)??n,status:H(t,`status`,`status`),summary:H(t,`summary`,`summary`)??``,occurredAt:H(t,`occurredAt`,`occurred_at`)??``,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),assignmentId:H(t,`assignmentId`,`assignment_id`),collaborators:G(t.collaborators).map(le),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`)}}var Se={class:`project-agent-assignment-dialog-header`},Ce={id:`project-agent-assignment-dialog-title`},we=[`disabled`],Te={class:`project-agent-assignment-dialog-fields`},Ee={key:0},De={key:1},Oe=[`value`],ke={key:2},Ae={key:3,class:`project-agent-assignment-wide-field`},je=[`disabled`],X={key:4},Me=[`disabled`],Ne={key:5},Pe=[`disabled`,`placeholder`],Fe={class:`project-agent-assignment-wide-field`},Ie=[`disabled`,`placeholder`],Le={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},Z={class:`project-agent-assignment-dialog-actions`},Re=[`disabled`],ze=[`disabled`],Be=F(n({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:n}){let r=e,a=n,o=c(``),l=c(``),d=c(``),g=c(``),_=c(``),v=c(``),x=c(!1),S=c(``),{dialogRef:T,initialFocusRef:D,onCancel:k,onKeydown:A}=te(()=>r.open,()=>a(`close`)),j=m(()=>r.action!==`assign`),M=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),N=m(()=>r.availableAgents.filter(e=>e.agentId!==r.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.name,meta:e.agentId})));i(()=>[r.open,r.agent,r.assignment,r.action,r.defaultProjectId],()=>{r.open&&(o.value=r.assignment?.personalProjectId??r.defaultProjectId??r.projects[0]?.project_id??``,l.value=``,d.value=r.assignment?.responsibility??r.agent?.profile.responsibility??``,g.value=r.assignment?.scope??``,_.value=r.assignment?.workKinds?.join(`
2
2
  `)??``,v.value=``,S.value=``)},{immediate:!0});async function P(){if(!r.agent)return;S.value=``;let e=v.value.trim(),t=d.value.trim();if(!e||r.action===`assign`&&!t){S.value=u(`projectAgents.assignmentDialog.required`);return}if(r.action===`replace`&&!l.value){S.value=u(`projectAgents.assignmentDialog.replacementRequired`);return}x.value=!0;try{if(r.action===`assign`){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:r.agent.personalSpaceId,personalProjectId:o.value,agentId:r.agent.agentId,idempotencyKey:I(),responsibility:t,workKinds:F(_.value),capabilities:[],reason:e});a(`saved`,n)}else{if(!r.assignment)return;await O(`/api/project-agent-assignments/${encodeURIComponent(r.assignment.assignmentId)}/${r.action}`,r.action===`replace`?{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,replacementAgentId:l.value,idempotencyKey:I(),responsibility:t||r.assignment.responsibility,workKinds:F(_.value),capabilities:r.assignment.capabilities??[],reason:e}:{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,reason:e}),a(`changed`)}a(`close`)}catch(e){S.value=e instanceof Error?e.message:u(`projectAgents.assignmentDialog.saveFailed`)}finally{x.value=!1}}function F(e){return[...new Set(e.split(`
3
3
  `).map(e=>e.trim()).filter(Boolean))]}function I(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(n,i)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:T,class:`project-agent-assignment-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-assignment-dialog-title`,onCancel:i[8]||=(...e)=>f(k)&&f(k)(...e),onKeydown:i[9]||=(...e)=>f(A)&&f(A)(...e)},[p(`form`,{class:`project-agent-assignment-dialog-shell`,onSubmit:y(P,[`prevent`])},[p(`header`,Se,[p(`h3`,Ce,b(f(u)(`projectAgents.assignmentDialog.${j.value?e.action:`assign`}Title`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:D,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:x.value,onClick:i[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,we)]),p(`div`,Te,[j.value?(h(),E(`label`,De,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),p(`input`,{value:r.assignment?r.assignment.personalProjectId:``,disabled:``},null,8,Oe)])):(h(),E(`label`,Ee,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),s(R,{modelValue:o.value,"onUpdate:modelValue":i[1]||=e=>o.value=e,"control-id":`project-agent-assignment-project`,options:M.value,label:f(u)(`projectAgents.fields.project`),placeholder:f(u)(`projectAgents.dialog.projectPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])),j.value&&e.action===`replace`?(h(),E(`label`,ke,[p(`span`,null,b(f(u)(`projectAgents.assignmentDialog.replacement`)),1),s(R,{modelValue:l.value,"onUpdate:modelValue":i[2]||=e=>l.value=e,"control-id":`project-agent-assignment-replacement`,options:N.value,label:f(u)(`projectAgents.assignmentDialog.replacement`),placeholder:f(u)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])):w(``,!0),j.value?w(``,!0):(h(),E(`label`,Ae,[p(`span`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[3]||=e=>d.value=e,rows:`3`,maxlength:`4096`,disabled:x.value,required:``},null,8,je),[[C,d.value]])])),j.value?w(``,!0):(h(),E(`label`,X,[p(`span`,null,b(f(u)(`projectAgents.fields.scope`)),1),t(p(`input`,{"onUpdate:modelValue":i[4]||=e=>g.value=e,maxlength:`4096`,disabled:x.value},null,8,Me),[[C,g.value]])])),j.value?w(``,!0):(h(),E(`label`,Ne,[p(`span`,null,b(f(u)(`projectAgents.assignmentDialog.workKinds`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[5]||=e=>_.value=e,rows:`3`,disabled:x.value,placeholder:f(u)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,Pe),[[C,_.value]])])),p(`label`,Fe,[p(`span`,null,b(f(u)(`projectAgents.fields.reason`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[6]||=e=>v.value=e,rows:`3`,maxlength:`2048`,disabled:x.value,placeholder:f(u)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Ie),[[C,v.value]])])]),S.value?(h(),E(`p`,Le,b(S.value),1)):w(``,!0),p(`footer`,Z,[p(`button`,{class:`quiet-button`,type:`button`,disabled:x.value,onClick:i[7]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,Re),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:x.value},b(f(u)(`projectAgents.assignmentDialog.${j.value?`saveChange`:`saveAssign`}`)),9,ze)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-27954ba8`]]),Ve={class:`project-agent-dialog-header`},He={id:`executor-routing-dialog-title`},Ue=[`disabled`],We={class:`project-agent-dialog-fields`},Ge=[`disabled`],Ke=[`disabled`],qe=[`disabled`],Je=[`disabled`],Ye={class:`project-agent-wide-field`},Xe=[`disabled`],Q={class:`project-agent-dialog-check`},Ze=[`disabled`],Qe={class:`project-agent-dialog-note project-agent-wide-field`},$e=[`disabled`],et=[`disabled`],tt={key:0},nt={key:1},rt=[`disabled`],it=[`disabled`],at={class:`project-agent-wide-field`},ot=[`placeholder`,`disabled`],st={class:`project-agent-wide-field`},ct=[`disabled`],lt={class:`project-agent-wide-field`},ut=[`disabled`],dt={class:`project-agent-dialog-note project-agent-wide-field`},ft={key:0,class:`project-agent-dialog-error`,role:`alert`},pt={class:`project-agent-dialog-actions`},mt=[`disabled`],ht=[`disabled`],gt=F(n({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(e,{emit:n}){let r=e,a=n,o=c(``),l=c(``),d=c(`external`),v=c(``),S=c(100),D=c(!1),O=c(`space`),k=c(``),A=c(``),M=c(``),N=c(``),P=c(``),F=c(``),I=c(!1),L=c(``),{dialogRef:ee,initialFocusRef:z,onCancel:ne,onKeydown:B}=te(()=>r.open,()=>a(`close`)),V=m(()=>!!r.executor),H=m(()=>r.mode===`executor`?V.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),U=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));m(()=>r.availableExecutors.map(e=>({value:e.executorId,label:e.displayName||e.label||e.executorId,meta:e.executorId}))),i(()=>[r.open,r.mode,r.executor,r.rule],([e])=>{if(!e)return;let t=r.executor,n=r.rule;o.value=t?.executorId??``,l.value=t?.displayName??t?.label??``,d.value=t?.executorKind??`external`,v.value=t?.capabilities?.join(`
4
4
  `)??``,S.value=t?.globalPriority??n?.priority??100,D.value=t?.healthRequired===!0,O.value=n?.scope??`space`,k.value=n?.personalProjectId??``,A.value=n?.taskId??``,M.value=n?.workKind??``,N.value=n?.requiredCapabilities?.join(`
@@ -1 +1 @@
1
- import{B as e,C as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,n as ee,p as te,rt as d,tt as ne,u as re,v as f,x as p,y as m}from"./i18n-CgBHZthI.js";import{a as h,n as g,r as _,t as ie}from"./console-tOxOl8Vq.js";import{h as ae}from"./useApi-CROJJdhE-B6MHm_Av.js";import{t as oe}from"./paths-CDREouhi.js";import{t as v}from"./SearchableSelect-D27H0MoP.js";import{r as y,t as b}from"./identity-CFo_Uw1H.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=t({__name:`PublicProjectsPage`,setup(t){let M=ie(),Ve=ae(),N=i(null),P=i([]),F=i([]),I=i(!1),L=i(!1),R=i(``),z=i(``),B=i(`RELATED_TO`),V=i(null),H=i(``),U=i(!1),W=i(``),G=c(()=>M.state?.projects??[]),K=c(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=c(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=c(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=c(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=c(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=c(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=c(()=>G.value.find(({id:e})=>e===z.value)??null),J=c(()=>X.value.find(({value:e})=>e===B.value)?.label??a(`pages.publicProjects.relationLabels.relatedTo`)),Y=c(()=>!!(V.value&&H.value===V.value.name)),X=c(()=>[{value:`PART_OF`,label:a(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:a(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:a(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:a(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:a(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:a(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:a(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||a(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(a(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(a(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=a(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(a(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:a(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(a(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?a(`pages.publicProjects.parentRelationSubmitted`):a(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(ee()):a(`pages.publicProjects.timeNotRecorded`)}return(t,i)=>(l(),m(`section`,se,[s(`div`,ce,[i[8]||=s(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[s(`span`,{class:`nav-icon nav-icon-public-project`})],-1),s(`div`,null,[s(`p`,null,d(o(a)(`pages.publicProjects.intro`)),1)]),s(`div`,{class:`public-space-stats`,"aria-label":o(a)(`pages.publicProjects.overviewAria`)},[s(`span`,null,[s(`strong`,null,d(G.value.length),1),p(d(o(a)(`pages.publicProjects.discoverable`)),1)]),s(`span`,null,[s(`strong`,null,d(o(M).state?.subscriptions.length??0),1),p(d(o(a)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),s(`div`,ue,[(l(!0),m(u,null,n(G.value,e=>(l(),m(`article`,{key:Z(e),class:`project-card`},[s(`div`,de,[s(`div`,null,[i[9]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h4`,null,d(e.name),1)]),s(`div`,fe,[e.can_manage?(l(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>Xe(e)},d(o(a)(`pages.publicProjects.manage`)),9,pe)):f(``,!0),s(`div`,me,[s(`strong`,null,d(e.profile?.assessment?.score??`—`),1),s(`span`,null,d(e.profile?.assessment?o(a)(`pages.publicProjects.coverage`):o(a)(`pages.publicProjects.noSummary`)),1)])])]),s(`p`,he,d(Q(e)),1),s(`div`,ge,[(l(!0),m(u,null,n(e.profile?.sources??[],(e,t)=>(l(),m(`span`,{key:t,class:`status-chip`},d(e.kind??o(a)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?f(``,!0):(l(),m(`span`,_e,d(o(a)(`pages.publicProjects.noSources`)),1))]),s(`div`,ve,[s(`span`,{class:ne([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),s(`span`,ye,d(e.isOwner?o(a)(`pages.publicProjects.publishedByYou`):o(a)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release?(l(),m(`span`,be,[s(`strong`,null,d(e.current_release.version),1),s(`span`,null,d($(e.current_release.published_at)),1)])):f(``,!0)]),s(`footer`,xe,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>qe(e)},d(K.value.has(Z(e))?o(a)(`pages.publicProjects.unsubscribe`):o(a)(`pages.publicProjects.subscribe`)),9,Se),s(`button`,{class:`primary-action`,type:`button`,onClick:t=>Je(e)},d(o(a)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?f(``,!0):(l(),m(`div`,S,d(o(a)(`pages.publicProjects.noProjects`)),1))]),s(`section`,C,[s(`div`,w,[s(`div`,null,[i[10]||=s(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.relationsCopy`)),1)]),s(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:i[0]||=e=>L.value=!L.value},d(o(a)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),m(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:te($e,[`prevent`])},[s(`label`,null,[p(d(o(a)(`pages.publicProjects.sourceProject`))+` `,1),r(v,{modelValue:R.value,"onUpdate:modelValue":i[1]||=e=>R.value=e,options:He.value,label:o(a)(`pages.publicProjects.sourceProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:i[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.relation`))+` `,1),r(v,{modelValue:B.value,"onUpdate:modelValue":i[3]||=e=>B.value=e,options:X.value,label:o(a)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.targetProject`))+` `,1),r(v,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,options:We.value,label:o(a)(`pages.publicProjects.targetProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`div`,E,[s(`span`,null,d(o(a)(`pages.publicProjects.preview`)),1),s(`strong`,null,d(Ge.value?.name||o(a)(`pages.publicProjects.sourceProject`))+` `+d(J.value)+` `+d(Ke.value?.name||o(a)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),m(`p`,D,d(o(a)(`pages.publicProjects.parentConfirmation`)),1)):(l(),m(`p`,O,d(o(a)(`pages.publicProjects.relationBoundary`)),1))]),s(`button`,k,d(o(a)(`pages.publicProjects.addRelation`)),1)],32)):f(``,!0)]),s(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),m(`div`,j,[s(`header`,Ce,[s(`div`,null,[i[11]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h3`,null,d(N.value.name),1),s(`p`,null,d(Q(N.value)),1)]),s(`button`,{class:`secondary-action`,type:`button`,onClick:i[5]||=e=>N.value=null},d(o(a)(`common.actions.close`)),1)]),s(`section`,we,[i[12]||=s(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),s(`h4`,null,d(o(a)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),m(`p`,Te,[s(`strong`,null,d(N.value.current_release.version),1),p(` · `+d($(N.value.current_release.published_at)),1)])):(l(),m(`p`,Ee,d(o(a)(`pages.publicProjects.noRelease`)),1))]),s(`div`,De,[s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),m(`p`,Oe,d(o(a)(`pages.publicProjects.loading`)),1)):f(``,!0),(l(!0),m(u,null,n(P.value,e=>(l(),m(`article`,{key:e.version,class:`project-release-item`},[s(`strong`,null,d(e.version),1),s(`p`,null,d(e.update_summary),1),s(`small`,null,d($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),m(`p`,ke,d(o(a)(`pages.publicProjects.noReleaseHistory`)),1)):f(``,!0)]),s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),(l(!0),m(u,null,n(F.value,e=>(l(),m(`article`,{key:e.id,class:`project-detail-relation`},[s(`strong`,null,d(e.relation_type),1),s(`small`,null,d(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),m(`p`,Ae,d(o(a)(`pages.publicProjects.noRelations`)),1)):f(``,!0)])]),s(`footer`,je,[s(`span`,null,d(o(a)(`pages.publicProjects.contentManagementSeparated`)),1),s(`button`,{class:`primary-action`,type:`button`,onClick:i[6]||=e=>Ye(N.value)},d(o(a)(`pages.publicProjects.viewGraph`)),1)])])):f(``,!0)],8,A),s(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),m(`div`,Ne,[s(`header`,Pe,[s(`div`,null,[i[13]||=s(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.deleteTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.deleteCopy`)),1)]),s(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},d(o(a)(`common.actions.close`)),9,Fe)]),s(`label`,Ie,[p(d(o(a)(`pages.publicProjects.enterFullName`))+` `,1),s(`strong`,null,d(V.value.name),1),e(s(`input`,{"onUpdate:modelValue":i[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[re,H.value]])]),W.value?(l(),m(`p`,Re,d(W.value),1)):f(``,!0),s(`footer`,ze,[s(`span`,null,d(o(a)(`pages.publicProjects.deleteWarning`)),1),s(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},d(U.value?o(a)(`pages.publicProjects.deleting`):o(a)(`pages.publicProjects.deletePermanently`)),9,Be)])])):f(``,!0)],8,Me)]))}});export{M as default};
1
+ import{B as e,C as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,n as ee,p as te,rt as d,tt as ne,u as re,v as f,x as p,y as m}from"./i18n-ByRiA3pJ.js";import{a as h,n as g,r as _,t as ie}from"./console-DQgu0JIA.js";import{h as ae}from"./useApi-CROJJdhE-CePMjc08.js";import{t as oe}from"./paths-CDREouhi.js";import{t as v}from"./SearchableSelect-ERm-k4KI.js";import{r as y,t as b}from"./identity-CxdPRMwH.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=t({__name:`PublicProjectsPage`,setup(t){let M=ie(),Ve=ae(),N=i(null),P=i([]),F=i([]),I=i(!1),L=i(!1),R=i(``),z=i(``),B=i(`RELATED_TO`),V=i(null),H=i(``),U=i(!1),W=i(``),G=c(()=>M.state?.projects??[]),K=c(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=c(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=c(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=c(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=c(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=c(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=c(()=>G.value.find(({id:e})=>e===z.value)??null),J=c(()=>X.value.find(({value:e})=>e===B.value)?.label??a(`pages.publicProjects.relationLabels.relatedTo`)),Y=c(()=>!!(V.value&&H.value===V.value.name)),X=c(()=>[{value:`PART_OF`,label:a(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:a(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:a(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:a(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:a(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:a(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:a(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||a(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(a(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(a(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=a(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(a(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:a(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(a(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?a(`pages.publicProjects.parentRelationSubmitted`):a(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(ee()):a(`pages.publicProjects.timeNotRecorded`)}return(t,i)=>(l(),m(`section`,se,[s(`div`,ce,[i[8]||=s(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[s(`span`,{class:`nav-icon nav-icon-public-project`})],-1),s(`div`,null,[s(`p`,null,d(o(a)(`pages.publicProjects.intro`)),1)]),s(`div`,{class:`public-space-stats`,"aria-label":o(a)(`pages.publicProjects.overviewAria`)},[s(`span`,null,[s(`strong`,null,d(G.value.length),1),p(d(o(a)(`pages.publicProjects.discoverable`)),1)]),s(`span`,null,[s(`strong`,null,d(o(M).state?.subscriptions.length??0),1),p(d(o(a)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),s(`div`,ue,[(l(!0),m(u,null,n(G.value,e=>(l(),m(`article`,{key:Z(e),class:`project-card`},[s(`div`,de,[s(`div`,null,[i[9]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h4`,null,d(e.name),1)]),s(`div`,fe,[e.can_manage?(l(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>Xe(e)},d(o(a)(`pages.publicProjects.manage`)),9,pe)):f(``,!0),s(`div`,me,[s(`strong`,null,d(e.profile?.assessment?.score??`—`),1),s(`span`,null,d(e.profile?.assessment?o(a)(`pages.publicProjects.coverage`):o(a)(`pages.publicProjects.noSummary`)),1)])])]),s(`p`,he,d(Q(e)),1),s(`div`,ge,[(l(!0),m(u,null,n(e.profile?.sources??[],(e,t)=>(l(),m(`span`,{key:t,class:`status-chip`},d(e.kind??o(a)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?f(``,!0):(l(),m(`span`,_e,d(o(a)(`pages.publicProjects.noSources`)),1))]),s(`div`,ve,[s(`span`,{class:ne([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),s(`span`,ye,d(e.isOwner?o(a)(`pages.publicProjects.publishedByYou`):o(a)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release?(l(),m(`span`,be,[s(`strong`,null,d(e.current_release.version),1),s(`span`,null,d($(e.current_release.published_at)),1)])):f(``,!0)]),s(`footer`,xe,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>qe(e)},d(K.value.has(Z(e))?o(a)(`pages.publicProjects.unsubscribe`):o(a)(`pages.publicProjects.subscribe`)),9,Se),s(`button`,{class:`primary-action`,type:`button`,onClick:t=>Je(e)},d(o(a)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?f(``,!0):(l(),m(`div`,S,d(o(a)(`pages.publicProjects.noProjects`)),1))]),s(`section`,C,[s(`div`,w,[s(`div`,null,[i[10]||=s(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.relationsCopy`)),1)]),s(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:i[0]||=e=>L.value=!L.value},d(o(a)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),m(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:te($e,[`prevent`])},[s(`label`,null,[p(d(o(a)(`pages.publicProjects.sourceProject`))+` `,1),r(v,{modelValue:R.value,"onUpdate:modelValue":i[1]||=e=>R.value=e,options:He.value,label:o(a)(`pages.publicProjects.sourceProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:i[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.relation`))+` `,1),r(v,{modelValue:B.value,"onUpdate:modelValue":i[3]||=e=>B.value=e,options:X.value,label:o(a)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.targetProject`))+` `,1),r(v,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,options:We.value,label:o(a)(`pages.publicProjects.targetProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`div`,E,[s(`span`,null,d(o(a)(`pages.publicProjects.preview`)),1),s(`strong`,null,d(Ge.value?.name||o(a)(`pages.publicProjects.sourceProject`))+` `+d(J.value)+` `+d(Ke.value?.name||o(a)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),m(`p`,D,d(o(a)(`pages.publicProjects.parentConfirmation`)),1)):(l(),m(`p`,O,d(o(a)(`pages.publicProjects.relationBoundary`)),1))]),s(`button`,k,d(o(a)(`pages.publicProjects.addRelation`)),1)],32)):f(``,!0)]),s(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),m(`div`,j,[s(`header`,Ce,[s(`div`,null,[i[11]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h3`,null,d(N.value.name),1),s(`p`,null,d(Q(N.value)),1)]),s(`button`,{class:`secondary-action`,type:`button`,onClick:i[5]||=e=>N.value=null},d(o(a)(`common.actions.close`)),1)]),s(`section`,we,[i[12]||=s(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),s(`h4`,null,d(o(a)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),m(`p`,Te,[s(`strong`,null,d(N.value.current_release.version),1),p(` · `+d($(N.value.current_release.published_at)),1)])):(l(),m(`p`,Ee,d(o(a)(`pages.publicProjects.noRelease`)),1))]),s(`div`,De,[s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),m(`p`,Oe,d(o(a)(`pages.publicProjects.loading`)),1)):f(``,!0),(l(!0),m(u,null,n(P.value,e=>(l(),m(`article`,{key:e.version,class:`project-release-item`},[s(`strong`,null,d(e.version),1),s(`p`,null,d(e.update_summary),1),s(`small`,null,d($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),m(`p`,ke,d(o(a)(`pages.publicProjects.noReleaseHistory`)),1)):f(``,!0)]),s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),(l(!0),m(u,null,n(F.value,e=>(l(),m(`article`,{key:e.id,class:`project-detail-relation`},[s(`strong`,null,d(e.relation_type),1),s(`small`,null,d(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),m(`p`,Ae,d(o(a)(`pages.publicProjects.noRelations`)),1)):f(``,!0)])]),s(`footer`,je,[s(`span`,null,d(o(a)(`pages.publicProjects.contentManagementSeparated`)),1),s(`button`,{class:`primary-action`,type:`button`,onClick:i[6]||=e=>Ye(N.value)},d(o(a)(`pages.publicProjects.viewGraph`)),1)])])):f(``,!0)],8,A),s(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),m(`div`,Ne,[s(`header`,Pe,[s(`div`,null,[i[13]||=s(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.deleteTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.deleteCopy`)),1)]),s(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},d(o(a)(`common.actions.close`)),9,Fe)]),s(`label`,Ie,[p(d(o(a)(`pages.publicProjects.enterFullName`))+` `,1),s(`strong`,null,d(V.value.name),1),e(s(`input`,{"onUpdate:modelValue":i[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[re,H.value]])]),W.value?(l(),m(`p`,Re,d(W.value),1)):f(``,!0),s(`footer`,ze,[s(`span`,null,d(o(a)(`pages.publicProjects.deleteWarning`)),1),s(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},d(U.value?o(a)(`pages.publicProjects.deleting`):o(a)(`pages.publicProjects.deletePermanently`)),9,Be)])])):f(``,!0)],8,Me)]))}});export{M as default};
@@ -1 +1 @@
1
- import{C as e,L as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,rt as d,v as f,y as p}from"./i18n-CgBHZthI.js";import{a as m,r as h,t as g}from"./console-tOxOl8Vq.js";import{t as _}from"./SearchableSelect-D27H0MoP.js";import{r as v,t as y}from"./identity-CFo_Uw1H.js";import{u as b}from"./model-BtnVr7fX.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=e({__name:`ReviewPage`,setup(e){let B=g(),V=i([]),H=i([]),U=i(``),W=i(!1),G=c(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=c(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=c(()=>G.value.find(({id:e})=>e===U.value)??null);t(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),t(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(e,t)=>(l(),p(`section`,x,[s(`div`,S,[s(`h3`,null,d(o(a)(`pages.review.personalTitle`)),1),s(`p`,null,d(o(a)(`pages.review.personalCopy`)),1)]),s(`div`,C,[(l(!0),p(u,null,n(V.value,e=>(l(),p(`article`,{key:e.id,class:`review-item review-item-detailed`},[s(`div`,null,[s(`div`,w,d(o(a)(`pages.review.beforePublic`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,T,[s(`span`,null,d(o(a)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),s(`span`,null,d(o(a)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,E,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},d(o(a)(`pages.review.keepPersonal`)),9,D),s(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},d(o(a)(`pages.review.ignore`)),9,O),o(B).state?.capabilities?.submitKnowledge?(l(),p(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},d(o(a)(`pages.review.submitPublic`)),9,k)):f(``,!0)])]))),128)),!W.value&&!V.value.length?(l(),p(`div`,A,d(o(a)(`pages.review.noPersonalDrafts`)),1)):f(``,!0)]),o(B).state?.capabilities?.reviewProposals?(l(),p(`section`,j,[s(`div`,M,[s(`div`,null,[s(`h3`,null,d(o(a)(`pages.review.publicTitle`)),1),s(`p`,null,d(o(a)(`pages.review.publicCopy`)),1)]),r(_,{modelValue:U.value,"onUpdate:modelValue":t[0]||=e=>U.value=e,options:K.value,label:o(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),s(`div`,N,[(l(!0),p(u,null,n(H.value,e=>(l(),p(`article`,{key:e.id,class:`review-item`},[s(`div`,null,[s(`div`,P,d(o(a)(`pages.review.maintainerReview`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,F,[s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,I,[s(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},d(o(a)(`pages.review.reject`)),9,L),s(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},d(o(a)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(l(),p(`div`,z,d(o(a)(`pages.review.noProposals`)),1)):f(``,!0)])])):f(``,!0)]))}});export{B as default};
1
+ import{C as e,L as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,rt as d,v as f,y as p}from"./i18n-ByRiA3pJ.js";import{a as m,r as h,t as g}from"./console-DQgu0JIA.js";import{t as _}from"./SearchableSelect-ERm-k4KI.js";import{r as v,t as y}from"./identity-CxdPRMwH.js";import{u as b}from"./model-Db4-KefQ.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=e({__name:`ReviewPage`,setup(e){let B=g(),V=i([]),H=i([]),U=i(``),W=i(!1),G=c(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=c(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=c(()=>G.value.find(({id:e})=>e===U.value)??null);t(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),t(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(e,t)=>(l(),p(`section`,x,[s(`div`,S,[s(`h3`,null,d(o(a)(`pages.review.personalTitle`)),1),s(`p`,null,d(o(a)(`pages.review.personalCopy`)),1)]),s(`div`,C,[(l(!0),p(u,null,n(V.value,e=>(l(),p(`article`,{key:e.id,class:`review-item review-item-detailed`},[s(`div`,null,[s(`div`,w,d(o(a)(`pages.review.beforePublic`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,T,[s(`span`,null,d(o(a)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),s(`span`,null,d(o(a)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,E,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},d(o(a)(`pages.review.keepPersonal`)),9,D),s(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},d(o(a)(`pages.review.ignore`)),9,O),o(B).state?.capabilities?.submitKnowledge?(l(),p(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},d(o(a)(`pages.review.submitPublic`)),9,k)):f(``,!0)])]))),128)),!W.value&&!V.value.length?(l(),p(`div`,A,d(o(a)(`pages.review.noPersonalDrafts`)),1)):f(``,!0)]),o(B).state?.capabilities?.reviewProposals?(l(),p(`section`,j,[s(`div`,M,[s(`div`,null,[s(`h3`,null,d(o(a)(`pages.review.publicTitle`)),1),s(`p`,null,d(o(a)(`pages.review.publicCopy`)),1)]),r(_,{modelValue:U.value,"onUpdate:modelValue":t[0]||=e=>U.value=e,options:K.value,label:o(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),s(`div`,N,[(l(!0),p(u,null,n(H.value,e=>(l(),p(`article`,{key:e.id,class:`review-item`},[s(`div`,null,[s(`div`,P,d(o(a)(`pages.review.maintainerReview`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,F,[s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,I,[s(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},d(o(a)(`pages.review.reject`)),9,L),s(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},d(o(a)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(l(),p(`div`,z,d(o(a)(`pages.review.noProposals`)),1)):f(``,!0)])])):f(``,!0)]))}});export{B as default};
@@ -1 +1 @@
1
- import{A as e,B as t,C as n,I as r,L as ee,N as i,O as a,Y as o,a as s,et as c,g as l,h as u,j as d,k as f,m as p,n as m,p as h,rt as g,tt as te,u as _,v,y}from"./i18n-CgBHZthI.js";var b=[`data-select-id`],x=[`value`,`name`,`required`,`disabled`],S=[`value`,`disabled`],C=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],w={class:`searchable-select-current`},T={class:`searchable-select-current-label`},E={key:0,class:`searchable-select-current-meta`},D=[`hidden`],O={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=n({__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(n,{emit:k}){let A=n,j=k,M=o(null),N=o(null),P=o(null),F=o(null),I=o(!1),L=o(!1),R=o(``),z=r().replace(/[^A-Za-z0-9_-]/g,``),B=u(()=>A.label),V=u(()=>A.placeholder??s(`common.searchableSelect.placeholder`)),H=u(()=>A.searchPlaceholder??s(`common.searchableSelect.searchPlaceholder`)),U=u(()=>`${A.controlId||`searchable-select-${z}`}-options`),W=u(()=>A.options.find(({value:e})=>e===A.modelValue)??null),G=u(()=>A.searchable??A.options.length>5),K=u(()=>{let e=m(),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});ee(()=>A.disabled,e=>{e&&J()}),e(()=>{document.addEventListener(`pointerdown`,X)}),f(()=>{document.removeEventListener(`pointerdown`,X)});async function ce(){I.value?J():await q()}async function q(){A.disabled||(R.value=``,pe(),I.value=!0,await a(),G.value?P.value?.focus():fe()?.focus())}function J({restoreFocus:e=!1}={}){I.value=!1,L.value=!1,R.value=``,e&&a(()=>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)=>(d(),y(`div`,{ref_key:`root`,ref:M,class:te([`searchable-select`,{open:I.value,"open-up":L.value,disabled:n.disabled}]),"data-select-id":n.controlId,onFocusout:Z},[l(`select`,{class:`searchable-select-native`,value:n.modelValue,name:n.name,required:n.required,disabled:n.disabled,tabindex:`-1`,"aria-hidden":`true`},[(d(!0),y(p,null,i(n.options,e=>(d(),y(`option`,{key:e.value,value:e.value,disabled:e.disabled},g(e.label),9,S))),128))],8,x),l(`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:n.disabled,onPointerdown:r[0]||=h(()=>{},[`stop`]),onClick:h(ce,[`stop`]),onKeydown:le},[l(`span`,w,[l(`span`,T,g(W.value?.label||V.value),1),W.value?.meta?(d(),y(`small`,E,g(W.value.meta),1)):v(``,!0)]),r[3]||=l(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,C),l(`div`,{class:`searchable-select-panel`,hidden:!I.value},[G.value?(d(),y(`div`,O,[t(l(`input`,{ref_key:`searchInput`,ref:P,"onUpdate:modelValue":r[1]||=e=>R.value=e,type:`search`,autocomplete:`off`,placeholder:H.value,"aria-label":c(s)(`common.searchableSelect.searchAria`,{label:B.value}),onKeydown:ue},null,40,ne),[[_,R.value]])])):v(``,!0),l(`div`,{id:U.value,ref_key:`optionsList`,ref:F,class:`searchable-select-options`,role:`listbox`},[(d(!0),y(p,null,i(K.value,e=>(d(),y(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===n.modelValue,disabled:e.disabled,onMousedown:r[2]||=h(()=>{},[`prevent`]),onClick:t=>Y(e),onKeydown:t=>de(t,e)},[l(`span`,ae,[l(`strong`,null,g(e.label),1),e.meta?(d(),y(`small`,oe,g(e.meta),1)):v(``,!0)]),r[4]||=l(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ie))),128))],8,re),K.value.length===0?(d(),y(`p`,se,g(c(s)(`common.searchableSelect.noMatches`)),1)):v(``,!0)],8,D)],42,b))}});export{k as t};
1
+ import{A as e,B as t,C as n,I as r,L as ee,N as i,O as a,Y as o,a as s,et as c,g as l,h as u,j as d,k as f,m as p,n as m,p as h,rt as g,tt as te,u as _,v,y}from"./i18n-ByRiA3pJ.js";var b=[`data-select-id`],x=[`value`,`name`,`required`,`disabled`],S=[`value`,`disabled`],C=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],w={class:`searchable-select-current`},T={class:`searchable-select-current-label`},E={key:0,class:`searchable-select-current-meta`},D=[`hidden`],O={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=n({__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(n,{emit:k}){let A=n,j=k,M=o(null),N=o(null),P=o(null),F=o(null),I=o(!1),L=o(!1),R=o(``),z=r().replace(/[^A-Za-z0-9_-]/g,``),B=u(()=>A.label),V=u(()=>A.placeholder??s(`common.searchableSelect.placeholder`)),H=u(()=>A.searchPlaceholder??s(`common.searchableSelect.searchPlaceholder`)),U=u(()=>`${A.controlId||`searchable-select-${z}`}-options`),W=u(()=>A.options.find(({value:e})=>e===A.modelValue)??null),G=u(()=>A.searchable??A.options.length>5),K=u(()=>{let e=m(),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});ee(()=>A.disabled,e=>{e&&J()}),e(()=>{document.addEventListener(`pointerdown`,X)}),f(()=>{document.removeEventListener(`pointerdown`,X)});async function ce(){I.value?J():await q()}async function q(){A.disabled||(R.value=``,pe(),I.value=!0,await a(),G.value?P.value?.focus():fe()?.focus())}function J({restoreFocus:e=!1}={}){I.value=!1,L.value=!1,R.value=``,e&&a(()=>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)=>(d(),y(`div`,{ref_key:`root`,ref:M,class:te([`searchable-select`,{open:I.value,"open-up":L.value,disabled:n.disabled}]),"data-select-id":n.controlId,onFocusout:Z},[l(`select`,{class:`searchable-select-native`,value:n.modelValue,name:n.name,required:n.required,disabled:n.disabled,tabindex:`-1`,"aria-hidden":`true`},[(d(!0),y(p,null,i(n.options,e=>(d(),y(`option`,{key:e.value,value:e.value,disabled:e.disabled},g(e.label),9,S))),128))],8,x),l(`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:n.disabled,onPointerdown:r[0]||=h(()=>{},[`stop`]),onClick:h(ce,[`stop`]),onKeydown:le},[l(`span`,w,[l(`span`,T,g(W.value?.label||V.value),1),W.value?.meta?(d(),y(`small`,E,g(W.value.meta),1)):v(``,!0)]),r[3]||=l(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,C),l(`div`,{class:`searchable-select-panel`,hidden:!I.value},[G.value?(d(),y(`div`,O,[t(l(`input`,{ref_key:`searchInput`,ref:P,"onUpdate:modelValue":r[1]||=e=>R.value=e,type:`search`,autocomplete:`off`,placeholder:H.value,"aria-label":c(s)(`common.searchableSelect.searchAria`,{label:B.value}),onKeydown:ue},null,40,ne),[[_,R.value]])])):v(``,!0),l(`div`,{id:U.value,ref_key:`optionsList`,ref:F,class:`searchable-select-options`,role:`listbox`},[(d(!0),y(p,null,i(K.value,e=>(d(),y(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===n.modelValue,disabled:e.disabled,onMousedown:r[2]||=h(()=>{},[`prevent`]),onClick:t=>Y(e),onKeydown:t=>de(t,e)},[l(`span`,ae,[l(`strong`,null,g(e.label),1),e.meta?(d(),y(`small`,oe,g(e.meta),1)):v(``,!0)]),r[4]||=l(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ie))),128))],8,re),K.value.length===0?(d(),y(`p`,se,g(c(s)(`common.searchableSelect.noMatches`)),1)):v(``,!0)],8,D)],42,b))}});export{k as t};
@@ -1 +1 @@
1
- import{A as e,B as t,C as n,L as r,N as i,S as a,Y as o,a as s,et as c,g as l,h as u,i as d,j as f,k as ee,m as p,n as te,nt as m,p as ne,rt as h,s as g,u as _,v,x as re,y}from"./i18n-CgBHZthI.js";import{o as ie,r as b,t as ae}from"./console-tOxOl8Vq.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as S}from"./SearchableSelect-D27H0MoP.js";import{o as oe,r as se,t as C}from"./conversation-launcher-settings-DuFSpPAo.js";var ce=[`aria-label`],le={class:`settings-content`},ue={key:0,class:`settings-top-status`,role:`status`},de={key:0},fe={key:1},pe={class:`settings-card resource-card`},me={class:`section-heading`},he={key:0},ge=[`disabled`],_e={key:0,class:`settings-error`,role:`alert`},ve={class:`resource-totals`},ye={class:`resource-breakdowns`},w={class:`resource-group`},T={class:`resource-group`},E={class:`resource-notes`},D={key:0},O={key:1},k={key:2,class:`settings-skeleton`,"aria-hidden":`true`},A={class:`settings-card ports-card`},j={class:`section-heading`},M={key:0,class:`restart-chip`},N={class:`port-section`},P={class:`port-grid`},be=[`onUpdate:modelValue`],xe={class:`port-section development-section`},Se={id:`conversation-launchers`,class:`settings-card conversation-launcher-card`},Ce={class:`conversation-launcher-list`},we={class:`conversation-launcher-heading`},Te={class:`conversation-launcher-switch`},Ee=[`onUpdate:modelValue`],De={key:0,class:`conversation-launcher-note`},Oe={key:1,class:`conversation-launcher-fields`},ke=[`onUpdate:modelValue`],Ae={class:`conversation-launcher-template`},je=[`onUpdate:modelValue`],Me={class:`settings-card behavior-card`},Ne={class:`setting-list`},Pe={class:`setting-row`},Fe=[`checked`],Ie={class:`setting-row`},Le=[`checked`],Re={class:`setting-row`},ze={class:`setting-row select-row`},Be={class:`setting-row select-row`},Ve={class:`setting-row select-row`},He={key:0,class:`settings-error`,role:`alert`},Ue={key:2,class:`settings-error`,role:`alert`},F=x(n({__name:`SettingsPage`,setup(n){let x=ae(),F=o(null),I=o(null),L=o(null),R=o(!0),z=o(!1),B=o(!1),V=o(``),H=o(``),U=o(!1),W=null,We=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=u({get:()=>te(),set:e=>d(e)}),K=[5,10,30,60],Ge=se,Ke=u(()=>[{value:`zh-CN`,label:s(`settings.behavior.zh`)},{value:`en-US`,label:s(`settings.behavior.en`)}]),qe=u(()=>K.map(e=>({value:String(e),label:s(`settings.resources.refreshUnit`,{seconds:e})}))),Je=u(()=>[{value:`native`,label:s(`settings.behavior.runtimeModes.native`)},{value:`container`,label:s(`settings.behavior.runtimeModes.container`)}]),Ye=u(()=>[{value:`any`,label:s(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:s(`settings.conversationLaunchers.idFormats.uuid`)}]),Xe=u(()=>x.state?.capturePolicy?.enabled!==!1),Ze=u(()=>x.state?.agentAccessPolicy?.enabled!==!1),Qe=u(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),$e=u(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),et=u(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);e(async()=>{x.runtimeStatus===`idle`&&x.refresh(),await Promise.all([q(),J()]),R.value=!1}),ee(Y),r(()=>I.value?.resourceRefreshSeconds,()=>nt());async function q(){try{let e=await b(`/api/system/settings`);F.value=e,I.value=structuredClone(e.configured),C(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:s(`settings.loadError`)}}async function J(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await b(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:s(`settings.resources.unavailable`)}finally{B.value=!1}}}async function tt(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await ie(`/api/system/settings`,I.value);F.value=e,I.value=structuredClone(e.configured),C(e.configured.conversationLaunchers),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:s(`settings.saveError`)}finally{z.value=!1}}}function nt(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void J(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function rt(e){x.updateCapturePolicy(e.currentTarget.checked)}function it(e){x.updateAgentAccessPolicy(e.currentTarget.checked)}function at(e){(e===`zh-CN`||e===`en-US`)&&d(e)}function ot(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function st(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function ct(e){let t=s(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?oe(e):t}function lt(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id}`,n=s(t);return n===t?e.label:n}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(e,n)=>(f(),y(`section`,{class:`view settings-view`,"aria-label":c(s)(`settings.aria`)},[l(`div`,le,[U.value||F.value?.restartRequired?(f(),y(`div`,ue,[U.value?(f(),y(`strong`,de,h(c(s)(`settings.saved`)),1)):v(``,!0),F.value?.restartRequired?(f(),y(`span`,fe,h(c(s)(`settings.restartCopy`)),1)):v(``,!0)])):v(``,!0),l(`section`,pe,[l(`header`,me,[l(`div`,null,[l(`h3`,null,h(c(s)(`settings.resources.title`)),1),L.value?(f(),y(`p`,he,h(c(s)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):v(``,!0)]),l(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:J},h(c(s)(`common.actions.refresh`)),9,ge)]),H.value?(f(),y(`p`,_e,h(H.value),1)):L.value?(f(),y(p,{key:1},[l(`div`,ve,[l(`article`,null,[l(`span`,null,h(c(s)(`settings.resources.memory`)),1),l(`strong`,null,h(Z(L.value.memory.usedBytes)),1),l(`small`,null,h(c(s)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),l(`article`,null,[l(`span`,null,h(c(s)(`settings.resources.disk`)),1),l(`strong`,null,h(Z(L.value.disk.usedBytes)),1),l(`small`,null,h(c(s)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),l(`div`,ye,[l(`div`,w,[l(`h4`,null,h(c(s)(`settings.resources.memory`)),1),(f(!0),y(p,null,i(L.value.memory.components,e=>(f(),y(`div`,{key:e.id,class:`resource-row`},[l(`div`,null,[l(`span`,null,h(X(e)),1),l(`strong`,null,h(Z(e.bytes)),1)]),l(`i`,null,[l(`b`,{style:m({width:Q(e.bytes,Qe.value)})},null,4)])]))),128))]),l(`div`,T,[l(`h4`,null,h(c(s)(`settings.resources.disk`)),1),(f(!0),y(p,null,i(L.value.disk.components,e=>(f(),y(`div`,{key:e.id,class:`resource-row`},[l(`div`,null,[l(`span`,null,h(X(e)),1),l(`strong`,null,h(Z(e.bytes)),1)]),l(`i`,null,[l(`b`,{style:m({width:Q(e.bytes,$e.value)})},null,4)])]))),128))])]),l(`div`,E,[l(`span`,null,h(c(s)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(f(),y(`span`,D,h(c(s)(`settings.resources.partial`)),1)):v(``,!0),L.value.disk.temporaryBytes?(f(),y(`span`,O,h(c(s)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):v(``,!0),l(`span`,null,h(c(s)(L.value.exclusions.includes(`shared-container-vm-overhead`)?`settings.resources.exclusionsContainer`:`settings.resources.exclusionsNative`)),1)])],64)):(f(),y(`div`,k))]),I.value?(f(),y(`form`,{key:1,id:`settings-form`,class:`settings-form`,onSubmit:ne(tt,[`prevent`])},[l(`section`,A,[l(`header`,j,[l(`h3`,null,h(c(s)(`settings.ports.title`)),1),F.value?.restartRequired?(f(),y(`span`,M,h(c(s)(`settings.restartRequired`)),1)):v(``,!0)]),l(`div`,N,[l(`h4`,null,h(c(s)(`settings.ports.personal`)),1),l(`div`,P,[(f(),y(p,null,i(We,e=>l(`label`,{key:e},[l(`span`,null,h(c(s)(`settings.ports.${e}`)),1),t(l(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,be),[[_,I.value.ports[e],void 0,{number:!0}]]),l(`small`,null,h(c(s)(`settings.ports.active`,{port:lt(e)})),1)])),64))])]),l(`div`,xe,[l(`div`,null,[l(`h4`,null,h(c(s)(`settings.ports.development`)),1),l(`span`,null,h(c(s)(`settings.ports.developing`)),1)]),l(`p`,null,h(c(s)(`settings.ports.developmentMeta`)),1)])]),l(`section`,Se,[l(`h3`,null,h(c(s)(`settings.conversationLaunchers.title`)),1),l(`div`,Ce,[(f(!0),y(p,null,i(c(Ge),e=>(f(),y(`article`,{key:e,class:`conversation-launcher-row`},[l(`div`,we,[l(`span`,null,[l(`strong`,null,h(ct(e)),1),l(`small`,null,h(c(s)(`settings.conversationLaunchers.sourceId`,{id:e})),1)]),l(`label`,Te,[l(`span`,null,h(c(s)(`settings.conversationLaunchers.enabled`)),1),t(l(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].enabled=t,type:`checkbox`,role:`switch`},null,8,Ee),[[g,I.value.conversationLaunchers[e].enabled]])])]),I.value.conversationLaunchers[e].enabled&&e===`codex`?(f(),y(`small`,De,h(c(s)(`settings.conversationLaunchers.idFormatMeta`)),1)):v(``,!0),I.value.conversationLaunchers[e].enabled?(f(),y(`div`,Oe,[l(`label`,null,[l(`span`,null,h(c(s)(`settings.conversationLaunchers.idFormat`)),1),a(S,{modelValue:I.value.conversationLaunchers[e].idFormat,"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].idFormat=t,class:`launcher-select`,"control-id":`settings-conversation-${e}-id-format`,options:Ye.value,label:c(s)(`settings.conversationLaunchers.idFormat`)},null,8,[`modelValue`,`onUpdate:modelValue`,`control-id`,`options`,`label`])]),l(`label`,null,[l(`span`,null,h(c(s)(`settings.conversationLaunchers.appName`)),1),t(l(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].appName=t,type:`text`,maxlength:`64`,required:``},null,8,ke),[[_,I.value.conversationLaunchers[e].appName,void 0,{trim:!0}]])]),l(`label`,Ae,[l(`span`,null,[re(h(c(s)(`settings.conversationLaunchers.urlTemplate`))+` `,1),n[1]||=l(`small`,null,[l(`code`,null,`{id}`)],-1)]),t(l(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].urlTemplate=t,type:`text`,maxlength:`1024`,spellcheck:`false`,required:``},null,8,je),[[_,I.value.conversationLaunchers[e].urlTemplate,void 0,{trim:!0}]])])])):v(``,!0)]))),128))])]),l(`section`,Me,[l(`h3`,null,h(c(s)(`settings.behavior.title`)),1),l(`div`,Ne,[l(`label`,Pe,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.capture`)),1),l(`small`,null,h(c(s)(`settings.behavior.captureMeta`)),1)]),l(`input`,{type:`checkbox`,role:`switch`,checked:Xe.value,onChange:rt},null,40,Fe)]),l(`label`,Ie,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.agentAccess`)),1),l(`small`,null,h(c(s)(`settings.behavior.agentAccessMeta`)),1)]),l(`input`,{type:`checkbox`,role:`switch`,checked:Ze.value,onChange:it},null,40,Le)]),l(`label`,Re,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.lanAccess`)),1),l(`small`,null,h(c(s)(`settings.behavior.lanAccessMeta`)),1)]),t(l(`input`,{"onUpdate:modelValue":n[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[g,I.value.lanAccess]])]),l(`div`,ze,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.runtimeMode`)),1),l(`small`,null,h(et.value?c(s)(`settings.behavior.runtimeRecommendation`):c(s)(`settings.behavior.runtimeModeMeta`,{mode:c(s)(`settings.behavior.runtimeModes.${F.value?.active.graphRuntimeMode??I.value.graphRuntimeMode}`)})),1)]),a(S,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:Je.value,label:c(s)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":st},null,8,[`model-value`,`options`,`label`])]),l(`div`,Be,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.language`)),1)]),a(S,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ke.value,label:c(s)(`settings.behavior.language`),"onUpdate:modelValue":at},null,8,[`model-value`,`options`,`label`])]),l(`div`,Ve,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.resources.refresh`)),1)]),a(S,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:qe.value,label:c(s)(`settings.resources.refresh`),"onUpdate:modelValue":ot},null,8,[`model-value`,`options`,`label`])])])]),V.value?(f(),y(`p`,He,h(V.value),1)):v(``,!0)],32)):R.value?v(``,!0):(f(),y(`p`,Ue,h(V.value||c(s)(`settings.loadError`)),1))])],8,ce))}}),[[`__scopeId`,`data-v-63730e70`]]);export{F as default};
1
+ import{A as e,B as t,C as n,L as r,N as i,S as a,Y as o,a as s,et as c,g as l,h as u,i as d,j as f,k as ee,m as p,n as te,nt as m,p as ne,rt as h,s as g,u as _,v,x as re,y}from"./i18n-ByRiA3pJ.js";import{o as ie,r as b,t as ae}from"./console-DQgu0JIA.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as S}from"./SearchableSelect-ERm-k4KI.js";import{o as oe,r as se,t as C}from"./conversation-launcher-settings-0KtlG_LV.js";var ce=[`aria-label`],le={class:`settings-content`},ue={key:0,class:`settings-top-status`,role:`status`},de={key:0},fe={key:1},pe={class:`settings-card resource-card`},me={class:`section-heading`},he={key:0},ge=[`disabled`],_e={key:0,class:`settings-error`,role:`alert`},ve={class:`resource-totals`},ye={class:`resource-breakdowns`},w={class:`resource-group`},T={class:`resource-group`},E={class:`resource-notes`},D={key:0},O={key:1},k={key:2,class:`settings-skeleton`,"aria-hidden":`true`},A={class:`settings-card ports-card`},j={class:`section-heading`},M={key:0,class:`restart-chip`},N={class:`port-section`},P={class:`port-grid`},be=[`onUpdate:modelValue`],xe={class:`port-section development-section`},Se={id:`conversation-launchers`,class:`settings-card conversation-launcher-card`},Ce={class:`conversation-launcher-list`},we={class:`conversation-launcher-heading`},Te={class:`conversation-launcher-switch`},Ee=[`onUpdate:modelValue`],De={key:0,class:`conversation-launcher-note`},Oe={key:1,class:`conversation-launcher-fields`},ke=[`onUpdate:modelValue`],Ae={class:`conversation-launcher-template`},je=[`onUpdate:modelValue`],Me={class:`settings-card behavior-card`},Ne={class:`setting-list`},Pe={class:`setting-row`},Fe=[`checked`],Ie={class:`setting-row`},Le=[`checked`],Re={class:`setting-row`},ze={class:`setting-row select-row`},Be={class:`setting-row select-row`},Ve={class:`setting-row select-row`},He={key:0,class:`settings-error`,role:`alert`},Ue={key:2,class:`settings-error`,role:`alert`},F=x(n({__name:`SettingsPage`,setup(n){let x=ae(),F=o(null),I=o(null),L=o(null),R=o(!0),z=o(!1),B=o(!1),V=o(``),H=o(``),U=o(!1),W=null,We=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=u({get:()=>te(),set:e=>d(e)}),K=[5,10,30,60],Ge=se,Ke=u(()=>[{value:`zh-CN`,label:s(`settings.behavior.zh`)},{value:`en-US`,label:s(`settings.behavior.en`)}]),qe=u(()=>K.map(e=>({value:String(e),label:s(`settings.resources.refreshUnit`,{seconds:e})}))),Je=u(()=>[{value:`native`,label:s(`settings.behavior.runtimeModes.native`)},{value:`container`,label:s(`settings.behavior.runtimeModes.container`)}]),Ye=u(()=>[{value:`any`,label:s(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:s(`settings.conversationLaunchers.idFormats.uuid`)}]),Xe=u(()=>x.state?.capturePolicy?.enabled!==!1),Ze=u(()=>x.state?.agentAccessPolicy?.enabled!==!1),Qe=u(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),$e=u(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),et=u(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);e(async()=>{x.runtimeStatus===`idle`&&x.refresh(),await Promise.all([q(),J()]),R.value=!1}),ee(Y),r(()=>I.value?.resourceRefreshSeconds,()=>nt());async function q(){try{let e=await b(`/api/system/settings`);F.value=e,I.value=structuredClone(e.configured),C(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:s(`settings.loadError`)}}async function J(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await b(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:s(`settings.resources.unavailable`)}finally{B.value=!1}}}async function tt(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await ie(`/api/system/settings`,I.value);F.value=e,I.value=structuredClone(e.configured),C(e.configured.conversationLaunchers),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:s(`settings.saveError`)}finally{z.value=!1}}}function nt(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void J(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function rt(e){x.updateCapturePolicy(e.currentTarget.checked)}function it(e){x.updateAgentAccessPolicy(e.currentTarget.checked)}function at(e){(e===`zh-CN`||e===`en-US`)&&d(e)}function ot(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function st(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function ct(e){let t=s(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?oe(e):t}function lt(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id}`,n=s(t);return n===t?e.label:n}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(e,n)=>(f(),y(`section`,{class:`view settings-view`,"aria-label":c(s)(`settings.aria`)},[l(`div`,le,[U.value||F.value?.restartRequired?(f(),y(`div`,ue,[U.value?(f(),y(`strong`,de,h(c(s)(`settings.saved`)),1)):v(``,!0),F.value?.restartRequired?(f(),y(`span`,fe,h(c(s)(`settings.restartCopy`)),1)):v(``,!0)])):v(``,!0),l(`section`,pe,[l(`header`,me,[l(`div`,null,[l(`h3`,null,h(c(s)(`settings.resources.title`)),1),L.value?(f(),y(`p`,he,h(c(s)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):v(``,!0)]),l(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:J},h(c(s)(`common.actions.refresh`)),9,ge)]),H.value?(f(),y(`p`,_e,h(H.value),1)):L.value?(f(),y(p,{key:1},[l(`div`,ve,[l(`article`,null,[l(`span`,null,h(c(s)(`settings.resources.memory`)),1),l(`strong`,null,h(Z(L.value.memory.usedBytes)),1),l(`small`,null,h(c(s)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),l(`article`,null,[l(`span`,null,h(c(s)(`settings.resources.disk`)),1),l(`strong`,null,h(Z(L.value.disk.usedBytes)),1),l(`small`,null,h(c(s)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),l(`div`,ye,[l(`div`,w,[l(`h4`,null,h(c(s)(`settings.resources.memory`)),1),(f(!0),y(p,null,i(L.value.memory.components,e=>(f(),y(`div`,{key:e.id,class:`resource-row`},[l(`div`,null,[l(`span`,null,h(X(e)),1),l(`strong`,null,h(Z(e.bytes)),1)]),l(`i`,null,[l(`b`,{style:m({width:Q(e.bytes,Qe.value)})},null,4)])]))),128))]),l(`div`,T,[l(`h4`,null,h(c(s)(`settings.resources.disk`)),1),(f(!0),y(p,null,i(L.value.disk.components,e=>(f(),y(`div`,{key:e.id,class:`resource-row`},[l(`div`,null,[l(`span`,null,h(X(e)),1),l(`strong`,null,h(Z(e.bytes)),1)]),l(`i`,null,[l(`b`,{style:m({width:Q(e.bytes,$e.value)})},null,4)])]))),128))])]),l(`div`,E,[l(`span`,null,h(c(s)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(f(),y(`span`,D,h(c(s)(`settings.resources.partial`)),1)):v(``,!0),L.value.disk.temporaryBytes?(f(),y(`span`,O,h(c(s)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):v(``,!0),l(`span`,null,h(c(s)(L.value.exclusions.includes(`shared-container-vm-overhead`)?`settings.resources.exclusionsContainer`:`settings.resources.exclusionsNative`)),1)])],64)):(f(),y(`div`,k))]),I.value?(f(),y(`form`,{key:1,id:`settings-form`,class:`settings-form`,onSubmit:ne(tt,[`prevent`])},[l(`section`,A,[l(`header`,j,[l(`h3`,null,h(c(s)(`settings.ports.title`)),1),F.value?.restartRequired?(f(),y(`span`,M,h(c(s)(`settings.restartRequired`)),1)):v(``,!0)]),l(`div`,N,[l(`h4`,null,h(c(s)(`settings.ports.personal`)),1),l(`div`,P,[(f(),y(p,null,i(We,e=>l(`label`,{key:e},[l(`span`,null,h(c(s)(`settings.ports.${e}`)),1),t(l(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,be),[[_,I.value.ports[e],void 0,{number:!0}]]),l(`small`,null,h(c(s)(`settings.ports.active`,{port:lt(e)})),1)])),64))])]),l(`div`,xe,[l(`div`,null,[l(`h4`,null,h(c(s)(`settings.ports.development`)),1),l(`span`,null,h(c(s)(`settings.ports.developing`)),1)]),l(`p`,null,h(c(s)(`settings.ports.developmentMeta`)),1)])]),l(`section`,Se,[l(`h3`,null,h(c(s)(`settings.conversationLaunchers.title`)),1),l(`div`,Ce,[(f(!0),y(p,null,i(c(Ge),e=>(f(),y(`article`,{key:e,class:`conversation-launcher-row`},[l(`div`,we,[l(`span`,null,[l(`strong`,null,h(ct(e)),1),l(`small`,null,h(c(s)(`settings.conversationLaunchers.sourceId`,{id:e})),1)]),l(`label`,Te,[l(`span`,null,h(c(s)(`settings.conversationLaunchers.enabled`)),1),t(l(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].enabled=t,type:`checkbox`,role:`switch`},null,8,Ee),[[g,I.value.conversationLaunchers[e].enabled]])])]),I.value.conversationLaunchers[e].enabled&&e===`codex`?(f(),y(`small`,De,h(c(s)(`settings.conversationLaunchers.idFormatMeta`)),1)):v(``,!0),I.value.conversationLaunchers[e].enabled?(f(),y(`div`,Oe,[l(`label`,null,[l(`span`,null,h(c(s)(`settings.conversationLaunchers.idFormat`)),1),a(S,{modelValue:I.value.conversationLaunchers[e].idFormat,"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].idFormat=t,class:`launcher-select`,"control-id":`settings-conversation-${e}-id-format`,options:Ye.value,label:c(s)(`settings.conversationLaunchers.idFormat`)},null,8,[`modelValue`,`onUpdate:modelValue`,`control-id`,`options`,`label`])]),l(`label`,null,[l(`span`,null,h(c(s)(`settings.conversationLaunchers.appName`)),1),t(l(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].appName=t,type:`text`,maxlength:`64`,required:``},null,8,ke),[[_,I.value.conversationLaunchers[e].appName,void 0,{trim:!0}]])]),l(`label`,Ae,[l(`span`,null,[re(h(c(s)(`settings.conversationLaunchers.urlTemplate`))+` `,1),n[1]||=l(`small`,null,[l(`code`,null,`{id}`)],-1)]),t(l(`input`,{"onUpdate:modelValue":t=>I.value.conversationLaunchers[e].urlTemplate=t,type:`text`,maxlength:`1024`,spellcheck:`false`,required:``},null,8,je),[[_,I.value.conversationLaunchers[e].urlTemplate,void 0,{trim:!0}]])])])):v(``,!0)]))),128))])]),l(`section`,Me,[l(`h3`,null,h(c(s)(`settings.behavior.title`)),1),l(`div`,Ne,[l(`label`,Pe,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.capture`)),1),l(`small`,null,h(c(s)(`settings.behavior.captureMeta`)),1)]),l(`input`,{type:`checkbox`,role:`switch`,checked:Xe.value,onChange:rt},null,40,Fe)]),l(`label`,Ie,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.agentAccess`)),1),l(`small`,null,h(c(s)(`settings.behavior.agentAccessMeta`)),1)]),l(`input`,{type:`checkbox`,role:`switch`,checked:Ze.value,onChange:it},null,40,Le)]),l(`label`,Re,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.lanAccess`)),1),l(`small`,null,h(c(s)(`settings.behavior.lanAccessMeta`)),1)]),t(l(`input`,{"onUpdate:modelValue":n[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[g,I.value.lanAccess]])]),l(`div`,ze,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.runtimeMode`)),1),l(`small`,null,h(et.value?c(s)(`settings.behavior.runtimeRecommendation`):c(s)(`settings.behavior.runtimeModeMeta`,{mode:c(s)(`settings.behavior.runtimeModes.${F.value?.active.graphRuntimeMode??I.value.graphRuntimeMode}`)})),1)]),a(S,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:Je.value,label:c(s)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":st},null,8,[`model-value`,`options`,`label`])]),l(`div`,Be,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.behavior.language`)),1)]),a(S,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ke.value,label:c(s)(`settings.behavior.language`),"onUpdate:modelValue":at},null,8,[`model-value`,`options`,`label`])]),l(`div`,Ve,[l(`span`,null,[l(`strong`,null,h(c(s)(`settings.resources.refresh`)),1)]),a(S,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:qe.value,label:c(s)(`settings.resources.refresh`),"onUpdate:modelValue":ot},null,8,[`model-value`,`options`,`label`])])])]),V.value?(f(),y(`p`,He,h(V.value),1)):v(``,!0)],32)):R.value?v(``,!0):(f(),y(`p`,Ue,h(V.value||c(s)(`settings.loadError`)),1))])],8,ce))}}),[[`__scopeId`,`data-v-63730e70`]]);export{F as default};
@@ -1 +1 @@
1
- import{C as e,L as t,N as n,S as r,Y as i,_ as a,a as o,et as s,g as c,h as l,j as u,m as d,rt as f,tt as p,v as m,x as h,y as g,z as _}from"./i18n-CgBHZthI.js";import{r as v,t as y}from"./console-tOxOl8Vq.js";import{t as b}from"./vue-router-CzHm-y-x.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as S,i as C,n as w,t as ee}from"./KnowledgeEditDialog-UnnBDt0I.js";import{u as te,x as ne}from"./model-BtnVr7fX.js";var re={class:`view writing-taste-view`},ie={key:1,class:`writing-taste-unavailable`},ae={class:`writing-taste-hero__copy`},T={class:`writing-taste-status`},E={class:`writing-taste-hero__score`,"aria-hidden":`true`},D=[`aria-label`],O={"aria-hidden":`true`},k={class:`writing-taste-rules`},A={key:0,class:`writing-taste-rule-list`},j={class:`writing-taste-rule__status`},M={key:0,class:`conflict`},N={class:`writing-taste-rule__body`},P={key:0},F={key:1},I={key:0},L={key:0,class:`writing-taste-rule__actions`},R=[`onClick`],z=[`onClick`],B={key:1,class:`writing-taste-empty`},oe={key:0,class:`writing-taste-agent-preview`},V={key:0},H=x(e({__name:`WritingTastePage`,setup(e){let x=y(),H=i(null),U=i(null),W=i(!1),G=i(null),K=i(null),q=i(!1),J=0,se=C(l(()=>W.value&&!H.value)),Y=l(()=>ne(U.value)),X=l(()=>new Map(Y.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),ce=l(()=>H.value?.status===`active`?o(`writingTaste.page.activeTitle`):H.value?.status===`preview_ready`?o(`writingTaste.page.previewTitle`):o(`writingTaste.page.collectingTitle`)),Z=l(()=>H.value?.status===`active`?o(`writingTaste.page.activeCopy`):H.value?.status===`preview_ready`?o(`writingTaste.page.previewCopy`):o(`writingTaste.page.collectingCopy`));t(()=>x.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0});async function Q(e=x.activePersonalSpace?.id){if(!e)return;let t=++J;W.value=!0;try{let n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({spaceId:e,limit:`500`}),[i,a]=await Promise.all([v(`/api/writing-taste-profile?${n}`),v(`/api/graph?${r}`)]);if(t!==J)return;H.value=me(i)?i:null,U.value=he(a)?a:null,pe()}catch(e){if(t!==J)return;H.value=null,U.value=null,x.reportError(e)}finally{t===J&&(W.value=!1)}}function $(e){return X.value.get(`${e.item_kind}:${e.item_id}`)??null}function le(e){G.value=$(e)}function ue(e){K.value=$(e)}function de(e){if(e.preference_scope!==`project`||!e.preference_project_id)return o(`writingTaste.page.globalScope`);let t=x.state?.personalProjects?.find(({project_id:t})=>t===e.preference_project_id);return o(`writingTaste.page.projectScope`,{project:t?.profile.name??e.preference_project_id})}function fe(e){return e.key===`conflicts`?o(`writingTaste.criteria.conflictsProgress`,{current:e.current}):o(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function pe(){G.value&&=X.value.get(`${G.value.itemKind}:${G.value.id}`)??null,K.value&&=X.value.get(`${K.value.itemKind}:${K.value.id}`)??null}function me(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 he(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.nodes)&&Array.isArray(t.edges)}return(e,t)=>(u(),g(`section`,re,[r(s(b),{class:`writing-taste-back`,to:`/preferences`},{default:_(()=>[t[5]||=c(`span`,{"aria-hidden":`true`},`←`,-1),h(` `+f(s(o)(`writingTaste.page.back`)),1)]),_:1}),s(se)?(u(),a(S,{key:0,label:s(o)(`writingTaste.page.loading`)},null,8,[`label`])):H.value?(u(),g(d,{key:2},[c(`header`,{class:p([`writing-taste-hero`,`status-${H.value.status}`])},[c(`div`,ae,[c(`span`,T,[t[6]||=c(`i`,{"aria-hidden":`true`},null,-1),h(` `+f(s(o)(`writingTaste.status.${H.value.status}`)),1)]),c(`h2`,null,f(ce.value),1),c(`p`,null,f(Z.value),1)]),c(`div`,E,[c(`strong`,null,f(H.value.readiness.rule_count),1),c(`span`,null,`/ `+f(H.value.readiness.thresholds.rule_count),1),c(`small`,null,f(s(o)(`writingTaste.criteria.rules`)),1)])],2),c(`section`,{class:`writing-taste-readiness`,"aria-label":s(o)(`writingTaste.page.readinessAria`)},[(u(!0),g(d,null,n(H.value.readiness.criteria,e=>(u(),g(`article`,{key:e.key,class:p({met:e.met})},[c(`span`,O,f(e.met?`✓`:`·`),1),c(`div`,null,[c(`strong`,null,f(s(o)(`writingTaste.criteria.${e.key}`)),1),c(`small`,null,f(fe(e)),1)])],2))),128))],8,D),c(`section`,k,[c(`header`,null,[c(`h2`,null,f(s(o)(`writingTaste.page.rulesTitle`)),1),c(`span`,null,f(H.value.rules.length),1)]),H.value.rules.length?(u(),g(`div`,A,[(u(!0),g(d,null,n(H.value.rules,e=>(u(),g(`article`,{key:`${e.item_kind}:${e.item_id}`,class:p([`writing-taste-rule`,{"has-conflict":e.has_conflict,"is-hypothesis":e.evidence_status===`Working hypothesis`}])},[c(`div`,j,[c(`span`,{class:p(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},f(s(o)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),c(`span`,null,f(de(e)),1),e.has_conflict?(u(),g(`span`,M,f(s(o)(`writingTaste.page.conflict`)),1)):m(``,!0)]),c(`div`,N,[c(`h3`,null,f(e.title),1),c(`p`,null,f(e.instruction),1),e.reason?(u(),g(`small`,P,f(e.reason),1)):m(``,!0),e.contexts.length?(u(),g(`small`,F,f(s(o)(`writingTaste.page.contexts`,{contexts:e.contexts.join(`、`)})),1)):m(``,!0)]),c(`footer`,null,[c(`div`,null,[c(`span`,null,f(s(o)(`writingTaste.page.evidence`,{evidence:e.evidence_count})),1),c(`span`,null,f(s(o)(`writingTaste.page.sessions`,{sessions:e.session_count})),1),e.updated_at?(u(),g(`span`,I,f(s(o)(`writingTaste.page.updated`,{time:s(te)(e.updated_at)})),1)):m(``,!0)]),$(e)?(u(),g(`div`,L,[c(`button`,{class:`secondary-action`,type:`button`,onClick:t=>ue(e)},f(s(o)(`writingTaste.page.edit`)),9,R),e.evidence_status===`Confirmed`?m(``,!0):(u(),g(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>le(e)},f(s(o)(`writingTaste.page.confirm`)),9,z))])):m(``,!0)])],2))),128))])):(u(),g(`div`,B,f(s(o)(`writingTaste.page.rulesEmpty`)),1))]),H.value.ready&&H.value.agent_markdown?(u(),g(`section`,oe,[c(`div`,null,[c(`h2`,null,f(s(o)(`writingTaste.page.agentPreviewTitle`)),1),c(`p`,null,f(s(o)(`writingTaste.page.agentPreviewCopy`)),1)]),c(`button`,{class:`secondary-action`,type:`button`,onClick:t[0]||=e=>q.value=!q.value},f(q.value?s(o)(`writingTaste.page.hideAgentPreview`):s(o)(`writingTaste.page.showAgentPreview`)),1),q.value?(u(),g(`pre`,V,f(H.value.agent_markdown),1)):m(``,!0)])):m(``,!0)],64)):(u(),g(`div`,ie,f(s(o)(`writingTaste.page.profileUnavailable`)),1)),r(ee,{item:K.value,"personal-space-id":s(x).activePersonalSpace?.id??``,"personal-project-id":null,projects:s(x).state?.personalProjects??[],"replacement-items":Y.value,onClose:t[1]||=e=>K.value=null,onSaved:t[2]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),r(w,{item:G.value,"personal-space-id":s(x).activePersonalSpace?.id??``,"personal-project-id":null,onClose:t[3]||=e=>G.value=null,onSaved:t[4]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-c14a3671`]]);export{H as default};
1
+ import{C as e,L as t,N as n,S as r,Y as i,_ as a,a as o,et as s,g as c,h as l,j as u,m as d,rt as f,tt as p,v as m,x as h,y as g,z as _}from"./i18n-ByRiA3pJ.js";import{r as v,t as y}from"./console-DQgu0JIA.js";import{t as b}from"./vue-router-CzX-hn3P.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as S,i as C,n as w,t as ee}from"./KnowledgeEditDialog-B6TGAcFH.js";import{u as te,x as ne}from"./model-Db4-KefQ.js";var re={class:`view writing-taste-view`},ie={key:1,class:`writing-taste-unavailable`},ae={class:`writing-taste-hero__copy`},T={class:`writing-taste-status`},E={class:`writing-taste-hero__score`,"aria-hidden":`true`},D=[`aria-label`],O={"aria-hidden":`true`},k={class:`writing-taste-rules`},A={key:0,class:`writing-taste-rule-list`},j={class:`writing-taste-rule__status`},M={key:0,class:`conflict`},N={class:`writing-taste-rule__body`},P={key:0},F={key:1},I={key:0},L={key:0,class:`writing-taste-rule__actions`},R=[`onClick`],z=[`onClick`],B={key:1,class:`writing-taste-empty`},oe={key:0,class:`writing-taste-agent-preview`},V={key:0},H=x(e({__name:`WritingTastePage`,setup(e){let x=y(),H=i(null),U=i(null),W=i(!1),G=i(null),K=i(null),q=i(!1),J=0,se=C(l(()=>W.value&&!H.value)),Y=l(()=>ne(U.value)),X=l(()=>new Map(Y.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),ce=l(()=>H.value?.status===`active`?o(`writingTaste.page.activeTitle`):H.value?.status===`preview_ready`?o(`writingTaste.page.previewTitle`):o(`writingTaste.page.collectingTitle`)),Z=l(()=>H.value?.status===`active`?o(`writingTaste.page.activeCopy`):H.value?.status===`preview_ready`?o(`writingTaste.page.previewCopy`):o(`writingTaste.page.collectingCopy`));t(()=>x.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0});async function Q(e=x.activePersonalSpace?.id){if(!e)return;let t=++J;W.value=!0;try{let n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({spaceId:e,limit:`500`}),[i,a]=await Promise.all([v(`/api/writing-taste-profile?${n}`),v(`/api/graph?${r}`)]);if(t!==J)return;H.value=me(i)?i:null,U.value=he(a)?a:null,pe()}catch(e){if(t!==J)return;H.value=null,U.value=null,x.reportError(e)}finally{t===J&&(W.value=!1)}}function $(e){return X.value.get(`${e.item_kind}:${e.item_id}`)??null}function le(e){G.value=$(e)}function ue(e){K.value=$(e)}function de(e){if(e.preference_scope!==`project`||!e.preference_project_id)return o(`writingTaste.page.globalScope`);let t=x.state?.personalProjects?.find(({project_id:t})=>t===e.preference_project_id);return o(`writingTaste.page.projectScope`,{project:t?.profile.name??e.preference_project_id})}function fe(e){return e.key===`conflicts`?o(`writingTaste.criteria.conflictsProgress`,{current:e.current}):o(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function pe(){G.value&&=X.value.get(`${G.value.itemKind}:${G.value.id}`)??null,K.value&&=X.value.get(`${K.value.itemKind}:${K.value.id}`)??null}function me(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 he(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.nodes)&&Array.isArray(t.edges)}return(e,t)=>(u(),g(`section`,re,[r(s(b),{class:`writing-taste-back`,to:`/preferences`},{default:_(()=>[t[5]||=c(`span`,{"aria-hidden":`true`},`←`,-1),h(` `+f(s(o)(`writingTaste.page.back`)),1)]),_:1}),s(se)?(u(),a(S,{key:0,label:s(o)(`writingTaste.page.loading`)},null,8,[`label`])):H.value?(u(),g(d,{key:2},[c(`header`,{class:p([`writing-taste-hero`,`status-${H.value.status}`])},[c(`div`,ae,[c(`span`,T,[t[6]||=c(`i`,{"aria-hidden":`true`},null,-1),h(` `+f(s(o)(`writingTaste.status.${H.value.status}`)),1)]),c(`h2`,null,f(ce.value),1),c(`p`,null,f(Z.value),1)]),c(`div`,E,[c(`strong`,null,f(H.value.readiness.rule_count),1),c(`span`,null,`/ `+f(H.value.readiness.thresholds.rule_count),1),c(`small`,null,f(s(o)(`writingTaste.criteria.rules`)),1)])],2),c(`section`,{class:`writing-taste-readiness`,"aria-label":s(o)(`writingTaste.page.readinessAria`)},[(u(!0),g(d,null,n(H.value.readiness.criteria,e=>(u(),g(`article`,{key:e.key,class:p({met:e.met})},[c(`span`,O,f(e.met?`✓`:`·`),1),c(`div`,null,[c(`strong`,null,f(s(o)(`writingTaste.criteria.${e.key}`)),1),c(`small`,null,f(fe(e)),1)])],2))),128))],8,D),c(`section`,k,[c(`header`,null,[c(`h2`,null,f(s(o)(`writingTaste.page.rulesTitle`)),1),c(`span`,null,f(H.value.rules.length),1)]),H.value.rules.length?(u(),g(`div`,A,[(u(!0),g(d,null,n(H.value.rules,e=>(u(),g(`article`,{key:`${e.item_kind}:${e.item_id}`,class:p([`writing-taste-rule`,{"has-conflict":e.has_conflict,"is-hypothesis":e.evidence_status===`Working hypothesis`}])},[c(`div`,j,[c(`span`,{class:p(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},f(s(o)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),c(`span`,null,f(de(e)),1),e.has_conflict?(u(),g(`span`,M,f(s(o)(`writingTaste.page.conflict`)),1)):m(``,!0)]),c(`div`,N,[c(`h3`,null,f(e.title),1),c(`p`,null,f(e.instruction),1),e.reason?(u(),g(`small`,P,f(e.reason),1)):m(``,!0),e.contexts.length?(u(),g(`small`,F,f(s(o)(`writingTaste.page.contexts`,{contexts:e.contexts.join(`、`)})),1)):m(``,!0)]),c(`footer`,null,[c(`div`,null,[c(`span`,null,f(s(o)(`writingTaste.page.evidence`,{evidence:e.evidence_count})),1),c(`span`,null,f(s(o)(`writingTaste.page.sessions`,{sessions:e.session_count})),1),e.updated_at?(u(),g(`span`,I,f(s(o)(`writingTaste.page.updated`,{time:s(te)(e.updated_at)})),1)):m(``,!0)]),$(e)?(u(),g(`div`,L,[c(`button`,{class:`secondary-action`,type:`button`,onClick:t=>ue(e)},f(s(o)(`writingTaste.page.edit`)),9,R),e.evidence_status===`Confirmed`?m(``,!0):(u(),g(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>le(e)},f(s(o)(`writingTaste.page.confirm`)),9,z))])):m(``,!0)])],2))),128))])):(u(),g(`div`,B,f(s(o)(`writingTaste.page.rulesEmpty`)),1))]),H.value.ready&&H.value.agent_markdown?(u(),g(`section`,oe,[c(`div`,null,[c(`h2`,null,f(s(o)(`writingTaste.page.agentPreviewTitle`)),1),c(`p`,null,f(s(o)(`writingTaste.page.agentPreviewCopy`)),1)]),c(`button`,{class:`secondary-action`,type:`button`,onClick:t[0]||=e=>q.value=!q.value},f(q.value?s(o)(`writingTaste.page.hideAgentPreview`):s(o)(`writingTaste.page.showAgentPreview`)),1),q.value?(u(),g(`pre`,V,f(H.value.agent_markdown),1)):m(``,!0)])):m(``,!0)],64)):(u(),g(`div`,ie,f(s(o)(`writingTaste.page.profileUnavailable`)),1)),r(ee,{item:K.value,"personal-space-id":s(x).activePersonalSpace?.id??``,"personal-project-id":null,projects:s(x).state?.personalProjects??[],"replacement-items":Y.value,onClose:t[1]||=e=>K.value=null,onSaved:t[2]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),r(w,{item:G.value,"personal-space-id":s(x).activePersonalSpace?.id??``,"personal-project-id":null,onClose:t[3]||=e=>G.value=null,onSaved:t[4]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-c14a3671`]]);export{H as default};
@@ -1 +1 @@
1
- import{Y as e,a as t}from"./i18n-CgBHZthI.js";import{r as n}from"./console-tOxOl8Vq.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;function u(e){if(e===s&&c)return c;let t=++l;return e!==s&&(i.value=[]),s=e,o.value=``,e?(a.value=!0,c=n(`/api/employee-templates?${new URLSearchParams({personalSpaceId:e})}`).then(e=>{t===l&&(i.value=Array.isArray(e.templates)?e.templates:[])}).catch(e=>{t===l&&(i.value=[],o.value=d(e))}).finally(()=>{t===l&&(a.value=!1,c=null)}),c):(i.value=[],a.value=!1,Promise.resolve())}function d(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,d as r,o as t};
1
+ import{Y as e,a as t}from"./i18n-ByRiA3pJ.js";import{r as n}from"./console-DQgu0JIA.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;function u(e){if(e===s&&c)return c;let t=++l;return e!==s&&(i.value=[]),s=e,o.value=``,e?(a.value=!0,c=n(`/api/employee-templates?${new URLSearchParams({personalSpaceId:e})}`).then(e=>{t===l&&(i.value=Array.isArray(e.templates)?e.templates:[])}).catch(e=>{t===l&&(i.value=[],o.value=d(e))}).finally(()=>{t===l&&(a.value=!1,c=null)}),c):(i.value=[],a.value=!1,Promise.resolve())}function d(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,d as r,o as t};
@@ -1 +1 @@
1
- import{$ as e,E as t,G as n,H as r,K as i,L as a,O as o,Q as s,T as c,U as l,V as u,W as d,Y as f,Z as p,a as m,h,q as g}from"./i18n-CgBHZthI.js";var _=typeof window<`u`,v,y=e=>v=e,b=Symbol();function x(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var S=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 C(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 w(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){k(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function T(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function E(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 D=typeof navigator==`object`?navigator:{userAgent:``},O=/Macintosh/.test(D.userAgent)&&/AppleWebKit/.test(D.userAgent)&&!/Safari/.test(D.userAgent),k=_?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!O?A:`msSaveOrOpenBlob`in D?j:M:()=>{};function A(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?E(r):T(r.href)?w(e,t,n):(r.target=`_blank`,E(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){E(r)},0))}function j(e,t=`download`,n){if(typeof e==`string`)if(T(e))w(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){E(t)})}else navigator.msSaveOrOpenBlob(C(e,n),t)}function M(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return w(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(S.HTMLElement))||`safari`in S,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||O)&&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:ee}=Object;function N(){let e=u(!0),t=e.run(()=>f({})),r=[],i=[],a=n({install(e){y(a),a._a=e,e.provide(b,a),e.config.globalProperties.$pinia=a,i.forEach(e=>r.push(e)),i=[]},use(e){return this._a?r.push(e):i.push(e),this},_p:r,_a:null,_e:e,_s:new Map,state:t});return a}var P=()=>{};function F(e,t,n,a=P){e.add(t);let o=()=>{e.delete(t)&&a()};return!n&&r()&&i(o),o}function I(e,...t){e.forEach(e=>{e(...t)})}var L=e=>e(),R=Symbol(),z=Symbol();function B(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 r=t[n],i=e[n];x(i)&&x(r)&&Object.hasOwn(e,n)&&!d(r)&&!l(r)?e[n]=B(i,r):e[n]=r}return e}var V=Symbol();function H(e){return!e||typeof e!=`object`||!Object.hasOwn(e,V)}var{assign:U}=Object;function W(e){return!!(d(e)&&e.effect)}function G(t,r,i,a){let{state:o,actions:s,getters:c}=r,l=i.state.value[t],u;function d(){return l||(i.state.value[t]=o?o():{}),U(e(i.state.value[t]),s,Object.keys(c||{}).reduce((e,r)=>(e[r]=n(h(()=>{y(i);let e=i._s.get(t);return c[r].call(e,e)})),e),{}))}return u=K(t,d,r,i,a,!0),u}function K(e,t,n={},r,i,c){let f,p=U({actions:{}},n),m={deep:!0},h,_,v=new Set,b=new Set,x=r.state.value[e];!c&&!x&&(r.state.value[e]={});let S;function C(t){let n;h=_=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:void 0}):(B(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:void 0});let i=S=Symbol();o().then(()=>{S===i&&(h=!0)}),_=!0,I(v,n,r.state.value[e])}let w=c?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{U(e,t)})}:P;function T(){f.stop(),v.clear(),b.clear(),r._s.delete(e)}let E=(t,n=``)=>{if(R in t)return t[z]=n,t;let i=function(){y(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}I(b,{args:n,name:i[z],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw I(o,e),e}return l instanceof Promise?l.then(e=>(I(a,e),e)).catch(e=>(I(o,e),Promise.reject(e))):(I(a,l),l)};return i[R]=!0,i[z]=n,i},D=g({_p:r,$id:e,$onAction:F.bind(null,b),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return P;let i=F(v,t,n.detached,()=>o()),o=f.run(()=>a(()=>r.state.value[e],r=>{(n.flush===`sync`?_:h)&&t({storeId:e,type:`direct`,events:void 0},r)},U({},m,n)));return i},$dispose:T});r._s.set(e,D);let O=(r._a&&r._a.runWithContext||L)(()=>r._e.run(()=>(f=u()).run(()=>t({action:E}))));for(let t in O){let n=O[t];d(n)&&!W(n)||l(n)?c||(x&&H(n)&&(d(n)?n.value=x[t]:B(n,x[t])),r.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),p.actions[t]=n)}return U(D,O),U(s(D),O),Object.defineProperty(D,"$state",{get:()=>r.state.value[e],set:e=>{C(t=>{U(t,e)})}}),r._p.forEach(e=>{let t=f.run(()=>e({store:D,app:r._a,pinia:r,options:p}));U(D,t)}),x&&c&&n.hydrate&&n.hydrate(D.$state,x),h=!0,_=!0,D}function q(e,n,r){let i,a=typeof n==`function`;i=a?r:n;function o(r,o){let s=c();return r||=s?t(b,null):null,r&&y(r),r=v,r._s.has(e)||(a?K(e,n,i,r):G(e,i,r)),r._s.get(e)}return o.$id=e,o}var J=class extends Error{status;constructor(e,t){super(e),this.name=`ApiError`,this.status=t}};async function Y(e,t){let n=await fetch(e,t);if(!n.ok)throw new J((await n.text()).trim()||m(`common.errors.requestFailed`,{status:n.status}),n.status);return n.json()}function X(e,t){return Y(e,t)}function Z(e,t){return Y(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function Q(e,t){return Y(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function $(e,t){return Y(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function te(e){return Y(e,{method:`DELETE`})}var ne=q(`console`,()=>{let e=p(null),t=f(`idle`),n=f(null),r=h(()=>{let t=e.value;return t?t.personalSpaces.find(({id:e})=>e===t.activePersonalSpaceId)??t.personalSpaces[0]??null:null}),i=h(()=>e.value?.mode===`connected`?`ready`:e.value?.mode===`degraded`?`error`:`disconnected`);async function a(){t.value=`loading`;try{e.value=await X(`/api/state`),t.value=`ready`}catch(e){t.value=`error`,u(e)}}async function o(t){try{let n=await $(`/api/capture-policy`,{enabled:t});e.value&&={...e.value,capturePolicy:n},l(m(t?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){u(e)}}async function s(t){try{let n=await $(`/api/agent-access-policy`,{enabled:t});e.value&&={...e.value,agentAccessPolicy:n},l(m(t?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){u(e)}}function c(t){return e.value?.capabilities?.[t]===!0}function l(e){n.value={message:e,tone:`success`}}function u(e){n.value={message:e instanceof Error?e.message:m(`common.errors.operationFailed`),tone:`error`}}function d(){n.value=null}return{state:e,runtimeStatus:t,feedback:n,activePersonalSpace:r,publicRuntimeStatus:i,refresh:a,updateCapturePolicy:o,updateAgentAccessPolicy:s,hasCapability:c,notify:l,reportError:u,clearFeedback:d}});export{Z as a,$ as i,te as n,Q as o,X as r,N as s,ne as t};
1
+ import{$ as e,E as t,G as n,H as r,K as i,L as a,O as o,Q as s,T as c,U as l,V as u,W as d,Y as f,Z as p,a as m,h,q as g}from"./i18n-ByRiA3pJ.js";var _=typeof window<`u`,v,y=e=>v=e,b=Symbol();function x(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var S=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 C(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 w(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){k(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function T(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function E(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 D=typeof navigator==`object`?navigator:{userAgent:``},O=/Macintosh/.test(D.userAgent)&&/AppleWebKit/.test(D.userAgent)&&!/Safari/.test(D.userAgent),k=_?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!O?A:`msSaveOrOpenBlob`in D?j:M:()=>{};function A(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?E(r):T(r.href)?w(e,t,n):(r.target=`_blank`,E(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){E(r)},0))}function j(e,t=`download`,n){if(typeof e==`string`)if(T(e))w(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){E(t)})}else navigator.msSaveOrOpenBlob(C(e,n),t)}function M(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return w(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(S.HTMLElement))||`safari`in S,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||O)&&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:ee}=Object;function N(){let e=u(!0),t=e.run(()=>f({})),r=[],i=[],a=n({install(e){y(a),a._a=e,e.provide(b,a),e.config.globalProperties.$pinia=a,i.forEach(e=>r.push(e)),i=[]},use(e){return this._a?r.push(e):i.push(e),this},_p:r,_a:null,_e:e,_s:new Map,state:t});return a}var P=()=>{};function F(e,t,n,a=P){e.add(t);let o=()=>{e.delete(t)&&a()};return!n&&r()&&i(o),o}function I(e,...t){e.forEach(e=>{e(...t)})}var L=e=>e(),R=Symbol(),z=Symbol();function B(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 r=t[n],i=e[n];x(i)&&x(r)&&Object.hasOwn(e,n)&&!d(r)&&!l(r)?e[n]=B(i,r):e[n]=r}return e}var V=Symbol();function H(e){return!e||typeof e!=`object`||!Object.hasOwn(e,V)}var{assign:U}=Object;function W(e){return!!(d(e)&&e.effect)}function G(t,r,i,a){let{state:o,actions:s,getters:c}=r,l=i.state.value[t],u;function d(){return l||(i.state.value[t]=o?o():{}),U(e(i.state.value[t]),s,Object.keys(c||{}).reduce((e,r)=>(e[r]=n(h(()=>{y(i);let e=i._s.get(t);return c[r].call(e,e)})),e),{}))}return u=K(t,d,r,i,a,!0),u}function K(e,t,n={},r,i,c){let f,p=U({actions:{}},n),m={deep:!0},h,_,v=new Set,b=new Set,x=r.state.value[e];!c&&!x&&(r.state.value[e]={});let S;function C(t){let n;h=_=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:void 0}):(B(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:void 0});let i=S=Symbol();o().then(()=>{S===i&&(h=!0)}),_=!0,I(v,n,r.state.value[e])}let w=c?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{U(e,t)})}:P;function T(){f.stop(),v.clear(),b.clear(),r._s.delete(e)}let E=(t,n=``)=>{if(R in t)return t[z]=n,t;let i=function(){y(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}I(b,{args:n,name:i[z],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw I(o,e),e}return l instanceof Promise?l.then(e=>(I(a,e),e)).catch(e=>(I(o,e),Promise.reject(e))):(I(a,l),l)};return i[R]=!0,i[z]=n,i},D=g({_p:r,$id:e,$onAction:F.bind(null,b),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return P;let i=F(v,t,n.detached,()=>o()),o=f.run(()=>a(()=>r.state.value[e],r=>{(n.flush===`sync`?_:h)&&t({storeId:e,type:`direct`,events:void 0},r)},U({},m,n)));return i},$dispose:T});r._s.set(e,D);let O=(r._a&&r._a.runWithContext||L)(()=>r._e.run(()=>(f=u()).run(()=>t({action:E}))));for(let t in O){let n=O[t];d(n)&&!W(n)||l(n)?c||(x&&H(n)&&(d(n)?n.value=x[t]:B(n,x[t])),r.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),p.actions[t]=n)}return U(D,O),U(s(D),O),Object.defineProperty(D,"$state",{get:()=>r.state.value[e],set:e=>{C(t=>{U(t,e)})}}),r._p.forEach(e=>{let t=f.run(()=>e({store:D,app:r._a,pinia:r,options:p}));U(D,t)}),x&&c&&n.hydrate&&n.hydrate(D.$state,x),h=!0,_=!0,D}function q(e,n,r){let i,a=typeof n==`function`;i=a?r:n;function o(r,o){let s=c();return r||=s?t(b,null):null,r&&y(r),r=v,r._s.has(e)||(a?K(e,n,i,r):G(e,i,r)),r._s.get(e)}return o.$id=e,o}var J=class extends Error{status;constructor(e,t){super(e),this.name=`ApiError`,this.status=t}};async function Y(e,t){let n=await fetch(e,t);if(!n.ok)throw new J((await n.text()).trim()||m(`common.errors.requestFailed`,{status:n.status}),n.status);return n.json()}function X(e,t){return Y(e,t)}function Z(e,t){return Y(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function Q(e,t){return Y(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function $(e,t){return Y(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function te(e){return Y(e,{method:`DELETE`})}var ne=q(`console`,()=>{let e=p(null),t=f(`idle`),n=f(null),r=h(()=>{let t=e.value;return t?t.personalSpaces.find(({id:e})=>e===t.activePersonalSpaceId)??t.personalSpaces[0]??null:null}),i=h(()=>e.value?.mode===`connected`?`ready`:e.value?.mode===`degraded`?`error`:`disconnected`);async function a(){t.value=`loading`;try{e.value=await X(`/api/state`),t.value=`ready`}catch(e){t.value=`error`,u(e)}}async function o(t){try{let n=await $(`/api/capture-policy`,{enabled:t});e.value&&={...e.value,capturePolicy:n},l(m(t?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){u(e)}}async function s(t){try{let n=await $(`/api/agent-access-policy`,{enabled:t});e.value&&={...e.value,agentAccessPolicy:n},l(m(t?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){u(e)}}function c(t){return e.value?.capabilities?.[t]===!0}function l(e){n.value={message:e,tone:`success`}}function u(e){n.value={message:e instanceof Error?e.message:m(`common.errors.operationFailed`),tone:`error`}}function d(){n.value=null}return{state:e,runtimeStatus:t,feedback:n,activePersonalSpace:r,publicRuntimeStatus:i,refresh:a,updateCapturePolicy:o,updateAgentAccessPolicy:s,hasCapability:c,notify:l,reportError:u,clearFeedback:d}});export{Z as a,$ as i,te as n,Q as o,X as r,N as s,ne as t};
@@ -1 +1 @@
1
- import{J as e,Z as t,a as n}from"./i18n-CgBHZthI.js";import{r}from"./console-tOxOl8Vq.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=t(w(l)),b=null;function x(){return C(),e(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{d as a,p as c,g as i,x as n,f as o,i as r,h as s,S as t};
1
+ import{J as e,Z as t,a as n}from"./i18n-ByRiA3pJ.js";import{r}from"./console-DQgu0JIA.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=t(w(l)),b=null;function x(){return C(),e(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{d as a,p as c,g as i,x as n,f as o,i as r,h as s,S as t};