fuli-context 0.12.3 → 0.12.4

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 (82) hide show
  1. package/README.zh-CN.md +1 -1
  2. package/dist/web/assets/{AboutPage-Dized8Uz.js → AboutPage-DKsgqteA.js} +1 -1
  3. package/dist/web/assets/{AgentConversations-Ccy41mEA.js → AgentConversations-BnFsfRj3.js} +1 -1
  4. package/dist/web/assets/{AgentHand-UzVhbKUC.js → AgentHand-B5lezlek.js} +1 -1
  5. package/dist/web/assets/{AgentName-DJpvkub2.js → AgentName-C-V41xs0.js} +1 -1
  6. package/dist/web/assets/AgentProfilePage-DjgqtOdz.js +1 -0
  7. package/dist/web/assets/AgentsDirectoryPage-IgN5QEdW.js +1 -0
  8. package/dist/web/assets/{AgentsDirectoryPage-Cv-vxw2C.css → AgentsDirectoryPage-kc3EgeGO.css} +1 -1
  9. package/dist/web/assets/{ConnectionsPage-uXcabab_.js → ConnectionsPage-CXtNiTEF.js} +1 -1
  10. package/dist/web/assets/EmployeeRecruitDialog-o6eyMw2g.js +1 -0
  11. package/dist/web/assets/EmployeeWorkbenchPage-4EnGLauW.js +3 -0
  12. package/dist/web/assets/{KnowledgeEditDialog-HmiqLC-Y.js → KnowledgeEditDialog-BlBd6Xql.js} +1 -1
  13. package/dist/web/assets/{KnowledgeInspector-Cj2yK4Qh.js → KnowledgeInspector-Dl7SAgaY.js} +1 -1
  14. package/dist/web/assets/{KnowledgeOrganizerPage-DT3BROZm.js → KnowledgeOrganizerPage-CpH4x6UA.js} +1 -1
  15. package/dist/web/assets/KnowledgePage-C-gFr7ln.js +1 -0
  16. package/dist/web/assets/{KnowledgeWorkspace-DA_dqVRG.js → KnowledgeWorkspace-4q_HfXas.js} +1 -1
  17. package/dist/web/assets/{NotFoundPage-x_Yd59mm.js → NotFoundPage-DtmfJSGx.js} +1 -1
  18. package/dist/web/assets/{OverviewPage-3eZjQ26v.js → OverviewPage-C1zw_8_6.js} +1 -1
  19. package/dist/web/assets/PersonalProfilePage-B0_zIINs.css +1 -0
  20. package/dist/web/assets/{PersonalProfilePage-CDQk096L.js → PersonalProfilePage-tQyS7qsa.js} +1 -1
  21. package/dist/web/assets/PersonalProjectsPage-Cgd_bjeK.js +1 -0
  22. package/dist/web/assets/{ProjectAgentFirstTask-BkRJ0zwO.js → ProjectAgentFirstTask-Caf7c6F_.js} +1 -1
  23. package/dist/web/assets/{ProjectAgentsPage-BuNNqSEy.js → ProjectAgentsPage-BOGkN5ZN.js} +1 -1
  24. package/dist/web/assets/{ProjectScopePicker-CiDxM2Yx.js → ProjectScopePicker-NyqcG6Iz.js} +1 -1
  25. package/dist/web/assets/{PublicProjectsPage-ByOT559r.js → PublicProjectsPage-CYwQLZmy.js} +1 -1
  26. package/dist/web/assets/{ReviewPage-C0Vdr9uq.js → ReviewPage-EyuAtIOq.js} +1 -1
  27. package/dist/web/assets/{RoundtablesPage-L3ShEWS3.js → RoundtablesPage-JVBXsJrs.js} +1 -1
  28. package/dist/web/assets/SettingsPage-BARo0Ds0.css +1 -0
  29. package/dist/web/assets/SettingsPage-Dfi7kl9c.js +1 -0
  30. package/dist/web/assets/{SharedJefaReportPage-Bg6lIk3E.js → SharedJefaReportPage-DFy5Ty7o.js} +1 -1
  31. package/dist/web/assets/{UiButton-x8hiHNRM.js → UiButton-neeym_gA.js} +1 -1
  32. package/dist/web/assets/{UiDialog-mjletK0y.js → UiDialog-BFVoqFnc.js} +1 -1
  33. package/dist/web/assets/{UiDisclosure-_IxeiexW.js → UiDisclosure-B-T7BmB5.js} +1 -1
  34. package/dist/web/assets/{UiSegmented-WFfz9Evl.js → UiSegmented-D_kyRKDw.js} +1 -1
  35. package/dist/web/assets/{UiSelect-K29jnV-1.js → UiSelect-DDyct4mf.js} +1 -1
  36. package/dist/web/assets/{WritingTastePage-DCULB-d2.js → WritingTastePage-BPRq6kJ6.js} +1 -1
  37. package/dist/web/assets/{agent-pins-DS4mNsNt.js → agent-pins-6LRHTMF6.js} +1 -1
  38. package/dist/web/assets/agent-profile-UgNiXgpU.css +1 -0
  39. package/dist/web/assets/{attention-store-CA5y8j1R.js → attention-store-BGHyzWfv.js} +1 -1
  40. package/dist/web/assets/avatars-z6ANYG_r.js +1 -0
  41. package/dist/web/assets/{catalog-D0VEfOAV.js → catalog-kb-cA8t6.js} +1 -1
  42. package/dist/web/assets/{client-DnwnUBQV.js → client-DodUFQDp.js} +1 -1
  43. package/dist/web/assets/{console-Cw7TzOSC.js → console-C2Lfifq-.js} +1 -1
  44. package/dist/web/assets/{conversation-launcher-settings-Yc13viwr.js → conversation-launcher-settings-CowfVz7l.js} +1 -1
  45. package/dist/web/assets/{i18n-oJFlt8hW.js → i18n-B4Fp9Oa5.js} +1 -1
  46. package/dist/web/assets/{identity-DSGS4CZc.js → identity-DG_za-J7.js} +1 -1
  47. package/dist/web/assets/index-DsExj49_.css +1 -0
  48. package/dist/web/assets/index-RxlM8aQV.js +5 -0
  49. package/dist/web/assets/{judgment-types-DR931cZ7.js → judgment-types-DRqrjStd.js} +1 -1
  50. package/dist/web/assets/{model-BJ-UF4cs.js → model-C0eHDNsF.js} +1 -1
  51. package/dist/web/assets/{personal-profile-graph-SOK0BR0w.js → personal-profile-graph-CHY3WYhi.js} +1 -1
  52. package/dist/web/assets/project-team-api-Dfm8C4B8.js +1 -0
  53. package/dist/web/assets/{shared-report-CiX64ZiD.js → shared-report-8JFvD9TZ.js} +1 -1
  54. package/dist/web/assets/tonborg-avatar-DyxAdTD6.webp +0 -0
  55. package/dist/web/assets/{useAgentRoster-B84mzZIg.js → useAgentRoster-QDbOwtLj.js} +1 -1
  56. package/dist/web/assets/{useApi-CROJJdhE-7gt0QyQ5.js → useApi-CROJJdhE-IuC5qwny.js} +1 -1
  57. package/dist/web/assets/{vue-router-CCvPGaLD.js → vue-router-nZMhR3dI.js} +1 -1
  58. package/dist/web/index.html +16 -15
  59. package/graph-provider/fuli_graph/system_agents.py +27 -3
  60. package/graph-provider/pyproject.toml +1 -1
  61. package/npm-shrinkwrap.json +2 -2
  62. package/package.json +1 -1
  63. package/src/employees/catalog/tonborg.json +1 -1
  64. package/src/http/api-router.js +28 -1
  65. package/src/local-runtime/lifecycle.js +1 -0
  66. package/src/setup/graph-runtime.js +1 -1
  67. package/src/system/settings-apply-worker.js +6 -0
  68. package/src/system/settings-apply.js +116 -0
  69. package/src/system/system-service.js +25 -5
  70. package/dist/web/assets/AgentProfilePage-CFViQ8kj.js +0 -1
  71. package/dist/web/assets/AgentsDirectoryPage-CBFTg_IE.js +0 -1
  72. package/dist/web/assets/EmployeeRecruitDialog-D8Hvhc-M.js +0 -1
  73. package/dist/web/assets/EmployeeWorkbenchPage-TBl_HNj6.js +0 -3
  74. package/dist/web/assets/KnowledgePage-C4J4VueL.js +0 -1
  75. package/dist/web/assets/PersonalProfilePage-DrMDAAdy.css +0 -1
  76. package/dist/web/assets/PersonalProjectsPage-CJxp4Wyz.js +0 -1
  77. package/dist/web/assets/SettingsPage-BE8pWbI6.css +0 -1
  78. package/dist/web/assets/SettingsPage-McYuinGz.js +0 -1
  79. package/dist/web/assets/agent-profile-Bh3MJGvb.css +0 -1
  80. package/dist/web/assets/index-BfHCcUL2.css +0 -1
  81. package/dist/web/assets/index-DuxXKFrR.js +0 -5
  82. package/dist/web/assets/project-team-api-C_0qJk_B.js +0 -1
@@ -0,0 +1 @@
1
+ .conflict-inputs[data-v-57134f7d]{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}.conflict-pair-context[data-v-57134f7d]{flex-wrap:wrap;gap:8px;display:flex}.conflict-pair-context span[data-v-57134f7d]{color:var(--color-muted);background:var(--color-surface-subtle);border-radius:999px;padding:4px 10px;font-size:12px}.conflict-pair-context strong[data-v-57134f7d]{color:var(--color-ink);margin-left:6px;font-weight:600}.conflict-comparison[data-v-57134f7d]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.conflict-side[data-v-57134f7d]{border:1px solid var(--color-border);border-radius:var(--radius-card);align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.conflict-side-left[data-v-57134f7d]{background:var(--color-surface-subtle)}.conflict-side-heading[data-v-57134f7d]{color:var(--color-muted);justify-content:space-between;gap:12px;font-size:12px;display:flex}.conflict-side h3[data-v-57134f7d],.conflict-side p[data-v-57134f7d]{margin:0}.conflict-side h3[data-v-57134f7d]{font-size:14px;font-weight:600}.conflict-side p[data-v-57134f7d]{white-space:pre-wrap;min-height:48px;font-size:13px;line-height:1.6}.conflict-side small[data-v-57134f7d]{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.conflict-side .ui-button[data-v-57134f7d]{justify-self:start}.conflict-difference[data-v-57134f7d]{border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 14px;display:grid}.conflict-difference>div[data-v-57134f7d]{align-content:start;gap:6px;min-width:0;display:grid}.conflict-difference span[data-v-57134f7d]{color:var(--color-muted);font-size:12px;font-weight:600}.conflict-difference p[data-v-57134f7d]{flex-wrap:wrap;gap:5px;margin:0;font-size:12px;display:flex}.conflict-difference b[data-v-57134f7d]{background:var(--color-surface-subtle);border-radius:5px;padding:2px 7px;font-weight:500}.conflict-resolution-options[data-v-57134f7d]{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.conflict-resolution-options>button[data-v-57134f7d]{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:80px;color:var(--color-ink);background:var(--color-surface);text-align:left;cursor:pointer;transition:border-color var(--motion-fast), background-color var(--motion-fast);align-content:start;gap:4px;padding:12px;display:grid;position:relative}.conflict-resolution-options>button[data-v-57134f7d]:hover:not(:disabled){border-color:var(--color-border-strong)}.conflict-resolution-options>button[aria-pressed=true][data-v-57134f7d]{border-color:var(--color-accent);background:var(--color-accent-soft)}.conflict-resolution-options>button[data-v-57134f7d]:disabled{opacity:.5;cursor:not-allowed}.conflict-resolution-options strong[data-v-57134f7d]{font-size:13px}.conflict-resolution-options span[data-v-57134f7d]{color:var(--color-muted);font-size:12px;line-height:1.45}.conflict-resolution-options em[data-v-57134f7d]{color:var(--color-accent);background:var(--color-surface);border-radius:999px;padding:1px 6px;font-size:11px;font-style:normal;position:absolute;top:8px;right:8px}.conflict-resolution-detail[data-v-57134f7d],.conflict-impact-preview[data-v-57134f7d]{border:1px solid var(--color-border);border-radius:var(--radius-control);gap:10px;padding:12px 14px;display:grid}.conflict-inline-options[data-v-57134f7d]{color:var(--color-muted);align-items:center;gap:10px;font-size:12px;display:flex}.conflict-impact-preview span[data-v-57134f7d]{color:var(--color-warning);font-size:12px;font-weight:600}.conflict-impact-preview p[data-v-57134f7d]{margin:0;font-size:13px;line-height:1.55}.conflict-footer-note[data-v-57134f7d]{color:var(--color-muted);margin-right:auto;font-size:12px}@media (width<=900px){.conflict-comparison[data-v-57134f7d],.conflict-difference[data-v-57134f7d]{grid-template-columns:1fr}.conflict-resolution-options[data-v-57134f7d]{grid-template-columns:repeat(2,minmax(0,1fr))}}.writing-taste-milestone[data-v-5a04aa82]{border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-ink);background:var(--color-surface);transition:border-color var(--motion-fast);grid-template-columns:auto 120px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;font-size:13px;text-decoration:none;display:grid}.writing-taste-milestone[data-v-5a04aa82]:hover{border-color:var(--color-border-strong)}.writing-taste-milestone strong[data-v-5a04aa82]{font-weight:600}.writing-taste-milestone small[data-v-5a04aa82]{color:var(--color-muted);font-variant-numeric:tabular-nums;font-size:12px}.writing-taste-milestone__progress[data-v-5a04aa82]{background:var(--color-surface-subtle);border-radius:2px;height:4px;overflow:hidden}.writing-taste-milestone__progress i[data-v-5a04aa82]{background:var(--color-accent);transform-origin:0;height:100%;display:block}.writing-taste-milestone__action[data-v-5a04aa82]{color:var(--color-accent);justify-self:end;font-size:13px;font-weight:550}.status-preview_ready[data-v-5a04aa82],.status-active[data-v-5a04aa82]{border-color:var(--color-accent-line);background:var(--color-accent-soft)}@media (width<=720px){.writing-taste-milestone[data-v-5a04aa82]{grid-template-columns:minmax(0,1fr) auto}.writing-taste-milestone__action[data-v-5a04aa82]{grid-area:1/2}.writing-taste-milestone__progress[data-v-5a04aa82],.writing-taste-milestone small[data-v-5a04aa82]{grid-column:1/-1}}.personal-profile-notices[data-v-95fd7fac]{gap:var(--space-4);margin-block:var(--space-4) var(--space-6);flex:none;display:grid}.preference-conflict-alert[data-v-95fd7fac]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 14px;display:grid;box-shadow:0 7px 20px #3142380d}.preference-conflict-alert-icon[data-v-95fd7fac]{background:var(--color-muted);width:30px;height:30px;color:var(--color-surface);border-radius:50%;place-items:center;font-size:16px;font-weight:800;display:grid}.preference-conflict-alert>div[data-v-95fd7fac]:nth-child(2){gap:2px;display:grid}.preference-conflict-alert span[data-v-95fd7fac]{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.preference-conflict-alert h2[data-v-95fd7fac],.preference-conflict-alert p[data-v-95fd7fac]{margin:0}.preference-conflict-alert h2[data-v-95fd7fac]{color:var(--color-ink);font-size:14px}.preference-conflict-alert p[data-v-95fd7fac]{color:var(--color-muted);font-size:12px;line-height:1.5}.preference-conflict-workbench[data-v-95fd7fac]{flex:1;min-height:0;padding:18px 0 4px;overflow:auto}.preference-conflict-workbench>header[data-v-95fd7fac]{justify-content:space-between;align-items:flex-end;gap:24px;padding:0 2px 14px;display:flex}.preference-conflict-workbench h2[data-v-95fd7fac],.preference-conflict-workbench p[data-v-95fd7fac]{margin:0}.preference-conflict-workbench h2[data-v-95fd7fac]{color:var(--color-ink);font-size:17px}.preference-conflict-workbench>header>p[data-v-95fd7fac]{max-width:520px;color:var(--color-muted);text-align:right;font-size:12px;line-height:1.55}.preference-conflict-list[data-v-95fd7fac]{gap:12px;display:grid}.preference-conflict-card[data-v-95fd7fac]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:11px;gap:12px;padding:15px;display:grid;box-shadow:0 7px 20px #2d3d340a}.preference-conflict-card-heading[data-v-95fd7fac],.preference-conflict-card footer[data-v-95fd7fac]{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.preference-conflict-card-heading>div[data-v-95fd7fac]{gap:3px;display:grid}.preference-conflict-card-heading>div[data-v-95fd7fac]:last-child{justify-items:end}.preference-conflict-card-heading span[data-v-95fd7fac],.preference-conflict-card footer span[data-v-95fd7fac]{color:var(--color-muted);text-transform:uppercase;font-size:12px;font-weight:700}.preference-conflict-card-heading h3[data-v-95fd7fac]{color:var(--color-ink);margin:0;font-size:14px}.preference-conflict-card-heading strong[data-v-95fd7fac]{color:var(--color-muted);font-size:12px}.preference-conflict-pair[data-v-95fd7fac]{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.preference-conflict-pair>section[data-v-95fd7fac]{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);align-content:start;gap:6px;min-width:0;padding:12px;display:grid}.preference-conflict-pair>section[data-v-95fd7fac]:first-child,.preference-conflict-pair>section[data-v-95fd7fac]:last-child{border-color:var(--color-border);background:var(--color-surface)}.preference-conflict-pair span[data-v-95fd7fac],.preference-conflict-pair small[data-v-95fd7fac]{color:var(--color-muted);font-size:12px}.preference-conflict-pair strong[data-v-95fd7fac]{color:var(--color-ink);font-size:12px}.preference-conflict-pair p[data-v-95fd7fac]{color:var(--color-ink);font-size:12px;line-height:1.55}.preference-conflict-pair>i[data-v-95fd7fac]{color:var(--color-muted);text-align:center;align-self:center;font-size:14px;font-style:normal}.preference-conflict-card footer[data-v-95fd7fac]{border-top:1px solid var(--color-border);padding-top:11px}.preference-conflict-card footer>div[data-v-95fd7fac]{gap:4px;display:grid}.preference-conflict-card footer p[data-v-95fd7fac],.preference-conflict-card footer small[data-v-95fd7fac]{color:var(--color-muted);font-size:12px}.preference-conflict-card footer button[data-v-95fd7fac]{flex:none}.preference-conflict-card footer .preference-conflict-actions[data-v-95fd7fac]{justify-content:flex-end;align-items:center;gap:8px;display:flex}.preference-conflict-card footer .preference-conflict-actions .secondary-action[data-v-95fd7fac]{color:var(--color-muted);background:var(--color-surface-subtle)}.personal-profile-row.ai-resolved-conflict[data-v-95fd7fac]{border-color:var(--color-border-strong);background:var(--color-surface)}.personal-profile-row.ai-resolved-conflict .personal-profile-origin strong[data-v-95fd7fac]{color:var(--color-ink)}.personal-profile-inspector[data-v-95fd7fac] .inspector-classification.state-pending,.personal-profile-inspector[data-v-95fd7fac] .inspector-classification.state-needs_review{border-color:var(--color-warning-soft);background:var(--color-warning-soft)}.personal-profile-inspector[data-v-95fd7fac] .inspector-classification.state-pending strong,.personal-profile-inspector[data-v-95fd7fac] .inspector-classification.state-needs_review strong{color:var(--color-warning)}@media (width<=860px){.preference-conflict-alert[data-v-95fd7fac]{grid-template-columns:auto minmax(0,1fr)}.preference-conflict-alert>button[data-v-95fd7fac]{grid-column:1/-1}.preference-conflict-workbench>header[data-v-95fd7fac],.preference-conflict-card-heading[data-v-95fd7fac],.preference-conflict-card footer[data-v-95fd7fac]{flex-direction:column;align-items:stretch}.preference-conflict-workbench>header>p[data-v-95fd7fac]{text-align:left}.preference-conflict-card-heading>div[data-v-95fd7fac]:last-child{justify-items:start}.preference-conflict-pair[data-v-95fd7fac]{grid-template-columns:1fr}.preference-conflict-card footer .preference-conflict-actions[data-v-95fd7fac]{flex-wrap:wrap;justify-content:flex-start}}
@@ -1 +1 @@
1
- import{B as e,E as t,H as n,I as r,M as i,P as a,Q as o,S as s,T as c,U as l,a as u,at as d,b as f,f as p,g as m,it as h,n as g,ot as _,rt as v,v as y,w as b,x,y as S}from"./i18n-oJFlt8hW.js";import{t as ee}from"./console-Cw7TzOSC.js";import{a as te,i as C,r as ne,s as w}from"./client-DnwnUBQV.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./UiButton-x8hiHNRM.js";import{t as D}from"./vue-router-CCvPGaLD.js";import{t as O}from"./UiDialog-mjletK0y.js";import{t as re}from"./UiSelect-K29jnV-1.js";import{t as k}from"./UiSegmented-WFfz9Evl.js";import{n as A,t as j}from"./KnowledgeInspector-Cj2yK4Qh.js";import{i as M,n as ie,t as N}from"./KnowledgeEditDialog-HmiqLC-Y.js";import{C as P,D as F,_ as I,u as ae,v as L,x as oe}from"./model-BJ-UF4cs.js";import{t as se}from"./personal-profile-graph-SOK0BR0w.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(!q(a,o)||!J(a,o)||Y(a,o))continue;let[s,c]=X(a,o),l=W(V(s),V(c)),d=K(l)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&z(e,s,c))??null;n.push({id:ue(s,c),preferenceKey:B(s),scopeKey:H(s),scopeLabel:U(s),left:s,right:c,difference:l,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:u(`preferences.shared.conflictReason`,{key:B(s)}),aiRecord:f})}return n.sort((e,t)=>{let n=g();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function R(e){return[e.left_item_id,e.right_item_id]}function z(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 B(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function V(e){return e.body.trim()}function H(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function U(e){return e.preferenceScope===`project`&&e.preferenceProjectId?u(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):u(`preferences.shared.personalGlobal`)}function W(e,t){let n=Z(e),r=Z(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(fe(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 G(e,t){let n=[...Z(e)];for(let e of Z(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=fe(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function K(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function q(e,t){return H(e)===H(t)}function J(e,t){return Q(B(e))===Q(B(t))}function Y(e,t){return Q(V(e))===Q(V(t))}function X(e,t){let n=le(e),r=le(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function le(e){let t=L(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function ue(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function Z(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=Q(e),r=Q(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 fe(e,t){return Q(e).length>=Q(t).length?e:t}function Q(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var pe=[`aria-label`],me=[`aria-label`],he={class:`conflict-side-heading`},ge=[`aria-label`],_e={key:0},$={key:1,class:`ui-muted`},ve=[`disabled`],ye=[`aria-label`],be=[`aria-pressed`],xe={key:0},Se=[`aria-pressed`],Ce=[`aria-pressed`],we=[`disabled`,`aria-pressed`],Te={key:0,class:`conflict-resolution-detail`},Ee={class:`conflict-inline-options`},De={class:`ui-field`},Oe={key:1,class:`conflict-resolution-detail`},ke={class:`conflict-inline-options`},Ae={class:`conflict-impact-preview`},je={class:`ui-field conflict-resolution-reason`},Me={class:`conflict-footer-note`},Ne=T(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:i}){let d=t,g=i,ne=ee(),w=o(null),T=o(`right`),D=o(`right`),A=o(``),j=o(``),M=o(``),ie=o(``),N=o(!1),P=o(``),F=y(()=>{let e=d.conflict;if(!e)return[];let t=D.value===`left`?e.left:e.right;return d.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),I=y(()=>F.value.length>0),oe=y(()=>F.value.map(e=>({value:e.project_id,label:e.profile.name}))),se=y(()=>{let e=d.conflict?.difference;return e?[{key:`shared`,label:u(`preferences.dialog.shared`),values:e.shared,empty:u(`preferences.dialog.noShared`)},{key:`left`,label:u(`preferences.dialog.onlyA`),values:e.leftOnly,empty:u(`preferences.dialog.noUnique`)},{key:`right`,label:u(`preferences.dialog.onlyB`),values:e.rightOnly,empty:u(`preferences.dialog.noUnique`)}]:[]}),ce=y(()=>{let e=d.conflict;if(!e||!w.value)return u(`preferences.dialog.impact.choose`);if(w.value===`merge`){let t=T.value===`left`?e.left:e.right,n=T.value===`left`?e.right:e.left;return u(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(w.value===`keep_left`||w.value===`keep_right`){let t=w.value===`keep_left`?e.left:e.right,n=w.value===`keep_left`?e.right:e.left;return u(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=D.value===`left`?e.left:e.right,n=F.value.find(({project_id:e})=>e===A.value);return n?u(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):u(`preferences.dialog.impact.chooseProject`)});e(()=>d.conflict,e=>{e&&(T.value=`right`,D.value=`right`,j.value=G(V(e.right),V(e.left)),w.value=e.recommendedAction,A.value=``,P.value=``,z(e.recommendedAction))},{immediate:!0}),e([D,F],()=>{A.value&&F.value.some(({project_id:e})=>e===A.value)||(A.value=F.value[0]?.project_id??``)},{immediate:!0});function R(e){N.value||(w.value=e,(!M.value.trim()||M.value===ie.value)&&z(e))}function z(e){let t=d.conflict,n=t&&e?q(e,t):``;ie.value=n,M.value=n}async function B(){if(N.value)return;let e=d.conflict;if(!e||!w.value)return J(u(`preferences.dialog.errors.actionRequired`));if(!M.value.trim())return J(u(`preferences.dialog.errors.reasonRequired`));if(w.value===`merge`&&!j.value.trim())return J(u(`preferences.dialog.errors.mergedValueRequired`));if(w.value===`split_scope`&&!A.value)return J(u(`preferences.dialog.errors.projectRequired`));let t=w.value,n=M.value.trim(),r=d.personalSpaceId;N.value=!0,P.value=``;try{t===`merge`?await H(e):t===`split_scope`?await W(e):await U(e,t),e.aiRecord&&await te(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:r,resolution:t,reason:n}),ne.notify(u(`preferences.dialog.resolved`)),g(`resolved`),g(`close`)}catch(e){P.value=e instanceof Error?e.message:u(`preferences.dialog.errors.failed`),ne.reportError(e)}finally{N.value=!1}}async function H(e){let t=M.value.trim(),n=d.personalSpaceId,r=T.value===`left`?e.left:e.right,i=T.value===`left`?e.right:e.left,a={personalSpaceId:n,personalProjectId:null,action:`update`,reason:t};r.itemKind===`entity`?(a.name=r.title,a.summary=j.value.trim()):a.fact=j.value.trim(),r.classificationExplicit&&r.originQuadrant!==`unclassified`&&(a.originQuadrant=r.originQuadrant,a.confirmationStatus=`confirmed`,a.confirmationBasis={existenceReason:u(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:r.confirmationBasis?.quadrant_reason||r.reasoningSummary||u(`preferences.dialog.audit.keepQuadrant`),proposedBy:r.confirmationBasis?.proposed_by?K(r.confirmationBasis.proposed_by):{kind:`import`,label:u(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:u(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,a),await C(`/api/knowledge/${i.itemKind}/${encodeURIComponent(i.id)}`,{personalSpaceId:n,personalProjectId:null,action:`invalidate`,reason:t,replacementItemId:r.id,replacementItemKind:r.itemKind})}async function U(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:d.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:M.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function W(e){let t=D.value===`left`?e.left:e.right;await te(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:d.personalSpaceId,scope:`project`,projectId:A.value,reason:M.value.trim()})}function K(e){return{kind:e.kind,label:e.label??null}}function q(e,t){return e===`merge`?u(`preferences.dialog.defaultReason.merge`):e===`keep_left`?u(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?u(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):u(`preferences.dialog.defaultReason.split`)}function J(e){P.value=e}return(e,i)=>t.conflict?(a(),f(O,{key:0,open:``,class:`conflict-resolution-dialog`,size:`xl`,busy:N.value,error:P.value,title:v(u)(`preferences.dialog.title`),description:v(u)(`preferences.dialog.intro`,{reason:t.conflict.reason}),onClose:i[10]||=e=>g(`close`)},{footer:n(()=>[S(`span`,Me,_(v(u)(`preferences.dialog.pendingCopy`)),1),c(E,{variant:`ghost`,disabled:N.value,onClick:i[9]||=e=>g(`close`)},{default:n(()=>[b(_(v(u)(`preferences.dialog.defer`)),1)]),_:1},8,[`disabled`]),c(E,{variant:`primary`,disabled:!w.value,busy:N.value,"busy-label":v(u)(`preferences.dialog.processing`),onClick:B},{default:n(()=>[b(_(v(u)(`preferences.dialog.confirm`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])]),default:n(()=>[S(`section`,{class:`conflict-pair-context`,"aria-label":v(u)(`preferences.dialog.basisAria`)},[S(`span`,null,[b(_(v(u)(`preferences.dialog.preferenceKey`)),1),S(`strong`,null,_(t.conflict.preferenceKey),1)]),S(`span`,null,[b(_(v(u)(`preferences.dialog.effectiveScope`)),1),S(`strong`,null,_(t.conflict.scopeLabel),1)]),S(`span`,null,[b(_(v(u)(`preferences.dialog.suggestion`)),1),S(`strong`,null,_(t.conflict.recommendedAction===`merge`?v(u)(`preferences.dialog.mergeSuggestion`):v(u)(`preferences.dialog.reviewSuggestion`)),1)])],8,pe),S(`section`,{class:`conflict-comparison`,"aria-label":v(u)(`preferences.dialog.comparisonAria`)},[(a(),s(m,null,r([`left`,`right`],e=>S(`article`,{key:e,class:h([`conflict-side`,`conflict-side-${e}`])},[S(`div`,he,[S(`span`,null,_(v(u)(e===`left`?`preferences.dialog.older`:`preferences.dialog.newer`)),1),S(`time`,null,_(v(ae)(v(L)(t.conflict[e]))),1)]),S(`h3`,null,_(t.conflict[e].title),1),S(`p`,null,_(v(V)(t.conflict[e])),1),S(`small`,null,_(v(u)(`preferences.dialog.sourceCount`,{count:t.conflict[e].evidence.length}))+` · `+_(t.conflict[e].id),1),c(E,{size:`sm`,variant:`ghost`,onClick:n=>g(`edit`,t.conflict[e])},{default:n(()=>[b(_(v(u)(e===`left`?`preferences.dialog.editA`:`preferences.dialog.editB`)),1)]),_:2},1032,[`onClick`])],2)),64))],8,me),S(`section`,{class:`conflict-difference`,"aria-label":v(u)(`preferences.dialog.differenceAria`)},[(a(!0),s(m,null,r(se.value,e=>(a(),s(`div`,{key:e.key},[S(`span`,null,_(e.label),1),e.values.length?(a(),s(`p`,_e,[(a(!0),s(m,null,r(e.values,e=>(a(),s(`b`,{key:e},_(e),1))),128))])):(a(),s(`p`,$,_(e.empty),1))]))),128))],8,ge),S(`fieldset`,{class:`conflict-inputs`,disabled:N.value},[S(`section`,{class:`conflict-resolution-options`,"aria-label":v(u)(`preferences.dialog.actionsAria`)},[S(`button`,{type:`button`,"aria-pressed":w.value===`merge`,onClick:i[0]||=e=>R(`merge`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.merge`)),1),S(`span`,null,_(v(u)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(a(),s(`em`,xe,_(v(u)(`preferences.dialog.actions.recommended`)),1)):x(``,!0)],8,be),S(`button`,{type:`button`,"aria-pressed":w.value===`keep_left`,onClick:i[1]||=e=>R(`keep_left`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.keepA`)),1),S(`span`,null,_(v(u)(`preferences.dialog.actions.keepACopy`)),1)],8,Se),S(`button`,{type:`button`,"aria-pressed":w.value===`keep_right`,onClick:i[2]||=e=>R(`keep_right`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.keepB`)),1),S(`span`,null,_(v(u)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ce),S(`button`,{type:`button`,disabled:!I.value,"aria-pressed":w.value===`split_scope`,onClick:i[3]||=e=>R(`split_scope`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.split`)),1),S(`span`,null,_(I.value?v(u)(`preferences.dialog.actions.splitCopy`):v(u)(`preferences.dialog.actions.noProjects`)),1)],8,we)],8,ye),w.value===`merge`?(a(),s(`section`,Te,[S(`div`,Ee,[S(`span`,null,_(v(u)(`preferences.dialog.canonicalIdentity`)),1),c(k,{modelValue:T.value,"onUpdate:modelValue":i[4]||=e=>T.value=e,label:v(u)(`preferences.dialog.mergeIdentityAria`),options:[{value:`left`,label:v(u)(`preferences.dialog.identityA`)},{value:`right`,label:v(u)(`preferences.dialog.identityB`)}]},null,8,[`modelValue`,`label`,`options`])]),S(`label`,De,[b(_(v(u)(`preferences.dialog.mergedContent`)),1),l(S(`textarea`,{"onUpdate:modelValue":i[5]||=e=>j.value=e,rows:`4`,maxlength:`4096`},null,512),[[p,j.value]])])])):x(``,!0),w.value===`split_scope`?(a(),s(`section`,Oe,[S(`div`,ke,[S(`span`,null,_(v(u)(`preferences.dialog.adjustRecord`)),1),c(k,{modelValue:D.value,"onUpdate:modelValue":i[6]||=e=>D.value=e,label:v(u)(`preferences.dialog.splitRecordAria`),options:[{value:`left`,label:`A`},{value:`right`,label:`B`}]},null,8,[`modelValue`,`label`])]),c(re,{modelValue:A.value,"onUpdate:modelValue":i[7]||=e=>A.value=e,field:``,label:v(u)(`preferences.dialog.projectOnly`),placeholder:v(u)(`preferences.dialog.chooseProject`),options:oe.value},null,8,[`modelValue`,`label`,`placeholder`,`options`])])):x(``,!0),S(`section`,Ae,[S(`span`,null,_(v(u)(`preferences.dialog.impactTitle`)),1),S(`p`,null,_(ce.value),1)]),S(`label`,je,[b(_(v(u)(`preferences.dialog.reason`)),1),l(S(`textarea`,{"onUpdate:modelValue":i[8]||=e=>M.value=e,rows:`2`,maxlength:`2000`},null,512),[[p,M.value]])])],8,ve)]),_:1},8,[`busy`,`error`,`title`,`description`])):x(``,!0)}}),[[`__scopeId`,`data-v-57134f7d`]]),Pe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},Fe={class:`writing-taste-milestone__action`},Ie=T(t({__name:`WritingTasteMilestone`,props:{profile:{}},setup(e){let t=e,r=y(()=>t.profile?.status===`active`?u(`writingTaste.milestone.activeTitle`):t.profile?.status===`preview_ready`?u(`writingTaste.milestone.previewTitle`):u(`writingTaste.milestone.collectingTitle`)),i=y(()=>{let e=t.profile?.readiness;if(!e)return 0;let n=[o(e.rule_count,e.thresholds.rule_count),o(e.evidence_count,e.thresholds.evidence_count),o(e.session_count,e.thresholds.session_count),o(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(n.reduce((e,t)=>e+t,0)/n.length*100)});function o(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(t,o)=>e.profile?(a(),f(v(D),{key:0,to:`/preferences/writing`,class:h([`writing-taste-milestone`,`status-${e.profile.status}`]),"aria-label":v(u)(`writingTaste.milestone.aria`)},{default:n(()=>[S(`strong`,null,_(r.value),1),S(`span`,Pe,[S(`i`,{style:d({transform:`scaleX(${i.value/100})`})},null,4)]),S(`small`,null,_(v(u)(`writingTaste.milestone.rules`,{current:e.profile.readiness.rule_count,target:e.profile.readiness.thresholds.rule_count}))+` · `+_(v(u)(`writingTaste.milestone.sessions`,{current:e.profile.readiness.session_count,target:e.profile.readiness.thresholds.session_count})),1),S(`span`,Fe,_(v(u)(`writingTaste.milestone.open`))+` →`,1)]),_:1},8,[`class`,`aria-label`])):x(``,!0)}}),[[`__scopeId`,`data-v-9f3e6330`]]),Le={class:`view vue-personal-profile`},Re=[`aria-label`],ze=[`aria-label`,`aria-pressed`],Be=[`aria-label`,`aria-pressed`],Ve=[`aria-label`,`aria-pressed`],He=[`aria-label`,`aria-pressed`],Ue=[`aria-label`],We={class:`personal-profile-toolbar`},Ge={class:`personal-profile-filter-groups`},Ke=[`aria-label`],qe=[`aria-pressed`,`onClick`],Je={class:`personal-profile-toolbar-actions`},Ye={key:0,class:`muted`},Xe={key:1,class:`muted`},Ze={key:2,class:`muted`},Qe=[`disabled`],$e={key:3,class:`view-loading`,"aria-busy":`true`},et=[`aria-label`],tt={class:`preference-conflict-list`},nt={class:`preference-conflict-card-heading`},rt={class:`preference-conflict-pair`},it={key:0},at={class:`preference-conflict-actions`},ot=[`disabled`,`onClick`],st=[`onClick`],ct={key:1,class:`empty-state`},lt={class:`personal-profile-table-head`,"aria-hidden":`true`},ut=[`onClick`],dt={class:`personal-profile-copy`},ft={class:`personal-profile-origin`},pt={class:`empty-state`},mt=T(t({__name:`PersonalProfilePage`,setup(t){let l=ee(),d=o(null),p=o(null),C=o(!1),T=y(()=>C.value&&!d.value),E=M(T),D=o(`all`),O=o(`all`),k=o(`all`),z=o(!1),B=o(null),H=o(null),U=o(null),W=o(null),G=o([]),K=o(``),q=0,J=null,Y=y(()=>oe(d.value)),X=y(()=>ce(Y.value,G.value)),le=y(()=>new Set(X.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),ue=y(()=>new Set(G.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(R))),Z=y(()=>Y.value.filter(e=>Se(e)&&(k.value===`all`||I(e)===k.value))),de=y(()=>JSON.stringify([D.value,O.value,k.value,z.value])),fe=y(()=>B.value?Z.value.findIndex(({id:e,itemKind:t})=>e===B.value?.id&&t===B.value?.itemKind):-1),Q=y(()=>X.value.filter(({left:e,right:t})=>Se(e)||Se(t))),pe=y(()=>[[`all`,u(`preferences.profile.filters.all`)],[`taste`,u(`preferences.profile.filters.taste`)],[`personality`,u(`preferences.profile.filters.personality`)],[`judgment_preference`,u(`preferences.profile.filters.judgment`)]]),me=y(()=>{let e=new Map((l.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),t=[...new Set(Y.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,g()));return[{value:`all`,label:u(`preferences.profile.scopes.all`),meta:u(`common.counts.items`,{count:Y.value.length})},{value:`global`,label:u(`preferences.profile.scopes.global`),meta:u(`common.counts.items`,{count:Y.value.filter(({preferenceScope:e})=>e!==`project`).length})},...t.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:u(`preferences.profile.scopes.projectMeta`,{count:Y.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),he=y(()=>Y.value.filter(e=>I(e)===`confirmed`).length),ge=y(()=>Y.value.filter(e=>I(e)===`pending`).length),_e=y(()=>Y.value.filter(e=>I(e)===`agent_confirmed`).length);e(()=>l.activePersonalSpace?.id,(e,t)=>{e!==t&&(d.value=null,p.value=null,G.value=[],B.value=null,H.value=null,U.value=null,W.value=null,O.value=`all`),e?$(e):(q+=1,J?.abort(),J=null,C.value=!1)},{immediate:!0}),i(()=>{q+=1,J?.abort(),J=null}),e([D,O,k,z],()=>{B.value&&!Z.value.some(({id:e})=>e===B.value?.id)&&(B.value=null)}),e(me,e=>{e.some(({value:e})=>e===O.value)||(O.value=`all`)});async function $(e=l.activePersonalSpace?.id){if(!e)return;J?.abort();let t=++q,n=new AbortController;J=n,C.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),i=new URLSearchParams({personalSpaceId:e,limit:`500`}),[a,o,s]=await Promise.all([se(e,n.signal),ne(`/api/preference-conflicts?${r}`,{signal:n.signal}),ne(`/api/writing-taste-profile?${i}`,{signal:n.signal}).catch(()=>null)]);if(t!==q||n.signal.aborted)return;d.value=a,G.value=Array.isArray(o)?o:[],p.value=ve(s)?s:null,B.value&&=Y.value.find(({id:e})=>e===B.value?.id)??null}catch(e){if(t!==q||n.signal.aborted)return;d.value=null,p.value=null,l.reportError(e)}finally{if(t!==q||n.signal.aborted)return;C.value=!1,J===n&&(J=null)}}function ve(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 ye(e){let t=F(e),n=X.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${u(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${u(`preferences.profile.statusSuffix.conflict`)}`:ue.value.has(e.id)?`${t} · ${u(`preferences.profile.statusSuffix.aiResolved`)}`:t}function be(e){return`${e.itemKind}:${e.id}`}function xe(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return u(`preferences.shared.personalGlobal`);let t=l.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return u(`preferences.shared.projectOnly`,{project:t?.profile.name??e.preferenceProjectId})}function Se(e){if(D.value!==`all`&&e.profileAspect!==D.value||O.value===`global`&&e.preferenceScope===`project`)return!1;if(O.value.startsWith(`project:`)){let t=O.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function Ce(e){if(e.scopeKey===`global`)return u(`preferences.shared.personalGlobal`);let t=e.scopeKey.slice(8),n=l.state?.personalProjects?.find(({project_id:e})=>e===t);return u(`preferences.shared.projectOnly`,{project:n?.profile.name??t})}function we(e){D.value=e.profileAspect??`all`,O.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,z.value=!1,B.value=e}function Te(e){W.value=null,U.value=e}function Ee(e){let t=!z.value&&k.value===e?`all`:e;z.value=!1,k.value=t,t!==`all`&&(B.value=Z.value.at(0)??null)}function De(e=!1){let t=e||!z.value;z.value=t,t&&(k.value=`all`,B.value=null)}async function Oe(e){let t=l.activePersonalSpace?.id;if(!(!t||e.aiRecord)){K.value=e.id;try{let n=await te(`/api/preference-conflicts/defer`,{personalSpaceId:t,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:u(`preferences.profile.deferReason`)});G.value=[n,...G.value.filter(({id:e})=>e!==n.id)],l.notify(u(`preferences.profile.deferNotice`))}catch(e){l.reportError(e)}finally{K.value=``}}}return(e,t)=>(a(),s(`section`,Le,[S(`div`,{class:`personal-profile-summary`,"aria-label":v(u)(`preferences.profile.summaryAria`)},[S(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":v(u)(`preferences.profile.summary.confirmedAria`,{count:he.value}),"aria-pressed":!z.value&&k.value===`confirmed`,onClick:t[0]||=e=>Ee(`confirmed`)},[b(_(v(u)(`preferences.profile.summary.confirmed`)),1),S(`strong`,null,_(he.value),1)],8,ze),S(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":v(u)(`preferences.profile.summary.agentConfirmedAria`,{count:_e.value}),"aria-pressed":!z.value&&k.value===`agent_confirmed`,onClick:t[1]||=e=>Ee(`agent_confirmed`)},[b(_(v(u)(`preferences.profile.summary.agentConfirmed`)),1),S(`strong`,null,_(_e.value),1)],8,Be),S(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":v(u)(`preferences.profile.summary.pendingAria`,{count:ge.value}),"aria-pressed":!z.value&&k.value===`pending`,onClick:t[2]||=e=>Ee(`pending`)},[b(_(v(u)(`preferences.profile.summary.pending`)),1),S(`strong`,null,_(ge.value),1)],8,Ve),S(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":X.value.length?v(u)(`preferences.profile.summary.conflictAria`,{count:X.value.length}):v(u)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":z.value,onClick:t[3]||=e=>De()},[b(_(v(u)(`preferences.profile.summary.conflicts`)),1),S(`strong`,null,_(X.value.length),1)],8,He)],8,Re),X.value.length&&!z.value&&k.value===`all`?(a(),s(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":v(u)(`preferences.profile.alert.aria`)},[t[15]||=S(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),S(`div`,null,[S(`h2`,null,_(v(u)(`preferences.profile.alert.title`,{count:X.value.length})),1),S(`p`,null,_(v(u)(`preferences.profile.alert.copy`)),1)]),S(`button`,{class:`primary-action`,type:`button`,onClick:t[4]||=e=>De(!0)},_(v(u)(`preferences.profile.alert.action`)),1)],8,Ue)):x(``,!0),c(Ie,{profile:p.value},null,8,[`profile`]),S(`div`,We,[S(`div`,Ge,[S(`div`,{class:`personal-profile-filters ui-segmented`,role:`group`,"aria-label":v(u)(`preferences.profile.filters.aspectAria`)},[(a(!0),s(m,null,r(pe.value,([e,t])=>(a(),s(`button`,{key:e,type:`button`,"aria-pressed":D.value===e,onClick:t=>D.value=e},_(t),9,qe))),128))],8,Ke),c(re,{modelValue:O.value,"onUpdate:modelValue":t[5]||=e=>O.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:v(u)(`preferences.profile.filters.scopeLabel`),options:me.value},null,8,[`modelValue`,`label`,`options`])]),S(`div`,Je,[z.value?(a(),s(`span`,Ye,_(v(u)(`preferences.profile.filters.conflictsCount`,{visible:Q.value.length,total:X.value.length})),1)):k.value===`all`?(a(),s(`span`,Ze,_(Z.value.length===Y.value.length?v(u)(`preferences.profile.filters.personalUnderstanding`,{count:Y.value.length}):v(u)(`preferences.profile.filters.visibleCount`,{visible:Z.value.length,total:Y.value.length})),1)):(a(),s(`span`,Xe,_(v(u)(`preferences.profile.filters.reviewCount`,{count:Z.value.length,status:k.value===`pending`?v(u)(`preferences.profile.summary.pending`):k.value===`agent_confirmed`?v(u)(`preferences.profile.summary.agentConfirmed`):v(u)(`preferences.profile.summary.confirmed`)})),1)),S(`button`,{class:`toolbar-action`,type:`button`,disabled:C.value,onClick:t[6]||=e=>$()},_(v(u)(`common.actions.refresh`)),9,Qe)])]),C.value&&d.value&&!v(E)&&!z.value?(a(),f(w,{key:1,variant:`inline`,label:v(u)(`preferences.profile.directory.loading`)},null,8,[`label`])):x(``,!0),v(E)?(a(),f(w,{key:2,label:v(u)(`preferences.profile.directory.loading`)},null,8,[`label`])):T.value?(a(),s(`div`,$e)):z.value?(a(),s(`section`,{key:4,class:`preference-conflict-workbench`,"aria-label":v(u)(`preferences.profile.workbench.aria`)},[S(`header`,null,[S(`div`,null,[S(`h2`,null,_(v(u)(`preferences.profile.workbench.title`)),1)])]),S(`div`,tt,[(a(!0),s(m,null,r(Q.value,(e,n)=>(a(),s(`article`,{key:e.id,class:`preference-conflict-card`},[S(`div`,nt,[S(`div`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.group`,{index:n+1})),1),S(`h3`,null,_(e.preferenceKey),1)]),S(`div`,null,[S(`span`,null,_(Ce(e)),1),S(`strong`,null,_(e.aiRecord?v(u)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?v(u)(`preferences.profile.workbench.mergeSuggested`):v(u)(`preferences.profile.workbench.humanReview`)),1)])]),S(`div`,rt,[S(`section`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.older`)),1),S(`strong`,null,_(e.left.title),1),S(`p`,null,_(v(V)(e.left)),1),S(`small`,null,_(v(ae)(v(L)(e.left))),1)]),t[16]||=S(`i`,{"aria-hidden":`true`},`↔`,-1),S(`section`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.newer`)),1),S(`strong`,null,_(e.right.title),1),S(`p`,null,_(v(V)(e.right)),1),S(`small`,null,_(v(ae)(v(L)(e.right))),1)])]),S(`footer`,null,[S(`div`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.reason`)),1),S(`p`,null,_(e.reason),1),e.difference.rightOnly.length?(a(),s(`small`,it,_(v(u)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):x(``,!0)]),S(`div`,at,[S(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||K.value===e.id,onClick:t=>Oe(e)},_(e.aiRecord?v(u)(`preferences.profile.workbench.deferred`):K.value===e.id?v(u)(`preferences.profile.workbench.deferring`):v(u)(`preferences.profile.workbench.defer`)),9,ot),S(`button`,{class:`primary-action`,type:`button`,onClick:t=>W.value=e},_(v(u)(`preferences.profile.workbench.handleNow`)),9,st)])])]))),128))]),C.value?(a(),f(w,{key:0,variant:`compact`,label:v(u)(`preferences.profile.workbench.loading`)},null,8,[`label`])):Q.value.length?x(``,!0):(a(),s(`div`,ct,_(X.value.length?v(u)(`preferences.profile.workbench.noFiltered`):v(u)(`preferences.profile.workbench.empty`)),1))],8,et)):(a(),s(`div`,{key:5,class:h([`personal-profile-layout`,{"has-selection":B.value}])},[c(A,{class:`personal-profile-directory`,items:Z.value,"row-height":76,"active-index":fe.value,"reset-key":de.value,"item-key":be,label:v(u)(`preferences.profile.directory.aria`)},{header:n(()=>[S(`div`,lt,[S(`span`,null,_(v(u)(`preferences.profile.directory.aspect`)),1),S(`span`,null,_(v(u)(`preferences.profile.directory.content`)),1),S(`span`,null,_(v(u)(`preferences.profile.directory.statusScopeSource`)),1),S(`span`,null,_(v(u)(`preferences.profile.directory.updated`)),1)])]),default:n(({item:e})=>[S(`button`,{class:h([`personal-profile-row`,{selected:B.value?.id===e.id,"pending-review":v(I)(e)===`pending`,"ai-resolved-conflict":ue.value.has(e.id)}]),type:`button`,onClick:t=>B.value=e},[S(`span`,{class:h([`profile-aspect-mark`,e.profileAspect])},_(v(P)(e.profileAspect)),3),S(`span`,dt,[S(`strong`,null,_(e.title),1),S(`small`,null,_(e.body),1)]),S(`span`,ft,[S(`strong`,{class:h({"has-conflict":le.value.has(e.id)})},_(ye(e)),3),S(`small`,null,_(xe(e))+` · `+_(v(u)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),S(`time`,null,_(v(ae)(v(L)(e))),1)],10,ut)]),empty:n(()=>[S(`div`,pt,_(Y.value.length?v(u)(`preferences.profile.directory.noFiltered`):v(u)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),c(j,{class:`personal-profile-inspector`,item:B.value,graph:d.value,editable:``,onConfirm:t[7]||=e=>H.value=e,onEdit:t[8]||=e=>U.value=e,onOpenReplacement:we},null,8,[`item`,`graph`])],2)),c(N,{item:U.value,"personal-space-id":v(l).activePersonalSpace?.id??``,"personal-project-id":null,projects:v(l).state?.personalProjects??[],"replacement-items":Y.value,onClose:t[9]||=e=>U.value=null,onSaved:t[10]||=e=>$()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),c(ie,{item:H.value,"personal-space-id":v(l).activePersonalSpace?.id??``,"personal-project-id":null,onClose:t[11]||=e=>H.value=null,onSaved:t[12]||=e=>$()},null,8,[`item`,`personal-space-id`]),c(Ne,{conflict:W.value,"personal-space-id":v(l).activePersonalSpace?.id??``,projects:v(l).state?.personalProjects??[],onClose:t[13]||=e=>W.value=null,onResolved:t[14]||=e=>$(),onEdit:Te},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-1a3c54ed`]]);export{mt as default};
1
+ import{B as e,E as t,H as n,I as r,M as i,P as a,Q as o,S as s,T as c,U as l,a as u,at as d,b as f,f as p,g as m,it as h,n as g,ot as _,rt as v,v as y,w as b,x,y as S}from"./i18n-B4Fp9Oa5.js";import{t as ee}from"./console-C2Lfifq-.js";import{a as te,i as C,r as ne,s as w}from"./client-DodUFQDp.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./UiButton-neeym_gA.js";import{t as D}from"./vue-router-nZMhR3dI.js";import{t as O}from"./UiDialog-BFVoqFnc.js";import{t as re}from"./UiSelect-DDyct4mf.js";import{t as k}from"./UiSegmented-D_kyRKDw.js";import{n as A,t as j}from"./KnowledgeInspector-Dl7SAgaY.js";import{i as M,n as ie,t as N}from"./KnowledgeEditDialog-BlBd6Xql.js";import{C as P,D as F,_ as I,u as ae,v as L,x as oe}from"./model-C0eHDNsF.js";import{t as se}from"./personal-profile-graph-CHY3WYhi.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(!q(a,o)||!J(a,o)||Y(a,o))continue;let[s,c]=X(a,o),l=W(V(s),V(c)),d=K(l)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&z(e,s,c))??null;n.push({id:ue(s,c),preferenceKey:B(s),scopeKey:H(s),scopeLabel:U(s),left:s,right:c,difference:l,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:u(`preferences.shared.conflictReason`,{key:B(s)}),aiRecord:f})}return n.sort((e,t)=>{let n=g();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function R(e){return[e.left_item_id,e.right_item_id]}function z(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 B(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function V(e){return e.body.trim()}function H(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function U(e){return e.preferenceScope===`project`&&e.preferenceProjectId?u(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):u(`preferences.shared.personalGlobal`)}function W(e,t){let n=Z(e),r=Z(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(fe(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 G(e,t){let n=[...Z(e)];for(let e of Z(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=fe(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function K(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function q(e,t){return H(e)===H(t)}function J(e,t){return Q(B(e))===Q(B(t))}function Y(e,t){return Q(V(e))===Q(V(t))}function X(e,t){let n=le(e),r=le(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function le(e){let t=L(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function ue(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function Z(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=Q(e),r=Q(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 fe(e,t){return Q(e).length>=Q(t).length?e:t}function Q(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var pe=[`aria-label`],me=[`aria-label`],he={class:`conflict-side-heading`},ge=[`aria-label`],_e={key:0},$={key:1,class:`ui-muted`},ve=[`disabled`],ye=[`aria-label`],be=[`aria-pressed`],xe={key:0},Se=[`aria-pressed`],Ce=[`aria-pressed`],we=[`disabled`,`aria-pressed`],Te={key:0,class:`conflict-resolution-detail`},Ee={class:`conflict-inline-options`},De={class:`ui-field`},Oe={key:1,class:`conflict-resolution-detail`},ke={class:`conflict-inline-options`},Ae={class:`conflict-impact-preview`},je={class:`ui-field conflict-resolution-reason`},Me={class:`conflict-footer-note`},Ne=T(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:i}){let d=t,g=i,ne=ee(),w=o(null),T=o(`right`),D=o(`right`),A=o(``),j=o(``),M=o(``),ie=o(``),N=o(!1),P=o(``),F=y(()=>{let e=d.conflict;if(!e)return[];let t=D.value===`left`?e.left:e.right;return d.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),I=y(()=>F.value.length>0),oe=y(()=>F.value.map(e=>({value:e.project_id,label:e.profile.name}))),se=y(()=>{let e=d.conflict?.difference;return e?[{key:`shared`,label:u(`preferences.dialog.shared`),values:e.shared,empty:u(`preferences.dialog.noShared`)},{key:`left`,label:u(`preferences.dialog.onlyA`),values:e.leftOnly,empty:u(`preferences.dialog.noUnique`)},{key:`right`,label:u(`preferences.dialog.onlyB`),values:e.rightOnly,empty:u(`preferences.dialog.noUnique`)}]:[]}),ce=y(()=>{let e=d.conflict;if(!e||!w.value)return u(`preferences.dialog.impact.choose`);if(w.value===`merge`){let t=T.value===`left`?e.left:e.right,n=T.value===`left`?e.right:e.left;return u(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(w.value===`keep_left`||w.value===`keep_right`){let t=w.value===`keep_left`?e.left:e.right,n=w.value===`keep_left`?e.right:e.left;return u(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=D.value===`left`?e.left:e.right,n=F.value.find(({project_id:e})=>e===A.value);return n?u(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):u(`preferences.dialog.impact.chooseProject`)});e(()=>d.conflict,e=>{e&&(T.value=`right`,D.value=`right`,j.value=G(V(e.right),V(e.left)),w.value=e.recommendedAction,A.value=``,P.value=``,z(e.recommendedAction))},{immediate:!0}),e([D,F],()=>{A.value&&F.value.some(({project_id:e})=>e===A.value)||(A.value=F.value[0]?.project_id??``)},{immediate:!0});function R(e){N.value||(w.value=e,(!M.value.trim()||M.value===ie.value)&&z(e))}function z(e){let t=d.conflict,n=t&&e?q(e,t):``;ie.value=n,M.value=n}async function B(){if(N.value)return;let e=d.conflict;if(!e||!w.value)return J(u(`preferences.dialog.errors.actionRequired`));if(!M.value.trim())return J(u(`preferences.dialog.errors.reasonRequired`));if(w.value===`merge`&&!j.value.trim())return J(u(`preferences.dialog.errors.mergedValueRequired`));if(w.value===`split_scope`&&!A.value)return J(u(`preferences.dialog.errors.projectRequired`));let t=w.value,n=M.value.trim(),r=d.personalSpaceId;N.value=!0,P.value=``;try{t===`merge`?await H(e):t===`split_scope`?await W(e):await U(e,t),e.aiRecord&&await te(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:r,resolution:t,reason:n}),ne.notify(u(`preferences.dialog.resolved`)),g(`resolved`),g(`close`)}catch(e){P.value=e instanceof Error?e.message:u(`preferences.dialog.errors.failed`),ne.reportError(e)}finally{N.value=!1}}async function H(e){let t=M.value.trim(),n=d.personalSpaceId,r=T.value===`left`?e.left:e.right,i=T.value===`left`?e.right:e.left,a={personalSpaceId:n,personalProjectId:null,action:`update`,reason:t};r.itemKind===`entity`?(a.name=r.title,a.summary=j.value.trim()):a.fact=j.value.trim(),r.classificationExplicit&&r.originQuadrant!==`unclassified`&&(a.originQuadrant=r.originQuadrant,a.confirmationStatus=`confirmed`,a.confirmationBasis={existenceReason:u(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:r.confirmationBasis?.quadrant_reason||r.reasoningSummary||u(`preferences.dialog.audit.keepQuadrant`),proposedBy:r.confirmationBasis?.proposed_by?K(r.confirmationBasis.proposed_by):{kind:`import`,label:u(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:u(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,a),await C(`/api/knowledge/${i.itemKind}/${encodeURIComponent(i.id)}`,{personalSpaceId:n,personalProjectId:null,action:`invalidate`,reason:t,replacementItemId:r.id,replacementItemKind:r.itemKind})}async function U(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:d.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:M.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function W(e){let t=D.value===`left`?e.left:e.right;await te(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:d.personalSpaceId,scope:`project`,projectId:A.value,reason:M.value.trim()})}function K(e){return{kind:e.kind,label:e.label??null}}function q(e,t){return e===`merge`?u(`preferences.dialog.defaultReason.merge`):e===`keep_left`?u(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?u(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):u(`preferences.dialog.defaultReason.split`)}function J(e){P.value=e}return(e,i)=>t.conflict?(a(),f(O,{key:0,open:``,class:`conflict-resolution-dialog`,size:`xl`,busy:N.value,error:P.value,title:v(u)(`preferences.dialog.title`),description:v(u)(`preferences.dialog.intro`,{reason:t.conflict.reason}),onClose:i[10]||=e=>g(`close`)},{footer:n(()=>[S(`span`,Me,_(v(u)(`preferences.dialog.pendingCopy`)),1),c(E,{variant:`ghost`,disabled:N.value,onClick:i[9]||=e=>g(`close`)},{default:n(()=>[b(_(v(u)(`preferences.dialog.defer`)),1)]),_:1},8,[`disabled`]),c(E,{variant:`primary`,disabled:!w.value,busy:N.value,"busy-label":v(u)(`preferences.dialog.processing`),onClick:B},{default:n(()=>[b(_(v(u)(`preferences.dialog.confirm`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])]),default:n(()=>[S(`section`,{class:`conflict-pair-context`,"aria-label":v(u)(`preferences.dialog.basisAria`)},[S(`span`,null,[b(_(v(u)(`preferences.dialog.preferenceKey`)),1),S(`strong`,null,_(t.conflict.preferenceKey),1)]),S(`span`,null,[b(_(v(u)(`preferences.dialog.effectiveScope`)),1),S(`strong`,null,_(t.conflict.scopeLabel),1)]),S(`span`,null,[b(_(v(u)(`preferences.dialog.suggestion`)),1),S(`strong`,null,_(t.conflict.recommendedAction===`merge`?v(u)(`preferences.dialog.mergeSuggestion`):v(u)(`preferences.dialog.reviewSuggestion`)),1)])],8,pe),S(`section`,{class:`conflict-comparison`,"aria-label":v(u)(`preferences.dialog.comparisonAria`)},[(a(),s(m,null,r([`left`,`right`],e=>S(`article`,{key:e,class:h([`conflict-side`,`conflict-side-${e}`])},[S(`div`,he,[S(`span`,null,_(v(u)(e===`left`?`preferences.dialog.older`:`preferences.dialog.newer`)),1),S(`time`,null,_(v(ae)(v(L)(t.conflict[e]))),1)]),S(`h3`,null,_(t.conflict[e].title),1),S(`p`,null,_(v(V)(t.conflict[e])),1),S(`small`,null,_(v(u)(`preferences.dialog.sourceCount`,{count:t.conflict[e].evidence.length}))+` · `+_(t.conflict[e].id),1),c(E,{size:`sm`,variant:`ghost`,onClick:n=>g(`edit`,t.conflict[e])},{default:n(()=>[b(_(v(u)(e===`left`?`preferences.dialog.editA`:`preferences.dialog.editB`)),1)]),_:2},1032,[`onClick`])],2)),64))],8,me),S(`section`,{class:`conflict-difference`,"aria-label":v(u)(`preferences.dialog.differenceAria`)},[(a(!0),s(m,null,r(se.value,e=>(a(),s(`div`,{key:e.key},[S(`span`,null,_(e.label),1),e.values.length?(a(),s(`p`,_e,[(a(!0),s(m,null,r(e.values,e=>(a(),s(`b`,{key:e},_(e),1))),128))])):(a(),s(`p`,$,_(e.empty),1))]))),128))],8,ge),S(`fieldset`,{class:`conflict-inputs`,disabled:N.value},[S(`section`,{class:`conflict-resolution-options`,"aria-label":v(u)(`preferences.dialog.actionsAria`)},[S(`button`,{type:`button`,"aria-pressed":w.value===`merge`,onClick:i[0]||=e=>R(`merge`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.merge`)),1),S(`span`,null,_(v(u)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(a(),s(`em`,xe,_(v(u)(`preferences.dialog.actions.recommended`)),1)):x(``,!0)],8,be),S(`button`,{type:`button`,"aria-pressed":w.value===`keep_left`,onClick:i[1]||=e=>R(`keep_left`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.keepA`)),1),S(`span`,null,_(v(u)(`preferences.dialog.actions.keepACopy`)),1)],8,Se),S(`button`,{type:`button`,"aria-pressed":w.value===`keep_right`,onClick:i[2]||=e=>R(`keep_right`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.keepB`)),1),S(`span`,null,_(v(u)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ce),S(`button`,{type:`button`,disabled:!I.value,"aria-pressed":w.value===`split_scope`,onClick:i[3]||=e=>R(`split_scope`)},[S(`strong`,null,_(v(u)(`preferences.dialog.actions.split`)),1),S(`span`,null,_(I.value?v(u)(`preferences.dialog.actions.splitCopy`):v(u)(`preferences.dialog.actions.noProjects`)),1)],8,we)],8,ye),w.value===`merge`?(a(),s(`section`,Te,[S(`div`,Ee,[S(`span`,null,_(v(u)(`preferences.dialog.canonicalIdentity`)),1),c(k,{modelValue:T.value,"onUpdate:modelValue":i[4]||=e=>T.value=e,label:v(u)(`preferences.dialog.mergeIdentityAria`),options:[{value:`left`,label:v(u)(`preferences.dialog.identityA`)},{value:`right`,label:v(u)(`preferences.dialog.identityB`)}]},null,8,[`modelValue`,`label`,`options`])]),S(`label`,De,[b(_(v(u)(`preferences.dialog.mergedContent`)),1),l(S(`textarea`,{"onUpdate:modelValue":i[5]||=e=>j.value=e,rows:`4`,maxlength:`4096`},null,512),[[p,j.value]])])])):x(``,!0),w.value===`split_scope`?(a(),s(`section`,Oe,[S(`div`,ke,[S(`span`,null,_(v(u)(`preferences.dialog.adjustRecord`)),1),c(k,{modelValue:D.value,"onUpdate:modelValue":i[6]||=e=>D.value=e,label:v(u)(`preferences.dialog.splitRecordAria`),options:[{value:`left`,label:`A`},{value:`right`,label:`B`}]},null,8,[`modelValue`,`label`])]),c(re,{modelValue:A.value,"onUpdate:modelValue":i[7]||=e=>A.value=e,field:``,label:v(u)(`preferences.dialog.projectOnly`),placeholder:v(u)(`preferences.dialog.chooseProject`),options:oe.value},null,8,[`modelValue`,`label`,`placeholder`,`options`])])):x(``,!0),S(`section`,Ae,[S(`span`,null,_(v(u)(`preferences.dialog.impactTitle`)),1),S(`p`,null,_(ce.value),1)]),S(`label`,je,[b(_(v(u)(`preferences.dialog.reason`)),1),l(S(`textarea`,{"onUpdate:modelValue":i[8]||=e=>M.value=e,rows:`2`,maxlength:`2000`},null,512),[[p,M.value]])])],8,ve)]),_:1},8,[`busy`,`error`,`title`,`description`])):x(``,!0)}}),[[`__scopeId`,`data-v-57134f7d`]]),Pe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},Fe={class:`writing-taste-milestone__action`},Ie=T(t({__name:`WritingTasteMilestone`,props:{profile:{}},setup(e){let t=e,r=y(()=>t.profile?.status===`active`?u(`writingTaste.milestone.activeTitle`):t.profile?.status===`preview_ready`?u(`writingTaste.milestone.previewTitle`):u(`writingTaste.milestone.collectingTitle`)),i=y(()=>{let e=t.profile?.readiness;if(!e)return 0;let n=[o(e.rule_count,e.thresholds.rule_count),o(e.evidence_count,e.thresholds.evidence_count),o(e.session_count,e.thresholds.session_count),o(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(n.reduce((e,t)=>e+t,0)/n.length*100)});function o(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(t,o)=>e.profile?(a(),f(v(D),{key:0,to:`/preferences/writing`,class:h([`writing-taste-milestone`,`status-${e.profile.status}`]),"aria-label":v(u)(`writingTaste.milestone.aria`)},{default:n(()=>[S(`strong`,null,_(r.value),1),S(`span`,Pe,[S(`i`,{style:d({transform:`scaleX(${i.value/100})`})},null,4)]),S(`small`,null,_(v(u)(`writingTaste.milestone.rules`,{current:e.profile.readiness.rule_count,target:e.profile.readiness.thresholds.rule_count}))+` · `+_(v(u)(`writingTaste.milestone.sessions`,{current:e.profile.readiness.session_count,target:e.profile.readiness.thresholds.session_count})),1),S(`span`,Fe,_(v(u)(`writingTaste.milestone.open`))+` →`,1)]),_:1},8,[`class`,`aria-label`])):x(``,!0)}}),[[`__scopeId`,`data-v-5a04aa82`]]),Le={class:`view vue-personal-profile`},Re=[`aria-label`],ze=[`aria-label`,`aria-pressed`],Be=[`aria-label`,`aria-pressed`],Ve=[`aria-label`,`aria-pressed`],He=[`aria-label`,`aria-pressed`],Ue={key:0,class:`personal-profile-notices`},We=[`aria-label`],Ge={class:`personal-profile-toolbar`},Ke={class:`personal-profile-filter-groups`},qe=[`aria-label`],Je=[`aria-pressed`,`onClick`],Ye={class:`personal-profile-toolbar-actions`},Xe={key:0,class:`muted`},Ze={key:1,class:`muted`},Qe={key:2,class:`muted`},$e=[`disabled`],et={key:3,class:`view-loading`,"aria-busy":`true`},tt=[`aria-label`],nt={class:`preference-conflict-list`},rt={class:`preference-conflict-card-heading`},it={class:`preference-conflict-pair`},at={key:0},ot={class:`preference-conflict-actions`},st=[`disabled`,`onClick`],ct=[`onClick`],lt={key:1,class:`empty-state`},ut={class:`personal-profile-table-head`,"aria-hidden":`true`},dt=[`onClick`],ft={class:`personal-profile-copy`},pt={class:`personal-profile-origin`},mt={class:`empty-state`},ht=T(t({__name:`PersonalProfilePage`,setup(t){let l=ee(),d=o(null),p=o(null),C=o(!1),T=y(()=>C.value&&!d.value),E=M(T),D=o(`all`),O=o(`all`),k=o(`all`),z=o(!1),B=o(null),H=o(null),U=o(null),W=o(null),G=o([]),K=o(``),q=0,J=null,Y=y(()=>oe(d.value)),X=y(()=>ce(Y.value,G.value)),le=y(()=>new Set(X.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),ue=y(()=>new Set(G.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(R))),Z=y(()=>Y.value.filter(e=>Se(e)&&(k.value===`all`||I(e)===k.value))),de=y(()=>JSON.stringify([D.value,O.value,k.value,z.value])),fe=y(()=>B.value?Z.value.findIndex(({id:e,itemKind:t})=>e===B.value?.id&&t===B.value?.itemKind):-1),Q=y(()=>X.value.filter(({left:e,right:t})=>Se(e)||Se(t))),pe=y(()=>[[`all`,u(`preferences.profile.filters.all`)],[`taste`,u(`preferences.profile.filters.taste`)],[`personality`,u(`preferences.profile.filters.personality`)],[`judgment_preference`,u(`preferences.profile.filters.judgment`)]]),me=y(()=>{let e=new Map((l.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),t=[...new Set(Y.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,g()));return[{value:`all`,label:u(`preferences.profile.scopes.all`),meta:u(`common.counts.items`,{count:Y.value.length})},{value:`global`,label:u(`preferences.profile.scopes.global`),meta:u(`common.counts.items`,{count:Y.value.filter(({preferenceScope:e})=>e!==`project`).length})},...t.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:u(`preferences.profile.scopes.projectMeta`,{count:Y.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),he=y(()=>Y.value.filter(e=>I(e)===`confirmed`).length),ge=y(()=>Y.value.filter(e=>I(e)===`pending`).length),_e=y(()=>Y.value.filter(e=>I(e)===`agent_confirmed`).length);e(()=>l.activePersonalSpace?.id,(e,t)=>{e!==t&&(d.value=null,p.value=null,G.value=[],B.value=null,H.value=null,U.value=null,W.value=null,O.value=`all`),e?$(e):(q+=1,J?.abort(),J=null,C.value=!1)},{immediate:!0}),i(()=>{q+=1,J?.abort(),J=null}),e([D,O,k,z],()=>{B.value&&!Z.value.some(({id:e})=>e===B.value?.id)&&(B.value=null)}),e(me,e=>{e.some(({value:e})=>e===O.value)||(O.value=`all`)});async function $(e=l.activePersonalSpace?.id){if(!e)return;J?.abort();let t=++q,n=new AbortController;J=n,C.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),i=new URLSearchParams({personalSpaceId:e,limit:`500`}),[a,o,s]=await Promise.all([se(e,n.signal),ne(`/api/preference-conflicts?${r}`,{signal:n.signal}),ne(`/api/writing-taste-profile?${i}`,{signal:n.signal}).catch(()=>null)]);if(t!==q||n.signal.aborted)return;d.value=a,G.value=Array.isArray(o)?o:[],p.value=ve(s)?s:null,B.value&&=Y.value.find(({id:e})=>e===B.value?.id)??null}catch(e){if(t!==q||n.signal.aborted)return;d.value=null,p.value=null,l.reportError(e)}finally{if(t!==q||n.signal.aborted)return;C.value=!1,J===n&&(J=null)}}function ve(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 ye(e){let t=F(e),n=X.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${u(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${u(`preferences.profile.statusSuffix.conflict`)}`:ue.value.has(e.id)?`${t} · ${u(`preferences.profile.statusSuffix.aiResolved`)}`:t}function be(e){return`${e.itemKind}:${e.id}`}function xe(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return u(`preferences.shared.personalGlobal`);let t=l.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return u(`preferences.shared.projectOnly`,{project:t?.profile.name??e.preferenceProjectId})}function Se(e){if(D.value!==`all`&&e.profileAspect!==D.value||O.value===`global`&&e.preferenceScope===`project`)return!1;if(O.value.startsWith(`project:`)){let t=O.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function Ce(e){if(e.scopeKey===`global`)return u(`preferences.shared.personalGlobal`);let t=e.scopeKey.slice(8),n=l.state?.personalProjects?.find(({project_id:e})=>e===t);return u(`preferences.shared.projectOnly`,{project:n?.profile.name??t})}function we(e){D.value=e.profileAspect??`all`,O.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,z.value=!1,B.value=e}function Te(e){W.value=null,U.value=e}function Ee(e){let t=!z.value&&k.value===e?`all`:e;z.value=!1,k.value=t,t!==`all`&&(B.value=Z.value.at(0)??null)}function De(e=!1){let t=e||!z.value;z.value=t,t&&(k.value=`all`,B.value=null)}async function Oe(e){let t=l.activePersonalSpace?.id;if(!(!t||e.aiRecord)){K.value=e.id;try{let n=await te(`/api/preference-conflicts/defer`,{personalSpaceId:t,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:u(`preferences.profile.deferReason`)});G.value=[n,...G.value.filter(({id:e})=>e!==n.id)],l.notify(u(`preferences.profile.deferNotice`))}catch(e){l.reportError(e)}finally{K.value=``}}}return(e,t)=>(a(),s(`section`,Le,[S(`div`,{class:`personal-profile-summary`,"aria-label":v(u)(`preferences.profile.summaryAria`)},[S(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":v(u)(`preferences.profile.summary.confirmedAria`,{count:he.value}),"aria-pressed":!z.value&&k.value===`confirmed`,onClick:t[0]||=e=>Ee(`confirmed`)},[b(_(v(u)(`preferences.profile.summary.confirmed`)),1),S(`strong`,null,_(he.value),1)],8,ze),S(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":v(u)(`preferences.profile.summary.agentConfirmedAria`,{count:_e.value}),"aria-pressed":!z.value&&k.value===`agent_confirmed`,onClick:t[1]||=e=>Ee(`agent_confirmed`)},[b(_(v(u)(`preferences.profile.summary.agentConfirmed`)),1),S(`strong`,null,_(_e.value),1)],8,Be),S(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":v(u)(`preferences.profile.summary.pendingAria`,{count:ge.value}),"aria-pressed":!z.value&&k.value===`pending`,onClick:t[2]||=e=>Ee(`pending`)},[b(_(v(u)(`preferences.profile.summary.pending`)),1),S(`strong`,null,_(ge.value),1)],8,Ve),S(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":X.value.length?v(u)(`preferences.profile.summary.conflictAria`,{count:X.value.length}):v(u)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":z.value,onClick:t[3]||=e=>De()},[b(_(v(u)(`preferences.profile.summary.conflicts`)),1),S(`strong`,null,_(X.value.length),1)],8,He)],8,Re),p.value||X.value.length&&!z.value&&k.value===`all`?(a(),s(`div`,Ue,[X.value.length&&!z.value&&k.value===`all`?(a(),s(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":v(u)(`preferences.profile.alert.aria`)},[t[15]||=S(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),S(`div`,null,[S(`h2`,null,_(v(u)(`preferences.profile.alert.title`,{count:X.value.length})),1),S(`p`,null,_(v(u)(`preferences.profile.alert.copy`)),1)]),S(`button`,{class:`primary-action`,type:`button`,onClick:t[4]||=e=>De(!0)},_(v(u)(`preferences.profile.alert.action`)),1)],8,We)):x(``,!0),c(Ie,{profile:p.value},null,8,[`profile`])])):x(``,!0),S(`div`,Ge,[S(`div`,Ke,[S(`div`,{class:`personal-profile-filters ui-segmented`,role:`group`,"aria-label":v(u)(`preferences.profile.filters.aspectAria`)},[(a(!0),s(m,null,r(pe.value,([e,t])=>(a(),s(`button`,{key:e,type:`button`,"aria-pressed":D.value===e,onClick:t=>D.value=e},_(t),9,Je))),128))],8,qe),c(re,{modelValue:O.value,"onUpdate:modelValue":t[5]||=e=>O.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:v(u)(`preferences.profile.filters.scopeLabel`),options:me.value},null,8,[`modelValue`,`label`,`options`])]),S(`div`,Ye,[z.value?(a(),s(`span`,Xe,_(v(u)(`preferences.profile.filters.conflictsCount`,{visible:Q.value.length,total:X.value.length})),1)):k.value===`all`?(a(),s(`span`,Qe,_(Z.value.length===Y.value.length?v(u)(`preferences.profile.filters.personalUnderstanding`,{count:Y.value.length}):v(u)(`preferences.profile.filters.visibleCount`,{visible:Z.value.length,total:Y.value.length})),1)):(a(),s(`span`,Ze,_(v(u)(`preferences.profile.filters.reviewCount`,{count:Z.value.length,status:k.value===`pending`?v(u)(`preferences.profile.summary.pending`):k.value===`agent_confirmed`?v(u)(`preferences.profile.summary.agentConfirmed`):v(u)(`preferences.profile.summary.confirmed`)})),1)),S(`button`,{class:`toolbar-action`,type:`button`,disabled:C.value,onClick:t[6]||=e=>$()},_(v(u)(`common.actions.refresh`)),9,$e)])]),C.value&&d.value&&!v(E)&&!z.value?(a(),f(w,{key:1,variant:`inline`,label:v(u)(`preferences.profile.directory.loading`)},null,8,[`label`])):x(``,!0),v(E)?(a(),f(w,{key:2,label:v(u)(`preferences.profile.directory.loading`)},null,8,[`label`])):T.value?(a(),s(`div`,et)):z.value?(a(),s(`section`,{key:4,class:`preference-conflict-workbench`,"aria-label":v(u)(`preferences.profile.workbench.aria`)},[S(`header`,null,[S(`div`,null,[S(`h2`,null,_(v(u)(`preferences.profile.workbench.title`)),1)])]),S(`div`,nt,[(a(!0),s(m,null,r(Q.value,(e,n)=>(a(),s(`article`,{key:e.id,class:`preference-conflict-card`},[S(`div`,rt,[S(`div`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.group`,{index:n+1})),1),S(`h3`,null,_(e.preferenceKey),1)]),S(`div`,null,[S(`span`,null,_(Ce(e)),1),S(`strong`,null,_(e.aiRecord?v(u)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?v(u)(`preferences.profile.workbench.mergeSuggested`):v(u)(`preferences.profile.workbench.humanReview`)),1)])]),S(`div`,it,[S(`section`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.older`)),1),S(`strong`,null,_(e.left.title),1),S(`p`,null,_(v(V)(e.left)),1),S(`small`,null,_(v(ae)(v(L)(e.left))),1)]),t[16]||=S(`i`,{"aria-hidden":`true`},`↔`,-1),S(`section`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.newer`)),1),S(`strong`,null,_(e.right.title),1),S(`p`,null,_(v(V)(e.right)),1),S(`small`,null,_(v(ae)(v(L)(e.right))),1)])]),S(`footer`,null,[S(`div`,null,[S(`span`,null,_(v(u)(`preferences.profile.workbench.reason`)),1),S(`p`,null,_(e.reason),1),e.difference.rightOnly.length?(a(),s(`small`,at,_(v(u)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):x(``,!0)]),S(`div`,ot,[S(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||K.value===e.id,onClick:t=>Oe(e)},_(e.aiRecord?v(u)(`preferences.profile.workbench.deferred`):K.value===e.id?v(u)(`preferences.profile.workbench.deferring`):v(u)(`preferences.profile.workbench.defer`)),9,st),S(`button`,{class:`primary-action`,type:`button`,onClick:t=>W.value=e},_(v(u)(`preferences.profile.workbench.handleNow`)),9,ct)])])]))),128))]),C.value?(a(),f(w,{key:0,variant:`compact`,label:v(u)(`preferences.profile.workbench.loading`)},null,8,[`label`])):Q.value.length?x(``,!0):(a(),s(`div`,lt,_(X.value.length?v(u)(`preferences.profile.workbench.noFiltered`):v(u)(`preferences.profile.workbench.empty`)),1))],8,tt)):(a(),s(`div`,{key:5,class:h([`personal-profile-layout`,{"has-selection":B.value}])},[c(A,{class:`personal-profile-directory`,items:Z.value,"row-height":76,"active-index":fe.value,"reset-key":de.value,"item-key":be,label:v(u)(`preferences.profile.directory.aria`)},{header:n(()=>[S(`div`,ut,[S(`span`,null,_(v(u)(`preferences.profile.directory.aspect`)),1),S(`span`,null,_(v(u)(`preferences.profile.directory.content`)),1),S(`span`,null,_(v(u)(`preferences.profile.directory.statusScopeSource`)),1),S(`span`,null,_(v(u)(`preferences.profile.directory.updated`)),1)])]),default:n(({item:e})=>[S(`button`,{class:h([`personal-profile-row`,{selected:B.value?.id===e.id,"pending-review":v(I)(e)===`pending`,"ai-resolved-conflict":ue.value.has(e.id)}]),type:`button`,onClick:t=>B.value=e},[S(`span`,{class:h([`profile-aspect-mark`,e.profileAspect])},_(v(P)(e.profileAspect)),3),S(`span`,ft,[S(`strong`,null,_(e.title),1),S(`small`,null,_(e.body),1)]),S(`span`,pt,[S(`strong`,{class:h({"has-conflict":le.value.has(e.id)})},_(ye(e)),3),S(`small`,null,_(xe(e))+` · `+_(v(u)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),S(`time`,null,_(v(ae)(v(L)(e))),1)],10,dt)]),empty:n(()=>[S(`div`,mt,_(Y.value.length?v(u)(`preferences.profile.directory.noFiltered`):v(u)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),c(j,{class:`personal-profile-inspector`,item:B.value,graph:d.value,editable:``,onConfirm:t[7]||=e=>H.value=e,onEdit:t[8]||=e=>U.value=e,onOpenReplacement:we},null,8,[`item`,`graph`])],2)),c(N,{item:U.value,"personal-space-id":v(l).activePersonalSpace?.id??``,"personal-project-id":null,projects:v(l).state?.personalProjects??[],"replacement-items":Y.value,onClose:t[9]||=e=>U.value=null,onSaved:t[10]||=e=>$()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),c(ie,{item:H.value,"personal-space-id":v(l).activePersonalSpace?.id??``,"personal-project-id":null,onClose:t[11]||=e=>H.value=null,onSaved:t[12]||=e=>$()},null,8,[`item`,`personal-space-id`]),c(Ne,{conflict:W.value,"personal-space-id":v(l).activePersonalSpace?.id??``,projects:v(l).state?.personalProjects??[],onClose:t[13]||=e=>W.value=null,onResolved:t[14]||=e=>$(),onEdit:Te},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-95fd7fac`]]);export{ht as default};
@@ -0,0 +1 @@
1
+ import{E as e,P as t,b as n}from"./i18n-B4Fp9Oa5.js";import{t as r}from"./KnowledgeWorkspace-4q_HfXas.js";var i=e({__name:`PersonalProjectsPage`,setup(e){return(e,i)=>(t(),n(r,{"personal-projects-only":``}))}});export{i as default};
@@ -1 +1 @@
1
- import{E as e,P as t,S as n,a as r,ot as i,rt as a,y as o}from"./i18n-oJFlt8hW.js";import{t as s}from"./_plugin-vue_export-helper-BDNMzG2s.js";var c=[`aria-label`],l=s(e({__name:`ProjectAgentFirstTask`,props:{personalSpaceId:{}},setup(e){return(e,s)=>(t(),n(`aside`,{class:`project-agent-first-task`,"aria-label":a(r)(`projectAgents.firstTask.title`)},[o(`strong`,null,i(a(r)(`projectAgents.firstTask.title`)),1),o(`p`,null,i(a(r)(`projectAgents.firstTask.hint`)),1)],8,c))}}),[[`__scopeId`,`data-v-f08512ca`]]);export{l as t};
1
+ import{E as e,P as t,S as n,a as r,ot as i,rt as a,y as o}from"./i18n-B4Fp9Oa5.js";import{t as s}from"./_plugin-vue_export-helper-BDNMzG2s.js";var c=[`aria-label`],l=s(e({__name:`ProjectAgentFirstTask`,props:{personalSpaceId:{}},setup(e){return(e,s)=>(t(),n(`aside`,{class:`project-agent-first-task`,"aria-label":a(r)(`projectAgents.firstTask.title`)},[o(`strong`,null,i(a(r)(`projectAgents.firstTask.title`)),1),o(`p`,null,i(a(r)(`projectAgents.firstTask.hint`)),1)],8,c))}}),[[`__scopeId`,`data-v-f08512ca`]]);export{l as t};
@@ -1,4 +1,4 @@
1
- import{A as e,B as t,E as n,H as r,I as i,L as a,N as o,P as s,Q as c,S as l,T as u,U as d,a as f,b as p,f as m,g as h,it as g,j as _,l as v,n as y,ot as b,p as x,rt as S,v as C,w,x as T,y as E}from"./i18n-oJFlt8hW.js";import{t as D}from"./console-Cw7TzOSC.js";import{a as O,i as k,n as A,o as j,r as M,s as N}from"./client-DnwnUBQV.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as F}from"./UiButton-x8hiHNRM.js";import{m as I}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as L}from"./vue-router-CCvPGaLD.js";import{t as ee}from"./UiDialog-mjletK0y.js";import{t as R}from"./UiSelect-K29jnV-1.js";import{t as z}from"./AgentHand-UzVhbKUC.js";import{_ as te,a as ne,c as re,d as B,f as ie,g as V,h as H,i as U,l as ae,m as W,n as G,o as K,p as q,r as oe,s as se,t as ce,u as le}from"./task-evidence-DTiPCs7r.js";import{t as ue}from"./AgentConversations-Ccy41mEA.js";import{r as de,t as fe}from"./agent-work-summary-C-yW7x7A.js";import{a as pe,i as me,s as he}from"./catalog-D0VEfOAV.js";import{t as ge}from"./ProjectAgentFirstTask-BkRJ0zwO.js";import{t as _e}from"./ProjectScopePicker-CiDxM2Yx.js";import{t as ve}from"./EmployeeRecruitDialog-D8Hvhc-M.js";function ye(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:be(t),toDate:be(e)}}function be(e){return e.toISOString().slice(0,10)}function xe(e,t){let n=H(e),r=G(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=H(e);return{date:W(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(J).filter(e=>!!e)}}).filter(({date:e})=>e),a=W(n,`fromDate`,`from_date`),o=W(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?Se(i,c,l):[];return{agentId:W(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:W(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Se(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=be(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function J(e){let t=H(e),n=W(t,`taskId`,`task_id`);if(!n)return null;let r=U(V(t,`actualExecution`,`actual_execution`))??U({executor:W(t,`actualExecutor`,`actual_executor`),provider:W(t,`actualModelProvider`,`actual_model_provider`),model:W(t,`actualModel`,`actual_model`),client:W(t,`sourceApplication`,`source_application`)});return{taskId:n,title:W(t,`title`,`title`)??n,status:W(t,`status`,`status`),summary:W(t,`summary`,`summary`)??``,occurredAt:W(t,`occurredAt`,`occurred_at`)??``,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),assignmentId:W(t,`assignmentId`,`assignment_id`),collaborators:G(t.collaborators).map(K),sourceApplication:W(t,`sourceApplication`,`source_application`),sourceSessionId:W(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:W(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:B(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:q(t,`toolsUsed`,`tools_used`),tokenUsage:le(V(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:W(t,`actualModelProvider`,`actual_model_provider`),actualModel:W(t,`actualModel`,`actual_model`)}}var Ce={class:`project-agent-assignment-fields`},we={key:1,class:`ui-field`},Te=[`value`],Ee={key:3,class:`ui-field project-agent-assignment-wide`},De=[`disabled`],Oe={key:4,class:`ui-field`},Y=[`disabled`],ke={key:5,class:`ui-field`},Ae=[`disabled`,`placeholder`],je={class:`ui-field project-agent-assignment-wide`},Me=[`disabled`,`placeholder`],Ne=P(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 i=e,a=n,o=c(``),h=c(``),g=c(``),_=c(``),v=c(``),y=c(``),x=c(!1),D=c(``),k=C(()=>i.action!==`assign`),A=C(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),j=C(()=>i.availableAgents.filter(e=>e.agentId!==i.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.displayName||e.profile.name,meta:e.profile.name})));t(()=>[i.open,i.agent,i.assignment,i.action,i.defaultProjectId],()=>{i.open&&(o.value=i.assignment?.personalProjectId??i.defaultProjectId??i.projects[0]?.project_id??``,h.value=``,g.value=i.assignment?.responsibility??i.agent?.profile.responsibility??``,_.value=i.assignment?.scope??``,v.value=i.assignment?.workKinds?.join(`
1
+ import{A as e,B as t,E as n,H as r,I as i,L as a,N as o,P as s,Q as c,S as l,T as u,U as d,a as f,b as p,f as m,g as h,it as g,j as _,l as v,n as y,ot as b,p as x,rt as S,v as C,w,x as T,y as E}from"./i18n-B4Fp9Oa5.js";import{t as D}from"./console-C2Lfifq-.js";import{a as O,i as k,n as A,o as j,r as M,s as N}from"./client-DodUFQDp.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as F}from"./UiButton-neeym_gA.js";import{m as I}from"./useApi-CROJJdhE-IuC5qwny.js";import{t as L}from"./vue-router-nZMhR3dI.js";import{t as ee}from"./UiDialog-BFVoqFnc.js";import{t as R}from"./UiSelect-DDyct4mf.js";import{t as z}from"./AgentHand-B5lezlek.js";import{_ as te,a as ne,c as re,d as B,f as ie,g as V,h as H,i as U,l as ae,m as W,n as G,o as K,p as q,r as oe,s as se,t as ce,u as le}from"./task-evidence-DTiPCs7r.js";import{t as ue}from"./AgentConversations-BnFsfRj3.js";import{r as de,t as fe}from"./agent-work-summary-C-yW7x7A.js";import{a as pe,i as me,s as he}from"./catalog-kb-cA8t6.js";import{t as ge}from"./ProjectAgentFirstTask-Caf7c6F_.js";import{t as _e}from"./ProjectScopePicker-NyqcG6Iz.js";import{t as ve}from"./EmployeeRecruitDialog-o6eyMw2g.js";function ye(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:be(t),toDate:be(e)}}function be(e){return e.toISOString().slice(0,10)}function xe(e,t){let n=H(e),r=G(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=H(e);return{date:W(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(J).filter(e=>!!e)}}).filter(({date:e})=>e),a=W(n,`fromDate`,`from_date`),o=W(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?Se(i,c,l):[];return{agentId:W(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:W(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Se(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=be(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function J(e){let t=H(e),n=W(t,`taskId`,`task_id`);if(!n)return null;let r=U(V(t,`actualExecution`,`actual_execution`))??U({executor:W(t,`actualExecutor`,`actual_executor`),provider:W(t,`actualModelProvider`,`actual_model_provider`),model:W(t,`actualModel`,`actual_model`),client:W(t,`sourceApplication`,`source_application`)});return{taskId:n,title:W(t,`title`,`title`)??n,status:W(t,`status`,`status`),summary:W(t,`summary`,`summary`)??``,occurredAt:W(t,`occurredAt`,`occurred_at`)??``,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),assignmentId:W(t,`assignmentId`,`assignment_id`),collaborators:G(t.collaborators).map(K),sourceApplication:W(t,`sourceApplication`,`source_application`),sourceSessionId:W(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:W(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:B(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:q(t,`toolsUsed`,`tools_used`),tokenUsage:le(V(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:W(t,`actualModelProvider`,`actual_model_provider`),actualModel:W(t,`actualModel`,`actual_model`)}}var Ce={class:`project-agent-assignment-fields`},we={key:1,class:`ui-field`},Te=[`value`],Ee={key:3,class:`ui-field project-agent-assignment-wide`},De=[`disabled`],Oe={key:4,class:`ui-field`},Y=[`disabled`],ke={key:5,class:`ui-field`},Ae=[`disabled`,`placeholder`],je={class:`ui-field project-agent-assignment-wide`},Me=[`disabled`,`placeholder`],Ne=P(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 i=e,a=n,o=c(``),h=c(``),g=c(``),_=c(``),v=c(``),y=c(``),x=c(!1),D=c(``),k=C(()=>i.action!==`assign`),A=C(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),j=C(()=>i.availableAgents.filter(e=>e.agentId!==i.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.displayName||e.profile.name,meta:e.profile.name})));t(()=>[i.open,i.agent,i.assignment,i.action,i.defaultProjectId],()=>{i.open&&(o.value=i.assignment?.personalProjectId??i.defaultProjectId??i.projects[0]?.project_id??``,h.value=``,g.value=i.assignment?.responsibility??i.agent?.profile.responsibility??``,_.value=i.assignment?.scope??``,v.value=i.assignment?.workKinds?.join(`
2
2
  `)??``,y.value=``,D.value=``)},{immediate:!0});async function M(){if(!i.agent)return;D.value=``;let e=y.value.trim(),t=g.value.trim();if(!e||i.action===`assign`&&!t){D.value=f(`projectAgents.assignmentDialog.required`);return}if(i.action===`replace`&&!h.value){D.value=f(`projectAgents.assignmentDialog.replacementRequired`);return}x.value=!0;try{if(i.action===`assign`){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:i.agent.personalSpaceId,personalProjectId:o.value,agentId:i.agent.agentId,idempotencyKey:P(),responsibility:t,workKinds:N(v.value),capabilities:[],reason:e});a(`saved`,n)}else{if(!i.assignment)return;await O(`/api/project-agent-assignments/${encodeURIComponent(i.assignment.assignmentId)}/${i.action}`,i.action===`replace`?{personalSpaceId:i.agent.personalSpaceId,personalProjectId:i.assignment.personalProjectId,assignmentId:i.assignment.assignmentId,expectedRevision:i.assignment.revision??0,replacementAgentId:h.value,idempotencyKey:P(),responsibility:t||i.assignment.responsibility,workKinds:N(v.value),capabilities:i.assignment.capabilities??[],reason:e}:{personalSpaceId:i.agent.personalSpaceId,personalProjectId:i.assignment.personalProjectId,assignmentId:i.assignment.assignmentId,expectedRevision:i.assignment.revision??0,reason:e}),a(`changed`)}a(`close`)}catch(e){D.value=e instanceof Error?e.message:f(`projectAgents.assignmentDialog.saveFailed`)}finally{x.value=!1}}function N(e){return[...new Set(e.split(`
3
3
  `).map(e=>e.trim()).filter(Boolean))]}function P(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(t,n)=>(s(),p(ee,{open:e.open,class:`project-agent-assignment-dialog`,form:``,busy:x.value,error:D.value,title:S(f)(`projectAgents.assignmentDialog.${k.value?e.action:`assign`}Title`),onClose:n[7]||=e=>a(`close`),onSubmit:M},{footer:r(()=>[u(F,{variant:`ghost`,disabled:x.value,onClick:n[6]||=e=>a(`close`)},{default:r(()=>[w(b(S(f)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),u(F,{variant:`primary`,type:`submit`,busy:x.value,"busy-label":S(f)(`projectAgents.assignmentDialog.saving`)},{default:r(()=>[w(b(S(f)(`projectAgents.assignmentDialog.${k.value?`saveChange`:`saveAssign`}`)),1)]),_:1},8,[`busy`,`busy-label`])]),default:r(()=>[E(`div`,Ce,[k.value?(s(),l(`label`,we,[w(b(S(f)(`projectAgents.fields.project`))+` `,1),E(`input`,{value:i.assignment?i.assignment.personalProjectId:``,disabled:``},null,8,Te)])):(s(),p(R,{key:0,modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,field:``,"control-id":`project-agent-assignment-project`,options:A.value,label:S(f)(`projectAgents.fields.project`),placeholder:S(f)(`projectAgents.dialog.projectPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])),k.value&&e.action===`replace`?(s(),p(R,{key:2,modelValue:h.value,"onUpdate:modelValue":n[1]||=e=>h.value=e,field:``,"control-id":`project-agent-assignment-replacement`,options:j.value,label:S(f)(`projectAgents.assignmentDialog.replacement`),placeholder:S(f)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])):T(``,!0),k.value?T(``,!0):(s(),l(`label`,Ee,[w(b(S(f)(`projectAgents.fields.responsibility`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[2]||=e=>g.value=e,rows:`3`,maxlength:`4096`,disabled:x.value,required:``},null,8,De),[[m,g.value]])])),k.value?T(``,!0):(s(),l(`label`,Oe,[w(b(S(f)(`projectAgents.fields.scope`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>_.value=e,maxlength:`4096`,disabled:x.value},null,8,Y),[[m,_.value]])])),k.value?T(``,!0):(s(),l(`label`,ke,[w(b(S(f)(`projectAgents.assignmentDialog.workKinds`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[4]||=e=>v.value=e,rows:`3`,disabled:x.value,placeholder:S(f)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,Ae),[[m,v.value]])])),E(`label`,je,[w(b(S(f)(`projectAgents.fields.reason`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[5]||=e=>y.value=e,rows:`3`,maxlength:`2048`,disabled:x.value,placeholder:S(f)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Me),[[m,y.value]])])])]),_:1},8,[`open`,`busy`,`error`,`title`]))}}),[[`__scopeId`,`data-v-0c51a000`]]),X={class:`executor-routing-fields`},Pe={class:`ui-field`},Fe=[`disabled`],Ie={class:`ui-field`},Le=[`disabled`],Re={class:`ui-field`},ze=[`disabled`],Be={class:`ui-field`},Ve=[`disabled`],He={class:`ui-field executor-routing-wide`},Ue=[`disabled`],We={class:`ui-check executor-routing-wide`},Ge=[`disabled`],Ke={class:`ui-meta executor-routing-wide`},Z={class:`ui-field`},qe=[`disabled`],Je={key:1,class:`ui-field`},Ye=[`disabled`],Xe={class:`ui-field`},Ze=[`disabled`],Qe={class:`ui-field executor-routing-wide`},$e=[`placeholder`,`disabled`],et={class:`ui-field executor-routing-wide`},tt=[`disabled`],nt={class:`ui-field executor-routing-wide`},rt=[`disabled`],Q={class:`ui-meta executor-routing-wide`},it=P(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 i=e,a=n,o=c(``),g=c(``),_=c(`external`),y=c(``),x=c(100),D=c(!1),O=c(`space`),k=c(``),A=c(``),M=c(``),N=c(``),P=c(``),I=c(``),L=c(!1),z=c(``),te=C(()=>!!i.executor),ne=C(()=>i.mode===`executor`?te.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),re=C(()=>i.mode===`executor`?f(`projectAgents.routing.editor.savingExecutor`):f(`projectAgents.routing.editor.savingRule`)),B=[`space`,`project`,`task`].map(e=>({value:e,label:e})),ie=C(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));t(()=>[i.open,i.mode,i.executor,i.rule],([e])=>{if(!e)return;let t=i.executor,n=i.rule;o.value=t?.executorId??``,g.value=t?.displayName??t?.label??``,_.value=t?.executorKind??`external`,y.value=t?.capabilities?.join(`
4
4
  `)??``,x.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,E as t,I as ee,M as n,N as te,P as r,Q as i,S as a,U as ne,a as o,f as re,g as s,h as c,it as l,j as u,m as d,ot as f,rt as p,v as m,w as h,x as g,y as _,z as v}from"./i18n-oJFlt8hW.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";var b={class:`project-scope-heading`},x=[`id`],ie={key:0,class:`project-scope-count`,role:`status`},S=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],C={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},w=[`id`],ae={key:1,class:`project-scope-multiple`},oe=[`id`,`aria-labelledby`],se=[`placeholder`,`aria-label`,`disabled`],ce={class:`project-scope-bulk`},T={class:`project-scope-option project-scope-all`},E=[`checked`,`indeterminate`,`disabled`],D=[`disabled`],O=[`disabled`],k={class:`project-scope-list`},A=[`value`,`checked`,`disabled`,`onChange`],j={key:0,class:`project-scope-project-id`},M={key:0,class:`project-scope-empty`},N={key:0,class:`project-scope-footer`},P={role:`status`},F={key:1,class:`project-scope-hint`},I={key:2,class:`project-scope-hint`},L=y(t({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean},allLabel:{},showCount:{type:Boolean},resettable:{type:Boolean}},emits:[`update:modelValue`,`reset`],setup(t,{emit:y}){let L=t,R=y,z=i(null),B=i(null),V=i(null),H=i(!1),U=i(``),W=`employee-projects-${v().replace(/[^a-zA-Z0-9_-]/g,``)}`,G=m(()=>new Set(L.modelValue)),K=m(()=>L.projects.filter(e=>G.value.has(e.id)).length),q=m(()=>L.projects.length>0&&K.value===L.projects.length),le=m(()=>L.label??o(`employees.scope.label`)),J=m(()=>{let e=new Map;for(let t of L.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),ue=m(()=>{let e=L.projects.find(e=>G.value.has(e.id));return e?`${e.name}${J.value.has(e.name)?` · ${e.id}`:``}`:``}),de=m(()=>L.showCount?o(`employees.scope.count`,{selected:K.value,total:L.projects.length}):q.value?L.allLabel??o(`employees.scope.allSummary`,{count:K.value}):K.value===1?ue.value:K.value?o(`employees.scope.selected`,{count:K.value}):L.emptyLabel??o(`employees.unassigned`)),Y=m(()=>{let e=U.value.trim().toLocaleLowerCase();return L.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});e(()=>L.disabled,e=>{e&&X()}),te(()=>document.addEventListener(`pointerdown`,Z)),n(()=>document.removeEventListener(`pointerdown`,Z));async function fe(){if(!L.disabled){if(H.value){X();return}U.value=``,H.value=!0,await u(),V.value?.focus()}}function X(e=!1){H.value=!1,e&&u(()=>B.value?.focus())}function Z(e){H.value&&!z.value?.contains(e.target)&&X()}function Q(e){e.relatedTarget&&!z.value?.contains(e.relatedTarget)&&X()}function pe(e){H.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),X(!0))}function $(e){L.disabled||R(`update:modelValue`,e)}function me(){$(q.value?[]:L.projects.map(e=>e.id))}function he(){$(L.projects.filter(e=>!G.value.has(e.id)).map(e=>e.id))}function ge(e){let t=new Set(L.modelValue);t.has(e)?t.delete(e):t.add(e),$(L.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,n)=>(r(),a(`div`,{ref_key:`root`,ref:z,class:l([`project-scope-picker`,{"is-inline":t.inline,"is-compact":t.compact,"has-count":t.showCount}]),onFocusout:Q,onKeydown:pe},[_(`div`,b,[_(`span`,{id:`${W}-label`,class:`project-scope-label`},f(le.value),9,x),t.inline?(r(),a(`span`,ie,f(p(o)(`employees.scope.count`,{selected:K.value,total:t.projects.length})),1)):g(``,!0)]),t.inline?g(``,!0):(r(),a(`button`,{key:0,ref_key:`trigger`,ref:B,type:`button`,class:`project-scope-trigger`,disabled:t.disabled,"aria-expanded":H.value,"aria-controls":`${W}-panel`,"aria-labelledby":`${W}-label ${W}-value`,onClick:fe},[t.compact?(r(),a(`svg`,C,[...n[4]||=[_(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):g(``,!0),_(`span`,{id:`${W}-value`,class:`project-scope-value`},f(de.value),9,w),t.compact&&!t.showCount?(r(),a(`small`,ae,f(p(o)(`employees.scope.multiple`)),1)):g(``,!0),n[5]||=_(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[_(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,S)),t.inline||H.value?(r(),a(`div`,{key:1,id:`${W}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${W}-label`},[ne(_(`input`,{ref_key:`search`,ref:V,"onUpdate:modelValue":n[0]||=e=>U.value=e,type:`search`,class:`project-scope-search`,placeholder:p(o)(`employees.scope.search`),"aria-label":p(o)(`employees.scope.search`),disabled:t.disabled,onKeydown:n[1]||=d(c(()=>{},[`prevent`]),[`enter`])},null,40,se),[[re,U.value]]),_(`div`,ce,[_(`label`,T,[_(`input`,{type:`checkbox`,checked:q.value,indeterminate:K.value>0&&!q.value,disabled:t.disabled||!t.projects.length,onChange:me},null,40,E),_(`span`,null,[h(f(t.allLabel??p(o)(`employees.scope.all`))+` `,1),_(`small`,null,f(t.projects.length),1)])]),_(`button`,{type:`button`,disabled:t.disabled||!t.projects.length,onClick:he},f(p(o)(`employees.scope.invert`)),9,D),t.resettable?(r(),a(`button`,{key:0,class:`project-scope-reset`,type:`button`,disabled:t.disabled,onClick:n[2]||=e=>R(`reset`)},f(p(o)(`employees.scope.reset`)),9,O)):g(``,!0)]),_(`div`,k,[(r(!0),a(s,null,ee(Y.value,e=>(r(),a(`label`,{key:e.id,class:l([`project-scope-option`,{"is-selected":G.value.has(e.id)}])},[_(`input`,{type:`checkbox`,value:e.id,checked:G.value.has(e.id),disabled:t.disabled,onChange:t=>ge(e.id)},null,40,A),_(`span`,null,[h(f(e.name),1),J.value.has(e.name)?(r(),a(`small`,j,f(e.id),1)):g(``,!0)])],2))),128)),Y.value.length?g(``,!0):(r(),a(`p`,M,f(p(o)(t.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),t.inline?g(``,!0):(r(),a(`div`,N,[_(`span`,P,f(p(o)(`employees.scope.count`,{selected:K.value,total:t.projects.length})),1),_(`button`,{type:`button`,onClick:n[3]||=e=>X(!0)},f(p(o)(`employees.scope.done`)),1)])),t.compact&&t.hint?(r(),a(`p`,F,f(t.hint),1)):g(``,!0)],8,oe)):g(``,!0),!t.compact&&t.hint!==``?(r(),a(`p`,I,f(t.hint??p(o)(`employees.scope.snapshotHint`)),1)):g(``,!0)],34))}}),[[`__scopeId`,`data-v-ba5341fd`]]);export{L as t};
1
+ import{B as e,E as t,I as ee,M as n,N as te,P as r,Q as i,S as a,U as ne,a as o,f as re,g as s,h as c,it as l,j as u,m as d,ot as f,rt as p,v as m,w as h,x as g,y as _,z as v}from"./i18n-B4Fp9Oa5.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";var b={class:`project-scope-heading`},x=[`id`],ie={key:0,class:`project-scope-count`,role:`status`},S=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],C={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},w=[`id`],ae={key:1,class:`project-scope-multiple`},oe=[`id`,`aria-labelledby`],se=[`placeholder`,`aria-label`,`disabled`],ce={class:`project-scope-bulk`},T={class:`project-scope-option project-scope-all`},E=[`checked`,`indeterminate`,`disabled`],D=[`disabled`],O=[`disabled`],k={class:`project-scope-list`},A=[`value`,`checked`,`disabled`,`onChange`],j={key:0,class:`project-scope-project-id`},M={key:0,class:`project-scope-empty`},N={key:0,class:`project-scope-footer`},P={role:`status`},F={key:1,class:`project-scope-hint`},I={key:2,class:`project-scope-hint`},L=y(t({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean},allLabel:{},showCount:{type:Boolean},resettable:{type:Boolean}},emits:[`update:modelValue`,`reset`],setup(t,{emit:y}){let L=t,R=y,z=i(null),B=i(null),V=i(null),H=i(!1),U=i(``),W=`employee-projects-${v().replace(/[^a-zA-Z0-9_-]/g,``)}`,G=m(()=>new Set(L.modelValue)),K=m(()=>L.projects.filter(e=>G.value.has(e.id)).length),q=m(()=>L.projects.length>0&&K.value===L.projects.length),le=m(()=>L.label??o(`employees.scope.label`)),J=m(()=>{let e=new Map;for(let t of L.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),ue=m(()=>{let e=L.projects.find(e=>G.value.has(e.id));return e?`${e.name}${J.value.has(e.name)?` · ${e.id}`:``}`:``}),de=m(()=>L.showCount?o(`employees.scope.count`,{selected:K.value,total:L.projects.length}):q.value?L.allLabel??o(`employees.scope.allSummary`,{count:K.value}):K.value===1?ue.value:K.value?o(`employees.scope.selected`,{count:K.value}):L.emptyLabel??o(`employees.unassigned`)),Y=m(()=>{let e=U.value.trim().toLocaleLowerCase();return L.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});e(()=>L.disabled,e=>{e&&X()}),te(()=>document.addEventListener(`pointerdown`,Z)),n(()=>document.removeEventListener(`pointerdown`,Z));async function fe(){if(!L.disabled){if(H.value){X();return}U.value=``,H.value=!0,await u(),V.value?.focus()}}function X(e=!1){H.value=!1,e&&u(()=>B.value?.focus())}function Z(e){H.value&&!z.value?.contains(e.target)&&X()}function Q(e){e.relatedTarget&&!z.value?.contains(e.relatedTarget)&&X()}function pe(e){H.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),X(!0))}function $(e){L.disabled||R(`update:modelValue`,e)}function me(){$(q.value?[]:L.projects.map(e=>e.id))}function he(){$(L.projects.filter(e=>!G.value.has(e.id)).map(e=>e.id))}function ge(e){let t=new Set(L.modelValue);t.has(e)?t.delete(e):t.add(e),$(L.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,n)=>(r(),a(`div`,{ref_key:`root`,ref:z,class:l([`project-scope-picker`,{"is-inline":t.inline,"is-compact":t.compact,"has-count":t.showCount}]),onFocusout:Q,onKeydown:pe},[_(`div`,b,[_(`span`,{id:`${W}-label`,class:`project-scope-label`},f(le.value),9,x),t.inline?(r(),a(`span`,ie,f(p(o)(`employees.scope.count`,{selected:K.value,total:t.projects.length})),1)):g(``,!0)]),t.inline?g(``,!0):(r(),a(`button`,{key:0,ref_key:`trigger`,ref:B,type:`button`,class:`project-scope-trigger`,disabled:t.disabled,"aria-expanded":H.value,"aria-controls":`${W}-panel`,"aria-labelledby":`${W}-label ${W}-value`,onClick:fe},[t.compact?(r(),a(`svg`,C,[...n[4]||=[_(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):g(``,!0),_(`span`,{id:`${W}-value`,class:`project-scope-value`},f(de.value),9,w),t.compact&&!t.showCount?(r(),a(`small`,ae,f(p(o)(`employees.scope.multiple`)),1)):g(``,!0),n[5]||=_(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[_(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,S)),t.inline||H.value?(r(),a(`div`,{key:1,id:`${W}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${W}-label`},[ne(_(`input`,{ref_key:`search`,ref:V,"onUpdate:modelValue":n[0]||=e=>U.value=e,type:`search`,class:`project-scope-search`,placeholder:p(o)(`employees.scope.search`),"aria-label":p(o)(`employees.scope.search`),disabled:t.disabled,onKeydown:n[1]||=d(c(()=>{},[`prevent`]),[`enter`])},null,40,se),[[re,U.value]]),_(`div`,ce,[_(`label`,T,[_(`input`,{type:`checkbox`,checked:q.value,indeterminate:K.value>0&&!q.value,disabled:t.disabled||!t.projects.length,onChange:me},null,40,E),_(`span`,null,[h(f(t.allLabel??p(o)(`employees.scope.all`))+` `,1),_(`small`,null,f(t.projects.length),1)])]),_(`button`,{type:`button`,disabled:t.disabled||!t.projects.length,onClick:he},f(p(o)(`employees.scope.invert`)),9,D),t.resettable?(r(),a(`button`,{key:0,class:`project-scope-reset`,type:`button`,disabled:t.disabled,onClick:n[2]||=e=>R(`reset`)},f(p(o)(`employees.scope.reset`)),9,O)):g(``,!0)]),_(`div`,k,[(r(!0),a(s,null,ee(Y.value,e=>(r(),a(`label`,{key:e.id,class:l([`project-scope-option`,{"is-selected":G.value.has(e.id)}])},[_(`input`,{type:`checkbox`,value:e.id,checked:G.value.has(e.id),disabled:t.disabled,onChange:t=>ge(e.id)},null,40,A),_(`span`,null,[h(f(e.name),1),J.value.has(e.name)?(r(),a(`small`,j,f(e.id),1)):g(``,!0)])],2))),128)),Y.value.length?g(``,!0):(r(),a(`p`,M,f(p(o)(t.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),t.inline?g(``,!0):(r(),a(`div`,N,[_(`span`,P,f(p(o)(`employees.scope.count`,{selected:K.value,total:t.projects.length})),1),_(`button`,{type:`button`,onClick:n[3]||=e=>X(!0)},f(p(o)(`employees.scope.done`)),1)])),t.compact&&t.hint?(r(),a(`p`,F,f(t.hint),1)):g(``,!0)],8,oe)):g(``,!0),!t.compact&&t.hint!==``?(r(),a(`p`,I,f(t.hint??p(o)(`employees.scope.snapshotHint`)),1)):g(``,!0)],34))}}),[[`__scopeId`,`data-v-ba5341fd`]]);export{L as t};
@@ -1 +1 @@
1
- import{E as e,H as t,I as n,M as r,P as i,Q as a,S as o,T as s,U as ee,a as c,b as l,f as te,g as u,h as ne,it as re,n as ie,ot as d,rt as f,v as p,w as m,x as h,y as g}from"./i18n-oJFlt8hW.js";import{t as ae}from"./console-Cw7TzOSC.js";import{a as _,n as v,r as y,s as oe}from"./client-DnwnUBQV.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as x}from"./UiButton-x8hiHNRM.js";import{h as se}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as S}from"./UiDialog-mjletK0y.js";import{t as C}from"./UiSelect-K29jnV-1.js";import{t as ce}from"./paths-CDREouhi.js";import{r as w,t as T}from"./identity-DSGS4CZc.js";var le={class:`view`},ue={class:`space-heading public-space-heading`},de=[`aria-label`],fe={class:`project-grid`},pe={class:`project-card-heading`},me={class:`project-card-heading-actions`},he=[`onClick`],ge={class:`completion-badge`},_e={class:`project-purpose`},ve={class:`evidence-row`},ye={key:0,class:`muted`},be={class:`project-access`},xe={class:`muted`},Se={key:0,class:`project-release-meta`},Ce={class:`project-card-footer`},we=[`onClick`],Te=[`onClick`],Ee={key:0,class:`empty-state project-empty`},De={class:`project-section`},Oe={class:`section-toolbar compact-toolbar relation-section-toolbar`},ke=[`disabled`],Ae={key:0,class:`muted`},je={class:`compact-relation-preview`,"aria-live":`polite`},Me={key:0},Ne={key:1},Pe={class:`primary-action`,type:`submit`},Fe={class:`project-latest-release`},Ie={key:0},Le={key:1,class:`ui-muted`},Re={class:`project-detail-columns`},ze={key:1,class:`ui-muted`},Be={key:0,class:`ui-muted`},Ve={key:1,class:`ui-muted`},He={class:`public-project-dialog-note`},Ue={class:`ui-field`},We=[`disabled`],Ge={class:`public-project-dialog-note`},Ke=`fuli-workspace-v1`,E=b(e({__name:`PublicProjectsPage`,setup(e){let b=ae(),E=se(),D=a(null),O=a([]),k=a([]),A=a(!1),j=a(!1),M=a(``),N=a(``),P=a(`RELATED_TO`),F=a(null),I=a(``),L=a(!1),R=a(``),z=0,B=null,V=p(()=>b.state?.projects??[]),qe=p(()=>b.state?.providers?.workspaces??[]),H=p(()=>new Set((b.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),U=p(()=>V.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),W=p(()=>U.value.filter(({providerUrl:e})=>J(e))),Je=p(()=>W.value.map(e=>({value:e.id,label:e.name,meta:`#${T(e.id,26)}`,search:w(e.id)}))),Ye=p(()=>{let e=V.value.find(({id:e})=>e===M.value);return!e||!J(e.providerUrl)?[]:V.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&J(n))}),Xe=p(()=>Ye.value.map(e=>({value:e.id,label:e.name,meta:`#${T(e.id,26)}`,search:w(e.id)}))),Ze=p(()=>V.value.find(({id:e})=>e===M.value)??null),Qe=p(()=>V.value.find(({id:e})=>e===N.value)??null),$e=p(()=>K.value.find(({value:e})=>e===P.value)?.label??c(`pages.publicProjects.relationLabels.relatedTo`)),et=p(()=>D.value?J(D.value.providerUrl):!1),G=p(()=>!!(F.value&&I.value===F.value.name)),K=p(()=>[{value:`PART_OF`,label:c(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:c(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:c(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:c(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:c(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:c(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:c(`pages.publicProjects.relationLabels.relatedTo`)}]);function q(e){return`${e.providerUrl}::${e.id}`}function J(e){return qe.value.find(({providerUrl:t})=>t===e)?.protocol!==Ke}function Y(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||c(`pages.publicProjects.fallbackDescription`)}async function X(e){try{if(H.value.has(q(e))){let t=new URLSearchParams({personalSpaceId:b.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await v(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),b.notify(c(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:b.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),b.notify(c(`pages.publicProjects.subscribed`,{name:e.name}));await b.refresh()}catch(e){b.reportError(e)}}async function tt(e){if(Q(),D.value=e,O.value=[],k.value=[],!J(e.providerUrl))return;let t=++z,n=new AbortController;B=n,A.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([y(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),y(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==z||n.signal.aborted)return;O.value=i.releases??[],k.value=a.relations??[]}catch(e){if(t!==z||n.signal.aborted)return;b.reportError(e)}finally{if(t!==z||n.signal.aborted)return;A.value=!1,B===n&&(B=null)}}async function nt(e){Q(),await E.push(ce(`public`,e.id,`graph`))}function Z(){z+=1,B?.abort(),B=null,A.value=!1}function Q(){Z(),D.value=null,O.value=[],k.value=[]}function rt(e){J(e.providerUrl)&&(F.value=e,I.value=``,R.value=``)}function it(){L.value||(F.value=null,I.value=``,R.value=``)}async function at(){let e=F.value;if(!e||!G.value){R.value=c(`pages.publicProjects.deleteNameRequired`);return}if(!J(e.providerUrl)){R.value=c(`pages.publicProjects.providerOperationsUnavailable`);return}L.value=!0,R.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await v(`/api/projects/${encodeURIComponent(e.id)}?${t}`),D.value=null,F.value=null,b.notify(c(`pages.publicProjects.deleted`,{name:e.name})),await b.refresh()}catch(e){R.value=e instanceof Error?e.message:c(`pages.publicProjects.deleteFailed`),b.reportError(e)}finally{L.value=!1}}async function ot(){let e=V.value.find(({id:e})=>e===M.value),t=V.value.find(({id:e})=>e===N.value);if(!e||!t){b.reportError(Error(c(`pages.publicProjects.chooseRelationProjects`)));return}if(!J(e.providerUrl)){b.reportError(Error(c(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:P.value,note:null}),j.value=!1,M.value=``,N.value=``,b.notify(P.value===`PART_OF`?c(`pages.publicProjects.parentRelationSubmitted`):c(`pages.publicProjects.relationCreated`))}catch(e){b.reportError(e)}}r(Z);function $(e){return e?new Date(e).toLocaleString(ie()):c(`pages.publicProjects.timeNotRecorded`)}return(e,r)=>(i(),o(`section`,le,[g(`div`,ue,[r[7]||=g(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-public-project`})],-1),g(`div`,null,[g(`p`,null,d(f(c)(`pages.publicProjects.intro`)),1)]),g(`div`,{class:`public-space-stats`,"aria-label":f(c)(`pages.publicProjects.overviewAria`)},[g(`span`,null,[g(`strong`,null,d(V.value.length),1),m(d(f(c)(`pages.publicProjects.discoverable`)),1)]),g(`span`,null,[g(`strong`,null,d(f(b).state?.subscriptions.length??0),1),m(d(f(c)(`pages.publicProjects.subscribedCount`)),1)])],8,de)]),g(`div`,fe,[(i(!0),o(u,null,n(V.value,e=>(i(),o(`article`,{key:q(e),class:`project-card`},[g(`div`,pe,[g(`div`,null,[g(`h4`,null,d(e.name),1)]),g(`div`,me,[e.can_manage&&J(e.providerUrl)?(i(),o(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>rt(e)},d(f(c)(`pages.publicProjects.manage`)),9,he)):h(``,!0),g(`div`,ge,[g(`strong`,null,d(e.profile?.assessment?.score??`—`),1),g(`span`,null,d(e.profile?.assessment?f(c)(`pages.publicProjects.coverage`):f(c)(`pages.publicProjects.noSummary`)),1)])])]),g(`p`,_e,d(Y(e)),1),g(`div`,ve,[(i(!0),o(u,null,n(e.profile?.sources??[],(e,t)=>(i(),o(`span`,{key:t,class:`status-chip`},d(e.kind??f(c)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?h(``,!0):(i(),o(`span`,ye,d(f(c)(`pages.publicProjects.noSources`)),1))]),g(`div`,be,[g(`span`,{class:re([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),g(`span`,xe,d(e.isOwner?f(c)(`pages.publicProjects.publishedByYou`):f(c)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&J(e.providerUrl)?(i(),o(`span`,Se,[g(`strong`,null,d(e.current_release.version),1),g(`span`,null,d($(e.current_release.published_at)),1)])):h(``,!0)]),g(`footer`,Ce,[g(`button`,{class:`secondary-action`,type:`button`,onClick:t=>X(e)},d(H.value.has(q(e))?f(c)(`pages.publicProjects.unsubscribe`):f(c)(`pages.publicProjects.subscribe`)),9,we),g(`button`,{class:`primary-action`,type:`button`,onClick:t=>tt(e)},d(f(c)(`common.actions.viewDetails`)),9,Te)])]))),128)),V.value.length?h(``,!0):(i(),o(`div`,Ee,d(f(c)(`pages.publicProjects.noProjects`)),1))]),g(`section`,De,[g(`div`,Oe,[g(`div`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.relationsTitle`)),1)]),g(`button`,{class:`primary-action`,type:`button`,disabled:!W.value.length,onClick:r[0]||=e=>j.value=!j.value},d(f(c)(`pages.publicProjects.addRelation`)),9,ke)]),U.value.length&&!W.value.length?(i(),o(`p`,Ae,d(f(c)(`pages.publicProjects.providerOperationsUnavailable`)),1)):h(``,!0),j.value?(i(),o(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(ot,[`prevent`])},[g(`label`,null,[m(d(f(c)(`pages.publicProjects.sourceProject`))+` `,1),s(C,{modelValue:M.value,"onUpdate:modelValue":r[1]||=e=>M.value=e,options:Je.value,label:f(c)(`pages.publicProjects.sourceProjectLabel`),placeholder:f(c)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:r[2]||=e=>N.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),g(`label`,null,[m(d(f(c)(`pages.publicProjects.relation`))+` `,1),s(C,{modelValue:P.value,"onUpdate:modelValue":r[3]||=e=>P.value=e,options:K.value,label:f(c)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),g(`label`,null,[m(d(f(c)(`pages.publicProjects.targetProject`))+` `,1),s(C,{modelValue:N.value,"onUpdate:modelValue":r[4]||=e=>N.value=e,options:Xe.value,label:f(c)(`pages.publicProjects.targetProjectLabel`),placeholder:f(c)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),g(`div`,je,[g(`span`,null,d(f(c)(`pages.publicProjects.preview`)),1),g(`strong`,null,d(Ze.value?.name||f(c)(`pages.publicProjects.sourceProject`))+` `+d($e.value)+` `+d(Qe.value?.name||f(c)(`pages.publicProjects.targetProject`)),1),P.value===`PART_OF`?(i(),o(`p`,Me,d(f(c)(`pages.publicProjects.parentConfirmation`)),1)):(i(),o(`p`,Ne,d(f(c)(`pages.publicProjects.relationBoundary`)),1))]),g(`button`,Pe,d(f(c)(`pages.publicProjects.addRelation`)),1)],32)):h(``,!0)]),D.value?(i(),l(S,{key:0,open:``,class:`public-project-details`,size:`lg`,title:D.value.name,description:Y(D.value),onClose:Q},{footer:t(()=>[g(`span`,He,d(f(c)(`pages.publicProjects.contentManagementSeparated`)),1),s(x,{variant:`primary`,onClick:r[5]||=e=>nt(D.value)},{default:t(()=>[m(d(f(c)(`pages.publicProjects.viewGraph`)),1)]),_:1})]),default:t(()=>[et.value?(i(),o(u,{key:0},[g(`section`,Fe,[g(`h3`,null,d(f(c)(`pages.publicProjects.latestRelease`)),1),D.value.current_release?(i(),o(`p`,Ie,[g(`strong`,null,d(D.value.current_release.version),1),m(` · `+d($(D.value.current_release.published_at)),1)])):(i(),o(`p`,Le,d(f(c)(`pages.publicProjects.noRelease`)),1))]),g(`div`,Re,[g(`section`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.releaseHistory`)),1),A.value?(i(),l(oe,{key:0,variant:`compact`,label:f(c)(`pages.publicProjects.loading`)},null,8,[`label`])):h(``,!0),(i(!0),o(u,null,n(O.value,e=>(i(),o(`article`,{key:e.version,class:`project-release-item`},[g(`strong`,null,d(e.version),1),g(`p`,null,d(e.update_summary),1),g(`small`,null,d($(e.published_at)),1)]))),128)),!A.value&&!O.value.length?(i(),o(`p`,ze,d(f(c)(`pages.publicProjects.noReleaseHistory`)),1)):h(``,!0)]),g(`section`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.relationsTitle`)),1),(i(!0),o(u,null,n(k.value,e=>(i(),o(`article`,{key:e.id,class:`project-detail-relation`},[g(`strong`,null,d(e.relation_type),1),g(`small`,null,d(e.status??`active`),1)]))),128)),!A.value&&!k.value.length?(i(),o(`p`,Be,d(f(c)(`pages.publicProjects.noRelations`)),1)):h(``,!0)])])],64)):(i(),o(`p`,Ve,d(f(c)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1))]),_:1},8,[`title`,`description`])):h(``,!0),F.value?(i(),l(S,{key:1,open:``,class:`public-project-deletion`,size:`sm`,busy:L.value,error:R.value,title:f(c)(`pages.publicProjects.deleteTitle`),description:f(c)(`pages.publicProjects.deleteCopy`),onClose:it},{footer:t(()=>[g(`span`,Ge,d(f(c)(`pages.publicProjects.deleteWarning`)),1),s(x,{variant:`danger`,disabled:!G.value,busy:L.value,"busy-label":f(c)(`pages.publicProjects.deleting`),onClick:at},{default:t(()=>[m(d(f(c)(`pages.publicProjects.deletePermanently`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])]),default:t(()=>[g(`label`,Ue,[g(`span`,null,[m(d(f(c)(`pages.publicProjects.enterFullName`))+` `,1),g(`strong`,null,d(F.value.name),1)]),ee(g(`input`,{"onUpdate:modelValue":r[6]||=e=>I.value=e,autocomplete:`off`,disabled:L.value},null,8,We),[[te,I.value]])])]),_:1},8,[`busy`,`error`,`title`,`description`])):h(``,!0)]))}}),[[`__scopeId`,`data-v-df9baf3c`]]);export{E as default};
1
+ import{E as e,H as t,I as n,M as r,P as i,Q as a,S as o,T as s,U as ee,a as c,b as l,f as te,g as u,h as ne,it as re,n as ie,ot as d,rt as f,v as p,w as m,x as h,y as g}from"./i18n-B4Fp9Oa5.js";import{t as ae}from"./console-C2Lfifq-.js";import{a as _,n as v,r as y,s as oe}from"./client-DodUFQDp.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as x}from"./UiButton-neeym_gA.js";import{h as se}from"./useApi-CROJJdhE-IuC5qwny.js";import{t as S}from"./UiDialog-BFVoqFnc.js";import{t as C}from"./UiSelect-DDyct4mf.js";import{t as ce}from"./paths-CDREouhi.js";import{r as w,t as T}from"./identity-DG_za-J7.js";var le={class:`view`},ue={class:`space-heading public-space-heading`},de=[`aria-label`],fe={class:`project-grid`},pe={class:`project-card-heading`},me={class:`project-card-heading-actions`},he=[`onClick`],ge={class:`completion-badge`},_e={class:`project-purpose`},ve={class:`evidence-row`},ye={key:0,class:`muted`},be={class:`project-access`},xe={class:`muted`},Se={key:0,class:`project-release-meta`},Ce={class:`project-card-footer`},we=[`onClick`],Te=[`onClick`],Ee={key:0,class:`empty-state project-empty`},De={class:`project-section`},Oe={class:`section-toolbar compact-toolbar relation-section-toolbar`},ke=[`disabled`],Ae={key:0,class:`muted`},je={class:`compact-relation-preview`,"aria-live":`polite`},Me={key:0},Ne={key:1},Pe={class:`primary-action`,type:`submit`},Fe={class:`project-latest-release`},Ie={key:0},Le={key:1,class:`ui-muted`},Re={class:`project-detail-columns`},ze={key:1,class:`ui-muted`},Be={key:0,class:`ui-muted`},Ve={key:1,class:`ui-muted`},He={class:`public-project-dialog-note`},Ue={class:`ui-field`},We=[`disabled`],Ge={class:`public-project-dialog-note`},Ke=`fuli-workspace-v1`,E=b(e({__name:`PublicProjectsPage`,setup(e){let b=ae(),E=se(),D=a(null),O=a([]),k=a([]),A=a(!1),j=a(!1),M=a(``),N=a(``),P=a(`RELATED_TO`),F=a(null),I=a(``),L=a(!1),R=a(``),z=0,B=null,V=p(()=>b.state?.projects??[]),qe=p(()=>b.state?.providers?.workspaces??[]),H=p(()=>new Set((b.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),U=p(()=>V.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),W=p(()=>U.value.filter(({providerUrl:e})=>J(e))),Je=p(()=>W.value.map(e=>({value:e.id,label:e.name,meta:`#${T(e.id,26)}`,search:w(e.id)}))),Ye=p(()=>{let e=V.value.find(({id:e})=>e===M.value);return!e||!J(e.providerUrl)?[]:V.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&J(n))}),Xe=p(()=>Ye.value.map(e=>({value:e.id,label:e.name,meta:`#${T(e.id,26)}`,search:w(e.id)}))),Ze=p(()=>V.value.find(({id:e})=>e===M.value)??null),Qe=p(()=>V.value.find(({id:e})=>e===N.value)??null),$e=p(()=>K.value.find(({value:e})=>e===P.value)?.label??c(`pages.publicProjects.relationLabels.relatedTo`)),et=p(()=>D.value?J(D.value.providerUrl):!1),G=p(()=>!!(F.value&&I.value===F.value.name)),K=p(()=>[{value:`PART_OF`,label:c(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:c(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:c(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:c(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:c(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:c(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:c(`pages.publicProjects.relationLabels.relatedTo`)}]);function q(e){return`${e.providerUrl}::${e.id}`}function J(e){return qe.value.find(({providerUrl:t})=>t===e)?.protocol!==Ke}function Y(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||c(`pages.publicProjects.fallbackDescription`)}async function X(e){try{if(H.value.has(q(e))){let t=new URLSearchParams({personalSpaceId:b.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await v(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),b.notify(c(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:b.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),b.notify(c(`pages.publicProjects.subscribed`,{name:e.name}));await b.refresh()}catch(e){b.reportError(e)}}async function tt(e){if(Q(),D.value=e,O.value=[],k.value=[],!J(e.providerUrl))return;let t=++z,n=new AbortController;B=n,A.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([y(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),y(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==z||n.signal.aborted)return;O.value=i.releases??[],k.value=a.relations??[]}catch(e){if(t!==z||n.signal.aborted)return;b.reportError(e)}finally{if(t!==z||n.signal.aborted)return;A.value=!1,B===n&&(B=null)}}async function nt(e){Q(),await E.push(ce(`public`,e.id,`graph`))}function Z(){z+=1,B?.abort(),B=null,A.value=!1}function Q(){Z(),D.value=null,O.value=[],k.value=[]}function rt(e){J(e.providerUrl)&&(F.value=e,I.value=``,R.value=``)}function it(){L.value||(F.value=null,I.value=``,R.value=``)}async function at(){let e=F.value;if(!e||!G.value){R.value=c(`pages.publicProjects.deleteNameRequired`);return}if(!J(e.providerUrl)){R.value=c(`pages.publicProjects.providerOperationsUnavailable`);return}L.value=!0,R.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await v(`/api/projects/${encodeURIComponent(e.id)}?${t}`),D.value=null,F.value=null,b.notify(c(`pages.publicProjects.deleted`,{name:e.name})),await b.refresh()}catch(e){R.value=e instanceof Error?e.message:c(`pages.publicProjects.deleteFailed`),b.reportError(e)}finally{L.value=!1}}async function ot(){let e=V.value.find(({id:e})=>e===M.value),t=V.value.find(({id:e})=>e===N.value);if(!e||!t){b.reportError(Error(c(`pages.publicProjects.chooseRelationProjects`)));return}if(!J(e.providerUrl)){b.reportError(Error(c(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:P.value,note:null}),j.value=!1,M.value=``,N.value=``,b.notify(P.value===`PART_OF`?c(`pages.publicProjects.parentRelationSubmitted`):c(`pages.publicProjects.relationCreated`))}catch(e){b.reportError(e)}}r(Z);function $(e){return e?new Date(e).toLocaleString(ie()):c(`pages.publicProjects.timeNotRecorded`)}return(e,r)=>(i(),o(`section`,le,[g(`div`,ue,[r[7]||=g(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-public-project`})],-1),g(`div`,null,[g(`p`,null,d(f(c)(`pages.publicProjects.intro`)),1)]),g(`div`,{class:`public-space-stats`,"aria-label":f(c)(`pages.publicProjects.overviewAria`)},[g(`span`,null,[g(`strong`,null,d(V.value.length),1),m(d(f(c)(`pages.publicProjects.discoverable`)),1)]),g(`span`,null,[g(`strong`,null,d(f(b).state?.subscriptions.length??0),1),m(d(f(c)(`pages.publicProjects.subscribedCount`)),1)])],8,de)]),g(`div`,fe,[(i(!0),o(u,null,n(V.value,e=>(i(),o(`article`,{key:q(e),class:`project-card`},[g(`div`,pe,[g(`div`,null,[g(`h4`,null,d(e.name),1)]),g(`div`,me,[e.can_manage&&J(e.providerUrl)?(i(),o(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>rt(e)},d(f(c)(`pages.publicProjects.manage`)),9,he)):h(``,!0),g(`div`,ge,[g(`strong`,null,d(e.profile?.assessment?.score??`—`),1),g(`span`,null,d(e.profile?.assessment?f(c)(`pages.publicProjects.coverage`):f(c)(`pages.publicProjects.noSummary`)),1)])])]),g(`p`,_e,d(Y(e)),1),g(`div`,ve,[(i(!0),o(u,null,n(e.profile?.sources??[],(e,t)=>(i(),o(`span`,{key:t,class:`status-chip`},d(e.kind??f(c)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?h(``,!0):(i(),o(`span`,ye,d(f(c)(`pages.publicProjects.noSources`)),1))]),g(`div`,be,[g(`span`,{class:re([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),g(`span`,xe,d(e.isOwner?f(c)(`pages.publicProjects.publishedByYou`):f(c)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&J(e.providerUrl)?(i(),o(`span`,Se,[g(`strong`,null,d(e.current_release.version),1),g(`span`,null,d($(e.current_release.published_at)),1)])):h(``,!0)]),g(`footer`,Ce,[g(`button`,{class:`secondary-action`,type:`button`,onClick:t=>X(e)},d(H.value.has(q(e))?f(c)(`pages.publicProjects.unsubscribe`):f(c)(`pages.publicProjects.subscribe`)),9,we),g(`button`,{class:`primary-action`,type:`button`,onClick:t=>tt(e)},d(f(c)(`common.actions.viewDetails`)),9,Te)])]))),128)),V.value.length?h(``,!0):(i(),o(`div`,Ee,d(f(c)(`pages.publicProjects.noProjects`)),1))]),g(`section`,De,[g(`div`,Oe,[g(`div`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.relationsTitle`)),1)]),g(`button`,{class:`primary-action`,type:`button`,disabled:!W.value.length,onClick:r[0]||=e=>j.value=!j.value},d(f(c)(`pages.publicProjects.addRelation`)),9,ke)]),U.value.length&&!W.value.length?(i(),o(`p`,Ae,d(f(c)(`pages.publicProjects.providerOperationsUnavailable`)),1)):h(``,!0),j.value?(i(),o(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(ot,[`prevent`])},[g(`label`,null,[m(d(f(c)(`pages.publicProjects.sourceProject`))+` `,1),s(C,{modelValue:M.value,"onUpdate:modelValue":r[1]||=e=>M.value=e,options:Je.value,label:f(c)(`pages.publicProjects.sourceProjectLabel`),placeholder:f(c)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:r[2]||=e=>N.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),g(`label`,null,[m(d(f(c)(`pages.publicProjects.relation`))+` `,1),s(C,{modelValue:P.value,"onUpdate:modelValue":r[3]||=e=>P.value=e,options:K.value,label:f(c)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),g(`label`,null,[m(d(f(c)(`pages.publicProjects.targetProject`))+` `,1),s(C,{modelValue:N.value,"onUpdate:modelValue":r[4]||=e=>N.value=e,options:Xe.value,label:f(c)(`pages.publicProjects.targetProjectLabel`),placeholder:f(c)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),g(`div`,je,[g(`span`,null,d(f(c)(`pages.publicProjects.preview`)),1),g(`strong`,null,d(Ze.value?.name||f(c)(`pages.publicProjects.sourceProject`))+` `+d($e.value)+` `+d(Qe.value?.name||f(c)(`pages.publicProjects.targetProject`)),1),P.value===`PART_OF`?(i(),o(`p`,Me,d(f(c)(`pages.publicProjects.parentConfirmation`)),1)):(i(),o(`p`,Ne,d(f(c)(`pages.publicProjects.relationBoundary`)),1))]),g(`button`,Pe,d(f(c)(`pages.publicProjects.addRelation`)),1)],32)):h(``,!0)]),D.value?(i(),l(S,{key:0,open:``,class:`public-project-details`,size:`lg`,title:D.value.name,description:Y(D.value),onClose:Q},{footer:t(()=>[g(`span`,He,d(f(c)(`pages.publicProjects.contentManagementSeparated`)),1),s(x,{variant:`primary`,onClick:r[5]||=e=>nt(D.value)},{default:t(()=>[m(d(f(c)(`pages.publicProjects.viewGraph`)),1)]),_:1})]),default:t(()=>[et.value?(i(),o(u,{key:0},[g(`section`,Fe,[g(`h3`,null,d(f(c)(`pages.publicProjects.latestRelease`)),1),D.value.current_release?(i(),o(`p`,Ie,[g(`strong`,null,d(D.value.current_release.version),1),m(` · `+d($(D.value.current_release.published_at)),1)])):(i(),o(`p`,Le,d(f(c)(`pages.publicProjects.noRelease`)),1))]),g(`div`,Re,[g(`section`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.releaseHistory`)),1),A.value?(i(),l(oe,{key:0,variant:`compact`,label:f(c)(`pages.publicProjects.loading`)},null,8,[`label`])):h(``,!0),(i(!0),o(u,null,n(O.value,e=>(i(),o(`article`,{key:e.version,class:`project-release-item`},[g(`strong`,null,d(e.version),1),g(`p`,null,d(e.update_summary),1),g(`small`,null,d($(e.published_at)),1)]))),128)),!A.value&&!O.value.length?(i(),o(`p`,ze,d(f(c)(`pages.publicProjects.noReleaseHistory`)),1)):h(``,!0)]),g(`section`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.relationsTitle`)),1),(i(!0),o(u,null,n(k.value,e=>(i(),o(`article`,{key:e.id,class:`project-detail-relation`},[g(`strong`,null,d(e.relation_type),1),g(`small`,null,d(e.status??`active`),1)]))),128)),!A.value&&!k.value.length?(i(),o(`p`,Be,d(f(c)(`pages.publicProjects.noRelations`)),1)):h(``,!0)])])],64)):(i(),o(`p`,Ve,d(f(c)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1))]),_:1},8,[`title`,`description`])):h(``,!0),F.value?(i(),l(S,{key:1,open:``,class:`public-project-deletion`,size:`sm`,busy:L.value,error:R.value,title:f(c)(`pages.publicProjects.deleteTitle`),description:f(c)(`pages.publicProjects.deleteCopy`),onClose:it},{footer:t(()=>[g(`span`,Ge,d(f(c)(`pages.publicProjects.deleteWarning`)),1),s(x,{variant:`danger`,disabled:!G.value,busy:L.value,"busy-label":f(c)(`pages.publicProjects.deleting`),onClick:at},{default:t(()=>[m(d(f(c)(`pages.publicProjects.deletePermanently`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])]),default:t(()=>[g(`label`,Ue,[g(`span`,null,[m(d(f(c)(`pages.publicProjects.enterFullName`))+` `,1),g(`strong`,null,d(F.value.name),1)]),ee(g(`input`,{"onUpdate:modelValue":r[6]||=e=>I.value=e,autocomplete:`off`,disabled:L.value},null,8,We),[[te,I.value]])])]),_:1},8,[`busy`,`error`,`title`,`description`])):h(``,!0)]))}}),[[`__scopeId`,`data-v-df9baf3c`]]);export{E as default};
@@ -1 +1 @@
1
- import{B as e,E as t,I as n,M as r,P as i,Q as a,S as o,T as ee,a as s,b as c,g as l,ot as u,rt as d,v as f,x as p,y as m}from"./i18n-oJFlt8hW.js";import{t as te}from"./console-Cw7TzOSC.js";import{a as h,r as g,s as _}from"./client-DnwnUBQV.js";import{t as ne}from"./UiSelect-K29jnV-1.js";import{r as re,t as ie}from"./identity-DSGS4CZc.js";import{u as v}from"./model-BJ-UF4cs.js";var ae={class:`view`},oe={class:`section-title`},se={class:`review-list`,"data-review-queue":`personal`},ce={key:1,class:`review-error`,role:`alert`},le=[`disabled`],ue={class:`review-stage`},de={class:`review-meta`},fe={class:`review-actions stacked-actions`},pe=[`disabled`,`onClick`],me=[`disabled`,`onClick`],he=[`disabled`,`onClick`],y={key:2,class:`empty-state`},ge={key:0,class:`project-section`},_e={class:`section-toolbar`},ve={class:`review-list`,"data-review-queue":`shared`},ye={key:1,class:`review-error`,role:`alert`},be=[`disabled`],xe={class:`review-stage`},b={class:`review-meta`},Se={class:`review-actions`},Ce=[`disabled`,`onClick`],we=[`disabled`,`onClick`],Te={key:2,class:`empty-state`},x=t({__name:`ReviewPage`,setup(t){let x=te(),S=a([]),C=a([]),w=a(``),T=a(!1),E=a(``),D=a(!1),O=a(``),k=a(new Set),A=a(new Set),j=0,M=null,N=0,P=null,F=f(()=>(x.state?.projects??[]).filter(e=>e.role===`maintainer`&&Oe(e))),Ee=f(()=>F.value.map(e=>({value:e.id,label:e.name,meta:`#`+ie(e.id,26),search:re(e.id)}))),I=f(()=>F.value.find(({id:e})=>e===w.value)??null),De=f(()=>{let e=I.value;return e?e.id+`\0`+e.providerUrl:``});function Oe(e){return L(x.state,e)}function L(e,t){if(e?.capabilities?.reviewProposals!==!0)return!1;let n=e.providers?.workspaces?.find(({providerUrl:e})=>e===t.providerUrl);if(!n||n.status!==`ready`)return!1;let r=n.capabilities;return!!(r&&typeof r==`object`&&r.reviewProposals===!0)}function R(e){return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)?.id??e.personalSpaces[0]?.id??``:``}function z(e,t){let n=(e?.projects??[]).find(n=>n.id===t&&n.role===`maintainer`&&L(e,n));return n?n.id+`\0`+n.providerUrl:``}function B(e){return e instanceof Error&&e.message?e.message:s(`common.errors.loadFailed`)}function V(e){return!!(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)}function H(e,t,n){let r=new Set(e.value);n?r.add(t):r.delete(t),e.value=r}function U(){j+=1,M?.abort(),M=null,S.value=[],E.value=``,T.value=!1}function W(){N+=1,P?.abort(),P=null,C.value=[],O.value=``,D.value=!1}function G(e,t){return t===j&&x.activePersonalSpace?.id===e}function K(e,t){let n=I.value;return t===N&&n?.id===e.id&&n.providerUrl===e.providerUrl}function q(e,t,n){return G(n,t)&&S.value.some(({id:t})=>t===e.id)}function J(e,t,n){return K(t,n)&&C.value.some(({id:t})=>t===e.id)}function Y(e,t){return e+`\0`+t}async function X(e=x.activePersonalSpace?.id){M?.abort();let t=++j,n=new AbortController;if(M=n,T.value=!0,E.value=``,!e){T.value=!1,M===n&&(M=null);return}try{let r=await g(`/api/personal-review?`+new URLSearchParams({personalSpaceId:e,status:`pending`}),{signal:n.signal});if(!G(e,t)||n.signal.aborted)return;S.value=r.drafts??[]}catch(r){if(!G(e,t)||n.signal.aborted||V(r))return;E.value=B(r)}finally{t===j&&M===n&&(T.value=!1,M=null)}}async function Z(){let e=I.value;if(!e)return;P?.abort();let t=++N,n=new AbortController;P=n,D.value=!0,O.value=``;try{let r=await g(`/api/review?`+new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`}),{signal:n.signal});if(!K(e,t)||n.signal.aborted)return;C.value=r.proposals??[]}catch(r){if(!K(e,t)||n.signal.aborted||V(r))return;O.value=B(r)}finally{t===N&&P===n&&(D.value=!1,P=null)}}async function Q(e,t){let n=x.activePersonalSpace?.id,r=j;if(!(!n||T.value||E.value||!q(e,r,n))&&!k.value.has(e.id)){H(k,e.id,!0);try{if(T.value||E.value||!q(e,r,n)||(await h(`/api/personal-review/`+encodeURIComponent(e.id)+`/decision`,{decision:t}),!G(n,r)))return;await Promise.all([X(n),x.refresh()])}catch(e){G(n,r)&&!V(e)&&(E.value=B(e))}finally{H(k,e.id,!1)}}}async function $(e,t){let n=I.value,r=N;if(!n||D.value||O.value||!J(e,n,r))return;let i=Y(n.id,e.id);if(!A.value.has(i)){H(A,i,!0);try{if(D.value||O.value||!J(e,n,r)||(await h(`/api/review/`+encodeURIComponent(e.id)+`/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),!K(n,r)))return;await Z()}catch(e){K(n,r)&&!V(e)&&(O.value=B(e))}finally{H(A,i,!1)}}}return e(()=>x.state,(e,t)=>{if(!e||!t)return;let n=R(t),r=R(e);r&&r===n&&X(r);let i=w.value,a=z(t,i),o=z(e,i);o&&o===a&&Z()},{flush:`sync`}),e(()=>x.activePersonalSpace?.id??``,e=>{U(),e&&X(e)},{immediate:!0,flush:`sync`}),e(F,e=>{e.some(({id:e})=>e===w.value)||(w.value=e[0]?.id??``)},{immediate:!0,flush:`sync`}),e(De,()=>{W(),I.value&&Z()},{immediate:!0,flush:`sync`}),r(()=>{U(),W()}),(e,t)=>(i(),o(`section`,ae,[m(`div`,oe,[m(`h3`,null,u(d(s)(`pages.review.personalTitle`)),1)]),m(`div`,se,[T.value?(i(),c(_,{key:0,variant:`compact`,label:d(s)(`pages.review.loadingPersonal`)},null,8,[`label`])):p(``,!0),E.value?(i(),o(`div`,ce,[m(`span`,null,u(E.value),1),m(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:t[0]||=e=>X()},u(d(s)(`common.actions.retry`)),9,le)])):p(``,!0),(i(!0),o(l,null,n(S.value,e=>(i(),o(`article`,{key:e.id,class:`review-item review-item-detailed`},[m(`div`,null,[m(`div`,ue,u(d(s)(`pages.review.beforePublic`)),1),m(`h4`,null,u(e.episode.name),1),m(`p`,null,u(e.episode.summary||e.episode.source_description),1),m(`div`,de,[m(`span`,null,u(d(s)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),m(`span`,null,u(d(s)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),m(`span`,null,u(d(v)(e.created_at)),1)])]),m(`div`,fe,[k.value.has(e.id)?(i(),c(_,{key:0,variant:`inline`,label:d(s)(`pages.review.savingDecision`)},null,8,[`label`])):p(``,!0),m(`button`,{class:`secondary-action`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`keep_personal`)},u(d(s)(`pages.review.keepPersonal`)),9,pe),m(`button`,{class:`reject`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`ignore`)},u(d(s)(`pages.review.ignore`)),9,me),d(x).state?.capabilities?.submitKnowledge?(i(),o(`button`,{key:1,class:`approve`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`submit_public`)},u(d(s)(`pages.review.submitPublic`)),9,he)):p(``,!0)])]))),128)),!T.value&&!E.value&&!S.value.length?(i(),o(`div`,y,u(d(s)(`pages.review.noPersonalDrafts`)),1)):p(``,!0)]),d(x).state?.capabilities?.reviewProposals&&F.value.length?(i(),o(`section`,ge,[m(`div`,_e,[m(`div`,null,[m(`h3`,null,u(d(s)(`pages.review.publicTitle`)),1)]),ee(ne,{modelValue:w.value,"onUpdate:modelValue":t[1]||=e=>w.value=e,options:Ee.value,label:d(s)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),m(`div`,ve,[D.value?(i(),c(_,{key:0,variant:`compact`,label:d(s)(`pages.review.loadingPublic`)},null,8,[`label`])):p(``,!0),O.value?(i(),o(`div`,ye,[m(`span`,null,u(O.value),1),m(`button`,{class:`secondary-action`,type:`button`,disabled:D.value,onClick:t[2]||=e=>Z()},u(d(s)(`common.actions.retry`)),9,be)])):p(``,!0),(i(!0),o(l,null,n(C.value,e=>(i(),o(`article`,{key:e.id,class:`review-item`},[m(`div`,null,[m(`div`,xe,u(d(s)(`pages.review.maintainerReview`)),1),m(`h4`,null,u(e.episode.name),1),m(`p`,null,u(e.episode.summary||e.episode.source_description),1),m(`div`,b,[m(`span`,null,u(d(v)(e.created_at)),1)])]),m(`div`,Se,[A.value.has(Y(w.value,e.id))?(i(),c(_,{key:0,variant:`inline`,label:d(s)(`pages.review.savingDecision`)},null,8,[`label`])):p(``,!0),m(`button`,{class:`reject`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`reject`)},u(d(s)(`pages.review.reject`)),9,Ce),m(`button`,{class:`approve`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`approve`)},u(d(s)(`pages.review.approve`)),9,we)])]))),128)),!D.value&&!O.value&&!C.value.length?(i(),o(`div`,Te,u(d(s)(`pages.review.noProposals`)),1)):p(``,!0)])])):p(``,!0)]))}});export{x as default};
1
+ import{B as e,E as t,I as n,M as r,P as i,Q as a,S as o,T as ee,a as s,b as c,g as l,ot as u,rt as d,v as f,x as p,y as m}from"./i18n-B4Fp9Oa5.js";import{t as te}from"./console-C2Lfifq-.js";import{a as h,r as g,s as _}from"./client-DodUFQDp.js";import{t as ne}from"./UiSelect-DDyct4mf.js";import{r as re,t as ie}from"./identity-DG_za-J7.js";import{u as v}from"./model-C0eHDNsF.js";var ae={class:`view`},oe={class:`section-title`},se={class:`review-list`,"data-review-queue":`personal`},ce={key:1,class:`review-error`,role:`alert`},le=[`disabled`],ue={class:`review-stage`},de={class:`review-meta`},fe={class:`review-actions stacked-actions`},pe=[`disabled`,`onClick`],me=[`disabled`,`onClick`],he=[`disabled`,`onClick`],y={key:2,class:`empty-state`},ge={key:0,class:`project-section`},_e={class:`section-toolbar`},ve={class:`review-list`,"data-review-queue":`shared`},ye={key:1,class:`review-error`,role:`alert`},be=[`disabled`],xe={class:`review-stage`},b={class:`review-meta`},Se={class:`review-actions`},Ce=[`disabled`,`onClick`],we=[`disabled`,`onClick`],Te={key:2,class:`empty-state`},x=t({__name:`ReviewPage`,setup(t){let x=te(),S=a([]),C=a([]),w=a(``),T=a(!1),E=a(``),D=a(!1),O=a(``),k=a(new Set),A=a(new Set),j=0,M=null,N=0,P=null,F=f(()=>(x.state?.projects??[]).filter(e=>e.role===`maintainer`&&Oe(e))),Ee=f(()=>F.value.map(e=>({value:e.id,label:e.name,meta:`#`+ie(e.id,26),search:re(e.id)}))),I=f(()=>F.value.find(({id:e})=>e===w.value)??null),De=f(()=>{let e=I.value;return e?e.id+`\0`+e.providerUrl:``});function Oe(e){return L(x.state,e)}function L(e,t){if(e?.capabilities?.reviewProposals!==!0)return!1;let n=e.providers?.workspaces?.find(({providerUrl:e})=>e===t.providerUrl);if(!n||n.status!==`ready`)return!1;let r=n.capabilities;return!!(r&&typeof r==`object`&&r.reviewProposals===!0)}function R(e){return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)?.id??e.personalSpaces[0]?.id??``:``}function z(e,t){let n=(e?.projects??[]).find(n=>n.id===t&&n.role===`maintainer`&&L(e,n));return n?n.id+`\0`+n.providerUrl:``}function B(e){return e instanceof Error&&e.message?e.message:s(`common.errors.loadFailed`)}function V(e){return!!(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)}function H(e,t,n){let r=new Set(e.value);n?r.add(t):r.delete(t),e.value=r}function U(){j+=1,M?.abort(),M=null,S.value=[],E.value=``,T.value=!1}function W(){N+=1,P?.abort(),P=null,C.value=[],O.value=``,D.value=!1}function G(e,t){return t===j&&x.activePersonalSpace?.id===e}function K(e,t){let n=I.value;return t===N&&n?.id===e.id&&n.providerUrl===e.providerUrl}function q(e,t,n){return G(n,t)&&S.value.some(({id:t})=>t===e.id)}function J(e,t,n){return K(t,n)&&C.value.some(({id:t})=>t===e.id)}function Y(e,t){return e+`\0`+t}async function X(e=x.activePersonalSpace?.id){M?.abort();let t=++j,n=new AbortController;if(M=n,T.value=!0,E.value=``,!e){T.value=!1,M===n&&(M=null);return}try{let r=await g(`/api/personal-review?`+new URLSearchParams({personalSpaceId:e,status:`pending`}),{signal:n.signal});if(!G(e,t)||n.signal.aborted)return;S.value=r.drafts??[]}catch(r){if(!G(e,t)||n.signal.aborted||V(r))return;E.value=B(r)}finally{t===j&&M===n&&(T.value=!1,M=null)}}async function Z(){let e=I.value;if(!e)return;P?.abort();let t=++N,n=new AbortController;P=n,D.value=!0,O.value=``;try{let r=await g(`/api/review?`+new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`}),{signal:n.signal});if(!K(e,t)||n.signal.aborted)return;C.value=r.proposals??[]}catch(r){if(!K(e,t)||n.signal.aborted||V(r))return;O.value=B(r)}finally{t===N&&P===n&&(D.value=!1,P=null)}}async function Q(e,t){let n=x.activePersonalSpace?.id,r=j;if(!(!n||T.value||E.value||!q(e,r,n))&&!k.value.has(e.id)){H(k,e.id,!0);try{if(T.value||E.value||!q(e,r,n)||(await h(`/api/personal-review/`+encodeURIComponent(e.id)+`/decision`,{decision:t}),!G(n,r)))return;await Promise.all([X(n),x.refresh()])}catch(e){G(n,r)&&!V(e)&&(E.value=B(e))}finally{H(k,e.id,!1)}}}async function $(e,t){let n=I.value,r=N;if(!n||D.value||O.value||!J(e,n,r))return;let i=Y(n.id,e.id);if(!A.value.has(i)){H(A,i,!0);try{if(D.value||O.value||!J(e,n,r)||(await h(`/api/review/`+encodeURIComponent(e.id)+`/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),!K(n,r)))return;await Z()}catch(e){K(n,r)&&!V(e)&&(O.value=B(e))}finally{H(A,i,!1)}}}return e(()=>x.state,(e,t)=>{if(!e||!t)return;let n=R(t),r=R(e);r&&r===n&&X(r);let i=w.value,a=z(t,i),o=z(e,i);o&&o===a&&Z()},{flush:`sync`}),e(()=>x.activePersonalSpace?.id??``,e=>{U(),e&&X(e)},{immediate:!0,flush:`sync`}),e(F,e=>{e.some(({id:e})=>e===w.value)||(w.value=e[0]?.id??``)},{immediate:!0,flush:`sync`}),e(De,()=>{W(),I.value&&Z()},{immediate:!0,flush:`sync`}),r(()=>{U(),W()}),(e,t)=>(i(),o(`section`,ae,[m(`div`,oe,[m(`h3`,null,u(d(s)(`pages.review.personalTitle`)),1)]),m(`div`,se,[T.value?(i(),c(_,{key:0,variant:`compact`,label:d(s)(`pages.review.loadingPersonal`)},null,8,[`label`])):p(``,!0),E.value?(i(),o(`div`,ce,[m(`span`,null,u(E.value),1),m(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:t[0]||=e=>X()},u(d(s)(`common.actions.retry`)),9,le)])):p(``,!0),(i(!0),o(l,null,n(S.value,e=>(i(),o(`article`,{key:e.id,class:`review-item review-item-detailed`},[m(`div`,null,[m(`div`,ue,u(d(s)(`pages.review.beforePublic`)),1),m(`h4`,null,u(e.episode.name),1),m(`p`,null,u(e.episode.summary||e.episode.source_description),1),m(`div`,de,[m(`span`,null,u(d(s)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),m(`span`,null,u(d(s)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),m(`span`,null,u(d(v)(e.created_at)),1)])]),m(`div`,fe,[k.value.has(e.id)?(i(),c(_,{key:0,variant:`inline`,label:d(s)(`pages.review.savingDecision`)},null,8,[`label`])):p(``,!0),m(`button`,{class:`secondary-action`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`keep_personal`)},u(d(s)(`pages.review.keepPersonal`)),9,pe),m(`button`,{class:`reject`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`ignore`)},u(d(s)(`pages.review.ignore`)),9,me),d(x).state?.capabilities?.submitKnowledge?(i(),o(`button`,{key:1,class:`approve`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`submit_public`)},u(d(s)(`pages.review.submitPublic`)),9,he)):p(``,!0)])]))),128)),!T.value&&!E.value&&!S.value.length?(i(),o(`div`,y,u(d(s)(`pages.review.noPersonalDrafts`)),1)):p(``,!0)]),d(x).state?.capabilities?.reviewProposals&&F.value.length?(i(),o(`section`,ge,[m(`div`,_e,[m(`div`,null,[m(`h3`,null,u(d(s)(`pages.review.publicTitle`)),1)]),ee(ne,{modelValue:w.value,"onUpdate:modelValue":t[1]||=e=>w.value=e,options:Ee.value,label:d(s)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),m(`div`,ve,[D.value?(i(),c(_,{key:0,variant:`compact`,label:d(s)(`pages.review.loadingPublic`)},null,8,[`label`])):p(``,!0),O.value?(i(),o(`div`,ye,[m(`span`,null,u(O.value),1),m(`button`,{class:`secondary-action`,type:`button`,disabled:D.value,onClick:t[2]||=e=>Z()},u(d(s)(`common.actions.retry`)),9,be)])):p(``,!0),(i(!0),o(l,null,n(C.value,e=>(i(),o(`article`,{key:e.id,class:`review-item`},[m(`div`,null,[m(`div`,xe,u(d(s)(`pages.review.maintainerReview`)),1),m(`h4`,null,u(e.episode.name),1),m(`p`,null,u(e.episode.summary||e.episode.source_description),1),m(`div`,b,[m(`span`,null,u(d(v)(e.created_at)),1)])]),m(`div`,Se,[A.value.has(Y(w.value,e.id))?(i(),c(_,{key:0,variant:`inline`,label:d(s)(`pages.review.savingDecision`)},null,8,[`label`])):p(``,!0),m(`button`,{class:`reject`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`reject`)},u(d(s)(`pages.review.reject`)),9,Ce),m(`button`,{class:`approve`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`approve`)},u(d(s)(`pages.review.approve`)),9,we)])]))),128)),!D.value&&!O.value&&!C.value.length?(i(),o(`div`,Te,u(d(s)(`pages.review.noProposals`)),1)):p(``,!0)])])):p(``,!0)]))}});export{x as default};
@@ -1 +1 @@
1
- import{B as e,E as t,H as n,I as r,M as ee,N as i,P as a,Q as o,S as s,a as c,b as l,g as u,it as d,n as f,ot as p,rt as m,v as h,x as g,y as _}from"./i18n-oJFlt8hW.js";import{r as v,s as te}from"./client-DnwnUBQV.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as b}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as x}from"./vue-router-CCvPGaLD.js";var S=()=>v(`/api/roundtable/threads`),C=e=>v(`/api/roundtable/threads/${encodeURIComponent(e)}`),ne={class:`view roundtable-view`},re={key:1,class:`ui-empty`,role:`alert`},ie={key:2,class:`roundtable-empty`},ae={key:3,class:`roundtable-layout`},w=[`aria-label`],T={class:`roundtable-faces`,"aria-hidden":`true`},E={class:`roundtable-thread-copy`},D={key:0,class:`roundtable-preview`},O={class:`roundtable-thread-meta`},k=[`datetime`],A={key:0,class:`ui-badge ui-badge--warning`},j={key:0,class:`roundtable-timeline`,"data-testid":`roundtable-timeline`},M={class:`ui-meta`},N={class:`roundtable-avatar`,"aria-hidden":`true`},P={class:`roundtable-bubble`},F={class:`roundtable-byline`},I={key:0,class:`ui-badge`},L={class:`ui-meta`},R=[`datetime`],z={class:`roundtable-body`},B={key:0,class:`roundtable-delivery`},V={key:1,class:`roundtable-select ui-meta`},H=y(t({__name:`RoundtablesPage`,setup(t){let v=b(),y=o([]),H=o(null),U=o(!0),W=o(``),G=h(()=>typeof v.params.threadId==`string`?v.params.threadId:``),K={claude_code:`Claude Code`,codex:`Codex`,cursor:`Cursor`,claude:`Claude`,other:`Agent`},q,J=0;async function Y(){let e=++J;try{let[t,n]=await Promise.all([S(),G.value?C(G.value):Promise.resolve(null)]);if(e!==J)return;y.value=t.threads,H.value=n,W.value=``}catch(t){e===J&&(W.value=t instanceof Error?t.message:String(t))}finally{e===J&&(U.value=!1)}}e(G,()=>{H.value=null,Y()}),i(()=>{Y(),q=setInterval(()=>{document.visibilityState===`visible`&&Y()},5e3)}),ee(()=>clearInterval(q));let X=e=>e.client?K[e.client]??e.client:``,Z=e=>(e.name??`?`).trim().slice(0,1).toUpperCase();function Q(e){let t=new Date(e);return Number.isNaN(t.valueOf())?``:new Intl.DateTimeFormat(f(),{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function $(e){if(e.kind===`reply`){let t=e.via?.split(`:`)[1];return t&&[`resume`,`new`,`inbox`].includes(t)?c(`roundtable.via.${t}`):``}return e.via===`peer`&&e.status===`sent`?c(`roundtable.status.remoteQueued`):e.status===`answered`?``:c(`roundtable.status.${e.status}`)}return(e,t)=>(a(),s(`section`,ne,[U.value?(a(),l(te,{key:0,label:m(c)(`roundtable.loading`)},null,8,[`label`])):W.value&&!y.value.length?(a(),s(`div`,re,[_(`p`,null,p(m(c)(`roundtable.loadFailed`))+` · `+p(W.value),1),_(`button`,{class:`ui-button`,type:`button`,onClick:Y},p(m(c)(`roundtable.retry`)),1)])):y.value.length?(a(),s(`div`,ae,[_(`nav`,{class:`roundtable-threads`,"aria-label":m(c)(`roundtable.threads`)},[(a(!0),s(u,null,r(y.value,e=>(a(),l(m(x),{key:e.id,class:d([`roundtable-thread`,{"is-active":e.id===G.value}]),to:`/roundtables/${encodeURIComponent(e.id)}`,"data-testid":`roundtable-thread`},{default:n(()=>[_(`span`,T,[(a(!0),s(u,null,r(e.participants.slice(0,3),e=>(a(),s(`span`,{key:e.agentId??e.name??``},p(Z(e)),1))),128))]),_(`span`,E,[_(`strong`,null,p(e.subject),1),_(`small`,null,p(e.participants.map(e=>e.name).join(` · `)),1),e.last?(a(),s(`small`,D,p(e.last.from)+`:`+p(e.last.body),1)):g(``,!0)]),_(`span`,O,[_(`time`,{datetime:e.updatedAt},p(Q(e.updatedAt)),9,k),e.waiting?(a(),s(`span`,A,p(m(c)(`roundtable.waiting`)),1)):g(``,!0)])]),_:2},1032,[`class`,`to`]))),128))],8,w),H.value?(a(),s(`article`,j,[_(`header`,null,[_(`h2`,null,p(H.value.subject),1),_(`p`,M,p(m(c)(`roundtable.messages`,{count:H.value.messages.length}))+` · `+p(Q(H.value.createdAt)),1)]),_(`ol`,null,[(a(!0),s(u,null,r(H.value.messages,e=>(a(),s(`li`,{key:e.id,class:d([`roundtable-message`,`is-${e.kind}`])},[_(`span`,N,p(Z(e.from)),1),_(`div`,P,[_(`p`,F,[_(`strong`,null,p(e.from.name),1),X(e.from)?(a(),s(`span`,I,p(X(e.from)),1)):g(``,!0),_(`span`,L,p(m(c)(`roundtable.to`))+` `+p(e.to.name),1),_(`time`,{class:`ui-meta`,datetime:e.createdAt},p(Q(e.createdAt)),9,R)]),_(`p`,z,p(e.body),1),$(e)?(a(),s(`p`,B,p($(e)),1)):g(``,!0)])],2))),128))])])):(a(),s(`p`,V,p(m(c)(`roundtable.select`)),1))])):(a(),s(`div`,ie,[_(`strong`,null,p(m(c)(`roundtable.empty`)),1),_(`p`,null,p(m(c)(`roundtable.emptyHint`)),1)]))]))}}),[[`__scopeId`,`data-v-119bf733`]]);export{H as default};
1
+ import{B as e,E as t,H as n,I as r,M as ee,N as i,P as a,Q as o,S as s,a as c,b as l,g as u,it as d,n as f,ot as p,rt as m,v as h,x as g,y as _}from"./i18n-B4Fp9Oa5.js";import{r as v,s as te}from"./client-DodUFQDp.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as b}from"./useApi-CROJJdhE-IuC5qwny.js";import{t as x}from"./vue-router-nZMhR3dI.js";var S=()=>v(`/api/roundtable/threads`),C=e=>v(`/api/roundtable/threads/${encodeURIComponent(e)}`),ne={class:`view roundtable-view`},re={key:1,class:`ui-empty`,role:`alert`},ie={key:2,class:`roundtable-empty`},ae={key:3,class:`roundtable-layout`},w=[`aria-label`],T={class:`roundtable-faces`,"aria-hidden":`true`},E={class:`roundtable-thread-copy`},D={key:0,class:`roundtable-preview`},O={class:`roundtable-thread-meta`},k=[`datetime`],A={key:0,class:`ui-badge ui-badge--warning`},j={key:0,class:`roundtable-timeline`,"data-testid":`roundtable-timeline`},M={class:`ui-meta`},N={class:`roundtable-avatar`,"aria-hidden":`true`},P={class:`roundtable-bubble`},F={class:`roundtable-byline`},I={key:0,class:`ui-badge`},L={class:`ui-meta`},R=[`datetime`],z={class:`roundtable-body`},B={key:0,class:`roundtable-delivery`},V={key:1,class:`roundtable-select ui-meta`},H=y(t({__name:`RoundtablesPage`,setup(t){let v=b(),y=o([]),H=o(null),U=o(!0),W=o(``),G=h(()=>typeof v.params.threadId==`string`?v.params.threadId:``),K={claude_code:`Claude Code`,codex:`Codex`,cursor:`Cursor`,claude:`Claude`,other:`Agent`},q,J=0;async function Y(){let e=++J;try{let[t,n]=await Promise.all([S(),G.value?C(G.value):Promise.resolve(null)]);if(e!==J)return;y.value=t.threads,H.value=n,W.value=``}catch(t){e===J&&(W.value=t instanceof Error?t.message:String(t))}finally{e===J&&(U.value=!1)}}e(G,()=>{H.value=null,Y()}),i(()=>{Y(),q=setInterval(()=>{document.visibilityState===`visible`&&Y()},5e3)}),ee(()=>clearInterval(q));let X=e=>e.client?K[e.client]??e.client:``,Z=e=>(e.name??`?`).trim().slice(0,1).toUpperCase();function Q(e){let t=new Date(e);return Number.isNaN(t.valueOf())?``:new Intl.DateTimeFormat(f(),{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function $(e){if(e.kind===`reply`){let t=e.via?.split(`:`)[1];return t&&[`resume`,`new`,`inbox`].includes(t)?c(`roundtable.via.${t}`):``}return e.via===`peer`&&e.status===`sent`?c(`roundtable.status.remoteQueued`):e.status===`answered`?``:c(`roundtable.status.${e.status}`)}return(e,t)=>(a(),s(`section`,ne,[U.value?(a(),l(te,{key:0,label:m(c)(`roundtable.loading`)},null,8,[`label`])):W.value&&!y.value.length?(a(),s(`div`,re,[_(`p`,null,p(m(c)(`roundtable.loadFailed`))+` · `+p(W.value),1),_(`button`,{class:`ui-button`,type:`button`,onClick:Y},p(m(c)(`roundtable.retry`)),1)])):y.value.length?(a(),s(`div`,ae,[_(`nav`,{class:`roundtable-threads`,"aria-label":m(c)(`roundtable.threads`)},[(a(!0),s(u,null,r(y.value,e=>(a(),l(m(x),{key:e.id,class:d([`roundtable-thread`,{"is-active":e.id===G.value}]),to:`/roundtables/${encodeURIComponent(e.id)}`,"data-testid":`roundtable-thread`},{default:n(()=>[_(`span`,T,[(a(!0),s(u,null,r(e.participants.slice(0,3),e=>(a(),s(`span`,{key:e.agentId??e.name??``},p(Z(e)),1))),128))]),_(`span`,E,[_(`strong`,null,p(e.subject),1),_(`small`,null,p(e.participants.map(e=>e.name).join(` · `)),1),e.last?(a(),s(`small`,D,p(e.last.from)+`:`+p(e.last.body),1)):g(``,!0)]),_(`span`,O,[_(`time`,{datetime:e.updatedAt},p(Q(e.updatedAt)),9,k),e.waiting?(a(),s(`span`,A,p(m(c)(`roundtable.waiting`)),1)):g(``,!0)])]),_:2},1032,[`class`,`to`]))),128))],8,w),H.value?(a(),s(`article`,j,[_(`header`,null,[_(`h2`,null,p(H.value.subject),1),_(`p`,M,p(m(c)(`roundtable.messages`,{count:H.value.messages.length}))+` · `+p(Q(H.value.createdAt)),1)]),_(`ol`,null,[(a(!0),s(u,null,r(H.value.messages,e=>(a(),s(`li`,{key:e.id,class:d([`roundtable-message`,`is-${e.kind}`])},[_(`span`,N,p(Z(e.from)),1),_(`div`,P,[_(`p`,F,[_(`strong`,null,p(e.from.name),1),X(e.from)?(a(),s(`span`,I,p(X(e.from)),1)):g(``,!0),_(`span`,L,p(m(c)(`roundtable.to`))+` `+p(e.to.name),1),_(`time`,{class:`ui-meta`,datetime:e.createdAt},p(Q(e.createdAt)),9,R)]),_(`p`,z,p(e.body),1),$(e)?(a(),s(`p`,B,p($(e)),1)):g(``,!0)])],2))),128))])])):(a(),s(`p`,V,p(m(c)(`roundtable.select`)),1))])):(a(),s(`div`,ie,[_(`strong`,null,p(m(c)(`roundtable.empty`)),1),_(`p`,null,p(m(c)(`roundtable.emptyHint`)),1)]))]))}}),[[`__scopeId`,`data-v-119bf733`]]);export{H as default};
@@ -0,0 +1 @@
1
+ .judgment-policy-panel[data-v-98f9e2c8]{gap:18px;display:grid}.judgment-panel-heading[data-v-98f9e2c8]{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.judgment-panel-heading h3[data-v-98f9e2c8]{color:var(--color-ink);margin:0;font-size:16px}.judgment-panel-heading p[data-v-98f9e2c8]{color:var(--color-muted);margin:6px 0 0;font-size:13px;line-height:1.55}.judgment-project-field[data-v-98f9e2c8]{grid-template-columns:minmax(130px,.45fr) minmax(180px,1fr) auto;align-items:center;gap:10px;display:grid}.judgment-project-field label[data-v-98f9e2c8],.judgment-progressive-fields label>span[data-v-98f9e2c8]{color:var(--color-muted);font-size:12px}.judgment-project-field select[data-v-98f9e2c8],.judgment-progressive-fields select[data-v-98f9e2c8]{min-height:var(--control-height);border:1px solid var(--color-control-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface);font:inherit;padding:7px 10px}.judgment-project-field small[data-v-98f9e2c8]{color:var(--color-muted);white-space:nowrap;font-size:12px}.judgment-project-field small.is-inherited[data-v-98f9e2c8]{color:var(--color-accent)}.judgment-policy-fields[data-v-98f9e2c8]{border:0;gap:10px;min-width:0;padding:0;display:grid}.judgment-policy-fields legend[data-v-98f9e2c8]{color:var(--color-muted);margin-bottom:2px;font-size:12px}.judgment-mode-option[data-v-98f9e2c8]{border:1px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.judgment-mode-option.is-selected[data-v-98f9e2c8]{border-color:var(--color-accent);background:var(--color-accent-soft)}.judgment-mode-option input[data-v-98f9e2c8]{accent-color:var(--color-accent);margin-top:3px}.judgment-mode-option span[data-v-98f9e2c8]{gap:3px;display:grid}.judgment-mode-option strong[data-v-98f9e2c8]{color:var(--color-ink);font-size:13px}.judgment-mode-option small[data-v-98f9e2c8]{color:var(--color-muted);font-size:12px;line-height:1.5}.judgment-progressive-fields[data-v-98f9e2c8]{border-left:2px solid var(--color-accent);background:var(--color-surface-subtle);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:3px;padding:12px;display:grid}.judgment-progressive-fields label[data-v-98f9e2c8]{gap:6px;display:grid}.judgment-policy-actions[data-v-98f9e2c8]{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.judgment-policy-saved[data-v-98f9e2c8]{color:var(--color-muted);font-size:12px}.judgment-policy-error[data-v-98f9e2c8]{border-radius:var(--radius-control);color:var(--color-danger);background:var(--color-danger-soft);justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;font-size:13px;display:flex}.judgment-policy-empty[data-v-98f9e2c8]{color:var(--color-muted);font-size:13px}@media (width<=640px){.judgment-project-field[data-v-98f9e2c8]{grid-template-columns:1fr;align-items:stretch}.judgment-progressive-fields[data-v-98f9e2c8]{grid-template-columns:1fr}}.connection-settings p[data-v-a09270ee]{color:var(--color-muted);margin:12px 0;font-size:13px;line-height:1.6}.connection-toolbar[data-v-a09270ee]{align-items:center;gap:12px;margin:16px 0 10px;display:flex}.connection-toolbar[data-v-a09270ee] .ui-select{flex:1;min-width:0;max-width:300px}.connection-copy[data-v-a09270ee]{flex:0 0 40px;width:40px;height:40px;padding:9px}.connection-copy svg[data-v-a09270ee]{width:20px;height:20px}textarea[data-v-a09270ee]{box-sizing:border-box;resize:vertical;width:100%;min-width:0;font:12px/1.65 var(--font-mono,monospace);overflow-wrap:anywhere;display:block}.connection-settings a[data-v-a09270ee]{font-size:13px}.peer-settings p[data-v-c2b7fda7],.peer-settings small[data-v-c2b7fda7]{color:var(--color-muted);font-size:13px;line-height:1.6}.peer-settings p[data-v-c2b7fda7]{margin:12px 0}.peer-alert[data-v-c2b7fda7],.peer-actions[data-v-c2b7fda7],.peer-identity[data-v-c2b7fda7],.peer-fields[data-v-c2b7fda7],.peer-share-title[data-v-c2b7fda7],.peer-devices li[data-v-c2b7fda7]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.peer-block[data-v-c2b7fda7]{gap:12px;min-width:0;margin:16px 0;display:grid}.peer-block h4[data-v-c2b7fda7]{font-size:13px;font-weight:650}.peer-fields[data-v-c2b7fda7]{align-items:end}.peer-fields[data-v-c2b7fda7] .ui-select{flex:180px;min-width:0}.peer-identity[data-v-c2b7fda7]{margin:12px 0}.peer-identity div[data-v-c2b7fda7]{flex:160px;min-width:0}.peer-identity dt[data-v-c2b7fda7]{color:var(--color-muted);font-size:12px}.peer-identity dd[data-v-c2b7fda7],.peer-identity code[data-v-c2b7fda7],.peer-identity strong[data-v-c2b7fda7],.peer-identity p[data-v-c2b7fda7]{overflow-wrap:anywhere}.peer-identity dd[data-v-c2b7fda7]{font-family:var(--font-mono);font-size:13px}.peer-settings label[data-v-c2b7fda7]{min-width:0;color:var(--color-muted);gap:6px;font-size:12px;display:grid}.peer-settings input[type=text][data-v-c2b7fda7],.peer-settings textarea[data-v-c2b7fda7]{box-sizing:border-box;overflow-wrap:anywhere;width:100%;min-width:0}.peer-settings textarea[data-v-c2b7fda7]{resize:vertical;font:12px/1.65 var(--font-mono)}.peer-shares[data-v-c2b7fda7],.peer-devices[data-v-c2b7fda7]{gap:16px;margin:0;padding:0;list-style:none;display:grid}.peer-shares li[data-v-c2b7fda7],.peer-devices li[data-v-c2b7fda7]{border-top:1px solid var(--color-border);min-width:0;padding:12px 0}.peer-share-title[data-v-c2b7fda7]{align-items:flex-start;gap:8px;display:flex}.peer-share-title strong[data-v-c2b7fda7]{overflow-wrap:anywhere;color:var(--color-ink);font-size:14px}.peer-shares fieldset[data-v-c2b7fda7]{border:0;flex-wrap:wrap;gap:12px 16px;padding:0;display:flex}.peer-shares fieldset label[data-v-c2b7fda7]{align-items:center;gap:6px;display:flex}.peer-devices li[data-v-c2b7fda7]{justify-content:space-between}.peer-devices strong[data-v-c2b7fda7],.peer-devices small[data-v-c2b7fda7]{overflow-wrap:anywhere;display:block}.peer-note[data-v-c2b7fda7]{color:var(--color-warning)}.settings-fields[data-v-815c4bdf]{gap:var(--space-6);border:0;min-width:0;margin:0;padding:0;display:grid}.settings-view[data-v-815c4bdf]{background:var(--color-bg);padding-top:24px}.settings-content[data-v-815c4bdf]{gap:var(--space-6);width:min(1040px,100%);min-width:0;margin:0 auto;display:grid}.settings-form[data-v-815c4bdf]{gap:var(--space-6);min-width:0;display:grid}.settings-card[data-v-815c4bdf]{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-width:0;padding:26px;container-type:inline-size}.section-heading[data-v-815c4bdf]{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.settings-card h3[data-v-815c4bdf]{color:var(--color-ink);font-size:16px}.section-heading p[data-v-815c4bdf]{color:var(--color-muted);margin-top:5px;font-size:12px}.resource-totals[data-v-815c4bdf]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resource-totals article[data-v-815c4bdf]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;align-content:center;gap:7px;min-height:126px;padding:20px 22px;display:grid}.resource-totals span[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.resource-totals strong[data-v-815c4bdf]{color:var(--color-ink);letter-spacing:-.04em;font-size:clamp(25px,3vw,34px)}.resource-totals small[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.resource-breakdowns[data-v-815c4bdf]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;display:grid}.resource-group[data-v-815c4bdf]{gap:13px;display:grid}.resource-group h4[data-v-815c4bdf],.port-section h4[data-v-815c4bdf]{color:var(--color-ink);font-size:12px}.resource-row[data-v-815c4bdf]{gap:6px;display:grid}.resource-row>div[data-v-815c4bdf]{color:var(--color-muted);justify-content:space-between;gap:12px;font-size:12px;display:flex}.resource-row strong[data-v-815c4bdf]{color:var(--color-ink);font-weight:650}.resource-row i[data-v-815c4bdf]{background:var(--color-surface-subtle);border-radius:999px;height:5px;overflow:hidden}.resource-row b[data-v-815c4bdf]{border-radius:inherit;background:var(--color-muted);height:100%;display:block}.resource-group:last-child .resource-row b[data-v-815c4bdf]{background:var(--color-muted)}.resource-notes[data-v-815c4bdf]{color:var(--color-muted);flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:12px;display:flex}.port-section[data-v-815c4bdf]{gap:13px;display:grid}.port-section+.port-section[data-v-815c4bdf]{border-top:1px solid var(--color-border);margin-top:25px;padding-top:22px}.development-section>div[data-v-815c4bdf]{align-items:center;gap:9px;display:flex}.development-section>div>span[data-v-815c4bdf]{color:var(--color-warning);background:var(--color-warning-soft);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.development-section>p[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.port-grid[data-v-815c4bdf]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.port-grid label[data-v-815c4bdf]{color:var(--color-muted);gap:7px;font-size:12px;display:grid}.port-grid input[data-v-815c4bdf]{width:100%;min-width:0}.port-grid small[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.behavior-card>h3[data-v-815c4bdf],.conversation-launcher-card>h3[data-v-815c4bdf]{margin-bottom:14px}.conversation-launcher-list[data-v-815c4bdf]{display:grid}.conversation-launcher-row[data-v-815c4bdf]{border-top:1px solid var(--color-border);padding:16px 0}.conversation-launcher-row[data-v-815c4bdf]:first-child{border-top:0}.conversation-launcher-heading[data-v-815c4bdf]{justify-content:space-between;align-items:center;gap:20px;min-height:34px;display:flex}.conversation-launcher-heading>span[data-v-815c4bdf]{overflow-wrap:anywhere;gap:4px;min-width:0;display:grid}.conversation-launcher-heading strong[data-v-815c4bdf]{color:var(--color-ink);font-size:12px}.conversation-launcher-heading small[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.conversation-launcher-switch[data-v-815c4bdf]{color:var(--color-muted);flex:none;align-items:center;gap:9px;font-size:12px;display:flex}.conversation-launcher-switch input[role=switch][data-v-815c4bdf]{margin:0}.conversation-launcher-note[data-v-815c4bdf]{max-width:760px;color:var(--color-muted);margin-top:9px;font-size:12px;line-height:1.45;display:block}.conversation-launcher-fields[data-v-815c4bdf]{grid-template-columns:minmax(0,.7fr) minmax(0,.8fr) minmax(0,1.5fr);align-items:start;gap:12px;margin-top:14px;display:grid}.conversation-launcher-fields>label[data-v-815c4bdf]{min-width:0;color:var(--color-muted);grid-template-rows:auto 40px;align-content:start;gap:7px;font-size:12px;display:grid}.conversation-launcher-fields>label>span[data-v-815c4bdf]{overflow-wrap:anywhere;min-width:0;line-height:18px;display:block}.conversation-launcher-fields code[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.conversation-launcher-fields[data-v-815c4bdf] .launcher-select{width:100%;min-width:0;height:40px}.conversation-launcher-fields input[data-v-815c4bdf]{width:100%;min-width:0}.setting-list[data-v-815c4bdf]{display:grid}.setting-row[data-v-815c4bdf]{border-top:1px solid var(--color-border);cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.setting-row[data-v-815c4bdf]:first-child{border-top:0}.setting-row>span[data-v-815c4bdf]{gap:4px;min-width:0;display:grid}.setting-row strong[data-v-815c4bdf]{color:var(--color-ink);font-size:14px}.setting-row small[data-v-815c4bdf]{color:var(--color-muted);font-size:12px}.setting-row input[role=switch][data-v-815c4bdf],.conversation-launcher-switch input[role=switch][data-v-815c4bdf]{appearance:none;background:var(--color-muted);cursor:pointer;border:0;border-radius:999px;flex:none;width:38px;height:21px;margin:0;padding:0;transition:background .18s;position:relative}.setting-row input[role=switch][data-v-815c4bdf]:after,.conversation-launcher-switch input[role=switch][data-v-815c4bdf]:after{content:"";box-sizing:border-box;background:var(--color-surface);border-radius:50%;width:17px;height:17px;transition:transform .18s;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 0 4px #0000002e}.setting-row input[role=switch][data-v-815c4bdf]:checked,.conversation-launcher-switch input[role=switch][data-v-815c4bdf]:checked{background:var(--color-accent)}.setting-row input[role=switch][data-v-815c4bdf]:checked:after,.conversation-launcher-switch input[role=switch][data-v-815c4bdf]:checked:after{transform:translate(17px,-50%)}.select-row .settings-select[data-v-815c4bdf]{flex:0 0 180px;width:180px;min-width:0}.settings-error[data-v-815c4bdf]{border-radius:var(--radius-control);color:var(--color-danger);background:var(--color-surface);padding:11px 13px;font-size:12px}@container (width<=640px){.port-grid[data-v-815c4bdf],.conversation-launcher-fields[data-v-815c4bdf]{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-launcher-template[data-v-815c4bdf]{grid-column:1/-1}.resource-breakdowns[data-v-815c4bdf]{grid-template-columns:minmax(0,1fr)}}@container (width<=420px){.resource-totals[data-v-815c4bdf],.port-grid[data-v-815c4bdf],.conversation-launcher-fields[data-v-815c4bdf]{grid-template-columns:minmax(0,1fr)}.conversation-launcher-template[data-v-815c4bdf]{grid-column:auto}.select-row[data-v-815c4bdf]{flex-direction:column;align-items:flex-start;padding:14px 0}.select-row .settings-select[data-v-815c4bdf]{flex:auto;width:100%}}@media (width<=680px){.settings-card[data-v-815c4bdf]{padding:var(--space-4)}}
@@ -0,0 +1 @@
1
+ import{B as e,E as t,H as n,I as r,M as i,N as a,P as o,Q as s,S as c,T as l,U as u,X as d,a as f,at as p,b as m,d as h,f as g,g as _,h as v,i as y,it as b,l as x,n as S,ot as C,r as w,rt as T,u as E,v as D,w as O,x as k,y as A}from"./i18n-B4Fp9Oa5.js";import{t as j}from"./console-C2Lfifq-.js";import{a as M,o as N,r as P,s as F,t as ee}from"./client-DodUFQDp.js";import{t as I}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as L}from"./UiButton-neeym_gA.js";import{t as R}from"./UiSelect-DDyct4mf.js";import{t as z}from"./UiDisclosure-B-T7BmB5.js";import{a as B,c as V,i as H,r as U,t as W,u as G}from"./judgment-types-DRqrjStd.js";import{i as te,n as K,s as q,t as ne}from"./conversation-launcher-settings-CowfVz7l.js";var J=[`aria-label`],re={class:`judgment-panel-heading`},Y={key:1,class:`judgment-policy-empty`},X={key:0,class:`judgment-project-field`},ie={for:`judgment-project-select`},ae=[`disabled`],oe=[`value`],se={key:1,class:`judgment-policy-error`,role:`alert`},Z=[`disabled`],ce=[`disabled`],le=[`onUpdate:modelValue`,`value`],ue={key:0,class:`judgment-progressive-fields`},Q=[`value`],de=[`value`],fe={class:`judgment-policy-actions`},pe=[`disabled`],me=[`title`,`disabled`],he=[`disabled`],ge={key:3,class:`judgment-policy-saved`,role:`status`},_e={key:3,class:`judgment-policy-error`,role:`alert`},ve=I(t({__name:`JudgmentPolicyPanel`,props:{personalSpaceId:{},projects:{default:()=>[]}},setup(t){let n=t,i=s(``),a=s(null),l=s({...W}),d=s(!1),f=s(!1),p=s(``),g=s(``),v=s(!1),y=s(null),x=0,S=D(()=>[{id:``,name:G(`settings.global`)},...n.projects.filter(e=>e.id)]),w=D(()=>i.value||null),O=D(()=>!!(w.value&&a.value&&!a.value.inherited)),j=D(()=>d.value||f.value),M=D(()=>!!(a.value&&!p.value&&!f.value)),N=D(()=>!w.value||!a.value?``:a.value.inherited?G(`settings.inherited`):G(`settings.override`));e(()=>n.projects,e=>{i.value&&!e.some(e=>e.id===i.value)&&(i.value=``)},{deep:!0}),e([()=>n.personalSpaceId,i],()=>{P()},{immediate:!0});async function P(){let e=++x;if(a.value=null,y.value=null,l.value={...W},f.value=!1,v.value=!1,p.value=``,g.value=``,!n.personalSpaceId){d.value=!1;return}d.value=!0;try{let t=await B(n.personalSpaceId,w.value);if(e!==x)return;a.value=U(t),l.value=H(a.value)}catch(t){e===x&&(p.value=t instanceof Error?t.message:G(`settings.loadError`))}finally{e===x&&(d.value=!1)}}function ee(e){return e&&typeof e==`object`&&`status`in e&&typeof e.status==`number`?e.status:null}async function I(e,t=!1){if(!a.value||!M.value)return;f.value=!0,v.value=!1,g.value=``;let r=x,i=a.value.inherited?null:H(a.value);try{let o=await V(n.personalSpaceId,w.value,e,a.value.revision);if(r!==x)return;a.value=U(o),l.value=H(a.value),v.value=!0,y.value=t?null:{policy:i}}catch(e){if(r!==x)return;if(ee(e)===409){let e=x+1;await P(),x===e&&(g.value=G(`settings.conflictError`))}else g.value=e instanceof Error?e.message:G(`settings.saveError`)}finally{r===x&&(f.value=!1)}}function L(){return I({...l.value})}function R(){if(y.value)return I(y.value.policy,!0)}async function z(){if(O.value)return I(null)}return(e,t)=>(o(),c(`section`,{class:`judgment-policy-panel`,"aria-label":T(G)(`settings.title`)},[A(`header`,re,[A(`div`,null,[A(`h3`,null,C(T(G)(`settings.title`)),1),A(`p`,null,C(T(G)(`settings.hint`)),1)]),f.value?(o(),m(F,{key:0,variant:`inline`,label:T(G)(`settings.saving`)},null,8,[`label`])):k(``,!0)]),d.value&&!a.value?(o(),m(F,{key:0,variant:`compact`,label:T(G)(`settings.loading`)},null,8,[`label`])):n.personalSpaceId?(o(),c(_,{key:2},[n.projects.length?(o(),c(`div`,X,[A(`label`,ie,C(T(G)(`settings.project`)),1),u(A(`select`,{id:`judgment-project-select`,"data-select":`judgment-project`,"onUpdate:modelValue":t[0]||=e=>i.value=e,disabled:j.value},[(o(!0),c(_,null,r(S.value,e=>(o(),c(`option`,{key:e.id||`global`,value:e.id},C(e.name),9,oe))),128))],8,ae),[[h,i.value]]),N.value?(o(),c(`small`,{key:0,class:b({"is-inherited":a.value?.inherited})},C(N.value),3)):k(``,!0)])):k(``,!0),p.value?(o(),c(`div`,se,[A(`span`,null,C(p.value),1),A(`button`,{type:`button`,class:`quiet-button`,disabled:j.value,onClick:P},C(T(G)(`settings.retry`)),9,Z)])):a.value?(o(),c(`fieldset`,{key:2,class:`judgment-policy-fields`,disabled:!M.value},[A(`legend`,null,C(T(G)(`mode.title`)),1),(o(),c(_,null,r([`manual`,`shared`,`autonomous`],e=>A(`label`,{key:e,class:b([`judgment-mode-option`,{"is-selected":l.value.mode===e}])},[u(A(`input`,{"onUpdate:modelValue":e=>l.value.mode=e,type:`radio`,name:`judgment-mode`,value:e,onChange:t[1]||=e=>L()},null,40,le),[[E,l.value.mode]]),A(`span`,null,[A(`strong`,null,C(T(G)(`mode.${e}`)),1),A(`small`,null,C(T(G)(`mode.${e}Hint`)),1)])],2)),64)),l.value.mode===`manual`?k(``,!0):(o(),c(`div`,ue,[A(`label`,null,[A(`span`,null,C(T(G)(`quality.title`)),1),u(A(`select`,{"onUpdate:modelValue":t[2]||=e=>l.value.quality=e,"data-select":`judgment-quality`,onChange:t[3]||=e=>L()},[(o(),c(_,null,r([`quality`,`balanced`,`economy`],e=>A(`option`,{key:e,value:e},C(T(G)(`quality.${e}`)),9,Q)),64))],544),[[h,l.value.quality]])]),A(`label`,null,[A(`span`,null,C(T(G)(`client.title`)),1),u(A(`select`,{"onUpdate:modelValue":t[4]||=e=>l.value.client=e,"data-select":`judgment-client`,onChange:t[5]||=e=>L()},[(o(),c(_,null,r([`codex`,`claude_code`],e=>A(`option`,{key:e,value:e},C(T(G)(`client.${e}`)),9,de)),64))],544),[[h,l.value.client]])])])),A(`div`,fe,[g.value?(o(),c(`button`,{key:0,class:`quiet-button`,type:`button`,"data-action":`save-policy`,disabled:j.value,onClick:L},C(T(G)(`settings.retry`)),9,pe)):k(``,!0),O.value?(o(),c(`button`,{key:1,class:`quiet-button`,type:`button`,"data-action":`reset-policy`,title:T(G)(`settings.resetTitle`),disabled:j.value,onClick:z},C(T(G)(`settings.reset`)),9,me)):k(``,!0),y.value?(o(),c(`button`,{key:2,class:`quiet-button`,type:`button`,"data-action":`undo-policy`,disabled:j.value,onClick:R},C(T(G)(`settings.undo`)),9,he)):k(``,!0),v.value?(o(),c(`span`,ge,C(T(G)(`settings.saved`)),1)):k(``,!0)])],8,ce)):k(``,!0),g.value?(o(),c(`div`,_e,C(g.value),1)):k(``,!0)],64)):(o(),c(`div`,Y,C(T(G)(`settings.loadError`)),1))],8,J))}}),[[`__scopeId`,`data-v-98f9e2c8`]]),ye=t({__name:`JudgmentPolicySettings`,setup(e){let t=j(),n=D(()=>t.activePersonalSpace?.id??``),r=D(()=>(t.state?.personalProjects??[]).filter(e=>e.personal_space_id===n.value).map(e=>({id:e.project_id,name:e.profile.name})));return(e,t)=>(o(),m(ve,{"personal-space-id":n.value,projects:r.value},null,8,[`personal-space-id`,`projects`]))}}),be={key:1,role:`alert`},xe={class:`connection-toolbar`},Se=[`title`,`aria-label`],Ce=[`value`,`aria-label`],$={key:0,role:`status`},we={class:`connection-boundary`},Te={href:`https://github.com/JevonsCode/fuli/blob/main/docs/client-connections.md`,target:`_blank`,rel:`noopener noreferrer`},Ee=I(t({__name:`ClientConnectionSettings`,setup(e){let t=s(null),r=s(`standard`),i=s(!1),a=s(``),u=s(``),d=D(()=>t.value?JSON.stringify(t.value[r.value],null,2):``),p=D(()=>[`standard`,`vscode`,`server`].map(e=>({value:e,label:f(`settings.connection.formats.${e}`)})));async function h(){if(!i.value){i.value=!0,a.value=``;try{t.value=await P(`/api/system/client-connection`)}catch{a.value=f(`settings.connection.loadError`)}finally{i.value=!1}}}function g(e){e.target.open&&!t.value&&!i.value&&!a.value&&h()}function v(e){(e===`standard`||e===`vscode`||e===`server`)&&(r.value=e,u.value=``)}async function y(){let e=d.value;try{if(!navigator.clipboard?.writeText)throw Error(`Clipboard unavailable`);await navigator.clipboard.writeText(e),d.value===e&&(u.value=`copied`)}catch{d.value===e&&(u.value=`manual`)}}return(e,s)=>(o(),m(z,{class:`settings-card connection-settings`,title:T(f)(`settings.connection.title`),onToggle:g},{default:n(()=>[A(`p`,null,C(T(f)(`settings.connection.description`)),1),i.value?(o(),m(F,{key:0,variant:`compact`,label:T(f)(`settings.connection.loading`)},null,8,[`label`])):k(``,!0),a.value?(o(),c(`div`,be,[A(`span`,null,C(a.value),1),A(`button`,{class:`ui-button`,type:`button`,"data-retry-connection":``,onClick:h},C(T(f)(`settings.connection.retry`)),1)])):k(``,!0),t.value?(o(),c(_,{key:2},[A(`div`,xe,[l(R,{"control-id":`client-connection-format`,"model-value":r.value,options:p.value,label:T(f)(`settings.connection.format`),"onUpdate:modelValue":v},null,8,[`model-value`,`options`,`label`]),A(`button`,{class:`ui-button connection-copy`,type:`button`,"data-copy-connection":``,title:T(f)(`settings.connection.copy`),"aria-label":T(f)(`settings.connection.copy`),onClick:y},[...s[0]||=[A(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.7`,"aria-hidden":`true`},[A(`rect`,{x:`8`,y:`8`,width:`12`,height:`12`,rx:`2`}),A(`path`,{d:`M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3`})],-1)]],8,Se)]),A(`textarea`,{value:d.value,readonly:``,rows:`8`,spellcheck:`false`,"aria-label":T(f)(`settings.connection.configuration`)},null,8,Ce),u.value?(o(),c(`p`,$,C(T(f)(`settings.connection.${u.value}`)),1)):k(``,!0),A(`p`,null,C(T(f)(`settings.connection.merge`)),1)],64)):k(``,!0),A(`p`,we,C(T(f)(`settings.connection.boundary`)),1),A(`a`,Te,C(T(f)(`settings.connection.guide`)),1)]),_:1},8,[`title`]))}}),[[`__scopeId`,`data-v-a09270ee`]]),De={key:1,class:`peer-alert`,role:`alert`},Oe={key:0,role:`status`},ke={class:`peer-block`},Ae={key:0},je={key:1,class:`peer-fields`},Me=[`disabled`],Ne={class:`peer-block`},Pe=[`disabled`,`placeholder`,`aria-label`],Fe=[`disabled`],Ie={key:0,class:`peer-identity`,"data-invitation-preview":``},Le={class:`peer-identity`},Re={key:0,class:`peer-block`},ze=[`value`,`aria-label`],Be={class:`peer-actions`},Ve={key:0,role:`status`},He={class:`peer-block`},Ue={key:0},We={key:1,class:`peer-shares`},Ge={class:`peer-share-title`},Ke=[`checked`,`disabled`,`onChange`],qe={key:0,class:`peer-note`},Je={key:1,class:`peer-note`},Ye=[`disabled`],Xe=[`checked`,`onChange`],Ze={key:3},Qe=[`onUpdate:modelValue`,`disabled`],$e={key:1,class:`peer-block`},et={class:`peer-devices`},tt=I(t({__name:`PeerSettings`,setup(t){let i=s(null),a=s(!1),p=s(``),h=s(``),v=s(``),y=s(``),b=s(``),x=s(``),S=s(null),w=s(``),E=s(null),j=d({}),I=D(()=>(i.value?.addresses??[]).map(e=>({value:e,label:e}))),B=D(()=>!!i.value?.role),V=D(()=>i.value?.role===`coordinator`),H=D(()=>(i.value?.devices??[]).filter(e=>!e.self));e(b,()=>{E.value=null});function U(e,t){if(e instanceof ee&&e.detail)try{let t=JSON.parse(e.detail);if(typeof t.message==`string`&&t.message.trim())return t.message}catch{}return t}function W(e){return f(e===`claude_code`?`settings.peer.clientsClaude`:`settings.peer.clientsCodex`)}function G(e){i.value=e,!v.value&&e.addresses[0]&&(v.value=e.addresses[0]);let t=new Set(e.shareable.map(e=>e.projectId));for(let e of Object.keys(j))t.has(e)||delete j[e];for(let t of e.shareable){let n=e.shares.find(e=>e.projectId===t.projectId);j[t.projectId]??={selected:!!n,clients:n?.clients?.length?n.clients:t.clients.slice(0,1),folder:n?.workingDirectory??``}}}async function te(){if(!a.value){a.value=!0,p.value=``;try{G(await P(`/api/peer`))}catch(e){p.value=U(e,f(`settings.peer.loadError`))}finally{a.value=!1}}}function K(e){e.target.open&&!i.value&&!a.value&&!p.value&&te()}async function q(e,t){if(!h.value){h.value=e,p.value=``;try{let e=await t();e&&G(e)}catch(e){p.value=U(e,f(`settings.peer.loadError`))}finally{h.value=``}}}function ne(){return q(`host`,()=>M(`/api/peer/coordinator`,{host:v.value,port:0,name:y.value.trim()||void 0}))}function J(){return E.value?q(`join`,()=>M(`/api/peer/join`,{invitation:b.value.trim(),name:x.value.trim()||void 0})):q(`preview`,async()=>{let e=b.value.trim(),t=await M(`/api/peer/invitations/preview`,{invitation:e});b.value.trim()===e&&(E.value=t)})}async function re(){await q(`invite`,async()=>{S.value=await M(`/api/peer/invitations`,{}),w.value=``})}async function Y(){let e=S.value?.invitation;if(e)try{if(!navigator.clipboard?.writeText)throw Error(`Clipboard unavailable`);await navigator.clipboard.writeText(e),S.value?.invitation===e&&(w.value=`copied`)}catch{S.value?.invitation===e&&(w.value=`manual`)}}function X(e,t){let n=j[e.projectId];n&&(n.selected=t,t&&!n.clients.length&&(n.clients=e.clients.slice(0,1)))}function ie(e,t,n){let r=j[e];r&&(r.clients=n?[...new Set([...r.clients,t])]:r.clients.filter(e=>e!==t))}function ae(){let e=(i.value?.shareable??[]).flatMap(e=>{let t=j[e.projectId];return!t?.selected||!e.lead?[]:[{projectId:e.projectId,clients:t.clients,...t.folder.trim()?{workingDirectory:t.folder.trim()}:{}}]});return q(`shares`,()=>N(`/api/peer/shares`,{shares:e}))}function oe(e){return q(`revoke:${e}`,()=>M(`/api/peer/devices/${e}/revoke`,{}))}function se(){return q(`disable`,async()=>{let e=await M(`/api/peer/disable`,{});return S.value=null,b.value=``,e})}function Z(e){return i.value?.shares.find(t=>t.projectId===e)?.state??null}return(e,t)=>(o(),m(z,{class:`settings-card peer-settings`,title:T(f)(`settings.peer.title`),onToggle:K},{default:n(()=>[A(`p`,null,C(T(f)(`settings.peer.description`)),1),a.value?(o(),m(F,{key:0,variant:`compact`,label:T(f)(`settings.peer.loading`)},null,8,[`label`])):k(``,!0),p.value?(o(),c(`div`,De,[A(`span`,null,C(p.value),1),l(L,{size:`sm`,"data-retry-peer":``,busy:a.value,"busy-label":T(f)(`settings.peer.loading`),onClick:te},{default:n(()=>[O(C(T(f)(`settings.peer.retry`)),1)]),_:1},8,[`busy`,`busy-label`])])):k(``,!0),i.value&&!B.value?(o(),c(_,{key:2},[A(`p`,null,C(T(f)(`settings.peer.off`)),1),i.value.remoteRemovalPending?(o(),c(`p`,Oe,C(T(f)(`settings.peer.removalPending`)),1)):k(``,!0),A(`section`,ke,[A(`h4`,null,C(T(f)(`settings.peer.host`)),1),i.value.addresses.length?(o(),c(`div`,je,[l(R,{"control-id":`peer-host-address`,"model-value":v.value,options:I.value,label:T(f)(`settings.peer.hostAddress`),"onUpdate:modelValue":t[0]||=e=>v.value=e},null,8,[`model-value`,`options`,`label`]),A(`label`,null,[A(`span`,null,C(T(f)(`settings.peer.hostName`)),1),u(A(`input`,{"onUpdate:modelValue":t[1]||=e=>y.value=e,type:`text`,maxlength:`60`,disabled:!!h.value},null,8,Me),[[g,y.value]])]),l(L,{variant:`primary`,size:`sm`,"data-host-peer":``,disabled:!v.value,busy:h.value===`host`,"busy-label":T(f)(`settings.peer.hosting`),onClick:ne},{default:n(()=>[O(C(T(f)(`settings.peer.hostAction`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])])):(o(),c(`p`,Ae,C(T(f)(`settings.peer.noAddress`)),1))]),A(`section`,Ne,[A(`h4`,null,C(T(f)(`settings.peer.join`)),1),A(`label`,null,[A(`span`,null,C(T(f)(`settings.peer.invitation`)),1),u(A(`textarea`,{"onUpdate:modelValue":t[2]||=e=>b.value=e,rows:`3`,spellcheck:`false`,disabled:!!h.value,placeholder:T(f)(`settings.peer.invitationPlaceholder`),"aria-label":T(f)(`settings.peer.invitation`)},null,8,Pe),[[g,b.value]])]),A(`label`,null,[A(`span`,null,C(T(f)(`settings.peer.joinName`)),1),u(A(`input`,{"onUpdate:modelValue":t[3]||=e=>x.value=e,type:`text`,maxlength:`60`,disabled:!!h.value},null,8,Fe),[[g,x.value]])]),E.value?(o(),c(`div`,Ie,[A(`div`,null,[A(`strong`,null,C(E.value.name),1),A(`p`,null,C(E.value.url),1)]),A(`div`,null,[A(`p`,null,C(T(f)(`settings.peer.coordinatorFingerprint`)),1),A(`code`,null,C(E.value.shortFingerprint),1)]),A(`p`,null,C(T(f)(`settings.peer.compare`)),1)])):k(``,!0),l(L,{variant:`primary`,size:`sm`,"data-join-peer":``,disabled:!b.value.trim()||i.value.remoteRemovalPending,busy:h.value===`join`||h.value===`preview`,"busy-label":T(f)(E.value?`settings.peer.joining`:`settings.peer.previewing`),onClick:J},{default:n(()=>[O(C(T(f)(E.value?`settings.peer.joinAction`:`settings.peer.previewAction`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])])],64)):k(``,!0),i.value&&B.value?(o(),c(_,{key:3},[A(`dl`,Le,[A(`div`,null,[A(`dt`,null,C(T(f)(`settings.peer.fingerprint`)),1),A(`dd`,null,C(i.value.device?.shortFingerprint),1)]),A(`div`,null,[A(`dt`,null,C(T(f)(`settings.peer.coordinatorFingerprint`)),1),A(`dd`,null,C(i.value.coordinator?.shortFingerprint),1)])]),V.value?(o(),c(`section`,Re,[l(L,{size:`sm`,"data-invite-peer":``,busy:h.value===`invite`,"busy-label":T(f)(`settings.peer.inviting`),onClick:re},{default:n(()=>[O(C(T(f)(`settings.peer.invite`)),1)]),_:1},8,[`busy`,`busy-label`]),A(`p`,null,C(T(f)(`settings.peer.inviteHint`)),1),S.value?(o(),c(_,{key:0},[A(`textarea`,{value:S.value.invitation,readonly:``,rows:`4`,spellcheck:`false`,"aria-label":T(f)(`settings.peer.invitation`)},null,8,ze),A(`div`,Be,[l(L,{size:`sm`,"data-copy-invite":``,onClick:Y},{default:n(()=>[O(C(T(f)(`settings.peer.copyInvite`)),1)]),_:1}),w.value?(o(),c(`p`,Ve,C(T(f)(`settings.peer.${w.value===`copied`?`copied`:`copyManual`}`)),1)):k(``,!0)])],64)):k(``,!0)])):k(``,!0),A(`section`,He,[A(`h4`,null,C(T(f)(`settings.peer.shares`)),1),A(`p`,null,C(T(f)(`settings.peer.sharesHint`)),1),i.value.shareable.length?(o(),c(`ul`,We,[(o(!0),c(_,null,r(i.value.shareable,e=>(o(),c(`li`,{key:e.projectId},[A(`label`,Ge,[A(`input`,{type:`checkbox`,checked:j[e.projectId]?.selected,disabled:!e.lead||!!h.value,onChange:t=>X(e,t.target.checked)},null,40,Ke),A(`strong`,null,C(e.projectName),1)]),A(`small`,null,C(e.lead?T(f)(`settings.peer.lead`,{name:e.lead.name}):T(f)(`settings.peer.noLead`)),1),Z(e.projectId)===`lead_changed`?(o(),c(`p`,qe,C(T(f)(`settings.peer.leadChanged`)),1)):k(``,!0),Z(e.projectId)===`lead_unavailable`?(o(),c(`p`,Je,C(T(f)(`settings.peer.leadUnavailable`)),1)):k(``,!0),j[e.projectId]?.selected&&e.lead?(o(),c(`fieldset`,{key:2,disabled:!!h.value},[A(`legend`,null,C(T(f)(`settings.peer.clients`)),1),(o(!0),c(_,null,r(e.clients,t=>(o(),c(`label`,{key:t},[A(`input`,{type:`checkbox`,checked:j[e.projectId]?.clients.includes(t),onChange:n=>ie(e.projectId,t,n.target.checked)},null,40,Xe),O(` `+C(W(t)),1)]))),128))],8,Ye)):k(``,!0),j[e.projectId]?.selected&&e.lead?(o(),c(`label`,Ze,[A(`span`,null,C(T(f)(`settings.peer.folder`)),1),u(A(`input`,{"onUpdate:modelValue":t=>j[e.projectId].folder=t,type:`text`,disabled:!!h.value},null,8,Qe),[[g,j[e.projectId].folder]]),A(`small`,null,C(T(f)(`settings.peer.folderHint`)),1)])):k(``,!0)]))),128))])):(o(),c(`p`,Ue,C(T(f)(`settings.peer.noProjects`)),1)),i.value.shareable.length?(o(),m(L,{key:2,variant:`primary`,size:`sm`,"data-save-shares":``,busy:h.value===`shares`,"busy-label":T(f)(`settings.peer.savingShares`),onClick:ae},{default:n(()=>[O(C(T(f)(`settings.peer.saveShares`)),1)]),_:1},8,[`busy`,`busy-label`])):k(``,!0)]),V.value&&H.value.length?(o(),c(`section`,$e,[A(`h4`,null,C(T(f)(`settings.peer.devices`)),1),A(`ul`,et,[(o(!0),c(_,null,r(H.value,e=>(o(),c(`li`,{key:e.nodeId},[A(`div`,null,[A(`strong`,null,C(e.name),1),A(`small`,null,C(e.shortFingerprint)+` · `+C(e.online?T(f)(`settings.peer.online`):T(f)(`settings.peer.offline`)),1)]),l(L,{size:`sm`,variant:`danger`,"data-revoke":e.nodeId,busy:h.value===`revoke:${e.nodeId}`,"busy-label":T(f)(`settings.peer.revoking`),onClick:t=>oe(e.nodeId)},{default:n(()=>[O(C(T(f)(`settings.peer.revoke`)),1)]),_:1},8,[`data-revoke`,`busy`,`busy-label`,`onClick`])]))),128))])])):k(``,!0),A(`p`,null,C(T(f)(`settings.peer.disableHint`)),1),l(L,{size:`sm`,"data-disable-peer":``,busy:h.value===`disable`,"busy-label":T(f)(`settings.peer.disabling`),onClick:se},{default:n(()=>[O(C(T(f)(`settings.peer.disable`)),1)]),_:1},8,[`busy`,`busy-label`])],64)):k(``,!0)]),_:1},8,[`title`]))}}),[[`__scopeId`,`data-v-c2b7fda7`]]);async function nt(e,t,{origin:n=window.location.origin,read:r=()=>P(`/api/system/settings`,{signal:AbortSignal.any([t,AbortSignal.timeout(3e3)])}),probe:i=rt,wait:a=()=>new Promise(e=>window.setTimeout(e,1e3)),timeout:o=18e4}={}){let s=new URL(`/settings`,n);s.port=String(e.port);let c=Date.now()+o;for(;Date.now()<c;){t.throwIfAborted();let o=await r().catch(()=>null);if(t.throwIfAborted(),o?.apply?.id===e.id){if(o.apply.status===`failed`)throw Error(`${f(o.apply.rolledBack?`settings.applyRestored`:`settings.applyFailed`)} ${o.apply.error??``}`.trim());if(o.apply.status===`applied`&&!o.restartRequired)return{settings:o}}if(s.origin!==n&&await i(`${s.origin}/api/system/settings/ready.svg?id=${encodeURIComponent(e.id)}&t=${Date.now()}`,t))return s.searchParams.set(`settingsApplied`,e.id),{url:s.href};await a()}throw Error(f(`settings.applyTimeout`))}function rt(e,t){return new Promise(n=>{let r=new Image,i=e=>{window.clearTimeout(o),r.onload=r.onerror=null,t.removeEventListener(`abort`,a),r.removeAttribute(`src`),n(e)},a=()=>i(!1),o=window.setTimeout(()=>i(!1),3e3);if(r.onload=()=>i(!0),r.onerror=a,t.addEventListener(`abort`,a,{once:!0}),t.aborted){i(!1);return}r.src=e})}var it=[`aria-label`],at={class:`settings-content`},ot=[`aria-busy`],st=[`disabled`],ct={class:`settings-card behavior-card`},lt={class:`setting-list`},ut={class:`setting-row`},dt=[`checked`],ft={class:`setting-row`},pt=[`checked`],mt={class:`setting-row`},ht={class:`setting-row select-row`},gt={class:`setting-row select-row`},_t={class:`setting-row select-row`},vt={class:`settings-card judgment-settings-card`},yt={class:`port-section`},bt={class:`port-grid`},xt=[`onUpdate:modelValue`],St={class:`port-section development-section`},Ct={class:`conversation-launcher-list`},wt={class:`conversation-launcher-heading`},Tt={class:`conversation-launcher-switch`},Et=[`onUpdate:modelValue`],Dt={key:0,class:`conversation-launcher-note`},Ot={key:1,class:`conversation-launcher-fields`},kt=[`onUpdate:modelValue`],At={class:`conversation-launcher-template`},jt=[`onUpdate:modelValue`],Mt={key:0,class:`settings-error`,role:`alert`},Nt={class:`settings-card resource-card`},Pt={class:`section-heading`},Ft={key:0},It=[`disabled`],Lt={key:1,class:`settings-error`,role:`alert`},Rt={class:`resource-totals`},zt={class:`resource-breakdowns`},Bt={class:`resource-group`},Vt={class:`resource-group`},Ht={class:`resource-notes`},Ut={key:0},Wt={key:1},Gt={key:2,class:`settings-error`,role:`alert`},Kt=I(t({__name:`SettingsPage`,setup(t){let d=j(),h=s(null),b=s(null),E=s(null),M=s(!0),I=D(()=>d.settingsSaving),L=s(!1),B=s(``),V=s(``),H=new AbortController,U=null,W=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=D({get:()=>S(),set:e=>y(e)}),J=[5,10,30,60],re=te,Y=D(()=>[{value:`zh-CN`,label:f(`settings.behavior.zh`)},{value:`en-US`,label:f(`settings.behavior.en`)}]),X=D(()=>J.map(e=>({value:String(e),label:f(`settings.resources.refreshUnit`,{seconds:e})}))),ie=D(()=>[{value:`native`,label:f(`settings.behavior.runtimeModes.native`)},{value:`container`,label:f(`settings.behavior.runtimeModes.container`)}]),ae=D(()=>[{value:`any`,label:f(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:f(`settings.conversationLaunchers.idFormats.uuid`)}]),oe=D(()=>d.state?.capturePolicy?.enabled!==!1),se=D(()=>d.state?.agentAccessPolicy?.enabled!==!1),Z=D(()=>Math.max(1,...E.value?.memory.components.map(({bytes:e})=>e)??[1])),ce=D(()=>Math.max(1,...E.value?.disk.components.map(({bytes:e})=>e)??[1])),le=D(()=>b.value?.graphRuntimeMode===`container`&&Number.isFinite(E.value?.memory.hostTotalBytes)&&Number(E.value?.memory.hostTotalBytes)<=16*1024**3);a(async()=>{d.runtimeStatus===`idle`&&d.refresh(),await Promise.all([ue(),Q()]),M.value=!1}),i(()=>{me(),H.abort(),I.value&&(d.settingsSaveState=`idle`)}),e(b,()=>{d.settingsSaveState===`saved`&&(d.settingsSaveState=`idle`,d.clearFeedback())},{deep:!0,flush:`sync`}),e(()=>b.value?.resourceRefreshSeconds,()=>pe());async function ue(){try{let e=await P(`/api/system/settings`);h.value=e,b.value={...structuredClone(e.configured),conversationLaunchers:ne(e.configured.conversationLaunchers)},K(e.configured.conversationLaunchers),B.value=``;let t=new URL(window.location.href);e.apply?.status===`applying`?(d.settingsSaveState=`applying`,await fe(e)):e.apply?.status===`applied`&&t.searchParams.get(`settingsApplied`)===e.apply.id&&(d.settingsSaveState=`saved`,d.notify(f(`settings.saved`)),t.searchParams.delete(`settingsApplied`),window.history.replaceState(window.history.state,``,t))}catch(e){B.value=e instanceof Error?e.message:f(`settings.loadError`)}}async function Q(){if(!(I.value||L.value||document.visibilityState===`hidden`)){L.value=!0;try{E.value=await P(`/api/system/resources`),V.value=``}catch(e){V.value=e instanceof Error?e.message:f(`settings.resources.unavailable`)}finally{L.value=!1}}}async function de(){if(!(!b.value||I.value)){d.settingsSaveState=`saving`,d.clearFeedback();try{let e=await N(`/api/system/settings`,b.value);if(h.value=e,b.value={...structuredClone(e.configured),conversationLaunchers:ne(e.configured.conversationLaunchers)},K(e.configured.conversationLaunchers),B.value=``,e.restartRequired){if(!e.apply)throw Error(f(`settings.applyUnavailable`));d.settingsSaveState=`applying`,await fe(e)}else d.settingsSaveState=`saved`,d.notify(f(`settings.saved`))}catch(e){if(H.signal.aborted)return;d.settingsSaveState=`error`;let t=e instanceof Error?e.message:f(`settings.saveError`);if(e instanceof ee&&e.detail)try{t=JSON.parse(e.detail).error||t}catch{}d.reportError(Error(t))}}}async function fe(e){if(e.apply)try{let t=await nt(e.apply,H.signal);if(t.url){window.location.assign(t.url);return}h.value=t.settings??e,d.settingsSaveState=`saved`,d.notify(f(`settings.saved`)),d.refresh()}catch(e){if(H.signal.aborted)return;d.settingsSaveState=`error`,d.reportError(e)}}function pe(){me();let e=b.value?.resourceRefreshSeconds;e&&(U=setInterval(()=>void Q(),e*1e3))}function me(){U&&clearInterval(U),U=null}function he(e){d.updateCapturePolicy(e.currentTarget.checked)}function ge(e){d.updateAgentAccessPolicy(e.currentTarget.checked)}function _e(e){(e===`zh-CN`||e===`en-US`)&&y(e)}function ve(e){let t=J.find(t=>String(t)===e);t===void 0||!b.value||(b.value.resourceRefreshSeconds=t)}function be(e){!b.value||e!==`native`&&e!==`container`||(b.value.graphRuntimeMode=e)}function xe(e){let t=f(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?q(e):t}function Se(e){return h.value?.active.ports[e]??`—`}function Ce(e){let t=`settings.resources.components.${e.id.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}`;return w.global.te(t)?f(t):e.label}function $(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 we(e,t){return`${Math.max(3,Math.round(e/t*100))}%`}function Te(e){return e?new Intl.DateTimeFormat(G.value,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(new Date(e)):`—`}function De(e){let t=e.target.closest(`details`);for(;t;)t.open=!0,t=t.parentElement?.closest(`details`)??null}return(e,t)=>(o(),c(`section`,{class:`view settings-view`,"aria-label":T(f)(`settings.aria`)},[A(`div`,at,[M.value&&!b.value?(o(),m(F,{key:0,variant:`compact`,label:T(f)(`settings.loading`)},null,8,[`label`])):k(``,!0),b.value?(o(),c(`form`,{key:1,id:`settings-form`,class:`settings-form`,"aria-busy":I.value,onSubmit:v(de,[`prevent`]),onInvalidCapture:De},[A(`fieldset`,{class:`settings-fields`,disabled:I.value},[A(`section`,ct,[A(`h3`,null,C(T(f)(`settings.behavior.title`)),1),A(`div`,lt,[A(`label`,ut,[A(`span`,null,[A(`strong`,null,C(T(f)(`settings.behavior.capture`)),1),A(`small`,null,C(T(f)(`settings.behavior.captureMeta`)),1)]),A(`input`,{type:`checkbox`,role:`switch`,checked:oe.value,onChange:he},null,40,dt)]),A(`label`,ft,[A(`span`,null,[A(`strong`,null,C(T(f)(`settings.behavior.agentAccess`)),1),A(`small`,null,C(T(f)(`settings.behavior.agentAccessMeta`)),1)]),A(`input`,{type:`checkbox`,role:`switch`,checked:se.value,onChange:ge},null,40,pt)]),A(`label`,mt,[A(`span`,null,[A(`strong`,null,C(T(f)(`settings.behavior.lanAccess`)),1),A(`small`,null,C(T(f)(`settings.behavior.lanAccessMeta`)),1)]),u(A(`input`,{"onUpdate:modelValue":t[0]||=e=>b.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[x,b.value.lanAccess]])]),A(`div`,ht,[A(`span`,null,[A(`strong`,null,C(T(f)(`settings.behavior.runtimeMode`)),1),A(`small`,null,C(le.value?T(f)(`settings.behavior.runtimeRecommendation`):T(f)(`settings.behavior.runtimeModeMeta`,{mode:T(f)(`settings.behavior.runtimeModes.${h.value?.active.graphRuntimeMode??b.value.graphRuntimeMode}`)})),1)]),l(R,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":b.value.graphRuntimeMode,options:ie.value,label:T(f)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":be},null,8,[`model-value`,`options`,`label`])]),A(`div`,gt,[A(`span`,null,[A(`strong`,null,C(T(f)(`settings.behavior.language`)),1)]),l(R,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Y.value,label:T(f)(`settings.behavior.language`),"onUpdate:modelValue":_e},null,8,[`model-value`,`options`,`label`])]),A(`div`,_t,[A(`span`,null,[A(`strong`,null,C(T(f)(`settings.resources.refresh`)),1)]),l(R,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(b.value.resourceRefreshSeconds),options:X.value,label:T(f)(`settings.resources.refresh`),"onUpdate:modelValue":ve},null,8,[`model-value`,`options`,`label`])])])]),A(`section`,vt,[l(ye)]),l(Ee),l(tt),l(z,{class:`settings-card ports-card`,title:T(f)(`settings.ports.title`)},{default:n(()=>[A(`div`,yt,[A(`h4`,null,C(T(f)(`settings.ports.personal`)),1),A(`div`,bt,[(o(),c(_,null,r(W,e=>A(`label`,{key:e},[A(`span`,null,C(T(f)(`settings.ports.${e}`)),1),u(A(`input`,{"onUpdate:modelValue":t=>b.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,xt),[[g,b.value.ports[e],void 0,{number:!0}]]),A(`small`,null,C(T(f)(`settings.ports.active`,{port:Se(e)})),1)])),64))])]),A(`div`,St,[A(`div`,null,[A(`h4`,null,C(T(f)(`settings.ports.development`)),1),A(`span`,null,C(T(f)(`settings.ports.developing`)),1)]),A(`p`,null,C(T(f)(`settings.ports.developmentMeta`)),1)])]),_:1},8,[`title`]),l(z,{id:`conversation-launchers`,class:`settings-card conversation-launcher-card`,title:T(f)(`settings.conversationLaunchers.title`)},{default:n(()=>[A(`div`,Ct,[(o(!0),c(_,null,r(T(re),e=>(o(),c(`article`,{key:e,class:`conversation-launcher-row`},[A(`div`,wt,[A(`span`,null,[A(`strong`,null,C(xe(e)),1),A(`small`,null,C(T(f)(`settings.conversationLaunchers.sourceId`,{id:e})),1)]),A(`label`,Tt,[A(`span`,null,C(T(f)(`settings.conversationLaunchers.enabled`)),1),u(A(`input`,{"onUpdate:modelValue":t=>b.value.conversationLaunchers[e].enabled=t,type:`checkbox`,role:`switch`},null,8,Et),[[x,b.value.conversationLaunchers[e].enabled]])])]),b.value.conversationLaunchers[e].enabled&&e===`codex`?(o(),c(`small`,Dt,C(T(f)(`settings.conversationLaunchers.idFormatMeta`)),1)):k(``,!0),b.value.conversationLaunchers[e].enabled?(o(),c(`div`,Ot,[A(`label`,null,[A(`span`,null,C(T(f)(`settings.conversationLaunchers.idFormat`)),1),l(R,{modelValue:b.value.conversationLaunchers[e].idFormat,"onUpdate:modelValue":t=>b.value.conversationLaunchers[e].idFormat=t,class:`launcher-select`,"control-id":`settings-conversation-${e}-id-format`,options:ae.value,label:T(f)(`settings.conversationLaunchers.idFormat`)},null,8,[`modelValue`,`onUpdate:modelValue`,`control-id`,`options`,`label`])]),A(`label`,null,[A(`span`,null,C(T(f)(`settings.conversationLaunchers.appName`)),1),u(A(`input`,{"onUpdate:modelValue":t=>b.value.conversationLaunchers[e].appName=t,type:`text`,maxlength:`64`,required:``},null,8,kt),[[g,b.value.conversationLaunchers[e].appName,void 0,{trim:!0}]])]),A(`label`,At,[A(`span`,null,[O(C(T(f)(`settings.conversationLaunchers.urlTemplate`))+` `,1),t[1]||=A(`small`,null,[A(`code`,null,`{id}`)],-1)]),u(A(`input`,{"onUpdate:modelValue":t=>b.value.conversationLaunchers[e].urlTemplate=t,type:`text`,maxlength:`1024`,spellcheck:`false`,required:``},null,8,jt),[[g,b.value.conversationLaunchers[e].urlTemplate,void 0,{trim:!0}]])])])):k(``,!0)]))),128))])]),_:1},8,[`title`])],8,st),B.value?(o(),c(`p`,Mt,C(B.value),1)):k(``,!0)],40,ot)):k(``,!0),A(`section`,Nt,[A(`header`,Pt,[A(`div`,null,[A(`h3`,null,C(T(f)(`settings.resources.title`)),1),E.value?(o(),c(`p`,Ft,C(T(f)(`settings.resources.measuredAt`,{time:Te(E.value.sampledAt)})),1)):k(``,!0)]),A(`button`,{class:`quiet-button`,type:`button`,disabled:L.value,onClick:Q},C(T(f)(`common.actions.refresh`)),9,It)]),L.value?(o(),m(F,{key:0,variant:E.value?`inline`:`compact`,label:T(f)(`settings.resources.loading`)},null,8,[`variant`,`label`])):k(``,!0),V.value?(o(),c(`p`,Lt,C(V.value),1)):E.value?(o(),c(_,{key:2},[A(`div`,Rt,[A(`article`,null,[A(`span`,null,C(T(f)(`settings.resources.memory`)),1),A(`strong`,null,C($(E.value.memory.usedBytes)),1),A(`small`,null,C(T(f)(`settings.resources.available`,{value:$(E.value.memory.hostFreeBytes)})),1)]),A(`article`,null,[A(`span`,null,C(T(f)(`settings.resources.disk`)),1),A(`strong`,null,C($(E.value.disk.usedBytes)),1),A(`small`,null,C(T(f)(`settings.resources.available`,{value:$(E.value.disk.hostFreeBytes)})),1)])]),l(z,{title:T(f)(`ui.usageDetails`)},{default:n(()=>[A(`div`,zt,[A(`div`,Bt,[A(`h4`,null,C(T(f)(`settings.resources.memory`)),1),(o(!0),c(_,null,r(E.value.memory.components,e=>(o(),c(`div`,{key:e.id,class:`resource-row`},[A(`div`,null,[A(`span`,null,C(Ce(e)),1),A(`strong`,null,C($(e.bytes)),1)]),A(`i`,null,[A(`b`,{style:p({width:we(e.bytes,Z.value)})},null,4)])]))),128))]),A(`div`,Vt,[A(`h4`,null,C(T(f)(`settings.resources.disk`)),1),(o(!0),c(_,null,r(E.value.disk.components,e=>(o(),c(`div`,{key:e.id,class:`resource-row`},[A(`div`,null,[A(`span`,null,C(Ce(e)),1),A(`strong`,null,C($(e.bytes)),1)]),A(`i`,null,[A(`b`,{style:p({width:we(e.bytes,ce.value)})},null,4)])]))),128))])]),A(`div`,Ht,[A(`span`,null,C(T(f)(`settings.resources.diskMeasuredAt`,{time:Te(E.value.disk.measuredAt)})),1),E.value.status===`partial`?(o(),c(`span`,Ut,C(T(f)(`settings.resources.partial`)),1)):k(``,!0),E.value.disk.temporaryBytes?(o(),c(`span`,Wt,C(T(f)(`settings.resources.temporary`,{value:$(E.value.disk.temporaryBytes)})),1)):k(``,!0),A(`span`,null,C(T(f)(E.value.exclusions.includes(`shared-container-vm-overhead`)?`settings.resources.exclusionsContainer`:`settings.resources.exclusionsNative`)),1)])]),_:1},8,[`title`])],64)):k(``,!0)]),!M.value&&!b.value?(o(),c(`p`,Gt,C(B.value||T(f)(`settings.loadError`)),1)):k(``,!0)])],8,it))}}),[[`__scopeId`,`data-v-815c4bdf`]]);export{Kt as default};
@@ -1 +1 @@
1
- import{B as e,E as t,P as n,Q as r,S as i,a,b as o,g as s,ot as c,rt as l,v as u,x as d,y as f}from"./i18n-oJFlt8hW.js";import{s as p}from"./client-DnwnUBQV.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{i as g,n as _,t as v}from"./shared-report-CiX64ZiD.js";var y={class:`shared-jefa-report`},b={key:1,class:`report-state`,role:`alert`},x={key:0,class:`report-warning`},S={key:1,class:`report-state`,role:`status`},C=m(t({__name:`SharedJefaReportPage`,setup(t){let m=h(),C=r([]),w=r([]),T=r(!1),E=r(0),D=r(``),O=u(()=>C.value.reduce((e,t)=>e+t.items.length,0)),k=u(()=>m.fullPath.includes(`#`)?m.fullPath.slice(m.fullPath.indexOf(`#`)):m.hash),A=0;e(k,()=>{j()},{immediate:!0});async function j(){let e=++A;C.value=[],D.value=``,E.value=0,T.value=!0;try{let t=_(k.value),n=await Promise.allSettled(t.map(v));if(e!==A)return;C.value=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),w.value=C.value.map(e=>e.project.id),E.value=n.filter(e=>e.status===`rejected`).length,C.value.length||(D.value=a(`employees.share.unavailable`))}catch{e===A&&(D.value=a(`employees.share.unavailable`))}finally{e===A&&(T.value=!1)}}return(e,t)=>(n(),i(`main`,y,[f(`header`,null,[t[1]||=f(`strong`,null,`Jefa`,-1),f(`h1`,null,c(l(a)(`employees.share.title`)),1),f(`span`,null,c(l(a)(`employees.share.readOnly`)),1)]),T.value?(n(),o(p,{key:0,label:l(a)(`employees.loadingReport`)},null,8,[`label`])):D.value?(n(),i(`div`,b,[f(`p`,null,c(D.value),1),f(`button`,{type:`button`,onClick:j},c(l(a)(`employees.retry`)),1)])):(n(),i(s,{key:2},[E.value?(n(),i(`p`,x,c(l(a)(`employees.share.unavailableCount`,{count:E.value})),1)):d(``,!0),O.value?(n(),o(g,{key:2,"visible-project-ids":w.value,"onUpdate:visibleProjectIds":t[0]||=e=>w.value=e,boards:C.value.filter(e=>w.value.includes(e.project.id)),projects:C.value.map(e=>e.project),"failed-projects":0,"can-move-tasks":!1,"read-only":``,onRetry:j},null,8,[`visible-project-ids`,`boards`,`projects`])):(n(),i(`div`,S,[f(`h2`,null,c(l(a)(`employees.shareContent.emptyTitle`)),1),f(`p`,null,c(l(a)(`employees.shareContent.emptyReport`,{count:C.value.length})),1),f(`button`,{type:`button`,onClick:j},c(l(a)(`common.actions.refresh`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-79d38b0c`]]);export{C as default};
1
+ import{B as e,E as t,P as n,Q as r,S as i,a,b as o,g as s,ot as c,rt as l,v as u,x as d,y as f}from"./i18n-B4Fp9Oa5.js";import{s as p}from"./client-DodUFQDp.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-IuC5qwny.js";import{i as g,n as _,t as v}from"./shared-report-8JFvD9TZ.js";var y={class:`shared-jefa-report`},b={key:1,class:`report-state`,role:`alert`},x={key:0,class:`report-warning`},S={key:1,class:`report-state`,role:`status`},C=m(t({__name:`SharedJefaReportPage`,setup(t){let m=h(),C=r([]),w=r([]),T=r(!1),E=r(0),D=r(``),O=u(()=>C.value.reduce((e,t)=>e+t.items.length,0)),k=u(()=>m.fullPath.includes(`#`)?m.fullPath.slice(m.fullPath.indexOf(`#`)):m.hash),A=0;e(k,()=>{j()},{immediate:!0});async function j(){let e=++A;C.value=[],D.value=``,E.value=0,T.value=!0;try{let t=_(k.value),n=await Promise.allSettled(t.map(v));if(e!==A)return;C.value=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),w.value=C.value.map(e=>e.project.id),E.value=n.filter(e=>e.status===`rejected`).length,C.value.length||(D.value=a(`employees.share.unavailable`))}catch{e===A&&(D.value=a(`employees.share.unavailable`))}finally{e===A&&(T.value=!1)}}return(e,t)=>(n(),i(`main`,y,[f(`header`,null,[t[1]||=f(`strong`,null,`Jefa`,-1),f(`h1`,null,c(l(a)(`employees.share.title`)),1),f(`span`,null,c(l(a)(`employees.share.readOnly`)),1)]),T.value?(n(),o(p,{key:0,label:l(a)(`employees.loadingReport`)},null,8,[`label`])):D.value?(n(),i(`div`,b,[f(`p`,null,c(D.value),1),f(`button`,{type:`button`,onClick:j},c(l(a)(`employees.retry`)),1)])):(n(),i(s,{key:2},[E.value?(n(),i(`p`,x,c(l(a)(`employees.share.unavailableCount`,{count:E.value})),1)):d(``,!0),O.value?(n(),o(g,{key:2,"visible-project-ids":w.value,"onUpdate:visibleProjectIds":t[0]||=e=>w.value=e,boards:C.value.filter(e=>w.value.includes(e.project.id)),projects:C.value.map(e=>e.project),"failed-projects":0,"can-move-tasks":!1,"read-only":``,onRetry:j},null,8,[`visible-project-ids`,`boards`,`projects`])):(n(),i(`div`,S,[f(`h2`,null,c(l(a)(`employees.shareContent.emptyTitle`)),1),f(`p`,null,c(l(a)(`employees.shareContent.emptyReport`,{count:C.value.length})),1),f(`button`,{type:`button`,onClick:j},c(l(a)(`common.actions.refresh`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-79d38b0c`]]);export{C as default};
@@ -1 +1 @@
1
- import{E as e,L as t,P as n,S as r,b as i,it as a}from"./i18n-oJFlt8hW.js";import{s as o}from"./client-DnwnUBQV.js";var s=[`type`,`disabled`,`aria-busy`],c=e({__name:`UiButton`,props:{variant:{default:`default`},size:{default:`md`},type:{default:`button`},busy:{type:Boolean,default:!1},busyLabel:{default:``},disabled:{type:Boolean,default:!1},icon:{type:Boolean,default:!1}},setup(e){return(c,l)=>(n(),r(`button`,{type:e.type,class:a([`ui-button`,[`ui-button--${e.variant}`,{"ui-button--sm":e.size===`sm`,"ui-button--icon":e.icon}]]),disabled:e.disabled||e.busy,"aria-busy":e.busy||void 0},[e.busy?(n(),i(o,{key:0,variant:`inline`,label:e.busyLabel},null,8,[`label`])):t(c.$slots,`default`,{},void 0,void 0,1)],10,s))}});export{c as t};
1
+ import{E as e,L as t,P as n,S as r,b as i,it as a}from"./i18n-B4Fp9Oa5.js";import{s as o}from"./client-DodUFQDp.js";var s=[`type`,`disabled`,`aria-busy`],c=e({__name:`UiButton`,props:{variant:{default:`default`},size:{default:`md`},type:{default:`button`},busy:{type:Boolean,default:!1},busyLabel:{default:``},disabled:{type:Boolean,default:!1},icon:{type:Boolean,default:!1}},setup(e){return(c,l)=>(n(),r(`button`,{type:e.type,class:a([`ui-button`,[`ui-button--${e.variant}`,{"ui-button--sm":e.size===`sm`,"ui-button--icon":e.icon}]]),disabled:e.disabled||e.busy,"aria-busy":e.busy||void 0},[e.busy?(n(),i(o,{key:0,variant:`inline`,label:e.busyLabel},null,8,[`label`])):t(c.$slots,`default`,{},void 0,void 0,1)],10,s))}});export{c as t};
@@ -1 +1 @@
1
- import{B as e,E as t,H as n,L as r,M as i,P as a,Q as o,R as s,S as c,a as l,b as u,h as d,it as f,j as p,ot as m,rt as h,x as g,y as _,z as v}from"./i18n-oJFlt8hW.js";var y=[`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`a[href]`,`[contenteditable="true"]`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function b(t,n){let r=o(null),a=o(null),s=null,c=0;e(t,e=>{let n=++c;if(e){s=document.activeElement instanceof HTMLElement?document.activeElement:null,p().then(()=>{if(n!==c||!t())return;let e=r.value;if(!e)return;e.open||e.showModal();let i=e.querySelector(`.ui-dialog__body`);(a.value??e.querySelector(`[autofocus]`)??(i?x(i)[0]:void 0)??x(e)[0])?.focus({preventScroll:!0})});return}let i=r.value;i?.open&&i.close(),l(n)},{immediate:!0}),i(()=>{c+=1;let e=r.value;e?.open&&e.close();let t=s;s=null,t?.isConnected&&t.focus({preventScroll:!0})});function l(e){let t=s;s=null,p().then(()=>{e!==c||!t?.isConnected||t.focus({preventScroll:!0})})}function u(e){e.preventDefault(),n()}function d(e){if(e.key!==`Tab`)return;let t=r.value;if(!t)return;let n=x(t);if(!n.length){e.preventDefault(),t.focus({preventScroll:!0});return}let i=n[0],a=n.at(-1)??i,o=document.activeElement;e.shiftKey&&(o===i||!t.contains(o))?(e.preventDefault(),a.focus({preventScroll:!0})):!e.shiftKey&&(o===a||!t.contains(o))&&(e.preventDefault(),i.focus({preventScroll:!0}))}return{dialogRef:r,initialFocusRef:a,onCancel:u,onKeydown:d}}function x(e){return[...e.querySelectorAll(y)].filter(e=>!e.hidden&&e.getAttribute(`aria-hidden`)!==`true`)}var S=[`aria-busy`],C={class:`ui-dialog__header`},w={key:0},T=[`disabled`,`aria-label`],E={class:`ui-dialog__body`},D={key:0,class:`ui-dialog__error`,role:`alert`},O={key:0,class:`ui-dialog__footer`},k=t({__name:`UiDialog`,props:{open:{type:Boolean},title:{},description:{default:void 0},size:{default:`md`},busy:{type:Boolean,default:!1},form:{type:Boolean,default:!1},error:{default:``}},emits:[`close`,`submit`],setup(e,{expose:t,emit:i}){let o=e,p=i,y=`ui-dialog-${v().replace(/[^A-Za-z0-9_-]/g,``)}`,{dialogRef:x,initialFocusRef:k,onCancel:A,onKeydown:j}=b(()=>o.open,M);function M(){o.busy||p(`close`)}return t({initialFocusRef:k}),(t,i)=>e.open?(a(),c(`dialog`,{key:0,ref_key:`dialogRef`,ref:x,class:f([`ui-dialog`,`ui-dialog--${e.size}`]),"aria-modal":`true`,"aria-labelledby":y,"aria-busy":e.busy||void 0,onCancel:i[1]||=(...e)=>h(A)&&h(A)(...e),onKeydown:i[2]||=(...e)=>h(j)&&h(j)(...e)},[(a(),u(s(e.form?`form`:`div`),{class:`ui-dialog__shell`,onSubmit:i[0]||=d(e=>p(`submit`),[`prevent`])},{default:n(()=>[_(`header`,C,[_(`div`,null,[_(`h2`,{id:y},m(e.title),1),e.description?(a(),c(`p`,w,m(e.description),1)):g(``,!0)]),_(`button`,{class:`ui-button ui-button--ghost ui-button--icon ui-button--sm`,type:`button`,disabled:e.busy,"aria-label":h(l)(`common.actions.close`),onClick:M},[...i[3]||=[_(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,"aria-hidden":`true`},[_(`path`,{d:`m4 4 8 8M12 4l-8 8`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})],-1)]],8,T)]),_(`div`,E,[e.error?(a(),c(`p`,D,m(e.error),1)):g(``,!0),r(t.$slots,`default`)]),t.$slots.footer?(a(),c(`footer`,O,[r(t.$slots,`footer`)])):g(``,!0)]),_:3},32))],42,S)):g(``,!0)}});export{k as t};
1
+ import{B as e,E as t,H as n,L as r,M as i,P as a,Q as o,R as s,S as c,a as l,b as u,h as d,it as f,j as p,ot as m,rt as h,x as g,y as _,z as v}from"./i18n-B4Fp9Oa5.js";var y=[`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`a[href]`,`[contenteditable="true"]`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function b(t,n){let r=o(null),a=o(null),s=null,c=0;e(t,e=>{let n=++c;if(e){s=document.activeElement instanceof HTMLElement?document.activeElement:null,p().then(()=>{if(n!==c||!t())return;let e=r.value;if(!e)return;e.open||e.showModal();let i=e.querySelector(`.ui-dialog__body`);(a.value??e.querySelector(`[autofocus]`)??(i?x(i)[0]:void 0)??x(e)[0])?.focus({preventScroll:!0})});return}let i=r.value;i?.open&&i.close(),l(n)},{immediate:!0}),i(()=>{c+=1;let e=r.value;e?.open&&e.close();let t=s;s=null,t?.isConnected&&t.focus({preventScroll:!0})});function l(e){let t=s;s=null,p().then(()=>{e!==c||!t?.isConnected||t.focus({preventScroll:!0})})}function u(e){e.preventDefault(),n()}function d(e){if(e.key!==`Tab`)return;let t=r.value;if(!t)return;let n=x(t);if(!n.length){e.preventDefault(),t.focus({preventScroll:!0});return}let i=n[0],a=n.at(-1)??i,o=document.activeElement;e.shiftKey&&(o===i||!t.contains(o))?(e.preventDefault(),a.focus({preventScroll:!0})):!e.shiftKey&&(o===a||!t.contains(o))&&(e.preventDefault(),i.focus({preventScroll:!0}))}return{dialogRef:r,initialFocusRef:a,onCancel:u,onKeydown:d}}function x(e){return[...e.querySelectorAll(y)].filter(e=>!e.hidden&&e.getAttribute(`aria-hidden`)!==`true`)}var S=[`aria-busy`],C={class:`ui-dialog__header`},w={key:0},T=[`disabled`,`aria-label`],E={class:`ui-dialog__body`},D={key:0,class:`ui-dialog__error`,role:`alert`},O={key:0,class:`ui-dialog__footer`},k=t({__name:`UiDialog`,props:{open:{type:Boolean},title:{},description:{default:void 0},size:{default:`md`},busy:{type:Boolean,default:!1},form:{type:Boolean,default:!1},error:{default:``}},emits:[`close`,`submit`],setup(e,{expose:t,emit:i}){let o=e,p=i,y=`ui-dialog-${v().replace(/[^A-Za-z0-9_-]/g,``)}`,{dialogRef:x,initialFocusRef:k,onCancel:A,onKeydown:j}=b(()=>o.open,M);function M(){o.busy||p(`close`)}return t({initialFocusRef:k}),(t,i)=>e.open?(a(),c(`dialog`,{key:0,ref_key:`dialogRef`,ref:x,class:f([`ui-dialog`,`ui-dialog--${e.size}`]),"aria-modal":`true`,"aria-labelledby":y,"aria-busy":e.busy||void 0,onCancel:i[1]||=(...e)=>h(A)&&h(A)(...e),onKeydown:i[2]||=(...e)=>h(j)&&h(j)(...e)},[(a(),u(s(e.form?`form`:`div`),{class:`ui-dialog__shell`,onSubmit:i[0]||=d(e=>p(`submit`),[`prevent`])},{default:n(()=>[_(`header`,C,[_(`div`,null,[_(`h2`,{id:y},m(e.title),1),e.description?(a(),c(`p`,w,m(e.description),1)):g(``,!0)]),_(`button`,{class:`ui-button ui-button--ghost ui-button--icon ui-button--sm`,type:`button`,disabled:e.busy,"aria-label":h(l)(`common.actions.close`),onClick:M},[...i[3]||=[_(`svg`,{viewBox:`0 0 16 16`,width:`14`,height:`14`,"aria-hidden":`true`},[_(`path`,{d:`m4 4 8 8M12 4l-8 8`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})],-1)]],8,T)]),_(`div`,E,[e.error?(a(),c(`p`,D,m(e.error),1)):g(``,!0),r(t.$slots,`default`)]),t.$slots.footer?(a(),c(`footer`,O,[r(t.$slots,`footer`)])):g(``,!0)]),_:3},32))],42,S)):g(``,!0)}});export{k as t};
@@ -1 +1 @@
1
- import{E as e,L as t,P as n,S as r,ot as i,w as a,y as o}from"./i18n-oJFlt8hW.js";var s=[`open`],c=e({__name:`UiDisclosure`,props:{title:{},open:{type:Boolean,default:!1}},setup(e){return(c,l)=>(n(),r(`details`,{class:`ui-disclosure`,open:e.open},[o(`summary`,null,[a(i(e.title),1),t(c.$slots,`summary`)]),t(c.$slots,`default`)],8,s))}});export{c as t};
1
+ import{E as e,L as t,P as n,S as r,ot as i,w as a,y as o}from"./i18n-B4Fp9Oa5.js";var s=[`open`],c=e({__name:`UiDisclosure`,props:{title:{},open:{type:Boolean,default:!1}},setup(e){return(c,l)=>(n(),r(`details`,{class:`ui-disclosure`,open:e.open},[o(`summary`,null,[a(i(e.title),1),t(c.$slots,`summary`)]),t(c.$slots,`default`)],8,s))}});export{c as t};
@@ -1 +1 @@
1
- import{E as e,I as t,P as n,S as r,g as i,ot as a,w as o,x as s}from"./i18n-oJFlt8hW.js";var c=[`aria-label`],l=[`aria-pressed`,`onClick`],u={key:0},d=e({__name:`UiSegmented`,props:{modelValue:{},options:{},label:{}},emits:[`update:modelValue`],setup(e){return(d,f)=>(n(),r(`div`,{class:`ui-segmented`,role:`group`,"aria-label":e.label},[(n(!0),r(i,null,t(e.options,t=>(n(),r(`button`,{key:t.value,type:`button`,"aria-pressed":t.value===e.modelValue,onClick:e=>d.$emit(`update:modelValue`,t.value)},[o(a(t.label),1),t.count===void 0?s(``,!0):(n(),r(`small`,u,a(t.count),1))],8,l))),128))],8,c))}});export{d as t};
1
+ import{E as e,I as t,P as n,S as r,g as i,ot as a,w as o,x as s}from"./i18n-B4Fp9Oa5.js";var c=[`aria-label`],l=[`aria-pressed`,`onClick`],u={key:0},d=e({__name:`UiSegmented`,props:{modelValue:{},options:{},label:{}},emits:[`update:modelValue`],setup(e){return(d,f)=>(n(),r(`div`,{class:`ui-segmented`,role:`group`,"aria-label":e.label},[(n(!0),r(i,null,t(e.options,t=>(n(),r(`button`,{key:t.value,type:`button`,"aria-pressed":t.value===e.modelValue,onClick:e=>d.$emit(`update:modelValue`,t.value)},[o(a(t.label),1),t.count===void 0?s(``,!0):(n(),r(`small`,u,a(t.count),1))],8,l))),128))],8,c))}});export{d as t};