fuli-context 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/README.zh-CN.md +4 -1
- package/dist/web/assets/{AboutPage-BjMmpwJB.js → AboutPage-fBq5VFoQ.js} +1 -1
- package/dist/web/assets/AgentHand-CMZk5GjY.js +1 -0
- package/dist/web/assets/AgentName-Cydd0UI4.css +1 -0
- package/dist/web/assets/AgentName-DRZHAIB2.js +1 -0
- package/dist/web/assets/AgentProfilePage-BPQEfMhB.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-CKZfrcuD.js +1 -0
- package/dist/web/assets/{ConnectionsPage-BKGxFDos.js → ConnectionsPage-COb56qnk.js} +1 -1
- package/dist/web/assets/EmployeeRecruitDialog-BLTpjCcK.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-CQwZnTA0.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-HUd-gne2.js +3 -0
- package/dist/web/assets/{GrowthLoading-WXCj8b0r.js → GrowthLoading-Bu_kH-I8.js} +1 -1
- package/dist/web/assets/{KnowledgeEditDialog-Bkie08ZA.js → KnowledgeEditDialog-BTwXXRCD.js} +1 -1
- package/dist/web/assets/{KnowledgeInspector-Cez-Z_95.js → KnowledgeInspector-Ct5hl2--.js} +1 -1
- package/dist/web/assets/{KnowledgeOrganizerPage-BYmTPA_8.js → KnowledgeOrganizerPage-DMC8Hh43.js} +1 -1
- package/dist/web/assets/KnowledgePage-uXW1Eovz.js +1 -0
- package/dist/web/assets/{KnowledgeWorkspace-DKij2_B4.js → KnowledgeWorkspace-DmHIc0jb.js} +1 -1
- package/dist/web/assets/{NotFoundPage-HGV-q-bh.js → NotFoundPage-C0yOR9T9.js} +1 -1
- package/dist/web/assets/{OverviewPage-DE29_F_Y.js → OverviewPage-BreX_kb4.js} +1 -1
- package/dist/web/assets/{PersonalProfilePage-B95DFc7x.js → PersonalProfilePage-CX1a6_E3.js} +1 -1
- package/dist/web/assets/PersonalProjectsPage-Br1S8ETM.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-CA04h1Uf.js +13 -0
- package/dist/web/assets/ProjectAgentsPage-CZWWV4Kw.css +1 -0
- package/dist/web/assets/{ProjectScopePicker-Cu5PdxF6.js → ProjectScopePicker-DVHfXX1f.js} +1 -1
- package/dist/web/assets/{PublicProjectsPage-BY4B3_t3.js → PublicProjectsPage-CtctKml1.js} +1 -1
- package/dist/web/assets/{ReviewPage-C9vCesNu.js → ReviewPage-DUqaK-do.js} +1 -1
- package/dist/web/assets/{SearchableSelect-214TvfYg.js → SearchableSelect-BZtyYmZN.js} +1 -1
- package/dist/web/assets/{SettingsPage-D9TnzcFc.js → SettingsPage-CB4ymLr8.js} +1 -1
- package/dist/web/assets/{SharedJefaReportPage-CdSGI_OE.js → SharedJefaReportPage-CbFtrDCY.js} +1 -1
- package/dist/web/assets/{WritingTastePage-CUE1dU8f.js → WritingTastePage-B7lSzs2z.js} +1 -1
- package/dist/web/assets/agent-profile-CdKOh5xw.css +1 -0
- package/dist/web/assets/agent-profile.css_vue_type_style_index_0_src_true_lang-C22UdfU0.js +1 -0
- package/dist/web/assets/catalog-DU4Kfd-N.js +1 -0
- package/dist/web/assets/{client-Bl4oiW3E.js → client-CEHkJJ-5.js} +1 -1
- package/dist/web/assets/{console-BAIVNC-N.js → console--CZxc3PW.js} +1 -1
- package/dist/web/assets/{conversation-launcher-settings-DpRI_Jp2.js → conversation-launcher-settings-Co1RlTFH.js} +1 -1
- package/dist/web/assets/{i18n-CVFADb_M.js → i18n-BtOOoyJd.js} +3 -3
- package/dist/web/assets/{identity-Dt0WZgqo.js → identity-CsowvtIm.js} +1 -1
- package/dist/web/assets/index-7X3LGByg.js +2 -0
- package/dist/web/assets/index-CWMqDq8g.css +1 -0
- package/dist/web/assets/{model-B8sOxih0.js → model-CGpllrds.js} +1 -1
- package/dist/web/assets/{personal-profile-graph-aAqex7ty.js → personal-profile-graph-BNTG4PSY.js} +1 -1
- package/dist/web/assets/profile-model-BQO4zNs9.js +1 -0
- package/dist/web/assets/{shared-report-BQD6l_cS.js → shared-report-BFUJqqQe.js} +1 -1
- package/dist/web/assets/task-evidence-BUu7yYIn.js +1 -0
- package/dist/web/assets/{useApi-CROJJdhE-CuJ16v2S.js → useApi-CROJJdhE-raNlHRDl.js} +1 -1
- package/dist/web/assets/{useModalDialog-Ddv2XJQi.js → useModalDialog-CroGk2Cs.js} +1 -1
- package/dist/web/assets/{vue-router-C8KuEZ6a.js → vue-router-JFYBLXB1.js} +1 -1
- package/dist/web/index.html +12 -10
- package/docs/agent-conversations-and-collaboration.md +115 -0
- package/docs/agent-interface-architecture.md +17 -0
- package/docs/employee-agents.md +14 -1
- package/docs/project-agent-memory.md +34 -1
- package/graph-provider/fuli_graph/agent_conversation_models.py +72 -0
- package/graph-provider/fuli_graph/agent_conversation_routes.py +47 -0
- package/graph-provider/fuli_graph/agent_loan_models.py +28 -0
- package/graph-provider/fuli_graph/agent_quality_policy.py +151 -0
- package/graph-provider/fuli_graph/agent_verification_models.py +22 -0
- package/graph-provider/fuli_graph/conversation_context.py +30 -0
- package/graph-provider/fuli_graph/knowledge_search.py +8 -16
- package/graph-provider/fuli_graph/project_agent_executor_models.py +3 -0
- package/graph-provider/fuli_graph/project_agent_memory_routes.py +2 -0
- package/graph-provider/fuli_graph/project_agent_models.py +10 -0
- package/graph-provider/fuli_graph/project_agent_routes.py +5 -1
- package/graph-provider/fuli_graph/project_agent_task_models.py +4 -0
- package/graph-provider/fuli_graph/runtime.py +14 -0
- package/graph-provider/fuli_graph/store.py +6 -0
- package/graph-provider/fuli_graph/store_agent_conversations.py +206 -0
- package/graph-provider/fuli_graph/store_agent_loans.py +146 -0
- package/graph-provider/fuli_graph/store_agent_verification.py +111 -0
- package/graph-provider/fuli_graph/store_project_agent_executors.py +2 -0
- package/graph-provider/fuli_graph/store_project_agent_task_activity.py +6 -0
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +20 -8
- package/graph-provider/fuli_graph/store_task_contexts.py +9 -0
- package/graph-provider/fuli_graph/task_context_routes.py +7 -0
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +15 -15
- package/package.json +4 -3
- package/skills/capturing-session-knowledge/SKILL.md +20 -2
- package/skills/operating-fuli/SKILL.md +4 -0
- package/src/agent-tools/agent-collaboration-definitions.js +30 -0
- package/src/agent-tools/agent-conversation-definitions.js +21 -0
- package/src/agent-tools/employee-definitions.js +6 -5
- package/src/agent-tools/graph-definitions.js +19 -35
- package/src/agent-tools/graph-handlers.js +17 -1
- package/src/agent-tools/interface-catalog.js +2 -0
- package/src/agent-tools/project-agent-definitions.js +21 -0
- package/src/agent-tools/project-relation-definitions.js +36 -0
- package/src/agents/claude-code/conversation-transcript.js +20 -0
- package/src/agents/claude-code/lifecycle-hook.js +154 -0
- package/src/agents/claude-code/lifecycle-hooks.js +20 -0
- package/src/agents/codex/conversation-transcript.js +22 -0
- package/src/agents/codex/lifecycle-hook.js +47 -8
- package/src/agents/codex/lifecycle-hooks.js +6 -6
- package/src/agents/cursor/lifecycle-hook.js +5 -4
- package/src/app/agent-request-context.js +6 -1
- package/src/app/test-tools.js +26 -0
- package/src/conversations/sync-transcript.js +144 -0
- package/src/conversations/task-context-view.js +28 -0
- package/src/conversations/transcript-guard.js +54 -0
- package/src/conversations/transcript-reader.js +113 -0
- package/src/employees/service.js +8 -1
- package/src/graphiti/agent-collaboration.js +62 -0
- package/src/graphiti/agent-conversations.js +75 -0
- package/src/graphiti/agent-knowledge-workflows.js +8 -2
- package/src/graphiti/project-agent-control-plane.js +22 -2
- package/src/graphiti/project-agent-mapping.js +19 -1
- package/src/graphiti/project-agent-task-entry.js +11 -1
- package/src/graphiti/project-agent-workflows.js +11 -1
- package/src/graphiti/project-path-context.js +17 -10
- package/src/graphiti/provider-client.js +17 -0
- package/src/graphiti/verification-preference.js +24 -0
- package/src/http/graph-api-router.js +17 -0
- package/src/mcp/create-mcp-server.js +19 -5
- package/src/mcp/employee-tool-catalog.js +22 -0
- package/src/mcp/session-id.js +4 -0
- package/src/mcp/tool-annotations.js +8 -1
- package/src/mcp/tool-result.js +3 -1
- package/src/setup/agent-installation-status.js +1 -0
- package/src/setup/claude-code-config.js +13 -19
- package/dist/web/assets/AgentHand-BfLYPGjg.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-D-W043v4.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-Cz7y-IFD.css +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-HHQPxdqI.js +0 -3
- package/dist/web/assets/KnowledgePage-Ck7tIBDn.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-Bt7tFF5Z.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-BioDR9OW.css +0 -1
- package/dist/web/assets/ProjectAgentsPage-CiiPNe_G.js +0 -12
- package/dist/web/assets/index-BUMq5zNh.js +0 -2
- package/dist/web/assets/index-C0ci8dnU.css +0 -1
- package/src/mcp/task-context-registry.js +0 -165
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,N as r,R as i,T as a,V as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,it as m,j as h,n as ee,nt as g,rt as _,u as te,v,w as y,x as b,y as x,z as S}from"./i18n-CVFADb_M.js";import{t as ne}from"./console-BAIVNC-N.js";import{t as re}from"./GrowthLoading-WXCj8b0r.js";import{t as C}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as w}from"./vue-router-C8KuEZ6a.js";import{i as ie,n as T,r as E}from"./client-Bl4oiW3E.js";import{t as D}from"./useModalDialog-Ddv2XJQi.js";import{t as O}from"./SearchableSelect-214TvfYg.js";import{n as ae,t as k}from"./KnowledgeInspector-Cez-Z_95.js";import{i as oe,n as se,t as ce}from"./KnowledgeEditDialog-Bkie08ZA.js";import{C as le,D as A,E as j,_ as M,u as N,v as P,x as ue}from"./model-B8sOxih0.js";import{t as F}from"./personal-profile-graph-aAqex7ty.js";function de(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(!W(a,o)||!G(a,o)||K(a,o))continue;let[s,c]=pe(a,o),u=V(R(s),R(c)),d=U(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&I(e,s,c))??null;n.push({id:J(s,c),preferenceKey:L(s),scopeKey:z(s),scopeLabel:B(s),left:s,right:c,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:l(`preferences.shared.conflictReason`,{key:L(s)}),aiRecord:f})}return n.sort((e,t)=>{let n=ee();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function fe(e){return[e.left_item_id,e.right_item_id]}function I(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 L(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function R(e){return e.body.trim()}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function B(e){return e.preferenceScope===`project`&&e.preferenceProjectId?l(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):l(`preferences.shared.personalGlobal`)}function V(e,t){let n=Y(e),r=Y(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&me(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(X(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 H(e,t){let n=[...Y(e)];for(let e of Y(t)){let t=n.findIndex(t=>me(t,e));if(t<0){n.push(e);continue}n[t]=X(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function U(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function W(e,t){return z(e)===z(t)}function G(e,t){return Z(L(e))===Z(L(t))}function K(e,t){return Z(R(e))===Z(R(t))}function pe(e,t){let n=q(e),r=q(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function q(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function J(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function Y(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function me(e,t){let n=Z(e),r=Z(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 X(e,t){return Z(e).length>=Z(t).length?e:t}function Z(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var he=[`aria-labelledby`],ge={class:`project-dialog-shell conflict-resolution-shell`},Q={class:`project-dialog-header`},_e=[`id`],ve=[`disabled`],$=[`aria-label`],ye=[`aria-label`],be={class:`conflict-side conflict-side-left`},xe={class:`conflict-side-heading`},Se={class:`conflict-side conflict-side-right`},Ce={class:`conflict-side-heading`},we=[`aria-label`],Te={key:0},Ee={key:1,class:`muted`},De={key:0},Oe={key:1,class:`muted`},ke={key:0},Ae={key:1,class:`muted`},je=[`disabled`],Me=[`aria-label`],Ne=[`aria-pressed`],Pe={key:0},Fe=[`aria-pressed`],Ie=[`aria-pressed`],Le=[`disabled`,`aria-pressed`],Re={key:0,class:`conflict-resolution-detail`},ze=[`aria-label`],Be=[`aria-pressed`],Ve=[`aria-pressed`],He={key:1,class:`conflict-resolution-detail`},Ue=[`aria-label`],We=[`aria-pressed`],Ge=[`aria-pressed`],Ke={value:``,disabled:``},qe=[`value`],Je={class:`conflict-impact-preview`},Ye={class:`conflict-resolution-reason`},Xe={key:0,class:`dialog-error`},Ze={class:`project-dialog-actions conflict-resolution-actions`},Qe=[`disabled`],$e=[`disabled`],et=C(a({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(a,{emit:o}){let m=a,h=o,ee=ne(),_=s(null),y=s(`right`),C=s(`right`),w=s(``),T=s(``),O=s(``),ae=s(``),k=s(!1),oe=i(),{dialogRef:se,onCancel:ce,onKeydown:le}=D(()=>!!m.conflict,()=>{k.value||h(`close`)}),A=s(``),j=c(()=>{let e=m.conflict;if(!e)return[];let t=C.value===`left`?e.left:e.right;return m.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),M=c(()=>j.value.length>0),ue=c(()=>{let e=m.conflict;if(!e||!_.value)return l(`preferences.dialog.impact.choose`);if(_.value===`merge`){let t=y.value===`left`?e.left:e.right,n=y.value===`left`?e.right:e.left;return l(`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 l(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=C.value===`left`?e.left:e.right,n=j.value.find(({project_id:e})=>e===w.value);return n?l(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):l(`preferences.dialog.impact.chooseProject`)});S(()=>m.conflict,e=>{e&&(y.value=`right`,C.value=`right`,T.value=H(R(e.right),R(e.left)),_.value=e.recommendedAction,w.value=``,A.value=``,de(e.recommendedAction))},{immediate:!0}),S([C,j],()=>{w.value&&j.value.some(({project_id:e})=>e===w.value)||(w.value=j.value[0]?.project_id??``)},{immediate:!0});function F(e){k.value||(_.value=e,(!O.value.trim()||O.value===ae.value)&&de(e))}function de(e){let t=m.conflict,n=t&&e?V(e,t):``;ae.value=n,O.value=n}async function fe(){if(k.value)return;let e=m.conflict;if(!e||!_.value)return U(l(`preferences.dialog.errors.actionRequired`));if(!O.value.trim())return U(l(`preferences.dialog.errors.reasonRequired`));if(_.value===`merge`&&!T.value.trim())return U(l(`preferences.dialog.errors.mergedValueRequired`));if(_.value===`split_scope`&&!w.value)return U(l(`preferences.dialog.errors.projectRequired`));let t=_.value,n=O.value.trim(),r=m.personalSpaceId;k.value=!0,A.value=``;try{t===`merge`?await I(e):t===`split_scope`?await z(e):await L(e,t),e.aiRecord&&await ie(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:r,resolution:t,reason:n}),ee.notify(l(`preferences.dialog.resolved`)),h(`resolved`),h(`close`)}catch(e){A.value=e instanceof Error?e.message:l(`preferences.dialog.errors.failed`),ee.reportError(e)}finally{k.value=!1}}async function I(e){let t=O.value.trim(),n=m.personalSpaceId,r=y.value===`left`?e.left:e.right,i=y.value===`left`?e.right:e.left,a={personalSpaceId:n,personalProjectId:null,action:`update`,reason:t};r.itemKind===`entity`?(a.name=r.title,a.summary=T.value.trim()):a.fact=T.value.trim(),r.classificationExplicit&&r.originQuadrant!==`unclassified`&&(a.originQuadrant=r.originQuadrant,a.confirmationStatus=`confirmed`,a.confirmationBasis={existenceReason:l(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:r.confirmationBasis?.quadrant_reason||r.reasoningSummary||l(`preferences.dialog.audit.keepQuadrant`),proposedBy:r.confirmationBasis?.proposed_by?B(r.confirmationBasis.proposed_by):{kind:`import`,label:l(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:l(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await E(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,a),await E(`/api/knowledge/${i.itemKind}/${encodeURIComponent(i.id)}`,{personalSpaceId:n,personalProjectId:null,action:`invalidate`,reason:t,replacementItemId:r.id,replacementItemKind:r.itemKind})}async function L(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await E(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:m.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:O.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function z(e){let t=C.value===`left`?e.left:e.right;await ie(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:m.personalSpaceId,scope:`project`,projectId:w.value,reason:O.value.trim()})}function B(e){return{kind:e.kind,label:e.label??null}}function V(e,t){return e===`merge`?l(`preferences.dialog.defaultReason.merge`):e===`keep_left`?l(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?l(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):l(`preferences.dialog.defaultReason.split`)}function U(e){A.value=e}return(i,o)=>a.conflict?(r(),b(`dialog`,{key:0,ref_key:`dialogRef`,ref:se,"aria-modal":`true`,"aria-labelledby":g(oe),onCancel:o[15]||=(...e)=>g(ce)&&g(ce)(...e),onKeydown:o[16]||=(...e)=>g(le)&&g(le)(...e),class:`project-dialog conflict-resolution-dialog vue-dialog`},[v(`div`,ge,[v(`header`,Q,[v(`div`,null,[v(`h3`,{id:g(oe)},u(g(l)(`preferences.dialog.title`)),9,_e),v(`p`,null,u(g(l)(`preferences.dialog.intro`,{reason:a.conflict.reason})),1)]),v(`button`,{class:`secondary-action`,type:`button`,disabled:k.value,onClick:o[0]||=e=>h(`close`)},u(g(l)(`common.actions.close`)),9,ve)]),v(`section`,{class:`conflict-pair-context`,"aria-label":g(l)(`preferences.dialog.basisAria`)},[v(`span`,null,[e(u(g(l)(`preferences.dialog.preferenceKey`))+` `,1),v(`strong`,null,u(a.conflict.preferenceKey),1)]),v(`span`,null,[e(u(g(l)(`preferences.dialog.effectiveScope`))+` `,1),v(`strong`,null,u(a.conflict.scopeLabel),1)]),v(`span`,null,[e(u(g(l)(`preferences.dialog.suggestion`))+` `,1),v(`strong`,null,u(a.conflict.recommendedAction===`merge`?g(l)(`preferences.dialog.mergeSuggestion`):g(l)(`preferences.dialog.reviewSuggestion`)),1)])],8,$),v(`section`,{class:`conflict-comparison`,"aria-label":g(l)(`preferences.dialog.comparisonAria`)},[v(`article`,be,[v(`div`,xe,[v(`span`,null,u(g(l)(`preferences.dialog.older`)),1),v(`time`,null,u(g(N)(g(P)(a.conflict.left))),1)]),v(`h4`,null,u(a.conflict.left.title),1),v(`p`,null,u(g(R)(a.conflict.left)),1),v(`small`,null,u(g(l)(`preferences.dialog.sourceCount`,{count:a.conflict.left.evidence.length}))+` · `+u(a.conflict.left.id),1),v(`button`,{class:`text-action`,type:`button`,onClick:o[1]||=e=>h(`edit`,a.conflict.left)},u(g(l)(`preferences.dialog.editA`)),1)]),v(`article`,Se,[v(`div`,Ce,[v(`span`,null,u(g(l)(`preferences.dialog.newer`)),1),v(`time`,null,u(g(N)(g(P)(a.conflict.right))),1)]),v(`h4`,null,u(a.conflict.right.title),1),v(`p`,null,u(g(R)(a.conflict.right)),1),v(`small`,null,u(g(l)(`preferences.dialog.sourceCount`,{count:a.conflict.right.evidence.length}))+` · `+u(a.conflict.right.id),1),v(`button`,{class:`text-action`,type:`button`,onClick:o[2]||=e=>h(`edit`,a.conflict.right)},u(g(l)(`preferences.dialog.editB`)),1)])],8,ye),v(`section`,{class:`conflict-difference`,"aria-label":g(l)(`preferences.dialog.differenceAria`)},[v(`div`,null,[v(`span`,null,u(g(l)(`preferences.dialog.shared`)),1),a.conflict.difference.shared.length?(r(),b(`p`,Te,[(r(!0),b(p,null,t(a.conflict.difference.shared,e=>(r(),b(`b`,{key:e},u(e),1))),128))])):(r(),b(`p`,Ee,u(g(l)(`preferences.dialog.noShared`)),1))]),v(`div`,null,[v(`span`,null,u(g(l)(`preferences.dialog.onlyA`)),1),a.conflict.difference.leftOnly.length?(r(),b(`p`,De,[(r(!0),b(p,null,t(a.conflict.difference.leftOnly,e=>(r(),b(`b`,{key:e},u(e),1))),128))])):(r(),b(`p`,Oe,u(g(l)(`preferences.dialog.noUnique`)),1))]),v(`div`,null,[v(`span`,null,u(g(l)(`preferences.dialog.onlyB`)),1),a.conflict.difference.rightOnly.length?(r(),b(`p`,ke,[(r(!0),b(p,null,t(a.conflict.difference.rightOnly,e=>(r(),b(`b`,{key:e},u(e),1))),128))])):(r(),b(`p`,Ae,u(g(l)(`preferences.dialog.noUnique`)),1))])],8,we),v(`fieldset`,{class:`conflict-inputs`,disabled:k.value},[v(`section`,{class:`conflict-resolution-options`,"aria-label":g(l)(`preferences.dialog.actionsAria`)},[v(`button`,{type:`button`,"aria-pressed":_.value===`merge`,onClick:o[3]||=e=>F(`merge`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.merge`)),1),v(`span`,null,u(g(l)(`preferences.dialog.actions.mergeCopy`)),1),a.conflict.recommendedAction===`merge`?(r(),b(`em`,Pe,u(g(l)(`preferences.dialog.actions.recommended`)),1)):d(``,!0)],8,Ne),v(`button`,{type:`button`,"aria-pressed":_.value===`keep_left`,onClick:o[4]||=e=>F(`keep_left`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.keepA`)),1),v(`span`,null,u(g(l)(`preferences.dialog.actions.keepACopy`)),1)],8,Fe),v(`button`,{type:`button`,"aria-pressed":_.value===`keep_right`,onClick:o[5]||=e=>F(`keep_right`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.keepB`)),1),v(`span`,null,u(g(l)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ie),v(`button`,{type:`button`,disabled:!M.value,"aria-pressed":_.value===`split_scope`,onClick:o[6]||=e=>F(`split_scope`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.split`)),1),v(`span`,null,u(M.value?g(l)(`preferences.dialog.actions.splitCopy`):g(l)(`preferences.dialog.actions.noProjects`)),1)],8,Le)],8,Me),_.value===`merge`?(r(),b(`section`,Re,[v(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":g(l)(`preferences.dialog.mergeIdentityAria`)},[v(`span`,null,u(g(l)(`preferences.dialog.canonicalIdentity`)),1),v(`button`,{type:`button`,"aria-pressed":y.value===`left`,onClick:o[7]||=e=>y.value=`left`},u(g(l)(`preferences.dialog.identityA`)),9,Be),v(`button`,{type:`button`,"aria-pressed":y.value===`right`,onClick:o[8]||=e=>y.value=`right`},u(g(l)(`preferences.dialog.identityB`)),9,Ve)],8,ze),v(`label`,null,[e(u(g(l)(`preferences.dialog.mergedContent`))+` `,1),n(v(`textarea`,{"onUpdate:modelValue":o[9]||=e=>T.value=e,rows:`4`,maxlength:`4096`},null,512),[[f,T.value]])])])):d(``,!0),_.value===`split_scope`?(r(),b(`section`,He,[v(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":g(l)(`preferences.dialog.splitRecordAria`)},[v(`span`,null,u(g(l)(`preferences.dialog.adjustRecord`)),1),v(`button`,{type:`button`,"aria-pressed":C.value===`left`,onClick:o[10]||=e=>C.value=`left`},` A `,8,We),v(`button`,{type:`button`,"aria-pressed":C.value===`right`,onClick:o[11]||=e=>C.value=`right`},` B `,8,Ge)],8,Ue),v(`label`,null,[e(u(g(l)(`preferences.dialog.projectOnly`))+` `,1),n(v(`select`,{"onUpdate:modelValue":o[12]||=e=>w.value=e},[v(`option`,Ke,u(g(l)(`preferences.dialog.chooseProject`)),1),(r(!0),b(p,null,t(j.value,e=>(r(),b(`option`,{key:e.project_id,value:e.project_id},u(e.profile.name),9,qe))),128))],512),[[te,w.value]])])])):d(``,!0),v(`section`,Je,[v(`span`,null,u(g(l)(`preferences.dialog.impactTitle`)),1),v(`p`,null,u(ue.value),1)]),v(`label`,Ye,[e(u(g(l)(`preferences.dialog.reason`))+` `,1),n(v(`textarea`,{"onUpdate:modelValue":o[13]||=e=>O.value=e,rows:`2`,maxlength:`2000`},null,512),[[f,O.value]])])],8,je),A.value?(r(),b(`p`,Xe,u(A.value),1)):d(``,!0),v(`footer`,Ze,[v(`span`,null,u(g(l)(`preferences.dialog.pendingCopy`)),1),v(`div`,null,[v(`button`,{class:`secondary-action`,type:`button`,disabled:k.value,onClick:o[14]||=e=>h(`close`)},u(g(l)(`preferences.dialog.defer`)),9,Qe),v(`button`,{class:`primary-action`,type:`button`,disabled:k.value||!_.value,onClick:fe},[k.value?(r(),x(re,{key:0,variant:`inline`,label:g(l)(`preferences.dialog.processing`)},null,8,[`label`])):(r(),b(p,{key:1},[e(u(g(l)(`preferences.dialog.confirm`)),1)],64))],8,$e)])])])],40,he)):d(``,!0)}}),[[`__scopeId`,`data-v-7f6ac91a`]]),tt=[`aria-label`],nt={class:`writing-taste-milestone__copy`},rt={class:`writing-taste-milestone__heading`},it={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},at={class:`writing-taste-milestone__metrics`},ot=C(a({__name:`WritingTasteMilestone`,props:{profile:{}},setup(t){let n=t,i=c(()=>n.profile?.ready===!0),a=c(()=>n.profile?.status===`active`?l(`writingTaste.milestone.activeTitle`):n.profile?.status===`preview_ready`?l(`writingTaste.milestone.previewTitle`):l(`writingTaste.milestone.collectingTitle`)),s=c(()=>i.value?l(`writingTaste.milestone.readyCopy`):l(`writingTaste.milestone.collectingCopy`)),f=c(()=>{let e=n.profile?.readiness;if(!e)return 0;let t=[p(e.rule_count,e.thresholds.rule_count),p(e.evidence_count,e.thresholds.evidence_count),p(e.session_count,e.thresholds.session_count),p(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(t.reduce((e,t)=>e+t,0)/t.length*100)});function p(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(n,i)=>t.profile?(r(),b(`section`,{key:0,class:_([`writing-taste-milestone`,`status-${t.profile.status}`]),"aria-label":g(l)(`writingTaste.milestone.aria`)},[i[1]||=v(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[v(`span`),v(`span`),v(`span`)],-1),v(`div`,nt,[v(`div`,rt,[v(`h2`,null,u(a.value),1),v(`span`,null,u(g(l)(`writingTaste.status.${t.profile.status}`)),1)]),v(`p`,null,u(s.value),1),v(`div`,it,[v(`i`,{style:m({transform:`scaleX(${f.value/100})`})},null,4)]),v(`div`,at,[v(`small`,null,u(g(l)(`writingTaste.milestone.rules`,{current:t.profile.readiness.rule_count,target:t.profile.readiness.thresholds.rule_count})),1),v(`small`,null,u(g(l)(`writingTaste.milestone.sessions`,{current:t.profile.readiness.session_count,target:t.profile.readiness.thresholds.session_count})),1)])]),y(g(w),{class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:o(()=>[e(u(g(l)(`writingTaste.milestone.open`))+` `,1),i[0]||=v(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})],10,tt)):d(``,!0)}}),[[`__scopeId`,`data-v-fdae5c34`]]),st={class:`view vue-personal-profile`},ct=[`aria-label`],lt=[`aria-label`,`aria-pressed`],ut=[`aria-label`,`aria-pressed`],dt=[`aria-label`,`aria-pressed`],ft={key:0},pt={key:1},mt=[`aria-label`,`aria-pressed`],ht=[`aria-label`],gt={class:`personal-profile-toolbar`},_t={class:`personal-profile-filter-groups`},vt=[`aria-label`],yt=[`aria-pressed`,`onClick`],bt={class:`personal-profile-toolbar-actions`},xt={key:0,class:`muted`},St={key:1,class:`muted`},Ct={key:2,class:`muted`},wt=[`disabled`],Tt=[`aria-label`],Et={class:`preference-conflict-list`},Dt={class:`preference-conflict-card-heading`},Ot={class:`preference-conflict-pair`},kt={key:0},At={class:`preference-conflict-actions`},jt=[`disabled`,`onClick`],Mt=[`onClick`],Nt={key:1,class:`empty-state`},Pt={class:`personal-profile-table-head`,"aria-hidden":`true`},Ft=[`onClick`],It={class:`personal-profile-copy`},Lt={class:`personal-profile-origin`},Rt={class:`empty-state`},zt=C(a({__name:`PersonalProfilePage`,setup(n){let i=ne(),a=s(null),f=s(null),m=s(!1),te=oe(c(()=>m.value&&!a.value)),C=s(`all`),w=s(`all`),E=s(`all`),D=s(!1),I=s(null),L=s(null),z=s(null),B=s(null),V=s([]),H=s(``),U=0,W=null,G=c(()=>ue(a.value)),K=c(()=>de(G.value,V.value)),pe=c(()=>new Set(K.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),q=c(()=>new Set(V.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(fe))),J=c(()=>G.value.filter(e=>Ce(e)&&(E.value===`all`||M(e)===E.value))),Y=c(()=>JSON.stringify([C.value,w.value,E.value,D.value])),me=c(()=>I.value?J.value.findIndex(({id:e,itemKind:t})=>e===I.value?.id&&t===I.value?.itemKind):-1),X=c(()=>K.value.filter(({left:e,right:t})=>Ce(e)||Ce(t))),Z=c(()=>[[`all`,l(`preferences.profile.filters.all`)],[`taste`,l(`preferences.profile.filters.taste`)],[`personality`,l(`preferences.profile.filters.personality`)],[`judgment_preference`,l(`preferences.profile.filters.judgment`)]]),he=c(()=>{let e=new Map((i.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),t=[...new Set(G.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,ee()));return[{value:`all`,label:l(`preferences.profile.scopes.all`),meta:l(`common.counts.items`,{count:G.value.length})},{value:`global`,label:l(`preferences.profile.scopes.global`),meta:l(`common.counts.items`,{count:G.value.filter(({preferenceScope:e})=>e!==`project`).length})},...t.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:l(`preferences.profile.scopes.projectMeta`,{count:G.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),ge=c(()=>G.value.filter(e=>M(e)===`confirmed`).length),Q=c(()=>G.value.filter(e=>M(e)===`pending`).length),_e=c(()=>G.value.filter(e=>M(e)===`agent_confirmed`).length),ve=c(()=>D.value?l(`preferences.profile.summaryGuidance.conflicts`):E.value===`pending`?l(`preferences.profile.summaryGuidance.pending`):E.value===`confirmed`?l(`preferences.profile.summaryGuidance.confirmed`):E.value===`agent_confirmed`?l(`preferences.profile.summaryGuidance.agentConfirmed`):l(`preferences.profile.summaryGuidance.default`));S(()=>i.activePersonalSpace?.id,(e,t)=>{e!==t&&(a.value=null,f.value=null,V.value=[],I.value=null,L.value=null,z.value=null,B.value=null,w.value=`all`),e?$(e):(U+=1,W?.abort(),W=null,m.value=!1)},{immediate:!0}),h(()=>{U+=1,W?.abort(),W=null}),S([C,w,E,D],()=>{I.value&&!J.value.some(({id:e})=>e===I.value?.id)&&(I.value=null)}),S(he,e=>{e.some(({value:e})=>e===w.value)||(w.value=`all`)});async function $(e=i.activePersonalSpace?.id){if(!e)return;W?.abort();let t=++U,n=new AbortController;W=n,m.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),i=new URLSearchParams({personalSpaceId:e,limit:`500`}),[o,s,c]=await Promise.all([F(e,n.signal),T(`/api/preference-conflicts?${r}`,{signal:n.signal}),T(`/api/writing-taste-profile?${i}`,{signal:n.signal}).catch(()=>null)]);if(t!==U||n.signal.aborted)return;a.value=o,V.value=Array.isArray(s)?s:[],f.value=ye(c)?c:null,I.value&&=G.value.find(({id:e})=>e===I.value?.id)??null}catch(e){if(t!==U||n.signal.aborted)return;a.value=null,f.value=null,i.reportError(e)}finally{if(t!==U||n.signal.aborted)return;m.value=!1,W===n&&(W=null)}}function ye(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function be(e){let t=A(e),n=K.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${l(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${l(`preferences.profile.statusSuffix.conflict`)}`:q.value.has(e.id)?`${t} · ${l(`preferences.profile.statusSuffix.aiResolved`)}`:t}function xe(e){return`${e.itemKind}:${e.id}`}function Se(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return l(`preferences.shared.personalGlobal`);let t=i.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return l(`preferences.shared.projectOnly`,{project:t?.profile.name??e.preferenceProjectId})}function Ce(e){if(C.value!==`all`&&e.profileAspect!==C.value||w.value===`global`&&e.preferenceScope===`project`)return!1;if(w.value.startsWith(`project:`)){let t=w.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function we(e){if(e.scopeKey===`global`)return l(`preferences.shared.personalGlobal`);let t=e.scopeKey.slice(8),n=i.state?.personalProjects?.find(({project_id:e})=>e===t);return l(`preferences.shared.projectOnly`,{project:n?.profile.name??t})}function Te(e){C.value=e.profileAspect??`all`,w.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,D.value=!1,I.value=e}function Ee(e){B.value=null,z.value=e}function De(e){let t=!D.value&&E.value===e?`all`:e;D.value=!1,E.value=t,t!==`all`&&(I.value=J.value.at(0)??null)}function Oe(e=!1){let t=e||!D.value;D.value=t,t&&(E.value=`all`,I.value=null)}async function ke(e){let t=i.activePersonalSpace?.id;if(!(!t||e.aiRecord)){H.value=e.id;try{let n=await ie(`/api/preference-conflicts/defer`,{personalSpaceId:t,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:l(`preferences.profile.deferReason`)});V.value=[n,...V.value.filter(({id:e})=>e!==n.id)],i.notify(l(`preferences.profile.deferNotice`))}catch(e){i.reportError(e)}finally{H.value=``}}}return(n,s)=>(r(),b(`section`,st,[v(`div`,{class:`personal-profile-summary`,"aria-label":g(l)(`preferences.profile.summaryAria`)},[v(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":g(l)(`preferences.profile.summary.confirmedAria`,{count:ge.value}),"aria-pressed":!D.value&&E.value===`confirmed`,onClick:s[0]||=e=>De(`confirmed`)},[v(`strong`,null,u(ge.value),1),e(u(g(l)(`preferences.profile.summary.confirmed`))+` `,1),v(`small`,null,u(g(l)(`preferences.profile.summary.viewRecords`)),1)],8,lt),v(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":g(l)(`preferences.profile.summary.agentConfirmedAria`,{count:_e.value}),"aria-pressed":!D.value&&E.value===`agent_confirmed`,onClick:s[1]||=e=>De(`agent_confirmed`)},[v(`strong`,null,u(_e.value),1),e(u(g(l)(`preferences.profile.summary.agentConfirmed`))+` `,1),v(`small`,null,u(g(l)(`preferences.profile.summary.belowHuman`)),1)],8,ut),v(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":g(l)(`preferences.profile.summary.pendingAria`,{count:Q.value}),"aria-pressed":!D.value&&E.value===`pending`,onClick:s[2]||=e=>De(`pending`)},[v(`strong`,null,u(Q.value),1),e(u(g(l)(`preferences.profile.summary.pending`))+` `,1),Q.value?(r(),b(`small`,ft,u(g(l)(`preferences.profile.summary.reviewAndConfirm`)),1)):(r(),b(`small`,pt,u(g(l)(`preferences.profile.summary.viewRecords`)),1))],8,dt),v(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":K.value.length?g(l)(`preferences.profile.summary.conflictAria`,{count:K.value.length}):g(l)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":D.value,onClick:s[3]||=e=>Oe()},[v(`strong`,null,u(K.value.length),1),e(u(g(l)(`preferences.profile.summary.conflicts`))+` `,1),v(`small`,null,u(K.value.length?g(l)(`preferences.profile.summary.reviewAndHandle`):g(l)(`preferences.profile.summary.viewRecords`)),1)],8,mt),v(`p`,null,u(ve.value),1)],8,ct),K.value.length&&!D.value&&E.value===`all`?(r(),b(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":g(l)(`preferences.profile.alert.aria`)},[s[15]||=v(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),v(`div`,null,[v(`span`,null,u(g(l)(`preferences.profile.alert.kicker`)),1),v(`h2`,null,u(g(l)(`preferences.profile.alert.title`,{count:K.value.length})),1),v(`p`,null,u(g(l)(`preferences.profile.alert.copy`)),1)]),v(`button`,{class:`primary-action`,type:`button`,onClick:s[4]||=e=>Oe(!0)},u(g(l)(`preferences.profile.alert.action`)),1)],8,ht)):d(``,!0),y(ot,{profile:f.value},null,8,[`profile`]),v(`div`,gt,[v(`div`,_t,[v(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":g(l)(`preferences.profile.filters.aspectAria`)},[(r(!0),b(p,null,t(Z.value,([e,t])=>(r(),b(`button`,{key:e,type:`button`,"aria-pressed":C.value===e,onClick:t=>C.value=e},u(t),9,yt))),128))],8,vt),y(O,{modelValue:w.value,"onUpdate:modelValue":s[5]||=e=>w.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:g(l)(`preferences.profile.filters.scopeLabel`),options:he.value,"search-placeholder":g(l)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),v(`div`,bt,[D.value?(r(),b(`span`,xt,u(g(l)(`preferences.profile.filters.conflictsCount`,{visible:X.value.length,total:K.value.length})),1)):E.value===`all`?(r(),b(`span`,Ct,u(J.value.length===G.value.length?g(l)(`preferences.profile.filters.personalUnderstanding`,{count:G.value.length}):g(l)(`preferences.profile.filters.visibleCount`,{visible:J.value.length,total:G.value.length})),1)):(r(),b(`span`,St,u(g(l)(`preferences.profile.filters.reviewCount`,{count:J.value.length,status:E.value===`pending`?g(l)(`preferences.profile.summary.pending`):E.value===`agent_confirmed`?g(l)(`preferences.profile.summary.agentConfirmed`):g(l)(`preferences.profile.summary.confirmed`)})),1)),v(`button`,{class:`toolbar-action`,type:`button`,disabled:m.value,onClick:s[6]||=e=>$()},u(g(l)(`common.actions.refresh`)),9,wt)])]),m.value&&!g(te)&&!D.value?(r(),x(re,{key:1,variant:`inline`,label:g(l)(`preferences.profile.directory.loading`)},null,8,[`label`])):d(``,!0),g(te)?(r(),x(re,{key:2,label:g(l)(`preferences.profile.directory.loading`)},null,8,[`label`])):D.value?(r(),b(`section`,{key:3,class:`preference-conflict-workbench`,"aria-label":g(l)(`preferences.profile.workbench.aria`)},[v(`header`,null,[v(`div`,null,[s[16]||=v(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),v(`h2`,null,u(g(l)(`preferences.profile.workbench.title`)),1)]),v(`p`,null,u(g(l)(`preferences.profile.workbench.copy`)),1)]),v(`div`,Et,[(r(!0),b(p,null,t(X.value,(e,t)=>(r(),b(`article`,{key:e.id,class:`preference-conflict-card`},[v(`div`,Dt,[v(`div`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.group`,{index:t+1})),1),v(`h3`,null,u(e.preferenceKey),1)]),v(`div`,null,[v(`span`,null,u(we(e)),1),v(`strong`,null,u(e.aiRecord?g(l)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?g(l)(`preferences.profile.workbench.mergeSuggested`):g(l)(`preferences.profile.workbench.humanReview`)),1)])]),v(`div`,Ot,[v(`section`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.older`)),1),v(`strong`,null,u(e.left.title),1),v(`p`,null,u(g(R)(e.left)),1),v(`small`,null,u(g(N)(g(P)(e.left))),1)]),s[17]||=v(`i`,{"aria-hidden":`true`},`↔`,-1),v(`section`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.newer`)),1),v(`strong`,null,u(e.right.title),1),v(`p`,null,u(g(R)(e.right)),1),v(`small`,null,u(g(N)(g(P)(e.right))),1)])]),v(`footer`,null,[v(`div`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.reason`)),1),v(`p`,null,u(e.reason),1),e.difference.rightOnly.length?(r(),b(`small`,kt,u(g(l)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):d(``,!0)]),v(`div`,At,[v(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||H.value===e.id,onClick:t=>ke(e)},u(e.aiRecord?g(l)(`preferences.profile.workbench.deferred`):H.value===e.id?g(l)(`preferences.profile.workbench.deferring`):g(l)(`preferences.profile.workbench.defer`)),9,jt),v(`button`,{class:`primary-action`,type:`button`,onClick:t=>B.value=e},u(g(l)(`preferences.profile.workbench.handleNow`)),9,Mt)])])]))),128))]),m.value?(r(),x(re,{key:0,variant:`compact`,label:g(l)(`preferences.profile.workbench.loading`)},null,8,[`label`])):X.value.length?d(``,!0):(r(),b(`div`,Nt,u(K.value.length?g(l)(`preferences.profile.workbench.noFiltered`):g(l)(`preferences.profile.workbench.empty`)),1))],8,Tt)):(r(),b(`div`,{key:4,class:_([`personal-profile-layout`,{"has-selection":I.value}])},[y(ae,{class:`personal-profile-directory`,items:J.value,"row-height":76,"active-index":me.value,"reset-key":Y.value,"item-key":xe,label:g(l)(`preferences.profile.directory.aria`)},{header:o(()=>[v(`div`,Pt,[v(`span`,null,u(g(l)(`preferences.profile.directory.aspect`)),1),v(`span`,null,u(g(l)(`preferences.profile.directory.content`)),1),v(`span`,null,u(g(l)(`preferences.profile.directory.statusScopeSource`)),1),v(`span`,null,u(g(l)(`preferences.profile.directory.updated`)),1)])]),default:o(({item:e})=>[v(`button`,{class:_([`personal-profile-row`,{selected:I.value?.id===e.id,"pending-review":g(M)(e)===`pending`,"ai-resolved-conflict":q.value.has(e.id)}]),type:`button`,onClick:t=>I.value=e},[v(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},u(g(le)(e.profileAspect)),3),v(`span`,It,[v(`strong`,null,u(e.title),1),v(`small`,null,u(e.body),1)]),v(`span`,Lt,[v(`strong`,{class:_({"has-conflict":pe.value.has(e.id)})},u(be(e)),3),v(`small`,null,u(g(j)(e.originQuadrant))+` · `+u(Se(e))+` · `+u(g(l)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),v(`time`,null,u(g(N)(g(P)(e))),1)],10,Ft)]),empty:o(()=>[v(`div`,Rt,u(G.value.length?g(l)(`preferences.profile.directory.noFiltered`):g(l)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),y(k,{class:`personal-profile-inspector`,item:I.value,graph:a.value,editable:``,onConfirm:s[7]||=e=>L.value=e,onEdit:s[8]||=e=>z.value=e,onOpenReplacement:Te},null,8,[`item`,`graph`])],2)),y(ce,{item:z.value,"personal-space-id":g(i).activePersonalSpace?.id??``,"personal-project-id":null,projects:g(i).state?.personalProjects??[],"replacement-items":G.value,onClose:s[9]||=e=>z.value=null,onSaved:s[10]||=e=>$()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),y(se,{item:L.value,"personal-space-id":g(i).activePersonalSpace?.id??``,"personal-project-id":null,onClose:s[11]||=e=>L.value=null,onSaved:s[12]||=e=>$()},null,8,[`item`,`personal-space-id`]),y(et,{conflict:B.value,"personal-space-id":g(i).activePersonalSpace?.id??``,projects:g(i).state?.personalProjects??[],onClose:s[13]||=e=>B.value=null,onResolved:s[14]||=e=>$(),onEdit:Ee},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7ff17558`]]);export{zt as default};
|
|
1
|
+
import{C as e,F as t,H as n,N as r,R as i,T as a,V as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,it as m,j as h,n as ee,nt as g,rt as _,u as te,v,w as y,x as b,y as x,z as S}from"./i18n-BtOOoyJd.js";import{t as ne}from"./console--CZxc3PW.js";import{t as re}from"./GrowthLoading-Bu_kH-I8.js";import{t as C}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as w}from"./vue-router-JFYBLXB1.js";import{i as ie,n as T,r as E}from"./client-CEHkJJ-5.js";import{t as D}from"./useModalDialog-CroGk2Cs.js";import{t as O}from"./SearchableSelect-BZtyYmZN.js";import{n as ae,t as k}from"./KnowledgeInspector-Ct5hl2--.js";import{i as oe,n as se,t as ce}from"./KnowledgeEditDialog-BTwXXRCD.js";import{C as le,D as A,E as j,_ as M,u as N,v as P,x as ue}from"./model-CGpllrds.js";import{t as F}from"./personal-profile-graph-BNTG4PSY.js";function de(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(!W(a,o)||!G(a,o)||K(a,o))continue;let[s,c]=pe(a,o),u=V(R(s),R(c)),d=U(u)?`complementary`:`review`,f=t.find(e=>e.status===`ai_pending`&&I(e,s,c))??null;n.push({id:J(s,c),preferenceKey:L(s),scopeKey:z(s),scopeLabel:B(s),left:s,right:c,difference:u,relation:d,recommendedAction:d===`complementary`?`merge`:null,reason:l(`preferences.shared.conflictReason`,{key:L(s)}),aiRecord:f})}return n.sort((e,t)=>{let n=ee();return e.scopeKey.localeCompare(t.scopeKey,n)||e.preferenceKey.localeCompare(t.preferenceKey,n)})}function fe(e){return[e.left_item_id,e.right_item_id]}function I(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 L(e){let t=e.raw.attributes??{};return String(t.preferenceKey??t.preference_key??e.title).trim()}function R(e){return e.body.trim()}function z(e){return e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`}function B(e){return e.preferenceScope===`project`&&e.preferenceProjectId?l(`preferences.shared.projectScope`,{project:e.preferenceProjectId}):l(`preferences.shared.personalGlobal`)}function V(e,t){let n=Y(e),r=Y(t),i=new Set,a=[],o=[];for(let e of n){let t=r.findIndex((t,n)=>!i.has(n)&&me(e,t));if(t<0){o.push(e);continue}i.add(t),a.push(X(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 H(e,t){let n=[...Y(e)];for(let e of Y(t)){let t=n.findIndex(t=>me(t,e));if(t<0){n.push(e);continue}n[t]=X(n[t],e)}if(!n.length)return``;let r=n.some(e=>e.length>24)?`;`:`、`;return n.join(r)}function U(e){return e.shared.length>0&&(e.leftOnly.length===0||e.rightOnly.length===0)}function W(e,t){return z(e)===z(t)}function G(e,t){return Z(L(e))===Z(L(t))}function K(e,t){return Z(R(e))===Z(R(t))}function pe(e,t){let n=q(e),r=q(t);return n===r?e.id.localeCompare(t.id)<=0?[e,t]:[t,e]:n<=r?[e,t]:[t,e]}function q(e){let t=P(e);if(!t)return 0;let n=new Date(t).getTime();return Number.isNaN(n)?0:n}function J(e,t){return[e.itemKind,e.id,t.itemKind,t.id].join(`:`)}function Y(e){return e.split(/[\n\r,,、;;。.!!??]+/u).map(e=>e.trim()).filter(Boolean)}function me(e,t){let n=Z(e),r=Z(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 X(e,t){return Z(e).length>=Z(t).length?e:t}function Z(e){return String(e??``).trim().toLocaleLowerCase().replace(/[“”‘’"'`]/gu,``).replace(/\s+/gu,` `)}var he=[`aria-labelledby`],ge={class:`project-dialog-shell conflict-resolution-shell`},Q={class:`project-dialog-header`},_e=[`id`],ve=[`disabled`],$=[`aria-label`],ye=[`aria-label`],be={class:`conflict-side conflict-side-left`},xe={class:`conflict-side-heading`},Se={class:`conflict-side conflict-side-right`},Ce={class:`conflict-side-heading`},we=[`aria-label`],Te={key:0},Ee={key:1,class:`muted`},De={key:0},Oe={key:1,class:`muted`},ke={key:0},Ae={key:1,class:`muted`},je=[`disabled`],Me=[`aria-label`],Ne=[`aria-pressed`],Pe={key:0},Fe=[`aria-pressed`],Ie=[`aria-pressed`],Le=[`disabled`,`aria-pressed`],Re={key:0,class:`conflict-resolution-detail`},ze=[`aria-label`],Be=[`aria-pressed`],Ve=[`aria-pressed`],He={key:1,class:`conflict-resolution-detail`},Ue=[`aria-label`],We=[`aria-pressed`],Ge=[`aria-pressed`],Ke={value:``,disabled:``},qe=[`value`],Je={class:`conflict-impact-preview`},Ye={class:`conflict-resolution-reason`},Xe={key:0,class:`dialog-error`},Ze={class:`project-dialog-actions conflict-resolution-actions`},Qe=[`disabled`],$e=[`disabled`],et=C(a({__name:`PreferenceConflictDialog`,props:{conflict:{},personalSpaceId:{},projects:{}},emits:[`close`,`resolved`,`edit`],setup(a,{emit:o}){let m=a,h=o,ee=ne(),_=s(null),y=s(`right`),C=s(`right`),w=s(``),T=s(``),O=s(``),ae=s(``),k=s(!1),oe=i(),{dialogRef:se,onCancel:ce,onKeydown:le}=D(()=>!!m.conflict,()=>{k.value||h(`close`)}),A=s(``),j=c(()=>{let e=m.conflict;if(!e)return[];let t=C.value===`left`?e.left:e.right;return m.projects.filter(({project_id:e})=>t.preferenceScope!==`project`||e!==t.preferenceProjectId)}),M=c(()=>j.value.length>0),ue=c(()=>{let e=m.conflict;if(!e||!_.value)return l(`preferences.dialog.impact.choose`);if(_.value===`merge`){let t=y.value===`left`?e.left:e.right,n=y.value===`left`?e.right:e.left;return l(`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 l(`preferences.dialog.impact.keep`,{kept:t.title,historical:n.title})}let t=C.value===`left`?e.left:e.right,n=j.value.find(({project_id:e})=>e===w.value);return n?l(`preferences.dialog.impact.split`,{item:t.title,project:n.profile.name}):l(`preferences.dialog.impact.chooseProject`)});S(()=>m.conflict,e=>{e&&(y.value=`right`,C.value=`right`,T.value=H(R(e.right),R(e.left)),_.value=e.recommendedAction,w.value=``,A.value=``,de(e.recommendedAction))},{immediate:!0}),S([C,j],()=>{w.value&&j.value.some(({project_id:e})=>e===w.value)||(w.value=j.value[0]?.project_id??``)},{immediate:!0});function F(e){k.value||(_.value=e,(!O.value.trim()||O.value===ae.value)&&de(e))}function de(e){let t=m.conflict,n=t&&e?V(e,t):``;ae.value=n,O.value=n}async function fe(){if(k.value)return;let e=m.conflict;if(!e||!_.value)return U(l(`preferences.dialog.errors.actionRequired`));if(!O.value.trim())return U(l(`preferences.dialog.errors.reasonRequired`));if(_.value===`merge`&&!T.value.trim())return U(l(`preferences.dialog.errors.mergedValueRequired`));if(_.value===`split_scope`&&!w.value)return U(l(`preferences.dialog.errors.projectRequired`));let t=_.value,n=O.value.trim(),r=m.personalSpaceId;k.value=!0,A.value=``;try{t===`merge`?await I(e):t===`split_scope`?await z(e):await L(e,t),e.aiRecord&&await ie(`/api/preference-conflicts/${encodeURIComponent(e.aiRecord.id)}/complete`,{personalSpaceId:r,resolution:t,reason:n}),ee.notify(l(`preferences.dialog.resolved`)),h(`resolved`),h(`close`)}catch(e){A.value=e instanceof Error?e.message:l(`preferences.dialog.errors.failed`),ee.reportError(e)}finally{k.value=!1}}async function I(e){let t=O.value.trim(),n=m.personalSpaceId,r=y.value===`left`?e.left:e.right,i=y.value===`left`?e.right:e.left,a={personalSpaceId:n,personalProjectId:null,action:`update`,reason:t};r.itemKind===`entity`?(a.name=r.title,a.summary=T.value.trim()):a.fact=T.value.trim(),r.classificationExplicit&&r.originQuadrant!==`unclassified`&&(a.originQuadrant=r.originQuadrant,a.confirmationStatus=`confirmed`,a.confirmationBasis={existenceReason:l(`preferences.dialog.audit.mergedFromConflict`,{reason:e.reason}),quadrantReason:r.confirmationBasis?.quadrant_reason||r.reasoningSummary||l(`preferences.dialog.audit.keepQuadrant`),proposedBy:r.confirmationBasis?.proposed_by?B(r.confirmationBasis.proposed_by):{kind:`import`,label:l(`preferences.dialog.audit.historicalRecord`)},confirmedBy:{kind:`user`,label:l(`preferences.dialog.audit.user`)},confirmedAt:new Date().toISOString()}),await E(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,a),await E(`/api/knowledge/${i.itemKind}/${encodeURIComponent(i.id)}`,{personalSpaceId:n,personalProjectId:null,action:`invalidate`,reason:t,replacementItemId:r.id,replacementItemKind:r.itemKind})}async function L(e,t){let n=t===`keep_left`?e.left:e.right,r=t===`keep_left`?e.right:e.left;await E(`/api/knowledge/${r.itemKind}/${encodeURIComponent(r.id)}`,{personalSpaceId:m.personalSpaceId,personalProjectId:null,action:`invalidate`,reason:O.value.trim(),replacementItemId:n.id,replacementItemKind:n.itemKind})}async function z(e){let t=C.value===`left`?e.left:e.right;await ie(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}/preference-scope`,{personalSpaceId:m.personalSpaceId,scope:`project`,projectId:w.value,reason:O.value.trim()})}function B(e){return{kind:e.kind,label:e.label??null}}function V(e,t){return e===`merge`?l(`preferences.dialog.defaultReason.merge`):e===`keep_left`?l(`preferences.dialog.defaultReason.keepLeft`,{title:t.left.title}):e===`keep_right`?l(`preferences.dialog.defaultReason.keepRight`,{title:t.right.title}):l(`preferences.dialog.defaultReason.split`)}function U(e){A.value=e}return(i,o)=>a.conflict?(r(),b(`dialog`,{key:0,ref_key:`dialogRef`,ref:se,"aria-modal":`true`,"aria-labelledby":g(oe),onCancel:o[15]||=(...e)=>g(ce)&&g(ce)(...e),onKeydown:o[16]||=(...e)=>g(le)&&g(le)(...e),class:`project-dialog conflict-resolution-dialog vue-dialog`},[v(`div`,ge,[v(`header`,Q,[v(`div`,null,[v(`h3`,{id:g(oe)},u(g(l)(`preferences.dialog.title`)),9,_e),v(`p`,null,u(g(l)(`preferences.dialog.intro`,{reason:a.conflict.reason})),1)]),v(`button`,{class:`secondary-action`,type:`button`,disabled:k.value,onClick:o[0]||=e=>h(`close`)},u(g(l)(`common.actions.close`)),9,ve)]),v(`section`,{class:`conflict-pair-context`,"aria-label":g(l)(`preferences.dialog.basisAria`)},[v(`span`,null,[e(u(g(l)(`preferences.dialog.preferenceKey`))+` `,1),v(`strong`,null,u(a.conflict.preferenceKey),1)]),v(`span`,null,[e(u(g(l)(`preferences.dialog.effectiveScope`))+` `,1),v(`strong`,null,u(a.conflict.scopeLabel),1)]),v(`span`,null,[e(u(g(l)(`preferences.dialog.suggestion`))+` `,1),v(`strong`,null,u(a.conflict.recommendedAction===`merge`?g(l)(`preferences.dialog.mergeSuggestion`):g(l)(`preferences.dialog.reviewSuggestion`)),1)])],8,$),v(`section`,{class:`conflict-comparison`,"aria-label":g(l)(`preferences.dialog.comparisonAria`)},[v(`article`,be,[v(`div`,xe,[v(`span`,null,u(g(l)(`preferences.dialog.older`)),1),v(`time`,null,u(g(N)(g(P)(a.conflict.left))),1)]),v(`h4`,null,u(a.conflict.left.title),1),v(`p`,null,u(g(R)(a.conflict.left)),1),v(`small`,null,u(g(l)(`preferences.dialog.sourceCount`,{count:a.conflict.left.evidence.length}))+` · `+u(a.conflict.left.id),1),v(`button`,{class:`text-action`,type:`button`,onClick:o[1]||=e=>h(`edit`,a.conflict.left)},u(g(l)(`preferences.dialog.editA`)),1)]),v(`article`,Se,[v(`div`,Ce,[v(`span`,null,u(g(l)(`preferences.dialog.newer`)),1),v(`time`,null,u(g(N)(g(P)(a.conflict.right))),1)]),v(`h4`,null,u(a.conflict.right.title),1),v(`p`,null,u(g(R)(a.conflict.right)),1),v(`small`,null,u(g(l)(`preferences.dialog.sourceCount`,{count:a.conflict.right.evidence.length}))+` · `+u(a.conflict.right.id),1),v(`button`,{class:`text-action`,type:`button`,onClick:o[2]||=e=>h(`edit`,a.conflict.right)},u(g(l)(`preferences.dialog.editB`)),1)])],8,ye),v(`section`,{class:`conflict-difference`,"aria-label":g(l)(`preferences.dialog.differenceAria`)},[v(`div`,null,[v(`span`,null,u(g(l)(`preferences.dialog.shared`)),1),a.conflict.difference.shared.length?(r(),b(`p`,Te,[(r(!0),b(p,null,t(a.conflict.difference.shared,e=>(r(),b(`b`,{key:e},u(e),1))),128))])):(r(),b(`p`,Ee,u(g(l)(`preferences.dialog.noShared`)),1))]),v(`div`,null,[v(`span`,null,u(g(l)(`preferences.dialog.onlyA`)),1),a.conflict.difference.leftOnly.length?(r(),b(`p`,De,[(r(!0),b(p,null,t(a.conflict.difference.leftOnly,e=>(r(),b(`b`,{key:e},u(e),1))),128))])):(r(),b(`p`,Oe,u(g(l)(`preferences.dialog.noUnique`)),1))]),v(`div`,null,[v(`span`,null,u(g(l)(`preferences.dialog.onlyB`)),1),a.conflict.difference.rightOnly.length?(r(),b(`p`,ke,[(r(!0),b(p,null,t(a.conflict.difference.rightOnly,e=>(r(),b(`b`,{key:e},u(e),1))),128))])):(r(),b(`p`,Ae,u(g(l)(`preferences.dialog.noUnique`)),1))])],8,we),v(`fieldset`,{class:`conflict-inputs`,disabled:k.value},[v(`section`,{class:`conflict-resolution-options`,"aria-label":g(l)(`preferences.dialog.actionsAria`)},[v(`button`,{type:`button`,"aria-pressed":_.value===`merge`,onClick:o[3]||=e=>F(`merge`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.merge`)),1),v(`span`,null,u(g(l)(`preferences.dialog.actions.mergeCopy`)),1),a.conflict.recommendedAction===`merge`?(r(),b(`em`,Pe,u(g(l)(`preferences.dialog.actions.recommended`)),1)):d(``,!0)],8,Ne),v(`button`,{type:`button`,"aria-pressed":_.value===`keep_left`,onClick:o[4]||=e=>F(`keep_left`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.keepA`)),1),v(`span`,null,u(g(l)(`preferences.dialog.actions.keepACopy`)),1)],8,Fe),v(`button`,{type:`button`,"aria-pressed":_.value===`keep_right`,onClick:o[5]||=e=>F(`keep_right`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.keepB`)),1),v(`span`,null,u(g(l)(`preferences.dialog.actions.keepBCopy`)),1)],8,Ie),v(`button`,{type:`button`,disabled:!M.value,"aria-pressed":_.value===`split_scope`,onClick:o[6]||=e=>F(`split_scope`)},[v(`strong`,null,u(g(l)(`preferences.dialog.actions.split`)),1),v(`span`,null,u(M.value?g(l)(`preferences.dialog.actions.splitCopy`):g(l)(`preferences.dialog.actions.noProjects`)),1)],8,Le)],8,Me),_.value===`merge`?(r(),b(`section`,Re,[v(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":g(l)(`preferences.dialog.mergeIdentityAria`)},[v(`span`,null,u(g(l)(`preferences.dialog.canonicalIdentity`)),1),v(`button`,{type:`button`,"aria-pressed":y.value===`left`,onClick:o[7]||=e=>y.value=`left`},u(g(l)(`preferences.dialog.identityA`)),9,Be),v(`button`,{type:`button`,"aria-pressed":y.value===`right`,onClick:o[8]||=e=>y.value=`right`},u(g(l)(`preferences.dialog.identityB`)),9,Ve)],8,ze),v(`label`,null,[e(u(g(l)(`preferences.dialog.mergedContent`))+` `,1),n(v(`textarea`,{"onUpdate:modelValue":o[9]||=e=>T.value=e,rows:`4`,maxlength:`4096`},null,512),[[f,T.value]])])])):d(``,!0),_.value===`split_scope`?(r(),b(`section`,He,[v(`div`,{class:`conflict-inline-options`,role:`group`,"aria-label":g(l)(`preferences.dialog.splitRecordAria`)},[v(`span`,null,u(g(l)(`preferences.dialog.adjustRecord`)),1),v(`button`,{type:`button`,"aria-pressed":C.value===`left`,onClick:o[10]||=e=>C.value=`left`},` A `,8,We),v(`button`,{type:`button`,"aria-pressed":C.value===`right`,onClick:o[11]||=e=>C.value=`right`},` B `,8,Ge)],8,Ue),v(`label`,null,[e(u(g(l)(`preferences.dialog.projectOnly`))+` `,1),n(v(`select`,{"onUpdate:modelValue":o[12]||=e=>w.value=e},[v(`option`,Ke,u(g(l)(`preferences.dialog.chooseProject`)),1),(r(!0),b(p,null,t(j.value,e=>(r(),b(`option`,{key:e.project_id,value:e.project_id},u(e.profile.name),9,qe))),128))],512),[[te,w.value]])])])):d(``,!0),v(`section`,Je,[v(`span`,null,u(g(l)(`preferences.dialog.impactTitle`)),1),v(`p`,null,u(ue.value),1)]),v(`label`,Ye,[e(u(g(l)(`preferences.dialog.reason`))+` `,1),n(v(`textarea`,{"onUpdate:modelValue":o[13]||=e=>O.value=e,rows:`2`,maxlength:`2000`},null,512),[[f,O.value]])])],8,je),A.value?(r(),b(`p`,Xe,u(A.value),1)):d(``,!0),v(`footer`,Ze,[v(`span`,null,u(g(l)(`preferences.dialog.pendingCopy`)),1),v(`div`,null,[v(`button`,{class:`secondary-action`,type:`button`,disabled:k.value,onClick:o[14]||=e=>h(`close`)},u(g(l)(`preferences.dialog.defer`)),9,Qe),v(`button`,{class:`primary-action`,type:`button`,disabled:k.value||!_.value,onClick:fe},[k.value?(r(),x(re,{key:0,variant:`inline`,label:g(l)(`preferences.dialog.processing`)},null,8,[`label`])):(r(),b(p,{key:1},[e(u(g(l)(`preferences.dialog.confirm`)),1)],64))],8,$e)])])])],40,he)):d(``,!0)}}),[[`__scopeId`,`data-v-7f6ac91a`]]),tt=[`aria-label`],nt={class:`writing-taste-milestone__copy`},rt={class:`writing-taste-milestone__heading`},it={class:`writing-taste-milestone__progress`,"aria-hidden":`true`},at={class:`writing-taste-milestone__metrics`},ot=C(a({__name:`WritingTasteMilestone`,props:{profile:{}},setup(t){let n=t,i=c(()=>n.profile?.ready===!0),a=c(()=>n.profile?.status===`active`?l(`writingTaste.milestone.activeTitle`):n.profile?.status===`preview_ready`?l(`writingTaste.milestone.previewTitle`):l(`writingTaste.milestone.collectingTitle`)),s=c(()=>i.value?l(`writingTaste.milestone.readyCopy`):l(`writingTaste.milestone.collectingCopy`)),f=c(()=>{let e=n.profile?.readiness;if(!e)return 0;let t=[p(e.rule_count,e.thresholds.rule_count),p(e.evidence_count,e.thresholds.evidence_count),p(e.session_count,e.thresholds.session_count),p(e.observation_day_count,e.thresholds.observation_day_count)];return Math.round(t.reduce((e,t)=>e+t,0)/t.length*100)});function p(e,t){return t<=0?1:Math.min(Math.max(e/t,0),1)}return(n,i)=>t.profile?(r(),b(`section`,{key:0,class:_([`writing-taste-milestone`,`status-${t.profile.status}`]),"aria-label":g(l)(`writingTaste.milestone.aria`)},[i[1]||=v(`div`,{class:`writing-taste-milestone__mark`,"aria-hidden":`true`},[v(`span`),v(`span`),v(`span`)],-1),v(`div`,nt,[v(`div`,rt,[v(`h2`,null,u(a.value),1),v(`span`,null,u(g(l)(`writingTaste.status.${t.profile.status}`)),1)]),v(`p`,null,u(s.value),1),v(`div`,it,[v(`i`,{style:m({transform:`scaleX(${f.value/100})`})},null,4)]),v(`div`,at,[v(`small`,null,u(g(l)(`writingTaste.milestone.rules`,{current:t.profile.readiness.rule_count,target:t.profile.readiness.thresholds.rule_count})),1),v(`small`,null,u(g(l)(`writingTaste.milestone.sessions`,{current:t.profile.readiness.session_count,target:t.profile.readiness.thresholds.session_count})),1)])]),y(g(w),{class:`writing-taste-milestone__action`,to:`/preferences/writing`},{default:o(()=>[e(u(g(l)(`writingTaste.milestone.open`))+` `,1),i[0]||=v(`span`,{"aria-hidden":`true`},`→`,-1)]),_:1})],10,tt)):d(``,!0)}}),[[`__scopeId`,`data-v-fdae5c34`]]),st={class:`view vue-personal-profile`},ct=[`aria-label`],lt=[`aria-label`,`aria-pressed`],ut=[`aria-label`,`aria-pressed`],dt=[`aria-label`,`aria-pressed`],ft={key:0},pt={key:1},mt=[`aria-label`,`aria-pressed`],ht=[`aria-label`],gt={class:`personal-profile-toolbar`},_t={class:`personal-profile-filter-groups`},vt=[`aria-label`],yt=[`aria-pressed`,`onClick`],bt={class:`personal-profile-toolbar-actions`},xt={key:0,class:`muted`},St={key:1,class:`muted`},Ct={key:2,class:`muted`},wt=[`disabled`],Tt=[`aria-label`],Et={class:`preference-conflict-list`},Dt={class:`preference-conflict-card-heading`},Ot={class:`preference-conflict-pair`},kt={key:0},At={class:`preference-conflict-actions`},jt=[`disabled`,`onClick`],Mt=[`onClick`],Nt={key:1,class:`empty-state`},Pt={class:`personal-profile-table-head`,"aria-hidden":`true`},Ft=[`onClick`],It={class:`personal-profile-copy`},Lt={class:`personal-profile-origin`},Rt={class:`empty-state`},zt=C(a({__name:`PersonalProfilePage`,setup(n){let i=ne(),a=s(null),f=s(null),m=s(!1),te=oe(c(()=>m.value&&!a.value)),C=s(`all`),w=s(`all`),E=s(`all`),D=s(!1),I=s(null),L=s(null),z=s(null),B=s(null),V=s([]),H=s(``),U=0,W=null,G=c(()=>ue(a.value)),K=c(()=>de(G.value,V.value)),pe=c(()=>new Set(K.value.flatMap(({left:e,right:t})=>[e.id,t.id]))),q=c(()=>new Set(V.value.filter(({status:e,resolved_by:t})=>e===`resolved`&&t===`agent`).flatMap(fe))),J=c(()=>G.value.filter(e=>Ce(e)&&(E.value===`all`||M(e)===E.value))),Y=c(()=>JSON.stringify([C.value,w.value,E.value,D.value])),me=c(()=>I.value?J.value.findIndex(({id:e,itemKind:t})=>e===I.value?.id&&t===I.value?.itemKind):-1),X=c(()=>K.value.filter(({left:e,right:t})=>Ce(e)||Ce(t))),Z=c(()=>[[`all`,l(`preferences.profile.filters.all`)],[`taste`,l(`preferences.profile.filters.taste`)],[`personality`,l(`preferences.profile.filters.personality`)],[`judgment_preference`,l(`preferences.profile.filters.judgment`)]]),he=c(()=>{let e=new Map((i.state?.personalProjects??[]).map(e=>[e.project_id,e.profile.name])),t=[...new Set(G.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,ee()));return[{value:`all`,label:l(`preferences.profile.scopes.all`),meta:l(`common.counts.items`,{count:G.value.length})},{value:`global`,label:l(`preferences.profile.scopes.global`),meta:l(`common.counts.items`,{count:G.value.filter(({preferenceScope:e})=>e!==`project`).length})},...t.map(t=>({value:`project:${t}`,label:e.get(t)??t,meta:l(`preferences.profile.scopes.projectMeta`,{count:G.value.filter(({preferenceScope:e,preferenceProjectId:n})=>e===`project`&&n===t).length}),search:t}))]}),ge=c(()=>G.value.filter(e=>M(e)===`confirmed`).length),Q=c(()=>G.value.filter(e=>M(e)===`pending`).length),_e=c(()=>G.value.filter(e=>M(e)===`agent_confirmed`).length),ve=c(()=>D.value?l(`preferences.profile.summaryGuidance.conflicts`):E.value===`pending`?l(`preferences.profile.summaryGuidance.pending`):E.value===`confirmed`?l(`preferences.profile.summaryGuidance.confirmed`):E.value===`agent_confirmed`?l(`preferences.profile.summaryGuidance.agentConfirmed`):l(`preferences.profile.summaryGuidance.default`));S(()=>i.activePersonalSpace?.id,(e,t)=>{e!==t&&(a.value=null,f.value=null,V.value=[],I.value=null,L.value=null,z.value=null,B.value=null,w.value=`all`),e?$(e):(U+=1,W?.abort(),W=null,m.value=!1)},{immediate:!0}),h(()=>{U+=1,W?.abort(),W=null}),S([C,w,E,D],()=>{I.value&&!J.value.some(({id:e})=>e===I.value?.id)&&(I.value=null)}),S(he,e=>{e.some(({value:e})=>e===w.value)||(w.value=`all`)});async function $(e=i.activePersonalSpace?.id){if(!e)return;W?.abort();let t=++U,n=new AbortController;W=n,m.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),i=new URLSearchParams({personalSpaceId:e,limit:`500`}),[o,s,c]=await Promise.all([F(e,n.signal),T(`/api/preference-conflicts?${r}`,{signal:n.signal}),T(`/api/writing-taste-profile?${i}`,{signal:n.signal}).catch(()=>null)]);if(t!==U||n.signal.aborted)return;a.value=o,V.value=Array.isArray(s)?s:[],f.value=ye(c)?c:null,I.value&&=G.value.find(({id:e})=>e===I.value?.id)??null}catch(e){if(t!==U||n.signal.aborted)return;a.value=null,f.value=null,i.reportError(e)}finally{if(t!==U||n.signal.aborted)return;m.value=!1,W===n&&(W=null)}}function ye(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function be(e){let t=A(e),n=K.value.find(({left:t,right:n})=>t.id===e.id||n.id===e.id);return n?.aiRecord?`${t} · ${l(`preferences.profile.statusSuffix.aiPending`)}`:n?`${t} · ${l(`preferences.profile.statusSuffix.conflict`)}`:q.value.has(e.id)?`${t} · ${l(`preferences.profile.statusSuffix.aiResolved`)}`:t}function xe(e){return`${e.itemKind}:${e.id}`}function Se(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return l(`preferences.shared.personalGlobal`);let t=i.state?.personalProjects?.find(({project_id:t})=>t===e.preferenceProjectId);return l(`preferences.shared.projectOnly`,{project:t?.profile.name??e.preferenceProjectId})}function Ce(e){if(C.value!==`all`&&e.profileAspect!==C.value||w.value===`global`&&e.preferenceScope===`project`)return!1;if(w.value.startsWith(`project:`)){let t=w.value.slice(8);return e.preferenceScope===`project`&&e.preferenceProjectId===t}return!0}function we(e){if(e.scopeKey===`global`)return l(`preferences.shared.personalGlobal`);let t=e.scopeKey.slice(8),n=i.state?.personalProjects?.find(({project_id:e})=>e===t);return l(`preferences.shared.projectOnly`,{project:n?.profile.name??t})}function Te(e){C.value=e.profileAspect??`all`,w.value=e.preferenceScope===`project`&&e.preferenceProjectId?`project:${e.preferenceProjectId}`:`global`,D.value=!1,I.value=e}function Ee(e){B.value=null,z.value=e}function De(e){let t=!D.value&&E.value===e?`all`:e;D.value=!1,E.value=t,t!==`all`&&(I.value=J.value.at(0)??null)}function Oe(e=!1){let t=e||!D.value;D.value=t,t&&(E.value=`all`,I.value=null)}async function ke(e){let t=i.activePersonalSpace?.id;if(!(!t||e.aiRecord)){H.value=e.id;try{let n=await ie(`/api/preference-conflicts/defer`,{personalSpaceId:t,conflictId:e.id,preferenceKey:e.preferenceKey,preferenceScope:e.left.preferenceScope??`global`,preferenceProjectId:e.left.preferenceProjectId,leftItemId:e.left.id,leftItemKind:e.left.itemKind,rightItemId:e.right.id,rightItemKind:e.right.itemKind,reason:l(`preferences.profile.deferReason`)});V.value=[n,...V.value.filter(({id:e})=>e!==n.id)],i.notify(l(`preferences.profile.deferNotice`))}catch(e){i.reportError(e)}finally{H.value=``}}}return(n,s)=>(r(),b(`section`,st,[v(`div`,{class:`personal-profile-summary`,"aria-label":g(l)(`preferences.profile.summaryAria`)},[v(`button`,{type:`button`,class:`profile-summary-action state-confirmed`,"aria-label":g(l)(`preferences.profile.summary.confirmedAria`,{count:ge.value}),"aria-pressed":!D.value&&E.value===`confirmed`,onClick:s[0]||=e=>De(`confirmed`)},[v(`strong`,null,u(ge.value),1),e(u(g(l)(`preferences.profile.summary.confirmed`))+` `,1),v(`small`,null,u(g(l)(`preferences.profile.summary.viewRecords`)),1)],8,lt),v(`button`,{type:`button`,class:`profile-summary-action state-agent-confirmed`,"aria-label":g(l)(`preferences.profile.summary.agentConfirmedAria`,{count:_e.value}),"aria-pressed":!D.value&&E.value===`agent_confirmed`,onClick:s[1]||=e=>De(`agent_confirmed`)},[v(`strong`,null,u(_e.value),1),e(u(g(l)(`preferences.profile.summary.agentConfirmed`))+` `,1),v(`small`,null,u(g(l)(`preferences.profile.summary.belowHuman`)),1)],8,ut),v(`button`,{type:`button`,class:`profile-summary-action state-pending`,"aria-label":g(l)(`preferences.profile.summary.pendingAria`,{count:Q.value}),"aria-pressed":!D.value&&E.value===`pending`,onClick:s[2]||=e=>De(`pending`)},[v(`strong`,null,u(Q.value),1),e(u(g(l)(`preferences.profile.summary.pending`))+` `,1),Q.value?(r(),b(`small`,ft,u(g(l)(`preferences.profile.summary.reviewAndConfirm`)),1)):(r(),b(`small`,pt,u(g(l)(`preferences.profile.summary.viewRecords`)),1))],8,dt),v(`button`,{type:`button`,class:`profile-summary-action state-conflict`,"aria-label":K.value.length?g(l)(`preferences.profile.summary.conflictAria`,{count:K.value.length}):g(l)(`preferences.profile.summary.noConflictsAria`),"aria-pressed":D.value,onClick:s[3]||=e=>Oe()},[v(`strong`,null,u(K.value.length),1),e(u(g(l)(`preferences.profile.summary.conflicts`))+` `,1),v(`small`,null,u(K.value.length?g(l)(`preferences.profile.summary.reviewAndHandle`):g(l)(`preferences.profile.summary.viewRecords`)),1)],8,mt),v(`p`,null,u(ve.value),1)],8,ct),K.value.length&&!D.value&&E.value===`all`?(r(),b(`section`,{key:0,class:`preference-conflict-alert`,"aria-label":g(l)(`preferences.profile.alert.aria`)},[s[15]||=v(`div`,{class:`preference-conflict-alert-icon`,"aria-hidden":`true`},`!`,-1),v(`div`,null,[v(`span`,null,u(g(l)(`preferences.profile.alert.kicker`)),1),v(`h2`,null,u(g(l)(`preferences.profile.alert.title`,{count:K.value.length})),1),v(`p`,null,u(g(l)(`preferences.profile.alert.copy`)),1)]),v(`button`,{class:`primary-action`,type:`button`,onClick:s[4]||=e=>Oe(!0)},u(g(l)(`preferences.profile.alert.action`)),1)],8,ht)):d(``,!0),y(ot,{profile:f.value},null,8,[`profile`]),v(`div`,gt,[v(`div`,_t,[v(`div`,{class:`personal-profile-filters`,role:`group`,"aria-label":g(l)(`preferences.profile.filters.aspectAria`)},[(r(!0),b(p,null,t(Z.value,([e,t])=>(r(),b(`button`,{key:e,type:`button`,"aria-pressed":C.value===e,onClick:t=>C.value=e},u(t),9,yt))),128))],8,vt),y(O,{modelValue:w.value,"onUpdate:modelValue":s[5]||=e=>w.value=e,class:`personal-profile-scope-filter`,"control-id":`personal-profile-scope`,label:g(l)(`preferences.profile.filters.scopeLabel`),options:he.value,"search-placeholder":g(l)(`preferences.profile.filters.scopeSearch`)},null,8,[`modelValue`,`label`,`options`,`search-placeholder`])]),v(`div`,bt,[D.value?(r(),b(`span`,xt,u(g(l)(`preferences.profile.filters.conflictsCount`,{visible:X.value.length,total:K.value.length})),1)):E.value===`all`?(r(),b(`span`,Ct,u(J.value.length===G.value.length?g(l)(`preferences.profile.filters.personalUnderstanding`,{count:G.value.length}):g(l)(`preferences.profile.filters.visibleCount`,{visible:J.value.length,total:G.value.length})),1)):(r(),b(`span`,St,u(g(l)(`preferences.profile.filters.reviewCount`,{count:J.value.length,status:E.value===`pending`?g(l)(`preferences.profile.summary.pending`):E.value===`agent_confirmed`?g(l)(`preferences.profile.summary.agentConfirmed`):g(l)(`preferences.profile.summary.confirmed`)})),1)),v(`button`,{class:`toolbar-action`,type:`button`,disabled:m.value,onClick:s[6]||=e=>$()},u(g(l)(`common.actions.refresh`)),9,wt)])]),m.value&&!g(te)&&!D.value?(r(),x(re,{key:1,variant:`inline`,label:g(l)(`preferences.profile.directory.loading`)},null,8,[`label`])):d(``,!0),g(te)?(r(),x(re,{key:2,label:g(l)(`preferences.profile.directory.loading`)},null,8,[`label`])):D.value?(r(),b(`section`,{key:3,class:`preference-conflict-workbench`,"aria-label":g(l)(`preferences.profile.workbench.aria`)},[v(`header`,null,[v(`div`,null,[s[16]||=v(`p`,{class:`eyebrow`},`CONFLICT WORKBENCH`,-1),v(`h2`,null,u(g(l)(`preferences.profile.workbench.title`)),1)]),v(`p`,null,u(g(l)(`preferences.profile.workbench.copy`)),1)]),v(`div`,Et,[(r(!0),b(p,null,t(X.value,(e,t)=>(r(),b(`article`,{key:e.id,class:`preference-conflict-card`},[v(`div`,Dt,[v(`div`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.group`,{index:t+1})),1),v(`h3`,null,u(e.preferenceKey),1)]),v(`div`,null,[v(`span`,null,u(we(e)),1),v(`strong`,null,u(e.aiRecord?g(l)(`preferences.profile.workbench.aiPending`):e.recommendedAction===`merge`?g(l)(`preferences.profile.workbench.mergeSuggested`):g(l)(`preferences.profile.workbench.humanReview`)),1)])]),v(`div`,Ot,[v(`section`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.older`)),1),v(`strong`,null,u(e.left.title),1),v(`p`,null,u(g(R)(e.left)),1),v(`small`,null,u(g(N)(g(P)(e.left))),1)]),s[17]||=v(`i`,{"aria-hidden":`true`},`↔`,-1),v(`section`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.newer`)),1),v(`strong`,null,u(e.right.title),1),v(`p`,null,u(g(R)(e.right)),1),v(`small`,null,u(g(N)(g(P)(e.right))),1)])]),v(`footer`,null,[v(`div`,null,[v(`span`,null,u(g(l)(`preferences.profile.workbench.reason`)),1),v(`p`,null,u(e.reason),1),e.difference.rightOnly.length?(r(),b(`small`,kt,u(g(l)(`preferences.profile.workbench.additions`,{values:e.difference.rightOnly.join(`、`)})),1)):d(``,!0)]),v(`div`,At,[v(`button`,{class:`secondary-action`,type:`button`,disabled:!!e.aiRecord||H.value===e.id,onClick:t=>ke(e)},u(e.aiRecord?g(l)(`preferences.profile.workbench.deferred`):H.value===e.id?g(l)(`preferences.profile.workbench.deferring`):g(l)(`preferences.profile.workbench.defer`)),9,jt),v(`button`,{class:`primary-action`,type:`button`,onClick:t=>B.value=e},u(g(l)(`preferences.profile.workbench.handleNow`)),9,Mt)])])]))),128))]),m.value?(r(),x(re,{key:0,variant:`compact`,label:g(l)(`preferences.profile.workbench.loading`)},null,8,[`label`])):X.value.length?d(``,!0):(r(),b(`div`,Nt,u(K.value.length?g(l)(`preferences.profile.workbench.noFiltered`):g(l)(`preferences.profile.workbench.empty`)),1))],8,Tt)):(r(),b(`div`,{key:4,class:_([`personal-profile-layout`,{"has-selection":I.value}])},[y(ae,{class:`personal-profile-directory`,items:J.value,"row-height":76,"active-index":me.value,"reset-key":Y.value,"item-key":xe,label:g(l)(`preferences.profile.directory.aria`)},{header:o(()=>[v(`div`,Pt,[v(`span`,null,u(g(l)(`preferences.profile.directory.aspect`)),1),v(`span`,null,u(g(l)(`preferences.profile.directory.content`)),1),v(`span`,null,u(g(l)(`preferences.profile.directory.statusScopeSource`)),1),v(`span`,null,u(g(l)(`preferences.profile.directory.updated`)),1)])]),default:o(({item:e})=>[v(`button`,{class:_([`personal-profile-row`,{selected:I.value?.id===e.id,"pending-review":g(M)(e)===`pending`,"ai-resolved-conflict":q.value.has(e.id)}]),type:`button`,onClick:t=>I.value=e},[v(`span`,{class:_([`profile-aspect-mark`,e.profileAspect])},u(g(le)(e.profileAspect)),3),v(`span`,It,[v(`strong`,null,u(e.title),1),v(`small`,null,u(e.body),1)]),v(`span`,Lt,[v(`strong`,{class:_({"has-conflict":pe.value.has(e.id)})},u(be(e)),3),v(`small`,null,u(g(j)(e.originQuadrant))+` · `+u(Se(e))+` · `+u(g(l)(`preferences.profile.directory.sourceCount`,{count:e.evidence.length})),1)]),v(`time`,null,u(g(N)(g(P)(e))),1)],10,Ft)]),empty:o(()=>[v(`div`,Rt,u(G.value.length?g(l)(`preferences.profile.directory.noFiltered`):g(l)(`preferences.profile.directory.empty`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),y(k,{class:`personal-profile-inspector`,item:I.value,graph:a.value,editable:``,onConfirm:s[7]||=e=>L.value=e,onEdit:s[8]||=e=>z.value=e,onOpenReplacement:Te},null,8,[`item`,`graph`])],2)),y(ce,{item:z.value,"personal-space-id":g(i).activePersonalSpace?.id??``,"personal-project-id":null,projects:g(i).state?.personalProjects??[],"replacement-items":G.value,onClose:s[9]||=e=>z.value=null,onSaved:s[10]||=e=>$()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),y(se,{item:L.value,"personal-space-id":g(i).activePersonalSpace?.id??``,"personal-project-id":null,onClose:s[11]||=e=>L.value=null,onSaved:s[12]||=e=>$()},null,8,[`item`,`personal-space-id`]),y(et,{conflict:B.value,"personal-space-id":g(i).activePersonalSpace?.id??``,projects:g(i).state?.personalProjects??[],onClose:s[13]||=e=>B.value=null,onResolved:s[14]||=e=>$(),onEdit:Ee},null,8,[`conflict`,`personal-space-id`,`projects`])]))}}),[[`__scopeId`,`data-v-7ff17558`]]);export{zt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as e,T as t,y as n}from"./i18n-BtOOoyJd.js";import{t as r}from"./KnowledgeWorkspace-DmHIc0jb.js";var i=t({__name:`PersonalProjectsPage`,setup(t){return(t,i)=>(e(),n(r,{"personal-projects-only":``}))}});export{i as default};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{A as e,C as t,F as n,H as r,I as i,M as a,N as o,T as s,V as c,Z as l,_ as u,a as d,at as f,b as p,c as m,d as h,f as g,h as _,k as v,m as y,n as b,nt as x,rt as S,u as C,v as w,w as T,x as E,y as D,z as O}from"./i18n-BtOOoyJd.js";import{t as k}from"./console--CZxc3PW.js";import{t as A}from"./GrowthLoading-Bu_kH-I8.js";import{t as j}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as M}from"./useApi-CROJJdhE-raNlHRDl.js";import{t as N}from"./vue-router-JFYBLXB1.js";import{a as ee,i as P,n as F,r as I,t as L}from"./client-CEHkJJ-5.js";import{a as R,i as te,s as z}from"./catalog-DU4Kfd-N.js";import{t as B}from"./AgentHand-CMZk5GjY.js";import{t as V}from"./useModalDialog-CroGk2Cs.js";import{_ as H,a as U,c as W,d as G,f as ne,g as K,h as q,i as re,l as ie,m as J,n as Y,o as X,p as ae,r as oe,s as se,t as ce,u as le}from"./task-evidence-BUu7yYIn.js";import{t as ue}from"./ProjectScopePicker-DVHfXX1f.js";import{t as de}from"./SearchableSelect-BZtyYmZN.js";import{t as fe}from"./EmployeeRecruitDialog-BLTpjCcK.js";function pe(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:me(t),toDate:me(e)}}function me(e){return e.toISOString().slice(0,10)}function he(e,t){let n=q(e),r=Y(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=q(e);return{date:J(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:Y(t.tasks).map(_e).filter(e=>!!e)}}).filter(({date:e})=>e),a=J(n,`fromDate`,`from_date`),o=J(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?ge(i,c,l):[];return{agentId:J(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:J(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function ge(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=me(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function _e(e){let t=q(e),n=J(t,`taskId`,`task_id`);if(!n)return null;let r=re(K(t,`actualExecution`,`actual_execution`))??re({executor:J(t,`actualExecutor`,`actual_executor`),provider:J(t,`actualModelProvider`,`actual_model_provider`),model:J(t,`actualModel`,`actual_model`),client:J(t,`sourceApplication`,`source_application`)});return{taskId:n,title:J(t,`title`,`title`)??n,status:J(t,`status`,`status`),summary:J(t,`summary`,`summary`)??``,occurredAt:J(t,`occurredAt`,`occurred_at`)??``,personalProjectId:J(t,`personalProjectId`,`personal_project_id`),assignmentId:J(t,`assignmentId`,`assignment_id`),collaborators:Y(t.collaborators).map(X),sourceApplication:J(t,`sourceApplication`,`source_application`),sourceSessionId:J(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:J(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:G(K(t,`workerRuntime`,`worker_runtime`)),toolsUsed:ae(t,`toolsUsed`,`tools_used`),tokenUsage:le(K(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:J(t,`actualModelProvider`,`actual_model_provider`),actualModel:J(t,`actualModel`,`actual_model`)}}var ve={class:`project-agent-assignment-dialog-header`},ye={id:`project-agent-assignment-dialog-title`},be=[`disabled`],xe={class:`project-agent-assignment-dialog-fields`},Se={key:0},Ce={key:1},we=[`value`],Te={key:2},Ee={key:3,class:`project-agent-assignment-wide-field`},De=[`disabled`],Oe={key:4},ke=[`disabled`],Ae={key:5},je=[`disabled`,`placeholder`],Me={class:`project-agent-assignment-wide-field`},Ne=[`disabled`,`placeholder`],Pe={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},Fe={class:`project-agent-assignment-dialog-actions`},Ie=[`disabled`],Le=[`disabled`],Re={key:1},ze=j(s({__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:t}){let n=e,i=t,a=l(``),s=l(``),c=l(``),m=l(``),g=l(``),_=l(``),v=l(!1),b=l(``),{dialogRef:S,initialFocusRef:C,onCancel:k,onKeydown:j}=V(()=>n.open,()=>i(`close`)),M=u(()=>n.action!==`assign`),N=u(()=>n.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),ee=u(()=>n.availableAgents.filter(e=>e.agentId!==n.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.displayName||e.profile.name,meta:e.profile.name})));O(()=>[n.open,n.agent,n.assignment,n.action,n.defaultProjectId],()=>{n.open&&(a.value=n.assignment?.personalProjectId??n.defaultProjectId??n.projects[0]?.project_id??``,s.value=``,c.value=n.assignment?.responsibility??n.agent?.profile.responsibility??``,m.value=n.assignment?.scope??``,g.value=n.assignment?.workKinds?.join(`
|
|
2
|
+
`)??``,_.value=``,b.value=``)},{immediate:!0});async function F(){if(!n.agent)return;b.value=``;let e=_.value.trim(),t=c.value.trim();if(!e||n.action===`assign`&&!t){b.value=d(`projectAgents.assignmentDialog.required`);return}if(n.action===`replace`&&!s.value){b.value=d(`projectAgents.assignmentDialog.replacementRequired`);return}v.value=!0;try{if(n.action===`assign`){let r=await P(`/api/project-agent-assignments`,{personalSpaceId:n.agent.personalSpaceId,personalProjectId:a.value,agentId:n.agent.agentId,idempotencyKey:L(),responsibility:t,workKinds:I(g.value),capabilities:[],reason:e});i(`saved`,r)}else{if(!n.assignment)return;await P(`/api/project-agent-assignments/${encodeURIComponent(n.assignment.assignmentId)}/${n.action}`,n.action===`replace`?{personalSpaceId:n.agent.personalSpaceId,personalProjectId:n.assignment.personalProjectId,assignmentId:n.assignment.assignmentId,expectedRevision:n.assignment.revision??0,replacementAgentId:s.value,idempotencyKey:L(),responsibility:t||n.assignment.responsibility,workKinds:I(g.value),capabilities:n.assignment.capabilities??[],reason:e}:{personalSpaceId:n.agent.personalSpaceId,personalProjectId:n.assignment.personalProjectId,assignmentId:n.assignment.assignmentId,expectedRevision:n.assignment.revision??0,reason:e}),i(`changed`)}i(`close`)}catch(e){b.value=e instanceof Error?e.message:d(`projectAgents.assignmentDialog.saveFailed`)}finally{v.value=!1}}function I(e){return[...new Set(e.split(`
|
|
3
|
+
`).map(e=>e.trim()).filter(Boolean))]}function L(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(t,l)=>e.open?(o(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:S,class:`project-agent-assignment-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-assignment-dialog-title`,onCancel:l[8]||=(...e)=>x(k)&&x(k)(...e),onKeydown:l[9]||=(...e)=>x(j)&&x(j)(...e)},[w(`form`,{class:`project-agent-assignment-dialog-shell`,onSubmit:y(F,[`prevent`])},[w(`header`,ve,[w(`h3`,ye,f(x(d)(`projectAgents.assignmentDialog.${M.value?e.action:`assign`}Title`)),1),w(`button`,{ref_key:`initialFocusRef`,ref:C,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:v.value,onClick:l[0]||=e=>i(`close`)},f(x(d)(`common.actions.close`)),9,be)]),w(`div`,xe,[M.value?(o(),E(`label`,Ce,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),w(`input`,{value:n.assignment?n.assignment.personalProjectId:``,disabled:``},null,8,we)])):(o(),E(`label`,Se,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),T(de,{modelValue:a.value,"onUpdate:modelValue":l[1]||=e=>a.value=e,"control-id":`project-agent-assignment-project`,options:N.value,label:x(d)(`projectAgents.fields.project`),placeholder:x(d)(`projectAgents.dialog.projectPlaceholder`),disabled:v.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])),M.value&&e.action===`replace`?(o(),E(`label`,Te,[w(`span`,null,f(x(d)(`projectAgents.assignmentDialog.replacement`)),1),T(de,{modelValue:s.value,"onUpdate:modelValue":l[2]||=e=>s.value=e,"control-id":`project-agent-assignment-replacement`,options:ee.value,label:x(d)(`projectAgents.assignmentDialog.replacement`),placeholder:x(d)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:v.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])):p(``,!0),M.value?p(``,!0):(o(),E(`label`,Ee,[w(`span`,null,f(x(d)(`projectAgents.fields.responsibility`)),1),r(w(`textarea`,{"onUpdate:modelValue":l[3]||=e=>c.value=e,rows:`3`,maxlength:`4096`,disabled:v.value,required:``},null,8,De),[[h,c.value]])])),M.value?p(``,!0):(o(),E(`label`,Oe,[w(`span`,null,f(x(d)(`projectAgents.fields.scope`)),1),r(w(`input`,{"onUpdate:modelValue":l[4]||=e=>m.value=e,maxlength:`4096`,disabled:v.value},null,8,ke),[[h,m.value]])])),M.value?p(``,!0):(o(),E(`label`,Ae,[w(`span`,null,f(x(d)(`projectAgents.assignmentDialog.workKinds`)),1),r(w(`textarea`,{"onUpdate:modelValue":l[5]||=e=>g.value=e,rows:`3`,disabled:v.value,placeholder:x(d)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,je),[[h,g.value]])])),w(`label`,Me,[w(`span`,null,f(x(d)(`projectAgents.fields.reason`)),1),r(w(`textarea`,{"onUpdate:modelValue":l[6]||=e=>_.value=e,rows:`3`,maxlength:`2048`,disabled:v.value,placeholder:x(d)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Ne),[[h,_.value]])])]),b.value?(o(),E(`p`,Pe,f(b.value),1)):p(``,!0),w(`footer`,Fe,[w(`button`,{class:`quiet-button`,type:`button`,disabled:v.value,onClick:l[7]||=e=>i(`close`)},f(x(d)(`common.actions.cancel`)),9,Ie),w(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:v.value},[v.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.assignmentDialog.saving`)},null,8,[`label`])):(o(),E(`span`,Re,f(x(d)(`projectAgents.assignmentDialog.${M.value?`saveChange`:`saveAssign`}`)),1))],8,Le)])],32)],544)):p(``,!0)}}),[[`__scopeId`,`data-v-ee37776b`]]),Be={class:`project-agent-dialog-header`},Z={id:`executor-routing-dialog-title`},Ve=[`disabled`],He={class:`project-agent-dialog-fields`},Ue=[`disabled`],We=[`disabled`],Ge=[`disabled`],Ke=[`disabled`],qe={class:`project-agent-wide-field`},Je=[`disabled`],Ye={class:`project-agent-dialog-check`},Q=[`disabled`],Xe={class:`project-agent-dialog-note project-agent-wide-field`},Ze=[`disabled`],Qe=[`disabled`],$e={key:0},et={key:1},tt=[`disabled`],nt=[`disabled`],rt={class:`project-agent-wide-field`},it=[`placeholder`,`disabled`],at={class:`project-agent-wide-field`},ot=[`disabled`],st={class:`project-agent-wide-field`},$=[`disabled`],ct={class:`project-agent-dialog-note project-agent-wide-field`},lt={key:0,class:`project-agent-dialog-error`,role:`alert`},ut={class:`project-agent-dialog-actions`},dt=[`disabled`],ft=[`disabled`],pt={key:1},mt=j(s({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(e,{emit:n}){let i=e,a=n,s=l(``),c=l(``),g=l(`external`),v=l(``),b=l(100),S=l(!1),k=l(`space`),j=l(``),M=l(``),N=l(``),P=l(``),F=l(``),I=l(``),L=l(!1),R=l(``),{dialogRef:te,initialFocusRef:z,onCancel:B,onKeydown:H}=V(()=>i.open,()=>a(`close`)),U=u(()=>!!i.executor),W=u(()=>i.mode===`executor`?U.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),G=u(()=>i.mode===`executor`?d(`projectAgents.routing.editor.savingExecutor`):d(`projectAgents.routing.editor.savingRule`)),ne=u(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));O(()=>[i.open,i.mode,i.executor,i.rule],([e])=>{if(!e)return;let t=i.executor,n=i.rule;s.value=t?.executorId??``,c.value=t?.displayName??t?.label??``,g.value=t?.executorKind??`external`,v.value=t?.capabilities?.join(`
|
|
4
|
+
`)??``,b.value=t?.globalPriority??n?.priority??100,S.value=t?.healthRequired===!0,k.value=n?.scope??`space`,j.value=n?.personalProjectId??``,M.value=n?.taskId??``,N.value=n?.workKind??``,P.value=n?.requiredCapabilities?.join(`
|
|
5
|
+
`)??``,F.value=n?.executorIds?.join(`
|
|
6
|
+
`)??``,I.value=``,R.value=``},{immediate:!0});function K(e){return[...new Set(e.split(`
|
|
7
|
+
`).map(e=>e.trim()).filter(Boolean))]}function q(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function re(){if(L.value)return;let e=K(v.value),t=I.value.trim();if(i.mode===`executor`){if(!s.value.trim()||!c.value.trim()||b.value<1){R.value=d(`projectAgents.routing.editor.executorRequired`);return}}else if(!N.value.trim()||!K(F.value).length||!t){R.value=d(`projectAgents.routing.editor.ruleRequired`);return}L.value=!0,R.value=``;try{if(i.mode===`executor`){let t=await ee(`/api/executors`,{personalSpaceId:i.personalSpaceId,executorId:s.value.trim(),displayName:c.value.trim(),executorKind:g.value.trim()||`external`,capabilities:e,advertisedModels:i.executor?.advertisedModels??i.executor?.availableModels??[],globalPriority:b.value,healthRequired:S.value,expectedRevision:i.executor?.revision,idempotencyKey:q(`executor-directory`)});a(`saved`,t)}else{let e=await ee(`/api/executor-routing-rules`,{personalSpaceId:k.value===`global`?void 0:i.personalSpaceId,scope:k.value,personalProjectId:(k.value===`project`||k.value===`task`)&&j.value||void 0,taskId:k.value===`task`&&M.value||void 0,workKind:N.value.trim(),requiredCapabilities:K(P.value),executorIds:K(F.value),priority:b.value,reason:t,idempotencyKey:q(`executor-rule`)});a(`saved`,e)}a(`close`)}catch(e){R.value=e instanceof Error?e.message:d(`projectAgents.routing.editor.saveFailed`)}finally{L.value=!1}}return(n,i)=>e.open?(o(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:te,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`executor-routing-dialog-title`,onCancel:i[16]||=(...e)=>x(B)&&x(B)(...e),onKeydown:i[17]||=(...e)=>x(H)&&x(H)(...e)},[w(`form`,{class:`project-agent-dialog-shell`,onSubmit:y(re,[`prevent`])},[w(`header`,Be,[w(`h3`,Z,f(x(d)(`projectAgents.routing.editor.${W.value}`)),1),w(`button`,{ref_key:`initialFocusRef`,ref:z,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:L.value,onClick:i[0]||=e=>a(`close`)},f(x(d)(`common.actions.close`)),9,Ve)]),w(`div`,He,[e.mode===`executor`?(o(),E(_,{key:0},[w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.executorId`)),1),r(w(`input`,{"onUpdate:modelValue":i[1]||=e=>s.value=e,maxlength:`128`,disabled:U.value||L.value,required:``},null,8,Ue),[[h,s.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.displayName`)),1),r(w(`input`,{"onUpdate:modelValue":i[2]||=e=>c.value=e,maxlength:`160`,disabled:L.value,required:``},null,8,We),[[h,c.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.executorKind`)),1),r(w(`input`,{"onUpdate:modelValue":i[3]||=e=>g.value=e,maxlength:`128`,disabled:L.value},null,8,Ge),[[h,g.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.priority`)),1),r(w(`input`,{"onUpdate:modelValue":i[4]||=e=>b.value=e,type:`number`,min:`1`,max:`1000000`,disabled:L.value,required:``},null,8,Ke),[[h,b.value,void 0,{number:!0}]])]),w(`label`,qe,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.capabilities`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[5]||=e=>v.value=e,rows:`3`,disabled:L.value},null,8,Je),[[h,v.value]])]),w(`label`,Ye,[r(w(`input`,{"onUpdate:modelValue":i[6]||=e=>S.value=e,type:`checkbox`,disabled:L.value},null,8,Q),[[m,S.value]]),i[18]||=t(),w(`span`,null,f(x(d)(`projectAgents.routing.editor.healthRequired`)),1)]),w(`p`,Xe,f(x(d)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(o(),E(_,{key:1},[w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.scope`)),1),r(w(`select`,{"onUpdate:modelValue":i[7]||=e=>k.value=e,disabled:L.value},[...i[19]||=[w(`option`,{value:`space`},`space`,-1),w(`option`,{value:`project`},`project`,-1),w(`option`,{value:`task`},`task`,-1)]],8,Ze),[[C,k.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.priority`)),1),r(w(`input`,{"onUpdate:modelValue":i[8]||=e=>b.value=e,type:`number`,min:`1`,max:`1000000`,disabled:L.value,required:``},null,8,Qe),[[h,b.value,void 0,{number:!0}]])]),k.value===`project`||k.value===`task`?(o(),E(`label`,$e,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),T(de,{modelValue:j.value,"onUpdate:modelValue":i[9]||=e=>j.value=e,"control-id":`executor-rule-project`,options:ne.value,label:x(d)(`projectAgents.fields.project`),disabled:L.value},null,8,[`modelValue`,`options`,`label`,`disabled`])])):p(``,!0),k.value===`task`?(o(),E(`label`,et,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.taskId`)),1),r(w(`input`,{"onUpdate:modelValue":i[10]||=e=>M.value=e,maxlength:`128`,disabled:L.value},null,8,tt),[[h,M.value]])])):p(``,!0),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.workKind`)),1),r(w(`input`,{"onUpdate:modelValue":i[11]||=e=>N.value=e,maxlength:`128`,disabled:L.value,required:``},null,8,nt),[[h,N.value]])]),w(`label`,rt,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.executorIds`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[12]||=e=>F.value=e,rows:`3`,placeholder:x(d)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:L.value,required:``},null,8,it),[[h,F.value]])]),w(`label`,at,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.requiredCapabilities`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[13]||=e=>P.value=e,rows:`3`,disabled:L.value},null,8,ot),[[h,P.value]])]),w(`label`,st,[w(`span`,null,f(x(d)(`projectAgents.fields.reason`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[14]||=e=>I.value=e,rows:`3`,disabled:L.value,required:``},null,8,$),[[h,I.value]])]),w(`p`,ct,f(x(d)(`projectAgents.routing.editor.ruleNote`)),1)],64))]),R.value?(o(),E(`p`,lt,f(R.value),1)):p(``,!0),w(`footer`,ut,[w(`button`,{class:`quiet-button`,type:`button`,disabled:L.value,onClick:i[15]||=e=>a(`close`)},f(x(d)(`common.actions.cancel`)),9,dt),w(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:L.value},[L.value?(o(),D(A,{key:0,variant:`inline`,label:G.value},null,8,[`label`])):(o(),E(`span`,pt,f(x(d)(`projectAgents.routing.editor.save`)),1))],8,ft)])],32)],544)):p(``,!0)}}),[[`__scopeId`,`data-v-4d36bcaf`]]),ht=[`aria-label`,`aria-busy`],gt={key:1,class:`project-agent-policy-options`},_t=[`checked`,`disabled`],vt=[`checked`,`disabled`],yt=[`checked`,`disabled`],bt={key:2,class:`project-team`},xt={class:`project-team-peers`},St={key:1},Ct={key:2},wt={class:`project-team-summary`},Tt={key:0,class:`project-team-members`},Et=[`onClick`],Dt={class:`team-lead-field`},Ot=[`disabled`],kt={value:``},At=[`value`],jt=[`disabled`],Mt=[`onChange`],Nt=[`value`],Pt=[`disabled`],Ft={class:`project-agent-policy-feedback`,"aria-live":`polite`},It={key:0,role:`alert`},Lt=[`disabled`],Rt={key:2,role:`status`},zt=j(s({__name:`ProjectAgentAutomationPolicyPanel`,props:{personalSpaceId:{},personalProjectId:{},projectName:{},agents:{}},emits:[`select`],setup(e,{emit:i}){let a=e,s=i,c=l(G()),h=l(!1),g=l(!1),v=l(``),y=l(``),b=l(!1),S=l(``),T=l([]),k=0,j=u(()=>h.value||g.value),M=u(()=>(a.agents??[]).filter(e=>e.profile.status===`active`&&(e.profile.agentType??`durable`)===`durable`&&!e.agentId.startsWith(`employee.`)&&!e.profile.capabilities.some(e=>e.startsWith(`fuli.employee:`))&&e.assignments?.some(e=>e.status===`active`&&e.personalProjectId===a.personalProjectId))),N=M,ee=u(()=>M.value.filter(e=>e.agentId!==S.value)),P=u(()=>T.value.filter(e=>!ee.value.some(t=>t.agentId===e)).map(e=>({id:e,name:(a.agents??[]).find(t=>t.agentId===e)?.profile.displayName||(a.agents??[]).find(t=>t.agentId===e)?.profile.name||d(`projectAgents.team.unavailableMember`)}))),L=u(()=>M.value.find(e=>e.agentId===c.value.teamLeadAgentId)),R=u(()=>M.value.filter(e=>c.value.teamMemberAgentIds?.includes(e.agentId))),te=u(()=>S.value!==(c.value.teamLeadAgentId??``)||JSON.stringify([...T.value].sort())!==JSON.stringify([...c.value.teamMemberAgentIds??[]].sort()));O(S,e=>{T.value=e?T.value.filter(t=>t!==e):[]});function z(e){return e.profile.displayName||e.profile.name}function B(){S.value=c.value.teamLeadAgentId??``,T.value=[...c.value.teamMemberAgentIds??[]]}O(()=>[a.personalSpaceId,a.personalProjectId],()=>void V(),{immediate:!0});async function V(){let e=++k;if(c.value=G(),B(),g.value=!1,h.value=!1,b.value=!1,y.value=``,!(!a.personalSpaceId||!a.personalProjectId)){h.value=!0,v.value=``;try{let t=await F(`/api/project-agent-coordination-policy?${new URLSearchParams({personalSpaceId:a.personalSpaceId,personalProjectId:a.personalProjectId})}`);e===k&&(c.value=ne(t),B())}catch(t){e===k&&(v.value=t instanceof Error?t.message:d(`projectAgents.coordination.loadFailed`))}finally{e===k&&(h.value=!1)}}}async function H(e,t){if(j.value||v.value)return;let n={...c.value},r=t.currentTarget.checked;c.value={...c.value,[e]:r},await W(n)}async function U(){j.value||v.value||!te.value||await W({...c.value},{teamLeadAgentId:S.value||null,teamMemberAgentIds:[...T.value]})}async function W(e,t){let n=k;g.value=!0,b.value=!1,y.value=``;try{let r=await I(`/api/project-agent-coordination-policy`,{personalSpaceId:a.personalSpaceId,personalProjectId:a.personalProjectId,askBeforeRecruitment:c.value.askBeforeRecruitment,autoReusePreviousAgent:c.value.autoReusePreviousAgent,autoGrowTeam:c.value.autoGrowTeam??!0,expectedUpdatedAt:e.updatedAt,...t});if(n!==k)return;c.value=ne(r),t&&B(),b.value=!0}catch(t){if(n!==k)return;c.value=e,y.value=t instanceof Error?t.message:d(`projectAgents.coordination.saveFailed`)}finally{n===k&&(g.value=!1)}}function G(){return{personalSpaceId:a.personalSpaceId,personalProjectId:a.personalProjectId,askBeforeRecruitment:!0,autoReusePreviousAgent:!0,autoGrowTeam:!0,updatedAt:null,teamLeadAgentId:null,teamMemberAgentIds:[]}}function ne(e){let t=e&&typeof e==`object`?e:{};return{personalSpaceId:q(t.personalSpaceId??t.personal_space_id)||a.personalSpaceId,personalProjectId:q(t.personalProjectId??t.personal_project_id)||a.personalProjectId,askBeforeRecruitment:K(t.askBeforeRecruitment??t.ask_before_recruitment,!0),autoReusePreviousAgent:K(t.autoReusePreviousAgent??t.auto_reuse_previous_agent,!0),updatedAt:q(t.updatedAt??t.updated_at),autoGrowTeam:K(t.autoGrowTeam??t.auto_grow_team,!0),teamLeadAgentId:q(t.teamLeadAgentId??t.team_lead_agent_id),teamMemberAgentIds:Array.isArray(t.teamMemberAgentIds??t.team_member_agent_ids)?t.teamMemberAgentIds??t.team_member_agent_ids:[]}}function K(e,t){return typeof e==`boolean`?e:t}function q(e){return typeof e==`string`&&e?e:null}return(i,a)=>(o(),E(`section`,{class:`project-agent-automation-policy`,"aria-label":x(d)(`projectAgents.coordination.aria`,{project:e.projectName}),"aria-busy":j.value},[w(`header`,null,[w(`h3`,null,f(x(d)(`projectAgents.coordination.title`)),1),w(`span`,null,f(e.projectName),1)]),h.value?(o(),D(A,{key:0,variant:`compact`,label:x(d)(`projectAgents.coordination.loading`)},null,8,[`label`])):(o(),E(`div`,gt,[w(`label`,null,[w(`span`,null,[w(`strong`,null,f(x(d)(`projectAgents.coordination.autoReuse`)),1),w(`small`,null,f(x(d)(`projectAgents.coordination.autoReuseMeta`)),1)]),w(`input`,{checked:c.value.autoReusePreviousAgent,disabled:j.value||!!v.value,type:`checkbox`,role:`switch`,onChange:a[0]||=e=>H(`autoReusePreviousAgent`,e)},null,40,_t)]),w(`label`,null,[w(`span`,null,[w(`strong`,null,f(x(d)(`projectAgents.coordination.askBeforeRecruitment`)),1),w(`small`,null,f(x(d)(`projectAgents.coordination.askBeforeRecruitmentMeta`)),1)]),w(`input`,{checked:c.value.askBeforeRecruitment,disabled:j.value||!!v.value,type:`checkbox`,role:`switch`,onChange:a[1]||=e=>H(`askBeforeRecruitment`,e)},null,40,vt)]),w(`label`,null,[w(`span`,null,[w(`strong`,null,f(x(d)(`projectAgents.team.autoGrow`)),1),w(`small`,null,f(x(d)(`projectAgents.team.autoGrowMeta`)),1)]),w(`input`,{checked:c.value.autoGrowTeam,disabled:j.value||!!v.value,type:`checkbox`,role:`switch`,onChange:a[2]||=e=>H(`autoGrowTeam`,e)},null,40,yt)])])),e.agents&&!h.value&&!v.value?(o(),E(`div`,bt,[w(`div`,xt,[w(`span`,null,f(x(d)(`projectAgents.team.hr`)),1),w(`span`,null,f(x(d)(`projectAgents.team.manager`)),1),L.value?(o(),E(`button`,{key:0,type:`button`,onClick:a[3]||=e=>s(`select`,L.value.agentId)},f(x(d)(`projectAgents.team.lead`))+` · `+f(z(L.value)),1)):c.value.teamLeadAgentId?(o(),E(`span`,St,f(x(d)(`projectAgents.team.unavailable`)),1)):(o(),E(`span`,Ct,f(x(d)(`projectAgents.team.noLead`)),1))]),w(`p`,wt,f(x(d)(`projectAgents.team.summary`)),1),R.value.length?(o(),E(`ul`,Tt,[(o(!0),E(_,null,n(R.value,e=>(o(),E(`li`,{key:e.agentId},[w(`button`,{type:`button`,onClick:t=>s(`select`,e.agentId)},[w(`strong`,null,f(z(e)),1),w(`span`,null,f(e.profile.responsibility),1)],8,Et)]))),128))])):p(``,!0),w(`details`,null,[w(`summary`,null,f(x(d)(`projectAgents.team.edit`)),1),w(`label`,Dt,[t(f(x(d)(`projectAgents.team.lead`))+` `,1),r(w(`select`,{"onUpdate:modelValue":a[4]||=e=>S.value=e,disabled:j.value},[w(`option`,kt,f(x(d)(`projectAgents.team.noLead`)),1),(o(!0),E(_,null,n(x(N),e=>(o(),E(`option`,{key:e.agentId,value:e.agentId},f(z(e)),9,At))),128))],8,Ot),[[C,S.value]])]),w(`fieldset`,{disabled:j.value||!S.value},[w(`legend`,null,f(x(d)(`projectAgents.team.members`)),1),(o(!0),E(_,null,n(P.value,e=>(o(),E(`label`,{key:e.id,class:`unavailable-team-member`},[w(`input`,{type:`checkbox`,checked:``,onChange:t=>T.value=T.value.filter(t=>t!==e.id)},null,40,Mt),t(` `+f(e.name)+` · `+f(x(d)(`projectAgents.team.removeUnavailable`)),1)]))),128)),(o(!0),E(_,null,n(ee.value,e=>(o(),E(`label`,{key:e.agentId},[r(w(`input`,{"onUpdate:modelValue":a[5]||=e=>T.value=e,type:`checkbox`,value:e.agentId},null,8,Nt),[[m,T.value]]),t(f(z(e)),1)]))),128))],8,jt),w(`button`,{type:`button`,disabled:j.value||!te.value,onClick:U},f(x(d)(`projectAgents.team.save`)),9,Pt)])])):p(``,!0),w(`div`,Ft,[v.value||y.value?(o(),E(`p`,It,[t(f(v.value||y.value)+` `,1),v.value?(o(),E(`button`,{key:0,type:`button`,disabled:j.value,onClick:V},f(x(d)(`projectAgents.retry`)),9,Lt)):p(``,!0)])):g.value?(o(),D(A,{key:1,variant:`compact`,label:x(d)(`projectAgents.coordination.saving`)},null,8,[`label`])):b.value?(o(),E(`p`,Rt,f(x(d)(`projectAgents.coordination.saved`)),1)):p(``,!0)])],8,ht))}}),[[`__scopeId`,`data-v-077ab7fe`]]),Bt={key:0,class:`project-agent-source-state`,role:`status`},Vt={key:1,class:`project-agent-source-state`},Ht={key:2,class:`project-agent-source-state is-error`,role:`alert`},Ut=j(s({__name:`ProjectAgentDetailState`,props:{status:{},error:{},label:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(o(),E(`div`,Bt,f(x(d)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(o(),E(`div`,Vt,[T(A,{variant:`inline`,label:e.label},null,8,[`label`])])):e.status===`error`?(o(),E(`div`,Ht,[w(`span`,null,f(e.error||x(d)(`projectAgents.detail.sectionUnavailable`)),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},f(x(d)(`projectAgents.retry`)),1)])):i(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-ca9a5880`]]),Wt={key:0},Gt=[`value`],Kt={key:2,role:`alert`},qt={key:3},Jt={class:`work-record-meta`},Yt=[`datetime`],Xt={key:4},Zt=j(s({__name:`EmployeeWorkHistory`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(e){let i=e,a=l(``),s=l(!1),c=l(!1),u=l(``),m=l([]),h=0;O(()=>[i.agentId,i.personalSpaceId,i.projects.map(e=>e.id).join(`
|
|
8
|
+
`)],()=>{let e=i.projects.some(e=>e.id===a.value)?a.value:i.projects[0]?.id??``;e===a.value?g():a.value=e},{immediate:!0}),O(a,()=>void g());async function g(){let e=++h;if(m.value=[],u.value=``,c.value=!1,!(!s.value||!a.value)){c.value=!0;try{let t=new URLSearchParams({personalSpaceId:i.personalSpaceId,personalProjectId:a.value}),n=await F(`/api/project-agents/${encodeURIComponent(i.agentId)}/memory?${t}`);e===h&&(m.value=n.workLog??[])}catch(t){e===h&&(u.value=t instanceof Error?t.message:d(`projectAgents.workHistory.loadFailed`))}finally{e===h&&(c.value=!1)}}}function v(e){let t=e.target.open;t!==s.value&&(s.value=t,s.value?g():++h)}function y(e){let t=new Date(e);return Number.isNaN(t.getTime())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(b(),{dateStyle:`short`,timeStyle:`short`}).format(t)}function S(e){return d(`projectAgents.workHistory.${[`reported`,`completed`,`incomplete`,`failed`,`no_change`,`unreported`,`running`].includes(e)?e:`unreported`}`)}return(i,s)=>(o(),E(`details`,{class:`employee-work-history`,onToggle:v},[w(`summary`,null,f(x(d)(`projectAgents.workHistory.title`)),1),e.projects.length?(o(),E(`label`,Wt,[t(f(x(d)(`projectAgents.fields.project`))+` `,1),r(w(`select`,{"onUpdate:modelValue":s[0]||=e=>a.value=e},[(o(!0),E(_,null,n(e.projects,e=>(o(),E(`option`,{key:e.id,value:e.id},f(e.name),9,Gt))),128))],512),[[C,a.value]])])):p(``,!0),c.value?(o(),D(A,{key:1,variant:`compact`,label:x(d)(`projectAgents.workHistory.loading`)},null,8,[`label`])):u.value?(o(),E(`div`,Kt,[w(`p`,null,f(u.value),1),w(`button`,{type:`button`,class:`quiet-button`,onClick:g},f(x(d)(`projectAgents.retry`)),1)])):m.value.length?(o(),E(`ol`,qt,[(o(!0),E(_,null,n(m.value,e=>(o(),E(`li`,{key:e.taskContextToken},[w(`div`,Jt,[w(`strong`,null,f(S(e.status)),1),w(`span`,null,f(e.sourceApplication),1),w(`time`,{datetime:e.createdAt},f(y(e.createdAt)),9,Yt)]),w(`p`,null,f(e.summary),1)]))),128))])):(o(),E(`p`,Xt,f(x(d)(`projectAgents.workHistory.empty`)),1))],32))}}),[[`__scopeId`,`data-v-bf7d05b1`]]),Qt={key:0},$t=[`value`],en={class:`conversation-hint`},tn={key:2,role:`alert`},nn={key:3,class:`conversation-list`},rn=[`aria-pressed`,`disabled`,`onClick`],an=[`datetime`],on={key:0,class:`conversation-messages`},sn={key:0,class:`conversation-hint`},cn={key:2,role:`alert`},ln=[`onClick`],un=[`onClick`],dn={key:4,class:`conversation-hint`},fn={key:4},pn=[`disabled`],mn={class:`capture-toggle`},hn={class:`conversation-hint`},gn={class:`quiet-button`,type:`submit`},_n={key:1},vn={key:2,role:`alert`},yn={key:3,role:`status`},bn=j(s({__name:`AgentConversations`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(e){let i=e,a=l(``),s=l(!1),c=l(!1),u=l([]),g=l(!1),v=l(``),S=l(``),T=l([]),k=l(!1),j=l(``),M=l(),N=l(!1),F=l(!1),I=l(!1),L=l(``),R=l(!1),te=l(!1),z=l(7),B=l(2e3),V=l(!0),H=0,U=0,W=0;function G(){return{personalSpaceId:i.personalSpaceId,personalProjectId:a.value,agentId:i.agentId}}function ne(e){return e instanceof Error?e.message:d(`projectAgents.conversations.loadFailed`)}O(()=>[i.agentId,i.personalSpaceId,i.projects.map(e=>e.id).join(`
|
|
9
|
+
`)],()=>{let e=i.projects.some(e=>e.id===a.value)?a.value:i.projects[0]?.id??``;e===a.value?K():a.value=e},{immediate:!0}),O(a,()=>void K());async function K(){let e=++H;if(++U,++W,u.value=[],T.value=[],S.value=``,v.value=``,j.value=``,F.value=!1,I.value=!1,L.value=``,te.value=!1,R.value=!1,g.value=!1,k.value=!1,N.value=!1,!(!s.value||!a.value)){g.value=!0,c.value&&Y();try{let t=await P(`/api/agent-conversations/query`,{...G(),mode:`list`,limit:20});e===H&&(u.value=t.conversations)}catch(t){e===H&&(v.value=ne(t))}finally{e===H&&(g.value=!1)}}}function q(e){let t=e.target.open;t!==s.value&&(s.value=t,t?K():(++H,++U,++W,c.value=!1))}async function re(e,t=!1){if(k.value||!a.value)return;let n=++U;S.value=e,j.value=``,k.value=!0,t||(T.value=[],M.value=void 0,N.value=!1);try{let r=await P(`/api/agent-conversations/query`,{...G(),mode:`events`,conversationId:e,limit:20,...t&&M.value!==void 0?{after:M.value}:{}});if(n!==U)return;T.value=t?[...T.value,...r.events]:r.events,M.value=r.next_cursor,N.value=r.has_more===!0&&r.next_cursor!==void 0}catch(e){n===U&&(j.value=ne(e))}finally{n===U&&(k.value=!1)}}function ie(e){c.value=e.target.open,c.value&&!F.value&&!I.value&&s.value&&Y()}function J(e){z.value=e.idle_days,B.value=e.context_budget,V.value=e.enabled}async function Y(){let e=++W;I.value=!0,L.value=``,te.value=!1;try{let t=await P(`/api/agent-conversations/query`,{...G(),mode:`policy`});e===W&&(J(t),F.value=!0)}catch(t){e===W&&(L.value=ne(t))}finally{e===W&&(I.value=!1)}}async function X(){if(R.value||!F.value)return;if(te.value=!1,L.value=``,!Number.isInteger(z.value)||z.value<1||z.value>365||!Number.isInteger(B.value)||B.value<512||B.value>16e3){L.value=d(`projectAgents.conversations.invalidPolicy`);return}let e=W;R.value=!0;try{let t=await ee(`/api/agent-conversations/policy`,{...G(),idleDays:z.value,contextBudget:B.value,enabled:V.value});e===W&&(J(t),te.value=!0)}catch(t){e===W&&(L.value=ne(t))}finally{e===W&&(R.value=!1)}}function ae(e){let t=new Date(e);return Number.isNaN(t.getTime())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(b(),{dateStyle:`short`,timeStyle:`short`}).format(t)}function oe(e){return[`user`,`assistant`,`tool`].includes(e)?d(`projectAgents.conversations.${e}`):e}function se(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}return(i,c)=>(o(),E(`details`,{class:`agent-conversations`,onToggle:q},[w(`summary`,null,f(x(d)(`projectAgents.conversations.title`)),1),s.value?(o(),E(_,{key:0},[e.projects.length?(o(),E(`label`,Qt,[t(f(x(d)(`projectAgents.fields.project`))+` `,1),r(w(`select`,{"onUpdate:modelValue":c[0]||=e=>a.value=e},[(o(!0),E(_,null,n(e.projects,e=>(o(),E(`option`,{key:e.id,value:e.id},f(e.name),9,$t))),128))],512),[[C,a.value]])])):p(``,!0),w(`p`,en,f(x(d)(`projectAgents.conversations.hint`)),1),g.value?(o(),D(A,{key:1,variant:`compact`,label:x(d)(`projectAgents.conversations.loading`)},null,8,[`label`])):v.value?(o(),E(`div`,tn,[w(`p`,null,f(v.value),1),w(`button`,{"data-retry-list":``,class:`quiet-button`,type:`button`,onClick:K},f(x(d)(`projectAgents.retry`)),1)])):u.value.length?(o(),E(`ol`,nn,[(o(!0),E(_,null,n(u.value,e=>(o(),E(`li`,{key:e.id},[w(`button`,{"data-read-conversation":``,class:`conversation-link`,type:`button`,"aria-pressed":S.value===e.id,disabled:k.value,onClick:t=>re(e.id)},[w(`strong`,null,f(e.summary||x(d)(`projectAgents.conversations.untitled`)),1),w(`span`,null,[t(f(e.archived?x(d)(`projectAgents.conversations.archived`):x(d)(`projectAgents.conversations.recent`))+` · `,1),w(`time`,{datetime:e.last_activity},f(ae(e.last_activity)),9,an)])],8,rn),S.value===e.id?(o(),E(`div`,on,[e.raw_retained?(o(),E(`p`,sn,f(x(d)(`projectAgents.conversations.rawRetained`)),1)):p(``,!0),w(`ol`,null,[(o(!0),E(_,null,n(T.value,e=>(o(),E(`li`,{key:e.sequence},[w(`strong`,null,f(oe(e.role)),1),w(`pre`,null,f(se(e.content)),1)]))),128))]),k.value?(o(),D(A,{key:1,variant:`compact`,label:x(d)(`projectAgents.conversations.loadingMessages`)},null,8,[`label`])):j.value?(o(),E(`div`,cn,[w(`p`,null,f(j.value),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:t=>re(e.id,T.value.length>0)},f(x(d)(`projectAgents.retry`)),9,ln)])):N.value?(o(),E(`button`,{key:3,"data-more-messages":``,class:`quiet-button`,type:`button`,onClick:t=>re(e.id,!0)},f(x(d)(`projectAgents.conversations.more`)),9,un)):T.value.length?p(``,!0):(o(),E(`p`,dn,f(x(d)(`projectAgents.conversations.noMessages`)),1))])):p(``,!0)]))),128))])):(o(),E(`p`,fn,f(x(d)(`projectAgents.conversations.empty`)),1)),a.value?(o(),E(`details`,{key:5,"data-memory-settings":``,onToggle:y(ie,[`stop`])},[w(`summary`,null,f(x(d)(`projectAgents.conversations.settings`)),1),I.value?(o(),D(A,{key:0,variant:`compact`,label:x(d)(`projectAgents.conversations.loadingPolicy`)},null,8,[`label`])):p(``,!0),F.value?(o(),E(`form`,{key:1,onSubmit:y(X,[`prevent`])},[w(`fieldset`,{disabled:R.value},[w(`label`,mn,[r(w(`input`,{"onUpdate:modelValue":c[1]||=e=>V.value=e,type:`checkbox`},null,512),[[m,V.value]]),t(f(x(d)(`projectAgents.conversations.capture`)),1)]),w(`label`,null,[t(f(x(d)(`projectAgents.conversations.idleDays`)),1),r(w(`input`,{"onUpdate:modelValue":c[2]||=e=>z.value=e,name:`idleDays`,type:`number`,min:`1`,max:`365`,required:``},null,512),[[h,z.value,void 0,{number:!0}]])]),w(`label`,null,[t(f(x(d)(`projectAgents.conversations.budget`)),1),r(w(`input`,{"onUpdate:modelValue":c[3]||=e=>B.value=e,name:`contextBudget`,type:`number`,min:`512`,max:`16000`,required:``},null,512),[[h,B.value,void 0,{number:!0}]])]),w(`p`,hn,f(x(d)(`projectAgents.conversations.budgetHint`)),1),w(`button`,gn,[R.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.conversations.saving`)},null,8,[`label`])):(o(),E(`span`,_n,f(x(d)(`projectAgents.conversations.save`)),1))])],8,pn)],32)):p(``,!0),L.value?(o(),E(`div`,vn,[w(`p`,null,f(L.value),1),F.value?p(``,!0):(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:Y},f(x(d)(`projectAgents.retry`)),1))])):p(``,!0),te.value?(o(),E(`p`,yn,f(x(d)(`projectAgents.conversations.saved`)),1)):p(``,!0)],32)):p(``,!0)],64)):p(``,!0)],32))}}),[[`__scopeId`,`data-v-14d7c328`]]),xn={class:`project-agent-dialog-header`},Sn={id:`project-agent-dialog-title`},Cn=[`disabled`],wn={class:`project-agent-dialog-fields`},Tn=[`disabled`],En={value:`active`},Dn={value:`inactive`},On={value:`archived`},kn=[`disabled`],An={value:`durable`},jn={value:`hr`},Mn={key:0,value:`temporary`,disabled:``},Nn={key:1,value:`coordinator`,disabled:``},Pn=[`disabled`,`placeholder`],Fn=[`disabled`,`placeholder`],In=[`disabled`],Ln=[`disabled`,`placeholder`],Rn={key:0,class:`project-agent-id-note`},zn={class:`project-agent-wide-field`},Bn=[`disabled`,`placeholder`],Vn={class:`project-agent-wide-field`},Hn=[`disabled`,`placeholder`],Un={class:`project-agent-wide-field`},Wn=[`disabled`,`placeholder`],Gn={class:`project-agent-wide-field project-agent-strategy-fields`},Kn=[`disabled`],qn={value:`flexible`},Jn={value:`locked`},Yn=[`disabled`],Xn={class:`project-agent-wide-field`},Zn=[`disabled`,`placeholder`],Qn={key:0,class:`project-agent-dialog-error`,role:`alert`},$n={class:`project-agent-dialog-actions`},er=[`disabled`],tr=[`disabled`],nr={key:1},rr=j(s({__name:`ProjectAgentDialog`,props:{open:{type:Boolean},agent:{},projects:{},defaultProjectId:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(e,{emit:t}){let n=e,i=t,a=l(``),s=l(``),c=l(``),m=l(``),g=l(``),_=l(``),v=l(``),b=l(``),S=l(`active`),k=l(`durable`),j=l(`adaptive`),M=l(`flexible`),N=l(``),F=l(!1),I=l(``),{dialogRef:L,initialFocusRef:R,onCancel:te,onKeydown:z}=V(()=>n.open,()=>i(`close`)),B=u(()=>!!n.agent),H=u(()=>n.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));O(()=>[n.open,n.agent,n.defaultProjectId],([e,t,r])=>{if(!e)return;a.value=t?.personalProjectId??r??n.projects[0]?.project_id??``,s.value=t?.agentId??``,c.value=t?.profile.name??``,m.value=t?.profile.displayName??``,g.value=t?.profile.occupationEmoji??``,_.value=t?.profile.responsibility??``,v.value=(t?.profile.capabilities??[]).join(`
|
|
10
|
+
`),b.value=(t?.profile.initialPreferences??[]).join(`
|
|
11
|
+
`),S.value=t?.profile.status??`active`,k.value=t?.profile.agentType??`durable`,j.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,M.value=t?.profile.executorPolicy?.mode??`flexible`;let i=t?.profile.executorPolicy,o=i?.mode===`locked`?i.lockedExecutorIds:i?.preferredExecutorIds;N.value=(o?.length?o:i?.allowList?.map(({executorId:e})=>e)??[]).join(`
|
|
12
|
+
`),I.value=``},{immediate:!0});function U(e){let t=e.split(`
|
|
13
|
+
`).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function W(){if(F.value)return;let e=a.value.trim(),t=s.value.trim(),r=c.value.trim(),o=g.value.trim(),l=_.value.trim();if(!t||!r||!l){I.value=d(`projectAgents.dialog.required`);return}let u=n.projects.find(({project_id:t})=>t===e);if(e&&!u){I.value=d(`projectAgents.dialog.projectUnavailable`);return}if(o&&!G(o)){I.value=d(`projectAgents.dialog.occupationEmojiInvalid`);return}let f=u?.personal_space_id??n.personalSpaceId??n.agent?.personalSpaceId;if(!f){I.value=d(`projectAgents.dialog.spaceUnavailable`);return}let p=U(v.value),h=U(b.value);if(!p||!h){I.value=d(`projectAgents.dialog.duplicate`);return}let y=U(N.value);if(!y||M.value===`locked`&&!y.length){I.value=d(`projectAgents.dialog.duplicate`);return}F.value=!0,I.value=``;try{let a={...n.agent?.profile,name:r,responsibility:l,capabilities:p,initialPreferences:h,status:S.value};m.value.trim()&&(a.displayName=m.value.trim()),o&&(a.occupationEmoji=o),k.value!==`durable`&&(a.agentType=k.value),j.value!==`adaptive`&&(a.defaultModelStrategy={mode:j.value}),(M.value!==`flexible`||y.length)&&(a.executorPolicy={mode:M.value,lockedExecutorIds:M.value===`locked`?y:[],preferredExecutorIds:M.value===`flexible`?y:[]});let s=await ee(`/api/project-agents`,{personalSpaceId:f,personalProjectId:null,agentId:t,profile:a}),c=s;if(e&&!B.value){let n=await P(`/api/project-agent-assignments`,{personalSpaceId:f,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:l,capabilities:p,reason:d(`projectAgents.dialog.initialAssignmentReason`)});c={...s,personalProjectId:e,assignments:[n]}}i(`saved`,c),i(`close`)}catch(e){I.value=e instanceof Error?e.message:d(`projectAgents.dialog.saveFailed`)}finally{F.value=!1}}function G(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(t,n)=>e.open?(o(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:L,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:n[15]||=(...e)=>x(te)&&x(te)(...e),onKeydown:n[16]||=(...e)=>x(z)&&x(z)(...e)},[w(`form`,{class:`project-agent-dialog-shell`,onSubmit:y(W,[`prevent`])},[w(`header`,xn,[w(`h3`,Sn,f(B.value?x(d)(`projectAgents.dialog.editTitle`):x(d)(`projectAgents.dialog.createTitle`)),1),w(`button`,{ref_key:`initialFocusRef`,ref:R,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:F.value,onClick:n[0]||=e=>i(`close`)},f(x(d)(`common.actions.close`)),9,Cn)]),w(`div`,wn,[w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),T(de,{modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,"control-id":`project-agent-project`,options:H.value,label:x(d)(`projectAgents.fields.project`),placeholder:x(d)(`projectAgents.dialog.projectPlaceholder`),disabled:B.value||F.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.status`)),1),r(w(`select`,{"onUpdate:modelValue":n[2]||=e=>S.value=e,name:`project-agent-status`,disabled:F.value},[w(`option`,En,f(x(d)(`projectAgents.status.active`)),1),w(`option`,Dn,f(x(d)(`projectAgents.status.inactive`)),1),w(`option`,On,f(x(d)(`projectAgents.status.archived`)),1)],8,Tn),[[C,S.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.agentType`)),1),r(w(`select`,{"onUpdate:modelValue":n[3]||=e=>k.value=e,name:`project-agent-type`,disabled:F.value},[w(`option`,An,f(x(d)(`projectAgents.agentType.durable`)),1),w(`option`,jn,f(x(d)(`projectAgents.agentType.hr`)),1),B.value&&k.value===`temporary`?(o(),E(`option`,Mn,f(x(d)(`projectAgents.agentType.temporary`)),1)):p(``,!0),B.value&&k.value===`coordinator`?(o(),E(`option`,Nn,f(x(d)(`projectAgents.agentType.coordinator`)),1)):p(``,!0)],8,kn),[[C,k.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.agentId`)),1),r(w(`input`,{"onUpdate:modelValue":n[4]||=e=>s.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:B.value||F.value,placeholder:x(d)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,Pn),[[h,s.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`attention.roleName`)),1),r(w(`input`,{"onUpdate:modelValue":n[5]||=e=>c.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:F.value,placeholder:x(d)(`projectAgents.dialog.namePlaceholder`)},null,8,Fn),[[h,c.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`attention.displayName`)),1),r(w(`input`,{"onUpdate:modelValue":n[6]||=e=>m.value=e,name:`project-agent-display-name`,maxlength:`160`,disabled:F.value},null,8,In),[[h,m.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.occupationEmoji`)),1),r(w(`input`,{"onUpdate:modelValue":n[7]||=e=>g.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:F.value,placeholder:x(d)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Ln),[[h,g.value]])]),B.value?(o(),E(`small`,Rn,f(x(d)(`projectAgents.dialog.idLocked`)),1)):p(``,!0),w(`label`,zn,[w(`span`,null,f(x(d)(`projectAgents.fields.responsibility`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[8]||=e=>_.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:F.value,placeholder:x(d)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,Bn),[[h,_.value]])]),w(`label`,Vn,[w(`span`,null,f(x(d)(`projectAgents.fields.capabilities`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[9]||=e=>v.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:F.value,placeholder:x(d)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Hn),[[h,v.value]])]),w(`label`,Un,[w(`span`,null,f(x(d)(`projectAgents.fields.initialPreferences`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[10]||=e=>b.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:F.value,placeholder:x(d)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,Wn),[[h,b.value]])]),w(`fieldset`,Gn,[w(`legend`,null,f(x(d)(`projectAgents.fields.defaultModelStrategy`)),1),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.executorPolicy`)),1),r(w(`select`,{"onUpdate:modelValue":n[11]||=e=>M.value=e,name:`project-agent-selection-mode`,disabled:F.value},[w(`option`,qn,f(x(d)(`projectAgents.strategy.flexible`)),1),w(`option`,Jn,f(x(d)(`projectAgents.strategy.locked`)),1)],8,Kn),[[C,M.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.modelIntent`)),1),r(w(`select`,{"onUpdate:modelValue":n[12]||=e=>j.value=e,name:`project-agent-model-mode`,disabled:F.value},[...n[17]||=[w(`option`,{value:`adaptive`},`adaptive`,-1),w(`option`,{value:`fast`},`fast`,-1),w(`option`,{value:`balanced`},`balanced`,-1),w(`option`,{value:`deep`},`deep`,-1)]],8,Yn),[[C,j.value]])]),w(`label`,Xn,[w(`span`,null,f(x(d)(`projectAgents.fields.allowList`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[13]||=e=>N.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:F.value,placeholder:x(d)(`projectAgents.dialog.allowListPlaceholder`)},null,8,Zn),[[h,N.value]])]),w(`small`,null,f(M.value===`locked`?x(d)(`projectAgents.strategy.lockedUnavailable`):x(d)(`projectAgents.strategy.providerNeutral`)),1)])]),I.value?(o(),E(`p`,Qn,f(I.value),1)):p(``,!0),w(`footer`,$n,[w(`button`,{class:`quiet-button`,type:`button`,disabled:F.value,onClick:n[14]||=e=>i(`close`)},f(x(d)(`common.actions.cancel`)),9,er),w(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:F.value},[F.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.dialog.saving`)},null,8,[`label`])):(o(),E(`span`,nr,f(B.value?x(d)(`projectAgents.dialog.saveEdit`):x(d)(`projectAgents.dialog.saveCreate`)),1))],8,tr)])],32)],544)):p(``,!0)}}),[[`__scopeId`,`data-v-95db0a3d`]]),ir=[`aria-label`],ar={class:`project-agents-header`},or={key:0,class:`project-agents-header-meta`},sr={class:`project-agent-header-actions`},cr=[`disabled`],lr=[`disabled`],ur={key:0,class:`project-agents-summary`,"aria-live":`polite`},dr={class:`project-agents-toolbar`},fr={class:`project-agents-search`},pr={class:`sr-only`},mr=[`placeholder`],hr=[`aria-label`],gr=[`aria-pressed`,`onClick`],_r={key:3,class:`project-agents-state is-error`,role:`alert`},vr={key:4,class:`project-agents-state`},yr=[`disabled`],br={key:5,class:`project-agents-state`},xr={key:6,class:`project-agents-directory`},Sr=[`aria-label`],Cr=[`aria-current`,`onClick`],wr={class:`project-agent-row-heading`},Tr=[`aria-label`],Er={class:`project-agent-kind`},Dr={class:`project-agent-row-projects`},Or={key:0},kr={key:1},Ar={class:`project-agent-row-responsibility`},jr={class:`project-agent-row-work`},Mr=[`aria-label`],Nr={class:`project-agent-detail-heading`},Pr=[`aria-label`],Fr={key:0},Ir={key:0},Lr={class:`project-agent-detail-actions`},Rr=[`disabled`],zr=[`disabled`],Br={key:1},Vr={key:0,class:`project-agent-detail-notice`,role:`status`},Hr={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},Ur={class:`employee-project-overview-heading`},Wr={id:`employee-project-overview-title`},Gr={key:0,class:`employee-assigned-projects`},Kr={key:1,class:`employee-project-overview-hint`},qr={class:`project-agent-detail-section is-responsibility`},Jr={key:0,class:`project-agent-tags`},Yr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},Xr={class:`project-agent-detail-section`},Zr={class:`project-agent-section-heading`},Qr={key:0,class:`project-agent-task-list`},$r=[`id`],ei={key:0},ti={key:1,class:`project-agent-inline-list`},ni={class:`project-agent-disclosure`,"data-task-details":``},ri=[`aria-label`],ii={class:`project-agent-section-heading`},ai=[`aria-label`],oi={class:`project-agent-execution-summary-table`},si={class:`sr-only`},ci={scope:`col`},li={scope:`col`},ui={scope:`col`},di={scope:`col`},fi={scope:`col`},pi={scope:`col`},mi={scope:`col`},hi={scope:`row`},gi={class:`project-agent-execution-worker`},_i=[`aria-label`],vi={key:0},yi=[`data-label`],bi=[`data-label`],xi=[`data-label`],Si={key:0},Ci={key:1},wi=[`data-label`],Ti=[`href`],Ei={key:1},Di={class:`project-agent-reporter-label`},Oi=[`href`],ki={key:1},Ai=[`data-label`],ji=[`data-label`],Mi={key:1},Ni={key:1,class:`project-agent-muted`},Pi=[`aria-label`],Fi={class:`project-agent-section-heading`},Ii={class:`project-agent-execution-summary-list`},Li=[`aria-label`],Ri={key:1},zi={class:`project-agent-execution-summary-meta`},Bi={key:0},Vi={key:0},Hi={key:1},Ui={key:2},Wi={key:2},Gi={key:3,class:`project-agent-routing-decision`},Ki={class:`project-agent-section-heading`},qi={key:0},Ji={key:1},Yi={key:2},Xi={key:0},Zi={key:3},Qi={key:0},$i={key:4},ea={class:`project-agent-execution-line`},ta={key:0},na={key:1},ra={key:2},ia={key:4},aa={key:5},oa={key:1,class:`project-agent-muted`},sa={class:`project-agent-disclosure`},ca={class:`project-agent-detail-source`,"data-detail-section":`assignments`},la={class:`project-agent-detail-section`},ua={class:`project-agent-section-heading`},da={class:`project-agent-section-tools`},fa={key:0,class:`project-agent-assignment-list`},pa={class:`project-agent-card-actions`},ma=[`onClick`],ha=[`onClick`],ga={key:0},_a={key:1,class:`project-agent-inline-list`},va={class:`project-agent-strategy-note`},ya={key:0},ba={key:2,class:`project-agent-tags`},xa={key:3},Sa={key:1,class:`project-agent-muted`},Ca={class:`project-agent-disclosure`},wa={class:`project-agent-detail-source`,"data-detail-section":`activity`},Ta={class:`project-agent-detail-section`},Ea={class:`project-agent-section-heading`},Da={key:0},Oa={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},ka=[`aria-label`],Aa=[`aria-label`,`aria-pressed`,`onClick`],ja={class:`sr-only`},Ma={key:0,class:`project-agent-day-detail`},Na={key:0,class:`project-agent-muted`},Pa={key:1},Fa={key:1,class:`project-agent-muted`},Ia={class:`project-agent-disclosure`},La={class:`project-agent-detail-meta`},Ra={key:0},za=[`open`],Ba={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},Va={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},Ha={class:`project-agent-section-heading`},Ua={id:`project-agent-recruitment-heading`},Wa={key:0,class:`project-agent-recruitment-list`},Ga={class:`project-agent-card-actions`},Ka=[`disabled`,`onClick`],qa={key:1},Ja=[`disabled`,`onClick`],Ya={key:1},Xa={class:`project-agent-compact-meta`},Za={key:1,class:`project-agent-muted`},Qa={class:`project-agent-detail-source`,"data-detail-section":`executors`},$a={class:`project-agent-detail-section`},eo={class:`project-agent-section-heading`},to={class:`project-agent-muted`},no={key:0,class:`project-agent-tags`},ro={key:1,class:`project-agent-blocked`},io={key:2,class:`project-agent-muted`},ao={class:`project-agent-section-tools`},oo={key:3,class:`project-agent-executor-list`},so=[`onClick`],co=[`disabled`,`onClick`],lo={key:1},uo=[`disabled`,`onClick`],fo={key:1},po={class:`project-agent-detail-source`,"data-detail-section":`clients`},mo={class:`project-agent-detail-section`},ho={class:`project-agent-section-heading`},go={key:0,class:`project-agent-client-list`},_o={key:0},vo={key:1},yo={key:2},bo={key:1,class:`project-agent-muted`},xo={class:`project-agent-detail-source`,"data-detail-section":`routing`},So={class:`project-agent-detail-section`},Co={class:`project-agent-section-heading`},wo={class:`project-agent-section-tools`},To={key:0,class:`project-agent-rule-list`},Eo=[`disabled`,`onClick`],Do={key:1},Oo={key:1,class:`project-agent-muted`},ko={class:`project-agent-note`},Ao={class:`project-agent-detail-source`,"data-detail-section":`learning`},jo={class:`project-agent-detail-section`},Mo={class:`project-agent-section-heading`},No={key:0,class:`project-agent-learning-list`},Po={key:0},Fo={key:1,class:`project-agent-inline-list`},Io={key:0},Lo={key:2,class:`project-agent-evidence-list`},Ro=[`disabled`,`onClick`],zo={key:1},Bo={key:3,class:`project-agent-learning-actions`},Vo=[`disabled`,`onClick`],Ho={key:1},Uo={key:1,class:`project-agent-muted`},Wo={class:`project-agent-note`},Go={key:1,class:`project-agent-detail-placeholder`},Ko=j(s({__name:`ProjectAgentsPage`,setup(i){let s=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],m=k(),y=M(),C=l([]),j=l(!1),ee=l(``),V=l(null),G=l(`all`),re=l(``),X=l(``);O(()=>y.query.agent,e=>{typeof e==`string`&&(X.value=e)},{immediate:!0});let ae=l(!1),le=l(!1),de=l(``),me=l(null),ge=l(!1),_e=l(`assign`),ve=l(null),ye=l(!1),be=l({}),xe=l(``),Se=l(``),Ce=l(!1),we=l(``),Te=l(``),Ee=l(``),De=l(``),Oe=l(``),ke=l(``),Ae=l(!1),je=l(`executor`),Me=l(null),Ne=l(null),Pe=0,Fe=0,Ie=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function Le(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let Re=u(()=>m.state?.personalProjects??[]);async function Be(e){await st(),Ye.value.some(t=>t.agentId===e.agent.agentId)||(V.value=null,G.value=`all`,re.value=``);let t=X.value===e.agent.agentId;X.value=e.agent.agentId,t&&$()}let Z=u(()=>m.activePersonalSpace?.id??``),Ve=u(()=>j.value||!m.state&&(m.runtimeStatus===`idle`||m.runtimeStatus===`loading`)),He=u(()=>ee.value||(!m.state&&m.runtimeStatus===`error`?m.feedback?.message||d(`projectAgents.loadError`):``));function Ue(){m.state?st():m.refresh()}let We=u(()=>new Map(Re.value.map(e=>[e.project_id,e]))),Ge=u(()=>Re.value.map(e=>({id:e.project_id,name:e.profile.name}))),Ke=u({get:()=>V.value??Ge.value.map(e=>e.id),set:e=>{let t=Ge.value.filter(t=>e.includes(t.id)).map(e=>e.id);V.value=t.length===Ge.value.length?null:t}}),qe=u(()=>V.value?.length===1?V.value[0]:``);O([()=>y.query.project,Ge],([e,t])=>{typeof e==`string`&&t.some(t=>t.id===e)&&(V.value=[e])},{immediate:!0});let Je=u(()=>[{value:`all`,label:d(`projectAgents.status.all`)},{value:`active`,label:d(`projectAgents.status.active`)},{value:`inactive`,label:d(`projectAgents.status.inactive`)},{value:`archived`,label:d(`projectAgents.status.archived`)}]),Ye=u(()=>{let e=re.value.trim().toLocaleLowerCase(b());return C.value.filter(e=>V.value===null||Pt(e).some(({id:e})=>V.value.includes(e))).filter(e=>G.value===`all`||e.profile.status===G.value).filter(t=>!e||It(t).toLocaleLowerCase(b()).includes(e)).sort(At)}),Q=u(()=>Ye.value.find(e=>e.agentId===X.value)??null),Xe=u(()=>Q.value?te(Q.value):null),Ze=u(()=>R.value.find(e=>e.id===Xe.value)),Qe=u(()=>Q.value?Pt(Q.value).filter(e=>We.value.get(e.id)?.profile.lifecycle!==`archived`):[]),$e=u(()=>C.value.filter(({profile:e})=>e.status===`active`).length),et=u(()=>C.value.reduce((e,t)=>e+Nt(t).length,0)),tt=u(()=>new Set(C.value.flatMap(e=>Nt(e).map(({personalProjectId:e})=>e))).size),nt=u(()=>qe.value?qe.value:Q.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Q.value?.personalProjectId??Re.value[0]?.project_id??null),rt=u(()=>Q.value?.activity??null),it=u(()=>rt.value?.days.find(({date:e})=>e===Se.value)??null),at=u(()=>Object.entries(Q.value?.learningEvidence??{})),ot=u(()=>Q.value?.recruitments??[]);a(()=>{m.runtimeStatus===`idle`&&m.refresh()}),O(Z,e=>{++Pe,++Fe,be.value={},X.value=``,C.value=[],V.value=typeof y.query.project==`string`&&Ge.value.some(e=>e.id===y.query.project)?[y.query.project]:null,ee.value=``,e?st(e):j.value=!1},{immediate:!0}),O(Ye,e=>{if(!e.some(e=>e.agentId===X.value)){let t=e.find(e=>e.agentId===y.query.agent||typeof y.query.agent==`string`&&e.legacyAgentIds?.includes(y.query.agent));X.value=t?.agentId??e[0]?.agentId??``}e.some(e=>e.activity?.days.some(({date:e})=>e===Se.value))||(Se.value=``)},{immediate:!0}),O([X,Z],([e,t])=>{Se.value=``,e&&t&&$(e,t)},{immediate:!0});async function st(e=Z.value){if(!e)return;let t=++Pe;j.value=!0,ee.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([F(`/api/project-agents?${n}`),F(`/api/project-agent-tasks?${n}`)]);if(t!==Pe)return;if(z(e),r.status===`rejected`)throw r.reason;if(t===Pe){let e=Gn(ce(r.value)),t=i.status===`fulfilled`?Rn(i.value).filter(e=>Ie.has(e.status)):[];C.value=An(e,t)}}catch(e){t===Pe&&(ee.value=e instanceof Error?e.message:d(`projectAgents.loadError`))}finally{t===Pe&&(j.value=!1)}}async function $(e=X.value,t=Z.value){let n=C.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++Fe;ye.value=!0,xe.value=``,ut(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=pe(),o=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),c={assignments:F(`/api/project-agent-assignments?${i}`),tasks:ct(i),activity:F(`/api/project-agent-activity?${o}`),recruitments:F(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:F(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:F(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:F(`/api/project-agent-routing-learning?${i}`)};await Promise.all(s.map(async i=>{try{let a=await c[i];if(!ht(r,e,t))return;gt(n,i,a),dt(e,i,{status:`ready`,error:``})}catch(n){if(!ht(r,e,t))return;dt(e,i,{status:`error`,error:n instanceof Error?n.message:d(`projectAgents.detail.sectionUnavailable`)})}})),ht(r,e,t)&&(ye.value=!1)}async function ct(e){let t=typeof y.query.project==`string`?y.query.project:``,n=typeof y.query.task==`string`?y.query.task:``;t&&(e=new URLSearchParams([...e,[`personalProjectId`,t]]));let r=await F(`/api/project-agent-tasks?${e}`);if(!n||!t)return r;let i=Rn(r);if(!i.some(e=>e.taskId===n)){let r=ie(await F(`/api/project-agent-tasks/${encodeURIComponent(n)}?${e}`));r&&r.personalProjectId===t&&r.participants.some(t=>t.agentId===e.get(`agentId`))&&i.unshift(r)}return i}O([()=>y.query.task,ye],async([t,n])=>{n||typeof t!=`string`||(await e(),document.getElementById(`task-${t}`)?.scrollIntoView?.({block:`nearest`}))});function lt(e=`idle`){return Object.fromEntries(s.map(t=>[t,{status:e,error:``}]))}function ut(e,t){be.value={...be.value,[e]:lt(t)}}function dt(e,t,n){be.value={...be.value,[e]:{...be.value[e]??lt(),[t]:n}}}function ft(e){let t=(Array.isArray(e)?e:[e]).map(e=>be.value[X.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 pt(e){return d(`projectAgents.detail.loading.`+e)}function ht(e,t,n){return e===Fe&&t===X.value&&n===Z.value}function gt(e,t,n){let r;switch(t){case`assignments`:_t(n,[`assignments`,`items`]),r={assignments:Nn(n,e)};break;case`tasks`:_t(n,[`tasks`,`items`]),r={tasks:Rn(n)};break;case`activity`:{let e=he(n,{agentId:X.value,personalSpaceId:Z.value});if(!e)throw Error(d(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:_t(n,[`recruitments`,`items`]),r={recruitments:Bn(n).filter(t=>Vn(t,e))};break;case`executors`:_t(n,[`executors`,`items`]),r={executorDirectory:Fn(n),clientEvidence:Hn(n)};break;case`routingRules`:_t(n,[`rules`,`items`]),r={routingRules:Un(n)};break;case`learning`:_t(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:Wn(n)};break}C.value=C.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function _t(e,t,n=!1){if(Array.isArray(e))return;let r=q(e);if(!t.some(e=>Array.isArray(r[e])||n&&vt(r[e])))throw Error(d(`projectAgents.detail.sectionUnavailable`))}function vt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function yt(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=Q.value;if(!(!r||!i||!Z.value||we.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){xe.value=d(`projectAgents.learning.resetUnavailable`);return}we.value=r,Te.value=t;try{await I(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:Z.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`:Le(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await $()}catch(e){xe.value=e instanceof Error?e.message:d(`projectAgents.learning.updateFailed`)}finally{we.value=``,Te.value=``}}}async function bt(e,t){if(!(!Z.value||Ee.value)){Ee.value=e.recruitmentId,De.value=t;try{await P(`/api/project-agent-recruitments/decision`,{personalSpaceId:Z.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:d(`projectAgents.recruitment.${t}Reason`)}),await $()}catch(e){xe.value=e instanceof Error?e.message:d(`projectAgents.recruitment.decisionFailed`)}finally{Ee.value=``,De.value=``}}}async function xt(e,t){if(!(!Z.value||Oe.value)){Oe.value=e.executorId,ke.value=t===`authorized`?`authorize`:`revoke`;try{await P(`/api/executors/authorization`,{personalSpaceId:Z.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:Le(`console-executor:${e.executorId}:${t}`),reason:d(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await $()}catch(e){xe.value=e instanceof Error?e.message:d(`projectAgents.routing.authorizationFailed`)}finally{Oe.value=``,ke.value=``}}}function St(e=null){je.value=`executor`,Me.value=e,Ne.value=null,Ae.value=!0}function Ct(e=null){je.value=`rule`,Ne.value=e,Me.value=null,Ae.value=!0}function wt(){Ae.value=!1,Me.value=null,Ne.value=null}function Tt(e){Q.value&&(C.value=C.value.map(t=>t.agentId===Q.value?.agentId?{...t,executorDirectory:Kn([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),wt())}function Et(e){Q.value&&(C.value=C.value.map(t=>t.agentId===Q.value?.agentId?{...t,routingRules:Kn([...t.routingRules??[],e],({ruleId:e})=>e)}:t),wt())}function Dt(e){je.value===`executor`?Tt(e):Et(e)}async function Ot(e){if(!(!Z.value||!e.ruleId||Ee.value)){Ee.value=`rule:${e.ruleId}`,De.value=`disable`;try{await I(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:Z.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await $()}catch(e){xe.value=e instanceof Error?e.message:d(`projectAgents.routing.updateFailed`)}finally{Ee.value=``,De.value=``}}}async function kt(e){if(e.profile.cleanupEligible){Ce.value=!0,ye.value=!0;try{await L(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await st()}catch(e){xe.value=e instanceof Error?e.message:d(`projectAgents.source.cleanupFailed`)}finally{Ce.value=!1,ye.value=!1}}}function At(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,b())||e.agentId.localeCompare(t.agentId,b())}function jt(e){return e?We.value.get(e)?.profile.name??e:d(`projectAgents.notReported`)}function Mt(e){return e.assignments??(e.personalProjectId?[Ft(e)]:[])}function Nt(e){return[...new Map(Mt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function Pt(e){let t=te(e);return(t?R.value.find(e=>e.id===t):void 0)?.managedProjects??Nt(e).map(e=>({id:e.personalProjectId,name:jt(e.personalProjectId)}))}function Ft(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 It(e){return[e.agentId,e.profile.name,e.profile.displayName??``,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Mt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function Lt(){me.value=null,ae.value=!0}function Rt(e=``){de.value=e,le.value=!0}function Bt(e){me.value=e,ae.value=!0}function Vt(){ae.value=!1,me.value=null}function Ht(e,t=null,n=`assign`){let r=te(e);if(n===`assign`&&r){Rt(r);return}me.value=e,ve.value=t,_e.value=n,ge.value=!0}function Wt(){ge.value=!1,ve.value=null,_e.value=`assign`}function Gt(e){me.value&&(C.value=C.value.map(t=>t.agentId===me.value?.agentId?{...t,assignments:Kn([...t.assignments??[],e],({assignmentId:e})=>e)}:t),X.value=me.value.agentId,Wt())}function Kt(){Wt(),$()}function qt(e){let t=jn(e),n=C.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));C.value=Gn([...n,t]),t.personalProjectId&&(V.value=[t.personalProjectId]),G.value=`all`,re.value=``,X.value=t.agentId,m.notify(d(`projectAgents.saved`))}function Jt(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(b(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function Yt(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(b(),{month:`short`,day:`numeric`}).format(t)}function Xt(e){return e?.mode??`adaptive`}function Qt(e){return e?.mode??`flexible`}function $t(e){return e?.mode===`locked`}function en(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function tn(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?oe(t):null}function nn(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||d(`projectAgents.notReported`)}function rn(e){return e.workerOccupationEmoji||``}function an(e){return cn(e.workerStatus||e.status)}function on(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||d(`projectAgents.notReported`)}function sn(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function cn(e){return e?gn(e):d(`projectAgents.notReported`)}function ln(e){if(!e)return d(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=d(t);return n===t?e:n}function un(e){return d(`projectAgents.tokenSources.${e}`)}function dn(e){return e?`${new Intl.NumberFormat(b()).format(e.totalTokens)} Token · ${un(e.source)}`:d(`projectAgents.notReported`)}function fn(e){return pn(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function pn(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 mn(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function hn(e){return(e.tasks??[]).find(e=>Ie.has(e.status))??null}function gn(e){let t=`projectAgents.taskStatus.${e}`,n=d(t);return n===t?e:n}function _n(e){return d(`projectAgents.agentType.${e??`durable`}`)}function vn(e){return d(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function yn(e){return qn([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function xn(e,t){return e.clientEvidence?.find(e=>e.client===t)}function Sn(e,t){return xn(e,t)?.actualUse?.count??0}function Cn(e){return e.neutral!==!1||e.sampleCount<=0}function wn(e){return Cn(e)?d(`projectAgents.learning.neutral`):d(`projectAgents.learning.recorded`)}function Tn(e){return e.recentWeightedSamples??d(`projectAgents.notReported`)}function En(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 On(e){Se.value=e.date}function kn(e,t){return t.ownerAgentId===e.agentId||t.leadAgentId===e.agentId||t.coordinatorAgentId===e.agentId||t.participants.some(t=>t.agentId===e.agentId)}function An(e,t){return e.map(e=>{let n=t.filter(t=>kn(e,t));return n.length?{...e,tasks:Kn([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function jn(e){let t=q(e),n=q(t.profile),r=J(t,`agentId`,`agent_id`)??``,i=J(t,`createdAt`,`created_at`)??``,a=J(t,`updatedAt`,`updated_at`)??i,o={name:J(n,`name`,`name`)??r,displayName:J(n,`displayName`,`display_name`),responsibility:J(n,`responsibility`,`responsibility`)??``,capabilities:Y(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:Y(K(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:J(n,`status`,`status`)??`active`,occupationEmoji:J(n,`occupationEmoji`,`occupation_emoji`),agentType:J(n,`agentType`,`agent_type`),workKinds:Y(K(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:W(K(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:se(K(n,`executorPolicy`,`executor_policy`)),allowedClients:Y(K(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),character:{judgment:String(q(n.character).judgment??``),taste:String(q(n.character).taste??``),personality:String(q(n.character).personality??``)},expectations:J(n,`expectations`,`expectations`)??``,testSource:J(n,`testSource`,`test_source`),cleanupEligible:K(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:J(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:J(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:J(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>U(e,s)).filter(Boolean):void 0,legacyAgentIds:Y(t.legacyAgentIds??t.legacy_agent_ids).filter(e=>typeof e==`string`),recruitments:Bn(t.recruitments??t.recruitmentHistory).filter(e=>Vn(e,s)),recruitmentId:J(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:J(t,`temporaryTaskId`,`temporary_task_id`),workStatus:J(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:J(t,`currentTaskId`,`current_task_id`),observedClients:Y(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:J(t,`recruitedAt`,`recruited_at`),recruitmentReason:J(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:J(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:Y(t.tasks??t.taskHistory).map(ie).filter(Boolean),activity:he(t.activity,{agentId:X.value,personalSpaceId:Z.value}),clientEvidence:Hn(t.clientEvidence??t.client_evidence),routingRules:Un(t.routingRules??t.routing_rules),learningEvidence:Ln(t.learningEvidence??t.learning_evidence)}}function Mn(e){let t=q(e),n=J(t,`client`,`client`);if(!n)return null;let r=q(K(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:J(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:J(r,`lastUsedAt`,`last_used_at`)}:null}}function Nn(e,t){let n=q(e);return Y(Array.isArray(e)?e:n.assignments??n.items).map(e=>U(e,t)).filter(e=>!!e)}function Pn(e){let t=q(e),n=J(t,`provider`,`provider`),r=J(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:Y(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:Y(K(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:Y(K(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:J(t,`observedAt`,`observed_at`),unavailableReason:J(t,`unavailableReason`,`unavailable_reason`)}}function Fn(e){let t=q(e);return Y(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=q(e),n=J(t,`executorId`,`executor_id`);if(!n)return null;let r=q(K(t,`actualUse`,`actual_use`));return{executorId:n,label:J(t,`label`,`label`),provider:J(t,`provider`,`provider`),model:J(t,`model`,`model`),client:J(t,`client`,`client`),availabilityStatus:J(t,`availabilityStatus`,`availability_status`),personalSpaceId:J(t,`personalSpaceId`,`personal_space_id`),displayName:J(t,`displayName`,`display_name`),executorKind:J(t,`executorKind`,`executor_kind`),capabilities:Y(K(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof K(t,`globalPriority`,`global_priority`)==`number`?K(t,`globalPriority`,`global_priority`):null,healthRequired:K(t,`healthRequired`,`health_required`)===!0,registrationStatus:J(t,`registrationStatus`,`registration_status`),permissionStatus:J(t,`permissionStatus`,`permission_status`),preflightStatus:J(t,`preflightStatus`,`preflight_status`),healthStatus:J(t,`healthStatus`,`health_status`),workspacePermission:typeof K(t,`workspacePermission`,`workspace_permission`)==`boolean`?K(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof K(t,`permissionRevision`,`permission_revision`)==`number`?K(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:J(t,`registeredAt`,`registered_at`),updatedAt:J(t,`updatedAt`,`updated_at`),testSource:J(t,`testSource`,`test_source`),cleanupEligible:K(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:Y(K(t,`advertisedModels`,`advertised_models`)).map(Pn).filter(e=>e!==null),availableModels:Y(K(t,`availableModels`,`available_models`)).map(Pn).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:J(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function In(e){let t=q(e),n=J(t,`ruleId`,`rule_id`);if(!n)return null;let r=J(t,`status`,`status`);return{ruleId:n,scope:J(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:J(t,`personalProjectId`,`personal_project_id`),taskId:J(t,`taskId`,`task_id`),workKind:J(t,`workKind`,`work_kind`),agentId:J(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:Y(K(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:Y(K(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:W(K(t,`modelStrategy`,`model_strategy`)),reason:J(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:J(t,`createdAt`,`created_at`),updatedAt:J(t,`updatedAt`,`updated_at`)}}function Ln(e){let t=q(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(q(n))).map((e,t)=>{let n=q(e),r=J(n,`personalProjectId`,`personal_project_id`),i=J(n,`workKind`,`work_kind`),a=J(n,`executorId`,`executor_id`)??J(n,`executor`,`executor`),o=W(K(n,`modelStrategy`,`model_strategy`)),s=J(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=Y(K(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=q(e),n=J(t,`signal`,`signal`),r=J(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof K(t,`decayWeight`,`decay_weight`)==`number`?K(t,`decayWeight`,`decay_weight`):null;return{evidenceId:J(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:J(t,`occurredAt`,`occurred_at`)}}),u=typeof K(n,`weightedSuccess`,`weighted_success`)==`number`?K(n,`weightedSuccess`,`weighted_success`):0,d=typeof K(n,`weightedFailure`,`weighted_failure`)==`number`?K(n,`weightedFailure`,`weighted_failure`):0,f=K(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof K(n,`sampleCount`,`sample_count`)==`number`?K(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof K(n,`recentCount`,`recent_count`)==`number`?K(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:J(n,`asOf`,`as_of`)??J(n,`updatedAt`,`updated_at`),outcomes:{success:typeof K(n,`successCount`,`success_count`)==`number`?K(n,`successCount`,`success_count`):void 0,rework:typeof K(n,`reworkCount`,`rework_count`)==`number`?K(n,`reworkCount`,`rework_count`):void 0,failure:typeof K(n,`failureCount`,`failure_count`)==`number`?K(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof K(n,`ratingCount`,`rating_count`)==`number`?K(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:K(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function Rn(e){let t=q(e);return Y(Array.isArray(e)?e:t.tasks??t.items).map(ie).filter(Boolean)}function zn(e){let t=q(e),n=J(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:J(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:J(t,`personalProjectId`,`personal_project_id`)??``,taskId:J(t,`taskId`,`task_id`)??``,coordinatorAgentId:J(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:J(t,`hrAgentId`,`hr_agent_id`),positionKind:J(t,`positionKind`,`position_kind`)??`durable`,workKind:J(t,`workKind`,`work_kind`)??``,requiredCapabilities:Y(K(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:J(t,`reasonCode`,`reason_code`)??``,reason:J(t,`reason`,`reason`)??``,status:J(t,`status`,`status`)??`unknown`,confirmationMode:J(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:J(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:J(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:J(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:J(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:J(t,`testSource`,`test_source`),cleanupEligible:K(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:J(t,`createdAt`,`created_at`)??``,updatedAt:J(t,`updatedAt`,`updated_at`)??``,fulfilledAt:J(t,`fulfilledAt`,`fulfilled_at`)}:null}function Bn(e){let t=q(e);return Y(Array.isArray(e)?e:t.recruitments??t.items).map(zn).filter(e=>!!e)}function Vn(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function Hn(e){let t=q(e);return Y(Array.isArray(e)?e:t.clients??t.executors??t.items).map(Mn).filter(Boolean)}function Un(e){let t=q(e);return Y(Array.isArray(e)?e:t.rules??t.items).map(In).filter(Boolean)}function Wn(e){let t=q(e);return Ln(t.learningEvidence??t.learning_evidence??e)}function Gn(e){let t=new Map;return e.map(jn).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Mt(n),...Mt(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:qn([...n.profile.capabilities,...e.profile.capabilities]),workKinds:qn([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:qn([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:Kn(r,({assignmentId:e})=>e),recruitments:Kn([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:Kn(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:qn([...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 Kn(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function qn(e){return[...new Set(e)]}return(e,i)=>(o(),E(`section`,{class:`view project-agents-view`,"aria-label":x(d)(`projectAgents.aria`)},[w(`header`,ar,[w(`div`,null,[w(`h2`,null,f(x(d)(`projectAgents.title`)),1),!Ve.value&&!He.value?(o(),E(`p`,or,f(x(d)(`projectAgents.stats.total`,{count:C.value.length}))+` · `+f(x(d)(`projectAgents.stats.assignments`,{count:et.value}))+` · `+f(x(d)(`projectAgents.stats.projects`,{count:tt.value})),1)):p(``,!0)]),w(`div`,sr,[w(`button`,{class:`quiet-button`,type:`button`,disabled:!Z.value,onClick:Lt},f(x(d)(`projectAgents.add`)),9,cr),w(`button`,{class:`project-agent-add`,type:`button`,disabled:!Z.value,onClick:i[0]||=e=>Rt()},f(x(d)(`employees.recruit`)),9,lr)])]),T(fe,{open:le.value,"personal-space-id":Z.value,projects:Re.value,"template-id":de.value,"default-project-ids":V.value??[],onClose:i[1]||=e=>le.value=!1,onRecruited:Be},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),!Ve.value&&!He.value?(o(),E(`div`,ur,[w(`span`,null,f(x(d)(`projectAgents.stats.active`,{count:$e.value})),1),w(`span`,null,f(x(d)(`projectAgents.stats.noOnlineClaim`)),1)])):p(``,!0),w(`div`,dr,[T(ue,{modelValue:Ke.value,"onUpdate:modelValue":i[2]||=e=>Ke.value=e,class:`project-agents-project-filter`,compact:``,projects:Ge.value,label:x(d)(`employees.filterLabel`),hint:x(d)(`employees.filterHint`),"empty-label":x(d)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),w(`label`,fr,[w(`span`,pr,f(x(d)(`projectAgents.searchLabel`)),1),r(w(`input`,{"onUpdate:modelValue":i[3]||=e=>re.value=e,type:`search`,placeholder:x(d)(`projectAgents.searchPlaceholder`)},null,8,mr),[[h,re.value]])]),w(`div`,{class:`project-agents-status-filter`,"aria-label":x(d)(`projectAgents.fields.status`)},[(o(!0),E(_,null,n(Je.value,e=>(o(),E(`button`,{key:e.value,type:`button`,"aria-pressed":G.value===e.value,onClick:t=>G.value=e.value},f(e.label),9,gr))),128))],8,hr)]),qe.value?(o(),D(zt,{key:qe.value,"personal-space-id":Z.value,"personal-project-id":qe.value,"project-name":jt(qe.value),agents:C.value,onSelect:i[4]||=e=>X.value=e},null,8,[`personal-space-id`,`personal-project-id`,`project-name`,`agents`])):p(``,!0),Ve.value?(o(),D(A,{key:2,label:x(m).state?x(d)(`projectAgents.loading`):x(d)(`common.status.loadingConsole`)},null,8,[`label`])):He.value?(o(),E(`div`,_r,[w(`p`,null,f(He.value),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:Ue},f(x(d)(`projectAgents.retry`)),1)])):C.value.length?Ye.value.length?(o(),E(`div`,xr,[w(`div`,{class:`project-agent-list`,role:`list`,"aria-label":x(d)(`projectAgents.listLabel`)},[(o(!0),E(_,null,n(Ye.value,e=>(o(),E(`div`,{key:e.agentId,class:`project-agent-row-shell`},[w(`button`,{type:`button`,class:S([`project-agent-row`,{selected:X.value===e.agentId}]),"aria-current":X.value===e.agentId?`true`:void 0,onClick:t=>X.value=e.agentId},[w(`span`,wr,[e.profile.occupationEmoji?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${x(d)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},f(e.profile.occupationEmoji),9,Tr)):p(``,!0),w(`strong`,null,f(e.profile.displayName||e.profile.name),1),w(`i`,Er,f(_n(e.profile.agentType)),1),w(`i`,{class:S(`is-${e.profile.status}`)},f(x(d)(`projectAgents.status.${e.profile.status}`)),3)]),w(`span`,Dr,[(o(!0),E(_,null,n(Pt(e).slice(0,3),e=>(o(),E(`b`,{key:e.id},f(e.name),1))),128)),Pt(e).length>3?(o(),E(`b`,Or,`+`+f(Pt(e).length-3),1)):p(``,!0),Pt(e).length?p(``,!0):(o(),E(`em`,kr,f(x(d)(`employees.noAssignedProjects`)),1))]),w(`span`,Ar,f(e.profile.responsibility||x(d)(`projectAgents.notReported`)),1),w(`span`,jr,[hn(e)?(o(),E(_,{key:0},[w(`i`,{class:S([`project-agent-work-dot`,{"is-live":hn(e).status===`running`}]),"aria-hidden":`true`},null,2),t(f(gn(hn(e).status))+` · `+f(hn(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(o(),E(_,{key:1},[t(f(gn(e.workStatus))+` · `+f(x(d)(`projectAgents.detail.stateReported`)),1)],64)):(o(),E(_,{key:2},[t(f(x(d)(`projectAgents.detail.noRun`)),1)],64))])],10,Cr),T(B,{"agent-id":e.agentId},null,8,[`agent-id`])]))),128))],8,Sr),Q.value?(o(),E(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Q.value.profile.displayName||Q.value.profile.name},[w(`header`,null,[w(`div`,Nr,[w(`h3`,null,[Q.value.profile.occupationEmoji?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${x(d)(`projectAgents.fields.occupationEmoji`)}: ${Q.value.profile.occupationEmoji}`},f(Q.value.profile.occupationEmoji),9,Pr)):p(``,!0),t(f(Q.value.profile.displayName||Q.value.profile.name)+` `,1),T(B,{"agent-id":Q.value.agentId},null,8,[`agent-id`])]),w(`p`,null,[t(f(_n(Q.value.profile.agentType)),1),Q.value.isTestRole?(o(),E(`span`,Fr,[t(` · `+f(x(d)(`projectAgents.source.testRole`)),1),Q.value.profile.testSource?(o(),E(`span`,Ir,` · `+f(Q.value.profile.testSource),1)):p(``,!0)])):p(``,!0)])]),w(`div`,Lr,[w(`button`,{class:`quiet-button`,type:`button`,disabled:ye.value,onClick:i[5]||=e=>$()},f(x(d)(`projectAgents.detail.refresh`)),9,Rr),w(`button`,{class:`quiet-button`,type:`button`,onClick:i[6]||=e=>Bt(Q.value)},f(x(d)(`projectAgents.edit`)),1),Q.value.profile.cleanupEligible?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:ye.value,onClick:i[7]||=e=>kt(Q.value)},[Ce.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.source.cleanupLoading`)},null,8,[`label`])):(o(),E(`span`,Br,f(x(d)(`projectAgents.source.cleanup`)),1))],8,zr)):p(``,!0)])]),xe.value?(o(),E(`p`,Vr,f(xe.value),1)):p(``,!0),Xe.value?(o(),E(`section`,Hr,[w(`div`,Ur,[w(`div`,null,[w(`h4`,Wr,f(Ze.value?.management?.mode===`all`?x(d)(`employees.scope.continuousAll`):x(d)(`employees.scope.label`)),1),w(`p`,null,f(x(d)(`employees.assignedCount`,{count:Qe.value.length})),1)]),w(`button`,{class:`project-agent-add`,type:`button`,onClick:i[8]||=e=>Rt(Xe.value)},f(x(d)(`employees.manageProjects`)),1)]),Qe.value.length?(o(),E(`div`,Gr,[(o(!0),E(_,null,n(Qe.value,e=>(o(),D(x(N),{key:e.id,to:`/employees/${encodeURIComponent(Xe.value)}?project=${encodeURIComponent(e.id)}`},{default:c(()=>[w(`span`,null,f(e.name),1),i[12]||=w(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[w(`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))])):(o(),E(`p`,Kr,f(x(d)(`employees.manageHint`)),1))])):p(``,!0),w(`section`,qr,[w(`h4`,null,f(x(d)(`projectAgents.fields.responsibility`)),1),w(`p`,null,f(Q.value.profile.responsibility||x(d)(`projectAgents.notReported`)),1),Q.value.profile.capabilities.length?(o(),E(`div`,Jr,[(o(!0),E(_,null,n(Q.value.profile.capabilities,e=>(o(),E(`span`,{key:e},f(e),1))),128))])):p(``,!0)]),w(`div`,Yr,[T(Ut,v(ft(`tasks`),{label:pt(`tasks`),onRetry:$}),{default:c(()=>[w(`section`,Xr,[w(`div`,Zr,[w(`h4`,null,f(x(d)(`projectAgents.sections.tasks`)),1),w(`span`,null,f(Q.value.tasks?.length??0),1)]),Q.value.tasks?.length?(o(),E(`div`,Qr,[(o(!0),E(_,null,n(Q.value.tasks,e=>(o(),E(`article`,{id:`task-${e.taskId}`,key:e.taskId,class:S([`project-agent-task-card`,{"is-linked":e.taskId===x(y).query.task}])},[w(`header`,null,[w(`div`,null,[w(`strong`,null,f(e.title),1),w(`small`,null,f(jt(e.personalProjectId)),1)]),w(`i`,{class:S(`is-${e.status}`)},f(gn(e.status)),3)]),e.resultSummary||e.failureReason?(o(),E(`p`,ei,f(e.resultSummary||e.failureReason),1)):p(``,!0),w(`small`,null,f(x(d)(`projectAgents.fields.collaborators`))+` · `+f(e.participants.length),1),e.participants.length?(o(),E(`div`,ti,[(o(!0),E(_,null,n(e.participants,t=>(o(),E(`span`,{key:`${e.taskId}:${t.agentId}`},f(C.value.find(e=>e.agentId===t.agentId)?.profile.displayName||C.value.find(e=>e.agentId===t.agentId)?.profile.name||t.agentId)+` · `+f(ln(t.role)),1))),128))])):p(``,!0),w(`details`,ni,[w(`summary`,null,f(x(d)(`projectAgents.taskDetails`)),1),w(`small`,null,f(e.taskId),1),e.executionSummary===void 0?p(``,!0):(o(),E(`section`,{key:0,class:`project-agent-execution-summary`,"aria-label":x(d)(`projectAgents.fields.executionSummary`)},[w(`div`,ii,[w(`h5`,null,f(x(d)(`projectAgents.fields.executionSummary`)),1),w(`span`,null,f(e.executionSummary.length),1)]),e.executionSummary.length?(o(),E(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":x(d)(`projectAgents.fields.executionSummary`)},[w(`table`,oi,[w(`caption`,si,f(x(d)(`projectAgents.fields.executionSummary`)),1),w(`thead`,null,[w(`tr`,null,[w(`th`,ci,f(x(d)(`projectAgents.fields.worker`)),1),w(`th`,li,f(x(d)(`projectAgents.fields.workSummary`)),1),w(`th`,ui,f(x(d)(`projectAgents.fields.toolsUsed`)),1),w(`th`,di,f(x(d)(`projectAgents.fields.executionEnvironment`)),1),w(`th`,fi,f(x(d)(`projectAgents.fields.sourceSession`)),1),w(`th`,pi,f(x(d)(`projectAgents.fields.tokenUsage`)),1),w(`th`,mi,f(x(d)(`projectAgents.fields.terminalStatus`)),1)])]),w(`tbody`,null,[(o(!0),E(_,null,n(e.executionSummary,(n,r)=>(o(),E(`tr`,{key:e.taskId+`:execution:`+(n.workerId||n.agentId||r),class:`project-agent-execution-summary-row`},[w(`th`,hi,[w(`span`,gi,[sn(n)?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":x(d)(`projectAgents.fields.occupationEmoji`)+`: `+sn(n)},f(sn(n)),9,_i)):p(``,!0),t(` `+f(on(n)),1)]),n.agentId||n.workerId?(o(),E(`small`,vi,f(n.workerId||n.agentId),1)):p(``,!0),w(`small`,null,f(ln(n.participantRole)),1)]),w(`td`,{"data-label":x(d)(`projectAgents.fields.workSummary`)},f(n.workSummary||x(d)(`projectAgents.notReported`)),9,yi),w(`td`,{"data-label":x(d)(`projectAgents.fields.toolsUsed`)},f(n.toolsUsed?n.toolsUsed.join(` · `)||x(d)(`projectAgents.noToolsUsed`):x(d)(`projectAgents.notReported`)),9,bi),w(`td`,{"data-label":x(d)(`projectAgents.fields.executionEnvironment`)},[w(`strong`,null,f(n.executor||x(d)(`projectAgents.notReported`)),1),n.executorId&&n.executorId!==n.executor?(o(),E(`small`,Si,f(n.executorId),1)):p(``,!0),n.actualModelProvider||n.actualModel?(o(),E(`small`,Ci,f([n.actualModelProvider,n.actualModel].filter(Boolean).join(` · `)),1)):p(``,!0)],8,xi),w(`td`,{"data-label":x(d)(`projectAgents.fields.sourceSession`)},[w(`span`,null,[n.workerRuntime?(o(),E(_,{key:0},[t(f(x(d)(`projectAgents.fields.workerSession`))+` · `,1)],64)):p(``,!0),t(f(vn(n.workerRuntime?.application||n.sourceApplication)),1)]),fn(n)?(o(),E(`a`,{key:0,href:fn(n)||void 0,target:`_blank`,rel:`noreferrer`},f(mn(n)||fn(n)),9,Ti)):(o(),E(`small`,Ei,f(mn(n)||x(d)(`projectAgents.notReported`)),1)),n.workerRuntime?(o(),E(_,{key:2},[w(`small`,Di,f(x(d)(`projectAgents.fields.reporterSession`))+` · `+f(vn(n.sourceApplication)),1),pn(n.sourceSessionUrl)?(o(),E(`a`,{key:0,href:pn(n.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},f(n.sourceSessionId||n.sourceSessionUrl),9,Oi)):(o(),E(`small`,ki,f(n.sourceSessionId||x(d)(`projectAgents.notReported`)),1))],64)):p(``,!0)],8,wi),w(`td`,{"data-label":x(d)(`projectAgents.fields.tokenUsage`)},f(dn(n.tokenUsage)),9,Ai),w(`td`,{"data-label":x(d)(`projectAgents.fields.terminalStatus`)},[n.status?(o(),E(`i`,{key:0,class:S(`is-`+n.status)},f(cn(n.status)),3)):(o(),E(`span`,Mi,f(x(d)(`projectAgents.notReported`)),1))],8,ji)]))),128))])])],8,ai)):(o(),E(`p`,Ni,f(x(d)(`projectAgents.detail.noExecutionSummary`)),1))],8,ri)),x(H)(e).length?(o(),E(`section`,{key:1,class:`project-agent-worker-event-evidence`,"aria-label":x(d)(`projectAgents.fields.workerEventEvidence`)},[w(`div`,Fi,[w(`h5`,null,f(x(d)(`projectAgents.fields.workerEventEvidence`)),1),w(`span`,null,f(x(H)(e).length),1)]),w(`ul`,Ii,[(o(!0),E(_,null,n(x(H)(e),n=>(o(),E(`li`,{key:`${e.taskId}:worker-event:${n.eventId}`,class:`project-agent-worker-event-row`},[w(`header`,null,[w(`strong`,null,[rn(n)?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${x(d)(`projectAgents.fields.occupationEmoji`)}: ${rn(n)}`},f(rn(n)),9,Li)):p(``,!0),t(f(nn(n)),1),n.agentId?(o(),E(`small`,Ri,f(x(d)(`projectAgents.fields.agentId`))+` · `+f(n.agentId),1)):p(``,!0)]),w(`i`,{class:S(`is-${n.workerStatus||n.status}`)},f(an(n)),3)]),w(`dl`,zi,[w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.workSummary`)),1),w(`dd`,null,f(n.summary||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.sourceApplication`)),1),w(`dd`,null,f(vn(n.sourceApplication)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.sourceSession`)),1),w(`dd`,null,f(n.sourceSessionId||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.tokenUsage`)),1),w(`dd`,null,f(dn(n.tokenUsage)),1)]),n.actualModelProvider||n.actualModel?(o(),E(`div`,Bi,[w(`dt`,null,f(x(d)(`projectAgents.fields.actualModel`)),1),w(`dd`,null,[n.actualModelProvider?(o(),E(`span`,Vi,f(n.actualModelProvider),1)):p(``,!0),n.actualModelProvider&&n.actualModel?(o(),E(`span`,Hi,` · `)):p(``,!0),n.actualModel?(o(),E(`span`,Ui,f(n.actualModel),1)):p(``,!0)])])):p(``,!0),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.reportedAt`)),1),w(`dd`,null,f(Jt(n.createdAt)),1)])])]))),128))])],8,Pi)):p(``,!0),e.effectiveModelStrategy?(o(),E(`small`,Wi,f(x(d)(`projectAgents.fields.strategySource`))+` · `+f(e.modelStrategySource||x(d)(`projectAgents.notReported`))+` · `+f(Xt(e.effectiveModelStrategy))+` · `+f(Qt(e.effectiveExecutorPolicy)),1)):p(``,!0),e.routingDecision?(o(),E(`div`,Gi,[w(`div`,Ki,[w(`span`,null,f(x(d)(`projectAgents.fields.reportedStaffingDecision`)),1),w(`strong`,null,f(e.routingDecision.outcome||x(d)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(o(),E(`small`,qi,f(x(d)(`projectAgents.fields.coordinator`))+` · `+f(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):p(``,!0),w(`small`,null,f(x(d)(`projectAgents.fields.matchBasis`))+` · `+f(e.routingDecision.matchBasis?.join(` · `)||x(d)(`projectAgents.notReported`))+` · `+f(e.routingDecision.reason||x(d)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(o(),E(`small`,Ji,f(x(d)(`projectAgents.fields.candidateAgents`))+` · `+f(e.routingDecision.candidateAgentIds.join(` · `)),1)):p(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(o(),E(`small`,Yi,[t(f(x(d)(`projectAgents.fields.complexity`))+` · `+f(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(o(),E(`span`,Xi,` · `+f(e.routingDecision.complexityBasis.join(` · `)),1)):p(``,!0)])):p(``,!0),x(ne)(e.routingDecision.parallelPlan)?(o(),E(`small`,Zi,[t(f(x(d)(`projectAgents.fields.parallelPlan`))+` · `+f(e.routingDecision.parallelPlan?.reason||x(d)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(o(),E(`span`,Qi,` · `+f(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):p(``,!0)])):p(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(o(),E(`small`,$i,f(e.routingDecision.ruleId||x(d)(`projectAgents.notReported`))+` · `+f(e.routingDecision.fallback||x(d)(`projectAgents.notReported`)),1)):p(``,!0)])):p(``,!0),w(`div`,ea,[w(`span`,null,f(x(d)(`projectAgents.fields.actualExecution`)),1),tn(e)?(o(),E(`strong`,ta,f(tn(e)?.executor||tn(e)?.provider||x(d)(`projectAgents.notReported`))+` / `+f(tn(e)?.model||x(d)(`projectAgents.notReported`))+` / `+f(vn(tn(e)?.client)),1)):(o(),E(`span`,na,f(x(d)(`projectAgents.detail.notReportedActualExecution`)),1)),tn(e)?.rule||tn(e)?.fallback?(o(),E(`small`,ra,f(tn(e)?.rule||x(d)(`projectAgents.notReported`))+` · `+f(tn(e)?.fallback||x(d)(`projectAgents.notReported`)),1)):p(``,!0)]),e.runId?(o(),E(`small`,ia,f(x(d)(`projectAgents.fields.run`))+` · `+f(e.runId),1)):(o(),E(`small`,aa,f(x(d)(`projectAgents.detail.noRun`)),1))])],10,$r))),128))])):(o(),E(`p`,oa,f(x(d)(`projectAgents.detail.noTasks`)),1))])]),_:1},16,[`label`])]),w(`details`,sa,[w(`summary`,null,f(x(d)(`projectAgents.sections.assignments`)),1),w(`div`,ca,[T(Ut,v(ft(`assignments`),{label:pt(`assignments`),onRetry:$}),{default:c(()=>[w(`section`,la,[w(`div`,ua,[w(`h4`,null,f(x(d)(`projectAgents.sections.assignments`)),1),w(`div`,da,[w(`span`,null,f(Mt(Q.value).length),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:i[9]||=e=>Ht(Q.value)},f(x(d)(`projectAgents.assignmentDialog.assign`)),1)])]),Mt(Q.value).length?(o(),E(`div`,fa,[(o(!0),E(_,null,n(Mt(Q.value),e=>(o(),E(`article`,{key:e.assignmentId,class:`project-agent-assignment-card`},[w(`header`,null,[w(`strong`,null,f(jt(e.personalProjectId)),1),w(`div`,pa,[w(`i`,{class:S(`is-${e.status}`)},f(x(d)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>Ht(Q.value,e,`end`)},f(x(d)(`projectAgents.assignmentDialog.end`)),9,ma)):p(``,!0),e.status===`active`?(o(),E(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>Ht(Q.value,e,`replace`)},f(x(d)(`projectAgents.assignmentDialog.replace`)),9,ha)):p(``,!0)])]),w(`p`,null,f(e.responsibility||x(d)(`projectAgents.notReported`)),1),e.scope?(o(),E(`small`,ga,f(x(d)(`projectAgents.fields.scope`))+` · `+f(e.scope),1)):p(``,!0),w(`small`,null,f(Jt(e.assignedAt))+` → `+f(e.endedAt?Jt(e.endedAt):x(d)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(o(),E(`div`,_a,[(o(!0),E(_,null,n(e.workKinds,e=>(o(),E(`span`,{key:e},f(e),1))),128))])):p(``,!0),w(`div`,va,[w(`span`,null,f(x(d)(`projectAgents.fields.assignmentModel`)),1),w(`strong`,null,f(Xt(e.modelStrategyOverride))+` · `+f(Qt(e.executorPolicyOverride)),1),$t(e.executorPolicyOverride)&&!en(e.executorPolicyOverride).length?(o(),E(`small`,ya,f(x(d)(`projectAgents.strategy.lockedUnavailable`)),1)):p(``,!0)]),en(e.executorPolicyOverride).length?(o(),E(`div`,ba,[(o(!0),E(_,null,n(en(e.executorPolicyOverride),e=>(o(),E(`span`,{key:e.executorId},f(e.label||e.executorId),1))),128))])):p(``,!0),e.reason?(o(),E(`small`,xa,f(x(d)(`projectAgents.fields.reason`))+` · `+f(e.reason),1)):p(``,!0)]))),128))])):(o(),E(`p`,Sa,f(x(d)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16,[`label`])])]),w(`details`,Ca,[w(`summary`,null,f(x(d)(`projectAgents.sections.activity`)),1),w(`div`,wa,[T(Ut,v(ft(`activity`),{label:pt(`activity`),onRetry:$}),{default:c(()=>[w(`section`,Ta,[w(`div`,Ea,[w(`h4`,null,f(x(d)(`projectAgents.sections.activity`)),1),rt.value?(o(),E(`span`,Da,f(rt.value.days.length),1)):p(``,!0)]),rt.value?.days.length?(o(),E(`div`,Oa,[w(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":x(d)(`projectAgents.activity.aria`)},[(o(!0),E(_,null,n(rt.value.days,e=>(o(),E(`button`,{key:e.date,type:`button`,role:`listitem`,class:S([`project-agent-heat-cell`,`intensity-${Dn(e,rt.value)}`,{selected:Se.value===e.date}]),"aria-label":`${Yt(e.date)} · ${e.total}`,"aria-pressed":Se.value===e.date,onClick:t=>On(e)},[w(`span`,ja,f(Yt(e.date))+` · `+f(e.total),1)],10,Aa))),128))],8,ka),it.value?(o(),E(`article`,Ma,[w(`header`,null,[w(`strong`,null,f(Yt(it.value.date)),1),w(`span`,null,f(it.value.total),1)]),it.value.tasks?.length?(o(),E(`ul`,Pa,[(o(!0),E(_,null,n(it.value.tasks,e=>(o(),E(`li`,{key:e.taskId},[w(`strong`,null,f(e.title),1),w(`span`,null,f(gn(e.status))+` · `+f(jt(e.personalProjectId)),1),w(`small`,null,f(e.summary||x(d)(`projectAgents.notReported`)),1)]))),128))])):(o(),E(`p`,Na,f(x(d)(`projectAgents.activity.noTasks`)),1))])):p(``,!0)])):(o(),E(`p`,Fa,f(x(d)(`projectAgents.activity.empty`)),1))])]),_:1},16,[`label`])])]),Q.value.memoryScope===`reviewed_agent`?(o(),D(bn,{key:Q.value.agentId,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:Qe.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):p(``,!0),Q.value.memoryScope===`reviewed_agent`?(o(),D(Zt,{key:3,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:Qe.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):p(``,!0),w(`details`,Ia,[w(`summary`,null,f(x(d)(`projectAgents.profileDetails`)),1),w(`dl`,La,[w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.assignments`)),1),w(`dd`,null,f(Nt(Q.value).length),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.memoryScope`)),1),w(`dd`,null,f(Q.value.memoryScope??x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.status`)),1),w(`dd`,null,f(x(d)(`projectAgents.status.${Q.value.profile.status}`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.recruitment`)),1),w(`dd`,null,[t(f(vn(Q.value.recruitmentSourceApplication)),1),Q.value.recruitmentReason?(o(),E(`small`,Ra,f(Q.value.recruitmentReason),1)):p(``,!0)])]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.updatedAt`)),1),w(`dd`,null,f(Jt(Q.value.updatedAt)),1)])])]),w(`details`,{class:`project-agent-disclosure`,open:ot.value.some(e=>e.status===`awaiting_confirmation`)},[w(`summary`,null,f(x(d)(`projectAgents.sections.recruitment`)),1),w(`div`,Ba,[T(Ut,v(ft(`recruitments`),{label:pt(`recruitments`),onRetry:$}),{default:c(()=>[w(`section`,Va,[w(`div`,Ha,[w(`h4`,Ua,f(x(d)(`projectAgents.sections.recruitment`)),1),w(`span`,null,f(ot.value.length),1)]),ot.value.length?(o(),E(`div`,Wa,[(o(!0),E(_,null,n(ot.value,e=>(o(),E(`article`,{key:e.recruitmentId,class:`project-agent-recruitment-card`},[w(`header`,null,[w(`strong`,null,f(e.positionKind)+` · `+f(e.workKind||x(d)(`projectAgents.notReported`)),1),w(`div`,Ga,[w(`i`,null,f(e.status),1),e.status===`awaiting_confirmation`?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Ee.value,onClick:t=>bt(e,`approve`)},[Ee.value===e.recruitmentId&&De.value===`approve`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.recruitment.approving`)},null,8,[`label`])):(o(),E(`span`,qa,f(x(d)(`projectAgents.recruitment.approve`)),1))],8,Ka)):p(``,!0),e.status===`awaiting_confirmation`?(o(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Ee.value,onClick:t=>bt(e,`cancel`)},[Ee.value===e.recruitmentId&&De.value===`cancel`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.recruitment.cancelling`)},null,8,[`label`])):(o(),E(`span`,Ya,f(x(d)(`projectAgents.recruitment.cancel`)),1))],8,Ja)):p(``,!0)])]),w(`dl`,Xa,[w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.hr`)),1),w(`dd`,null,f(e.hrAgentId||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.trigger`)),1),w(`dd`,null,f(vn(e.triggerSourceApplication)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.reason`)),1),w(`dd`,null,f(e.reason||e.reasonCode||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.time`)),1),w(`dd`,null,f(Jt(e.fulfilledAt||e.createdAt)),1)])]),w(`small`,null,f(x(d)(`projectAgents.recruitment.testSource`))+` · `+f(e.testSource||x(d)(`projectAgents.notReported`)),1)]))),128))])):(o(),E(`p`,Za,f(x(d)(`projectAgents.recruitment.empty`)),1))])]),_:1},16,[`label`])])],8,za),(o(),E(`details`,{key:`advanced:${Q.value.agentId}`,class:`project-agent-disclosure`,"data-agent-advanced":``},[w(`summary`,null,f(x(d)(`projectAgents.advanced`)),1),w(`div`,Qa,[T(Ut,v(ft(`executors`),{label:pt(`executors`),onRetry:$}),{default:c(()=>[w(`section`,$a,[w(`div`,eo,[w(`h4`,null,f(x(d)(`projectAgents.sections.strategy`)),1),w(`span`,null,f(Xt(Q.value.profile.defaultModelStrategy))+` · `+f(Qt(Q.value.profile.executorPolicy)),1)]),w(`p`,to,f(x(d)(`projectAgents.strategy.providerNeutral`)),1),en(Q.value.profile.executorPolicy).length?(o(),E(`div`,no,[(o(!0),E(_,null,n(en(Q.value.profile.executorPolicy),e=>(o(),E(`span`,{key:e.executorId},f(e.label||e.executorId),1))),128))])):$t(Q.value.profile.executorPolicy)?(o(),E(`p`,ro,f(x(d)(`projectAgents.strategy.lockedUnavailable`)),1)):(o(),E(`p`,io,f(x(d)(`projectAgents.strategy.noAllowList`)),1)),w(`div`,ao,[w(`button`,{class:`quiet-button`,type:`button`,onClick:i[10]||=e=>St()},f(x(d)(`projectAgents.routing.addExecutor`)),1)]),Q.value.executorDirectory?.length?(o(),E(`div`,oo,[(o(!0),E(_,null,n(Q.value.executorDirectory,e=>(o(),E(`div`,{key:e.executorId,class:`project-agent-executor-row`},[w(`strong`,null,f(e.displayName||e.label||e.executorId),1),w(`span`,null,f(e.provider||x(d)(`projectAgents.notReported`))+` / `+f(e.model||x(d)(`projectAgents.notReported`)),1),w(`span`,null,f(e.globalPriority??x(d)(`projectAgents.notReported`)),1),w(`small`,null,f(e.registrationStatus||x(d)(`projectAgents.notReported`))+` · `+f(e.permissionStatus||x(d)(`projectAgents.notReported`))+` · `+f(e.preflightStatus||x(d)(`projectAgents.strategy.availabilityUnreported`))+` · `+f(e.healthStatus||x(d)(`projectAgents.notReported`)),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:t=>St(e)},f(x(d)(`projectAgents.routing.editExecutor`)),9,so),e.permissionStatus===`authorized`?(o(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Oe.value,onClick:t=>xt(e,`revoked`)},[Oe.value===e.executorId&&ke.value===`revoke`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.routing.revoking`)},null,8,[`label`])):(o(),E(`span`,fo,f(x(d)(`projectAgents.routing.revoke`)),1))],8,uo)):(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Oe.value,onClick:t=>xt(e,`authorized`)},[Oe.value===e.executorId&&ke.value===`authorize`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.routing.authorizing`)},null,8,[`label`])):(o(),E(`span`,lo,f(x(d)(`projectAgents.routing.authorize`)),1))],8,co))]))),128))])):p(``,!0)])]),_:1},16,[`label`])]),w(`div`,po,[T(Ut,v(ft(`executors`),{label:pt(`executors`),onRetry:$}),{default:c(()=>[w(`section`,mo,[w(`div`,ho,[w(`h4`,null,f(x(d)(`projectAgents.sections.clients`)),1),w(`span`,null,f(yn(Q.value).length),1)]),yn(Q.value).length?(o(),E(`div`,go,[(o(!0),E(_,null,n(yn(Q.value),e=>(o(),E(`div`,{key:e,class:`project-agent-client-row`},[w(`strong`,null,f(vn(e)),1),w(`span`,null,f(xn(Q.value,e)?.allowed||Q.value.profile.allowedClients?.includes(e)?x(d)(`projectAgents.clients.allowed`):x(d)(`projectAgents.clients.notAllowed`)),1),Sn(Q.value,e)?(o(),E(`span`,_o,f(x(d)(`projectAgents.clients.observed`,{count:Sn(Q.value,e)})),1)):Q.value.observedClients?.includes(e)?(o(),E(`span`,vo,f(x(d)(`projectAgents.clients.observedAny`)),1)):(o(),E(`span`,yo,f(x(d)(`projectAgents.clients.unreported`)),1)),w(`small`,null,f(xn(Q.value,e)?.integrationStatus||x(d)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(o(),E(`p`,bo,f(x(d)(`projectAgents.clients.empty`)),1))])]),_:1},16,[`label`])]),w(`div`,xo,[T(Ut,v(ft(`routingRules`),{label:pt(`routingRules`),onRetry:$}),{default:c(()=>[w(`section`,So,[w(`div`,Co,[w(`h4`,null,f(x(d)(`projectAgents.sections.routing`)),1),w(`div`,wo,[w(`span`,null,f(Q.value.routingRules?.length??0),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:i[11]||=e=>Ct()},f(x(d)(`projectAgents.routing.addRule`)),1)])]),Q.value.routingRules?.length?(o(),E(`div`,To,[(o(!0),E(_,null,n(Q.value.routingRules,e=>(o(),E(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[w(`strong`,null,f(e.scope)+` · `+f(e.priority),1),w(`span`,null,f(e.workKind||e.reason||x(d)(`projectAgents.notReported`))+` · `+f(e.executorIds?.join(`, `)||x(d)(`projectAgents.notReported`)),1),e.enabled?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Ee.value,onClick:t=>Ot(e)},[Ee.value===`rule:${e.ruleId}`&&De.value===`disable`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.routing.disabling`)},null,8,[`label`])):(o(),E(`span`,Do,f(x(d)(`projectAgents.routing.disable`)),1))],8,Eo)):p(``,!0)]))),128))])):(o(),E(`p`,Oo,f(x(d)(`projectAgents.routing.empty`)),1)),w(`small`,ko,f(x(d)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16,[`label`])]),w(`div`,Ao,[T(Ut,v(ft(`learning`),{label:pt(`learning`),onRetry:$}),{default:c(()=>[w(`section`,jo,[w(`div`,Mo,[w(`h4`,null,f(x(d)(`projectAgents.sections.learning`)),1),w(`span`,null,f(at.value.length),1)]),at.value.length?(o(),E(`div`,No,[(o(!0),E(_,null,n(at.value,([e,t])=>(o(),E(`article`,{key:e,class:`project-agent-learning-card`},[w(`header`,null,[w(`strong`,null,f(e),1),w(`i`,null,f(wn(t)),1)]),t.personalProjectId||t.workKind||t.executor||t.modelStrategy?(o(),E(`small`,Po,f(jt(t.personalProjectId))+` · `+f(t.workKind||x(d)(`projectAgents.notReported`))+` · `+f(t.executor||x(d)(`projectAgents.notReported`))+` / `+f(t.modelStrategy?Xt(t.modelStrategy):x(d)(`projectAgents.notReported`)),1)):p(``,!0),w(`p`,null,f(x(d)(`projectAgents.learning.samples`,{count:t.sampleCount}))+` · `+f(x(d)(`projectAgents.learning.recent`,{count:Tn(t)})),1),w(`small`,null,f(t.decayBasis||x(d)(`projectAgents.learning.decayUnreported`))+` · `+f(Jt(t.updatedAt)),1),t.outcomes?(o(),E(`div`,Fo,[(o(!0),E(_,null,n(t.outcomes,(e,t)=>r((o(),E(`span`,{key:t},f(t)+` · `+f(e??x(d)(`projectAgents.notReported`)),1)),[[g,e!==void 0]])),128)),t.score!==null&&t.score!==void 0?(o(),E(`span`,Io,f(x(d)(`projectAgents.learning.score`,{score:En(t)})),1)):p(``,!0)])):p(``,!0),t.evidence?.length?(o(),E(`ul`,Lo,[(o(!0),E(_,null,n(t.evidence,e=>(o(),E(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[w(`span`,null,f(e.kind)+` · `+f(e.count??0)+` · `+f(e.summary||x(d)(`projectAgents.notReported`)),1),e.evidenceId?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!we.value,onClick:n=>yt(t,`ignore`,e.evidenceId)},[we.value===e.evidenceId&&Te.value===`ignore`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.learning.ignoring`)},null,8,[`label`])):(o(),E(`span`,zo,f(x(d)(`projectAgents.learning.ignore`)),1))],8,Ro)):p(``,!0)]))),128))])):p(``,!0),t.learningKey?(o(),E(`div`,Bo,[w(`button`,{class:`quiet-button`,type:`button`,disabled:!!we.value||!t.personalProjectId||!t.workKind||!t.executor,onClick:e=>yt(t,`reset`)},[we.value===t.learningKey&&Te.value===`reset`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.learning.resetting`)},null,8,[`label`])):(o(),E(`span`,Ho,f(x(d)(`projectAgents.learning.reset`)),1))],8,Vo)])):p(``,!0)]))),128))])):(o(),E(`p`,Uo,f(x(d)(`projectAgents.learning.empty`)),1)),w(`small`,Wo,f(x(d)(`projectAgents.learning.note`)),1)])]),_:1},16,[`label`])])]))],8,Mr)):(o(),E(`div`,Go,f(x(d)(`projectAgents.detail.choose`)),1))])):(o(),E(`div`,br,[w(`strong`,null,f(x(d)(`projectAgents.noMatchTitle`)),1),w(`p`,null,f(x(d)(`projectAgents.noMatchCopy`)),1)])):(o(),E(`div`,vr,[w(`strong`,null,f(x(d)(`projectAgents.emptyTitle`)),1),w(`p`,null,f(x(d)(`projectAgents.emptyCopy`)),1),w(`button`,{class:`project-agent-add`,type:`button`,disabled:!Z.value,onClick:Lt},f(x(d)(`projectAgents.add`)),9,yr)])),T(rr,{open:ae.value,agent:me.value,projects:Re.value,"default-project-id":nt.value,"personal-space-id":Z.value,onClose:Vt,onSaved:qt},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),T(ze,{open:ge.value,agent:me.value,assignment:ve.value,action:_e.value,projects:Re.value,"available-agents":C.value,"default-project-id":nt.value,onClose:Wt,onSaved:Gt,onChanged:Kt},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),T(mt,{open:Ae.value,mode:je.value,"personal-space-id":Z.value,executor:Me.value,rule:Ne.value,projects:Re.value,"available-executors":Q.value?.executorDirectory??[],onClose:wt,onSaved:Dt},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,ir))}}),[[`__scopeId`,`data-v-fcdd93e0`]]);export{Ko as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.project-agent-assignment-dialog[data-v-ee37776b]{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-ee37776b]{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-ee37776b],.project-agent-assignment-dialog-actions[data-v-ee37776b]{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.project-agent-assignment-dialog-header[data-v-ee37776b]{border-bottom:1px solid #e1e6e2}.project-agent-assignment-dialog-header h3[data-v-ee37776b]{color:#283a31;font-size:16px}.project-agent-assignment-dialog-fields[data-v-ee37776b]{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-ee37776b]{color:#626d66;gap:6px;font-size:11px;font-weight:650;display:grid}.project-agent-assignment-dialog-fields input[data-v-ee37776b],.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]{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-ee37776b]{resize:vertical}.project-agent-assignment-dialog-fields input[data-v-ee37776b]:focus-visible,.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-assignment-wide-field[data-v-ee37776b]{grid-column:1/-1}.project-agent-assignment-dialog-error[data-v-ee37776b]{color:#8b3f38;margin:0 18px;font-size:11px}.project-agent-assignment-dialog-actions[data-v-ee37776b]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-ee37776b]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700}.project-agent-primary-action[data-v-ee37776b]:focus-visible{outline-offset:2px;outline:2px solid #91a398}@media (width<=620px){.project-agent-assignment-dialog-fields[data-v-ee37776b]{grid-template-columns:1fr}.project-agent-assignment-wide-field[data-v-ee37776b]{grid-column:auto}}.project-agent-dialog[data-v-4d36bcaf]{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-4d36bcaf]{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-4d36bcaf],.project-agent-dialog-actions[data-v-4d36bcaf]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-4d36bcaf]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-4d36bcaf]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-4d36bcaf]{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-4d36bcaf]{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-4d36bcaf],.project-agent-dialog-fields select[data-v-4d36bcaf],.project-agent-dialog-fields textarea[data-v-4d36bcaf]{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-4d36bcaf]{resize:vertical}.project-agent-dialog-fields input[data-v-4d36bcaf]:focus-visible,.project-agent-dialog-fields select[data-v-4d36bcaf]:focus-visible,.project-agent-dialog-fields textarea[data-v-4d36bcaf]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-4d36bcaf],.project-agent-id-note[data-v-4d36bcaf]{grid-column:1/-1}.project-agent-dialog-error[data-v-4d36bcaf]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-4d36bcaf]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-4d36bcaf]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-4d36bcaf]:hover{background:#2b4234}.project-agent-primary-action[data-v-4d36bcaf]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-4d36bcaf]:disabled,.project-agent-dialog-fields[data-v-4d36bcaf] :disabled{cursor:not-allowed;opacity:.6}.project-agent-dialog-check[data-v-4d36bcaf]{align-items:center;gap:7px!important;display:flex!important}.project-agent-dialog-check input[data-v-4d36bcaf]{width:auto!important}.project-agent-dialog-note[data-v-4d36bcaf]{color:#7b857e;font-size:10px;line-height:1.55}.project-team[data-v-077ab7fe]{border-top:1px solid #dfe5e0;grid-column:1/-1;min-width:0;padding-block:12px}.project-team-peers[data-v-077ab7fe]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-team-peers[data-v-077ab7fe]>*{color:#31453a;background:#edf3ee;border:1px solid #cad9cd;border-radius:6px;padding:7px 10px;font-size:12px}.project-team-summary[data-v-077ab7fe]{color:#53665a;margin:9px 0;font-size:12px}.project-team-members[data-v-077ab7fe]{gap:9px;margin:10px 0 16px 18px;padding:0;list-style:none;display:grid}.project-team-members button[data-v-077ab7fe]{text-align:start;color:#31453a;background:0 0;border:0;gap:3px;max-width:100%;display:grid}.project-team-members span[data-v-077ab7fe]{color:#596b60;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.project-team summary[data-v-077ab7fe]{cursor:pointer;font-size:12px}.team-lead-field[data-v-077ab7fe]{flex-wrap:wrap;align-items:center;gap:12px;margin-block:14px;display:flex}.team-lead-field select[data-v-077ab7fe]{max-width:100%;padding:7px}.project-team fieldset[data-v-077ab7fe]{border:0;flex-wrap:wrap;gap:12px;margin-bottom:14px;padding:0;display:flex}.project-team fieldset label[data-v-077ab7fe]{align-items:center;gap:5px;font-size:12px;display:flex}.project-team legend[data-v-077ab7fe]{margin-bottom:8px;font-size:12px}.project-agent-automation-policy[data-v-077ab7fe]{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-077ab7fe]{min-width:0}.project-agent-automation-policy h3[data-v-077ab7fe]{color:#31453a;font-size:12px;line-height:1.35}.project-agent-automation-policy header span[data-v-077ab7fe]{color:#68756d;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;display:block;overflow:hidden}.project-agent-policy-options[data-v-077ab7fe]{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.project-agent-policy-options label[data-v-077ab7fe]{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-077ab7fe]{border-inline-start:1px solid #e2e7e3}.project-agent-policy-options label>span[data-v-077ab7fe]{gap:3px;min-width:0;display:grid}.project-agent-policy-options strong[data-v-077ab7fe]{color:#3d5045;font-size:10px;line-height:1.4}.project-agent-policy-options small[data-v-077ab7fe]{color:#6d7971;overflow-wrap:anywhere;max-width:54ch;font-size:9px;line-height:1.45}.project-agent-policy-options input[data-v-077ab7fe]{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-077ab7fe]: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-077ab7fe]:checked{background:#4d8164;border-color:#3f7658}.project-agent-policy-options input[data-v-077ab7fe]:checked:after{transform:translate(15px)}.project-agent-policy-options input[data-v-077ab7fe]:focus-visible{outline-offset:3px;outline:2px solid #355f49}.project-agent-policy-options input[data-v-077ab7fe]:disabled{cursor:wait;opacity:.62}.project-agent-policy-feedback[data-v-077ab7fe]{grid-column:2;min-height:14px;padding-inline:16px}.project-agent-policy-state[data-v-077ab7fe],.project-agent-policy-feedback p[data-v-077ab7fe]{color:#66736b;font-size:9px;line-height:1.45}.project-agent-policy-feedback p[role=alert][data-v-077ab7fe]{color:#874b43}.project-agent-policy-feedback button[data-v-077ab7fe]{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-077ab7fe],.project-agent-policy-options[data-v-077ab7fe]{grid-template-columns:minmax(0,1fr)}.project-agent-policy-options label[data-v-077ab7fe]{padding:8px 0}.project-agent-policy-options label+label[data-v-077ab7fe]{border-block-start:1px solid #e2e7e3;border-inline-start:0}.project-agent-policy-feedback[data-v-077ab7fe]{grid-column:1;padding-inline:0}}.project-agent-source-state[data-v-ca9a5880]{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-ca9a5880]{color:#8c4f49;background:#fbf3f1;border-color:#ebd5d0}.employee-work-history[data-v-bf7d05b1]{margin-block:24px;font-size:14px}summary[data-v-bf7d05b1]{cursor:pointer;padding-block:12px;font-weight:650}label[data-v-bf7d05b1]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}select[data-v-bf7d05b1]{max-width:100%;font:inherit;padding:8px}ol[data-v-bf7d05b1]{margin:12px 0;padding:0;list-style:none}li[data-v-bf7d05b1]{border-top:1px solid #dce3de;padding-block:14px}.work-record-meta[data-v-bf7d05b1]{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}p[data-v-bf7d05b1]{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}@media (width<=640px){.employee-work-history[data-v-bf7d05b1]{font-size:16px}}.agent-conversations[data-v-14d7c328]{color:#39483f;margin-block:20px;font-size:14px}summary[data-v-14d7c328]{cursor:pointer;padding-block:12px;font-weight:650}summary[data-v-14d7c328]:focus-visible,button[data-v-14d7c328]:focus-visible,input[data-v-14d7c328]:focus-visible,select[data-v-14d7c328]:focus-visible{outline-offset:3px;outline:2px solid #315c43}label[data-v-14d7c328]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}select[data-v-14d7c328],input[type=number][data-v-14d7c328]{max-width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #a8b7ad;border-radius:6px;padding:8px}input[type=number][data-v-14d7c328]{width:100px}input[type=checkbox][data-v-14d7c328]{width:18px;height:18px}fieldset[data-v-14d7c328]{border:0;gap:16px;min-width:0;margin:0;padding:8px 0;display:grid}fieldset button[data-v-14d7c328]{justify-self:start}.conversation-hint[data-v-14d7c328]{color:#58675d;margin-block:12px;line-height:1.65}ol[data-v-14d7c328]{margin:0;padding:0;list-style:none}.conversation-list>li[data-v-14d7c328]{border-bottom:1px solid #dce3de}.conversation-link[data-v-14d7c328]{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;gap:6px;padding:14px 0;display:grid}.conversation-link:hover strong[data-v-14d7c328]{text-underline-offset:3px;text-decoration:underline}.conversation-link[aria-pressed=true] strong[data-v-14d7c328]{color:#315c43}.conversation-link span[data-v-14d7c328]{color:#58675d;font-size:12px}.conversation-link strong[data-v-14d7c328]{overflow-wrap:anywhere}.conversation-messages[data-v-14d7c328]{padding-bottom:16px}.conversation-messages li[data-v-14d7c328]{padding-block:12px}pre[data-v-14d7c328]{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-height:320px;margin-block:8px;line-height:1.65;overflow:auto}button[data-v-14d7c328]:disabled{cursor:wait;opacity:.65}@media (width<=640px){.agent-conversations[data-v-14d7c328]{font-size:16px}}.project-agent-dialog[data-v-95db0a3d]{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-95db0a3d]{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-95db0a3d],.project-agent-dialog-actions[data-v-95db0a3d]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-95db0a3d]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-95db0a3d]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-95db0a3d]{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-95db0a3d]{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-95db0a3d],.project-agent-dialog-fields select[data-v-95db0a3d],.project-agent-dialog-fields textarea[data-v-95db0a3d]{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-95db0a3d]{resize:vertical}.project-agent-dialog-fields input[data-v-95db0a3d]:focus-visible,.project-agent-dialog-fields select[data-v-95db0a3d]:focus-visible,.project-agent-dialog-fields textarea[data-v-95db0a3d]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-95db0a3d],.project-agent-id-note[data-v-95db0a3d]{grid-column:1/-1}.project-agent-strategy-fields[data-v-95db0a3d]{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-95db0a3d]{color:#59665d;padding:0 5px;font-size:10px;font-weight:700}.project-agent-strategy-fields>small[data-v-95db0a3d]{color:#818a84;grid-column:1/-1;font-size:9px;line-height:1.5}.project-agent-id-note[data-v-95db0a3d]{color:#7b847e;margin-top:-8px;font-size:10px}.project-agent-dialog-error[data-v-95db0a3d]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-95db0a3d]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-95db0a3d]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-95db0a3d]:hover{background:#2b4234}.project-agent-primary-action[data-v-95db0a3d]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-95db0a3d]:disabled,.project-agent-dialog-fields[data-v-95db0a3d] :disabled{cursor:not-allowed;opacity:.6}@media (width<=720px){.project-agent-dialog-fields[data-v-95db0a3d]{grid-template-columns:1fr}.project-agent-wide-field[data-v-95db0a3d],.project-agent-id-note[data-v-95db0a3d]{grid-column:1}}.project-agent-row-shell[data-v-fcdd93e0]{align-items:flex-start;gap:6px;min-width:0;display:flex}.project-agent-row-shell>.project-agent-row[data-v-fcdd93e0]{flex:1;min-width:0}.project-agent-row-shell>.agent-hand[data-v-fcdd93e0]{margin-top:14px}.project-agent-header-actions[data-v-fcdd93e0]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-agents-view[data-v-fcdd93e0]{flex-direction:column;gap:12px;min-height:0;padding:18px 32px 20px;display:flex;overflow:hidden}.project-agents-header[data-v-fcdd93e0],.project-agent-section-heading[data-v-fcdd93e0],.project-agent-section-tools[data-v-fcdd93e0],.project-agent-detail-actions[data-v-fcdd93e0],.project-agent-assignment-card header[data-v-fcdd93e0],.project-agent-task-card header[data-v-fcdd93e0],.project-agent-learning-card header[data-v-fcdd93e0],.project-agent-day-detail header[data-v-fcdd93e0]{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-agents-header h2[data-v-fcdd93e0]{color:#283a31;font-size:18px}.project-agents-header-meta[data-v-fcdd93e0]{color:#7a847d;font-size:10px}.project-agents-summary[data-v-fcdd93e0]{color:#58675d;gap:18px;padding:2px 0 4px;font-size:12px;line-height:1.5;display:flex}.project-agents-summary span[data-v-fcdd93e0]:first-child{color:#2f493b;font-weight:700}.project-agent-add[data-v-fcdd93e0]{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-fcdd93e0]:hover{background:#2b4234}.project-agent-add[data-v-fcdd93e0]:focus-visible,.quiet-button[data-v-fcdd93e0]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-add[data-v-fcdd93e0]:disabled{cursor:not-allowed;opacity:.55}.project-agents-toolbar[data-v-fcdd93e0]{grid-template-columns:minmax(240px,320px) minmax(200px,1fr) auto;align-items:center;gap:12px;display:grid}.project-agents-search input[data-v-fcdd93e0]{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-fcdd93e0]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agents-status-filter[data-v-fcdd93e0]{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;gap:3px;padding:3px;display:flex}.project-agents-status-filter button[data-v-fcdd93e0],.quiet-button[data-v-fcdd93e0]{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-fcdd93e0]{color:#315440;background:#fff;font-weight:700;box-shadow:0 1px 3px #27392f1f}.project-agents-directory[data-v-fcdd93e0]{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-fcdd93e0]{border-right:1px solid #dfe4e0;min-width:0;min-height:0;overflow:auto}.project-agent-row[data-v-fcdd93e0]{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-fcdd93e0]:hover{background:#f7f9f7}.project-agent-row.selected[data-v-fcdd93e0]{background:#edf3ef}.project-agent-row[data-v-fcdd93e0]:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #91a398;position:relative}.project-agent-row-heading[data-v-fcdd93e0]{align-items:center;gap:7px;min-width:0;display:flex}.project-agent-occupation-emoji[data-v-fcdd93e0]{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-fcdd93e0]{color:#293b31;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.project-agent-row-heading i[data-v-fcdd93e0],.project-agent-assignment-card header i[data-v-fcdd93e0],.project-agent-task-card header i[data-v-fcdd93e0],.project-agent-learning-card header i[data-v-fcdd93e0]{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-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-row-heading i.is-archived[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-kind[data-v-fcdd93e0]{color:#53647b!important;background:#eef2f7!important}.project-agent-row-id[data-v-fcdd93e0]{color:#8a938d;overflow-wrap:anywhere;text-align:right;font-size:9px}.project-agent-row-projects[data-v-fcdd93e0]{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.project-agent-row-projects b[data-v-fcdd93e0],.project-agent-tags span[data-v-fcdd93e0],.project-agent-inline-list span[data-v-fcdd93e0]{color:#5f6b64;background:#eef1ef;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-row-projects em[data-v-fcdd93e0]{color:#8a938d;font-size:9px;font-style:normal}.project-agent-row-responsibility[data-v-fcdd93e0]{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-fcdd93e0]{color:#59645d;grid-column:1/-1;font-size:10px;line-height:1.5}.project-agent-work-dot[data-v-fcdd93e0]{background:#4b8d63;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.project-agent-detail[data-v-fcdd93e0]{min-width:0;min-height:0;padding:20px;overflow:auto;container-type:inline-size}.employee-project-overview[data-v-fcdd93e0]{border-bottom:1px solid #e1e6e2;margin:22px 0;padding-bottom:18px}.employee-project-overview-heading[data-v-fcdd93e0]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.employee-project-overview-heading h4[data-v-fcdd93e0]{color:#33483c;margin:0;font-size:14px}.employee-project-overview-heading p[data-v-fcdd93e0],.employee-project-overview-hint[data-v-fcdd93e0]{color:#58675d;margin:5px 0 0;font-size:12px;line-height:1.6}.employee-project-overview-hint[data-v-fcdd93e0]{margin-top:12px}.employee-assigned-projects[data-v-fcdd93e0]{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 20px;margin-top:12px;display:grid}.employee-assigned-projects a[data-v-fcdd93e0]{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-fcdd93e0]:hover{text-underline-offset:3px;text-decoration:underline}.employee-assigned-projects a[data-v-fcdd93e0]:focus-visible{outline-offset:3px;outline:2px solid #91a398}.employee-assigned-projects a span[data-v-fcdd93e0]{overflow-wrap:anywhere}.employee-assigned-projects svg[data-v-fcdd93e0]{flex-shrink:0}@container (width<=480px){.employee-assigned-projects[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}}.project-agent-detail>header[data-v-fcdd93e0]{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-fcdd93e0]{min-width:0}.project-agent-detail h3[data-v-fcdd93e0]{color:#263b30;text-wrap:balance;font-size:17px;line-height:1.32}.project-agent-detail header p[data-v-fcdd93e0]{color:#7a847d;overflow-wrap:anywhere;max-width:72ch;margin-top:5px;font-size:10px;line-height:1.5}.project-agent-detail-actions[data-v-fcdd93e0]{grid-auto-columns:78px;grid-auto-flow:column;justify-content:end;gap:8px;display:grid}.project-agent-detail-actions .quiet-button[data-v-fcdd93e0]{white-space:nowrap;width:78px}.project-agent-detail-meta[data-v-fcdd93e0],.project-agent-compact-meta[data-v-fcdd93e0]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}.project-agent-detail-meta div[data-v-fcdd93e0],.project-agent-compact-meta div[data-v-fcdd93e0]{min-width:0}.project-agent-detail-meta dt[data-v-fcdd93e0],.project-agent-compact-meta dt[data-v-fcdd93e0],.project-agent-detail-section h4[data-v-fcdd93e0]{color:#7a847d;letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.project-agent-detail-meta dd[data-v-fcdd93e0],.project-agent-compact-meta dd[data-v-fcdd93e0]{overflow-wrap:anywhere;color:#39483f;margin:4px 0 0;font-size:11px}.project-agent-detail-meta dd small[data-v-fcdd93e0]{color:#818a84;margin-top:3px;font-size:9px;line-height:1.4;display:block}.project-agent-detail-section[data-v-fcdd93e0]{margin-top:22px}.project-agent-detail-section.is-responsibility[data-v-fcdd93e0]{background:#f2f5f2;border-radius:10px;padding:14px}.project-agent-detail-section p[data-v-fcdd93e0],.project-agent-detail-section li[data-v-fcdd93e0]{color:#4f5c54;font-size:11px;line-height:1.65}.project-agent-tags[data-v-fcdd93e0],.project-agent-inline-list[data-v-fcdd93e0]{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.project-agent-muted[data-v-fcdd93e0]{color:#8a928d!important}.project-agent-detail-notice[data-v-fcdd93e0]{background:#f5f5f1;border-radius:7px;margin:12px 0 0;padding:8px 10px;color:#6f705f!important}.project-agent-detail-placeholder[data-v-fcdd93e0],.project-agents-state[data-v-fcdd93e0]{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-fcdd93e0]{background:#fafbfa;border:1px solid #d9dfda;border-radius:10px;flex:1}.project-agents-state strong[data-v-fcdd93e0]{color:#36473e;font-size:14px}.project-agents-state p[data-v-fcdd93e0]{max-width:52ch;line-height:1.6}.project-agents-state.is-error[data-v-fcdd93e0]{color:#8b3f38}.project-agent-assignment-list[data-v-fcdd93e0],.project-agent-task-list[data-v-fcdd93e0],.project-agent-learning-list[data-v-fcdd93e0],.project-agent-recruitment-list[data-v-fcdd93e0]{gap:8px;margin-top:9px;display:grid}.project-agent-task-list[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr);min-width:0}.project-agent-execution-summary[data-v-fcdd93e0]{border-top:1px solid #dfe5e0;min-width:0;margin-top:13px;padding-top:12px}.project-agent-worker-event-evidence[data-v-fcdd93e0]{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-fcdd93e0]{gap:8px}.project-agent-execution-summary h5[data-v-fcdd93e0]{color:#65736a;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-agent-execution-summary-table-wrap[data-v-fcdd93e0]{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-fcdd93e0]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-execution-summary-table[data-v-fcdd93e0]{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-fcdd93e0],.project-agent-execution-summary-table td[data-v-fcdd93e0]{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-fcdd93e0]>:last-child{border-right:0}.project-agent-execution-summary-table tbody tr[data-v-fcdd93e0]:last-child>*{border-bottom:0}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]{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-fcdd93e0]:first-child{width:14%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(2){width:20%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(3){width:13%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(4),.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(5){width:15%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(6){width:12%}.project-agent-execution-summary-table tbody tr[data-v-fcdd93e0]:hover{background:#fafcfb}.project-agent-execution-summary-table tbody th[data-v-fcdd93e0]{color:#3f5647;font-weight:700}.project-agent-execution-summary-table tbody strong[data-v-fcdd93e0],.project-agent-execution-summary-table tbody span[data-v-fcdd93e0],.project-agent-execution-summary-table tbody small[data-v-fcdd93e0],.project-agent-execution-summary-table tbody a[data-v-fcdd93e0]{display:block}.project-agent-execution-summary-table tbody small[data-v-fcdd93e0]{color:#647168;margin-top:3px;font-size:11px;font-weight:500}.project-agent-execution-summary-table tbody .project-agent-reporter-label[data-v-fcdd93e0]{margin-top:8px}.project-agent-execution-summary-table tbody a[data-v-fcdd93e0]{color:#386c50;text-underline-offset:2px;margin-top:3px;text-decoration-thickness:1px}.project-agent-execution-summary-table tbody a[data-v-fcdd93e0]:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #91a398}.project-agent-execution-worker[data-v-fcdd93e0]{align-items:center;gap:4px;display:flex!important}.project-agent-execution-summary-row i[data-v-fcdd93e0]{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-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-execution-summary-row i.is-failed[data-v-fcdd93e0]{color:#8c4f49;background:#f7e9e6}.project-agent-execution-summary-row i.is-cancelled[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-list[data-v-fcdd93e0]{margin:7px 0 0;padding:0;list-style:none;display:grid}.project-agent-worker-event-row[data-v-fcdd93e0]{border-top:1px solid #e6ebe7;min-width:0;padding:10px 0}.project-agent-worker-event-row[data-v-fcdd93e0]:first-child{border-top:0}.project-agent-worker-event-row header[data-v-fcdd93e0]{align-items:flex-start}.project-agent-worker-event-row header strong[data-v-fcdd93e0]{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-fcdd93e0]{color:#89948c;margin:0;font-size:8px;font-weight:500;display:inline}.project-agent-worker-event-row header i[data-v-fcdd93e0]{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-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-worker-event-row header i.is-failed[data-v-fcdd93e0]{color:#8c4f49;background:#f7e9e6}.project-agent-worker-event-row header i.is-cancelled[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-meta[data-v-fcdd93e0]{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-fcdd93e0]{min-width:0}.project-agent-execution-summary-meta dt[data-v-fcdd93e0]{color:#89948c;letter-spacing:.04em;text-transform:uppercase;font-size:8px;font-weight:700}.project-agent-execution-summary-meta dd[data-v-fcdd93e0]{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-fcdd93e0]{color:#89948c;margin-top:2px;font-size:8px;display:block}.project-agent-assignment-card[data-v-fcdd93e0],.project-agent-task-card[data-v-fcdd93e0],.project-agent-learning-card[data-v-fcdd93e0]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;min-width:0;padding:11px 12px}.project-agent-recruitment-card[data-v-fcdd93e0]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;padding:11px 12px}.project-agent-assignment-card header strong[data-v-fcdd93e0],.project-agent-task-card header strong[data-v-fcdd93e0],.project-agent-learning-card header strong[data-v-fcdd93e0]{color:#33483a;font-size:11px}.project-agent-card-actions[data-v-fcdd93e0]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.project-agent-assignment-card p[data-v-fcdd93e0],.project-agent-task-card p[data-v-fcdd93e0],.project-agent-learning-card p[data-v-fcdd93e0]{margin:7px 0 0}.project-agent-assignment-card small[data-v-fcdd93e0],.project-agent-task-card small[data-v-fcdd93e0],.project-agent-learning-card small[data-v-fcdd93e0]{color:#818a84;margin-top:6px;font-size:9px;line-height:1.5;display:block}.project-agent-assignment-card header i.is-ended[data-v-fcdd93e0],.project-agent-assignment-card header i.is-replaced[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-strategy-note[data-v-fcdd93e0],.project-agent-execution-line[data-v-fcdd93e0]{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-fcdd93e0],.project-agent-execution-line strong[data-v-fcdd93e0]{color:#53685a;font-size:10px}.project-agent-strategy-note small[data-v-fcdd93e0]{color:#8c5d54;flex-basis:100%}.project-agent-routing-decision[data-v-fcdd93e0]{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-fcdd93e0]{align-items:baseline;gap:8px}.project-agent-routing-decision .project-agent-section-heading strong[data-v-fcdd93e0]{color:#3f604b;font-size:10px}.project-agent-routing-decision small[data-v-fcdd93e0]{color:#65736a;line-height:1.45}.project-agent-blocked[data-v-fcdd93e0]{color:#8c5d54!important}.project-agent-task-card header[data-v-fcdd93e0]{align-items:flex-start}.project-agent-task-card header small[data-v-fcdd93e0]{margin-top:3px}.project-agent-task-card header i[data-v-fcdd93e0]{color:#53647b;background:#eef2f7}.project-agent-task-card header i.is-completed[data-v-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-task-card header i.is-failed[data-v-fcdd93e0]{color:#8c4f49;background:#f7e9e6}.project-agent-task-card header i.is-cancelled[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-heatmap-viewport[data-v-fcdd93e0]{contain:layout inline-size paint;min-width:0;max-width:100%;overflow-x:clip}.project-agent-heatmap[data-v-fcdd93e0]{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-fcdd93e0]{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-fcdd93e0]{background:#dce9df}.project-agent-heat-cell.intensity-2[data-v-fcdd93e0]{background:#b9d3bf}.project-agent-heat-cell.intensity-3[data-v-fcdd93e0]{background:#87b493}.project-agent-heat-cell.intensity-4[data-v-fcdd93e0]{background:#548466}.project-agent-heat-cell[data-v-fcdd93e0]:focus-visible,.project-agent-heat-cell.selected[data-v-fcdd93e0]{box-shadow:none;border:2px solid #2f5740;outline:none}.project-agent-day-detail[data-v-fcdd93e0]{background:#f6f8f6;border-radius:8px;margin-top:10px;padding:10px}.project-agent-day-detail ul[data-v-fcdd93e0]{margin:8px 0 0;padding-left:17px}.project-agent-day-detail li[data-v-fcdd93e0]{margin-top:6px}.project-agent-day-detail li strong[data-v-fcdd93e0],.project-agent-day-detail li span[data-v-fcdd93e0],.project-agent-day-detail li small[data-v-fcdd93e0]{display:block}.project-agent-day-detail li span[data-v-fcdd93e0]{color:#66736b;font-size:9px}.project-agent-day-detail li small[data-v-fcdd93e0]{color:#7e8981;font-size:9px}.project-agent-client-list[data-v-fcdd93e0],.project-agent-rule-list[data-v-fcdd93e0]{gap:5px;margin-top:9px;display:grid}.project-agent-client-row[data-v-fcdd93e0],.project-agent-rule-row[data-v-fcdd93e0]{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-fcdd93e0],.project-agent-rule-row strong[data-v-fcdd93e0]{color:#43584a;font-size:10px}.project-agent-client-row small[data-v-fcdd93e0]{color:#8a938d;grid-column:1/-1}.project-agent-executor-list[data-v-fcdd93e0]{gap:5px;margin-top:9px;display:grid}.project-agent-executor-row[data-v-fcdd93e0]{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-fcdd93e0]{color:#43584a;font-size:10px}.project-agent-executor-row small[data-v-fcdd93e0]{color:#8a938d;grid-column:1/-1}.project-agent-learning-card header i[data-v-fcdd93e0]{color:#6c776f;background:#f1f3f1}.project-agent-evidence-list[data-v-fcdd93e0]{margin:8px 0 0;padding-left:17px}.project-agent-evidence-list li[data-v-fcdd93e0]{color:#768179;font-size:9px}.project-agent-learning-actions[data-v-fcdd93e0]{gap:6px;margin-top:8px;display:flex}.project-agent-note[data-v-fcdd93e0]{color:#818a84;margin-top:9px;font-size:9px;line-height:1.5;display:block}.sr-only[data-v-fcdd93e0]{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-fcdd93e0]{grid-template-columns:minmax(220px,280px) 1fr}.project-agents-status-filter[data-v-fcdd93e0]{grid-column:1/-1;justify-self:start}.project-agents-directory[data-v-fcdd93e0]{grid-template-columns:minmax(320px,.9fr) minmax(330px,1fr)}.project-agent-detail-meta[data-v-fcdd93e0],.project-agent-compact-meta[data-v-fcdd93e0]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=420px){.project-agent-detail>header[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}.project-agent-detail-actions[data-v-fcdd93e0]{justify-content:start}}@media (width<=760px){.project-agents-view[data-v-fcdd93e0]{padding:14px 16px 18px;overflow:auto}.project-agents-header[data-v-fcdd93e0],.project-agents-summary[data-v-fcdd93e0],.project-agent-section-heading[data-v-fcdd93e0],.project-agent-assignment-card header[data-v-fcdd93e0]{flex-wrap:wrap;align-items:flex-start}.project-agents-toolbar[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}.project-agents-project-filter[data-v-fcdd93e0],.project-agents-search[data-v-fcdd93e0],.project-agents-status-filter[data-v-fcdd93e0]{grid-column:1}.project-agents-status-filter[data-v-fcdd93e0]{flex-wrap:wrap;justify-self:stretch;width:100%}.project-agents-directory[data-v-fcdd93e0]{flex:none;grid-template-columns:minmax(0,1fr);overflow:visible}.project-agent-list[data-v-fcdd93e0]{border-bottom:1px solid #dfe4e0;border-right:0;max-height:340px}.project-agent-detail[data-v-fcdd93e0]{min-height:520px;padding:16px}.project-agent-client-row[data-v-fcdd93e0],.project-agent-rule-row[data-v-fcdd93e0],.project-agent-executor-row[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr);align-items:start}.project-agent-client-row small[data-v-fcdd93e0],.project-agent-executor-row small[data-v-fcdd93e0]{grid-column:1}.project-agent-execution-summary-meta[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}.project-agent-worker-event-row header[data-v-fcdd93e0]{gap:8px}}.project-agent-disclosure[data-v-fcdd93e0]{margin-top:18px}.project-agent-disclosure>summary[data-v-fcdd93e0]{cursor:pointer;color:#39483f;padding-block:10px;font-size:13px;font-weight:650}.project-agent-disclosure>summary[data-v-fcdd93e0]:focus-visible{outline-offset:3px;outline:2px solid #315c43}.project-agent-disclosure .project-agent-detail-section[data-v-fcdd93e0]:first-child{margin-top:12px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,F as ee,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,nt as g,p as te,rt as _,v,x as y,z as b}from"./i18n-
|
|
1
|
+
import{A as e,C as t,F as ee,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,nt as g,p as te,rt as _,v,x as y,z as b}from"./i18n-BtOOoyJd.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";var ne={class:`project-scope-heading`},S=[`id`],C={key:0,class:`project-scope-count`,role:`status`},w=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],re={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},ie=[`id`],ae={key:1,class:`project-scope-multiple`},oe=[`id`,`aria-labelledby`],se=[`placeholder`,`aria-label`,`disabled`],T={class:`project-scope-bulk`},E={class:`project-scope-option project-scope-all`},D=[`checked`,`indeterminate`,`disabled`],O=[`disabled`],k=[`disabled`],A={class:`project-scope-list`},j=[`value`,`checked`,`disabled`,`onChange`],M={key:0,class:`project-scope-project-id`},N={key:0,class:`project-scope-empty`},P={key:0,class:`project-scope-footer`},F={role:`status`},I={key:1,class:`project-scope-hint`},L={key:2,class:`project-scope-hint`},R=x(o({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean},allLabel:{},showCount:{type:Boolean},resettable:{type:Boolean}},emits:[`update:modelValue`,`reset`],setup(o,{emit:x}){let R=o,z=x,B=s(null),V=s(null),H=s(null),U=s(!1),W=s(``),G=`employee-projects-${a().replace(/[^a-zA-Z0-9_-]/g,``)}`,K=c(()=>new Set(R.modelValue)),q=c(()=>R.projects.filter(e=>K.value.has(e.id)).length),J=c(()=>R.projects.length>0&&q.value===R.projects.length),ce=c(()=>R.label??l(`employees.scope.label`)),Y=c(()=>{let e=new Map;for(let t of R.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),le=c(()=>{let e=R.projects.find(e=>K.value.has(e.id));return e?`${e.name}${Y.value.has(e.name)?` · ${e.id}`:``}`:``}),ue=c(()=>R.showCount?l(`employees.scope.count`,{selected:q.value,total:R.projects.length}):J.value?R.allLabel??l(`employees.scope.allSummary`,{count:q.value}):q.value===1?le.value:q.value?l(`employees.scope.selected`,{count:q.value}):R.emptyLabel??l(`employees.unassigned`)),X=c(()=>{let e=W.value.trim().toLocaleLowerCase();return R.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});b(()=>R.disabled,e=>{e&&Z()}),r(()=>document.addEventListener(`pointerdown`,Q)),m(()=>document.removeEventListener(`pointerdown`,Q));async function de(){if(!R.disabled){if(U.value){Z();return}W.value=``,U.value=!0,await e(),H.value?.focus()}}function Z(t=!1){U.value=!1,t&&e(()=>V.value?.focus())}function Q(e){U.value&&!B.value?.contains(e.target)&&Z()}function fe(e){e.relatedTarget&&!B.value?.contains(e.relatedTarget)&&Z()}function pe(e){U.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),Z(!0))}function $(e){R.disabled||z(`update:modelValue`,e)}function me(){$(J.value?[]:R.projects.map(e=>e.id))}function he(){$(R.projects.filter(e=>!K.value.has(e.id)).map(e=>e.id))}function ge(e){let t=new Set(R.modelValue);t.has(e)?t.delete(e):t.add(e),$(R.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,r)=>(i(),y(`div`,{ref_key:`root`,ref:B,class:_([`project-scope-picker`,{"is-inline":o.inline,"is-compact":o.compact,"has-count":o.showCount}]),onFocusout:fe,onKeydown:pe},[v(`div`,ne,[v(`span`,{id:`${G}-label`,class:`project-scope-label`},u(ce.value),9,S),o.inline?(i(),y(`span`,C,u(g(l)(`employees.scope.count`,{selected:q.value,total:o.projects.length})),1)):d(``,!0)]),o.inline?d(``,!0):(i(),y(`button`,{key:0,ref_key:`trigger`,ref:V,type:`button`,class:`project-scope-trigger`,disabled:o.disabled,"aria-expanded":U.value,"aria-controls":`${G}-panel`,"aria-labelledby":`${G}-label ${G}-value`,onClick:de},[o.compact?(i(),y(`svg`,re,[...r[4]||=[v(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):d(``,!0),v(`span`,{id:`${G}-value`,class:`project-scope-value`},u(ue.value),9,ie),o.compact&&!o.showCount?(i(),y(`small`,ae,u(g(l)(`employees.scope.multiple`)),1)):d(``,!0),r[5]||=v(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[v(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,w)),o.inline||U.value?(i(),y(`div`,{key:1,id:`${G}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${G}-label`},[n(v(`input`,{ref_key:`search`,ref:H,"onUpdate:modelValue":r[0]||=e=>W.value=e,type:`search`,class:`project-scope-search`,placeholder:g(l)(`employees.scope.search`),"aria-label":g(l)(`employees.scope.search`),disabled:o.disabled,onKeydown:r[1]||=te(h(()=>{},[`prevent`]),[`enter`])},null,40,se),[[f,W.value]]),v(`div`,T,[v(`label`,E,[v(`input`,{type:`checkbox`,checked:J.value,indeterminate:q.value>0&&!J.value,disabled:o.disabled||!o.projects.length,onChange:me},null,40,D),v(`span`,null,[t(u(o.allLabel??g(l)(`employees.scope.all`))+` `,1),v(`small`,null,u(o.projects.length),1)])]),v(`button`,{type:`button`,disabled:o.disabled||!o.projects.length,onClick:he},u(g(l)(`employees.scope.invert`)),9,O),o.resettable?(i(),y(`button`,{key:0,class:`project-scope-reset`,type:`button`,disabled:o.disabled,onClick:r[2]||=e=>z(`reset`)},u(g(l)(`employees.scope.reset`)),9,k)):d(``,!0)]),v(`div`,A,[(i(!0),y(p,null,ee(X.value,e=>(i(),y(`label`,{key:e.id,class:_([`project-scope-option`,{"is-selected":K.value.has(e.id)}])},[v(`input`,{type:`checkbox`,value:e.id,checked:K.value.has(e.id),disabled:o.disabled,onChange:t=>ge(e.id)},null,40,j),v(`span`,null,[t(u(e.name),1),Y.value.has(e.name)?(i(),y(`small`,M,u(e.id),1)):d(``,!0)])],2))),128)),X.value.length?d(``,!0):(i(),y(`p`,N,u(g(l)(o.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),o.inline?d(``,!0):(i(),y(`div`,P,[v(`span`,F,u(g(l)(`employees.scope.count`,{selected:q.value,total:o.projects.length})),1),v(`button`,{type:`button`,onClick:r[3]||=e=>Z(!0)},u(g(l)(`employees.scope.done`)),1)])),o.compact&&o.hint?(i(),y(`p`,I,u(o.hint),1)):d(``,!0)],8,oe)):d(``,!0),!o.compact&&o.hint!==``?(i(),y(`p`,L,u(o.hint??g(l)(`employees.scope.snapshotHint`)),1)):d(``,!0)],34))}}),[[`__scopeId`,`data-v-bbd9c029`]]);export{R as t};
|