fuli-context 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +0 -24
  2. package/dist/web/assets/ConnectionsPage-CCKWm-6p.js +1 -0
  3. package/dist/web/assets/KnowledgeInspector-BZkB2wJn.js +1 -0
  4. package/dist/web/assets/KnowledgeInspector-CrGYxEob.css +1 -0
  5. package/dist/web/assets/KnowledgeOrganizerPage-CJCNI2Wd.css +1 -0
  6. package/dist/web/assets/KnowledgeOrganizerPage-PXH-TlGt.js +1 -0
  7. package/dist/web/assets/KnowledgePage-CNQXd15y.js +1 -0
  8. package/dist/web/assets/KnowledgeWorkspace-CXPE4GCD.js +4 -0
  9. package/dist/web/assets/OverviewPage-ul7g7HXh.js +1 -0
  10. package/dist/web/assets/PersonalProfilePage-CC40Pw2L.js +1 -0
  11. package/dist/web/assets/PersonalProfilePage-S8ZcG2LU.css +1 -0
  12. package/dist/web/assets/PersonalProjectsPage-CPIEcShD.js +1 -0
  13. package/dist/web/assets/PublicProjectsPage-C700sR7z.js +1 -0
  14. package/dist/web/assets/ReviewPage-7MDDUDgA.js +1 -0
  15. package/dist/web/assets/console-B_Ena2DS.js +5 -0
  16. package/dist/web/assets/identity-CjBwYSMX.js +1 -0
  17. package/dist/web/assets/index-BQRkOwPx.js +2 -0
  18. package/dist/web/assets/{index-Devf7glZ.css → index-CpLDx3of.css} +1 -1
  19. package/dist/web/assets/model-C-5RVIJ2.js +1 -0
  20. package/dist/web/assets/{paths-B790iniO.js → paths-BkULqmGI.js} +1 -1
  21. package/dist/web/assets/{vue-router-BYTAoWT3.js → vue-router-DnD3hUm7.js} +1 -1
  22. package/dist/web/index.html +5 -6
  23. package/graph-provider/fuli_graph/app.py +48 -0
  24. package/graph-provider/fuli_graph/common_knowledge.py +443 -0
  25. package/graph-provider/fuli_graph/common_knowledge_models.py +54 -0
  26. package/graph-provider/fuli_graph/graph_models.py +9 -0
  27. package/graph-provider/fuli_graph/graph_query.py +25 -0
  28. package/graph-provider/fuli_graph/knowledge_audit.py +211 -0
  29. package/graph-provider/fuli_graph/knowledge_feedback_models.py +69 -0
  30. package/graph-provider/fuli_graph/knowledge_management.py +37 -0
  31. package/graph-provider/fuli_graph/knowledge_search.py +24 -2
  32. package/graph-provider/fuli_graph/models.py +69 -0
  33. package/graph-provider/fuli_graph/search_projection.py +59 -0
  34. package/graph-provider/fuli_graph/store_knowledge.py +2 -0
  35. package/graph-provider/pyproject.toml +1 -1
  36. package/npm-shrinkwrap.json +97 -2
  37. package/package.json +2 -1
  38. package/skills/capturing-session-knowledge/SKILL.md +83 -13
  39. package/src/agent-tools/graph-definitions.js +181 -13
  40. package/src/agent-tools/graph-handlers.js +19 -0
  41. package/src/cli/command-registry.js +1 -56
  42. package/src/cli.js +2 -37
  43. package/src/graphiti/agent-knowledge-workflows.js +543 -0
  44. package/src/graphiti/federated-application.js +85 -104
  45. package/src/graphiti/knowledge-provider-mapping.js +91 -0
  46. package/src/graphiti/provider-client.js +15 -0
  47. package/src/graphiti/source-uri.js +29 -0
  48. package/src/mcp/common-knowledge-preview-tokens.js +67 -0
  49. package/src/mcp/create-mcp-server.js +43 -7
  50. package/src/mcp/instructions.js +6 -7
  51. package/src/mcp/lifecycle-audit.js +27 -0
  52. package/src/mcp/task-context-registry.js +93 -0
  53. package/src/mcp/tool-annotations.js +16 -1
  54. package/src/mcp/tool-result.js +24 -0
  55. package/src/runtime-options.js +7 -8
  56. package/src/setup/agent-installation-status.js +14 -2
  57. package/src/setup/agents.js +12 -1
  58. package/src/setup/claude-code-config.js +194 -0
  59. package/src/setup/config-backup.js +20 -5
  60. package/dist/web/assets/ConnectionsPage-CY6H_mJJ.js +0 -1
  61. package/dist/web/assets/KnowledgeInspector-BSpz5Sfm.js +0 -1
  62. package/dist/web/assets/KnowledgeInspector-CHbB_0rC.css +0 -1
  63. package/dist/web/assets/KnowledgeOrganizerPage-BlEvhPrv.css +0 -1
  64. package/dist/web/assets/KnowledgeOrganizerPage-CvjGPlUc.js +0 -1
  65. package/dist/web/assets/KnowledgePage-Khuo3cNs.js +0 -1
  66. package/dist/web/assets/KnowledgeWorkspace-DVZusvem.js +0 -4
  67. package/dist/web/assets/OverviewPage-DC4C4Fhn.js +0 -1
  68. package/dist/web/assets/PersonalProfilePage-CSV9Mtgz.js +0 -1
  69. package/dist/web/assets/PersonalProfilePage-CVJ3TcRi.css +0 -1
  70. package/dist/web/assets/PersonalProjectsPage-A50EaseQ.js +0 -1
  71. package/dist/web/assets/PublicProjectsPage-BAdO_bae.js +0 -1
  72. package/dist/web/assets/ReviewPage-Dztk2jDG.js +0 -1
  73. package/dist/web/assets/console-tbvTUi6p.js +0 -1
  74. package/dist/web/assets/identity-B3s5CXhv.js +0 -1
  75. package/dist/web/assets/index-DwUDhQKc.js +0 -6
  76. package/dist/web/assets/model-DVT8sjy9.js +0 -1
  77. package/dist/web/assets/runtime-dom.esm-bundler-DttsK21F.js +0 -1
  78. package/src/cli/commands/candidates.js +0 -17
  79. package/src/cli/commands/ingestion.js +0 -32
  80. package/src/cli/commands/reads.js +0 -50
  81. package/src/cli/commands/spaces.js +0 -20
  82. package/src/cli/invocation.js +0 -47
  83. package/src/cli/migrate-command.js +0 -71
  84. package/src/cli/migration-destination.js +0 -117
  85. package/src/storage/import-json.js +0 -70
  86. package/src/storage/legacy-record-validation.js +0 -152
  87. package/src/storage/legacy-snapshot-validation.js +0 -32
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,F as r,J as i,K as a,N as o,R as s,T as c,U as l,V as u,_ as d,a as ee,b as f,c as p,d as m,g as h,i as g,q as _,r as v,t as te,w as y,x as b,y as x}from"./console-B_Ena2DS.js";import{i as S}from"./identity-CjBwYSMX.js";import{E as C,S as w,T,_ as E,b as D,g as O,l as k}from"./model-C-5RVIJ2.js";import{i as A,n as j,r as M,t as N}from"./KnowledgeInspector-BZkB2wJn.js";function ne(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(!H(a,o)||!U(a,o)||W(a,o))continue;let[s,c]=ie(a,o),l=z(I(s),I(c)),u=V(l)?`complementary`:`review`,d=t.find(e=>e.status===`ai_pending`&&P(e,s,c))??null;n.push({id:K(s,c),preferenceKey:F(s),scopeKey:L(s),scopeLabel:R(s),left:s,right:c,difference:l,relation:u,recommendedAction:u===`complementary`?`merge`:null,reason:m(`preferences.shared.conflictReason`,{key:F(s)}),aiRecord:d})}return n.sort((e,t)=>{let n=p();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function re(e){return[e.left_item_id,e.right_item_id]}function P(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 F(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function I(e){return e.body.trim()}function L(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function R(e){return e.preferenceScope===`project`&&e.preferenceProjectId?m(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):m(`preferences.shared.personalGlobal`)}function z(e,t){let n=q(e),r=q(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&ae(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(J(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 B(e,t){let n=[...q(e)];for(let e of q(t)){let t=n.findIndex(t=>ae(t,e));if(t<0){n.push(e);continue}n[t]=J(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function V(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function H(e,t){return L(e)===L(t)}function U(e,t){return Y(F(e))===Y(F(t))}function W(e,t){return Y(I(e))===Y(I(t))}function ie(e,t){let n=G(e),r=G(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function G(e){let t=E(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function K(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function q(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function ae(e,t){let n=Y(e),r=Y(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 J(e,t){return Y(e).length>=Y(t).length?e:t}function Y(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var X={key:0,open:``,class:`project-dialog conflict-resolution-dialog vue-dialog`},oe={class:`project-dialog-shell conflict-resolution-shell`},se={class:`project-dialog-header`},Z=[`disabled`],ce=[`aria-label`],le=[`aria-label`],Q={class:`conflict-side conflict-side-left`},ue={class:`conflict-side-heading`},de={class:`conflict-side conflict-side-right`},fe={class:`conflict-side-heading`},$=[`aria-label`],pe={key:0},me={key:1,class:`muted`},he={key:0},ge={key:1,class:`muted`},_e={key:0},ve={key:1,class:`muted`},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=[`aria-label`],De=[`aria-pressed`],Oe=[`aria-pressed`],ke={key:1,class:`conflict-resolution-detail`},Ae=[`aria-label`],je=[`aria-pressed`],Me=[`aria-pressed`],Ne={value:``,disabled:``},Pe=[`value`],Fe={class:`conflict-impact-preview`},Ie={class:`conflict-resolution-reason`},Le={key:2,class:`dialog-error`},Re={class:`project-dialog-actions conflict-resolution-actions`},ze=[`disabled`],Be=[`disabled`],Ve=A(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:n}){let p=t,_=n,v=te(),S=l(null),C=l(`right`),w=l(`right`),T=l(``),D=l(``),O=l(``),A=l(``),j=l(!1),M=l(``),N=f(()=>{let e=p.conflict;if(!e)return[];let t=w.value===`left`?e.left:e.right;return p.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),ne=f(()=>N.value.length>0),re=f(()=>{let e=p.conflict;if(!e||!S.value)return m(`preferences.dialog.impact.choose`);if(S.value===`merge`){let t=C.value===`left`?e.left:e.right,n=C.value===`left`?e.right:e.left;return m(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(S.value===`keep_left`||S.value===`keep_right`){let t=S.value===`keep_left`?e.left:e.right,n=S.value===`keep_left`?e.right:e.left;return m(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=w.value===`left`?e.left:e.right,n=N.value.find(({project_id:e})=>e===T.value);return n?m(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):m(`preferences.dialog.impact.chooseProject`)});s(()=>p.conflict,e=>{e&&(C.value=`right`,w.value=`right`,D.value=B(I(e.right),I(e.left)),S.value=e.recommendedAction,T.value=``,M.value=``,F(e.recommendedAction))},{immediate:!0}),s([w,N],()=>{T.value&&N.value.some(({project_id:e})=>e===T.value)||(T.value=N.value[0]?.project_id??``)},{immediate:!0});function P(e){S.value=e,(!O.value.trim()||O.value===A.value)&&F(e)}function F(e){let t=p.conflict,n=t&&e?U(e,t):``;A.value=n,O.value=n}async function L(){let e=p.conflict;if(!e||!S.value)return W(m(`preferences.dialog.errors.actionRequired`));if(!O.value.trim())return W(m(`preferences.dialog.errors.reasonRequired`));if(S.value===`merge`&&!D.value.trim())return W(m(`preferences.dialog.errors.mergedValueRequired`));if(S.value===`split_scope`&&!T.value)return W(m(`preferences.dialog.errors.projectRequired`));j.value=!0,M.value=``;try{S.value===`merge`?await R(e):S.value===`split_scope`?await V(e):await z(e,S.value),e.aiRecord&&await ee(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:p.personalSpaceId,resolution:S.value,reason:O.value.trim()}),v.notify(m(`preferences.dialog.resolved`)),_(`resolved`),_(`close`)}catch(e){M.value=e instanceof Error?e.message:m(`preferences.dialog.errors.failed`),v.reportError(e)}finally{j.value=!1}}async function R(e){let t=C.value===`left`?e.left:e.right,n=C.value===`left`?e.right:e.left,r={personalSpaceId:p.personalSpaceId,personalProjectId:null,action:`update`,reason:O.value.trim()};t.itemKind===`entity`?(r.name=t.title,r.summary=D.value.trim()):r.fact=D.value.trim(),t.classificationExplicit&&t.originQuadrant!==`unclassified`&&(r.originQuadrant=t.originQuadrant,r.confirmationStatus=`confirmed`,r.confirmationBasis={existenceReason:m(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:t.confirmationBasis?.quadrant_reason||t.reasoningSummary||m(`preferences.dialog.audit.keepQuadrant`),proposedBy:t.confirmationBasis?.proposed_by?H(t.confirmationBasis.proposed_by):{kind:`import`,label:m(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:m(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await g(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,r),await g(`/api/knowledge/${n.itemKind}/${encodeURIComponent(n.id)}`,{personalSpaceId:p.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:O.value.trim(),replacementItemId:t.id,replacementItemKind:t.itemKind})}async function z(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await g(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:p.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:O.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function V(e){let t=w.value===`left`?e.left:e.right;await ee(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:p.personalSpaceId,scope:`project`,projectId:T.value,reason:O.value.trim()})}function H(e){return{kind:e.kind,label:e.label??null}}function U(e,t){return e===`merge`?m(`preferences.dialog.defaultReason.merge`):e===`keep_left`?m(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?m(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):m(`preferences.dialog.defaultReason.split`)}function W(e){M.value=e}return(n,s)=>t.conflict?(o(),y(`dialog`,X,[b(`div`,oe,[b(`header`,se,[b(`div`,null,[s[15]||=b(`p`,{class:`eyebrow`},`CONFLICT RESOLUTION`,-1),b(`h3`,null,i(a(m)(`preferences.dialog.title`)),1),b(`p`,null,i(a(m)(`preferences.dialog.intro`,{reason:t.conflict.reason})),1)]),b(`button`,{class:`secondary-action`,type:`button`,disabled:j.value,onClick:s[0]||=e=>_(`close`)},i(a(m)(`common.actions.close`)),9,Z)]),b(`section`,{class:`conflict-pair-context`,"aria-label":a(m)(`preferences.dialog.basisAria`)},[b(`span`,null,[c(i(a(m)(`preferences.dialog.preferenceKey`))+` `,1),b(`strong`,null,i(t.conflict.preferenceKey),1)]),b(`span`,null,[c(i(a(m)(`preferences.dialog.effectiveScope`))+` `,1),b(`strong`,null,i(t.conflict.scopeLabel),1)]),b(`span`,null,[c(i(a(m)(`preferences.dialog.suggestion`))+` `,1),b(`strong`,null,i(t.conflict.recommendedAction===`merge`?a(m)(`preferences.dialog.mergeSuggestion`):a(m)(`preferences.dialog.reviewSuggestion`)),1)])],8,ce),b(`section`,{class:`conflict-comparison`,"aria-label":a(m)(`preferences.dialog.comparisonAria`)},[b(`article`,Q,[b(`div`,ue,[b(`span`,null,i(a(m)(`preferences.dialog.older`)),1),b(`time`,null,i(a(k)(a(E)(t.conflict.left))),1)]),b(`h4`,null,i(t.conflict.left.title),1),b(`p`,null,i(a(I)(t.conflict.left)),1),b(`small`,null,i(a(m)(`preferences.dialog.sourceCount`,{count:t.conflict.left.evidence.length}))+` · `+i(t.conflict.left.id),1),b(`button`,{class:`text-action`,type:`button`,onClick:s[1]||=e=>_(`edit`,t.conflict.left)},i(a(m)(`preferences.dialog.editA`)),1)]),b(`article`,de,[b(`div`,fe,[b(`span`,null,i(a(m)(`preferences.dialog.newer`)),1),b(`time`,null,i(a(k)(a(E)(t.conflict.right))),1)]),b(`h4`,null,i(t.conflict.right.title),1),b(`p`,null,i(a(I)(t.conflict.right)),1),b(`small`,null,i(a(m)(`preferences.dialog.sourceCount`,{count:t.conflict.right.evidence.length}))+` · `+i(t.conflict.right.id),1),b(`button`,{class:`text-action`,type:`button`,onClick:s[2]||=e=>_(`edit`,t.conflict.right)},i(a(m)(`preferences.dialog.editB`)),1)])],8,le),b(`section`,{class:`conflict-difference`,"aria-label":a(m)(`preferences.dialog.differenceAria`)},[b(`div`,null,[b(`span`,null,i(a(m)(`preferences.dialog.shared`)),1),t.conflict.difference.shared.length?(o(),y(`p`,pe,[(o(!0),y(x,null,r(t.conflict.difference.shared,e=>(o(),y(`b`,{key:e},i(e),1))),128))])):(o(),y(`p`,me,i(a(m)(`preferences.dialog.noShared`)),1))]),b(`div`,null,[b(`span`,null,i(a(m)(`preferences.dialog.onlyA`)),1),t.conflict.difference.leftOnly.length?(o(),y(`p`,he,[(o(!0),y(x,null,r(t.conflict.difference.leftOnly,e=>(o(),y(`b`,{key:e},i(e),1))),128))])):(o(),y(`p`,ge,i(a(m)(`preferences.dialog.noUnique`)),1))]),b(`div`,null,[b(`span`,null,i(a(m)(`preferences.dialog.onlyB`)),1),t.conflict.difference.rightOnly.length?(o(),y(`p`,_e,[(o(!0),y(x,null,r(t.conflict.difference.rightOnly,e=>(o(),y(`b`,{key:e},i(e),1))),128))])):(o(),y(`p`,ve,i(a(m)(`preferences.dialog.noUnique`)),1))])],8,$),b(`section`,{class:`conflict-resolution-options`,"aria-label":a(m)(`preferences.dialog.actionsAria`)},[b(`button`,{type:`button`,"aria-pressed":S.value===`merge`,onClick:s[3]||=e=>P(`merge`)},[b(`strong`,null,i(a(m)(`preferences.dialog.actions.merge`)),1),b(`span`,null,i(a(m)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(o(),y(`em`,xe,i(a(m)(`preferences.dialog.actions.recommended`)),1)):e(``,!0)],8,be),b(`button`,{type:`button`,"aria-pressed":S.value===`keep_left`,onClick:s[4]||=e=>P(`keep_left`)},[b(`strong`,null,i(a(m)(`preferences.dialog.actions.keepA`)),1),b(`span`,null,i(a(m)(`preferences.dialog.actions.keepACopy`)),1)],8,Se),b(`button`,{type:`button`,"aria-pressed":S.value===`keep_right`,onClick:s[5]||=e=>P(`keep_right`)},[b(`strong`,null,i(a(m)(`preferences.dialog.actions.keepB`)),1),b(`span`,null,i(a(m)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ce),b(`button`,{type:`button`,disabled:!ne.value,"aria-pressed":S.value===`split_scope`,onClick:s[6]||=e=>P(`split_scope`)},[b(`strong`,null,i(a(m)(`preferences.dialog.actions.split`)),1),b(`span`,null,i(ne.value?a(m)(`preferences.dialog.actions.splitCopy`):a(m)(`preferences.dialog.actions.noProjects`)),1)],8,we)],8,ye),S.value===`merge`?(o(),y(`section`,Te,[b(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":a(m)(`preferences.dialog.mergeIdentityAria`)},[b(`span`,null,i(a(m)(`preferences.dialog.canonicalIdentity`)),1),b(`button`,{type:`button`,"aria-pressed":C.value===`left`,onClick:s[7]||=e=>C.value=`left`},i(a(m)(`preferences.dialog.identityA`)),9,De),b(`button`,{type:`button`,"aria-pressed":C.value===`right`,onClick:s[8]||=e=>C.value=`right`},i(a(m)(`preferences.dialog.identityB`)),9,Oe)],8,Ee),b(`label`,null,[c(i(a(m)(`preferences.dialog.mergedContent`))+` `,1),u(b(`textarea`,{"onUpdate:modelValue":s[9]||=e=>D.value=e,rows:`4`,maxlength:`4096`},null,512),[[d,D.value]])])])):e(``,!0),S.value===`split_scope`?(o(),y(`section`,ke,[b(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":a(m)(`preferences.dialog.splitRecordAria`)},[b(`span`,null,i(a(m)(`preferences.dialog.adjustRecord`)),1),b(`button`,{type:`button`,"aria-pressed":w.value===`left`,onClick:s[10]||=e=>w.value=`left`},` A `,8,je),b(`button`,{type:`button`,"aria-pressed":w.value===`right`,onClick:s[11]||=e=>w.value=`right`},` B `,8,Me)],8,Ae),b(`label`,null,[c(i(a(m)(`preferences.dialog.projectOnly`))+` `,1),u(b(`select`,{"onUpdate:modelValue":s[12]||=e=>T.value=e},[b(`option`,Ne,i(a(m)(`preferences.dialog.chooseProject`)),1),(o(!0),y(x,null,r(N.value,e=>(o(),y(`option`,{key:e.project_id,value:e.project_id},i(e.profile.name),9,Pe))),128))],512),[[h,T.value]])])])):e(``,!0),b(`section`,Fe,[b(`span`,null,i(a(m)(`preferences.dialog.impactTitle`)),1),b(`p`,null,i(re.value),1)]),b(`label`,Ie,[c(i(a(m)(`preferences.dialog.reason`))+` `,1),u(b(`textarea`,{"onUpdate:modelValue":s[13]||=e=>O.value=e,rows:`2`,maxlength:`2000`},null,512),[[d,O.value]])]),M.value?(o(),y(`p`,Le,i(M.value),1)):e(``,!0),b(`footer`,Re,[b(`span`,null,i(a(m)(`preferences.dialog.pendingCopy`)),1),b(`div`,null,[b(`button`,{class:`secondary-action`,type:`button`,disabled:j.value,onClick:s[14]||=e=>_(`close`)},i(a(m)(`preferences.dialog.defer`)),9,ze),b(`button`,{class:`primary-action`,type:`button`,disabled:j.value||!S.value,onClick:L},i(j.value?a(m)(`preferences.dialog.processing`):a(m)(`preferences.dialog.confirm`)),9,Be)])])])])):e(``,!0)}}),[[`__scopeId`,`data-v-dee70ac5`]]),He={class:`view vue-personal-profile`},Ue=[`aria-label`],We=[`aria-label`,`aria-pressed`],Ge=[`aria-label`,`aria-pressed`],Ke=[`aria-label`,`aria-pressed`],qe={key:0},Je={key:1},Ye=[`aria-label`,`aria-pressed`],Xe=[`aria-label`],Ze={class:`personal-profile-toolbar`},Qe={class:`personal-profile-filter-groups`},$e=[`aria-label`],et=[`aria-pressed`,`onClick`],tt={class:`personal-profile-toolbar-actions`},nt={key:0,class:`muted`},rt={key:1,class:`muted`},it={key:2,class:`muted`},at=[`aria-label`],ot={class:`preference-conflict-list`},st={class:`preference-conflict-card-heading`},ct={class:`preference-conflict-pair`},lt={key:0},ut={class:`preference-conflict-actions`},dt=[`disabled`,`onClick`],ft=[`onClick`],pt={key:0,class:`empty-state`},mt={key:2,class:`personal-profile-layout`},ht=[`aria-label`],gt={class:`personal-profile-table-head`,"aria-hidden":`true`},_t={class:`personal-profile-list`},vt=[`onClick`],yt={class:`personal-profile-copy`},bt={class:`personal-profile-origin`},xt={key:0,class:`empty-state`},St=A(t({__name:`PersonalProfilePage`,setup(t){let u=te(),d=l(null),h=l(!1),g=l(`all`),A=l(`all`),P=l(`all`),F=l(!1),L=l(null),R=l(null),z=l(null),B=l(null),V=l([]),H=l(``),U=f(()=>D(d.value)),W=f(()=>ne(U.value,V.value)),ie=f(()=>new Set(W.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),G=f(()=>new Set(V.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(re))),K=f(()=>U.value.filter(e=>Q(e)&&(P.value===`all`||O(e)===P.value))),q=f(()=>W.value.filter(({left:e,right:t})=>Q(e)||Q(t))),ae=f(()=>[[`all`,m(`preferences.profile.filters.all`)],[`taste`,m(`preferences.profile.filters.taste`)],[`personality`,m(`preferences.profile.filters.personality`)],[`judgment_preference`,m(`preferences.profile.filters.judgment`)]]),J=f(()=>{let e=new Map((u.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),t=[...new Set(U.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,p()));return[{value:`all`,label:m(`preferences.profile.scopes.all`),meta:m(`common.counts.items`,{count:U.value.length})},{value:`global`,label:m(`preferences.profile.scopes.global`),meta:m(`common.counts.items`,{count:U.value.filter(({preferenceScope:e})=>e!==`project`).length})},...t.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:m(`preferences.profile.scopes.projectMeta`,{count:U.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),Y=f(()=>U.value.filter(e=>O(e)===`confirmed`).length),X=f(()=>U.value.filter(e=>O(e)===`pending`).length),oe=f(()=>U.value.filter(e=>O(e)===`agent_confirmed`).length),se=f(()=>F.value?m(`preferences.profile.summaryGuidance.conflicts`):P.value===`pending`?m(`preferences.profile.summaryGuidance.pending`):P.value===`confirmed`?m(`preferences.profile.summaryGuidance.confirmed`):P.value===`agent_confirmed`?m(`preferences.profile.summaryGuidance.agentConfirmed`):m(`preferences.profile.summaryGuidance.default`));s(()=>u.activePersonalSpace?.id,e=>{e&&Z(e)},{immediate:!0}),s([g,A,P,F],()=>{L.value&&!K.value.some(({id:e})=>e===L.value?.id)&&(L.value=null)}),s(J,e=>{e.some(({value:e})=>e===A.value)||(A.value=`all`)});async function Z(e=u.activePersonalSpace?.id){if(e){h.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`}),n=new URLSearchParams({personalSpaceId:e,limit:`500`}),[r,i]=await Promise.all([v(`/api/graph?${t}`),v(`/api/preference-conflicts?${n}`)]);d.value=r,V.value=Array.isArray(i)?i:[],L.value&&=U.value.find(({id:e})=>e===L.value?.id)??null}catch(e){d.value=null,u.reportError(e)}finally{h.value=!1}}}function ce(e){let t=C(e),n=W.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${m(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${m(`preferences.profile.statusSuffix.conflict`)}`:G.value.has(e.id)?`${t} · ${m(`preferences.profile.statusSuffix.aiResolved`)}`:t}function le(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return m(`preferences.shared.personalGlobal`);let t=u.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return m(`preferences.shared.projectOnly`,{project:t?.profile.name??e.preferenceProjectId})}function Q(e){if(g.value!==`all`&&e.profileAspect!==g.value||A.value===`global`&&e.preferenceScope===`project`)return!1;if(A.value.startsWith(`project:`)){let t=A.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function ue(e){if(e.scopeKey===`global`)return m(`preferences.shared.personalGlobal`);let t=e.scopeKey.slice(8),n=u.state?.personalProjects?.find(({project_id:e})=>e===t);return m(`preferences.shared.projectOnly`,{project:n?.profile.name??t})}function de(e){g.value=e.profileAspect??`all`,A.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,F.value=!1,L.value=e}function fe(e){B.value=null,z.value=e}function $(e){let t=!F.value&&P.value===e?`all`:e;F.value=!1,P.value=t,t!==`all`&&(L.value=K.value.at(0)??null)}function pe(e=!1){let t=e||!F.value;F.value=t,t&&(P.value=`all`,L.value=null)}async function me(e){let t=u.activePersonalSpace?.id;if(!(!t||e.aiRecord)){H.value=e.id;try{let n=await ee(`/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:m(`preferences.profile.deferReason`)});V.value=[n,...V.value.filter(({id:e})=>e!==n.id)],u.notify(m(`preferences.profile.deferNotice`))}catch(e){u.reportError(e)}finally{H.value=``}}}return(t,s)=>(o(),y(`section`,He,[b(`div`,{class:`personal-profile-summary`,"aria-label":a(m)(`preferences.profile.summaryAria`)},[b(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":a(m)(`preferences.profile.summary.confirmedAria`,{count:Y.value}),"aria-pressed":!F.value&&P.value===`confirmed`,onClick:s[0]||=e=>$(`confirmed`)},[b(`strong`,null,i(Y.value),1),c(i(a(m)(`preferences.profile.summary.confirmed`))+` `,1),b(`small`,null,i(a(m)(`preferences.profile.summary.viewRecords`)),1)],8,We),b(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":a(m)(`preferences.profile.summary.agentConfirmedAria`,{count:oe.value}),"aria-pressed":!F.value&&P.value===`agent_confirmed`,onClick:s[1]||=e=>$(`agent_confirmed`)},[b(`strong`,null,i(oe.value),1),c(i(a(m)(`preferences.profile.summary.agentConfirmed`))+` `,1),b(`small`,null,i(a(m)(`preferences.profile.summary.belowHuman`)),1)],8,Ge),b(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":a(m)(`preferences.profile.summary.pendingAria`,{count:X.value}),"aria-pressed":!F.value&&P.value===`pending`,onClick:s[2]||=e=>$(`pending`)},[b(`strong`,null,i(X.value),1),c(i(a(m)(`preferences.profile.summary.pending`))+` `,1),X.value?(o(),y(`small`,qe,i(a(m)(`preferences.profile.summary.reviewAndConfirm`)),1)):(o(),y(`small`,Je,i(a(m)(`preferences.profile.summary.viewRecords`)),1))],8,Ke),b(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":W.value.length?a(m)(`preferences.profile.summary.conflictAria`,{count:W.value.length}):a(m)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":F.value,onClick:s[3]||=e=>pe()},[b(`strong`,null,i(W.value.length),1),c(i(a(m)(`preferences.profile.summary.conflicts`))+` `,1),b(`small`,null,i(W.value.length?a(m)(`preferences.profile.summary.reviewAndHandle`):a(m)(`preferences.profile.summary.viewRecords`)),1)],8,Ye),b(`p`,null,i(se.value),1)],8,Ue),W.value.length&&!F.value&&P.value===`all`?(o(),y(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":a(m)(`preferences.profile.alert.aria`)},[s[15]||=b(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),b(`div`,null,[b(`span`,null,i(a(m)(`preferences.profile.alert.kicker`)),1),b(`h2`,null,i(a(m)(`preferences.profile.alert.title`,{count:W.value.length})),1),b(`p`,null,i(a(m)(`preferences.profile.alert.copy`)),1)]),b(`button`,{class:`primary-action`,type:`button`,onClick:s[4]||=e=>pe(!0)},i(a(m)(`preferences.profile.alert.action`)),1)],8,Xe)):e(``,!0),b(`div`,Ze,[b(`div`,Qe,[b(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":a(m)(`preferences.profile.filters.aspectAria`)},[(o(!0),y(x,null,r(ae.value,([e,t])=>(o(),y(`button`,{key:e,type:`button`,"aria-pressed":g.value===e,onClick:t=>g.value=e},i(t),9,et))),128))],8,$e),n(S,{modelValue:A.value,"onUpdate:modelValue":s[5]||=e=>A.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:a(m)(`preferences.profile.filters.scopeLabel`),options:J.value,"search-placeholder":a(m)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),b(`div`,tt,[F.value?(o(),y(`span`,nt,i(a(m)(`preferences.profile.filters.conflictsCount`,{visible:q.value.length,total:W.value.length})),1)):P.value===`all`?(o(),y(`span`,it,i(K.value.length===U.value.length?a(m)(`preferences.profile.filters.personalUnderstanding`,{count:U.value.length}):a(m)(`preferences.profile.filters.visibleCount`,{visible:K.value.length,total:U.value.length})),1)):(o(),y(`span`,rt,i(a(m)(`preferences.profile.filters.reviewCount`,{count:K.value.length,status:P.value===`pending`?a(m)(`preferences.profile.summary.pending`):P.value===`agent_confirmed`?a(m)(`preferences.profile.summary.agentConfirmed`):a(m)(`preferences.profile.summary.confirmed`)})),1)),b(`button`,{class:`toolbar-action`,type:`button`,onClick:s[6]||=e=>Z()},i(a(m)(`common.actions.refresh`)),1)])]),F.value?(o(),y(`section`,{key:1,class:`preference-conflict-workbench`,"aria-label":a(m)(`preferences.profile.workbench.aria`)},[b(`header`,null,[b(`div`,null,[s[16]||=b(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),b(`h2`,null,i(a(m)(`preferences.profile.workbench.title`)),1)]),b(`p`,null,i(a(m)(`preferences.profile.workbench.copy`)),1)]),b(`div`,ot,[(o(!0),y(x,null,r(q.value,(t,n)=>(o(),y(`article`,{key:t.id,class:`preference-conflict-card`},[b(`div`,st,[b(`div`,null,[b(`span`,null,i(a(m)(`preferences.profile.workbench.group`,{index:n+1})),1),b(`h3`,null,i(t.preferenceKey),1)]),b(`div`,null,[b(`span`,null,i(ue(t)),1),b(`strong`,null,i(t.aiRecord?a(m)(`preferences.profile.workbench.aiPending`):t.recommendedAction===`merge`?a(m)(`preferences.profile.workbench.mergeSuggested`):a(m)(`preferences.profile.workbench.humanReview`)),1)])]),b(`div`,ct,[b(`section`,null,[b(`span`,null,i(a(m)(`preferences.profile.workbench.older`)),1),b(`strong`,null,i(t.left.title),1),b(`p`,null,i(a(I)(t.left)),1),b(`small`,null,i(a(k)(a(E)(t.left))),1)]),s[17]||=b(`i`,{"aria-hidden":`true`},`↔`,-1),b(`section`,null,[b(`span`,null,i(a(m)(`preferences.profile.workbench.newer`)),1),b(`strong`,null,i(t.right.title),1),b(`p`,null,i(a(I)(t.right)),1),b(`small`,null,i(a(k)(a(E)(t.right))),1)])]),b(`footer`,null,[b(`div`,null,[b(`span`,null,i(a(m)(`preferences.profile.workbench.reason`)),1),b(`p`,null,i(t.reason),1),t.difference.rightOnly.length?(o(),y(`small`,lt,i(a(m)(`preferences.profile.workbench.additions`,{values:t.difference.rightOnly.join(`、`)})),1)):e(``,!0)]),b(`div`,ut,[b(`button`,{class:`secondary-action`,type:`button`,disabled:!!t.aiRecord||H.value===t.id,onClick:e=>me(t)},i(t.aiRecord?a(m)(`preferences.profile.workbench.deferred`):H.value===t.id?a(m)(`preferences.profile.workbench.deferring`):a(m)(`preferences.profile.workbench.defer`)),9,dt),b(`button`,{class:`primary-action`,type:`button`,onClick:e=>B.value=t},i(a(m)(`preferences.profile.workbench.handleNow`)),9,ft)])])]))),128))]),h.value||!q.value.length?(o(),y(`div`,pt,i(h.value?a(m)(`preferences.profile.workbench.loading`):W.value.length?a(m)(`preferences.profile.workbench.noFiltered`):a(m)(`preferences.profile.workbench.empty`)),1)):e(``,!0)],8,at)):(o(),y(`div`,mt,[b(`section`,{class:`personal-profile-directory`,"aria-label":a(m)(`preferences.profile.directory.aria`)},[b(`div`,gt,[b(`span`,null,i(a(m)(`preferences.profile.directory.aspect`)),1),b(`span`,null,i(a(m)(`preferences.profile.directory.content`)),1),b(`span`,null,i(a(m)(`preferences.profile.directory.statusScopeSource`)),1),b(`span`,null,i(a(m)(`preferences.profile.directory.updated`)),1)]),b(`div`,_t,[(o(!0),y(x,null,r(K.value,e=>(o(),y(`button`,{key:`${e.itemKind}:${e.id}`,class:_([`personal-profile-row`,{selected:L.value?.id===e.id,"pending-review":a(O)(e)===`pending`,"ai-resolved-conflict":G.value.has(e.id)}]),type:`button`,onClick:t=>L.value=e},[b(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},i(a(w)(e.profileAspect)),3),b(`span`,yt,[b(`strong`,null,i(e.title),1),b(`small`,null,i(e.body),1)]),b(`span`,bt,[b(`strong`,{class:_({"has-conflict":ie.value.has(e.id)})},i(ce(e)),3),b(`small`,null,i(a(T)(e.originQuadrant))+` · `+i(le(e))+` · `+i(a(m)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),b(`time`,null,i(a(k)(a(E)(e))),1)],10,vt))),128))]),h.value||!K.value.length?(o(),y(`div`,xt,i(h.value?a(m)(`preferences.profile.directory.loading`):U.value.length?a(m)(`preferences.profile.directory.noFiltered`):a(m)(`preferences.profile.directory.empty`)),1)):e(``,!0)],8,ht),n(N,{class:`personal-profile-inspector`,item:L.value,graph:d.value,editable:``,onConfirm:s[7]||=e=>R.value=e,onEdit:s[8]||=e=>z.value=e,onOpenReplacement:de},null,8,[`item`,`graph`])])),n(j,{item:z.value,"personal-space-id":a(u).activePersonalSpace?.id??``,"personal-project-id":null,projects:a(u).state?.personalProjects??[],"replacement-items":U.value,onClose:s[9]||=e=>z.value=null,onSaved:s[10]||=e=>Z()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),n(M,{item:R.value,"personal-space-id":a(u).activePersonalSpace?.id??``,"personal-project-id":null,onClose:s[11]||=e=>R.value=null,onSaved:s[12]||=e=>Z()},null,8,[`item`,`personal-space-id`]),n(Ve,{conflict:B.value,"personal-space-id":a(u).activePersonalSpace?.id??``,projects:a(u).state?.personalProjects??[],onClose:s[13]||=e=>B.value=null,onResolved:s[14]||=e=>Z(),onEdit:fe},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-db0b68f4`]]);export{St as default};
@@ -0,0 +1 @@
1
+ .conflict-resolution-dialog.vue-dialog[data-v-dee70ac5]{width:min(1180px,100vw - 48px)}.conflict-resolution-shell[data-v-dee70ac5]{overflow:auto}.conflict-pair-context[data-v-dee70ac5]{flex-wrap:wrap;gap:8px;padding:14px 0;display:flex}.conflict-pair-context span[data-v-dee70ac5]{color:#747d77;border:1px solid #e1e5e2;border-radius:999px;padding:6px 9px;font-size:10px}.conflict-pair-context strong[data-v-dee70ac5]{color:#3c4941;margin-left:4px}.conflict-comparison[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.conflict-side[data-v-dee70ac5]{background:#f9fbfa;border:1px solid #dfe5e1;border-radius:10px;align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.conflict-side-left[data-v-dee70ac5]{background:#f1f8fd;border-color:#b8d8ef}.conflict-side-right[data-v-dee70ac5]{background:#f7f4fd;border-color:#d2c6ef}.conflict-side-heading[data-v-dee70ac5]{color:#69736c;justify-content:space-between;gap:12px;font-size:10px;display:flex}.conflict-side h4[data-v-dee70ac5],.conflict-side p[data-v-dee70ac5]{margin:0}.conflict-side h4[data-v-dee70ac5]{color:#2f3d35;font-size:14px}.conflict-side p[data-v-dee70ac5]{color:#45524a;white-space:pre-wrap;min-height:48px;font-size:12px;line-height:1.6}.conflict-side small[data-v-dee70ac5]{color:#7c857f;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.text-action[data-v-dee70ac5]{color:#52705f;background:0 0;border:0;justify-self:start;padding:0;font-size:10px}.conflict-difference[data-v-dee70ac5]{background:#fbfcfb;border:1px solid #e5e7e5;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding:12px;display:grid}.conflict-difference>div[data-v-dee70ac5]{align-content:start;gap:7px;min-width:0;display:grid}.conflict-difference span[data-v-dee70ac5]{color:#7a837d;font-size:9px;font-weight:700}.conflict-difference p[data-v-dee70ac5]{flex-wrap:wrap;gap:5px;margin:0;display:flex}.conflict-difference b[data-v-dee70ac5]{color:#46534b;background:#e9efeb;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:600}.conflict-difference .muted[data-v-dee70ac5]{color:#929993;font-size:10px;display:block}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.conflict-resolution-options>button[data-v-dee70ac5]{color:#3d4942;text-align:left;background:#fff;border:1px solid #dfe4e0;border-radius:9px;align-content:start;gap:6px;min-height:86px;padding:12px;display:grid;position:relative}.conflict-resolution-options>button[aria-pressed=true][data-v-dee70ac5]{background:#f1f7f3;border-color:#7ba08a;box-shadow:inset 0 0 0 1px #7ba08a}.conflict-resolution-options strong[data-v-dee70ac5]{font-size:11px}.conflict-resolution-options span[data-v-dee70ac5]{color:#7a837d;font-size:9px;line-height:1.45}.conflict-resolution-options em[data-v-dee70ac5]{color:#376047;background:#dcecdf;border-radius:999px;padding:2px 5px;font-size:8px;font-style:normal;position:absolute;top:8px;right:8px}.conflict-resolution-detail[data-v-dee70ac5],.conflict-impact-preview[data-v-dee70ac5]{background:#fafcfb;border:1px solid #dfe5e1;border-radius:9px;gap:10px;margin-top:12px;padding:13px;display:grid}.conflict-resolution-detail label[data-v-dee70ac5],.conflict-resolution-reason[data-v-dee70ac5]{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.conflict-resolution-detail textarea[data-v-dee70ac5],.conflict-resolution-reason textarea[data-v-dee70ac5],.conflict-resolution-detail select[data-v-dee70ac5]{width:100%}.conflict-inline-options[data-v-dee70ac5]{align-items:center;gap:6px;display:flex}.conflict-inline-options span[data-v-dee70ac5]{color:#667169;margin-right:4px;font-size:10px}.conflict-inline-options button[data-v-dee70ac5]{color:#58645c;background:#fff;border:1px solid #d9dfdb;border-radius:6px;padding:5px 8px;font-size:10px}.conflict-inline-options button[aria-pressed=true][data-v-dee70ac5]{color:#315141;background:#eaf2ed;border-color:#789986}.conflict-impact-preview[data-v-dee70ac5]{background:#fffaf0;border-color:#f0d99d}.conflict-impact-preview span[data-v-dee70ac5]{color:#826b37;text-transform:uppercase;font-size:9px;font-weight:700}.conflict-impact-preview p[data-v-dee70ac5]{color:#554d3c;margin:0;font-size:11px;line-height:1.55}.conflict-resolution-reason[data-v-dee70ac5]{margin-top:12px}.conflict-resolution-actions>div[data-v-dee70ac5]{gap:8px;display:flex}@media (width<=900px){.conflict-comparison[data-v-dee70ac5],.conflict-difference[data-v-dee70ac5]{grid-template-columns:1fr}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr))}}.preference-conflict-alert[data-v-db0b68f4]{background:#f7f9f7;border:1px solid #d6ddd8;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin-top:12px;padding:12px 14px;display:grid;box-shadow:0 7px 20px #3142380d}.preference-conflict-alert-icon[data-v-db0b68f4]{color:#fff;background:#52685b;border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;font-weight:800;display:grid}.preference-conflict-alert>div[data-v-db0b68f4]:nth-child(2){gap:2px;display:grid}.preference-conflict-alert span[data-v-db0b68f4]{color:#65736b;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.preference-conflict-alert h2[data-v-db0b68f4],.preference-conflict-alert p[data-v-db0b68f4]{margin:0}.preference-conflict-alert h2[data-v-db0b68f4]{color:#344239;font-size:14px}.preference-conflict-alert p[data-v-db0b68f4]{color:#6f7972;font-size:10px;line-height:1.5}.preference-conflict-workbench[data-v-db0b68f4]{flex:1;min-height:0;padding:18px 0 4px;overflow:auto}.preference-conflict-workbench>header[data-v-db0b68f4]{justify-content:space-between;align-items:flex-end;gap:24px;padding:0 2px 14px;display:flex}.preference-conflict-workbench h2[data-v-db0b68f4],.preference-conflict-workbench p[data-v-db0b68f4]{margin:0}.preference-conflict-workbench h2[data-v-db0b68f4]{color:#2e3d35;font-size:17px}.preference-conflict-workbench>header>p[data-v-db0b68f4]{color:#778079;text-align:right;max-width:520px;font-size:10px;line-height:1.55}.preference-conflict-list[data-v-db0b68f4]{gap:12px;display:grid}.preference-conflict-card[data-v-db0b68f4]{background:#fff;border:1px solid #d9dfdb;border-radius:11px;gap:12px;padding:15px;display:grid;box-shadow:0 7px 20px #2d3d340a}.preference-conflict-card-heading[data-v-db0b68f4],.preference-conflict-card footer[data-v-db0b68f4]{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.preference-conflict-card-heading>div[data-v-db0b68f4]{gap:3px;display:grid}.preference-conflict-card-heading>div[data-v-db0b68f4]:last-child{justify-items:end}.preference-conflict-card-heading span[data-v-db0b68f4],.preference-conflict-card footer span[data-v-db0b68f4]{color:#7d8780;text-transform:uppercase;font-size:9px;font-weight:700}.preference-conflict-card-heading h3[data-v-db0b68f4]{color:#344239;margin:0;font-size:14px}.preference-conflict-card-heading strong[data-v-db0b68f4]{color:#53685b;font-size:10px}.preference-conflict-pair[data-v-db0b68f4]{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.preference-conflict-pair>section[data-v-db0b68f4]{background:#fff;border:1px solid #e0e5e1;border-radius:8px;align-content:start;gap:6px;min-width:0;padding:12px;display:grid}.preference-conflict-pair>section[data-v-db0b68f4]:first-child{background:#f5fafe;border-color:#c7ddec}.preference-conflict-pair>section[data-v-db0b68f4]:last-child{background:#faf8fd;border-color:#d8ceeb}.preference-conflict-pair span[data-v-db0b68f4],.preference-conflict-pair small[data-v-db0b68f4]{color:#7d8780;font-size:9px}.preference-conflict-pair strong[data-v-db0b68f4]{color:#35423a;font-size:11px}.preference-conflict-pair p[data-v-db0b68f4]{color:#566159;font-size:10px;line-height:1.55}.preference-conflict-pair>i[data-v-db0b68f4]{color:#9b9486;text-align:center;align-self:center;font-size:14px;font-style:normal}.preference-conflict-card footer[data-v-db0b68f4]{border-top:1px solid #e5e9e6;padding-top:11px}.preference-conflict-card footer>div[data-v-db0b68f4]{gap:4px;display:grid}.preference-conflict-card footer p[data-v-db0b68f4]{color:#5d625d;font-size:10px}.preference-conflict-card footer small[data-v-db0b68f4]{color:#758079;font-size:9px}.preference-conflict-card footer button[data-v-db0b68f4]{flex:none}.preference-conflict-card footer .preference-conflict-actions[data-v-db0b68f4]{justify-content:flex-end;align-items:center;gap:8px;display:flex}.preference-conflict-card footer .preference-conflict-actions .secondary-action[data-v-db0b68f4]{color:#5e665f;background:#f5f7f5}.personal-profile-row.ai-resolved-conflict[data-v-db0b68f4]{background:#f6fbf8;border-color:#b8d5c3}.personal-profile-row.ai-resolved-conflict .personal-profile-origin strong[data-v-db0b68f4]{color:#39724f}.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-pending,.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-needs_review{background:#f5f7f5;border-color:#d8dfda}.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-pending strong,.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-needs_review strong{color:#53645a}@media (width<=860px){.preference-conflict-alert[data-v-db0b68f4]{grid-template-columns:auto minmax(0,1fr)}.preference-conflict-alert>button[data-v-db0b68f4]{grid-column:1/-1}.preference-conflict-workbench>header[data-v-db0b68f4],.preference-conflict-card-heading[data-v-db0b68f4],.preference-conflict-card footer[data-v-db0b68f4]{flex-direction:column;align-items:stretch}.preference-conflict-workbench>header>p[data-v-db0b68f4]{text-align:left}.preference-conflict-card-heading>div[data-v-db0b68f4]:last-child{justify-items:start}.preference-conflict-pair[data-v-db0b68f4]{grid-template-columns:1fr}.preference-conflict-card footer .preference-conflict-actions[data-v-db0b68f4]{flex-wrap:wrap;justify-content:flex-start}}
@@ -0,0 +1 @@
1
+ import{D as e,N as t,S as n}from"./console-B_Ena2DS.js";import{t as r}from"./KnowledgeWorkspace-CXPE4GCD.js";var i=e({__name:`PersonalProjectsPage`,setup(e){return(e,i)=>(t(),n(r,{"personal-projects-only":``}))}});export{i as default};
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,F as r,J as i,K as a,N as o,T as s,U as c,V as ee,_ as te,a as l,b as u,c as ne,d,n as f,q as re,r as p,t as ie,v as ae,w as m,x as h,y as g}from"./console-B_Ena2DS.js";import{t as oe,v as se}from"./paths-BkULqmGI.js";import{i as _,r as v,t as y}from"./identity-CjBwYSMX.js";var ce={class:`view`},le={class:`space-heading public-space-heading`},ue=[`aria-label`],de={class:`project-grid`},fe={class:`project-card-heading`},pe={class:`project-card-heading-actions`},me=[`onClick`],he={class:`completion-badge`},ge={class:`project-purpose`},_e={class:`evidence-row`},ve={key:0,class:`muted`},ye={class:`project-access`},be={class:`muted`},xe={key:0,class:`project-release-meta`},Se={class:`project-card-footer`},b=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=t({__name:`PublicProjectsPage`,setup(t){let M=ie(),Ve=se(),N=c(null),P=c([]),F=c([]),I=c(!1),L=c(!1),R=c(``),z=c(``),B=c(`RELATED_TO`),V=c(null),H=c(``),U=c(!1),W=c(``),G=u(()=>M.state?.projects??[]),K=u(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=u(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=u(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),Ue=u(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=u(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),Ge=u(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=u(()=>G.value.find(({id:e})=>e===z.value)??null),J=u(()=>X.value.find(({value:e})=>e===B.value)?.label??d(`pages.publicProjects.relationLabels.relatedTo`)),Y=u(()=>!!(V.value&&H.value===V.value.name)),X=u(()=>[{value:`PART_OF`,label:d(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:d(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:d(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:d(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:d(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:d(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:d(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||d(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await f(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(d(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await l(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(d(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([p(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),p(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=d(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await f(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(d(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:d(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(d(`pages.publicProjects.chooseRelationProjects`)));return}try{await l(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?d(`pages.publicProjects.parentRelationSubmitted`):d(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(ne()):d(`pages.publicProjects.timeNotRecorded`)}return(t,c)=>(o(),m(`section`,ce,[h(`div`,le,[c[8]||=h(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[h(`span`,{class:`nav-icon nav-icon-public-project`})],-1),h(`div`,null,[h(`p`,null,i(a(d)(`pages.publicProjects.intro`)),1)]),h(`div`,{class:`public-space-stats`,"aria-label":a(d)(`pages.publicProjects.overviewAria`)},[h(`span`,null,[h(`strong`,null,i(G.value.length),1),s(i(a(d)(`pages.publicProjects.discoverable`)),1)]),h(`span`,null,[h(`strong`,null,i(a(M).state?.subscriptions.length??0),1),s(i(a(d)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),h(`div`,de,[(o(!0),m(g,null,r(G.value,t=>(o(),m(`article`,{key:Z(t),class:`project-card`},[h(`div`,fe,[h(`div`,null,[c[9]||=h(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),h(`h4`,null,i(t.name),1)]),h(`div`,pe,[t.can_manage?(o(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:e=>Xe(t)},i(a(d)(`pages.publicProjects.manage`)),9,me)):e(``,!0),h(`div`,he,[h(`strong`,null,i(t.profile?.assessment?.score??`—`),1),h(`span`,null,i(t.profile?.assessment?a(d)(`pages.publicProjects.coverage`):a(d)(`pages.publicProjects.noSummary`)),1)])])]),h(`p`,ge,i(Q(t)),1),h(`div`,_e,[(o(!0),m(g,null,r(t.profile?.sources??[],(e,t)=>(o(),m(`span`,{key:t,class:`status-chip`},i(e.kind??a(d)(`pages.publicProjects.material`)),1))),128)),t.profile?.sources?.length?e(``,!0):(o(),m(`span`,ve,i(a(d)(`pages.publicProjects.noSources`)),1))]),h(`div`,ye,[h(`span`,{class:re([`status-chip`,{owner:t.isOwner}])},i(t.isOwner?`Owner`:t.role??`Reader`),3),h(`span`,be,i(t.isOwner?a(d)(`pages.publicProjects.publishedByYou`):a(d)(`pages.publicProjects.publiclyDiscoverable`)),1),t.current_release?(o(),m(`span`,xe,[h(`strong`,null,i(t.current_release.version),1),h(`span`,null,i($(t.current_release.published_at)),1)])):e(``,!0)]),h(`footer`,Se,[h(`button`,{class:`secondary-action`,type:`button`,onClick:e=>qe(t)},i(K.value.has(Z(t))?a(d)(`pages.publicProjects.unsubscribe`):a(d)(`pages.publicProjects.subscribe`)),9,b),h(`button`,{class:`primary-action`,type:`button`,onClick:e=>Je(t)},i(a(d)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?e(``,!0):(o(),m(`div`,S,i(a(d)(`pages.publicProjects.noProjects`)),1))]),h(`section`,C,[h(`div`,w,[h(`div`,null,[c[10]||=h(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),h(`h3`,null,i(a(d)(`pages.publicProjects.relationsTitle`)),1),h(`p`,null,i(a(d)(`pages.publicProjects.relationsCopy`)),1)]),h(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:c[0]||=e=>L.value=!L.value},i(a(d)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(o(),m(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ae($e,[`prevent`])},[h(`label`,null,[s(i(a(d)(`pages.publicProjects.sourceProject`))+` `,1),n(_,{modelValue:R.value,"onUpdate:modelValue":c[1]||=e=>R.value=e,options:He.value,label:a(d)(`pages.publicProjects.sourceProjectLabel`),placeholder:a(d)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:c[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),h(`label`,null,[s(i(a(d)(`pages.publicProjects.relation`))+` `,1),n(_,{modelValue:B.value,"onUpdate:modelValue":c[3]||=e=>B.value=e,options:X.value,label:a(d)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),h(`label`,null,[s(i(a(d)(`pages.publicProjects.targetProject`))+` `,1),n(_,{modelValue:z.value,"onUpdate:modelValue":c[4]||=e=>z.value=e,options:We.value,label:a(d)(`pages.publicProjects.targetProjectLabel`),placeholder:a(d)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),h(`div`,E,[h(`span`,null,i(a(d)(`pages.publicProjects.preview`)),1),h(`strong`,null,i(Ge.value?.name||a(d)(`pages.publicProjects.sourceProject`))+` `+i(J.value)+` `+i(Ke.value?.name||a(d)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(o(),m(`p`,D,i(a(d)(`pages.publicProjects.parentConfirmation`)),1)):(o(),m(`p`,O,i(a(d)(`pages.publicProjects.relationBoundary`)),1))]),h(`button`,k,i(a(d)(`pages.publicProjects.addRelation`)),1)],32)):e(``,!0)]),h(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(o(),m(`div`,j,[h(`header`,Ce,[h(`div`,null,[c[11]||=h(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),h(`h3`,null,i(N.value.name),1),h(`p`,null,i(Q(N.value)),1)]),h(`button`,{class:`secondary-action`,type:`button`,onClick:c[5]||=e=>N.value=null},i(a(d)(`common.actions.close`)),1)]),h(`section`,we,[c[12]||=h(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),h(`h4`,null,i(a(d)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(o(),m(`p`,Te,[h(`strong`,null,i(N.value.current_release.version),1),s(` · `+i($(N.value.current_release.published_at)),1)])):(o(),m(`p`,Ee,i(a(d)(`pages.publicProjects.noRelease`)),1))]),h(`div`,De,[h(`section`,null,[h(`h4`,null,i(a(d)(`pages.publicProjects.releaseHistory`)),1),I.value?(o(),m(`p`,Oe,i(a(d)(`pages.publicProjects.loading`)),1)):e(``,!0),(o(!0),m(g,null,r(P.value,e=>(o(),m(`article`,{key:e.version,class:`project-release-item`},[h(`strong`,null,i(e.version),1),h(`p`,null,i(e.update_summary),1),h(`small`,null,i($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(o(),m(`p`,ke,i(a(d)(`pages.publicProjects.noReleaseHistory`)),1)):e(``,!0)]),h(`section`,null,[h(`h4`,null,i(a(d)(`pages.publicProjects.relationsTitle`)),1),(o(!0),m(g,null,r(F.value,e=>(o(),m(`article`,{key:e.id,class:`project-detail-relation`},[h(`strong`,null,i(e.relation_type),1),h(`small`,null,i(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(o(),m(`p`,Ae,i(a(d)(`pages.publicProjects.noRelations`)),1)):e(``,!0)])]),h(`footer`,je,[h(`span`,null,i(a(d)(`pages.publicProjects.contentManagementSeparated`)),1),h(`button`,{class:`primary-action`,type:`button`,onClick:c[6]||=e=>Ye(N.value)},i(a(d)(`pages.publicProjects.viewGraph`)),1)])])):e(``,!0)],8,A),h(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(o(),m(`div`,Ne,[h(`header`,Pe,[h(`div`,null,[c[13]||=h(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),h(`h3`,null,i(a(d)(`pages.publicProjects.deleteTitle`)),1),h(`p`,null,i(a(d)(`pages.publicProjects.deleteCopy`)),1)]),h(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},i(a(d)(`common.actions.close`)),9,Fe)]),h(`label`,Ie,[s(i(a(d)(`pages.publicProjects.enterFullName`))+` `,1),h(`strong`,null,i(V.value.name),1),ee(h(`input`,{"onUpdate:modelValue":c[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[te,H.value]])]),W.value?(o(),m(`p`,Re,i(W.value),1)):e(``,!0),h(`footer`,ze,[h(`span`,null,i(a(d)(`pages.publicProjects.deleteWarning`)),1),h(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},i(U.value?a(d)(`pages.publicProjects.deleting`):a(d)(`pages.publicProjects.deletePermanently`)),9,Be)])])):e(``,!0)],8,Me)]))}});export{M as default};
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,F as r,J as i,K as a,N as o,R as s,U as c,a as l,b as u,d,r as f,t as p,w as m,x as h,y as g}from"./console-B_Ena2DS.js";import{i as _,r as v,t as y}from"./identity-CjBwYSMX.js";import{l as b}from"./model-C-5RVIJ2.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=t({__name:`ReviewPage`,setup(t){let B=p(),V=c([]),H=c([]),U=c(``),W=c(!1),G=u(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=u(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=u(()=>G.value.find(({id:e})=>e===U.value)??null);s(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),s(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await f(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await f(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await l(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await l(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(t,s)=>(o(),m(`section`,x,[h(`div`,S,[h(`h3`,null,i(a(d)(`pages.review.personalTitle`)),1),h(`p`,null,i(a(d)(`pages.review.personalCopy`)),1)]),h(`div`,C,[(o(!0),m(g,null,r(V.value,t=>(o(),m(`article`,{key:t.id,class:`review-item review-item-detailed`},[h(`div`,null,[h(`div`,w,i(a(d)(`pages.review.beforePublic`)),1),h(`h4`,null,i(t.episode.name),1),h(`p`,null,i(t.episode.summary||t.episode.source_description),1),h(`div`,T,[h(`span`,null,i(a(d)(`common.counts.entities`,{count:t.episode.entities?.length??0})),1),h(`span`,null,i(a(d)(`common.counts.relationships`,{count:t.episode.relationships?.length??0})),1),h(`span`,null,i(a(b)(t.created_at)),1)])]),h(`div`,E,[h(`button`,{class:`secondary-action`,type:`button`,onClick:e=>Z(t,`keep_personal`)},i(a(d)(`pages.review.keepPersonal`)),9,D),h(`button`,{class:`reject`,type:`button`,onClick:e=>Z(t,`ignore`)},i(a(d)(`pages.review.ignore`)),9,O),a(B).state?.capabilities?.submitKnowledge?(o(),m(`button`,{key:0,class:`approve`,type:`button`,onClick:e=>Z(t,`submit_public`)},i(a(d)(`pages.review.submitPublic`)),9,k)):e(``,!0)])]))),128)),!W.value&&!V.value.length?(o(),m(`div`,A,i(a(d)(`pages.review.noPersonalDrafts`)),1)):e(``,!0)]),a(B).state?.capabilities?.reviewProposals?(o(),m(`section`,j,[h(`div`,M,[h(`div`,null,[h(`h3`,null,i(a(d)(`pages.review.publicTitle`)),1),h(`p`,null,i(a(d)(`pages.review.publicCopy`)),1)]),n(_,{modelValue:U.value,"onUpdate:modelValue":s[0]||=e=>U.value=e,options:K.value,label:a(d)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),h(`div`,N,[(o(!0),m(g,null,r(H.value,e=>(o(),m(`article`,{key:e.id,class:`review-item`},[h(`div`,null,[h(`div`,P,i(a(d)(`pages.review.maintainerReview`)),1),h(`h4`,null,i(e.episode.name),1),h(`p`,null,i(e.episode.summary||e.episode.source_description),1),h(`div`,F,[h(`span`,null,i(a(b)(e.created_at)),1)])]),h(`div`,I,[h(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},i(a(d)(`pages.review.reject`)),9,L),h(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},i(a(d)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(o(),m(`div`,z,i(a(d)(`pages.review.noProposals`)),1)):e(``,!0)])])):e(``,!0)]))}});export{B as default};