fuli-context 0.7.5 → 0.7.7

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 (148) hide show
  1. package/README.md +69 -13
  2. package/README.zh-CN.md +60 -14
  3. package/dist/web/assets/{AboutPage-ByCUor-j.js → AboutPage-BcZeFcHe.js} +1 -1
  4. package/dist/web/assets/{ConnectionsPage-DkdkZ40Q.js → ConnectionsPage-xAQYl1SQ.js} +1 -1
  5. package/dist/web/assets/EmployeeRecruitDialog-CbPAmhy7.js +1 -0
  6. package/dist/web/assets/EmployeeRecruitDialog-CfFlyKSh.css +1 -0
  7. package/dist/web/assets/EmployeeWorkbenchPage-BQvTLoc8.css +1 -0
  8. package/dist/web/assets/EmployeeWorkbenchPage-DF3EL0Ui.js +1 -0
  9. package/dist/web/assets/KnowledgeEditDialog-UnnBDt0I.js +1 -0
  10. package/dist/web/assets/{KnowledgeEditDialog-DWUV_NPp.css → KnowledgeEditDialog-iv-dgUeD.css} +1 -1
  11. package/dist/web/assets/{KnowledgeInspector-CYAjAb9J.js → KnowledgeInspector-BqPJH5Rr.js} +1 -1
  12. package/dist/web/assets/{KnowledgeOrganizerPage-CV4F54R_.js → KnowledgeOrganizerPage-CyvRflXM.js} +1 -1
  13. package/dist/web/assets/KnowledgePage-59eczTqe.js +1 -0
  14. package/dist/web/assets/{KnowledgeWorkspace-z4u5mXOG.js → KnowledgeWorkspace-CfIjhOog.js} +1 -1
  15. package/dist/web/assets/{OverviewPage-BWOfeS6k.js → OverviewPage-Xyfm5xkZ.js} +1 -1
  16. package/dist/web/assets/{PersonalProfilePage-c3w4-h7a.js → PersonalProfilePage-DB9mByB3.js} +1 -1
  17. package/dist/web/assets/PersonalProjectsPage-_-YXVi5O.js +1 -0
  18. package/dist/web/assets/ProjectAgentsPage-C3vW6wmk.css +1 -0
  19. package/dist/web/assets/ProjectAgentsPage-DeeQByPX.js +11 -0
  20. package/dist/web/assets/{PublicProjectsPage-DdH0oGB3.js → PublicProjectsPage-BEZ1YPs3.js} +1 -1
  21. package/dist/web/assets/{ReviewPage-BYIpcIHG.js → ReviewPage-CQYGwFBH.js} +1 -1
  22. package/dist/web/assets/SearchableSelect-D27H0MoP.js +1 -0
  23. package/dist/web/assets/{SettingsPage-2VkbXgZi.js → SettingsPage-BlEZ03Yi.js} +1 -1
  24. package/dist/web/assets/{WritingTastePage-BOPQZuva.js → WritingTastePage-DvRt_nmP.js} +1 -1
  25. package/dist/web/assets/catalog-DFvIaHVS.js +1 -0
  26. package/dist/web/assets/{console-BlAhujsH.js → console-tOxOl8Vq.js} +1 -1
  27. package/dist/web/assets/conversation-launcher-settings-DuFSpPAo.js +1 -0
  28. package/dist/web/assets/{i18n-Ci3heuiL.js → i18n-CgBHZthI.js} +3 -3
  29. package/dist/web/assets/{identity-4_-v6cB7.js → identity-CFo_Uw1H.js} +1 -1
  30. package/dist/web/assets/index-CJc5ppXH.css +1 -0
  31. package/dist/web/assets/index-yCi3cz2l.js +2 -0
  32. package/dist/web/assets/{model-yG0YqUyZ.js → model-BtnVr7fX.js} +1 -1
  33. package/dist/web/assets/{useApi-CROJJdhE-twhdZArA.js → useApi-CROJJdhE-B6MHm_Av.js} +1 -1
  34. package/dist/web/assets/{vue-router-C-wot_Di.js → vue-router-CzHm-y-x.js} +1 -1
  35. package/dist/web/index.html +7 -6
  36. package/docs/employee-agents.md +99 -0
  37. package/docs/project-agent-memory.md +479 -0
  38. package/graph-provider/fuli_graph/knowledge_audit_models.py +171 -0
  39. package/graph-provider/fuli_graph/model_base.py +5 -0
  40. package/graph-provider/fuli_graph/model_validation.py +32 -0
  41. package/graph-provider/fuli_graph/models.py +26 -170
  42. package/graph-provider/fuli_graph/project_agent_context_models.py +29 -0
  43. package/graph-provider/fuli_graph/project_agent_coordination_models.py +22 -0
  44. package/graph-provider/fuli_graph/project_agent_executor_models.py +35 -7
  45. package/graph-provider/fuli_graph/project_agent_memory_models.py +79 -0
  46. package/graph-provider/fuli_graph/project_agent_memory_routes.py +46 -0
  47. package/graph-provider/fuli_graph/project_agent_models.py +9 -0
  48. package/graph-provider/fuli_graph/project_agent_recruitment_values.py +48 -0
  49. package/graph-provider/fuli_graph/project_agent_routes.py +50 -1
  50. package/graph-provider/fuli_graph/project_agent_task_models.py +220 -29
  51. package/graph-provider/fuli_graph/runtime.py +37 -1
  52. package/graph-provider/fuli_graph/store.py +6 -0
  53. package/graph-provider/fuli_graph/store_project_agent_context.py +65 -0
  54. package/graph-provider/fuli_graph/store_project_agent_coordination_policy.py +122 -0
  55. package/graph-provider/fuli_graph/store_project_agent_executor_learning.py +175 -11
  56. package/graph-provider/fuli_graph/store_project_agent_executor_routing.py +33 -10
  57. package/graph-provider/fuli_graph/store_project_agent_executors.py +181 -14
  58. package/graph-provider/fuli_graph/store_project_agent_memory.py +174 -0
  59. package/graph-provider/fuli_graph/store_project_agent_task_activity.py +423 -0
  60. package/graph-provider/fuli_graph/store_project_agent_task_persistence.py +152 -0
  61. package/graph-provider/fuli_graph/store_project_agent_task_reads.py +187 -21
  62. package/graph-provider/fuli_graph/store_project_agent_task_recruitment.py +756 -164
  63. package/graph-provider/fuli_graph/store_project_agent_task_staffing.py +396 -7
  64. package/graph-provider/fuli_graph/store_project_agent_tasks.py +265 -465
  65. package/graph-provider/fuli_graph/store_project_agents.py +214 -46
  66. package/graph-provider/fuli_graph/store_task_contexts.py +217 -0
  67. package/graph-provider/fuli_graph/store_transactions.py +40 -0
  68. package/graph-provider/fuli_graph/task_context_models.py +50 -0
  69. package/graph-provider/fuli_graph/task_context_routes.py +31 -0
  70. package/graph-provider/fuli_graph/workflow_observation_models.py +1 -1
  71. package/graph-provider/pyproject.toml +1 -1
  72. package/npm-shrinkwrap.json +8 -8
  73. package/package.json +5 -2
  74. package/skills/capturing-session-knowledge/SKILL.md +18 -6
  75. package/src/adaptive-runtime/executor-pool.js +46 -5
  76. package/src/adaptive-runtime/graph-services.js +10 -3
  77. package/src/adaptive-runtime/lease-client.js +66 -14
  78. package/src/adaptive-runtime/runtime-broker.js +24 -9
  79. package/src/agent-tools/employee-definitions.js +43 -0
  80. package/src/agent-tools/graph-definitions.js +48 -6
  81. package/src/agent-tools/graph-handlers.js +15 -0
  82. package/src/agent-tools/project-agent-definitions.js +35 -4
  83. package/src/agent-tools/project-agent-memory-definitions.js +36 -0
  84. package/src/agent-tools.js +6 -2
  85. package/src/agents/codex/lifecycle-hook.js +107 -0
  86. package/src/agents/codex/lifecycle-hooks.js +231 -0
  87. package/src/agents/cursor/lifecycle-hook.js +133 -0
  88. package/src/agents/cursor/lifecycle-hooks.js +50 -0
  89. package/src/agents/lifecycle-message.js +19 -0
  90. package/src/app/agent-request-context.js +23 -0
  91. package/src/cli/command-registry.js +2 -0
  92. package/src/cli/employee-command.js +17 -0
  93. package/src/cli/remote-mcp-command.js +282 -0
  94. package/src/cli/setup-command.js +5 -0
  95. package/src/cli.js +10 -0
  96. package/src/employees/catalog/jefa.json +21 -0
  97. package/src/employees/install-package.js +77 -0
  98. package/src/employees/management-policy.js +88 -0
  99. package/src/employees/manifest.js +53 -0
  100. package/src/employees/package-registry.js +107 -0
  101. package/src/employees/project-selection.js +50 -0
  102. package/src/employees/recruitment.js +199 -0
  103. package/src/employees/service.js +83 -0
  104. package/src/employees/task-entry.js +39 -0
  105. package/src/graphiti/agent-knowledge-workflows.js +135 -25
  106. package/src/graphiti/federated-application.js +78 -35
  107. package/src/graphiti/project-agent-control-plane.js +32 -3
  108. package/src/graphiti/project-agent-mapping.js +175 -4
  109. package/src/graphiti/project-agent-memory.js +115 -0
  110. package/src/graphiti/project-agent-task-entry.js +126 -0
  111. package/src/graphiti/project-agent-workflows.js +49 -14
  112. package/src/graphiti/provider-client.js +78 -4
  113. package/src/http/api-router.js +25 -5
  114. package/src/http/employee-api-router.js +64 -0
  115. package/src/http/error-mapping.js +4 -0
  116. package/src/http/graph-api-router.js +14 -0
  117. package/src/http/request-policy.js +6 -3
  118. package/src/http/static-handler.js +4 -3
  119. package/src/mcp/create-mcp-server.js +98 -37
  120. package/src/mcp/direct-call.js +38 -0
  121. package/src/mcp/instructions.js +8 -7
  122. package/src/mcp/provider-task-context-registry.js +74 -0
  123. package/src/mcp/remote-http-server.js +761 -0
  124. package/src/mcp/session-id.js +29 -3
  125. package/src/mcp/task-context-registry.js +88 -29
  126. package/src/mcp/tool-annotations.js +12 -2
  127. package/src/mcp/tool-result.js +8 -3
  128. package/src/mcp-server.js +20 -8
  129. package/src/native-runtime/runtime.js +58 -8
  130. package/src/server.js +76 -28
  131. package/src/setup/agent-installation-status.js +38 -6
  132. package/src/setup/agents.js +20 -8
  133. package/src/setup/claude-code-config.js +55 -13
  134. package/src/setup/codex-bootstrap.js +11 -10
  135. package/src/setup/codex-config.js +74 -7
  136. package/src/setup/config-backup.js +18 -2
  137. package/src/setup/cursor-config.js +22 -5
  138. package/src/setup/setup.js +30 -22
  139. package/src/storage/json-file.js +11 -3
  140. package/dist/web/assets/KnowledgeEditDialog-DSe3Gwep.js +0 -1
  141. package/dist/web/assets/KnowledgePage-vYYXipOi.js +0 -1
  142. package/dist/web/assets/PersonalProjectsPage-B7AlLEwf.js +0 -1
  143. package/dist/web/assets/ProjectAgentsPage-CgftpIPB.css +0 -1
  144. package/dist/web/assets/ProjectAgentsPage-DTHcL_ox.js +0 -11
  145. package/dist/web/assets/SearchableSelect-Dz13ClQb.js +0 -1
  146. package/dist/web/assets/conversation-launcher-settings-DTYxiLJt.js +0 -1
  147. package/dist/web/assets/index-BnH5mcZx.css +0 -1
  148. package/dist/web/assets/index-C67Q0JY2.js +0 -2
@@ -1 +1 @@
1
- import{B as e,C as t,L as n,N as r,S as i,Y as a,_ as o,a as s,et as c,g as l,h as u,j as d,l as f,m as p,n as m,nt as h,rt as g,tt as _,u as v,v as y,x as b,y as x,z as S}from"./i18n-Ci3heuiL.js";import{a as ee,i as C,r as w,t as te}from"./console-BlAhujsH.js";import{t as T}from"./vue-router-C-wot_Di.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as D}from"./SearchableSelect-Dz13ClQb.js";import{a as ne,i as O,n as k,t as A}from"./KnowledgeEditDialog-DSe3Gwep.js";import{n as re,t as ie}from"./KnowledgeInspector-CYAjAb9J.js";import{C as j,D as ae,E as oe,_ as M,u as N,v as P,x as se}from"./model-yG0YqUyZ.js";function ce(e,t=[]){let n=[],r=e.filter(e=>!e.invalidAt);for(let e=0;e<r.length;e+=1)for(let i=e+1;i<r.length;i+=1){let a=r[e],o=r[i];if(!U(a,o)||!W(a,o)||G(a,o))continue;let[c,l]=ue(a,o),u=B(L(c),L(l)),d=H(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&F(e,c,l))??null;n.push({id:q(c,l),preferenceKey:I(c),scopeKey:R(c),scopeLabel:z(c),left:c,right:l,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:s(`preferences.shared.conflictReason`,{key:I(c)}),aiRecord:f})}return n.sort((e,t)=>{let n=m();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function le(e){return[e.left_item_id,e.right_item_id]}function F(e,t,n){let r=new Set([`${e.left_item_kind}:${e.left_item_id}`,`${e.right_item_kind}:${e.right_item_id}`]);return r.has(`${t.itemKind}:${t.id}`)&&r.has(`${n.itemKind}:${n.id}`)}function I(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function L(e){return e.body.trim()}function R(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?s(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):s(`preferences.shared.personalGlobal`)}function B(e,t){let n=J(e),r=J(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&de(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(Y(e,r[t]))}return{shared:a,leftOnly:o,rightOnly:r.filter((e,t)=>!i.has(t)),similarity:a.length/Math.max(n.length,r.length,1)}}function V(e,t){let n=[...J(e)];for(let e of J(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=Y(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function H(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function U(e,t){return R(e)===R(t)}function W(e,t){return X(I(e))===X(I(t))}function G(e,t){return X(L(e))===X(L(t))}function ue(e,t){let n=K(e),r=K(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function K(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function q(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function J(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=X(e),r=X(t);if(n===r)return!0;let i=n.length<=r.length?n:r,a=i===n?r:n;return i.length>=2&&a.includes(i)}function Y(e,t){return X(e).length>=X(t).length?e:t}function X(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var fe={key:0,open:``,class:`project-dialog conflict-resolution-dialog vue-dialog`},pe={class:`project-dialog-shell conflict-resolution-shell`},Z={class:`project-dialog-header`},me=[`disabled`],he=[`aria-label`],Q=[`aria-label`],ge={class:`conflict-side conflict-side-left`},_e={class:`conflict-side-heading`},ve={class:`conflict-side conflict-side-right`},ye={class:`conflict-side-heading`},$=[`aria-label`],be={key:0},xe={key:1,class:`muted`},Se={key:0},Ce={key:1,class:`muted`},we={key:0},Te={key:1,class:`muted`},Ee=[`aria-label`],De=[`aria-pressed`],Oe={key:0},ke=[`aria-pressed`],Ae=[`aria-pressed`],je=[`disabled`,`aria-pressed`],Me={key:0,class:`conflict-resolution-detail`},Ne=[`aria-label`],Pe=[`aria-pressed`],Fe=[`aria-pressed`],Ie={key:1,class:`conflict-resolution-detail`},Le=[`aria-label`],Re=[`aria-pressed`],ze=[`aria-pressed`],Be={value:``,disabled:``},Ve=[`value`],He={class:`conflict-impact-preview`},Ue={class:`conflict-resolution-reason`},We={key:2,class:`dialog-error`},Ge={class:`project-dialog-actions conflict-resolution-actions`},Ke=[`disabled`],qe=[`disabled`],Je=E(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:i}){let o=t,m=i,h=te(),_=a(null),S=a(`right`),w=a(`right`),T=a(``),E=a(``),D=a(``),ne=a(``),O=a(!1),k=a(``),A=u(()=>{let e=o.conflict;if(!e)return[];let t=w.value===`left`?e.left:e.right;return o.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),re=u(()=>A.value.length>0),ie=u(()=>{let e=o.conflict;if(!e||!_.value)return s(`preferences.dialog.impact.choose`);if(_.value===`merge`){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left;return s(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(_.value===`keep_left`||_.value===`keep_right`){let t=_.value===`keep_left`?e.left:e.right,n=_.value===`keep_left`?e.right:e.left;return s(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=w.value===`left`?e.left:e.right,n=A.value.find(({project_id:e})=>e===T.value);return n?s(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):s(`preferences.dialog.impact.chooseProject`)});n(()=>o.conflict,e=>{e&&(S.value=`right`,w.value=`right`,E.value=V(L(e.right),L(e.left)),_.value=e.recommendedAction,T.value=``,k.value=``,ae(e.recommendedAction))},{immediate:!0}),n([w,A],()=>{T.value&&A.value.some(({project_id:e})=>e===T.value)||(T.value=A.value[0]?.project_id??``)},{immediate:!0});function j(e){_.value=e,(!D.value.trim()||D.value===ne.value)&&ae(e)}function ae(e){let t=o.conflict,n=t&&e?F(e,t):``;ne.value=n,D.value=n}async function oe(){let e=o.conflict;if(!e||!_.value)return I(s(`preferences.dialog.errors.actionRequired`));if(!D.value.trim())return I(s(`preferences.dialog.errors.reasonRequired`));if(_.value===`merge`&&!E.value.trim())return I(s(`preferences.dialog.errors.mergedValueRequired`));if(_.value===`split_scope`&&!T.value)return I(s(`preferences.dialog.errors.projectRequired`));O.value=!0,k.value=``;try{_.value===`merge`?await M(e):_.value===`split_scope`?await ce(e):await se(e,_.value),e.aiRecord&&await ee(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:o.personalSpaceId,resolution:_.value,reason:D.value.trim()}),h.notify(s(`preferences.dialog.resolved`)),m(`resolved`),m(`close`)}catch(e){k.value=e instanceof Error?e.message:s(`preferences.dialog.errors.failed`),h.reportError(e)}finally{O.value=!1}}async function M(e){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left,r={personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`update`,reason:D.value.trim()};t.itemKind===`entity`?(r.name=t.title,r.summary=E.value.trim()):r.fact=E.value.trim(),t.classificationExplicit&&t.originQuadrant!==`unclassified`&&(r.originQuadrant=t.originQuadrant,r.confirmationStatus=`confirmed`,r.confirmationBasis={existenceReason:s(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:t.confirmationBasis?.quadrant_reason||t.reasoningSummary||s(`preferences.dialog.audit.keepQuadrant`),proposedBy:t.confirmationBasis?.proposed_by?le(t.confirmationBasis.proposed_by):{kind:`import`,label:s(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:s(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,r),await C(`/api/knowledge/${n.itemKind}/${encodeURIComponent(n.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:t.id,replacementItemKind:t.itemKind})}async function se(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function ce(e){let t=w.value===`left`?e.left:e.right;await ee(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:o.personalSpaceId,scope:`project`,projectId:T.value,reason:D.value.trim()})}function le(e){return{kind:e.kind,label:e.label??null}}function F(e,t){return e===`merge`?s(`preferences.dialog.defaultReason.merge`):e===`keep_left`?s(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?s(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):s(`preferences.dialog.defaultReason.split`)}function I(e){k.value=e}return(n,i)=>t.conflict?(d(),x(`dialog`,fe,[l(`div`,pe,[l(`header`,Z,[l(`div`,null,[i[15]||=l(`p`,{class:`eyebrow`},`CONFLICT RESOLUTION`,-1),l(`h3`,null,g(c(s)(`preferences.dialog.title`)),1),l(`p`,null,g(c(s)(`preferences.dialog.intro`,{reason:t.conflict.reason})),1)]),l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[0]||=e=>m(`close`)},g(c(s)(`common.actions.close`)),9,me)]),l(`section`,{class:`conflict-pair-context`,"aria-label":c(s)(`preferences.dialog.basisAria`)},[l(`span`,null,[b(g(c(s)(`preferences.dialog.preferenceKey`))+` `,1),l(`strong`,null,g(t.conflict.preferenceKey),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.effectiveScope`))+` `,1),l(`strong`,null,g(t.conflict.scopeLabel),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.suggestion`))+` `,1),l(`strong`,null,g(t.conflict.recommendedAction===`merge`?c(s)(`preferences.dialog.mergeSuggestion`):c(s)(`preferences.dialog.reviewSuggestion`)),1)])],8,he),l(`section`,{class:`conflict-comparison`,"aria-label":c(s)(`preferences.dialog.comparisonAria`)},[l(`article`,ge,[l(`div`,_e,[l(`span`,null,g(c(s)(`preferences.dialog.older`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.left))),1)]),l(`h4`,null,g(t.conflict.left.title),1),l(`p`,null,g(c(L)(t.conflict.left)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.left.evidence.length}))+` · `+g(t.conflict.left.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[1]||=e=>m(`edit`,t.conflict.left)},g(c(s)(`preferences.dialog.editA`)),1)]),l(`article`,ve,[l(`div`,ye,[l(`span`,null,g(c(s)(`preferences.dialog.newer`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.right))),1)]),l(`h4`,null,g(t.conflict.right.title),1),l(`p`,null,g(c(L)(t.conflict.right)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.right.evidence.length}))+` · `+g(t.conflict.right.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[2]||=e=>m(`edit`,t.conflict.right)},g(c(s)(`preferences.dialog.editB`)),1)])],8,Q),l(`section`,{class:`conflict-difference`,"aria-label":c(s)(`preferences.dialog.differenceAria`)},[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.shared`)),1),t.conflict.difference.shared.length?(d(),x(`p`,be,[(d(!0),x(p,null,r(t.conflict.difference.shared,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,xe,g(c(s)(`preferences.dialog.noShared`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyA`)),1),t.conflict.difference.leftOnly.length?(d(),x(`p`,Se,[(d(!0),x(p,null,r(t.conflict.difference.leftOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Ce,g(c(s)(`preferences.dialog.noUnique`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyB`)),1),t.conflict.difference.rightOnly.length?(d(),x(`p`,we,[(d(!0),x(p,null,r(t.conflict.difference.rightOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Te,g(c(s)(`preferences.dialog.noUnique`)),1))])],8,$),l(`section`,{class:`conflict-resolution-options`,"aria-label":c(s)(`preferences.dialog.actionsAria`)},[l(`button`,{type:`button`,"aria-pressed":_.value===`merge`,onClick:i[3]||=e=>j(`merge`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.merge`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(d(),x(`em`,Oe,g(c(s)(`preferences.dialog.actions.recommended`)),1)):y(``,!0)],8,De),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_left`,onClick:i[4]||=e=>j(`keep_left`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepA`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepACopy`)),1)],8,ke),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_right`,onClick:i[5]||=e=>j(`keep_right`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepB`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ae),l(`button`,{type:`button`,disabled:!re.value,"aria-pressed":_.value===`split_scope`,onClick:i[6]||=e=>j(`split_scope`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.split`)),1),l(`span`,null,g(re.value?c(s)(`preferences.dialog.actions.splitCopy`):c(s)(`preferences.dialog.actions.noProjects`)),1)],8,je)],8,Ee),_.value===`merge`?(d(),x(`section`,Me,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.mergeIdentityAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.canonicalIdentity`)),1),l(`button`,{type:`button`,"aria-pressed":S.value===`left`,onClick:i[7]||=e=>S.value=`left`},g(c(s)(`preferences.dialog.identityA`)),9,Pe),l(`button`,{type:`button`,"aria-pressed":S.value===`right`,onClick:i[8]||=e=>S.value=`right`},g(c(s)(`preferences.dialog.identityB`)),9,Fe)],8,Ne),l(`label`,null,[b(g(c(s)(`preferences.dialog.mergedContent`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[9]||=e=>E.value=e,rows:`4`,maxlength:`4096`},null,512),[[v,E.value]])])])):y(``,!0),_.value===`split_scope`?(d(),x(`section`,Ie,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.splitRecordAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.adjustRecord`)),1),l(`button`,{type:`button`,"aria-pressed":w.value===`left`,onClick:i[10]||=e=>w.value=`left`},` A `,8,Re),l(`button`,{type:`button`,"aria-pressed":w.value===`right`,onClick:i[11]||=e=>w.value=`right`},` B `,8,ze)],8,Le),l(`label`,null,[b(g(c(s)(`preferences.dialog.projectOnly`))+` `,1),e(l(`select`,{"onUpdate:modelValue":i[12]||=e=>T.value=e},[l(`option`,Be,g(c(s)(`preferences.dialog.chooseProject`)),1),(d(!0),x(p,null,r(A.value,e=>(d(),x(`option`,{key:e.project_id,value:e.project_id},g(e.profile.name),9,Ve))),128))],512),[[f,T.value]])])])):y(``,!0),l(`section`,He,[l(`span`,null,g(c(s)(`preferences.dialog.impactTitle`)),1),l(`p`,null,g(ie.value),1)]),l(`label`,Ue,[b(g(c(s)(`preferences.dialog.reason`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[13]||=e=>D.value=e,rows:`2`,maxlength:`2000`},null,512),[[v,D.value]])]),k.value?(d(),x(`p`,We,g(k.value),1)):y(``,!0),l(`footer`,Ge,[l(`span`,null,g(c(s)(`preferences.dialog.pendingCopy`)),1),l(`div`,null,[l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[14]||=e=>m(`close`)},g(c(s)(`preferences.dialog.defer`)),9,Ke),l(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!_.value,onClick:oe},g(O.value?c(s)(`preferences.dialog.processing`):c(s)(`preferences.dialog.confirm`)),9,qe)])])])])):y(``,!0)}}),[[`__scopeId`,`data-v-dee70ac5`]]),Ye=[`aria-label`],Xe={class:`writing-taste-milestone__copy`},Ze={class:`writing-taste-milestone__heading`},Qe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},$e={class:`writing-taste-milestone__metrics`},et=E(t({__name:`WritingTasteMilestone`,props:{profile:{}},setup(e){let t=e,n=u(()=>t.profile?.ready===!0),r=u(()=>t.profile?.status===`active`?s(`writingTaste.milestone.activeTitle`):t.profile?.status===`preview_ready`?s(`writingTaste.milestone.previewTitle`):s(`writingTaste.milestone.collectingTitle`)),i=u(()=>n.value?s(`writingTaste.milestone.readyCopy`):s(`writingTaste.milestone.collectingCopy`)),a=u(()=>{let e=t.profile?.readiness;if(!e)return 0;let n=[f(e.rule_count,e.thresholds.rule_count),f(e.evidence_count,e.thresholds.evidence_count),f(e.session_count,e.thresholds.session_count),f(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(n.reduce((e,t)=>e+t,0)/n.length*100)});function f(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(t,u)=>e.profile?(d(),x(`section`,{key:0,class:_([`writing-taste-milestone`,`status-${e.profile.status}`]),"aria-label":c(s)(`writingTaste.milestone.aria`)},[u[1]||=l(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[l(`span`),l(`span`),l(`span`)],-1),l(`div`,Xe,[l(`div`,Ze,[l(`h2`,null,g(r.value),1),l(`span`,null,g(c(s)(`writingTaste.status.${e.profile.status}`)),1)]),l(`p`,null,g(i.value),1),l(`div`,Qe,[l(`i`,{style:h({width:`${a.value}%`})},null,4)]),l(`div`,$e,[l(`small`,null,g(c(s)(`writingTaste.milestone.rules`,{current:e.profile.readiness.rule_count,target:e.profile.readiness.thresholds.rule_count})),1),l(`small`,null,g(c(s)(`writingTaste.milestone.sessions`,{current:e.profile.readiness.session_count,target:e.profile.readiness.thresholds.session_count})),1)])]),n.value?(d(),o(c(T),{key:0,class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:S(()=>[b(g(c(s)(`writingTaste.milestone.open`))+` `,1),u[0]||=l(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})):y(``,!0)],10,Ye)):y(``,!0)}}),[[`__scopeId`,`data-v-d56b0112`]]),tt={class:`view vue-personal-profile`},nt=[`aria-label`],rt=[`aria-label`,`aria-pressed`],it=[`aria-label`,`aria-pressed`],at=[`aria-label`,`aria-pressed`],ot={key:0},st={key:1},ct=[`aria-label`,`aria-pressed`],lt=[`aria-label`],ut={class:`personal-profile-toolbar`},dt={class:`personal-profile-filter-groups`},ft=[`aria-label`],pt=[`aria-pressed`,`onClick`],mt={class:`personal-profile-toolbar-actions`},ht={key:0,class:`muted`},gt={key:1,class:`muted`},_t={key:2,class:`muted`},vt=[`aria-label`],yt={class:`preference-conflict-list`},bt={class:`preference-conflict-card-heading`},xt={class:`preference-conflict-pair`},St={key:0},Ct={class:`preference-conflict-actions`},wt=[`disabled`,`onClick`],Tt=[`onClick`],Et={key:0,class:`empty-state`},Dt={key:3,class:`personal-profile-layout`},Ot={class:`personal-profile-table-head`,"aria-hidden":`true`},kt=[`onClick`],At={class:`personal-profile-copy`},jt={class:`personal-profile-origin`},Mt={class:`empty-state`},Nt=E(t({__name:`PersonalProfilePage`,setup(e){let t=te(),f=a(null),h=a(null),v=a(!1),C=O(u(()=>v.value&&!f.value)),T=a(`all`),E=a(`all`),F=a(`all`),I=a(!1),R=a(null),z=a(null),B=a(null),V=a(null),H=a([]),U=a(``),W=u(()=>se(f.value)),G=u(()=>ce(W.value,H.value)),ue=u(()=>new Set(G.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),K=u(()=>new Set(H.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(le))),q=u(()=>W.value.filter(e=>$(e)&&(F.value===`all`||M(e)===F.value))),J=u(()=>JSON.stringify([T.value,E.value,F.value,I.value])),de=u(()=>R.value?q.value.findIndex(({id:e,itemKind:t})=>e===R.value?.id&&t===R.value?.itemKind):-1),Y=u(()=>G.value.filter(({left:e,right:t})=>$(e)||$(t))),X=u(()=>[[`all`,s(`preferences.profile.filters.all`)],[`taste`,s(`preferences.profile.filters.taste`)],[`personality`,s(`preferences.profile.filters.personality`)],[`judgment_preference`,s(`preferences.profile.filters.judgment`)]]),fe=u(()=>{let e=new Map((t.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),n=[...new Set(W.value.filter(({preferenceScope:e,preferenceProjectId:t})=>e===`project`&&!!t).map(({preferenceProjectId:e})=>e))].sort((t,n)=>(e.get(t)??t).localeCompare(e.get(n)??n,m()));return[{value:`all`,label:s(`preferences.profile.scopes.all`),meta:s(`common.counts.items`,{count:W.value.length})},{value:`global`,label:s(`preferences.profile.scopes.global`),meta:s(`common.counts.items`,{count:W.value.filter(({preferenceScope:e})=>e!==`project`).length})},...n.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:s(`preferences.profile.scopes.projectMeta`,{count:W.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),pe=u(()=>W.value.filter(e=>M(e)===`confirmed`).length),Z=u(()=>W.value.filter(e=>M(e)===`pending`).length),me=u(()=>W.value.filter(e=>M(e)===`agent_confirmed`).length),he=u(()=>I.value?s(`preferences.profile.summaryGuidance.conflicts`):F.value===`pending`?s(`preferences.profile.summaryGuidance.pending`):F.value===`confirmed`?s(`preferences.profile.summaryGuidance.confirmed`):F.value===`agent_confirmed`?s(`preferences.profile.summaryGuidance.agentConfirmed`):s(`preferences.profile.summaryGuidance.default`));n(()=>t.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0}),n([T,E,F,I],()=>{R.value&&!q.value.some(({id:e})=>e===R.value?.id)&&(R.value=null)}),n(fe,e=>{e.some(({value:e})=>e===E.value)||(E.value=`all`)});async function Q(e=t.activePersonalSpace?.id){if(e){v.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`}),n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a,o]=await Promise.all([w(`/api/graph?${t}`),w(`/api/preference-conflicts?${n}`),w(`/api/writing-taste-profile?${r}`).catch(()=>null)]);f.value=i,H.value=Array.isArray(a)?a:[],h.value=ge(o)?o:null,R.value&&=W.value.find(({id:e})=>e===R.value?.id)??null}catch(e){f.value=null,h.value=null,t.reportError(e)}finally{v.value=!1}}}function ge(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function _e(e){let t=ae(e),n=G.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${s(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${s(`preferences.profile.statusSuffix.conflict`)}`:K.value.has(e.id)?`${t} · ${s(`preferences.profile.statusSuffix.aiResolved`)}`:t}function ve(e){return`${e.itemKind}:${e.id}`}function ye(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return s(`preferences.shared.personalGlobal`);let n=t.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return s(`preferences.shared.projectOnly`,{project:n?.profile.name??e.preferenceProjectId})}function $(e){if(T.value!==`all`&&e.profileAspect!==T.value||E.value===`global`&&e.preferenceScope===`project`)return!1;if(E.value.startsWith(`project:`)){let t=E.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function be(e){if(e.scopeKey===`global`)return s(`preferences.shared.personalGlobal`);let n=e.scopeKey.slice(8),r=t.state?.personalProjects?.find(({project_id:e})=>e===n);return s(`preferences.shared.projectOnly`,{project:r?.profile.name??n})}function xe(e){T.value=e.profileAspect??`all`,E.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,I.value=!1,R.value=e}function Se(e){V.value=null,B.value=e}function Ce(e){let t=!I.value&&F.value===e?`all`:e;I.value=!1,F.value=t,t!==`all`&&(R.value=q.value.at(0)??null)}function we(e=!1){let t=e||!I.value;I.value=t,t&&(F.value=`all`,R.value=null)}async function Te(e){let n=t.activePersonalSpace?.id;if(!(!n||e.aiRecord)){U.value=e.id;try{let r=await ee(`/api/preference-conflicts/defer`,{personalSpaceId:n,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:s(`preferences.profile.deferReason`)});H.value=[r,...H.value.filter(({id:e})=>e!==r.id)],t.notify(s(`preferences.profile.deferNotice`))}catch(e){t.reportError(e)}finally{U.value=``}}}return(e,n)=>(d(),x(`section`,tt,[l(`div`,{class:`personal-profile-summary`,"aria-label":c(s)(`preferences.profile.summaryAria`)},[l(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":c(s)(`preferences.profile.summary.confirmedAria`,{count:pe.value}),"aria-pressed":!I.value&&F.value===`confirmed`,onClick:n[0]||=e=>Ce(`confirmed`)},[l(`strong`,null,g(pe.value),1),b(g(c(s)(`preferences.profile.summary.confirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.viewRecords`)),1)],8,rt),l(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":c(s)(`preferences.profile.summary.agentConfirmedAria`,{count:me.value}),"aria-pressed":!I.value&&F.value===`agent_confirmed`,onClick:n[1]||=e=>Ce(`agent_confirmed`)},[l(`strong`,null,g(me.value),1),b(g(c(s)(`preferences.profile.summary.agentConfirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.belowHuman`)),1)],8,it),l(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":c(s)(`preferences.profile.summary.pendingAria`,{count:Z.value}),"aria-pressed":!I.value&&F.value===`pending`,onClick:n[2]||=e=>Ce(`pending`)},[l(`strong`,null,g(Z.value),1),b(g(c(s)(`preferences.profile.summary.pending`))+` `,1),Z.value?(d(),x(`small`,ot,g(c(s)(`preferences.profile.summary.reviewAndConfirm`)),1)):(d(),x(`small`,st,g(c(s)(`preferences.profile.summary.viewRecords`)),1))],8,at),l(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":G.value.length?c(s)(`preferences.profile.summary.conflictAria`,{count:G.value.length}):c(s)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":I.value,onClick:n[3]||=e=>we()},[l(`strong`,null,g(G.value.length),1),b(g(c(s)(`preferences.profile.summary.conflicts`))+` `,1),l(`small`,null,g(G.value.length?c(s)(`preferences.profile.summary.reviewAndHandle`):c(s)(`preferences.profile.summary.viewRecords`)),1)],8,ct),l(`p`,null,g(he.value),1)],8,nt),i(et,{profile:h.value},null,8,[`profile`]),G.value.length&&!I.value&&F.value===`all`?(d(),x(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":c(s)(`preferences.profile.alert.aria`)},[n[15]||=l(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.alert.kicker`)),1),l(`h2`,null,g(c(s)(`preferences.profile.alert.title`,{count:G.value.length})),1),l(`p`,null,g(c(s)(`preferences.profile.alert.copy`)),1)]),l(`button`,{class:`primary-action`,type:`button`,onClick:n[4]||=e=>we(!0)},g(c(s)(`preferences.profile.alert.action`)),1)],8,lt)):y(``,!0),l(`div`,ut,[l(`div`,dt,[l(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":c(s)(`preferences.profile.filters.aspectAria`)},[(d(!0),x(p,null,r(X.value,([e,t])=>(d(),x(`button`,{key:e,type:`button`,"aria-pressed":T.value===e,onClick:t=>T.value=e},g(t),9,pt))),128))],8,ft),i(D,{modelValue:E.value,"onUpdate:modelValue":n[5]||=e=>E.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:c(s)(`preferences.profile.filters.scopeLabel`),options:fe.value,"search-placeholder":c(s)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),l(`div`,mt,[I.value?(d(),x(`span`,ht,g(c(s)(`preferences.profile.filters.conflictsCount`,{visible:Y.value.length,total:G.value.length})),1)):F.value===`all`?(d(),x(`span`,_t,g(q.value.length===W.value.length?c(s)(`preferences.profile.filters.personalUnderstanding`,{count:W.value.length}):c(s)(`preferences.profile.filters.visibleCount`,{visible:q.value.length,total:W.value.length})),1)):(d(),x(`span`,gt,g(c(s)(`preferences.profile.filters.reviewCount`,{count:q.value.length,status:F.value===`pending`?c(s)(`preferences.profile.summary.pending`):F.value===`agent_confirmed`?c(s)(`preferences.profile.summary.agentConfirmed`):c(s)(`preferences.profile.summary.confirmed`)})),1)),l(`button`,{class:`toolbar-action`,type:`button`,onClick:n[6]||=e=>Q()},g(c(s)(`common.actions.refresh`)),1)])]),c(C)?(d(),o(ne,{key:1,label:c(s)(`preferences.profile.directory.loading`)},null,8,[`label`])):I.value?(d(),x(`section`,{key:2,class:`preference-conflict-workbench`,"aria-label":c(s)(`preferences.profile.workbench.aria`)},[l(`header`,null,[l(`div`,null,[n[16]||=l(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),l(`h2`,null,g(c(s)(`preferences.profile.workbench.title`)),1)]),l(`p`,null,g(c(s)(`preferences.profile.workbench.copy`)),1)]),l(`div`,yt,[(d(!0),x(p,null,r(Y.value,(e,t)=>(d(),x(`article`,{key:e.id,class:`preference-conflict-card`},[l(`div`,bt,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.group`,{index:t+1})),1),l(`h3`,null,g(e.preferenceKey),1)]),l(`div`,null,[l(`span`,null,g(be(e)),1),l(`strong`,null,g(e.aiRecord?c(s)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?c(s)(`preferences.profile.workbench.mergeSuggested`):c(s)(`preferences.profile.workbench.humanReview`)),1)])]),l(`div`,xt,[l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.older`)),1),l(`strong`,null,g(e.left.title),1),l(`p`,null,g(c(L)(e.left)),1),l(`small`,null,g(c(N)(c(P)(e.left))),1)]),n[17]||=l(`i`,{"aria-hidden":`true`},`↔`,-1),l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.newer`)),1),l(`strong`,null,g(e.right.title),1),l(`p`,null,g(c(L)(e.right)),1),l(`small`,null,g(c(N)(c(P)(e.right))),1)])]),l(`footer`,null,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.reason`)),1),l(`p`,null,g(e.reason),1),e.difference.rightOnly.length?(d(),x(`small`,St,g(c(s)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):y(``,!0)]),l(`div`,Ct,[l(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||U.value===e.id,onClick:t=>Te(e)},g(e.aiRecord?c(s)(`preferences.profile.workbench.deferred`):U.value===e.id?c(s)(`preferences.profile.workbench.deferring`):c(s)(`preferences.profile.workbench.defer`)),9,wt),l(`button`,{class:`primary-action`,type:`button`,onClick:t=>V.value=e},g(c(s)(`preferences.profile.workbench.handleNow`)),9,Tt)])])]))),128))]),v.value||!Y.value.length?(d(),x(`div`,Et,g(v.value?c(s)(`preferences.profile.workbench.loading`):G.value.length?c(s)(`preferences.profile.workbench.noFiltered`):c(s)(`preferences.profile.workbench.empty`)),1)):y(``,!0)],8,vt)):(d(),x(`div`,Dt,[i(re,{class:`personal-profile-directory`,items:q.value,"row-height":76,"active-index":de.value,"reset-key":J.value,"item-key":ve,label:c(s)(`preferences.profile.directory.aria`)},{header:S(()=>[l(`div`,Ot,[l(`span`,null,g(c(s)(`preferences.profile.directory.aspect`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.content`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.statusScopeSource`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.updated`)),1)])]),default:S(({item:e})=>[l(`button`,{class:_([`personal-profile-row`,{selected:R.value?.id===e.id,"pending-review":c(M)(e)===`pending`,"ai-resolved-conflict":K.value.has(e.id)}]),type:`button`,onClick:t=>R.value=e},[l(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},g(c(j)(e.profileAspect)),3),l(`span`,At,[l(`strong`,null,g(e.title),1),l(`small`,null,g(e.body),1)]),l(`span`,jt,[l(`strong`,{class:_({"has-conflict":ue.value.has(e.id)})},g(_e(e)),3),l(`small`,null,g(c(oe)(e.originQuadrant))+` · `+g(ye(e))+` · `+g(c(s)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),l(`time`,null,g(c(N)(c(P)(e))),1)],10,kt)]),empty:S(()=>[l(`div`,Mt,g(W.value.length?c(s)(`preferences.profile.directory.noFiltered`):c(s)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),i(ie,{class:`personal-profile-inspector`,item:R.value,graph:f.value,editable:``,onConfirm:n[7]||=e=>z.value=e,onEdit:n[8]||=e=>B.value=e,onOpenReplacement:xe},null,8,[`item`,`graph`])])),i(A,{item:B.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,projects:c(t).state?.personalProjects??[],"replacement-items":W.value,onClose:n[9]||=e=>B.value=null,onSaved:n[10]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),i(k,{item:z.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,onClose:n[11]||=e=>z.value=null,onSaved:n[12]||=e=>Q()},null,8,[`item`,`personal-space-id`]),i(Je,{conflict:V.value,"personal-space-id":c(t).activePersonalSpace?.id??``,projects:c(t).state?.personalProjects??[],onClose:n[13]||=e=>V.value=null,onResolved:n[14]||=e=>Q(),onEdit:Se},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7fb5a54c`]]);export{Nt as default};
1
+ import{B as e,C as t,L as n,N as r,S as i,Y as a,_ as o,a as s,et as c,g as l,h as u,j as d,l as f,m as p,n as m,nt as h,rt as g,tt as _,u as v,v as y,x as b,y as x,z as S}from"./i18n-CgBHZthI.js";import{a as ee,i as C,r as w,t as te}from"./console-tOxOl8Vq.js";import{t as T}from"./vue-router-CzHm-y-x.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as D}from"./SearchableSelect-D27H0MoP.js";import{a as ne,i as O,n as k,t as A}from"./KnowledgeEditDialog-UnnBDt0I.js";import{n as re,t as ie}from"./KnowledgeInspector-BqPJH5Rr.js";import{C as j,D as ae,E as oe,_ as M,u as N,v as P,x as se}from"./model-BtnVr7fX.js";function ce(e,t=[]){let n=[],r=e.filter(e=>!e.invalidAt);for(let e=0;e<r.length;e+=1)for(let i=e+1;i<r.length;i+=1){let a=r[e],o=r[i];if(!U(a,o)||!W(a,o)||G(a,o))continue;let[c,l]=ue(a,o),u=B(L(c),L(l)),d=H(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&F(e,c,l))??null;n.push({id:q(c,l),preferenceKey:I(c),scopeKey:R(c),scopeLabel:z(c),left:c,right:l,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:s(`preferences.shared.conflictReason`,{key:I(c)}),aiRecord:f})}return n.sort((e,t)=>{let n=m();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function le(e){return[e.left_item_id,e.right_item_id]}function F(e,t,n){let r=new Set([`${e.left_item_kind}:${e.left_item_id}`,`${e.right_item_kind}:${e.right_item_id}`]);return r.has(`${t.itemKind}:${t.id}`)&&r.has(`${n.itemKind}:${n.id}`)}function I(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function L(e){return e.body.trim()}function R(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?s(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):s(`preferences.shared.personalGlobal`)}function B(e,t){let n=J(e),r=J(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&de(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(Y(e,r[t]))}return{shared:a,leftOnly:o,rightOnly:r.filter((e,t)=>!i.has(t)),similarity:a.length/Math.max(n.length,r.length,1)}}function V(e,t){let n=[...J(e)];for(let e of J(t)){let t=n.findIndex(t=>de(t,e));if(t<0){n.push(e);continue}n[t]=Y(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function H(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function U(e,t){return R(e)===R(t)}function W(e,t){return X(I(e))===X(I(t))}function G(e,t){return X(L(e))===X(L(t))}function ue(e,t){let n=K(e),r=K(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function K(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function q(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function J(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function de(e,t){let n=X(e),r=X(t);if(n===r)return!0;let i=n.length<=r.length?n:r,a=i===n?r:n;return i.length>=2&&a.includes(i)}function Y(e,t){return X(e).length>=X(t).length?e:t}function X(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var fe={key:0,open:``,class:`project-dialog conflict-resolution-dialog vue-dialog`},pe={class:`project-dialog-shell conflict-resolution-shell`},Z={class:`project-dialog-header`},me=[`disabled`],he=[`aria-label`],Q=[`aria-label`],ge={class:`conflict-side conflict-side-left`},_e={class:`conflict-side-heading`},ve={class:`conflict-side conflict-side-right`},ye={class:`conflict-side-heading`},$=[`aria-label`],be={key:0},xe={key:1,class:`muted`},Se={key:0},Ce={key:1,class:`muted`},we={key:0},Te={key:1,class:`muted`},Ee=[`aria-label`],De=[`aria-pressed`],Oe={key:0},ke=[`aria-pressed`],Ae=[`aria-pressed`],je=[`disabled`,`aria-pressed`],Me={key:0,class:`conflict-resolution-detail`},Ne=[`aria-label`],Pe=[`aria-pressed`],Fe=[`aria-pressed`],Ie={key:1,class:`conflict-resolution-detail`},Le=[`aria-label`],Re=[`aria-pressed`],ze=[`aria-pressed`],Be={value:``,disabled:``},Ve=[`value`],He={class:`conflict-impact-preview`},Ue={class:`conflict-resolution-reason`},We={key:2,class:`dialog-error`},Ge={class:`project-dialog-actions conflict-resolution-actions`},Ke=[`disabled`],qe=[`disabled`],Je=E(t({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(t,{emit:i}){let o=t,m=i,h=te(),_=a(null),S=a(`right`),w=a(`right`),T=a(``),E=a(``),D=a(``),ne=a(``),O=a(!1),k=a(``),A=u(()=>{let e=o.conflict;if(!e)return[];let t=w.value===`left`?e.left:e.right;return o.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),re=u(()=>A.value.length>0),ie=u(()=>{let e=o.conflict;if(!e||!_.value)return s(`preferences.dialog.impact.choose`);if(_.value===`merge`){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left;return s(`preferences.dialog.impact.merge`,{target:t.title,historical:n.title})}if(_.value===`keep_left`||_.value===`keep_right`){let t=_.value===`keep_left`?e.left:e.right,n=_.value===`keep_left`?e.right:e.left;return s(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=w.value===`left`?e.left:e.right,n=A.value.find(({project_id:e})=>e===T.value);return n?s(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):s(`preferences.dialog.impact.chooseProject`)});n(()=>o.conflict,e=>{e&&(S.value=`right`,w.value=`right`,E.value=V(L(e.right),L(e.left)),_.value=e.recommendedAction,T.value=``,k.value=``,ae(e.recommendedAction))},{immediate:!0}),n([w,A],()=>{T.value&&A.value.some(({project_id:e})=>e===T.value)||(T.value=A.value[0]?.project_id??``)},{immediate:!0});function j(e){_.value=e,(!D.value.trim()||D.value===ne.value)&&ae(e)}function ae(e){let t=o.conflict,n=t&&e?F(e,t):``;ne.value=n,D.value=n}async function oe(){let e=o.conflict;if(!e||!_.value)return I(s(`preferences.dialog.errors.actionRequired`));if(!D.value.trim())return I(s(`preferences.dialog.errors.reasonRequired`));if(_.value===`merge`&&!E.value.trim())return I(s(`preferences.dialog.errors.mergedValueRequired`));if(_.value===`split_scope`&&!T.value)return I(s(`preferences.dialog.errors.projectRequired`));O.value=!0,k.value=``;try{_.value===`merge`?await M(e):_.value===`split_scope`?await ce(e):await se(e,_.value),e.aiRecord&&await ee(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:o.personalSpaceId,resolution:_.value,reason:D.value.trim()}),h.notify(s(`preferences.dialog.resolved`)),m(`resolved`),m(`close`)}catch(e){k.value=e instanceof Error?e.message:s(`preferences.dialog.errors.failed`),h.reportError(e)}finally{O.value=!1}}async function M(e){let t=S.value===`left`?e.left:e.right,n=S.value===`left`?e.right:e.left,r={personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`update`,reason:D.value.trim()};t.itemKind===`entity`?(r.name=t.title,r.summary=E.value.trim()):r.fact=E.value.trim(),t.classificationExplicit&&t.originQuadrant!==`unclassified`&&(r.originQuadrant=t.originQuadrant,r.confirmationStatus=`confirmed`,r.confirmationBasis={existenceReason:s(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:t.confirmationBasis?.quadrant_reason||t.reasoningSummary||s(`preferences.dialog.audit.keepQuadrant`),proposedBy:t.confirmationBasis?.proposed_by?le(t.confirmationBasis.proposed_by):{kind:`import`,label:s(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:s(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await C(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,r),await C(`/api/knowledge/${n.itemKind}/${encodeURIComponent(n.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:t.id,replacementItemKind:t.itemKind})}async function se(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await C(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:o.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:D.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function ce(e){let t=w.value===`left`?e.left:e.right;await ee(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:o.personalSpaceId,scope:`project`,projectId:T.value,reason:D.value.trim()})}function le(e){return{kind:e.kind,label:e.label??null}}function F(e,t){return e===`merge`?s(`preferences.dialog.defaultReason.merge`):e===`keep_left`?s(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?s(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):s(`preferences.dialog.defaultReason.split`)}function I(e){k.value=e}return(n,i)=>t.conflict?(d(),x(`dialog`,fe,[l(`div`,pe,[l(`header`,Z,[l(`div`,null,[i[15]||=l(`p`,{class:`eyebrow`},`CONFLICT RESOLUTION`,-1),l(`h3`,null,g(c(s)(`preferences.dialog.title`)),1),l(`p`,null,g(c(s)(`preferences.dialog.intro`,{reason:t.conflict.reason})),1)]),l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[0]||=e=>m(`close`)},g(c(s)(`common.actions.close`)),9,me)]),l(`section`,{class:`conflict-pair-context`,"aria-label":c(s)(`preferences.dialog.basisAria`)},[l(`span`,null,[b(g(c(s)(`preferences.dialog.preferenceKey`))+` `,1),l(`strong`,null,g(t.conflict.preferenceKey),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.effectiveScope`))+` `,1),l(`strong`,null,g(t.conflict.scopeLabel),1)]),l(`span`,null,[b(g(c(s)(`preferences.dialog.suggestion`))+` `,1),l(`strong`,null,g(t.conflict.recommendedAction===`merge`?c(s)(`preferences.dialog.mergeSuggestion`):c(s)(`preferences.dialog.reviewSuggestion`)),1)])],8,he),l(`section`,{class:`conflict-comparison`,"aria-label":c(s)(`preferences.dialog.comparisonAria`)},[l(`article`,ge,[l(`div`,_e,[l(`span`,null,g(c(s)(`preferences.dialog.older`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.left))),1)]),l(`h4`,null,g(t.conflict.left.title),1),l(`p`,null,g(c(L)(t.conflict.left)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.left.evidence.length}))+` · `+g(t.conflict.left.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[1]||=e=>m(`edit`,t.conflict.left)},g(c(s)(`preferences.dialog.editA`)),1)]),l(`article`,ve,[l(`div`,ye,[l(`span`,null,g(c(s)(`preferences.dialog.newer`)),1),l(`time`,null,g(c(N)(c(P)(t.conflict.right))),1)]),l(`h4`,null,g(t.conflict.right.title),1),l(`p`,null,g(c(L)(t.conflict.right)),1),l(`small`,null,g(c(s)(`preferences.dialog.sourceCount`,{count:t.conflict.right.evidence.length}))+` · `+g(t.conflict.right.id),1),l(`button`,{class:`text-action`,type:`button`,onClick:i[2]||=e=>m(`edit`,t.conflict.right)},g(c(s)(`preferences.dialog.editB`)),1)])],8,Q),l(`section`,{class:`conflict-difference`,"aria-label":c(s)(`preferences.dialog.differenceAria`)},[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.shared`)),1),t.conflict.difference.shared.length?(d(),x(`p`,be,[(d(!0),x(p,null,r(t.conflict.difference.shared,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,xe,g(c(s)(`preferences.dialog.noShared`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyA`)),1),t.conflict.difference.leftOnly.length?(d(),x(`p`,Se,[(d(!0),x(p,null,r(t.conflict.difference.leftOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Ce,g(c(s)(`preferences.dialog.noUnique`)),1))]),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.dialog.onlyB`)),1),t.conflict.difference.rightOnly.length?(d(),x(`p`,we,[(d(!0),x(p,null,r(t.conflict.difference.rightOnly,e=>(d(),x(`b`,{key:e},g(e),1))),128))])):(d(),x(`p`,Te,g(c(s)(`preferences.dialog.noUnique`)),1))])],8,$),l(`section`,{class:`conflict-resolution-options`,"aria-label":c(s)(`preferences.dialog.actionsAria`)},[l(`button`,{type:`button`,"aria-pressed":_.value===`merge`,onClick:i[3]||=e=>j(`merge`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.merge`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.mergeCopy`)),1),t.conflict.recommendedAction===`merge`?(d(),x(`em`,Oe,g(c(s)(`preferences.dialog.actions.recommended`)),1)):y(``,!0)],8,De),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_left`,onClick:i[4]||=e=>j(`keep_left`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepA`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepACopy`)),1)],8,ke),l(`button`,{type:`button`,"aria-pressed":_.value===`keep_right`,onClick:i[5]||=e=>j(`keep_right`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.keepB`)),1),l(`span`,null,g(c(s)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ae),l(`button`,{type:`button`,disabled:!re.value,"aria-pressed":_.value===`split_scope`,onClick:i[6]||=e=>j(`split_scope`)},[l(`strong`,null,g(c(s)(`preferences.dialog.actions.split`)),1),l(`span`,null,g(re.value?c(s)(`preferences.dialog.actions.splitCopy`):c(s)(`preferences.dialog.actions.noProjects`)),1)],8,je)],8,Ee),_.value===`merge`?(d(),x(`section`,Me,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.mergeIdentityAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.canonicalIdentity`)),1),l(`button`,{type:`button`,"aria-pressed":S.value===`left`,onClick:i[7]||=e=>S.value=`left`},g(c(s)(`preferences.dialog.identityA`)),9,Pe),l(`button`,{type:`button`,"aria-pressed":S.value===`right`,onClick:i[8]||=e=>S.value=`right`},g(c(s)(`preferences.dialog.identityB`)),9,Fe)],8,Ne),l(`label`,null,[b(g(c(s)(`preferences.dialog.mergedContent`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[9]||=e=>E.value=e,rows:`4`,maxlength:`4096`},null,512),[[v,E.value]])])])):y(``,!0),_.value===`split_scope`?(d(),x(`section`,Ie,[l(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":c(s)(`preferences.dialog.splitRecordAria`)},[l(`span`,null,g(c(s)(`preferences.dialog.adjustRecord`)),1),l(`button`,{type:`button`,"aria-pressed":w.value===`left`,onClick:i[10]||=e=>w.value=`left`},` A `,8,Re),l(`button`,{type:`button`,"aria-pressed":w.value===`right`,onClick:i[11]||=e=>w.value=`right`},` B `,8,ze)],8,Le),l(`label`,null,[b(g(c(s)(`preferences.dialog.projectOnly`))+` `,1),e(l(`select`,{"onUpdate:modelValue":i[12]||=e=>T.value=e},[l(`option`,Be,g(c(s)(`preferences.dialog.chooseProject`)),1),(d(!0),x(p,null,r(A.value,e=>(d(),x(`option`,{key:e.project_id,value:e.project_id},g(e.profile.name),9,Ve))),128))],512),[[f,T.value]])])])):y(``,!0),l(`section`,He,[l(`span`,null,g(c(s)(`preferences.dialog.impactTitle`)),1),l(`p`,null,g(ie.value),1)]),l(`label`,Ue,[b(g(c(s)(`preferences.dialog.reason`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":i[13]||=e=>D.value=e,rows:`2`,maxlength:`2000`},null,512),[[v,D.value]])]),k.value?(d(),x(`p`,We,g(k.value),1)):y(``,!0),l(`footer`,Ge,[l(`span`,null,g(c(s)(`preferences.dialog.pendingCopy`)),1),l(`div`,null,[l(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[14]||=e=>m(`close`)},g(c(s)(`preferences.dialog.defer`)),9,Ke),l(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!_.value,onClick:oe},g(O.value?c(s)(`preferences.dialog.processing`):c(s)(`preferences.dialog.confirm`)),9,qe)])])])])):y(``,!0)}}),[[`__scopeId`,`data-v-dee70ac5`]]),Ye=[`aria-label`],Xe={class:`writing-taste-milestone__copy`},Ze={class:`writing-taste-milestone__heading`},Qe={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},$e={class:`writing-taste-milestone__metrics`},et=E(t({__name:`WritingTasteMilestone`,props:{profile:{}},setup(e){let t=e,n=u(()=>t.profile?.ready===!0),r=u(()=>t.profile?.status===`active`?s(`writingTaste.milestone.activeTitle`):t.profile?.status===`preview_ready`?s(`writingTaste.milestone.previewTitle`):s(`writingTaste.milestone.collectingTitle`)),i=u(()=>n.value?s(`writingTaste.milestone.readyCopy`):s(`writingTaste.milestone.collectingCopy`)),a=u(()=>{let e=t.profile?.readiness;if(!e)return 0;let n=[f(e.rule_count,e.thresholds.rule_count),f(e.evidence_count,e.thresholds.evidence_count),f(e.session_count,e.thresholds.session_count),f(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(n.reduce((e,t)=>e+t,0)/n.length*100)});function f(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(t,u)=>e.profile?(d(),x(`section`,{key:0,class:_([`writing-taste-milestone`,`status-${e.profile.status}`]),"aria-label":c(s)(`writingTaste.milestone.aria`)},[u[1]||=l(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[l(`span`),l(`span`),l(`span`)],-1),l(`div`,Xe,[l(`div`,Ze,[l(`h2`,null,g(r.value),1),l(`span`,null,g(c(s)(`writingTaste.status.${e.profile.status}`)),1)]),l(`p`,null,g(i.value),1),l(`div`,Qe,[l(`i`,{style:h({width:`${a.value}%`})},null,4)]),l(`div`,$e,[l(`small`,null,g(c(s)(`writingTaste.milestone.rules`,{current:e.profile.readiness.rule_count,target:e.profile.readiness.thresholds.rule_count})),1),l(`small`,null,g(c(s)(`writingTaste.milestone.sessions`,{current:e.profile.readiness.session_count,target:e.profile.readiness.thresholds.session_count})),1)])]),n.value?(d(),o(c(T),{key:0,class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:S(()=>[b(g(c(s)(`writingTaste.milestone.open`))+` `,1),u[0]||=l(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})):y(``,!0)],10,Ye)):y(``,!0)}}),[[`__scopeId`,`data-v-d56b0112`]]),tt={class:`view vue-personal-profile`},nt=[`aria-label`],rt=[`aria-label`,`aria-pressed`],it=[`aria-label`,`aria-pressed`],at=[`aria-label`,`aria-pressed`],ot={key:0},st={key:1},ct=[`aria-label`,`aria-pressed`],lt=[`aria-label`],ut={class:`personal-profile-toolbar`},dt={class:`personal-profile-filter-groups`},ft=[`aria-label`],pt=[`aria-pressed`,`onClick`],mt={class:`personal-profile-toolbar-actions`},ht={key:0,class:`muted`},gt={key:1,class:`muted`},_t={key:2,class:`muted`},vt=[`aria-label`],yt={class:`preference-conflict-list`},bt={class:`preference-conflict-card-heading`},xt={class:`preference-conflict-pair`},St={key:0},Ct={class:`preference-conflict-actions`},wt=[`disabled`,`onClick`],Tt=[`onClick`],Et={key:0,class:`empty-state`},Dt={key:3,class:`personal-profile-layout`},Ot={class:`personal-profile-table-head`,"aria-hidden":`true`},kt=[`onClick`],At={class:`personal-profile-copy`},jt={class:`personal-profile-origin`},Mt={class:`empty-state`},Nt=E(t({__name:`PersonalProfilePage`,setup(e){let t=te(),f=a(null),h=a(null),v=a(!1),C=O(u(()=>v.value&&!f.value)),T=a(`all`),E=a(`all`),F=a(`all`),I=a(!1),R=a(null),z=a(null),B=a(null),V=a(null),H=a([]),U=a(``),W=u(()=>se(f.value)),G=u(()=>ce(W.value,H.value)),ue=u(()=>new Set(G.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),K=u(()=>new Set(H.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(le))),q=u(()=>W.value.filter(e=>$(e)&&(F.value===`all`||M(e)===F.value))),J=u(()=>JSON.stringify([T.value,E.value,F.value,I.value])),de=u(()=>R.value?q.value.findIndex(({id:e,itemKind:t})=>e===R.value?.id&&t===R.value?.itemKind):-1),Y=u(()=>G.value.filter(({left:e,right:t})=>$(e)||$(t))),X=u(()=>[[`all`,s(`preferences.profile.filters.all`)],[`taste`,s(`preferences.profile.filters.taste`)],[`personality`,s(`preferences.profile.filters.personality`)],[`judgment_preference`,s(`preferences.profile.filters.judgment`)]]),fe=u(()=>{let e=new Map((t.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),n=[...new Set(W.value.filter(({preferenceScope:e,preferenceProjectId:t})=>e===`project`&&!!t).map(({preferenceProjectId:e})=>e))].sort((t,n)=>(e.get(t)??t).localeCompare(e.get(n)??n,m()));return[{value:`all`,label:s(`preferences.profile.scopes.all`),meta:s(`common.counts.items`,{count:W.value.length})},{value:`global`,label:s(`preferences.profile.scopes.global`),meta:s(`common.counts.items`,{count:W.value.filter(({preferenceScope:e})=>e!==`project`).length})},...n.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:s(`preferences.profile.scopes.projectMeta`,{count:W.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),pe=u(()=>W.value.filter(e=>M(e)===`confirmed`).length),Z=u(()=>W.value.filter(e=>M(e)===`pending`).length),me=u(()=>W.value.filter(e=>M(e)===`agent_confirmed`).length),he=u(()=>I.value?s(`preferences.profile.summaryGuidance.conflicts`):F.value===`pending`?s(`preferences.profile.summaryGuidance.pending`):F.value===`confirmed`?s(`preferences.profile.summaryGuidance.confirmed`):F.value===`agent_confirmed`?s(`preferences.profile.summaryGuidance.agentConfirmed`):s(`preferences.profile.summaryGuidance.default`));n(()=>t.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0}),n([T,E,F,I],()=>{R.value&&!q.value.some(({id:e})=>e===R.value?.id)&&(R.value=null)}),n(fe,e=>{e.some(({value:e})=>e===E.value)||(E.value=`all`)});async function Q(e=t.activePersonalSpace?.id){if(e){v.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`}),n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a,o]=await Promise.all([w(`/api/graph?${t}`),w(`/api/preference-conflicts?${n}`),w(`/api/writing-taste-profile?${r}`).catch(()=>null)]);f.value=i,H.value=Array.isArray(a)?a:[],h.value=ge(o)?o:null,R.value&&=W.value.find(({id:e})=>e===R.value?.id)??null}catch(e){f.value=null,h.value=null,t.reportError(e)}finally{v.value=!1}}}function ge(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function _e(e){let t=ae(e),n=G.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${s(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${s(`preferences.profile.statusSuffix.conflict`)}`:K.value.has(e.id)?`${t} · ${s(`preferences.profile.statusSuffix.aiResolved`)}`:t}function ve(e){return`${e.itemKind}:${e.id}`}function ye(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return s(`preferences.shared.personalGlobal`);let n=t.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return s(`preferences.shared.projectOnly`,{project:n?.profile.name??e.preferenceProjectId})}function $(e){if(T.value!==`all`&&e.profileAspect!==T.value||E.value===`global`&&e.preferenceScope===`project`)return!1;if(E.value.startsWith(`project:`)){let t=E.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function be(e){if(e.scopeKey===`global`)return s(`preferences.shared.personalGlobal`);let n=e.scopeKey.slice(8),r=t.state?.personalProjects?.find(({project_id:e})=>e===n);return s(`preferences.shared.projectOnly`,{project:r?.profile.name??n})}function xe(e){T.value=e.profileAspect??`all`,E.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,I.value=!1,R.value=e}function Se(e){V.value=null,B.value=e}function Ce(e){let t=!I.value&&F.value===e?`all`:e;I.value=!1,F.value=t,t!==`all`&&(R.value=q.value.at(0)??null)}function we(e=!1){let t=e||!I.value;I.value=t,t&&(F.value=`all`,R.value=null)}async function Te(e){let n=t.activePersonalSpace?.id;if(!(!n||e.aiRecord)){U.value=e.id;try{let r=await ee(`/api/preference-conflicts/defer`,{personalSpaceId:n,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:s(`preferences.profile.deferReason`)});H.value=[r,...H.value.filter(({id:e})=>e!==r.id)],t.notify(s(`preferences.profile.deferNotice`))}catch(e){t.reportError(e)}finally{U.value=``}}}return(e,n)=>(d(),x(`section`,tt,[l(`div`,{class:`personal-profile-summary`,"aria-label":c(s)(`preferences.profile.summaryAria`)},[l(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":c(s)(`preferences.profile.summary.confirmedAria`,{count:pe.value}),"aria-pressed":!I.value&&F.value===`confirmed`,onClick:n[0]||=e=>Ce(`confirmed`)},[l(`strong`,null,g(pe.value),1),b(g(c(s)(`preferences.profile.summary.confirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.viewRecords`)),1)],8,rt),l(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":c(s)(`preferences.profile.summary.agentConfirmedAria`,{count:me.value}),"aria-pressed":!I.value&&F.value===`agent_confirmed`,onClick:n[1]||=e=>Ce(`agent_confirmed`)},[l(`strong`,null,g(me.value),1),b(g(c(s)(`preferences.profile.summary.agentConfirmed`))+` `,1),l(`small`,null,g(c(s)(`preferences.profile.summary.belowHuman`)),1)],8,it),l(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":c(s)(`preferences.profile.summary.pendingAria`,{count:Z.value}),"aria-pressed":!I.value&&F.value===`pending`,onClick:n[2]||=e=>Ce(`pending`)},[l(`strong`,null,g(Z.value),1),b(g(c(s)(`preferences.profile.summary.pending`))+` `,1),Z.value?(d(),x(`small`,ot,g(c(s)(`preferences.profile.summary.reviewAndConfirm`)),1)):(d(),x(`small`,st,g(c(s)(`preferences.profile.summary.viewRecords`)),1))],8,at),l(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":G.value.length?c(s)(`preferences.profile.summary.conflictAria`,{count:G.value.length}):c(s)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":I.value,onClick:n[3]||=e=>we()},[l(`strong`,null,g(G.value.length),1),b(g(c(s)(`preferences.profile.summary.conflicts`))+` `,1),l(`small`,null,g(G.value.length?c(s)(`preferences.profile.summary.reviewAndHandle`):c(s)(`preferences.profile.summary.viewRecords`)),1)],8,ct),l(`p`,null,g(he.value),1)],8,nt),i(et,{profile:h.value},null,8,[`profile`]),G.value.length&&!I.value&&F.value===`all`?(d(),x(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":c(s)(`preferences.profile.alert.aria`)},[n[15]||=l(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.alert.kicker`)),1),l(`h2`,null,g(c(s)(`preferences.profile.alert.title`,{count:G.value.length})),1),l(`p`,null,g(c(s)(`preferences.profile.alert.copy`)),1)]),l(`button`,{class:`primary-action`,type:`button`,onClick:n[4]||=e=>we(!0)},g(c(s)(`preferences.profile.alert.action`)),1)],8,lt)):y(``,!0),l(`div`,ut,[l(`div`,dt,[l(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":c(s)(`preferences.profile.filters.aspectAria`)},[(d(!0),x(p,null,r(X.value,([e,t])=>(d(),x(`button`,{key:e,type:`button`,"aria-pressed":T.value===e,onClick:t=>T.value=e},g(t),9,pt))),128))],8,ft),i(D,{modelValue:E.value,"onUpdate:modelValue":n[5]||=e=>E.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:c(s)(`preferences.profile.filters.scopeLabel`),options:fe.value,"search-placeholder":c(s)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),l(`div`,mt,[I.value?(d(),x(`span`,ht,g(c(s)(`preferences.profile.filters.conflictsCount`,{visible:Y.value.length,total:G.value.length})),1)):F.value===`all`?(d(),x(`span`,_t,g(q.value.length===W.value.length?c(s)(`preferences.profile.filters.personalUnderstanding`,{count:W.value.length}):c(s)(`preferences.profile.filters.visibleCount`,{visible:q.value.length,total:W.value.length})),1)):(d(),x(`span`,gt,g(c(s)(`preferences.profile.filters.reviewCount`,{count:q.value.length,status:F.value===`pending`?c(s)(`preferences.profile.summary.pending`):F.value===`agent_confirmed`?c(s)(`preferences.profile.summary.agentConfirmed`):c(s)(`preferences.profile.summary.confirmed`)})),1)),l(`button`,{class:`toolbar-action`,type:`button`,onClick:n[6]||=e=>Q()},g(c(s)(`common.actions.refresh`)),1)])]),c(C)?(d(),o(ne,{key:1,label:c(s)(`preferences.profile.directory.loading`)},null,8,[`label`])):I.value?(d(),x(`section`,{key:2,class:`preference-conflict-workbench`,"aria-label":c(s)(`preferences.profile.workbench.aria`)},[l(`header`,null,[l(`div`,null,[n[16]||=l(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),l(`h2`,null,g(c(s)(`preferences.profile.workbench.title`)),1)]),l(`p`,null,g(c(s)(`preferences.profile.workbench.copy`)),1)]),l(`div`,yt,[(d(!0),x(p,null,r(Y.value,(e,t)=>(d(),x(`article`,{key:e.id,class:`preference-conflict-card`},[l(`div`,bt,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.group`,{index:t+1})),1),l(`h3`,null,g(e.preferenceKey),1)]),l(`div`,null,[l(`span`,null,g(be(e)),1),l(`strong`,null,g(e.aiRecord?c(s)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?c(s)(`preferences.profile.workbench.mergeSuggested`):c(s)(`preferences.profile.workbench.humanReview`)),1)])]),l(`div`,xt,[l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.older`)),1),l(`strong`,null,g(e.left.title),1),l(`p`,null,g(c(L)(e.left)),1),l(`small`,null,g(c(N)(c(P)(e.left))),1)]),n[17]||=l(`i`,{"aria-hidden":`true`},`↔`,-1),l(`section`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.newer`)),1),l(`strong`,null,g(e.right.title),1),l(`p`,null,g(c(L)(e.right)),1),l(`small`,null,g(c(N)(c(P)(e.right))),1)])]),l(`footer`,null,[l(`div`,null,[l(`span`,null,g(c(s)(`preferences.profile.workbench.reason`)),1),l(`p`,null,g(e.reason),1),e.difference.rightOnly.length?(d(),x(`small`,St,g(c(s)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):y(``,!0)]),l(`div`,Ct,[l(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||U.value===e.id,onClick:t=>Te(e)},g(e.aiRecord?c(s)(`preferences.profile.workbench.deferred`):U.value===e.id?c(s)(`preferences.profile.workbench.deferring`):c(s)(`preferences.profile.workbench.defer`)),9,wt),l(`button`,{class:`primary-action`,type:`button`,onClick:t=>V.value=e},g(c(s)(`preferences.profile.workbench.handleNow`)),9,Tt)])])]))),128))]),v.value||!Y.value.length?(d(),x(`div`,Et,g(v.value?c(s)(`preferences.profile.workbench.loading`):G.value.length?c(s)(`preferences.profile.workbench.noFiltered`):c(s)(`preferences.profile.workbench.empty`)),1)):y(``,!0)],8,vt)):(d(),x(`div`,Dt,[i(re,{class:`personal-profile-directory`,items:q.value,"row-height":76,"active-index":de.value,"reset-key":J.value,"item-key":ve,label:c(s)(`preferences.profile.directory.aria`)},{header:S(()=>[l(`div`,Ot,[l(`span`,null,g(c(s)(`preferences.profile.directory.aspect`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.content`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.statusScopeSource`)),1),l(`span`,null,g(c(s)(`preferences.profile.directory.updated`)),1)])]),default:S(({item:e})=>[l(`button`,{class:_([`personal-profile-row`,{selected:R.value?.id===e.id,"pending-review":c(M)(e)===`pending`,"ai-resolved-conflict":K.value.has(e.id)}]),type:`button`,onClick:t=>R.value=e},[l(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},g(c(j)(e.profileAspect)),3),l(`span`,At,[l(`strong`,null,g(e.title),1),l(`small`,null,g(e.body),1)]),l(`span`,jt,[l(`strong`,{class:_({"has-conflict":ue.value.has(e.id)})},g(_e(e)),3),l(`small`,null,g(c(oe)(e.originQuadrant))+` · `+g(ye(e))+` · `+g(c(s)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),l(`time`,null,g(c(N)(c(P)(e))),1)],10,kt)]),empty:S(()=>[l(`div`,Mt,g(W.value.length?c(s)(`preferences.profile.directory.noFiltered`):c(s)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),i(ie,{class:`personal-profile-inspector`,item:R.value,graph:f.value,editable:``,onConfirm:n[7]||=e=>z.value=e,onEdit:n[8]||=e=>B.value=e,onOpenReplacement:xe},null,8,[`item`,`graph`])])),i(A,{item:B.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,projects:c(t).state?.personalProjects??[],"replacement-items":W.value,onClose:n[9]||=e=>B.value=null,onSaved:n[10]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),i(k,{item:z.value,"personal-space-id":c(t).activePersonalSpace?.id??``,"personal-project-id":null,onClose:n[11]||=e=>z.value=null,onSaved:n[12]||=e=>Q()},null,8,[`item`,`personal-space-id`]),i(Je,{conflict:V.value,"personal-space-id":c(t).activePersonalSpace?.id??``,projects:c(t).state?.personalProjects??[],onClose:n[13]||=e=>V.value=null,onResolved:n[14]||=e=>Q(),onEdit:Se},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7fb5a54c`]]);export{Nt as default};
@@ -0,0 +1 @@
1
+ import{C as e,_ as t,j as n}from"./i18n-CgBHZthI.js";import{t as r}from"./KnowledgeWorkspace-CfIjhOog.js";var i=e({__name:`PersonalProjectsPage`,setup(e){return(e,i)=>(n(),t(r,{"personal-projects-only":``}))}});export{i as default};
@@ -0,0 +1 @@
1
+ .project-agent-assignment-dialog[data-v-27954ba8]{background:0 0;border:0;border-radius:12px;width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);padding:0}.project-agent-assignment-dialog-shell[data-v-27954ba8]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-assignment-dialog-header[data-v-27954ba8],.project-agent-assignment-dialog-actions[data-v-27954ba8]{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.project-agent-assignment-dialog-header[data-v-27954ba8]{border-bottom:1px solid #e1e6e2}.project-agent-assignment-dialog-header h3[data-v-27954ba8]{color:#283a31;font-size:16px}.project-agent-assignment-dialog-fields[data-v-27954ba8]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;padding:18px;display:grid;overflow:auto}.project-agent-assignment-dialog-fields label[data-v-27954ba8]{color:#626d66;gap:6px;font-size:11px;font-weight:650;display:grid}.project-agent-assignment-dialog-fields input[data-v-27954ba8],.project-agent-assignment-dialog-fields textarea[data-v-27954ba8]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:8px 9px;font-size:12px;line-height:1.5}.project-agent-assignment-dialog-fields textarea[data-v-27954ba8]{resize:vertical}.project-agent-assignment-dialog-fields input[data-v-27954ba8]:focus-visible,.project-agent-assignment-dialog-fields textarea[data-v-27954ba8]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-assignment-wide-field[data-v-27954ba8]{grid-column:1/-1}.project-agent-assignment-dialog-error[data-v-27954ba8]{color:#8b3f38;margin:0 18px;font-size:11px}.project-agent-assignment-dialog-actions[data-v-27954ba8]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-27954ba8]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700}.project-agent-primary-action[data-v-27954ba8]:focus-visible{outline-offset:2px;outline:2px solid #91a398}@media (width<=620px){.project-agent-assignment-dialog-fields[data-v-27954ba8]{grid-template-columns:1fr}.project-agent-assignment-wide-field[data-v-27954ba8]{grid-column:auto}}.project-agent-dialog-check[data-v-6b96c90d]{align-items:center;gap:7px!important;display:flex!important}.project-agent-dialog-check input[data-v-6b96c90d]{width:auto!important}.project-agent-dialog-note[data-v-6b96c90d]{color:#7b857e;font-size:10px;line-height:1.55}.project-agent-automation-policy[data-v-4160a96e]{border-block:1px solid #dfe5e0;grid-template-columns:minmax(110px,150px) minmax(0,1fr);align-items:center;gap:14px;padding:11px 0;display:grid}.project-agent-automation-policy>header[data-v-4160a96e]{min-width:0}.project-agent-automation-policy h3[data-v-4160a96e]{color:#31453a;font-size:12px;line-height:1.35}.project-agent-automation-policy header span[data-v-4160a96e]{color:#68756d;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;display:block;overflow:hidden}.project-agent-policy-options[data-v-4160a96e]{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.project-agent-policy-options label[data-v-4160a96e]{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:2px 16px;display:grid}.project-agent-policy-options label+label[data-v-4160a96e]{border-inline-start:1px solid #e2e7e3}.project-agent-policy-options label>span[data-v-4160a96e]{gap:3px;min-width:0;display:grid}.project-agent-policy-options strong[data-v-4160a96e]{color:#3d5045;font-size:10px;line-height:1.4}.project-agent-policy-options small[data-v-4160a96e]{color:#6d7971;overflow-wrap:anywhere;max-width:54ch;font-size:9px;line-height:1.45}.project-agent-policy-options input[data-v-4160a96e]{appearance:none;cursor:pointer;background:#e8ece9;border:1px solid #aeb8b1;border-radius:999px;width:34px;height:19px;margin:0;transition:background-color .14s ease-out,border-color .14s ease-out;position:relative}.project-agent-policy-options input[data-v-4160a96e]:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .14s ease-out;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #24372c38}.project-agent-policy-options input[data-v-4160a96e]:checked{background:#4d8164;border-color:#3f7658}.project-agent-policy-options input[data-v-4160a96e]:checked:after{transform:translate(15px)}.project-agent-policy-options input[data-v-4160a96e]:focus-visible{outline-offset:3px;outline:2px solid #355f49}.project-agent-policy-options input[data-v-4160a96e]:disabled{cursor:wait;opacity:.62}.project-agent-policy-feedback[data-v-4160a96e]{grid-column:2;min-height:14px;padding-inline:16px}.project-agent-policy-state[data-v-4160a96e],.project-agent-policy-feedback p[data-v-4160a96e]{color:#66736b;font-size:9px;line-height:1.45}.project-agent-policy-feedback p[role=alert][data-v-4160a96e]{color:#874b43}.project-agent-policy-feedback button[data-v-4160a96e]{color:#355f49;font:inherit;cursor:pointer;background:0 0;border:0;margin-inline-start:6px;padding:0;font-weight:700}@media (width<=760px){.project-agent-automation-policy[data-v-4160a96e],.project-agent-policy-options[data-v-4160a96e]{grid-template-columns:minmax(0,1fr)}.project-agent-policy-options label[data-v-4160a96e]{padding:8px 0}.project-agent-policy-options label+label[data-v-4160a96e]{border-block-start:1px solid #e2e7e3;border-inline-start:0}.project-agent-policy-feedback[data-v-4160a96e]{grid-column:1;padding-inline:0}}.project-agent-source-state[data-v-f174e20d]{color:#727d75;background:#f7f9f7;border:1px solid #e1e6e2;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding:10px 12px;font-size:10px;display:flex}.project-agent-source-state.is-error[data-v-f174e20d]{color:#8c4f49;background:#fbf3f1;border-color:#ebd5d0}.project-agent-dialog[data-v-83825f22]{background:0 0;border:0;border-radius:12px;width:min(760px,100vw - 64px);max-height:calc(100vh - 64px);padding:0;overflow:hidden}.project-agent-dialog-shell[data-v-83825f22]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-dialog-header[data-v-83825f22],.project-agent-dialog-actions[data-v-83825f22]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-83825f22]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-83825f22]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-83825f22]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.project-agent-dialog-fields label[data-v-83825f22]{color:#626d66;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:650;display:grid}.project-agent-dialog-fields input[data-v-83825f22],.project-agent-dialog-fields select[data-v-83825f22],.project-agent-dialog-fields textarea[data-v-83825f22]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:9px 10px;font-size:12px;line-height:1.5}.project-agent-dialog-fields textarea[data-v-83825f22]{resize:vertical}.project-agent-dialog-fields input[data-v-83825f22]:focus-visible,.project-agent-dialog-fields select[data-v-83825f22]:focus-visible,.project-agent-dialog-fields textarea[data-v-83825f22]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-83825f22],.project-agent-id-note[data-v-83825f22]{grid-column:1/-1}.project-agent-strategy-fields[data-v-83825f22]{border:1px solid #dfe5e0;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:12px;display:grid}.project-agent-strategy-fields legend[data-v-83825f22]{color:#59665d;padding:0 5px;font-size:10px;font-weight:700}.project-agent-strategy-fields>small[data-v-83825f22]{color:#818a84;grid-column:1/-1;font-size:9px;line-height:1.5}.project-agent-id-note[data-v-83825f22]{color:#7b847e;margin-top:-8px;font-size:10px}.project-agent-dialog-error[data-v-83825f22]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-83825f22]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-83825f22]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-83825f22]:hover{background:#2b4234}.project-agent-primary-action[data-v-83825f22]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-83825f22]:disabled,.project-agent-dialog-fields[data-v-83825f22] :disabled{cursor:not-allowed;opacity:.6}@media (width<=720px){.project-agent-dialog-fields[data-v-83825f22]{grid-template-columns:1fr}.project-agent-wide-field[data-v-83825f22],.project-agent-id-note[data-v-83825f22]{grid-column:1}}.project-agent-header-actions[data-v-d3470bdb]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-agents-view[data-v-d3470bdb]{flex-direction:column;gap:12px;min-height:0;padding:18px 32px 20px;display:flex;overflow:hidden}.project-agents-header[data-v-d3470bdb],.project-agent-section-heading[data-v-d3470bdb],.project-agent-section-tools[data-v-d3470bdb],.project-agent-detail-actions[data-v-d3470bdb],.project-agent-assignment-card header[data-v-d3470bdb],.project-agent-task-card header[data-v-d3470bdb],.project-agent-learning-card header[data-v-d3470bdb],.project-agent-day-detail header[data-v-d3470bdb]{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-agents-header h2[data-v-d3470bdb]{color:#283a31;font-size:18px}.project-agents-header-meta[data-v-d3470bdb]{color:#7a847d;font-size:10px}.project-agents-summary[data-v-d3470bdb]{color:#58675d;gap:18px;padding:2px 0 4px;font-size:12px;line-height:1.5;display:flex}.project-agents-summary span[data-v-d3470bdb]:first-child{color:#2f493b;font-weight:700}.project-agent-add[data-v-d3470bdb]{color:#fff;cursor:pointer;background:#344c3d;border:0;border-radius:8px;min-height:40px;padding:9px 14px;font-size:12px;font-weight:600}.project-agent-add[data-v-d3470bdb]:hover{background:#2b4234}.project-agent-add[data-v-d3470bdb]:focus-visible,.quiet-button[data-v-d3470bdb]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-add[data-v-d3470bdb]:disabled{cursor:not-allowed;opacity:.55}.project-agents-toolbar[data-v-d3470bdb]{grid-template-columns:minmax(240px,320px) minmax(200px,1fr) auto;align-items:center;gap:12px;display:grid}.project-agents-search input[data-v-d3470bdb]{color:#2e3932;background:#fff;border:1px solid #cfd7d1;border-radius:8px;width:100%;min-height:44px;padding:10px 12px;font-size:13px}.project-agents-search input[data-v-d3470bdb]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agents-status-filter[data-v-d3470bdb]{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;gap:3px;padding:3px;display:flex}.project-agents-status-filter button[data-v-d3470bdb],.quiet-button[data-v-d3470bdb]{color:#58675d;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:34px;padding:7px 10px;font-size:12px}.project-agents-status-filter button[aria-pressed=true][data-v-d3470bdb]{color:#315440;background:#fff;font-weight:700;box-shadow:0 1px 3px #27392f1f}.project-agents-directory[data-v-d3470bdb]{background:#fff;border:1px solid #cfd7d1;border-radius:10px;flex:1;grid-template-columns:minmax(360px,.94fr) minmax(390px,1.06fr);min-height:0;display:grid;overflow:hidden}.project-agent-list[data-v-d3470bdb]{border-right:1px solid #dfe4e0;min-width:0;min-height:0;overflow:auto}.project-agent-row[data-v-d3470bdb]{width:100%;color:inherit;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6eae7;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:14px 16px;display:grid}.project-agent-row[data-v-d3470bdb]:hover{background:#f7f9f7}.project-agent-row.selected[data-v-d3470bdb]{background:#edf3ef}.project-agent-row[data-v-d3470bdb]:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #91a398;position:relative}.project-agent-row-heading[data-v-d3470bdb]{align-items:center;gap:7px;min-width:0;display:flex}.project-agent-occupation-emoji[data-v-d3470bdb]{flex:none;justify-content:center;align-items:center;min-width:1.2em;font-size:15px;line-height:1;display:inline-flex}.project-agent-row-heading strong[data-v-d3470bdb]{color:#293b31;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.project-agent-row-heading i[data-v-d3470bdb],.project-agent-assignment-card header i[data-v-d3470bdb],.project-agent-task-card header i[data-v-d3470bdb],.project-agent-learning-card header i[data-v-d3470bdb]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 7px;font-size:9px;font-style:normal;font-weight:700}.project-agent-row-heading i.is-active[data-v-d3470bdb]{color:#2f6947;background:#e1eee6}.project-agent-row-heading i.is-archived[data-v-d3470bdb]{color:#75695d;background:#eeeae5}.project-agent-kind[data-v-d3470bdb]{color:#53647b!important;background:#eef2f7!important}.project-agent-row-id[data-v-d3470bdb]{color:#8a938d;overflow-wrap:anywhere;text-align:right;font-size:9px}.project-agent-row-projects[data-v-d3470bdb]{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.project-agent-row-projects b[data-v-d3470bdb],.project-agent-tags span[data-v-d3470bdb],.project-agent-inline-list span[data-v-d3470bdb]{color:#5f6b64;background:#eef1ef;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-row-projects em[data-v-d3470bdb]{color:#8a938d;font-size:9px;font-style:normal}.project-agent-row-responsibility[data-v-d3470bdb]{color:#59645d;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:11px;line-height:1.5;overflow:hidden}.project-agent-row-work[data-v-d3470bdb]{color:#59645d;grid-column:1/-1;font-size:10px;line-height:1.5}.project-agent-work-dot[data-v-d3470bdb]{background:#4b8d63;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.project-agent-row-capabilities[data-v-d3470bdb]{flex-wrap:wrap;grid-column:1/-1;gap:5px;min-height:20px;display:flex}.project-agent-row-capabilities b[data-v-d3470bdb]{color:#68736c;background:#f1f3f1;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-detail[data-v-d3470bdb]{min-width:0;min-height:0;padding:20px;overflow:auto;container-type:inline-size}.employee-project-overview[data-v-d3470bdb]{border-bottom:1px solid #e1e6e2;margin:22px 0;padding-bottom:18px}.employee-project-overview-heading[data-v-d3470bdb]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.employee-project-overview-heading h4[data-v-d3470bdb]{color:#33483c;margin:0;font-size:14px}.employee-project-overview-heading p[data-v-d3470bdb],.employee-project-overview-hint[data-v-d3470bdb]{color:#58675d;margin:5px 0 0;font-size:12px;line-height:1.6}.employee-project-overview-hint[data-v-d3470bdb]{margin-top:12px}.employee-assigned-projects[data-v-d3470bdb]{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 20px;margin-top:12px;display:grid}.employee-assigned-projects a[data-v-d3470bdb]{color:#315c43;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;line-height:1.5;text-decoration:none;display:flex}.employee-assigned-projects a[data-v-d3470bdb]:hover{text-underline-offset:3px;text-decoration:underline}.employee-assigned-projects a[data-v-d3470bdb]:focus-visible{outline-offset:3px;outline:2px solid #91a398}.employee-assigned-projects a span[data-v-d3470bdb]{overflow-wrap:anywhere}.employee-assigned-projects svg[data-v-d3470bdb]{flex-shrink:0}@container (width<=480px){.employee-assigned-projects[data-v-d3470bdb]{grid-template-columns:minmax(0,1fr)}}.project-agent-detail>header[data-v-d3470bdb]{border-bottom:1px solid #e1e6e2;grid-template-columns:minmax(0,1fr) max-content;align-items:flex-start;gap:16px;padding-bottom:16px;display:grid}.project-agent-detail-heading[data-v-d3470bdb]{min-width:0}.project-agent-detail h3[data-v-d3470bdb]{color:#263b30;text-wrap:balance;font-size:17px;line-height:1.32}.project-agent-detail header p[data-v-d3470bdb]{color:#7a847d;overflow-wrap:anywhere;max-width:72ch;margin-top:5px;font-size:10px;line-height:1.5}.project-agent-detail-actions[data-v-d3470bdb]{grid-auto-columns:78px;grid-auto-flow:column;justify-content:end;gap:8px;display:grid}.project-agent-detail-actions .quiet-button[data-v-d3470bdb]{white-space:nowrap;width:78px}.project-agent-detail-meta[data-v-d3470bdb],.project-agent-compact-meta[data-v-d3470bdb]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}.project-agent-detail-meta div[data-v-d3470bdb],.project-agent-compact-meta div[data-v-d3470bdb]{min-width:0}.project-agent-detail-meta dt[data-v-d3470bdb],.project-agent-compact-meta dt[data-v-d3470bdb],.project-agent-detail-section h4[data-v-d3470bdb]{color:#7a847d;letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.project-agent-detail-meta dd[data-v-d3470bdb],.project-agent-compact-meta dd[data-v-d3470bdb]{overflow-wrap:anywhere;color:#39483f;margin:4px 0 0;font-size:11px}.project-agent-detail-meta dd small[data-v-d3470bdb]{color:#818a84;margin-top:3px;font-size:9px;line-height:1.4;display:block}.project-agent-detail-section[data-v-d3470bdb]{margin-top:22px}.project-agent-detail-section.is-responsibility[data-v-d3470bdb]{background:#f2f5f2;border-radius:10px;padding:14px}.project-agent-detail-section p[data-v-d3470bdb],.project-agent-detail-section li[data-v-d3470bdb]{color:#4f5c54;font-size:11px;line-height:1.65}.project-agent-tags[data-v-d3470bdb],.project-agent-inline-list[data-v-d3470bdb]{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.project-agent-muted[data-v-d3470bdb]{color:#8a928d!important}.project-agent-detail-notice[data-v-d3470bdb]{background:#f5f5f1;border-radius:7px;margin:12px 0 0;padding:8px 10px;color:#6f705f!important}.project-agent-detail-placeholder[data-v-d3470bdb],.project-agents-state[data-v-d3470bdb]{color:#737d76;text-align:center;place-content:center;justify-items:center;gap:8px;min-height:240px;font-size:11px;display:grid}.project-agents-state[data-v-d3470bdb]{background:#fafbfa;border:1px solid #d9dfda;border-radius:10px;flex:1}.project-agents-state strong[data-v-d3470bdb]{color:#36473e;font-size:14px}.project-agents-state p[data-v-d3470bdb]{max-width:52ch;line-height:1.6}.project-agents-state.is-error[data-v-d3470bdb]{color:#8b3f38}.project-agent-assignment-list[data-v-d3470bdb],.project-agent-task-list[data-v-d3470bdb],.project-agent-learning-list[data-v-d3470bdb],.project-agent-recruitment-list[data-v-d3470bdb]{gap:8px;margin-top:9px;display:grid}.project-agent-task-list[data-v-d3470bdb]{grid-template-columns:minmax(0,1fr);min-width:0}.project-agent-execution-summary[data-v-d3470bdb]{border-top:1px solid #dfe5e0;min-width:0;margin-top:13px;padding-top:12px}.project-agent-worker-event-evidence[data-v-d3470bdb]{background:#f8faf8;border:1px dashed #d8dfd9;border-radius:8px;margin-top:13px;padding:10px 10px 0}.project-agent-execution-summary .project-agent-section-heading[data-v-d3470bdb]{gap:8px}.project-agent-execution-summary h5[data-v-d3470bdb]{color:#65736a;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-agent-execution-summary-table-wrap[data-v-d3470bdb]{box-sizing:border-box;overscroll-behavior-inline:contain;background:#fff;border:1px solid #dce3de;border-radius:8px;width:100%;max-width:100%;margin-top:7px;overflow-x:auto}.project-agent-execution-summary-table-wrap[data-v-d3470bdb]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-execution-summary-table[data-v-d3470bdb]{border-collapse:collapse;table-layout:fixed;color:#4f5e54;width:100%;min-width:1040px;font-size:12px;line-height:1.5}.project-agent-execution-summary-table th[data-v-d3470bdb],.project-agent-execution-summary-table td[data-v-d3470bdb]{overflow-wrap:anywhere;text-align:left;vertical-align:top;border-bottom:1px solid #e6ebe7;border-right:1px solid #e6ebe7;min-width:0;padding:8px 9px}.project-agent-execution-summary-table tr[data-v-d3470bdb]>:last-child{border-right:0}.project-agent-execution-summary-table tbody tr[data-v-d3470bdb]:last-child>*{border-bottom:0}.project-agent-execution-summary-table thead th[data-v-d3470bdb]{color:#65736a;letter-spacing:.04em;text-transform:uppercase;background:#f3f6f4;font-size:11px;font-weight:750}.project-agent-execution-summary-table thead th[data-v-d3470bdb]:first-child{width:14%}.project-agent-execution-summary-table thead th[data-v-d3470bdb]:nth-child(2){width:20%}.project-agent-execution-summary-table thead th[data-v-d3470bdb]:nth-child(3){width:13%}.project-agent-execution-summary-table thead th[data-v-d3470bdb]:nth-child(4),.project-agent-execution-summary-table thead th[data-v-d3470bdb]:nth-child(5){width:15%}.project-agent-execution-summary-table thead th[data-v-d3470bdb]:nth-child(6){width:12%}.project-agent-execution-summary-table tbody tr[data-v-d3470bdb]:hover{background:#fafcfb}.project-agent-execution-summary-table tbody th[data-v-d3470bdb]{color:#3f5647;font-weight:700}.project-agent-execution-summary-table tbody strong[data-v-d3470bdb],.project-agent-execution-summary-table tbody span[data-v-d3470bdb],.project-agent-execution-summary-table tbody small[data-v-d3470bdb],.project-agent-execution-summary-table tbody a[data-v-d3470bdb]{display:block}.project-agent-execution-summary-table tbody small[data-v-d3470bdb]{color:#647168;margin-top:3px;font-size:11px;font-weight:500}.project-agent-execution-summary-table tbody .project-agent-reporter-label[data-v-d3470bdb]{margin-top:8px}.project-agent-execution-summary-table tbody a[data-v-d3470bdb]{color:#386c50;text-underline-offset:2px;margin-top:3px;text-decoration-thickness:1px}.project-agent-execution-summary-table tbody a[data-v-d3470bdb]:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #91a398}.project-agent-execution-worker[data-v-d3470bdb]{align-items:center;gap:4px;display:flex!important}.project-agent-execution-summary-row i[data-v-d3470bdb]{color:#66716a;background:#e6eae7;border-radius:999px;padding:2px 6px;font-size:11px;font-style:normal;font-weight:700;display:inline-flex}.project-agent-execution-summary-row i.is-completed[data-v-d3470bdb]{color:#2f6947;background:#e1eee6}.project-agent-execution-summary-row i.is-failed[data-v-d3470bdb]{color:#8c4f49;background:#f7e9e6}.project-agent-execution-summary-row i.is-cancelled[data-v-d3470bdb]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-list[data-v-d3470bdb]{margin:7px 0 0;padding:0;list-style:none;display:grid}.project-agent-worker-event-row[data-v-d3470bdb]{border-top:1px solid #e6ebe7;min-width:0;padding:10px 0}.project-agent-worker-event-row[data-v-d3470bdb]:first-child{border-top:0}.project-agent-worker-event-row header[data-v-d3470bdb]{align-items:flex-start}.project-agent-worker-event-row header strong[data-v-d3470bdb]{overflow-wrap:anywhere;color:#3f5647;align-items:center;gap:5px;min-width:0;font-size:10px;display:flex}.project-agent-worker-event-row header strong small[data-v-d3470bdb]{color:#89948c;margin:0;font-size:8px;font-weight:500;display:inline}.project-agent-worker-event-row header i[data-v-d3470bdb]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700}.project-agent-worker-event-row header i.is-completed[data-v-d3470bdb]{color:#2f6947;background:#e1eee6}.project-agent-worker-event-row header i.is-failed[data-v-d3470bdb]{color:#8c4f49;background:#f7e9e6}.project-agent-worker-event-row header i.is-cancelled[data-v-d3470bdb]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-meta[data-v-d3470bdb]{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:8px 0 0;display:grid}.project-agent-execution-summary-meta div[data-v-d3470bdb]{min-width:0}.project-agent-execution-summary-meta dt[data-v-d3470bdb]{color:#89948c;letter-spacing:.04em;text-transform:uppercase;font-size:8px;font-weight:700}.project-agent-execution-summary-meta dd[data-v-d3470bdb]{overflow-wrap:anywhere;color:#4f5e54;margin:2px 0 0;font-size:9px;line-height:1.45}.project-agent-execution-summary-meta dd small[data-v-d3470bdb]{color:#89948c;margin-top:2px;font-size:8px;display:block}.project-agent-assignment-card[data-v-d3470bdb],.project-agent-task-card[data-v-d3470bdb],.project-agent-learning-card[data-v-d3470bdb]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;min-width:0;padding:11px 12px}.project-agent-recruitment-card[data-v-d3470bdb]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;padding:11px 12px}.project-agent-assignment-card header strong[data-v-d3470bdb],.project-agent-task-card header strong[data-v-d3470bdb],.project-agent-learning-card header strong[data-v-d3470bdb]{color:#33483a;font-size:11px}.project-agent-card-actions[data-v-d3470bdb]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.project-agent-assignment-card p[data-v-d3470bdb],.project-agent-task-card p[data-v-d3470bdb],.project-agent-learning-card p[data-v-d3470bdb]{margin:7px 0 0}.project-agent-assignment-card small[data-v-d3470bdb],.project-agent-task-card small[data-v-d3470bdb],.project-agent-learning-card small[data-v-d3470bdb]{color:#818a84;margin-top:6px;font-size:9px;line-height:1.5;display:block}.project-agent-assignment-card header i.is-ended[data-v-d3470bdb],.project-agent-assignment-card header i.is-replaced[data-v-d3470bdb]{color:#75695d;background:#eeeae5}.project-agent-strategy-note[data-v-d3470bdb],.project-agent-execution-line[data-v-d3470bdb]{color:#7a847d;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:8px;font-size:9px;display:flex}.project-agent-strategy-note strong[data-v-d3470bdb],.project-agent-execution-line strong[data-v-d3470bdb]{color:#53685a;font-size:10px}.project-agent-strategy-note small[data-v-d3470bdb]{color:#8c5d54;flex-basis:100%}.project-agent-routing-decision[data-v-d3470bdb]{color:#65736a;background:#f3f7f3;border:1px solid #dce5de;border-radius:7px;gap:5px;margin-top:10px;padding:9px 10px;font-size:9px;display:grid}.project-agent-routing-decision .project-agent-section-heading[data-v-d3470bdb]{align-items:baseline;gap:8px}.project-agent-routing-decision .project-agent-section-heading strong[data-v-d3470bdb]{color:#3f604b;font-size:10px}.project-agent-routing-decision small[data-v-d3470bdb]{color:#65736a;line-height:1.45}.project-agent-blocked[data-v-d3470bdb]{color:#8c5d54!important}.project-agent-task-card header[data-v-d3470bdb]{align-items:flex-start}.project-agent-task-card header small[data-v-d3470bdb]{margin-top:3px}.project-agent-task-card header i[data-v-d3470bdb]{color:#53647b;background:#eef2f7}.project-agent-task-card header i.is-completed[data-v-d3470bdb]{color:#2f6947;background:#e1eee6}.project-agent-task-card header i.is-failed[data-v-d3470bdb]{color:#8c4f49;background:#f7e9e6}.project-agent-task-card header i.is-cancelled[data-v-d3470bdb]{color:#75695d;background:#eeeae5}.project-agent-heatmap-viewport[data-v-d3470bdb]{contain:layout inline-size paint;min-width:0;max-width:100%;overflow-x:clip}.project-agent-heatmap[data-v-d3470bdb]{grid-template-rows:repeat(7,minmax(10px,1fr));grid-auto-columns:minmax(10px,1fr);grid-auto-flow:column;gap:3px;width:100%;max-width:100%;margin-top:9px;padding:0;display:grid;overflow-x:auto}.project-agent-heat-cell[data-v-d3470bdb]{appearance:none;box-sizing:border-box;aspect-ratio:1;background:#f2f4f2;border:1px solid #dfe6e0;border-radius:3px;min-width:9px;margin:0;padding:0}.project-agent-heat-cell.intensity-1[data-v-d3470bdb]{background:#dce9df}.project-agent-heat-cell.intensity-2[data-v-d3470bdb]{background:#b9d3bf}.project-agent-heat-cell.intensity-3[data-v-d3470bdb]{background:#87b493}.project-agent-heat-cell.intensity-4[data-v-d3470bdb]{background:#548466}.project-agent-heat-cell[data-v-d3470bdb]:focus-visible,.project-agent-heat-cell.selected[data-v-d3470bdb]{box-shadow:none;border:2px solid #2f5740;outline:none}.project-agent-day-detail[data-v-d3470bdb]{background:#f6f8f6;border-radius:8px;margin-top:10px;padding:10px}.project-agent-day-detail ul[data-v-d3470bdb]{margin:8px 0 0;padding-left:17px}.project-agent-day-detail li[data-v-d3470bdb]{margin-top:6px}.project-agent-day-detail li strong[data-v-d3470bdb],.project-agent-day-detail li span[data-v-d3470bdb],.project-agent-day-detail li small[data-v-d3470bdb]{display:block}.project-agent-day-detail li span[data-v-d3470bdb]{color:#66736b;font-size:9px}.project-agent-day-detail li small[data-v-d3470bdb]{color:#7e8981;font-size:9px}.project-agent-client-list[data-v-d3470bdb],.project-agent-rule-list[data-v-d3470bdb]{gap:5px;margin-top:9px;display:grid}.project-agent-client-row[data-v-d3470bdb],.project-agent-rule-row[data-v-d3470bdb]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-client-row strong[data-v-d3470bdb],.project-agent-rule-row strong[data-v-d3470bdb]{color:#43584a;font-size:10px}.project-agent-client-row small[data-v-d3470bdb]{color:#8a938d;grid-column:1/-1}.project-agent-executor-list[data-v-d3470bdb]{gap:5px;margin-top:9px;display:grid}.project-agent-executor-row[data-v-d3470bdb]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-executor-row strong[data-v-d3470bdb]{color:#43584a;font-size:10px}.project-agent-executor-row small[data-v-d3470bdb]{color:#8a938d;grid-column:1/-1}.project-agent-learning-card header i[data-v-d3470bdb]{color:#6c776f;background:#f1f3f1}.project-agent-evidence-list[data-v-d3470bdb]{margin:8px 0 0;padding-left:17px}.project-agent-evidence-list li[data-v-d3470bdb]{color:#768179;font-size:9px}.project-agent-learning-actions[data-v-d3470bdb]{gap:6px;margin-top:8px;display:flex}.project-agent-note[data-v-d3470bdb]{color:#818a84;margin-top:9px;font-size:9px;line-height:1.5;display:block}.sr-only[data-v-d3470bdb]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1180px){.project-agents-toolbar[data-v-d3470bdb]{grid-template-columns:minmax(220px,280px) 1fr}.project-agents-status-filter[data-v-d3470bdb]{grid-column:1/-1;justify-self:start}.project-agents-directory[data-v-d3470bdb]{grid-template-columns:minmax(320px,.9fr) minmax(330px,1fr)}.project-agent-detail-meta[data-v-d3470bdb],.project-agent-compact-meta[data-v-d3470bdb]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=420px){.project-agent-detail>header[data-v-d3470bdb]{grid-template-columns:minmax(0,1fr)}.project-agent-detail-actions[data-v-d3470bdb]{justify-content:start}}@media (width<=760px){.project-agents-view[data-v-d3470bdb]{padding:14px 16px 18px;overflow:auto}.project-agents-header[data-v-d3470bdb],.project-agents-summary[data-v-d3470bdb],.project-agent-section-heading[data-v-d3470bdb],.project-agent-assignment-card header[data-v-d3470bdb]{flex-wrap:wrap;align-items:flex-start}.project-agents-toolbar[data-v-d3470bdb]{grid-template-columns:minmax(0,1fr)}.project-agents-project-filter[data-v-d3470bdb],.project-agents-search[data-v-d3470bdb],.project-agents-status-filter[data-v-d3470bdb]{grid-column:1}.project-agents-status-filter[data-v-d3470bdb]{flex-wrap:wrap;justify-self:stretch;width:100%}.project-agents-directory[data-v-d3470bdb]{flex:none;grid-template-columns:minmax(0,1fr);overflow:visible}.project-agent-list[data-v-d3470bdb]{border-bottom:1px solid #dfe4e0;border-right:0;max-height:340px}.project-agent-detail[data-v-d3470bdb]{min-height:520px;padding:16px}.project-agent-client-row[data-v-d3470bdb],.project-agent-rule-row[data-v-d3470bdb],.project-agent-executor-row[data-v-d3470bdb]{grid-template-columns:minmax(0,1fr);align-items:start}.project-agent-client-row small[data-v-d3470bdb],.project-agent-executor-row small[data-v-d3470bdb]{grid-column:1}.project-agent-execution-summary-meta[data-v-d3470bdb]{grid-template-columns:minmax(0,1fr)}.project-agent-worker-event-row header[data-v-d3470bdb]{gap:8px}}
@@ -0,0 +1,11 @@
1
+ import{A as e,B as t,C as n,D as r,L as i,N as a,P as o,S as s,Y as c,_ as l,a as u,d,et as f,g as p,h as m,j as h,l as g,m as _,n as v,p as y,rt as b,s as x,tt as S,u as C,v as w,x as T,y as E,z as D}from"./i18n-CgBHZthI.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./console-tOxOl8Vq.js";import{t as P}from"./vue-router-CzHm-y-x.js";import{t as F}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as I,i as L,o as ee}from"./catalog-DFvIaHVS.js";import{t as R}from"./SearchableSelect-D27H0MoP.js";import{n as te,r as z,t as ne}from"./EmployeeRecruitDialog-CbPAmhy7.js";function B(e){return e&&typeof e==`object`?e:{}}function V(e,t,n){return e[t]??e[n]}function H(e,t,n){let r=V(e,t,n);return typeof r==`string`?r:null}function U(e,t,n){let r=V(e,t,n);return Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:null}function W(e,t,n){let r=V(e,t,n);return typeof r==`number`&&Number.isInteger(r)&&r>=0?r:null}function re(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=H(t,`source`,`source`),r=W(t,`totalTokens`,`total_tokens`);return![`executor`,`host`,`dingdong`].includes(n??``)||r===null?null:{source:n,totalTokens:r,inputTokens:W(t,`inputTokens`,`input_tokens`),outputTokens:W(t,`outputTokens`,`output_tokens`),cachedInputTokens:W(t,`cachedInputTokens`,`cached_input_tokens`),cacheWriteInputTokens:W(t,`cacheWriteInputTokens`,`cache_write_input_tokens`),reasoningOutputTokens:W(t,`reasoningOutputTokens`,`reasoning_output_tokens`)}}function ie(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=H(t,`application`,`application`);return[`codex`,`claude`,`claude_code`,`cursor`,`kiro`,`other`].includes(n??``)?{application:n,sessionId:H(t,`sessionId`,`session_id`),sessionUrl:H(t,`sessionUrl`,`session_url`)}:null}function G(e){return Array.isArray(e)?e:[]}function ae(e){let t=B(e);return Array.isArray(e)?e:G(t.agents??t.items)}function oe(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{mode:H(t,`mode`,`mode`)??null,reasoningEffort:H(t,`reasoningEffort`,`reasoning_effort`)??null,capabilityHints:G(V(t,`capabilityHints`,`capability_hints`)).filter(e=>typeof e==`string`)}}function K(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{enabled:typeof t.enabled==`boolean`?t.enabled:null,independentVerification:typeof V(t,`independentVerification`,`independent_verification`)==`boolean`?V(t,`independentVerification`,`independent_verification`):null,conflictFreeScopes:typeof V(t,`conflictFreeScopes`,`conflict_free_scopes`)==`boolean`?V(t,`conflictFreeScopes`,`conflict_free_scopes`):null,reason:H(t,`reason`,`reason`),workstreamBoundaries:G(V(t,`workstreamBoundaries`,`workstream_boundaries`)).filter(e=>typeof e==`string`)}}function se(e){if(!e||typeof e!=`object`)return null;let t=B(e),n=G(V(t,`allowList`,`allow_list`)).map(e=>{if(typeof e==`string`)return{executorId:e};let t=B(e);return{executorId:H(t,`executorId`,`executor_id`)??``,label:H(t,`label`,`label`),provider:H(t,`provider`,`provider`),model:H(t,`model`,`model`),client:H(t,`client`,`client`)}}).filter(({executorId:e})=>e),r=G(V(t,`lockedExecutorIds`,`locked_executor_ids`)).filter(e=>typeof e==`string`),i=G(V(t,`preferredExecutorIds`,`preferred_executor_ids`)).filter(e=>typeof e==`string`);return{mode:H(t,`mode`,`mode`)??`flexible`,allowList:n,lockedExecutorIds:r,preferredExecutorIds:i}}function q(e){if(!e||typeof e!=`object`)return null;let t=B(e),n={executor:H(t,`executor`,`executor`),provider:H(t,`provider`,`provider`)??H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`model`,`model`)??H(t,`actualModel`,`actual_model`),client:H(t,`client`,`client`)??H(t,`sourceApplication`,`source_application`),rule:H(t,`rule`,`rule`),fallback:H(t,`fallback`,`fallback`),reportedAt:H(t,`reportedAt`,`reported_at`)};return[n.executor,n.provider,n.model,n.rule,n.fallback].some(Boolean)?n:null}function ce(e,t){let n=B(e),r=H(n,`personalProjectId`,`personal_project_id`),i=H(n,`assignmentId`,`assignment_id`);return!r||!i?null:{assignmentId:i,personalSpaceId:H(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,personalProjectId:r,agentId:H(n,`agentId`,`agent_id`)??t.agentId,responsibility:H(n,`responsibility`,`responsibility`)??t.profile.responsibility,scope:H(n,`scope`,`scope`),workKinds:G(V(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),capabilities:G(n.capabilities).filter(e=>typeof e==`string`),modelStrategyOverride:oe(V(n,`modelStrategyOverride`,`model_strategy_override`)),executorPolicyOverride:se(V(n,`executorPolicyOverride`,`executor_policy_override`)),reason:H(n,`reason`,`reason`),status:H(n,`status`,`status`)??`active`,revision:typeof n.revision==`number`?n.revision:void 0,sourceApplication:H(n,`sourceApplication`,`source_application`),sourceSessionId:H(n,`sourceSessionId`,`source_session_id`),assignedAt:H(n,`assignedAt`,`assigned_at`)??t.createdAt,updatedAt:H(n,`updatedAt`,`updated_at`)??t.updatedAt,endedAt:H(n,`endedAt`,`ended_at`),endReason:H(n,`endReason`,`end_reason`),replacedByAssignmentId:H(n,`replacedByAssignmentId`,`replaced_by_assignment_id`)}}function le(e){let t=B(e);return{agentId:H(t,`agentId`,`agent_id`)??``,assignmentId:H(t,`assignmentId`,`assignment_id`),role:H(t,`role`,`role`)??`collaborator`,status:H(t,`status`,`status`),assignmentSummary:H(t,`assignmentSummary`,`assignment_summary`),joinedAt:H(t,`joinedAt`,`joined_at`),updatedAt:H(t,`updatedAt`,`updated_at`),endedAt:H(t,`endedAt`,`ended_at`)}}function ue(e){if(Array.isArray(e))return e.map(e=>{let t=B(e);return{agentId:H(t,`agentId`,`agent_id`),agentName:H(t,`agentName`,`agent_name`),occupationEmoji:H(t,`occupationEmoji`,`occupation_emoji`),workerId:H(t,`workerId`,`worker_id`),workerLabel:H(t,`workerLabel`,`worker_label`),workerOccupationEmoji:H(t,`workerOccupationEmoji`,`worker_occupation_emoji`),participantRole:H(t,`participantRole`,`participant_role`),executor:H(t,`executor`,`executor`),executorId:H(t,`executorId`,`executor_id`),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),workSummary:H(t,`workSummary`,`work_summary`),status:H(t,`status`,`status`)}})}function de(e){let t=B(e),n=H(t,`eventId`,`event_id`),r=H(t,`taskId`,`task_id`);if(!n||!r)return null;let i=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`),rule:H(t,`routingRuleId`,`routing_rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`),reportedAt:H(t,`createdAt`,`created_at`)});return{eventId:n,taskId:r,agentId:H(t,`agentId`,`agent_id`),status:H(t,`status`,`status`),actorKind:H(t,`actorKind`,`actor_kind`)??void 0,summary:H(t,`summary`,`summary`)??``,sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),actualExecution:i,actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`),workerId:H(t,`workerId`,`worker_id`),workerLabel:H(t,`workerLabel`,`worker_label`),workerOccupationEmoji:H(t,`workerOccupationEmoji`,`worker_occupation_emoji`),workerStatus:H(t,`workerStatus`,`worker_status`),createdAt:H(t,`createdAt`,`created_at`)??``}}function fe(e){if(!e||typeof e!=`object`)return null;let t=B(e);return{decisionId:H(t,`decisionId`,`decision_id`)??void 0,taskId:H(t,`taskId`,`task_id`)??void 0,coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`),complexity:(()=>{let e=V(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:G(V(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),outcome:H(t,`outcome`,`outcome`)??H(t,`routingOutcome`,`routing_outcome`),reason:H(t,`reason`,`reason`)??H(t,`routingReason`,`routing_reason`),matchBasis:G(V(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),candidateAgentIds:G(V(t,`candidateAgentIds`,`candidate_agent_ids`)).filter(e=>typeof e==`string`),optimizationPriority:G(V(t,`optimizationPriority`,`optimization_priority`)).filter(e=>typeof e==`string`),parallelPlan:K(V(t,`parallelPlan`,`parallel_plan`)),selectedModelStrategy:oe(V(t,`selectedModelStrategy`,`selected_model_strategy`)),modelStrategySource:H(t,`modelStrategySource`,`model_strategy_source`)??void 0,ruleId:H(t,`ruleId`,`rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`)??H(t,`executorRuleId`,`executor_rule_id`),fallback:H(t,`fallback`,`fallback`)??H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`)}}function J(e){return e!=null&&(typeof e!=`string`||e.length>0)&&(!Array.isArray(e)||e.length>0)}function pe(e){return[`staffingIntent`,`staffing_intent`,`routingOutcome`,`routing_outcome`,`routingReason`,`routing_reason`,`routingExplanation`,`routing_explanation`,`coordinatorAgentId`,`coordinator_agent_id`,`complexity`,`complexityBasis`,`complexity_basis`,`matchBasis`,`match_basis`,`candidateAgentIds`,`candidate_agent_ids`].some(t=>J(e[t]))?fe({outcome:V(e,`routingOutcome`,`routing_outcome`),reason:V(e,`routingReason`,`routing_reason`),matchBasis:V(e,`matchBasis`,`match_basis`),coordinatorAgentId:V(e,`coordinatorAgentId`,`coordinator_agent_id`),complexity:V(e,`complexity`,`complexity`),complexityBasis:V(e,`complexityBasis`,`complexity_basis`),candidateAgentIds:V(e,`candidateAgentIds`,`candidate_agent_ids`)}):null}function me(e){let t=B(e),n=H(t,`taskId`,`task_id`);if(!n)return null;let r=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`),rule:H(t,`routingRuleId`,`routing_rule_id`)??H(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:H(t,`fallbackReason`,`fallback_reason`)??H(t,`executorFallbackReason`,`executor_fallback_reason`)}),i=fe(V(t,`routingDecision`,`routing_decision`))??pe(t);return{taskId:n,personalSpaceId:H(t,`personalSpaceId`,`personal_space_id`)??void 0,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),title:H(t,`title`,`title`)??n,objective:H(t,`objective`,`objective`),workKind:H(t,`workKind`,`work_kind`),status:H(t,`status`,`status`),runId:H(t,`runId`,`run_id`),executionId:H(t,`executionId`,`execution_id`),ownerAgentId:H(t,`ownerAgentId`,`owner_agent_id`),leadAgentId:H(t,`leadAgentId`,`lead_agent_id`),coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`),hrAgentId:H(t,`hrAgentId`,`hr_agent_id`),recruitmentId:H(t,`recruitmentId`,`recruitment_id`),participants:G(t.participants).map(le),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),resultSummary:H(t,`resultSummary`,`result_summary`),failureReason:H(t,`failureReason`,`failure_reason`),createdAt:H(t,`createdAt`,`created_at`),updatedAt:H(t,`updatedAt`,`updated_at`),completedAt:H(t,`completedAt`,`completed_at`),effectiveModelStrategy:oe(V(t,`effectiveModelStrategy`,`effective_model_strategy`)),effectiveExecutorPolicy:se(V(t,`effectiveExecutorPolicy`,`effective_executor_policy`)??V(t,`executorPolicy`,`executor_policy`)),staffingIntent:H(t,`staffingIntent`,`staffing_intent`),requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),executorCapabilityHints:G(V(t,`executorCapabilityHints`,`executor_capability_hints`)).filter(e=>typeof e==`string`),routingOutcome:H(t,`routingOutcome`,`routing_outcome`),routingReason:H(t,`routingReason`,`routing_reason`),routingExplanation:H(t,`routingExplanation`,`routing_explanation`),matchBasis:G(V(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),complexity:(()=>{let e=V(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:G(V(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),modelStrategySource:H(t,`modelStrategySource`,`model_strategy_source`)??void 0,actualExecution:r,executionSummary:ue(V(t,`executionSummary`,`execution_summary`)),routingDecision:i,events:G(t.events).map(de).filter(Boolean)}}function he(e){return e.executionSummary===void 0?(e.events??[]).filter(e=>!!(e.workerId||e.workerLabel||e.workerOccupationEmoji||e.workerStatus)):[]}function ge(e){return!!(e&&(e.enabled||e.independentVerification||e.conflictFreeScopes||e.reason||e.workstreamBoundaries?.length))}function _e(e){return e.actualExecution??{provider:e.actualModelProvider??null,model:e.actualModel??null,client:e.sourceApplication??null,reportedAt:e.createdAt}}function ve(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:ye(t),toDate:ye(e)}}function ye(e){return e.toISOString().slice(0,10)}function be(e,t){let n=B(e),r=G(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=B(e);return{date:H(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:G(t.tasks).map(xe).filter(e=>!!e)}}).filter(({date:e})=>e),a=H(n,`fromDate`,`from_date`),o=H(n,`toDate`,`to_date`),s=i.some(({total:e,tasks:t})=>e>0||!!t?.length),c=a??(i.length?i.map(({date:e})=>e).sort()[0]:void 0),l=o??(i.length?i.map(({date:e})=>e).sort().at(-1):void 0),u=s&&c&&l?Y(i,c,l):[];return{agentId:H(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:H(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Y(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=ye(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function xe(e){let t=B(e),n=H(t,`taskId`,`task_id`);if(!n)return null;let r=q(V(t,`actualExecution`,`actual_execution`))??q({executor:H(t,`actualExecutor`,`actual_executor`),provider:H(t,`actualModelProvider`,`actual_model_provider`),model:H(t,`actualModel`,`actual_model`),client:H(t,`sourceApplication`,`source_application`)});return{taskId:n,title:H(t,`title`,`title`)??n,status:H(t,`status`,`status`),summary:H(t,`summary`,`summary`)??``,occurredAt:H(t,`occurredAt`,`occurred_at`)??``,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),assignmentId:H(t,`assignmentId`,`assignment_id`),collaborators:G(t.collaborators).map(le),sourceApplication:H(t,`sourceApplication`,`source_application`),sourceSessionId:H(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:H(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ie(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:U(t,`toolsUsed`,`tools_used`),tokenUsage:re(V(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:H(t,`actualModelProvider`,`actual_model_provider`),actualModel:H(t,`actualModel`,`actual_model`)}}var Se={class:`project-agent-assignment-dialog-header`},Ce={id:`project-agent-assignment-dialog-title`},we=[`disabled`],Te={class:`project-agent-assignment-dialog-fields`},Ee={key:0},De={key:1},Oe=[`value`],ke={key:2},Ae={key:3,class:`project-agent-assignment-wide-field`},je=[`disabled`],X={key:4},Me=[`disabled`],Ne={key:5},Pe=[`disabled`,`placeholder`],Fe={class:`project-agent-assignment-wide-field`},Ie=[`disabled`,`placeholder`],Le={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},Z={class:`project-agent-assignment-dialog-actions`},Re=[`disabled`],ze=[`disabled`],Be=F(n({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:n}){let r=e,a=n,o=c(``),l=c(``),d=c(``),g=c(``),_=c(``),v=c(``),x=c(!1),S=c(``),{dialogRef:T,initialFocusRef:D,onCancel:k,onKeydown:A}=te(()=>r.open,()=>a(`close`)),j=m(()=>r.action!==`assign`),M=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),N=m(()=>r.availableAgents.filter(e=>e.agentId!==r.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.name,meta:e.agentId})));i(()=>[r.open,r.agent,r.assignment,r.action,r.defaultProjectId],()=>{r.open&&(o.value=r.assignment?.personalProjectId??r.defaultProjectId??r.projects[0]?.project_id??``,l.value=``,d.value=r.assignment?.responsibility??r.agent?.profile.responsibility??``,g.value=r.assignment?.scope??``,_.value=r.assignment?.workKinds?.join(`
2
+ `)??``,v.value=``,S.value=``)},{immediate:!0});async function P(){if(!r.agent)return;S.value=``;let e=v.value.trim(),t=d.value.trim();if(!e||r.action===`assign`&&!t){S.value=u(`projectAgents.assignmentDialog.required`);return}if(r.action===`replace`&&!l.value){S.value=u(`projectAgents.assignmentDialog.replacementRequired`);return}x.value=!0;try{if(r.action===`assign`){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:r.agent.personalSpaceId,personalProjectId:o.value,agentId:r.agent.agentId,idempotencyKey:I(),responsibility:t,workKinds:F(_.value),capabilities:[],reason:e});a(`saved`,n)}else{if(!r.assignment)return;await O(`/api/project-agent-assignments/${encodeURIComponent(r.assignment.assignmentId)}/${r.action}`,r.action===`replace`?{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,replacementAgentId:l.value,idempotencyKey:I(),responsibility:t||r.assignment.responsibility,workKinds:F(_.value),capabilities:r.assignment.capabilities??[],reason:e}:{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,reason:e}),a(`changed`)}a(`close`)}catch(e){S.value=e instanceof Error?e.message:u(`projectAgents.assignmentDialog.saveFailed`)}finally{x.value=!1}}function F(e){return[...new Set(e.split(`
3
+ `).map(e=>e.trim()).filter(Boolean))]}function I(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(n,i)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:T,class:`project-agent-assignment-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-assignment-dialog-title`,onCancel:i[8]||=(...e)=>f(k)&&f(k)(...e),onKeydown:i[9]||=(...e)=>f(A)&&f(A)(...e)},[p(`form`,{class:`project-agent-assignment-dialog-shell`,onSubmit:y(P,[`prevent`])},[p(`header`,Se,[p(`h3`,Ce,b(f(u)(`projectAgents.assignmentDialog.${j.value?e.action:`assign`}Title`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:D,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:x.value,onClick:i[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,we)]),p(`div`,Te,[j.value?(h(),E(`label`,De,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),p(`input`,{value:r.assignment?r.assignment.personalProjectId:``,disabled:``},null,8,Oe)])):(h(),E(`label`,Ee,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),s(R,{modelValue:o.value,"onUpdate:modelValue":i[1]||=e=>o.value=e,"control-id":`project-agent-assignment-project`,options:M.value,label:f(u)(`projectAgents.fields.project`),placeholder:f(u)(`projectAgents.dialog.projectPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])),j.value&&e.action===`replace`?(h(),E(`label`,ke,[p(`span`,null,b(f(u)(`projectAgents.assignmentDialog.replacement`)),1),s(R,{modelValue:l.value,"onUpdate:modelValue":i[2]||=e=>l.value=e,"control-id":`project-agent-assignment-replacement`,options:N.value,label:f(u)(`projectAgents.assignmentDialog.replacement`),placeholder:f(u)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])):w(``,!0),j.value?w(``,!0):(h(),E(`label`,Ae,[p(`span`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[3]||=e=>d.value=e,rows:`3`,maxlength:`4096`,disabled:x.value,required:``},null,8,je),[[C,d.value]])])),j.value?w(``,!0):(h(),E(`label`,X,[p(`span`,null,b(f(u)(`projectAgents.fields.scope`)),1),t(p(`input`,{"onUpdate:modelValue":i[4]||=e=>g.value=e,maxlength:`4096`,disabled:x.value},null,8,Me),[[C,g.value]])])),j.value?w(``,!0):(h(),E(`label`,Ne,[p(`span`,null,b(f(u)(`projectAgents.assignmentDialog.workKinds`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[5]||=e=>_.value=e,rows:`3`,disabled:x.value,placeholder:f(u)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,Pe),[[C,_.value]])])),p(`label`,Fe,[p(`span`,null,b(f(u)(`projectAgents.fields.reason`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[6]||=e=>v.value=e,rows:`3`,maxlength:`2048`,disabled:x.value,placeholder:f(u)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Ie),[[C,v.value]])])]),S.value?(h(),E(`p`,Le,b(S.value),1)):w(``,!0),p(`footer`,Z,[p(`button`,{class:`quiet-button`,type:`button`,disabled:x.value,onClick:i[7]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,Re),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:x.value},b(f(u)(`projectAgents.assignmentDialog.${j.value?`saveChange`:`saveAssign`}`)),9,ze)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-27954ba8`]]),Ve={class:`project-agent-dialog-header`},He={id:`executor-routing-dialog-title`},Ue=[`disabled`],We={class:`project-agent-dialog-fields`},Ge=[`disabled`],Ke=[`disabled`],qe=[`disabled`],Je=[`disabled`],Ye={class:`project-agent-wide-field`},Xe=[`disabled`],Q={class:`project-agent-dialog-check`},Ze=[`disabled`],Qe={class:`project-agent-dialog-note project-agent-wide-field`},$e=[`disabled`],et=[`disabled`],tt={key:0},nt={key:1},rt=[`disabled`],it=[`disabled`],at={class:`project-agent-wide-field`},ot=[`placeholder`,`disabled`],st={class:`project-agent-wide-field`},ct=[`disabled`],lt={class:`project-agent-wide-field`},ut=[`disabled`],dt={class:`project-agent-dialog-note project-agent-wide-field`},ft={key:0,class:`project-agent-dialog-error`,role:`alert`},pt={class:`project-agent-dialog-actions`},mt=[`disabled`],ht=[`disabled`],gt=F(n({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(e,{emit:n}){let r=e,a=n,o=c(``),l=c(``),d=c(`external`),v=c(``),S=c(100),D=c(!1),O=c(`space`),k=c(``),A=c(``),M=c(``),N=c(``),P=c(``),F=c(``),I=c(!1),L=c(``),{dialogRef:ee,initialFocusRef:z,onCancel:ne,onKeydown:B}=te(()=>r.open,()=>a(`close`)),V=m(()=>!!r.executor),H=m(()=>r.mode===`executor`?V.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),U=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));m(()=>r.availableExecutors.map(e=>({value:e.executorId,label:e.displayName||e.label||e.executorId,meta:e.executorId}))),i(()=>[r.open,r.mode,r.executor,r.rule],([e])=>{if(!e)return;let t=r.executor,n=r.rule;o.value=t?.executorId??``,l.value=t?.displayName??t?.label??``,d.value=t?.executorKind??`external`,v.value=t?.capabilities?.join(`
4
+ `)??``,S.value=t?.globalPriority??n?.priority??100,D.value=t?.healthRequired===!0,O.value=n?.scope??`space`,k.value=n?.personalProjectId??``,A.value=n?.taskId??``,M.value=n?.workKind??``,N.value=n?.requiredCapabilities?.join(`
5
+ `)??``,P.value=n?.executorIds?.join(`
6
+ `)??``,F.value=``,L.value=``},{immediate:!0});function W(e){return[...new Set(e.split(`
7
+ `).map(e=>e.trim()).filter(Boolean))]}function re(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function ie(){if(I.value)return;let e=W(v.value),t=F.value.trim();if(r.mode===`executor`){if(!o.value.trim()||!l.value.trim()||S.value<1){L.value=u(`projectAgents.routing.editor.executorRequired`);return}}else if(!M.value.trim()||!W(P.value).length||!t){L.value=u(`projectAgents.routing.editor.ruleRequired`);return}I.value=!0,L.value=``;try{if(r.mode===`executor`){let t=await j(`/api/executors`,{personalSpaceId:r.personalSpaceId,executorId:o.value.trim(),displayName:l.value.trim(),executorKind:d.value.trim()||`external`,capabilities:e,advertisedModels:r.executor?.advertisedModels??r.executor?.availableModels??[],globalPriority:S.value,healthRequired:D.value,expectedRevision:r.executor?.revision,idempotencyKey:re(`executor-directory`)});a(`saved`,t)}else{let e=await j(`/api/executor-routing-rules`,{personalSpaceId:O.value===`global`?void 0:r.personalSpaceId,scope:O.value,personalProjectId:(O.value===`project`||O.value===`task`)&&k.value||void 0,taskId:O.value===`task`&&A.value||void 0,workKind:M.value.trim(),requiredCapabilities:W(N.value),executorIds:W(P.value),priority:S.value,reason:t,idempotencyKey:re(`executor-rule`)});a(`saved`,e)}a(`close`)}catch(e){L.value=e instanceof Error?e.message:u(`projectAgents.routing.editor.saveFailed`)}finally{I.value=!1}}return(n,r)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:ee,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`executor-routing-dialog-title`,onCancel:r[16]||=(...e)=>f(ne)&&f(ne)(...e),onKeydown:r[17]||=(...e)=>f(B)&&f(B)(...e)},[p(`form`,{class:`project-agent-dialog-shell`,onSubmit:y(ie,[`prevent`])},[p(`header`,Ve,[p(`h3`,He,b(f(u)(`projectAgents.routing.editor.${H.value}`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:z,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:I.value,onClick:r[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,Ue)]),p(`div`,We,[e.mode===`executor`?(h(),E(_,{key:0},[p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.executorId`)),1),t(p(`input`,{"onUpdate:modelValue":r[1]||=e=>o.value=e,maxlength:`128`,disabled:V.value||I.value,required:``},null,8,Ge),[[C,o.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.displayName`)),1),t(p(`input`,{"onUpdate:modelValue":r[2]||=e=>l.value=e,maxlength:`160`,disabled:I.value,required:``},null,8,Ke),[[C,l.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.executorKind`)),1),t(p(`input`,{"onUpdate:modelValue":r[3]||=e=>d.value=e,maxlength:`128`,disabled:I.value},null,8,qe),[[C,d.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.priority`)),1),t(p(`input`,{"onUpdate:modelValue":r[4]||=e=>S.value=e,type:`number`,min:`1`,max:`1000000`,disabled:I.value,required:``},null,8,Je),[[C,S.value,void 0,{number:!0}]])]),p(`label`,Ye,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.capabilities`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[5]||=e=>v.value=e,rows:`3`,disabled:I.value},null,8,Xe),[[C,v.value]])]),p(`label`,Q,[t(p(`input`,{"onUpdate:modelValue":r[6]||=e=>D.value=e,type:`checkbox`,disabled:I.value},null,8,Ze),[[x,D.value]]),r[18]||=T(),p(`span`,null,b(f(u)(`projectAgents.routing.editor.healthRequired`)),1)]),p(`p`,Qe,b(f(u)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(h(),E(_,{key:1},[p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.scope`)),1),t(p(`select`,{"onUpdate:modelValue":r[7]||=e=>O.value=e,disabled:I.value},[...r[19]||=[p(`option`,{value:`space`},`space`,-1),p(`option`,{value:`project`},`project`,-1),p(`option`,{value:`task`},`task`,-1)]],8,$e),[[g,O.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.priority`)),1),t(p(`input`,{"onUpdate:modelValue":r[8]||=e=>S.value=e,type:`number`,min:`1`,max:`1000000`,disabled:I.value,required:``},null,8,et),[[C,S.value,void 0,{number:!0}]])]),O.value===`project`||O.value===`task`?(h(),E(`label`,tt,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),s(R,{modelValue:k.value,"onUpdate:modelValue":r[9]||=e=>k.value=e,"control-id":`executor-rule-project`,options:U.value,label:f(u)(`projectAgents.fields.project`),disabled:I.value},null,8,[`modelValue`,`options`,`label`,`disabled`])])):w(``,!0),O.value===`task`?(h(),E(`label`,nt,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.taskId`)),1),t(p(`input`,{"onUpdate:modelValue":r[10]||=e=>A.value=e,maxlength:`128`,disabled:I.value},null,8,rt),[[C,A.value]])])):w(``,!0),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.workKind`)),1),t(p(`input`,{"onUpdate:modelValue":r[11]||=e=>M.value=e,maxlength:`128`,disabled:I.value,required:``},null,8,it),[[C,M.value]])]),p(`label`,at,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.executorIds`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[12]||=e=>P.value=e,rows:`3`,placeholder:f(u)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:I.value,required:``},null,8,ot),[[C,P.value]])]),p(`label`,st,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.requiredCapabilities`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[13]||=e=>N.value=e,rows:`3`,disabled:I.value},null,8,ct),[[C,N.value]])]),p(`label`,lt,[p(`span`,null,b(f(u)(`projectAgents.fields.reason`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[14]||=e=>F.value=e,rows:`3`,disabled:I.value,required:``},null,8,ut),[[C,F.value]])]),p(`p`,dt,b(f(u)(`projectAgents.routing.editor.ruleNote`)),1)],64))]),L.value?(h(),E(`p`,ft,b(L.value),1)):w(``,!0),p(`footer`,pt,[p(`button`,{class:`quiet-button`,type:`button`,disabled:I.value,onClick:r[15]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,mt),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:I.value},b(f(u)(`projectAgents.routing.editor.save`)),9,ht)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-6b96c90d`]]),_t=[`aria-label`,`aria-busy`],vt={key:0,class:`project-agent-policy-state`,role:`status`},yt={key:1,class:`project-agent-policy-options`},bt=[`checked`,`disabled`],xt=[`checked`,`disabled`],St={class:`project-agent-policy-feedback`,"aria-live":`polite`},Ct={key:0,role:`alert`},wt=[`disabled`],Tt={key:1,role:`status`},Et={key:2,role:`status`},Dt=F(n({__name:`ProjectAgentAutomationPolicyPanel`,props:{personalSpaceId:{},personalProjectId:{},projectName:{}},setup(e){let t=e,n=c(y()),r=c(!1),a=c(!1),o=c(``),s=c(``),l=c(!1),d=0,g=m(()=>r.value||a.value);i(()=>[t.personalSpaceId,t.personalProjectId],()=>void _(),{immediate:!0});async function _(){let e=++d;if(n.value=y(),l.value=!1,s.value=``,!(!t.personalSpaceId||!t.personalProjectId)){r.value=!0,o.value=``;try{let r=await M(`/api/project-agent-coordination-policy?${new URLSearchParams({personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId})}`);e===d&&(n.value=x(r))}catch(t){e===d&&(o.value=t instanceof Error?t.message:u(`projectAgents.coordination.loadFailed`))}finally{e===d&&(r.value=!1)}}}async function v(e,r){if(g.value)return;let i={...n.value},o=r.currentTarget.checked;n.value={...n.value,[e]:o},a.value=!0,l.value=!1,s.value=``;try{let e=await k(`/api/project-agent-coordination-policy`,{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId,askBeforeRecruitment:n.value.askBeforeRecruitment,autoReusePreviousAgent:n.value.autoReusePreviousAgent});n.value=x(e),l.value=!0}catch(e){n.value=i,s.value=e instanceof Error?e.message:u(`projectAgents.coordination.saveFailed`)}finally{a.value=!1}}function y(){return{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId,askBeforeRecruitment:!0,autoReusePreviousAgent:!0,updatedAt:null}}function x(e){let n=e&&typeof e==`object`?e:{};return{personalSpaceId:C(n.personalSpaceId??n.personal_space_id)||t.personalSpaceId,personalProjectId:C(n.personalProjectId??n.personal_project_id)||t.personalProjectId,askBeforeRecruitment:S(n.askBeforeRecruitment??n.ask_before_recruitment,!0),autoReusePreviousAgent:S(n.autoReusePreviousAgent??n.auto_reuse_previous_agent,!0),updatedAt:C(n.updatedAt??n.updated_at)}}function S(e,t){return typeof e==`boolean`?e:t}function C(e){return typeof e==`string`&&e?e:null}return(t,i)=>(h(),E(`section`,{class:`project-agent-automation-policy`,"aria-label":f(u)(`projectAgents.coordination.aria`,{project:e.projectName}),"aria-busy":g.value},[p(`header`,null,[p(`h3`,null,b(f(u)(`projectAgents.coordination.title`)),1),p(`span`,null,b(e.projectName),1)]),r.value?(h(),E(`p`,vt,b(f(u)(`projectAgents.coordination.loading`)),1)):(h(),E(`div`,yt,[p(`label`,null,[p(`span`,null,[p(`strong`,null,b(f(u)(`projectAgents.coordination.autoReuse`)),1),p(`small`,null,b(f(u)(`projectAgents.coordination.autoReuseMeta`)),1)]),p(`input`,{checked:n.value.autoReusePreviousAgent,disabled:g.value,type:`checkbox`,role:`switch`,onChange:i[0]||=e=>v(`autoReusePreviousAgent`,e)},null,40,bt)]),p(`label`,null,[p(`span`,null,[p(`strong`,null,b(f(u)(`projectAgents.coordination.askBeforeRecruitment`)),1),p(`small`,null,b(f(u)(`projectAgents.coordination.askBeforeRecruitmentMeta`)),1)]),p(`input`,{checked:n.value.askBeforeRecruitment,disabled:g.value,type:`checkbox`,role:`switch`,onChange:i[1]||=e=>v(`askBeforeRecruitment`,e)},null,40,xt)])])),p(`div`,St,[o.value||s.value?(h(),E(`p`,Ct,[T(b(o.value||s.value)+` `,1),o.value?(h(),E(`button`,{key:0,type:`button`,disabled:g.value,onClick:_},b(f(u)(`projectAgents.retry`)),9,wt)):w(``,!0)])):a.value?(h(),E(`p`,Tt,b(f(u)(`projectAgents.coordination.saving`)),1)):l.value?(h(),E(`p`,Et,b(f(u)(`projectAgents.coordination.saved`)),1)):w(``,!0)])],8,_t))}}),[[`__scopeId`,`data-v-4160a96e`]]),Ot={key:0,class:`project-agent-source-state`,role:`status`},kt={key:1,class:`project-agent-source-state`,role:`status`},At={key:2,class:`project-agent-source-state is-error`,role:`alert`},jt=F(n({__name:`ProjectAgentDetailState`,props:{status:{},error:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(h(),E(`div`,Ot,b(f(u)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(h(),E(`div`,kt,b(f(u)(`projectAgents.detail.loadingSection`)),1)):e.status===`error`?(h(),E(`div`,At,[p(`span`,null,b(e.error||f(u)(`projectAgents.detail.sectionUnavailable`)),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},b(f(u)(`projectAgents.retry`)),1)])):o(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-f174e20d`]]),Mt={class:`project-agent-dialog-header`},Nt={id:`project-agent-dialog-title`},Pt=[`disabled`],Ft={class:`project-agent-dialog-fields`},It=[`disabled`],Lt={value:`active`},Rt={value:`inactive`},zt={value:`archived`},Bt=[`disabled`],$={value:`durable`},Vt={value:`hr`},Ht={key:0,value:`temporary`,disabled:``},Ut={key:1,value:`coordinator`,disabled:``},Wt=[`disabled`,`placeholder`],Gt=[`disabled`,`placeholder`],Kt=[`disabled`,`placeholder`],qt={key:0,class:`project-agent-id-note`},Jt={class:`project-agent-wide-field`},Yt=[`disabled`,`placeholder`],Xt={class:`project-agent-wide-field`},Zt=[`disabled`,`placeholder`],Qt={class:`project-agent-wide-field`},$t=[`disabled`,`placeholder`],en={class:`project-agent-wide-field project-agent-strategy-fields`},tn=[`disabled`],nn={value:`flexible`},rn={value:`locked`},an=[`disabled`],on={class:`project-agent-wide-field`},sn=[`disabled`,`placeholder`],cn={key:0,class:`project-agent-dialog-error`,role:`alert`},ln={class:`project-agent-dialog-actions`},un=[`disabled`],dn=[`disabled`],fn=F(n({__name:`ProjectAgentDialog`,props:{open:{type:Boolean},agent:{},projects:{},defaultProjectId:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(e,{emit:n}){let r=e,a=n,o=c(``),l=c(``),d=c(``),_=c(``),v=c(``),x=c(``),S=c(``),T=c(`active`),D=c(`durable`),k=c(`adaptive`),A=c(`flexible`),M=c(``),N=c(!1),P=c(``),{dialogRef:F,initialFocusRef:I,onCancel:L,onKeydown:ee}=te(()=>r.open,()=>a(`close`)),z=m(()=>!!r.agent),ne=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));i(()=>[r.open,r.agent,r.defaultProjectId],([e,t,n])=>{if(!e)return;o.value=t?.personalProjectId??n??r.projects[0]?.project_id??``,l.value=t?.agentId??``,d.value=t?.profile.name??``,_.value=t?.profile.occupationEmoji??``,v.value=t?.profile.responsibility??``,x.value=(t?.profile.capabilities??[]).join(`
8
+ `),S.value=(t?.profile.initialPreferences??[]).join(`
9
+ `),T.value=t?.profile.status??`active`,D.value=t?.profile.agentType??`durable`,k.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,A.value=t?.profile.executorPolicy?.mode??`flexible`;let i=t?.profile.executorPolicy,a=i?.mode===`locked`?i.lockedExecutorIds:i?.preferredExecutorIds;M.value=(a?.length?a:i?.allowList?.map(({executorId:e})=>e)??[]).join(`
10
+ `),P.value=``},{immediate:!0});function B(e){let t=e.split(`
11
+ `).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function V(){if(N.value)return;let e=o.value.trim(),t=l.value.trim(),n=d.value.trim(),i=_.value.trim(),s=v.value.trim();if(!t||!n||!s){P.value=u(`projectAgents.dialog.required`);return}let c=r.projects.find(({project_id:t})=>t===e);if(e&&!c){P.value=u(`projectAgents.dialog.projectUnavailable`);return}if(i&&!H(i)){P.value=u(`projectAgents.dialog.occupationEmojiInvalid`);return}let f=c?.personal_space_id??r.personalSpaceId??r.agent?.personalSpaceId;if(!f){P.value=u(`projectAgents.dialog.spaceUnavailable`);return}let p=B(x.value),m=B(S.value);if(!p||!m){P.value=u(`projectAgents.dialog.duplicate`);return}let h=B(M.value);if(!h||A.value===`locked`&&!h.length){P.value=u(`projectAgents.dialog.duplicate`);return}N.value=!0,P.value=``;try{let r={name:n,responsibility:s,capabilities:p,initialPreferences:m,status:T.value};i&&(r.occupationEmoji=i),D.value!==`durable`&&(r.agentType=D.value),k.value!==`adaptive`&&(r.defaultModelStrategy={mode:k.value}),(A.value!==`flexible`||h.length)&&(r.executorPolicy={mode:A.value,lockedExecutorIds:A.value===`locked`?h:[],preferredExecutorIds:A.value===`flexible`?h:[]});let o=await j(`/api/project-agents`,{personalSpaceId:f,personalProjectId:null,agentId:t,profile:r}),c=o;if(e){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:f,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:s,capabilities:p,reason:u(`projectAgents.dialog.initialAssignmentReason`)});c={...o,personalProjectId:e,assignments:[n]}}a(`saved`,c),a(`close`)}catch(e){P.value=e instanceof Error?e.message:u(`projectAgents.dialog.saveFailed`)}finally{N.value=!1}}function H(e){return Array.from(e).length>32||/\s/u.test(e)||Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)).length!==1?!1:/\p{Extended_Pictographic}|\p{Regional_Indicator}{2}|[#*0-9]\uFE0F?\u20E3/u.test(e)&&/^[\p{Extended_Pictographic}\p{Emoji_Component}\uFE0E\uFE0F\u200D\u{E0020}-\u{E007F}#*0-9]+$/u.test(e)}return(n,r)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:F,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:r[14]||=(...e)=>f(L)&&f(L)(...e),onKeydown:r[15]||=(...e)=>f(ee)&&f(ee)(...e)},[p(`form`,{class:`project-agent-dialog-shell`,onSubmit:y(V,[`prevent`])},[p(`header`,Mt,[p(`h3`,Nt,b(z.value?f(u)(`projectAgents.dialog.editTitle`):f(u)(`projectAgents.dialog.createTitle`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:I,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:N.value,onClick:r[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,Pt)]),p(`div`,Ft,[p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),s(R,{modelValue:o.value,"onUpdate:modelValue":r[1]||=e=>o.value=e,"control-id":`project-agent-project`,options:ne.value,label:f(u)(`projectAgents.fields.project`),placeholder:f(u)(`projectAgents.dialog.projectPlaceholder`),disabled:z.value||N.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.status`)),1),t(p(`select`,{"onUpdate:modelValue":r[2]||=e=>T.value=e,name:`project-agent-status`,disabled:N.value},[p(`option`,Lt,b(f(u)(`projectAgents.status.active`)),1),p(`option`,Rt,b(f(u)(`projectAgents.status.inactive`)),1),p(`option`,zt,b(f(u)(`projectAgents.status.archived`)),1)],8,It),[[g,T.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.agentType`)),1),t(p(`select`,{"onUpdate:modelValue":r[3]||=e=>D.value=e,name:`project-agent-type`,disabled:N.value},[p(`option`,$,b(f(u)(`projectAgents.agentType.durable`)),1),p(`option`,Vt,b(f(u)(`projectAgents.agentType.hr`)),1),z.value&&D.value===`temporary`?(h(),E(`option`,Ht,b(f(u)(`projectAgents.agentType.temporary`)),1)):w(``,!0),z.value&&D.value===`coordinator`?(h(),E(`option`,Ut,b(f(u)(`projectAgents.agentType.coordinator`)),1)):w(``,!0)],8,Bt),[[g,D.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.agentId`)),1),t(p(`input`,{"onUpdate:modelValue":r[4]||=e=>l.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:z.value||N.value,placeholder:f(u)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,Wt),[[C,l.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.name`)),1),t(p(`input`,{"onUpdate:modelValue":r[5]||=e=>d.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:N.value,placeholder:f(u)(`projectAgents.dialog.namePlaceholder`)},null,8,Gt),[[C,d.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.occupationEmoji`)),1),t(p(`input`,{"onUpdate:modelValue":r[6]||=e=>_.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:N.value,placeholder:f(u)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Kt),[[C,_.value]])]),z.value?(h(),E(`small`,qt,b(f(u)(`projectAgents.dialog.idLocked`)),1)):w(``,!0),p(`label`,Jt,[p(`span`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[7]||=e=>v.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:N.value,placeholder:f(u)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,Yt),[[C,v.value]])]),p(`label`,Xt,[p(`span`,null,b(f(u)(`projectAgents.fields.capabilities`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[8]||=e=>x.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:N.value,placeholder:f(u)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Zt),[[C,x.value]])]),p(`label`,Qt,[p(`span`,null,b(f(u)(`projectAgents.fields.initialPreferences`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[9]||=e=>S.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:N.value,placeholder:f(u)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,$t),[[C,S.value]])]),p(`fieldset`,en,[p(`legend`,null,b(f(u)(`projectAgents.fields.defaultModelStrategy`)),1),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.executorPolicy`)),1),t(p(`select`,{"onUpdate:modelValue":r[10]||=e=>A.value=e,name:`project-agent-selection-mode`,disabled:N.value},[p(`option`,nn,b(f(u)(`projectAgents.strategy.flexible`)),1),p(`option`,rn,b(f(u)(`projectAgents.strategy.locked`)),1)],8,tn),[[g,A.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.modelIntent`)),1),t(p(`select`,{"onUpdate:modelValue":r[11]||=e=>k.value=e,name:`project-agent-model-mode`,disabled:N.value},[...r[16]||=[p(`option`,{value:`adaptive`},`adaptive`,-1),p(`option`,{value:`fast`},`fast`,-1),p(`option`,{value:`balanced`},`balanced`,-1),p(`option`,{value:`deep`},`deep`,-1)]],8,an),[[g,k.value]])]),p(`label`,on,[p(`span`,null,b(f(u)(`projectAgents.fields.allowList`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[12]||=e=>M.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:N.value,placeholder:f(u)(`projectAgents.dialog.allowListPlaceholder`)},null,8,sn),[[C,M.value]])]),p(`small`,null,b(A.value===`locked`?f(u)(`projectAgents.strategy.lockedUnavailable`):f(u)(`projectAgents.strategy.providerNeutral`)),1)])]),P.value?(h(),E(`p`,cn,b(P.value),1)):w(``,!0),p(`footer`,ln,[p(`button`,{class:`quiet-button`,type:`button`,disabled:N.value,onClick:r[13]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,un),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:N.value},b(z.value?f(u)(`projectAgents.dialog.saveEdit`):f(u)(`projectAgents.dialog.saveCreate`)),9,dn)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-83825f22`]]),pn=[`aria-label`],mn={class:`project-agents-header`},hn={class:`project-agents-header-meta`},gn={class:`project-agent-header-actions`},_n=[`disabled`],vn=[`disabled`],yn={class:`project-agents-summary`,"aria-live":`polite`},bn={class:`project-agents-toolbar`},xn={class:`project-agents-search`},Sn={class:`sr-only`},Cn=[`placeholder`],wn=[`aria-label`],Tn=[`aria-pressed`,`onClick`],En={key:1,class:`project-agents-state`},Dn={key:2,class:`project-agents-state is-error`,role:`alert`},On={key:3,class:`project-agents-state`},kn=[`disabled`],An={key:4,class:`project-agents-state`},jn={key:5,class:`project-agents-directory`},Mn=[`aria-label`],Nn=[`aria-current`,`onClick`],Pn={class:`project-agent-row-heading`},Fn=[`aria-label`],In={class:`project-agent-kind`},Ln={class:`project-agent-row-projects`},Rn={key:0},zn={key:1},Bn={class:`project-agent-row-responsibility`},Vn={class:`project-agent-row-work`},Hn={class:`project-agent-row-capabilities`},Un=[`aria-label`],Wn={class:`project-agent-detail-heading`},Gn=[`aria-label`],Kn={key:0},qn={key:0},Jn={class:`project-agent-detail-actions`},Yn=[`disabled`],Xn=[`disabled`],Zn={key:0,class:`project-agent-detail-notice`,role:`status`},Qn={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},$n={class:`employee-project-overview-heading`},er={id:`employee-project-overview-title`},tr={key:0,class:`employee-assigned-projects`},nr={key:1,class:`employee-project-overview-hint`},rr={class:`project-agent-detail-meta`},ir={key:0},ar={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},or={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},sr={class:`project-agent-section-heading`},cr={id:`project-agent-recruitment-heading`},lr={key:0,class:`project-agent-recruitment-list`},ur={class:`project-agent-card-actions`},dr=[`disabled`,`onClick`],fr=[`disabled`,`onClick`],pr={class:`project-agent-compact-meta`},mr={key:1,class:`project-agent-muted`},hr={class:`project-agent-detail-section is-responsibility`},gr={key:0,class:`project-agent-tags`},_r={class:`project-agent-detail-source`,"data-detail-section":`assignments`},vr={class:`project-agent-detail-section`},yr={class:`project-agent-section-heading`},br={class:`project-agent-section-tools`},xr={key:0,class:`project-agent-assignment-list`},Sr={class:`project-agent-card-actions`},Cr=[`onClick`],wr=[`onClick`],Tr={key:0},Er={key:1,class:`project-agent-inline-list`},Dr={class:`project-agent-strategy-note`},Or={key:0},kr={key:2,class:`project-agent-tags`},Ar={key:3},jr={key:1,class:`project-agent-muted`},Mr={class:`project-agent-detail-source`,"data-detail-section":`executors`},Nr={class:`project-agent-detail-section`},Pr={class:`project-agent-section-heading`},Fr={class:`project-agent-muted`},Ir={key:0,class:`project-agent-tags`},Lr={key:1,class:`project-agent-blocked`},Rr={key:2,class:`project-agent-muted`},zr={class:`project-agent-section-tools`},Br={key:3,class:`project-agent-executor-list`},Vr=[`onClick`],Hr=[`disabled`,`onClick`],Ur=[`disabled`,`onClick`],Wr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},Gr={class:`project-agent-detail-section`},Kr={class:`project-agent-section-heading`},qr={key:0,class:`project-agent-task-list`},Jr={key:0},Yr={key:1,class:`project-agent-inline-list`},Xr=[`aria-label`],Zr={class:`project-agent-section-heading`},Qr=[`aria-label`],$r={class:`project-agent-execution-summary-table`},ei={class:`sr-only`},ti={scope:`col`},ni={scope:`col`},ri={scope:`col`},ii={scope:`col`},ai={scope:`col`},oi={scope:`col`},si={scope:`col`},ci={scope:`row`},li={class:`project-agent-execution-worker`},ui=[`aria-label`],di={key:0},fi=[`data-label`],pi=[`data-label`],mi=[`data-label`],hi={key:0},gi={key:1},_i=[`data-label`],vi=[`href`],yi={key:1},bi={class:`project-agent-reporter-label`},xi=[`href`],Si={key:1},Ci=[`data-label`],wi=[`data-label`],Ti={key:1},Ei={key:1,class:`project-agent-muted`},Di=[`aria-label`],Oi={class:`project-agent-section-heading`},ki={class:`project-agent-execution-summary-list`},Ai=[`aria-label`],ji={key:1},Mi={class:`project-agent-execution-summary-meta`},Ni={key:0},Pi={key:0},Fi={key:1},Ii={key:2},Li={key:4},Ri={key:5,class:`project-agent-routing-decision`},zi={class:`project-agent-section-heading`},Bi={key:0},Vi={key:1},Hi={key:2},Ui={key:0},Wi={key:3},Gi={key:0},Ki={key:4},qi={class:`project-agent-execution-line`},Ji={key:0},Yi={key:1},Xi={key:2},Zi={key:6},Qi={key:7},$i={key:1,class:`project-agent-muted`},ea={class:`project-agent-detail-source`,"data-detail-section":`activity`},ta={class:`project-agent-detail-section`},na={class:`project-agent-section-heading`},ra={key:0},ia={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},aa=[`aria-label`],oa=[`aria-label`,`aria-pressed`,`onClick`],sa={class:`sr-only`},ca={key:0,class:`project-agent-day-detail`},la={key:0,class:`project-agent-muted`},ua={key:1},da={key:1,class:`project-agent-muted`},fa={class:`project-agent-detail-source`,"data-detail-section":`clients`},pa={class:`project-agent-detail-section`},ma={class:`project-agent-section-heading`},ha={key:0,class:`project-agent-client-list`},ga={key:0},_a={key:1},va={key:2},ya={key:1,class:`project-agent-muted`},ba={class:`project-agent-detail-source`,"data-detail-section":`routing`},xa={class:`project-agent-detail-section`},Sa={class:`project-agent-section-heading`},Ca={class:`project-agent-section-tools`},wa={key:0,class:`project-agent-rule-list`},Ta=[`disabled`,`onClick`],Ea={key:1,class:`project-agent-muted`},Da={class:`project-agent-note`},Oa={class:`project-agent-detail-source`,"data-detail-section":`learning`},ka={class:`project-agent-detail-section`},Aa={class:`project-agent-section-heading`},ja={key:0,class:`project-agent-learning-list`},Ma={key:0},Na={key:1,class:`project-agent-inline-list`},Pa={key:0},Fa={key:2,class:`project-agent-evidence-list`},Ia=[`disabled`,`onClick`],La={key:3,class:`project-agent-learning-actions`},Ra=[`disabled`,`onClick`],za={key:1,class:`project-agent-muted`},Ba={class:`project-agent-note`},Va={class:`project-agent-detail-section`},Ha={key:1,class:`project-agent-detail-placeholder`},Ua=F(n({__name:`ProjectAgentsPage`,setup(n){let o=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],g=N(),y=c([]),x=c(!1),j=c(``),F=c(null),R=c(`all`),te=c(``),U=c(``),W=c(!1),re=c(!1),ie=c(``),K=c(null),q=c(!1),le=c(`assign`),ue=c(null),de=c(!1),fe=c({}),J=c(``),pe=c(``),ye=c(``),Y=c(``),xe=c(``),Se=c(!1),Ce=c(`executor`),we=c(null),Te=c(null),Ee=0,De=0,Oe=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function ke(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let Ae=m(()=>g.state?.personalProjects??[]);async function je(e){await Xe(),Le.value.some(t=>t.agentId===e.agent.agentId)||(F.value=null,R.value=`all`,te.value=``);let t=U.value===e.agent.agentId;U.value=e.agent.agentId,t&&Q()}let X=m(()=>g.activePersonalSpace?.id??``),Me=m(()=>new Map(Ae.value.map(e=>[e.project_id,e]))),Ne=m(()=>Ae.value.map(e=>({id:e.project_id,name:e.profile.name}))),Pe=m({get:()=>F.value??Ne.value.map(e=>e.id),set:e=>{let t=Ne.value.filter(t=>e.includes(t.id)).map(e=>e.id);F.value=t.length===Ne.value.length?null:t}}),Fe=m(()=>F.value?.length===1?F.value[0]:``),Ie=m(()=>[{value:`all`,label:u(`projectAgents.status.all`)},{value:`active`,label:u(`projectAgents.status.active`)},{value:`inactive`,label:u(`projectAgents.status.inactive`)},{value:`archived`,label:u(`projectAgents.status.archived`)}]),Le=m(()=>{let e=te.value.trim().toLocaleLowerCase(v());return y.value.filter(e=>F.value===null||xt(e).some(({id:e})=>F.value.includes(e))).filter(e=>R.value===`all`||e.profile.status===R.value).filter(t=>!e||Ct(t).toLocaleLowerCase(v()).includes(e)).sort(_t)}),Z=m(()=>Le.value.find(e=>e.agentId===U.value)??null),Re=m(()=>Z.value?L(Z.value):null),ze=m(()=>I.value.find(e=>e.id===Re.value)),Ve=m(()=>Z.value?xt(Z.value).filter(e=>Me.value.get(e.id)?.profile.lifecycle!==`archived`):[]),He=m(()=>y.value.filter(({profile:e})=>e.status===`active`).length),Ue=m(()=>y.value.reduce((e,t)=>e+bt(t).length,0)),We=m(()=>new Set(y.value.flatMap(e=>bt(e).map(({personalProjectId:e})=>e))).size),Ge=m(()=>Fe.value?Fe.value:Z.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Z.value?.personalProjectId??Ae.value[0]?.project_id??null),Ke=m(()=>Z.value?.activity??null),qe=m(()=>Ke.value?.days.find(({date:e})=>e===pe.value)??null),Je=m(()=>Object.entries(Z.value?.learningEvidence??{})),Ye=m(()=>Z.value?.recruitments??[]);e(()=>{g.runtimeStatus===`idle`&&g.refresh()}),i(X,e=>{++De,fe.value={},U.value=``,y.value=[],F.value=null,e?Xe(e):g.runtimeStatus!==`loading`&&(x.value=!1)},{immediate:!0}),i(Le,e=>{e.some(e=>e.agentId===U.value)||(U.value=e[0]?.agentId??``),e.some(e=>e.activity?.days.some(({date:e})=>e===pe.value))||(pe.value=``)},{immediate:!0}),i([U,X],([e,t])=>{pe.value=``,e&&t&&Q(e,t)},{immediate:!0});async function Xe(e=X.value){if(!e)return;let t=++Ee;x.value=!0,j.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([M(`/api/project-agents?${n}`),M(`/api/project-agent-tasks?${n}`)]);if(ee(e),r.status===`rejected`)throw r.reason;if(t===Ee){let e=oo(ae(r.value)),t=i.status===`fulfilled`?$a(i.value).filter(e=>Oe.has(e.status)):[];y.value=Ga(e,t)}}catch(e){t===Ee&&(j.value=e instanceof Error?e.message:u(`projectAgents.loadError`))}finally{t===Ee&&(x.value=!1)}}async function Q(e=U.value,t=X.value){let n=y.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++De;de.value=!0,J.value=``,Qe(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=ve(),s=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),c={assignments:M(`/api/project-agent-assignments?${i}`),tasks:M(`/api/project-agent-tasks?${i}`),activity:M(`/api/project-agent-activity?${s}`),recruitments:M(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:M(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:M(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:M(`/api/project-agent-routing-learning?${i}`)};await Promise.all(o.map(async i=>{try{let a=await c[i];if(!tt(r,e,t))return;nt(n,i,a),$e(e,i,{status:`ready`,error:``})}catch(n){if(!tt(r,e,t))return;$e(e,i,{status:`error`,error:n instanceof Error?n.message:u(`projectAgents.detail.sectionUnavailable`)})}})),tt(r,e,t)&&(de.value=!1)}function Ze(e=`idle`){return Object.fromEntries(o.map(t=>[t,{status:e,error:``}]))}function Qe(e,t){fe.value={...fe.value,[e]:Ze(t)}}function $e(e,t,n){fe.value={...fe.value,[e]:{...fe.value[e]??Ze(),[t]:n}}}function et(e){let t=(Array.isArray(e)?e:[e]).map(e=>fe.value[U.value]?.[e]??{status:`idle`,error:``});return t.find(({status:e})=>e===`error`)??t.find(({status:e})=>e===`loading`)??t.find(({status:e})=>e===`idle`)??{status:`ready`,error:``}}function tt(e,t,n){return e===De&&t===U.value&&n===X.value}function nt(e,t,n){let r;switch(t){case`assignments`:rt(n,[`assignments`,`items`]),r={assignments:Ja(n,e)};break;case`tasks`:rt(n,[`tasks`,`items`]),r={tasks:$a(n)};break;case`activity`:{let e=be(n,{agentId:U.value,personalSpaceId:X.value});if(!e)throw Error(u(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:rt(n,[`recruitments`,`items`]),r={recruitments:to(n).filter(t=>no(t,e))};break;case`executors`:rt(n,[`executors`,`items`]),r={executorDirectory:Xa(n),clientEvidence:ro(n)};break;case`routingRules`:rt(n,[`rules`,`items`]),r={routingRules:io(n)};break;case`learning`:rt(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:ao(n)};break}y.value=y.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function rt(e,t,n=!1){if(Array.isArray(e))return;let r=B(e);if(!t.some(e=>Array.isArray(r[e])||n&&it(r[e])))throw Error(u(`projectAgents.detail.sectionUnavailable`))}function it(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function at(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=Z.value;if(!(!r||!i||!X.value||ye.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){J.value=u(`projectAgents.learning.resetUnavailable`);return}ye.value=r;try{await k(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:X.value,personalProjectId:e.personalProjectId,agentId:i.agentId,workKind:e.workKind,executorId:e.executor,modelStrategy:e.modelStrategy,modelStrategyKey:e.modelStrategyKey,resetAt:t===`reset`?new Date().toISOString():void 0,idempotencyKey:t===`ignore`?`console-learning:${r}:ignore`:ke(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.learning.updateFailed`)}finally{ye.value=``}}}async function ot(e,t){if(!(!X.value||Y.value)){Y.value=e.recruitmentId;try{await O(`/api/project-agent-recruitments/decision`,{personalSpaceId:X.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:u(`projectAgents.recruitment.${t}Reason`)}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.recruitment.decisionFailed`)}finally{Y.value=``}}}async function st(e,t){if(!(!X.value||xe.value)){xe.value=e.executorId;try{await O(`/api/executors/authorization`,{personalSpaceId:X.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:ke(`console-executor:${e.executorId}:${t}`),reason:u(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.routing.authorizationFailed`)}finally{xe.value=``}}}function ct(e=null){Ce.value=`executor`,we.value=e,Te.value=null,Se.value=!0}function lt(e=null){Ce.value=`rule`,Te.value=e,we.value=null,Se.value=!0}function ut(){Se.value=!1,we.value=null,Te.value=null}function dt(e){Z.value&&(y.value=y.value.map(t=>t.agentId===Z.value?.agentId?{...t,executorDirectory:so([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),ut())}function ft(e){Z.value&&(y.value=y.value.map(t=>t.agentId===Z.value?.agentId?{...t,routingRules:so([...t.routingRules??[],e],({ruleId:e})=>e)}:t),ut())}function pt(e){Ce.value===`executor`?dt(e):ft(e)}async function mt(e){if(!(!X.value||!e.ruleId||Y.value)){Y.value=`rule:${e.ruleId}`;try{await k(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:X.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.routing.updateFailed`)}finally{Y.value=``}}}async function ht(e){if(e.profile.cleanupEligible){de.value=!0;try{await A(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await Xe()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.source.cleanupFailed`)}finally{de.value=!1}}}function _t(e,t){let n={active:0,inactive:1,archived:2};return n[e.profile.status]-n[t.profile.status]||e.profile.name.localeCompare(t.profile.name,v())||e.agentId.localeCompare(t.agentId,v())}function vt(e){return e?Me.value.get(e)?.profile.name??e:u(`projectAgents.notReported`)}function yt(e){return e.assignments??(e.personalProjectId?[St(e)]:[])}function bt(e){return[...new Map(yt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function xt(e){let t=L(e);return(t?I.value.find(e=>e.id===t):void 0)?.managedProjects??bt(e).map(e=>({id:e.personalProjectId,name:vt(e.personalProjectId)}))}function St(e){return{assignmentId:`legacy:${e.agentId}:${e.personalProjectId}`,personalSpaceId:e.personalSpaceId,personalProjectId:e.personalProjectId??``,agentId:e.agentId,responsibility:e.profile.responsibility,capabilities:e.profile.capabilities,status:e.profile.status===`active`?`active`:`ended`,assignedAt:e.createdAt,updatedAt:e.updatedAt,reason:null}}function Ct(e){return[e.agentId,e.profile.name,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...yt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function wt(){K.value=null,W.value=!0}function Tt(e=``){ie.value=e,re.value=!0}function Et(e){K.value=e,W.value=!0}function Ot(){W.value=!1,K.value=null}function kt(e,t=null,n=`assign`){let r=L(e);if(n===`assign`&&r){Tt(r);return}K.value=e,ue.value=t,le.value=n,q.value=!0}function At(){q.value=!1,ue.value=null,le.value=`assign`}function Mt(e){K.value&&(y.value=y.value.map(t=>t.agentId===K.value?.agentId?{...t,assignments:so([...t.assignments??[],e],({assignmentId:e})=>e)}:t),U.value=K.value.agentId,At())}function Nt(){At(),Q()}function Pt(e){let t=Ka(e),n=y.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));y.value=oo([...n,t]),t.personalProjectId&&(F.value=[t.personalProjectId]),R.value=`all`,te.value=``,U.value=t.agentId,g.notify(u(`projectAgents.saved`))}function Ft(e){if(!e)return u(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?u(`projectAgents.notReported`):new Intl.DateTimeFormat(v(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function It(e){if(!e)return u(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(v(),{month:`short`,day:`numeric`}).format(t)}function Lt(e){return e?.mode??`adaptive`}function Rt(e){return e?.mode??`flexible`}function zt(e){return e?.mode===`locked`}function Bt(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function $(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?_e(t):null}function Vt(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||u(`projectAgents.notReported`)}function Ht(e){return e.workerOccupationEmoji||``}function Ut(e){return Kt(e.workerStatus||e.status)}function Wt(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||u(`projectAgents.notReported`)}function Gt(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function Kt(e){return e?en(e):u(`projectAgents.notReported`)}function qt(e){if(!e)return u(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=u(t);return n===t?e:n}function Jt(e){return u(`projectAgents.tokenSources.${e}`)}function Yt(e){return e?`${new Intl.NumberFormat(v()).format(e.totalTokens)} Token · ${Jt(e.source)}`:u(`projectAgents.notReported`)}function Xt(e){return Zt(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function Zt(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if(e.username||e.password||e.search||e.hash)return null;if(e.protocol===`https:`||e.protocol===`http:`&&[`127.0.0.1`,`localhost`,`[::1]`].includes(e.hostname)||e.protocol===`codex:`&&e.hostname===`threads`&&e.pathname!==`/`)return t}catch{return null}return null}function Qt(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function $t(e){return(e.tasks??[]).find(e=>Oe.has(e.status))??null}function en(e){let t=`projectAgents.taskStatus.${e}`,n=u(t);return n===t?e:n}function tn(e){return u(`projectAgents.agentType.${e??`durable`}`)}function nn(e){return u(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function rn(e){return co([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function an(e,t){return e.clientEvidence?.find(e=>e.client===t)}function on(e,t){return an(e,t)?.actualUse?.count??0}function sn(e){return e.neutral!==!1||e.sampleCount<=0}function cn(e){return sn(e)?u(`projectAgents.learning.neutral`):u(`projectAgents.learning.recorded`)}function ln(e){return e.recentWeightedSamples??u(`projectAgents.notReported`)}function un(e){return e.score??``}function dn(e,t){let n=Math.max(...t.days.map(({total:e})=>e),0);return!n||!e.total?0:Math.min(4,Math.ceil(e.total/n*4))}function Ua(e){pe.value=e.date}function Wa(e,t){return t.ownerAgentId===e.agentId||t.leadAgentId===e.agentId||t.coordinatorAgentId===e.agentId||t.participants.some(t=>t.agentId===e.agentId)}function Ga(e,t){return e.map(e=>{let n=t.filter(t=>Wa(e,t));return n.length?{...e,tasks:so([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function Ka(e){let t=B(e),n=B(t.profile),r=H(t,`agentId`,`agent_id`)??``,i=H(t,`createdAt`,`created_at`)??``,a=H(t,`updatedAt`,`updated_at`)??i,o={name:H(n,`name`,`name`)??r,responsibility:H(n,`responsibility`,`responsibility`)??``,capabilities:G(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:G(V(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:H(n,`status`,`status`)??`active`,occupationEmoji:H(n,`occupationEmoji`,`occupation_emoji`),agentType:H(n,`agentType`,`agent_type`),workKinds:G(V(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:oe(V(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:se(V(n,`executorPolicy`,`executor_policy`)),allowedClients:G(V(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),testSource:H(n,`testSource`,`test_source`),cleanupEligible:V(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:H(t,`personalSpaceId`,`personal_space_id`)??X.value,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:H(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>ce(e,s)).filter(Boolean):void 0,recruitments:to(t.recruitments??t.recruitmentHistory).filter(e=>no(e,s)),recruitmentId:H(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:H(t,`temporaryTaskId`,`temporary_task_id`),workStatus:H(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:H(t,`currentTaskId`,`current_task_id`),observedClients:G(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:H(t,`recruitedAt`,`recruited_at`),recruitmentReason:H(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:H(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:G(t.tasks??t.taskHistory).map(me).filter(Boolean),activity:be(t.activity,{agentId:U.value,personalSpaceId:X.value}),clientEvidence:ro(t.clientEvidence??t.client_evidence),routingRules:io(t.routingRules??t.routing_rules),learningEvidence:Qa(t.learningEvidence??t.learning_evidence)}}function qa(e){let t=B(e),n=H(t,`client`,`client`);if(!n)return null;let r=B(V(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:H(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:H(r,`lastUsedAt`,`last_used_at`)}:null}}function Ja(e,t){let n=B(e);return G(Array.isArray(e)?e:n.assignments??n.items).map(e=>ce(e,t)).filter(e=>!!e)}function Ya(e){let t=B(e),n=H(t,`provider`,`provider`),r=H(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:G(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:G(V(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:G(V(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:H(t,`observedAt`,`observed_at`),unavailableReason:H(t,`unavailableReason`,`unavailable_reason`)}}function Xa(e){let t=B(e);return G(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=B(e),n=H(t,`executorId`,`executor_id`);if(!n)return null;let r=B(V(t,`actualUse`,`actual_use`));return{executorId:n,label:H(t,`label`,`label`),provider:H(t,`provider`,`provider`),model:H(t,`model`,`model`),client:H(t,`client`,`client`),availabilityStatus:H(t,`availabilityStatus`,`availability_status`),personalSpaceId:H(t,`personalSpaceId`,`personal_space_id`),displayName:H(t,`displayName`,`display_name`),executorKind:H(t,`executorKind`,`executor_kind`),capabilities:G(V(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof V(t,`globalPriority`,`global_priority`)==`number`?V(t,`globalPriority`,`global_priority`):null,healthRequired:V(t,`healthRequired`,`health_required`)===!0,registrationStatus:H(t,`registrationStatus`,`registration_status`),permissionStatus:H(t,`permissionStatus`,`permission_status`),preflightStatus:H(t,`preflightStatus`,`preflight_status`),healthStatus:H(t,`healthStatus`,`health_status`),workspacePermission:typeof V(t,`workspacePermission`,`workspace_permission`)==`boolean`?V(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof V(t,`permissionRevision`,`permission_revision`)==`number`?V(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:H(t,`registeredAt`,`registered_at`),updatedAt:H(t,`updatedAt`,`updated_at`),testSource:H(t,`testSource`,`test_source`),cleanupEligible:V(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:G(V(t,`advertisedModels`,`advertised_models`)).map(Ya).filter(e=>e!==null),availableModels:G(V(t,`availableModels`,`available_models`)).map(Ya).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:H(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Za(e){let t=B(e),n=H(t,`ruleId`,`rule_id`);if(!n)return null;let r=H(t,`status`,`status`);return{ruleId:n,scope:H(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:H(t,`personalProjectId`,`personal_project_id`),taskId:H(t,`taskId`,`task_id`),workKind:H(t,`workKind`,`work_kind`),agentId:H(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:G(V(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:oe(V(t,`modelStrategy`,`model_strategy`)),reason:H(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:H(t,`createdAt`,`created_at`),updatedAt:H(t,`updatedAt`,`updated_at`)}}function Qa(e){let t=B(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(B(n))).map((e,t)=>{let n=B(e),r=H(n,`personalProjectId`,`personal_project_id`),i=H(n,`workKind`,`work_kind`),a=H(n,`executorId`,`executor_id`)??H(n,`executor`,`executor`),o=oe(V(n,`modelStrategy`,`model_strategy`)),s=H(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=G(V(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=B(e),n=H(t,`signal`,`signal`),r=H(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof V(t,`decayWeight`,`decay_weight`)==`number`?V(t,`decayWeight`,`decay_weight`):null;return{evidenceId:H(t,`evidenceId`,`evidence_id`)??void 0,kind:r,count:typeof t.value==`number`?t.value:void 0,summary:n?`${n}${i===null?``:` · ${i.toFixed(3)}`}`:null,occurredAt:H(t,`occurredAt`,`occurred_at`)}}),u=typeof V(n,`weightedSuccess`,`weighted_success`)==`number`?V(n,`weightedSuccess`,`weighted_success`):0,d=typeof V(n,`weightedFailure`,`weighted_failure`)==`number`?V(n,`weightedFailure`,`weighted_failure`):0,f=V(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof V(n,`sampleCount`,`sample_count`)==`number`?V(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof V(n,`recentCount`,`recent_count`)==`number`?V(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:H(n,`asOf`,`as_of`)??H(n,`updatedAt`,`updated_at`),outcomes:{success:typeof V(n,`successCount`,`success_count`)==`number`?V(n,`successCount`,`success_count`):void 0,rework:typeof V(n,`reworkCount`,`rework_count`)==`number`?V(n,`reworkCount`,`rework_count`):void 0,failure:typeof V(n,`failureCount`,`failure_count`)==`number`?V(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof V(n,`ratingCount`,`rating_count`)==`number`?V(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:V(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function $a(e){let t=B(e);return G(Array.isArray(e)?e:t.tasks??t.items).map(me).filter(Boolean)}function eo(e){let t=B(e),n=H(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:H(t,`personalSpaceId`,`personal_space_id`)??X.value,personalProjectId:H(t,`personalProjectId`,`personal_project_id`)??``,taskId:H(t,`taskId`,`task_id`)??``,coordinatorAgentId:H(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:H(t,`hrAgentId`,`hr_agent_id`),positionKind:H(t,`positionKind`,`position_kind`)??`durable`,workKind:H(t,`workKind`,`work_kind`)??``,requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:H(t,`reasonCode`,`reason_code`)??``,reason:H(t,`reason`,`reason`)??``,status:H(t,`status`,`status`)??`unknown`,confirmationMode:H(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:H(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:H(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:H(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:H(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:H(t,`testSource`,`test_source`),cleanupEligible:V(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:H(t,`createdAt`,`created_at`)??``,updatedAt:H(t,`updatedAt`,`updated_at`)??``,fulfilledAt:H(t,`fulfilledAt`,`fulfilled_at`)}:null}function to(e){let t=B(e);return G(Array.isArray(e)?e:t.recruitments??t.items).map(eo).filter(e=>!!e)}function no(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function ro(e){let t=B(e);return G(Array.isArray(e)?e:t.clients??t.executors??t.items).map(qa).filter(Boolean)}function io(e){let t=B(e);return G(Array.isArray(e)?e:t.rules??t.items).map(Za).filter(Boolean)}function ao(e){let t=B(e);return Qa(t.learningEvidence??t.learning_evidence??e)}function oo(e){let t=new Map;return e.map(Ka).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...yt(n),...yt(e)],i=[...n.tasks??[],...e.tasks??[]];t.set(e.agentId,{...n,personalProjectId:n.personalProjectId??e.personalProjectId,profile:{...n.profile,occupationEmoji:n.profile.occupationEmoji??e.profile.occupationEmoji,capabilities:co([...n.profile.capabilities,...e.profile.capabilities]),workKinds:co([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:co([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:so(r,({assignmentId:e})=>e),recruitments:so([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:so(i,({taskId:e})=>e),activity:n.activity??e.activity,clientEvidence:n.clientEvidence?.length?n.clientEvidence:e.clientEvidence,routingRules:n.routingRules?.length?n.routingRules:e.routingRules,learningEvidence:{...e.learningEvidence??{},...n.learningEvidence??{}},observedClients:co([...n.observedClients??[],...e.observedClients??[]]),openTaskCount:Math.max(n.openTaskCount??0,e.openTaskCount??0)||void 0,currentTaskId:n.currentTaskId??e.currentTaskId,workStatus:n.workStatus??e.workStatus})}),[...t.values()]}function so(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function co(e){return[...new Set(e)]}return(e,n)=>(h(),E(`section`,{class:`view project-agents-view`,"aria-label":f(u)(`projectAgents.aria`)},[p(`header`,mn,[p(`div`,null,[p(`h2`,null,b(f(u)(`projectAgents.title`)),1),p(`p`,hn,b(f(u)(`projectAgents.stats.total`,{count:y.value.length}))+` · `+b(f(u)(`projectAgents.stats.assignments`,{count:Ue.value}))+` · `+b(f(u)(`projectAgents.stats.projects`,{count:We.value})),1)]),p(`div`,gn,[p(`button`,{class:`quiet-button`,type:`button`,disabled:!X.value,onClick:wt},b(f(u)(`projectAgents.add`)),9,_n),p(`button`,{class:`project-agent-add`,type:`button`,disabled:!X.value,onClick:n[0]||=e=>Tt()},b(f(u)(`employees.recruit`)),9,vn)])]),s(ne,{open:re.value,"personal-space-id":X.value,projects:Ae.value,"template-id":ie.value,"default-project-ids":F.value??[],onClose:n[1]||=e=>re.value=!1,onRecruited:je},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),p(`div`,yn,[p(`span`,null,b(f(u)(`projectAgents.stats.active`,{count:He.value})),1),p(`span`,null,b(f(u)(`projectAgents.stats.noOnlineClaim`)),1)]),p(`div`,bn,[s(z,{modelValue:Pe.value,"onUpdate:modelValue":n[2]||=e=>Pe.value=e,class:`project-agents-project-filter`,compact:``,projects:Ne.value,label:f(u)(`employees.filterLabel`),hint:f(u)(`employees.filterHint`),"empty-label":f(u)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),p(`label`,xn,[p(`span`,Sn,b(f(u)(`projectAgents.searchLabel`)),1),t(p(`input`,{"onUpdate:modelValue":n[3]||=e=>te.value=e,type:`search`,placeholder:f(u)(`projectAgents.searchPlaceholder`)},null,8,Cn),[[C,te.value]])]),p(`div`,{class:`project-agents-status-filter`,"aria-label":f(u)(`projectAgents.fields.status`)},[(h(!0),E(_,null,a(Ie.value,e=>(h(),E(`button`,{key:e.value,type:`button`,"aria-pressed":R.value===e.value,onClick:t=>R.value=e.value},b(e.label),9,Tn))),128))],8,wn)]),Fe.value?(h(),l(Dt,{key:Fe.value,"personal-space-id":X.value,"personal-project-id":Fe.value,"project-name":vt(Fe.value)},null,8,[`personal-space-id`,`personal-project-id`,`project-name`])):w(``,!0),x.value?(h(),E(`div`,En,b(f(u)(`projectAgents.loading`)),1)):j.value?(h(),E(`div`,Dn,[p(`p`,null,b(j.value),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[4]||=e=>Xe()},b(f(u)(`projectAgents.retry`)),1)])):y.value.length?Le.value.length?(h(),E(`div`,jn,[p(`div`,{class:`project-agent-list`,role:`list`,"aria-label":f(u)(`projectAgents.listLabel`)},[(h(!0),E(_,null,a(Le.value,e=>(h(),E(`button`,{key:e.agentId,type:`button`,class:S([`project-agent-row`,{selected:U.value===e.agentId}]),"aria-current":U.value===e.agentId?`true`:void 0,onClick:t=>U.value=e.agentId},[p(`span`,Pn,[e.profile.occupationEmoji?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},b(e.profile.occupationEmoji),9,Fn)):w(``,!0),p(`strong`,null,b(e.profile.name),1),p(`i`,In,b(tn(e.profile.agentType)),1),p(`i`,{class:S(`is-${e.profile.status}`)},b(f(u)(`projectAgents.status.${e.profile.status}`)),3)]),p(`span`,Ln,[(h(!0),E(_,null,a(xt(e).slice(0,3),e=>(h(),E(`b`,{key:e.id},b(e.name),1))),128)),xt(e).length>3?(h(),E(`b`,Rn,`+`+b(xt(e).length-3),1)):w(``,!0),xt(e).length?w(``,!0):(h(),E(`em`,zn,b(f(u)(`employees.noAssignedProjects`)),1))]),p(`span`,Bn,b(e.profile.responsibility||f(u)(`projectAgents.notReported`)),1),p(`span`,Vn,[$t(e)?(h(),E(_,{key:0},[p(`i`,{class:S([`project-agent-work-dot`,{"is-live":$t(e).status===`running`}]),"aria-hidden":`true`},null,2),T(b(en($t(e).status))+` · `+b($t(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(h(),E(_,{key:1},[T(b(en(e.workStatus))+` · `+b(f(u)(`projectAgents.detail.stateReported`)),1)],64)):(h(),E(_,{key:2},[T(b(f(u)(`projectAgents.detail.noRun`)),1)],64))]),p(`span`,Hn,[(h(!0),E(_,null,a(e.profile.capabilities.slice(0,3),e=>(h(),E(`b`,{key:e},b(e),1))),128))])],10,Nn))),128))],8,Mn),Z.value?(h(),E(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Z.value.profile.name},[p(`header`,null,[p(`div`,Wn,[p(`h3`,null,[Z.value.profile.occupationEmoji?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${Z.value.profile.occupationEmoji}`},b(Z.value.profile.occupationEmoji),9,Gn)):w(``,!0),T(b(Z.value.profile.name),1)]),p(`p`,null,[T(b(Z.value.agentId)+` · `+b(tn(Z.value.profile.agentType)),1),Z.value.isTestRole?(h(),E(`span`,Kn,[T(` · `+b(f(u)(`projectAgents.source.testRole`)),1),Z.value.profile.testSource?(h(),E(`span`,qn,` · `+b(Z.value.profile.testSource),1)):w(``,!0)])):w(``,!0)])]),p(`div`,Jn,[p(`button`,{class:`quiet-button`,type:`button`,disabled:de.value,onClick:n[5]||=e=>Q()},b(de.value?f(u)(`projectAgents.detail.refreshing`):f(u)(`projectAgents.detail.refresh`)),9,Yn),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[6]||=e=>Et(Z.value)},b(f(u)(`projectAgents.edit`)),1),Z.value.profile.cleanupEligible?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:de.value,onClick:n[7]||=e=>ht(Z.value)},b(f(u)(`projectAgents.source.cleanup`)),9,Xn)):w(``,!0)])]),J.value?(h(),E(`p`,Zn,b(J.value),1)):w(``,!0),Re.value?(h(),E(`section`,Qn,[p(`div`,$n,[p(`div`,null,[p(`h4`,er,b(ze.value?.management?.mode===`all`?f(u)(`employees.scope.continuousAll`):f(u)(`employees.scope.label`)),1),p(`p`,null,b(f(u)(`employees.assignedCount`,{count:Ve.value.length})),1)]),p(`button`,{class:`project-agent-add`,type:`button`,onClick:n[8]||=e=>Tt(Re.value)},b(f(u)(`employees.manageProjects`)),1)]),Ve.value.length?(h(),E(`div`,tr,[(h(!0),E(_,null,a(Ve.value,e=>(h(),l(f(P),{key:e.id,to:`/employees/${encodeURIComponent(Re.value)}?project=${encodeURIComponent(e.id)}`},{default:D(()=>[p(`span`,null,b(e.name),1),n[12]||=p(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[p(`path`,{d:`M4 10h12m-5-5 5 5-5 5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]),_:2},1032,[`to`]))),128))])):(h(),E(`p`,nr,b(f(u)(`employees.manageHint`)),1))])):w(``,!0),p(`dl`,rr,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.assignments`)),1),p(`dd`,null,b(bt(Z.value).length),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.memoryScope`)),1),p(`dd`,null,b(Z.value.memoryScope??f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.status`)),1),p(`dd`,null,b(f(u)(`projectAgents.status.${Z.value.profile.status}`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.recruitment`)),1),p(`dd`,null,[T(b(nn(Z.value.recruitmentSourceApplication)),1),Z.value.recruitmentReason?(h(),E(`small`,ir,b(Z.value.recruitmentReason),1)):w(``,!0)])]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.updatedAt`)),1),p(`dd`,null,b(Ft(Z.value.updatedAt)),1)])]),p(`div`,ar,[s(jt,r(et(`recruitments`),{onRetry:Q}),{default:D(()=>[p(`section`,or,[p(`div`,sr,[p(`h4`,cr,b(f(u)(`projectAgents.sections.recruitment`)),1),p(`span`,null,b(Ye.value.length),1)]),Ye.value.length?(h(),E(`div`,lr,[(h(!0),E(_,null,a(Ye.value,e=>(h(),E(`article`,{key:e.recruitmentId,class:`project-agent-recruitment-card`},[p(`header`,null,[p(`strong`,null,b(e.positionKind)+` · `+b(e.workKind||f(u)(`projectAgents.notReported`)),1),p(`div`,ur,[p(`i`,null,b(e.status),1),e.status===`awaiting_confirmation`?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Y.value,onClick:t=>ot(e,`approve`)},b(f(u)(`projectAgents.recruitment.approve`)),9,dr)):w(``,!0),e.status===`awaiting_confirmation`?(h(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Y.value,onClick:t=>ot(e,`cancel`)},b(f(u)(`projectAgents.recruitment.cancel`)),9,fr)):w(``,!0)])]),p(`dl`,pr,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.hr`)),1),p(`dd`,null,b(e.hrAgentId||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.trigger`)),1),p(`dd`,null,b(nn(e.triggerSourceApplication)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.reason`)),1),p(`dd`,null,b(e.reason||e.reasonCode||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.time`)),1),p(`dd`,null,b(Ft(e.fulfilledAt||e.createdAt)),1)])]),p(`small`,null,b(f(u)(`projectAgents.recruitment.testSource`))+` · `+b(e.testSource||f(u)(`projectAgents.notReported`)),1)]))),128))])):(h(),E(`p`,mr,b(f(u)(`projectAgents.recruitment.empty`)),1))])]),_:1},16)]),p(`section`,hr,[p(`h4`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),p(`p`,null,b(Z.value.profile.responsibility||f(u)(`projectAgents.notReported`)),1),Z.value.profile.capabilities.length?(h(),E(`div`,gr,[(h(!0),E(_,null,a(Z.value.profile.capabilities,e=>(h(),E(`span`,{key:e},b(e),1))),128))])):w(``,!0)]),p(`div`,_r,[s(jt,r(et(`assignments`),{onRetry:Q}),{default:D(()=>[p(`section`,vr,[p(`div`,yr,[p(`h4`,null,b(f(u)(`projectAgents.sections.assignments`)),1),p(`div`,br,[p(`span`,null,b(yt(Z.value).length),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[9]||=e=>kt(Z.value)},b(f(u)(`projectAgents.assignmentDialog.assign`)),1)])]),yt(Z.value).length?(h(),E(`div`,xr,[(h(!0),E(_,null,a(yt(Z.value),e=>(h(),E(`article`,{key:e.assignmentId,class:`project-agent-assignment-card`},[p(`header`,null,[p(`strong`,null,b(vt(e.personalProjectId)),1),p(`div`,Sr,[p(`i`,{class:S(`is-${e.status}`)},b(f(u)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>kt(Z.value,e,`end`)},b(f(u)(`projectAgents.assignmentDialog.end`)),9,Cr)):w(``,!0),e.status===`active`?(h(),E(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>kt(Z.value,e,`replace`)},b(f(u)(`projectAgents.assignmentDialog.replace`)),9,wr)):w(``,!0)])]),p(`p`,null,b(e.responsibility||f(u)(`projectAgents.notReported`)),1),e.scope?(h(),E(`small`,Tr,b(f(u)(`projectAgents.fields.scope`))+` · `+b(e.scope),1)):w(``,!0),p(`small`,null,b(Ft(e.assignedAt))+` → `+b(e.endedAt?Ft(e.endedAt):f(u)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(h(),E(`div`,Er,[(h(!0),E(_,null,a(e.workKinds,e=>(h(),E(`span`,{key:e},b(e),1))),128))])):w(``,!0),p(`div`,Dr,[p(`span`,null,b(f(u)(`projectAgents.fields.assignmentModel`)),1),p(`strong`,null,b(Lt(e.modelStrategyOverride))+` · `+b(Rt(e.executorPolicyOverride)),1),zt(e.executorPolicyOverride)&&!Bt(e.executorPolicyOverride).length?(h(),E(`small`,Or,b(f(u)(`projectAgents.strategy.lockedUnavailable`)),1)):w(``,!0)]),Bt(e.executorPolicyOverride).length?(h(),E(`div`,kr,[(h(!0),E(_,null,a(Bt(e.executorPolicyOverride),e=>(h(),E(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):w(``,!0),e.reason?(h(),E(`small`,Ar,b(f(u)(`projectAgents.fields.reason`))+` · `+b(e.reason),1)):w(``,!0)]))),128))])):(h(),E(`p`,jr,b(f(u)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16)]),p(`div`,Mr,[s(jt,r(et(`executors`),{onRetry:Q}),{default:D(()=>[p(`section`,Nr,[p(`div`,Pr,[p(`h4`,null,b(f(u)(`projectAgents.sections.strategy`)),1),p(`span`,null,b(Lt(Z.value.profile.defaultModelStrategy))+` · `+b(Rt(Z.value.profile.executorPolicy)),1)]),p(`p`,Fr,b(f(u)(`projectAgents.strategy.providerNeutral`)),1),Bt(Z.value.profile.executorPolicy).length?(h(),E(`div`,Ir,[(h(!0),E(_,null,a(Bt(Z.value.profile.executorPolicy),e=>(h(),E(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):zt(Z.value.profile.executorPolicy)?(h(),E(`p`,Lr,b(f(u)(`projectAgents.strategy.lockedUnavailable`)),1)):(h(),E(`p`,Rr,b(f(u)(`projectAgents.strategy.noAllowList`)),1)),p(`div`,zr,[p(`button`,{class:`quiet-button`,type:`button`,onClick:n[10]||=e=>ct()},b(f(u)(`projectAgents.routing.addExecutor`)),1)]),Z.value.executorDirectory?.length?(h(),E(`div`,Br,[(h(!0),E(_,null,a(Z.value.executorDirectory,e=>(h(),E(`div`,{key:e.executorId,class:`project-agent-executor-row`},[p(`strong`,null,b(e.displayName||e.label||e.executorId),1),p(`span`,null,b(e.provider||f(u)(`projectAgents.notReported`))+` / `+b(e.model||f(u)(`projectAgents.notReported`)),1),p(`span`,null,b(e.globalPriority??f(u)(`projectAgents.notReported`)),1),p(`small`,null,b(e.registrationStatus||f(u)(`projectAgents.notReported`))+` · `+b(e.permissionStatus||f(u)(`projectAgents.notReported`))+` · `+b(e.preflightStatus||f(u)(`projectAgents.strategy.availabilityUnreported`))+` · `+b(e.healthStatus||f(u)(`projectAgents.notReported`)),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:t=>ct(e)},b(f(u)(`projectAgents.routing.editExecutor`)),9,Vr),e.permissionStatus===`authorized`?(h(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!xe.value,onClick:t=>st(e,`revoked`)},b(f(u)(`projectAgents.routing.revoke`)),9,Ur)):(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!xe.value,onClick:t=>st(e,`authorized`)},b(f(u)(`projectAgents.routing.authorize`)),9,Hr))]))),128))])):w(``,!0)])]),_:1},16)]),p(`div`,Wr,[s(jt,r(et(`tasks`),{onRetry:Q}),{default:D(()=>[p(`section`,Gr,[p(`div`,Kr,[p(`h4`,null,b(f(u)(`projectAgents.sections.tasks`)),1),p(`span`,null,b(Z.value.tasks?.length??0),1)]),Z.value.tasks?.length?(h(),E(`div`,qr,[(h(!0),E(_,null,a(Z.value.tasks,e=>(h(),E(`article`,{key:e.taskId,class:`project-agent-task-card`},[p(`header`,null,[p(`div`,null,[p(`strong`,null,b(e.title),1),p(`small`,null,b(e.taskId)+` · `+b(vt(e.personalProjectId)),1)]),p(`i`,{class:S(`is-${e.status}`)},b(en(e.status)),3)]),e.resultSummary||e.failureReason?(h(),E(`p`,Jr,b(e.resultSummary||e.failureReason),1)):w(``,!0),p(`small`,null,b(f(u)(`projectAgents.fields.collaborators`))+` · `+b(e.participants.length),1),e.participants.length?(h(),E(`div`,Yr,[(h(!0),E(_,null,a(e.participants,t=>(h(),E(`span`,{key:`${e.taskId}:${t.agentId}`},b(t.agentId)+` · `+b(t.role),1))),128))])):w(``,!0),e.executionSummary===void 0?w(``,!0):(h(),E(`section`,{key:2,class:`project-agent-execution-summary`,"aria-label":f(u)(`projectAgents.fields.executionSummary`)},[p(`div`,Zr,[p(`h5`,null,b(f(u)(`projectAgents.fields.executionSummary`)),1),p(`span`,null,b(e.executionSummary.length),1)]),e.executionSummary.length?(h(),E(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":f(u)(`projectAgents.fields.executionSummary`)},[p(`table`,$r,[p(`caption`,ei,b(f(u)(`projectAgents.fields.executionSummary`)),1),p(`thead`,null,[p(`tr`,null,[p(`th`,ti,b(f(u)(`projectAgents.fields.worker`)),1),p(`th`,ni,b(f(u)(`projectAgents.fields.workSummary`)),1),p(`th`,ri,b(f(u)(`projectAgents.fields.toolsUsed`)),1),p(`th`,ii,b(f(u)(`projectAgents.fields.executionEnvironment`)),1),p(`th`,ai,b(f(u)(`projectAgents.fields.sourceSession`)),1),p(`th`,oi,b(f(u)(`projectAgents.fields.tokenUsage`)),1),p(`th`,si,b(f(u)(`projectAgents.fields.terminalStatus`)),1)])]),p(`tbody`,null,[(h(!0),E(_,null,a(e.executionSummary,(t,n)=>(h(),E(`tr`,{key:e.taskId+`:execution:`+(t.workerId||t.agentId||n),class:`project-agent-execution-summary-row`},[p(`th`,ci,[p(`span`,li,[Gt(t)?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":f(u)(`projectAgents.fields.occupationEmoji`)+`: `+Gt(t)},b(Gt(t)),9,ui)):w(``,!0),T(` `+b(Wt(t)),1)]),t.agentId||t.workerId?(h(),E(`small`,di,b(t.workerId||t.agentId),1)):w(``,!0),p(`small`,null,b(qt(t.participantRole)),1)]),p(`td`,{"data-label":f(u)(`projectAgents.fields.workSummary`)},b(t.workSummary||f(u)(`projectAgents.notReported`)),9,fi),p(`td`,{"data-label":f(u)(`projectAgents.fields.toolsUsed`)},b(t.toolsUsed?t.toolsUsed.join(` · `)||f(u)(`projectAgents.noToolsUsed`):f(u)(`projectAgents.notReported`)),9,pi),p(`td`,{"data-label":f(u)(`projectAgents.fields.executionEnvironment`)},[p(`strong`,null,b(t.executor||f(u)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(h(),E(`small`,hi,b(t.executorId),1)):w(``,!0),t.actualModelProvider||t.actualModel?(h(),E(`small`,gi,b([t.actualModelProvider,t.actualModel].filter(Boolean).join(` · `)),1)):w(``,!0)],8,mi),p(`td`,{"data-label":f(u)(`projectAgents.fields.sourceSession`)},[p(`span`,null,[t.workerRuntime?(h(),E(_,{key:0},[T(b(f(u)(`projectAgents.fields.workerSession`))+` · `,1)],64)):w(``,!0),T(b(nn(t.workerRuntime?.application||t.sourceApplication)),1)]),Xt(t)?(h(),E(`a`,{key:0,href:Xt(t)||void 0,target:`_blank`,rel:`noreferrer`},b(Qt(t)||Xt(t)),9,vi)):(h(),E(`small`,yi,b(Qt(t)||f(u)(`projectAgents.notReported`)),1)),t.workerRuntime?(h(),E(_,{key:2},[p(`small`,bi,b(f(u)(`projectAgents.fields.reporterSession`))+` · `+b(nn(t.sourceApplication)),1),Zt(t.sourceSessionUrl)?(h(),E(`a`,{key:0,href:Zt(t.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},b(t.sourceSessionId||t.sourceSessionUrl),9,xi)):(h(),E(`small`,Si,b(t.sourceSessionId||f(u)(`projectAgents.notReported`)),1))],64)):w(``,!0)],8,_i),p(`td`,{"data-label":f(u)(`projectAgents.fields.tokenUsage`)},b(Yt(t.tokenUsage)),9,Ci),p(`td`,{"data-label":f(u)(`projectAgents.fields.terminalStatus`)},[t.status?(h(),E(`i`,{key:0,class:S(`is-`+t.status)},b(Kt(t.status)),3)):(h(),E(`span`,Ti,b(f(u)(`projectAgents.notReported`)),1))],8,wi)]))),128))])])],8,Qr)):(h(),E(`p`,Ei,b(f(u)(`projectAgents.detail.noExecutionSummary`)),1))],8,Xr)),f(he)(e).length?(h(),E(`section`,{key:3,class:`project-agent-worker-event-evidence`,"aria-label":f(u)(`projectAgents.fields.workerEventEvidence`)},[p(`div`,Oi,[p(`h5`,null,b(f(u)(`projectAgents.fields.workerEventEvidence`)),1),p(`span`,null,b(f(he)(e).length),1)]),p(`ul`,ki,[(h(!0),E(_,null,a(f(he)(e),t=>(h(),E(`li`,{key:`${e.taskId}:worker-event:${t.eventId}`,class:`project-agent-worker-event-row`},[p(`header`,null,[p(`strong`,null,[Ht(t)?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${Ht(t)}`},b(Ht(t)),9,Ai)):w(``,!0),T(b(Vt(t)),1),t.agentId?(h(),E(`small`,ji,b(f(u)(`projectAgents.fields.agentId`))+` · `+b(t.agentId),1)):w(``,!0)]),p(`i`,{class:S(`is-${t.workerStatus||t.status}`)},b(Ut(t)),3)]),p(`dl`,Mi,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.workSummary`)),1),p(`dd`,null,b(t.summary||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.sourceApplication`)),1),p(`dd`,null,b(nn(t.sourceApplication)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.sourceSession`)),1),p(`dd`,null,b(t.sourceSessionId||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.tokenUsage`)),1),p(`dd`,null,b(Yt(t.tokenUsage)),1)]),t.actualModelProvider||t.actualModel?(h(),E(`div`,Ni,[p(`dt`,null,b(f(u)(`projectAgents.fields.actualModel`)),1),p(`dd`,null,[t.actualModelProvider?(h(),E(`span`,Pi,b(t.actualModelProvider),1)):w(``,!0),t.actualModelProvider&&t.actualModel?(h(),E(`span`,Fi,` · `)):w(``,!0),t.actualModel?(h(),E(`span`,Ii,b(t.actualModel),1)):w(``,!0)])])):w(``,!0),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.reportedAt`)),1),p(`dd`,null,b(Ft(t.createdAt)),1)])])]))),128))])],8,Di)):w(``,!0),e.effectiveModelStrategy?(h(),E(`small`,Li,b(f(u)(`projectAgents.fields.strategySource`))+` · `+b(e.modelStrategySource||f(u)(`projectAgents.notReported`))+` · `+b(Lt(e.effectiveModelStrategy))+` · `+b(Rt(e.effectiveExecutorPolicy)),1)):w(``,!0),e.routingDecision?(h(),E(`div`,Ri,[p(`div`,zi,[p(`span`,null,b(f(u)(`projectAgents.fields.reportedStaffingDecision`)),1),p(`strong`,null,b(e.routingDecision.outcome||f(u)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(h(),E(`small`,Bi,b(f(u)(`projectAgents.fields.coordinator`))+` · `+b(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):w(``,!0),p(`small`,null,b(f(u)(`projectAgents.fields.matchBasis`))+` · `+b(e.routingDecision.matchBasis?.join(` · `)||f(u)(`projectAgents.notReported`))+` · `+b(e.routingDecision.reason||f(u)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(h(),E(`small`,Vi,b(f(u)(`projectAgents.fields.candidateAgents`))+` · `+b(e.routingDecision.candidateAgentIds.join(` · `)),1)):w(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(h(),E(`small`,Hi,[T(b(f(u)(`projectAgents.fields.complexity`))+` · `+b(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(h(),E(`span`,Ui,` · `+b(e.routingDecision.complexityBasis.join(` · `)),1)):w(``,!0)])):w(``,!0),f(ge)(e.routingDecision.parallelPlan)?(h(),E(`small`,Wi,[T(b(f(u)(`projectAgents.fields.parallelPlan`))+` · `+b(e.routingDecision.parallelPlan?.reason||f(u)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(h(),E(`span`,Gi,` · `+b(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):w(``,!0)])):w(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(h(),E(`small`,Ki,b(e.routingDecision.ruleId||f(u)(`projectAgents.notReported`))+` · `+b(e.routingDecision.fallback||f(u)(`projectAgents.notReported`)),1)):w(``,!0)])):w(``,!0),p(`div`,qi,[p(`span`,null,b(f(u)(`projectAgents.fields.actualExecution`)),1),$(e)?(h(),E(`strong`,Ji,b($(e)?.executor||$(e)?.provider||f(u)(`projectAgents.notReported`))+` / `+b($(e)?.model||f(u)(`projectAgents.notReported`))+` / `+b(nn($(e)?.client)),1)):(h(),E(`span`,Yi,b(f(u)(`projectAgents.detail.notReportedActualExecution`)),1)),$(e)?.rule||$(e)?.fallback?(h(),E(`small`,Xi,b($(e)?.rule||f(u)(`projectAgents.notReported`))+` · `+b($(e)?.fallback||f(u)(`projectAgents.notReported`)),1)):w(``,!0)]),e.runId?(h(),E(`small`,Zi,b(f(u)(`projectAgents.fields.run`))+` · `+b(e.runId),1)):(h(),E(`small`,Qi,b(f(u)(`projectAgents.detail.noRun`)),1))]))),128))])):(h(),E(`p`,$i,b(f(u)(`projectAgents.detail.noTasks`)),1))])]),_:1},16)]),p(`div`,ea,[s(jt,r(et(`activity`),{onRetry:Q}),{default:D(()=>[p(`section`,ta,[p(`div`,na,[p(`h4`,null,b(f(u)(`projectAgents.sections.activity`)),1),Ke.value?(h(),E(`span`,ra,b(Ke.value.days.length),1)):w(``,!0)]),Ke.value?.days.length?(h(),E(`div`,ia,[p(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":f(u)(`projectAgents.activity.aria`)},[(h(!0),E(_,null,a(Ke.value.days,e=>(h(),E(`button`,{key:e.date,type:`button`,role:`listitem`,class:S([`project-agent-heat-cell`,`intensity-${dn(e,Ke.value)}`,{selected:pe.value===e.date}]),"aria-label":`${It(e.date)} · ${e.total}`,"aria-pressed":pe.value===e.date,onClick:t=>Ua(e)},[p(`span`,sa,b(It(e.date))+` · `+b(e.total),1)],10,oa))),128))],8,aa),qe.value?(h(),E(`article`,ca,[p(`header`,null,[p(`strong`,null,b(It(qe.value.date)),1),p(`span`,null,b(qe.value.total),1)]),qe.value.tasks?.length?(h(),E(`ul`,ua,[(h(!0),E(_,null,a(qe.value.tasks,e=>(h(),E(`li`,{key:e.taskId},[p(`strong`,null,b(e.title),1),p(`span`,null,b(en(e.status))+` · `+b(vt(e.personalProjectId)),1),p(`small`,null,b(e.summary||f(u)(`projectAgents.notReported`)),1)]))),128))])):(h(),E(`p`,la,b(f(u)(`projectAgents.activity.noTasks`)),1))])):w(``,!0)])):(h(),E(`p`,da,b(f(u)(`projectAgents.activity.empty`)),1))])]),_:1},16)]),p(`div`,fa,[s(jt,r(et(`executors`),{onRetry:Q}),{default:D(()=>[p(`section`,pa,[p(`div`,ma,[p(`h4`,null,b(f(u)(`projectAgents.sections.clients`)),1),p(`span`,null,b(rn(Z.value).length),1)]),rn(Z.value).length?(h(),E(`div`,ha,[(h(!0),E(_,null,a(rn(Z.value),e=>(h(),E(`div`,{key:e,class:`project-agent-client-row`},[p(`strong`,null,b(nn(e)),1),p(`span`,null,b(an(Z.value,e)?.allowed||Z.value.profile.allowedClients?.includes(e)?f(u)(`projectAgents.clients.allowed`):f(u)(`projectAgents.clients.notAllowed`)),1),on(Z.value,e)?(h(),E(`span`,ga,b(f(u)(`projectAgents.clients.observed`,{count:on(Z.value,e)})),1)):Z.value.observedClients?.includes(e)?(h(),E(`span`,_a,b(f(u)(`projectAgents.clients.observedAny`)),1)):(h(),E(`span`,va,b(f(u)(`projectAgents.clients.unreported`)),1)),p(`small`,null,b(an(Z.value,e)?.integrationStatus||f(u)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(h(),E(`p`,ya,b(f(u)(`projectAgents.clients.empty`)),1))])]),_:1},16)]),p(`div`,ba,[s(jt,r(et(`routingRules`),{onRetry:Q}),{default:D(()=>[p(`section`,xa,[p(`div`,Sa,[p(`h4`,null,b(f(u)(`projectAgents.sections.routing`)),1),p(`div`,Ca,[p(`span`,null,b(Z.value.routingRules?.length??0),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[11]||=e=>lt()},b(f(u)(`projectAgents.routing.addRule`)),1)])]),Z.value.routingRules?.length?(h(),E(`div`,wa,[(h(!0),E(_,null,a(Z.value.routingRules,e=>(h(),E(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[p(`strong`,null,b(e.scope)+` · `+b(e.priority),1),p(`span`,null,b(e.workKind||e.reason||f(u)(`projectAgents.notReported`))+` · `+b(e.executorIds?.join(`, `)||f(u)(`projectAgents.notReported`)),1),e.enabled?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Y.value,onClick:t=>mt(e)},b(f(u)(`projectAgents.routing.disable`)),9,Ta)):w(``,!0)]))),128))])):(h(),E(`p`,Ea,b(f(u)(`projectAgents.routing.empty`)),1)),p(`small`,Da,b(f(u)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16)]),p(`div`,Oa,[s(jt,r(et(`learning`),{onRetry:Q}),{default:D(()=>[p(`section`,ka,[p(`div`,Aa,[p(`h4`,null,b(f(u)(`projectAgents.sections.learning`)),1),p(`span`,null,b(Je.value.length),1)]),Je.value.length?(h(),E(`div`,ja,[(h(!0),E(_,null,a(Je.value,([e,n])=>(h(),E(`article`,{key:e,class:`project-agent-learning-card`},[p(`header`,null,[p(`strong`,null,b(e),1),p(`i`,null,b(cn(n)),1)]),n.personalProjectId||n.workKind||n.executor||n.modelStrategy?(h(),E(`small`,Ma,b(vt(n.personalProjectId))+` · `+b(n.workKind||f(u)(`projectAgents.notReported`))+` · `+b(n.executor||f(u)(`projectAgents.notReported`))+` / `+b(n.modelStrategy?Lt(n.modelStrategy):f(u)(`projectAgents.notReported`)),1)):w(``,!0),p(`p`,null,b(f(u)(`projectAgents.learning.samples`,{count:n.sampleCount}))+` · `+b(f(u)(`projectAgents.learning.recent`,{count:ln(n)})),1),p(`small`,null,b(n.decayBasis||f(u)(`projectAgents.learning.decayUnreported`))+` · `+b(Ft(n.updatedAt)),1),n.outcomes?(h(),E(`div`,Na,[(h(!0),E(_,null,a(n.outcomes,(e,n)=>t((h(),E(`span`,{key:n},b(n)+` · `+b(e??f(u)(`projectAgents.notReported`)),1)),[[d,e!==void 0]])),128)),n.score!==null&&n.score!==void 0?(h(),E(`span`,Pa,b(f(u)(`projectAgents.learning.score`,{score:un(n)})),1)):w(``,!0)])):w(``,!0),n.evidence?.length?(h(),E(`ul`,Fa,[(h(!0),E(_,null,a(n.evidence,e=>(h(),E(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[p(`span`,null,b(e.kind)+` · `+b(e.count??0)+` · `+b(e.summary||f(u)(`projectAgents.notReported`)),1),e.evidenceId?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:ye.value===e.evidenceId,onClick:t=>at(n,`ignore`,e.evidenceId)},b(f(u)(`projectAgents.learning.ignore`)),9,Ia)):w(``,!0)]))),128))])):w(``,!0),n.learningKey?(h(),E(`div`,La,[p(`button`,{class:`quiet-button`,type:`button`,disabled:ye.value===n.learningKey||!n.personalProjectId||!n.workKind||!n.executor,onClick:e=>at(n,`reset`)},b(f(u)(`projectAgents.learning.reset`)),9,Ra)])):w(``,!0)]))),128))])):(h(),E(`p`,za,b(f(u)(`projectAgents.learning.empty`)),1)),p(`small`,Ba,b(f(u)(`projectAgents.learning.note`)),1)])]),_:1},16)]),p(`section`,Va,[p(`h4`,null,b(f(u)(`projectAgents.sections.memory`)),1),p(`p`,null,b(Z.value.memoryScope??f(u)(`projectAgents.notReported`)),1),p(`small`,null,b(f(u)(`projectAgents.detail.memoryNote`)),1)])],8,Un)):(h(),E(`div`,Ha,b(f(u)(`projectAgents.detail.choose`)),1))])):(h(),E(`div`,An,[p(`strong`,null,b(f(u)(`projectAgents.noMatchTitle`)),1),p(`p`,null,b(f(u)(`projectAgents.noMatchCopy`)),1)])):(h(),E(`div`,On,[p(`strong`,null,b(f(u)(`projectAgents.emptyTitle`)),1),p(`p`,null,b(f(u)(`projectAgents.emptyCopy`)),1),p(`button`,{class:`project-agent-add`,type:`button`,disabled:!X.value,onClick:wt},b(f(u)(`projectAgents.add`)),9,kn)])),s(fn,{open:W.value,agent:K.value,projects:Ae.value,"default-project-id":Ge.value,"personal-space-id":X.value,onClose:Ot,onSaved:Pt},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),s(Be,{open:q.value,agent:K.value,assignment:ue.value,action:le.value,projects:Ae.value,"available-agents":y.value,"default-project-id":Ge.value,onClose:At,onSaved:Mt,onChanged:Nt},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),s(gt,{open:Se.value,mode:Ce.value,"personal-space-id":X.value,executor:we.value,rule:Te.value,projects:Ae.value,"available-executors":Z.value?.executorDirectory??[],onClose:ut,onSaved:pt},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,pn))}}),[[`__scopeId`,`data-v-d3470bdb`]]);export{Ua as default};
@@ -1 +1 @@
1
- import{B as e,C as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,n as ee,p as te,rt as d,tt as ne,u as re,v as f,x as p,y as m}from"./i18n-Ci3heuiL.js";import{a as h,n as g,r as _,t as ie}from"./console-BlAhujsH.js";import{h as ae}from"./useApi-CROJJdhE-twhdZArA.js";import{t as oe}from"./paths-CDREouhi.js";import{t as v}from"./SearchableSelect-Dz13ClQb.js";import{r as y,t as b}from"./identity-4_-v6cB7.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=t({__name:`PublicProjectsPage`,setup(t){let M=ie(),Ve=ae(),N=i(null),P=i([]),F=i([]),I=i(!1),L=i(!1),R=i(``),z=i(``),B=i(`RELATED_TO`),V=i(null),H=i(``),U=i(!1),W=i(``),G=c(()=>M.state?.projects??[]),K=c(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=c(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=c(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=c(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=c(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=c(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=c(()=>G.value.find(({id:e})=>e===z.value)??null),J=c(()=>X.value.find(({value:e})=>e===B.value)?.label??a(`pages.publicProjects.relationLabels.relatedTo`)),Y=c(()=>!!(V.value&&H.value===V.value.name)),X=c(()=>[{value:`PART_OF`,label:a(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:a(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:a(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:a(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:a(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:a(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:a(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||a(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(a(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(a(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=a(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(a(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:a(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(a(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?a(`pages.publicProjects.parentRelationSubmitted`):a(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(ee()):a(`pages.publicProjects.timeNotRecorded`)}return(t,i)=>(l(),m(`section`,se,[s(`div`,ce,[i[8]||=s(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[s(`span`,{class:`nav-icon nav-icon-public-project`})],-1),s(`div`,null,[s(`p`,null,d(o(a)(`pages.publicProjects.intro`)),1)]),s(`div`,{class:`public-space-stats`,"aria-label":o(a)(`pages.publicProjects.overviewAria`)},[s(`span`,null,[s(`strong`,null,d(G.value.length),1),p(d(o(a)(`pages.publicProjects.discoverable`)),1)]),s(`span`,null,[s(`strong`,null,d(o(M).state?.subscriptions.length??0),1),p(d(o(a)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),s(`div`,ue,[(l(!0),m(u,null,n(G.value,e=>(l(),m(`article`,{key:Z(e),class:`project-card`},[s(`div`,de,[s(`div`,null,[i[9]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h4`,null,d(e.name),1)]),s(`div`,fe,[e.can_manage?(l(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>Xe(e)},d(o(a)(`pages.publicProjects.manage`)),9,pe)):f(``,!0),s(`div`,me,[s(`strong`,null,d(e.profile?.assessment?.score??`—`),1),s(`span`,null,d(e.profile?.assessment?o(a)(`pages.publicProjects.coverage`):o(a)(`pages.publicProjects.noSummary`)),1)])])]),s(`p`,he,d(Q(e)),1),s(`div`,ge,[(l(!0),m(u,null,n(e.profile?.sources??[],(e,t)=>(l(),m(`span`,{key:t,class:`status-chip`},d(e.kind??o(a)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?f(``,!0):(l(),m(`span`,_e,d(o(a)(`pages.publicProjects.noSources`)),1))]),s(`div`,ve,[s(`span`,{class:ne([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),s(`span`,ye,d(e.isOwner?o(a)(`pages.publicProjects.publishedByYou`):o(a)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release?(l(),m(`span`,be,[s(`strong`,null,d(e.current_release.version),1),s(`span`,null,d($(e.current_release.published_at)),1)])):f(``,!0)]),s(`footer`,xe,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>qe(e)},d(K.value.has(Z(e))?o(a)(`pages.publicProjects.unsubscribe`):o(a)(`pages.publicProjects.subscribe`)),9,Se),s(`button`,{class:`primary-action`,type:`button`,onClick:t=>Je(e)},d(o(a)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?f(``,!0):(l(),m(`div`,S,d(o(a)(`pages.publicProjects.noProjects`)),1))]),s(`section`,C,[s(`div`,w,[s(`div`,null,[i[10]||=s(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.relationsCopy`)),1)]),s(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:i[0]||=e=>L.value=!L.value},d(o(a)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),m(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:te($e,[`prevent`])},[s(`label`,null,[p(d(o(a)(`pages.publicProjects.sourceProject`))+` `,1),r(v,{modelValue:R.value,"onUpdate:modelValue":i[1]||=e=>R.value=e,options:He.value,label:o(a)(`pages.publicProjects.sourceProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:i[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.relation`))+` `,1),r(v,{modelValue:B.value,"onUpdate:modelValue":i[3]||=e=>B.value=e,options:X.value,label:o(a)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.targetProject`))+` `,1),r(v,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,options:We.value,label:o(a)(`pages.publicProjects.targetProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`div`,E,[s(`span`,null,d(o(a)(`pages.publicProjects.preview`)),1),s(`strong`,null,d(Ge.value?.name||o(a)(`pages.publicProjects.sourceProject`))+` `+d(J.value)+` `+d(Ke.value?.name||o(a)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),m(`p`,D,d(o(a)(`pages.publicProjects.parentConfirmation`)),1)):(l(),m(`p`,O,d(o(a)(`pages.publicProjects.relationBoundary`)),1))]),s(`button`,k,d(o(a)(`pages.publicProjects.addRelation`)),1)],32)):f(``,!0)]),s(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),m(`div`,j,[s(`header`,Ce,[s(`div`,null,[i[11]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h3`,null,d(N.value.name),1),s(`p`,null,d(Q(N.value)),1)]),s(`button`,{class:`secondary-action`,type:`button`,onClick:i[5]||=e=>N.value=null},d(o(a)(`common.actions.close`)),1)]),s(`section`,we,[i[12]||=s(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),s(`h4`,null,d(o(a)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),m(`p`,Te,[s(`strong`,null,d(N.value.current_release.version),1),p(` · `+d($(N.value.current_release.published_at)),1)])):(l(),m(`p`,Ee,d(o(a)(`pages.publicProjects.noRelease`)),1))]),s(`div`,De,[s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),m(`p`,Oe,d(o(a)(`pages.publicProjects.loading`)),1)):f(``,!0),(l(!0),m(u,null,n(P.value,e=>(l(),m(`article`,{key:e.version,class:`project-release-item`},[s(`strong`,null,d(e.version),1),s(`p`,null,d(e.update_summary),1),s(`small`,null,d($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),m(`p`,ke,d(o(a)(`pages.publicProjects.noReleaseHistory`)),1)):f(``,!0)]),s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),(l(!0),m(u,null,n(F.value,e=>(l(),m(`article`,{key:e.id,class:`project-detail-relation`},[s(`strong`,null,d(e.relation_type),1),s(`small`,null,d(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),m(`p`,Ae,d(o(a)(`pages.publicProjects.noRelations`)),1)):f(``,!0)])]),s(`footer`,je,[s(`span`,null,d(o(a)(`pages.publicProjects.contentManagementSeparated`)),1),s(`button`,{class:`primary-action`,type:`button`,onClick:i[6]||=e=>Ye(N.value)},d(o(a)(`pages.publicProjects.viewGraph`)),1)])])):f(``,!0)],8,A),s(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),m(`div`,Ne,[s(`header`,Pe,[s(`div`,null,[i[13]||=s(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.deleteTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.deleteCopy`)),1)]),s(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},d(o(a)(`common.actions.close`)),9,Fe)]),s(`label`,Ie,[p(d(o(a)(`pages.publicProjects.enterFullName`))+` `,1),s(`strong`,null,d(V.value.name),1),e(s(`input`,{"onUpdate:modelValue":i[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[re,H.value]])]),W.value?(l(),m(`p`,Re,d(W.value),1)):f(``,!0),s(`footer`,ze,[s(`span`,null,d(o(a)(`pages.publicProjects.deleteWarning`)),1),s(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},d(U.value?o(a)(`pages.publicProjects.deleting`):o(a)(`pages.publicProjects.deletePermanently`)),9,Be)])])):f(``,!0)],8,Me)]))}});export{M as default};
1
+ import{B as e,C as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,n as ee,p as te,rt as d,tt as ne,u as re,v as f,x as p,y as m}from"./i18n-CgBHZthI.js";import{a as h,n as g,r as _,t as ie}from"./console-tOxOl8Vq.js";import{h as ae}from"./useApi-CROJJdhE-B6MHm_Av.js";import{t as oe}from"./paths-CDREouhi.js";import{t as v}from"./SearchableSelect-D27H0MoP.js";import{r as y,t as b}from"./identity-CFo_Uw1H.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=t({__name:`PublicProjectsPage`,setup(t){let M=ie(),Ve=ae(),N=i(null),P=i([]),F=i([]),I=i(!1),L=i(!1),R=i(``),z=i(``),B=i(`RELATED_TO`),V=i(null),H=i(``),U=i(!1),W=i(``),G=c(()=>M.state?.projects??[]),K=c(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=c(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=c(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=c(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=c(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=c(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=c(()=>G.value.find(({id:e})=>e===z.value)??null),J=c(()=>X.value.find(({value:e})=>e===B.value)?.label??a(`pages.publicProjects.relationLabels.relatedTo`)),Y=c(()=>!!(V.value&&H.value===V.value.name)),X=c(()=>[{value:`PART_OF`,label:a(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:a(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:a(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:a(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:a(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:a(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:a(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||a(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(a(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(a(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=a(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(a(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:a(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(a(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?a(`pages.publicProjects.parentRelationSubmitted`):a(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(ee()):a(`pages.publicProjects.timeNotRecorded`)}return(t,i)=>(l(),m(`section`,se,[s(`div`,ce,[i[8]||=s(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[s(`span`,{class:`nav-icon nav-icon-public-project`})],-1),s(`div`,null,[s(`p`,null,d(o(a)(`pages.publicProjects.intro`)),1)]),s(`div`,{class:`public-space-stats`,"aria-label":o(a)(`pages.publicProjects.overviewAria`)},[s(`span`,null,[s(`strong`,null,d(G.value.length),1),p(d(o(a)(`pages.publicProjects.discoverable`)),1)]),s(`span`,null,[s(`strong`,null,d(o(M).state?.subscriptions.length??0),1),p(d(o(a)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),s(`div`,ue,[(l(!0),m(u,null,n(G.value,e=>(l(),m(`article`,{key:Z(e),class:`project-card`},[s(`div`,de,[s(`div`,null,[i[9]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h4`,null,d(e.name),1)]),s(`div`,fe,[e.can_manage?(l(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>Xe(e)},d(o(a)(`pages.publicProjects.manage`)),9,pe)):f(``,!0),s(`div`,me,[s(`strong`,null,d(e.profile?.assessment?.score??`—`),1),s(`span`,null,d(e.profile?.assessment?o(a)(`pages.publicProjects.coverage`):o(a)(`pages.publicProjects.noSummary`)),1)])])]),s(`p`,he,d(Q(e)),1),s(`div`,ge,[(l(!0),m(u,null,n(e.profile?.sources??[],(e,t)=>(l(),m(`span`,{key:t,class:`status-chip`},d(e.kind??o(a)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?f(``,!0):(l(),m(`span`,_e,d(o(a)(`pages.publicProjects.noSources`)),1))]),s(`div`,ve,[s(`span`,{class:ne([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),s(`span`,ye,d(e.isOwner?o(a)(`pages.publicProjects.publishedByYou`):o(a)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release?(l(),m(`span`,be,[s(`strong`,null,d(e.current_release.version),1),s(`span`,null,d($(e.current_release.published_at)),1)])):f(``,!0)]),s(`footer`,xe,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>qe(e)},d(K.value.has(Z(e))?o(a)(`pages.publicProjects.unsubscribe`):o(a)(`pages.publicProjects.subscribe`)),9,Se),s(`button`,{class:`primary-action`,type:`button`,onClick:t=>Je(e)},d(o(a)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?f(``,!0):(l(),m(`div`,S,d(o(a)(`pages.publicProjects.noProjects`)),1))]),s(`section`,C,[s(`div`,w,[s(`div`,null,[i[10]||=s(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.relationsCopy`)),1)]),s(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:i[0]||=e=>L.value=!L.value},d(o(a)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),m(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:te($e,[`prevent`])},[s(`label`,null,[p(d(o(a)(`pages.publicProjects.sourceProject`))+` `,1),r(v,{modelValue:R.value,"onUpdate:modelValue":i[1]||=e=>R.value=e,options:He.value,label:o(a)(`pages.publicProjects.sourceProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:i[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.relation`))+` `,1),r(v,{modelValue:B.value,"onUpdate:modelValue":i[3]||=e=>B.value=e,options:X.value,label:o(a)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),s(`label`,null,[p(d(o(a)(`pages.publicProjects.targetProject`))+` `,1),r(v,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,options:We.value,label:o(a)(`pages.publicProjects.targetProjectLabel`),placeholder:o(a)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),s(`div`,E,[s(`span`,null,d(o(a)(`pages.publicProjects.preview`)),1),s(`strong`,null,d(Ge.value?.name||o(a)(`pages.publicProjects.sourceProject`))+` `+d(J.value)+` `+d(Ke.value?.name||o(a)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),m(`p`,D,d(o(a)(`pages.publicProjects.parentConfirmation`)),1)):(l(),m(`p`,O,d(o(a)(`pages.publicProjects.relationBoundary`)),1))]),s(`button`,k,d(o(a)(`pages.publicProjects.addRelation`)),1)],32)):f(``,!0)]),s(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),m(`div`,j,[s(`header`,Ce,[s(`div`,null,[i[11]||=s(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),s(`h3`,null,d(N.value.name),1),s(`p`,null,d(Q(N.value)),1)]),s(`button`,{class:`secondary-action`,type:`button`,onClick:i[5]||=e=>N.value=null},d(o(a)(`common.actions.close`)),1)]),s(`section`,we,[i[12]||=s(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),s(`h4`,null,d(o(a)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),m(`p`,Te,[s(`strong`,null,d(N.value.current_release.version),1),p(` · `+d($(N.value.current_release.published_at)),1)])):(l(),m(`p`,Ee,d(o(a)(`pages.publicProjects.noRelease`)),1))]),s(`div`,De,[s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),m(`p`,Oe,d(o(a)(`pages.publicProjects.loading`)),1)):f(``,!0),(l(!0),m(u,null,n(P.value,e=>(l(),m(`article`,{key:e.version,class:`project-release-item`},[s(`strong`,null,d(e.version),1),s(`p`,null,d(e.update_summary),1),s(`small`,null,d($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),m(`p`,ke,d(o(a)(`pages.publicProjects.noReleaseHistory`)),1)):f(``,!0)]),s(`section`,null,[s(`h4`,null,d(o(a)(`pages.publicProjects.relationsTitle`)),1),(l(!0),m(u,null,n(F.value,e=>(l(),m(`article`,{key:e.id,class:`project-detail-relation`},[s(`strong`,null,d(e.relation_type),1),s(`small`,null,d(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),m(`p`,Ae,d(o(a)(`pages.publicProjects.noRelations`)),1)):f(``,!0)])]),s(`footer`,je,[s(`span`,null,d(o(a)(`pages.publicProjects.contentManagementSeparated`)),1),s(`button`,{class:`primary-action`,type:`button`,onClick:i[6]||=e=>Ye(N.value)},d(o(a)(`pages.publicProjects.viewGraph`)),1)])])):f(``,!0)],8,A),s(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),m(`div`,Ne,[s(`header`,Pe,[s(`div`,null,[i[13]||=s(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),s(`h3`,null,d(o(a)(`pages.publicProjects.deleteTitle`)),1),s(`p`,null,d(o(a)(`pages.publicProjects.deleteCopy`)),1)]),s(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},d(o(a)(`common.actions.close`)),9,Fe)]),s(`label`,Ie,[p(d(o(a)(`pages.publicProjects.enterFullName`))+` `,1),s(`strong`,null,d(V.value.name),1),e(s(`input`,{"onUpdate:modelValue":i[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[re,H.value]])]),W.value?(l(),m(`p`,Re,d(W.value),1)):f(``,!0),s(`footer`,ze,[s(`span`,null,d(o(a)(`pages.publicProjects.deleteWarning`)),1),s(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},d(U.value?o(a)(`pages.publicProjects.deleting`):o(a)(`pages.publicProjects.deletePermanently`)),9,Be)])])):f(``,!0)],8,Me)]))}});export{M as default};
@@ -1 +1 @@
1
- import{C as e,L as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,rt as d,v as f,y as p}from"./i18n-Ci3heuiL.js";import{a as m,r as h,t as g}from"./console-BlAhujsH.js";import{t as _}from"./SearchableSelect-Dz13ClQb.js";import{r as v,t as y}from"./identity-4_-v6cB7.js";import{u as b}from"./model-yG0YqUyZ.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=e({__name:`ReviewPage`,setup(e){let B=g(),V=i([]),H=i([]),U=i(``),W=i(!1),G=c(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=c(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=c(()=>G.value.find(({id:e})=>e===U.value)??null);t(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),t(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(e,t)=>(l(),p(`section`,x,[s(`div`,S,[s(`h3`,null,d(o(a)(`pages.review.personalTitle`)),1),s(`p`,null,d(o(a)(`pages.review.personalCopy`)),1)]),s(`div`,C,[(l(!0),p(u,null,n(V.value,e=>(l(),p(`article`,{key:e.id,class:`review-item review-item-detailed`},[s(`div`,null,[s(`div`,w,d(o(a)(`pages.review.beforePublic`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,T,[s(`span`,null,d(o(a)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),s(`span`,null,d(o(a)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,E,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},d(o(a)(`pages.review.keepPersonal`)),9,D),s(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},d(o(a)(`pages.review.ignore`)),9,O),o(B).state?.capabilities?.submitKnowledge?(l(),p(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},d(o(a)(`pages.review.submitPublic`)),9,k)):f(``,!0)])]))),128)),!W.value&&!V.value.length?(l(),p(`div`,A,d(o(a)(`pages.review.noPersonalDrafts`)),1)):f(``,!0)]),o(B).state?.capabilities?.reviewProposals?(l(),p(`section`,j,[s(`div`,M,[s(`div`,null,[s(`h3`,null,d(o(a)(`pages.review.publicTitle`)),1),s(`p`,null,d(o(a)(`pages.review.publicCopy`)),1)]),r(_,{modelValue:U.value,"onUpdate:modelValue":t[0]||=e=>U.value=e,options:K.value,label:o(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),s(`div`,N,[(l(!0),p(u,null,n(H.value,e=>(l(),p(`article`,{key:e.id,class:`review-item`},[s(`div`,null,[s(`div`,P,d(o(a)(`pages.review.maintainerReview`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,F,[s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,I,[s(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},d(o(a)(`pages.review.reject`)),9,L),s(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},d(o(a)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(l(),p(`div`,z,d(o(a)(`pages.review.noProposals`)),1)):f(``,!0)])])):f(``,!0)]))}});export{B as default};
1
+ import{C as e,L as t,N as n,S as r,Y as i,a,et as o,g as s,h as c,j as l,m as u,rt as d,v as f,y as p}from"./i18n-CgBHZthI.js";import{a as m,r as h,t as g}from"./console-tOxOl8Vq.js";import{t as _}from"./SearchableSelect-D27H0MoP.js";import{r as v,t as y}from"./identity-CFo_Uw1H.js";import{u as b}from"./model-BtnVr7fX.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=e({__name:`ReviewPage`,setup(e){let B=g(),V=i([]),H=i([]),U=i(``),W=i(!1),G=c(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=c(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=c(()=>G.value.find(({id:e})=>e===U.value)??null);t(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),t(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(e,t)=>(l(),p(`section`,x,[s(`div`,S,[s(`h3`,null,d(o(a)(`pages.review.personalTitle`)),1),s(`p`,null,d(o(a)(`pages.review.personalCopy`)),1)]),s(`div`,C,[(l(!0),p(u,null,n(V.value,e=>(l(),p(`article`,{key:e.id,class:`review-item review-item-detailed`},[s(`div`,null,[s(`div`,w,d(o(a)(`pages.review.beforePublic`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,T,[s(`span`,null,d(o(a)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),s(`span`,null,d(o(a)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,E,[s(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},d(o(a)(`pages.review.keepPersonal`)),9,D),s(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},d(o(a)(`pages.review.ignore`)),9,O),o(B).state?.capabilities?.submitKnowledge?(l(),p(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},d(o(a)(`pages.review.submitPublic`)),9,k)):f(``,!0)])]))),128)),!W.value&&!V.value.length?(l(),p(`div`,A,d(o(a)(`pages.review.noPersonalDrafts`)),1)):f(``,!0)]),o(B).state?.capabilities?.reviewProposals?(l(),p(`section`,j,[s(`div`,M,[s(`div`,null,[s(`h3`,null,d(o(a)(`pages.review.publicTitle`)),1),s(`p`,null,d(o(a)(`pages.review.publicCopy`)),1)]),r(_,{modelValue:U.value,"onUpdate:modelValue":t[0]||=e=>U.value=e,options:K.value,label:o(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),s(`div`,N,[(l(!0),p(u,null,n(H.value,e=>(l(),p(`article`,{key:e.id,class:`review-item`},[s(`div`,null,[s(`div`,P,d(o(a)(`pages.review.maintainerReview`)),1),s(`h4`,null,d(e.episode.name),1),s(`p`,null,d(e.episode.summary||e.episode.source_description),1),s(`div`,F,[s(`span`,null,d(o(b)(e.created_at)),1)])]),s(`div`,I,[s(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},d(o(a)(`pages.review.reject`)),9,L),s(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},d(o(a)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(l(),p(`div`,z,d(o(a)(`pages.review.noProposals`)),1)):f(``,!0)])])):f(``,!0)]))}});export{B as default};