fuli-context 0.12.0 → 0.12.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 +14 -6
- package/README.zh-CN.md +9 -4
- package/dist/web/assets/{AboutPage-BAD0iPVX.js → AboutPage-Dized8Uz.js} +1 -1
- package/dist/web/assets/{AgentConversations-1iGTd4sz.js → AgentConversations-Ccy41mEA.js} +1 -1
- package/dist/web/assets/{AgentHand-D_RafKOM.js → AgentHand-UzVhbKUC.js} +1 -1
- package/dist/web/assets/{AgentName-B5LKQ09q.js → AgentName-DJpvkub2.js} +1 -1
- package/dist/web/assets/AgentProfilePage-CFViQ8kj.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-CBFTg_IE.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-Cv-vxw2C.css +1 -0
- package/dist/web/assets/{ConnectionsPage-Tr2rRVOZ.js → ConnectionsPage-uXcabab_.js} +1 -1
- package/dist/web/assets/EmployeeRecruitDialog-D8Hvhc-M.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-TBl_HNj6.js +3 -0
- package/dist/web/assets/KnowledgeEditDialog-HmiqLC-Y.js +1 -0
- package/dist/web/assets/KnowledgeInspector-Cj2yK4Qh.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-DT3BROZm.js +1 -0
- package/dist/web/assets/KnowledgePage-C4J4VueL.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-DA_dqVRG.js +4 -0
- package/dist/web/assets/{NotFoundPage-fetSnp0N.js → NotFoundPage-x_Yd59mm.js} +1 -1
- package/dist/web/assets/{OverviewPage-BD4yY2Xz.js → OverviewPage-3eZjQ26v.js} +1 -1
- package/dist/web/assets/OverviewPage-8LBN8Shi.css +1 -0
- package/dist/web/assets/PersonalProfilePage-CDQk096L.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-CJxp4Wyz.js +1 -0
- package/dist/web/assets/{ProjectAgentFirstTask-BcxqmKXQ.js → ProjectAgentFirstTask-BkRJ0zwO.js} +1 -1
- package/dist/web/assets/{ProjectAgentsPage-BWDJBESb.js → ProjectAgentsPage-BuNNqSEy.js} +8 -8
- package/dist/web/assets/{ProjectScopePicker-yodM7lF_.js → ProjectScopePicker-CiDxM2Yx.js} +1 -1
- package/dist/web/assets/PublicProjectsPage-ByOT559r.js +1 -0
- package/dist/web/assets/{ReviewPage-Cy0Rt4CO.js → ReviewPage-C0Vdr9uq.js} +1 -1
- package/dist/web/assets/RoundtablesPage-Drou-B81.css +1 -0
- package/dist/web/assets/RoundtablesPage-L3ShEWS3.js +1 -0
- package/dist/web/assets/SettingsPage-BE8pWbI6.css +1 -0
- package/dist/web/assets/SettingsPage-McYuinGz.js +1 -0
- package/dist/web/assets/{SharedJefaReportPage-C56kPciB.js → SharedJefaReportPage-Bg6lIk3E.js} +1 -1
- package/dist/web/assets/UiButton-x8hiHNRM.js +1 -0
- package/dist/web/assets/UiDialog-mjletK0y.js +1 -0
- package/dist/web/assets/{UiDisclosure-D0iMTplF.js → UiDisclosure-_IxeiexW.js} +1 -1
- package/dist/web/assets/{UiSegmented-DIJW6wv3.js → UiSegmented-WFfz9Evl.js} +1 -1
- package/dist/web/assets/{UiSelect-CMR0QqF6.js → UiSelect-K29jnV-1.js} +1 -1
- package/dist/web/assets/{WritingTastePage-QgNzssfF.js → WritingTastePage-DCULB-d2.js} +1 -1
- package/dist/web/assets/agent-pins-DS4mNsNt.js +1 -0
- package/dist/web/assets/agent-profile-Bh3MJGvb.css +1 -0
- package/dist/web/assets/{attention-store-B1DI8wmd.js → attention-store-CA5y8j1R.js} +1 -1
- package/dist/web/assets/catalog-D0VEfOAV.js +1 -0
- package/dist/web/assets/{client-CR-W5Wzp.js → client-DnwnUBQV.js} +1 -1
- package/dist/web/assets/{console-D7GHOMEC.js → console-Cw7TzOSC.js} +1 -1
- package/dist/web/assets/conversation-launcher-settings-Yc13viwr.js +1 -0
- package/dist/web/assets/{i18n-CVFhT_k7.js → i18n-oJFlt8hW.js} +3 -3
- package/dist/web/assets/{identity-CM6Dmy00.js → identity-DSGS4CZc.js} +1 -1
- package/dist/web/assets/index-BfHCcUL2.css +1 -0
- package/dist/web/assets/index-CxNER7Oo.js +5 -0
- package/dist/web/assets/{judgment-types-CJBEyJs1.js → judgment-types-DR931cZ7.js} +1 -1
- package/dist/web/assets/{model-WFhQZ3v_.js → model-BJ-UF4cs.js} +1 -1
- package/dist/web/assets/{personal-profile-graph-BwCh2M9G.js → personal-profile-graph-SOK0BR0w.js} +1 -1
- package/dist/web/assets/project-team-api-C_0qJk_B.js +1 -0
- package/dist/web/assets/{shared-report-CeIvrL9a.js → shared-report-CiX64ZiD.js} +1 -1
- package/dist/web/assets/useAgentRoster-B84mzZIg.js +1 -0
- package/dist/web/assets/{useApi-CROJJdhE-BYhbjaZB.js → useApi-CROJJdhE-7gt0QyQ5.js} +1 -1
- package/dist/web/assets/{vue-router-DaxrQwX3.js → vue-router-CCvPGaLD.js} +1 -1
- package/dist/web/index.html +15 -14
- package/dist/web/licenses/ant-design-icons.txt +22 -0
- package/docs/agent-conversations-and-collaboration.md +3 -3
- package/docs/agent-roundtable.md +33 -0
- package/docs/client-connections.md +108 -0
- package/docs/employee-agents.md +3 -3
- package/docs/project-agent-memory.md +6 -6
- package/graph-provider/fuli_graph/default_project_lead.py +1 -1
- package/graph-provider/fuli_graph/project_agent_delegations.py +70 -2
- package/graph-provider/fuli_graph/project_agent_memory_routes.py +18 -1
- package/graph-provider/fuli_graph/project_agent_remote_origins.py +154 -0
- package/graph-provider/fuli_graph/project_agent_task_models.py +1 -1
- package/graph-provider/fuli_graph/runtime.py +7 -0
- package/graph-provider/fuli_graph/store_project_agent_context.py +3 -2
- package/graph-provider/fuli_graph/store_project_agent_coordination_policy.py +1 -1
- package/graph-provider/fuli_graph/store_project_agent_task_reads.py +1 -1
- package/graph-provider/fuli_graph/store_project_agent_task_recruitment.py +5 -5
- package/graph-provider/fuli_graph/store_project_agent_task_staffing.py +2 -2
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +2 -2
- package/graph-provider/fuli_graph/store_project_agents.py +6 -6
- package/graph-provider/fuli_graph/system_agents.py +12 -2
- package/graph-provider/fuli_graph/system_hr_identity.py +2 -2
- package/graph-provider/pyproject.toml +2 -1
- package/npm-shrinkwrap.json +280 -5
- package/package.json +6 -2
- package/skills/operating-fuli/SKILL.md +3 -3
- package/src/agent-peer/coordinator-http.js +117 -0
- package/src/agent-peer/coordinator-service.js +258 -0
- package/src/agent-peer/coordinator-store.js +95 -0
- package/src/agent-peer/device-identity.js +70 -0
- package/src/agent-peer/http.js +47 -0
- package/src/agent-peer/node-store.js +127 -0
- package/src/agent-peer/origin-proof.js +56 -0
- package/src/agent-peer/peer-port.js +140 -0
- package/src/agent-peer/peer-runtime.js +298 -0
- package/src/agent-peer/peer-transport.js +78 -0
- package/src/agent-peer/protocol.js +161 -0
- package/src/agent-peer/runner.js +251 -0
- package/src/agent-roundtable/http.js +17 -3
- package/src/agent-roundtable/service.js +272 -43
- package/src/agent-roundtable/tools.js +15 -1
- package/src/agent-roundtable/wake.js +12 -3
- package/src/agent-tools/graph-definitions.js +14 -5
- package/src/agent-tools/graph-handlers.js +1 -0
- package/src/agent-tools/interface-catalog.js +10 -1
- package/src/agent-tools/project-agent-definitions.js +1 -1
- package/src/agents/identity-receipt.js +1 -1
- package/src/cli/command-registry.js +3 -0
- package/src/cli/connect-command.js +31 -0
- package/src/cli/mcp-command.js +101 -0
- package/src/cli/peer-command.js +100 -0
- package/src/cli/setup-agent-selection.js +2 -2
- package/src/cli/setup-command.js +12 -5
- package/src/cli.js +16 -0
- package/src/employees/catalog/bole.json +2 -2
- package/src/graphiti/federated-application.js +4 -1
- package/src/graphiti/project-agent-control-plane.js +7 -0
- package/src/graphiti/project-agent-task-entry.js +4 -4
- package/src/graphiti/project-agent-team-context.js +16 -18
- package/src/graphiti/project-team-view.js +82 -0
- package/src/graphiti/provider-client.js +9 -0
- package/src/graphiti/task-entry-preferences.js +1 -1
- package/src/http/api-router.js +10 -1
- package/src/http/graph-api-router.js +7 -0
- package/src/mcp/runtime.js +2 -1
- package/src/mcp/tool-annotations.js +4 -3
- package/src/mcp/tool-profiles.js +36 -0
- package/src/mcp-server.js +2 -100
- package/src/server.js +14 -2
- package/src/setup/agent-installation-status.js +5 -3
- package/src/setup/agents.js +23 -3
- package/src/setup/claude-desktop-config.js +60 -0
- package/src/setup/client-connection.js +25 -0
- package/src/setup/paths.js +3 -1
- package/src/setup/setup.js +1 -1
- package/src/setup/stable-package-root.js +29 -0
- package/src/system/system-service.js +5 -0
- package/dist/web/assets/AgentProfilePage-CioOdkBM.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage--1A9nvNA.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage-C7OUQH9v.css +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-1QevD4Qv.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-B0vQIgwA.js +0 -3
- package/dist/web/assets/KnowledgeEditDialog-ClnrfPZi.js +0 -1
- package/dist/web/assets/KnowledgeInspector-Te1hJZbx.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-CCCrWl6Y.js +0 -1
- package/dist/web/assets/KnowledgePage-DGOcBwr8.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-cKn1NCRe.js +0 -4
- package/dist/web/assets/OverviewPage-By-fUzSG.css +0 -1
- package/dist/web/assets/PersonalProfilePage-DGJVP_VB.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-D25HYMgD.js +0 -1
- package/dist/web/assets/PublicProjectsPage-CyNxVzW3.js +0 -1
- package/dist/web/assets/RoundtablesPage-BjVhvwMc.js +0 -1
- package/dist/web/assets/RoundtablesPage-Cb0R4GaM.css +0 -1
- package/dist/web/assets/SettingsPage-CCZqZtnH.js +0 -1
- package/dist/web/assets/SettingsPage-DYz5bTwa.css +0 -1
- package/dist/web/assets/UiDialog-CvDxg3B1.js +0 -1
- package/dist/web/assets/agent-pins-BcJ_qr8n.js +0 -1
- package/dist/web/assets/agent-profile-BZj3ezWe.css +0 -1
- package/dist/web/assets/catalog-DbXv0_bR.js +0 -1
- package/dist/web/assets/conversation-launcher-settings-Dj2GMzCI.js +0 -1
- package/dist/web/assets/index-CJ6Jmok9.css +0 -1
- package/dist/web/assets/index-CRa3GnYi.js +0 -5
- package/dist/web/assets/useAgentRoster-DCArHlxK.js +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{A as e,B as t,E as n,H as r,I as i,L as a,N as o,P as s,Q as c,S as l,T as u,U as d,a as f,b as p,f as m,g as h,it as g,j as _,l as v,n as y,ot as b,p as x,rt as S,v as C,w,x as T,y as E}from"./i18n-
|
|
2
|
-
`)??``,y.value=``,D.value=``)},{immediate:!0});async function M(){if(!i.agent)return;D.value=``;let e=y.value.trim(),t=g.value.trim();if(!e||i.action===`assign`&&!t){D.value=f(`projectAgents.assignmentDialog.required`);return}if(i.action===`replace`&&!h.value){D.value=f(`projectAgents.assignmentDialog.replacementRequired`);return}x.value=!0;try{if(i.action===`assign`){let n=await
|
|
3
|
-
`).map(e=>e.trim()).filter(Boolean))]}function P(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(t,n)=>(s(),p(ee,{open:e.open,class:`project-agent-assignment-dialog`,form:``,busy:x.value,error:D.value,title:S(f)(`projectAgents.assignmentDialog.${
|
|
4
|
-
`)??``,x.value=t?.globalPriority??n?.priority??100,D.value=t?.healthRequired===!0,
|
|
1
|
+
import{A as e,B as t,E as n,H as r,I as i,L as a,N as o,P as s,Q as c,S as l,T as u,U as d,a as f,b as p,f as m,g as h,it as g,j as _,l as v,n as y,ot as b,p as x,rt as S,v as C,w,x as T,y as E}from"./i18n-oJFlt8hW.js";import{t as D}from"./console-Cw7TzOSC.js";import{a as O,i as k,n as A,o as j,r as M,s as N}from"./client-DnwnUBQV.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as F}from"./UiButton-x8hiHNRM.js";import{m as I}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as L}from"./vue-router-CCvPGaLD.js";import{t as ee}from"./UiDialog-mjletK0y.js";import{t as R}from"./UiSelect-K29jnV-1.js";import{t as z}from"./AgentHand-UzVhbKUC.js";import{_ as te,a as ne,c as re,d as B,f as ie,g as V,h as H,i as U,l as ae,m as W,n as G,o as K,p as q,r as oe,s as se,t as ce,u as le}from"./task-evidence-DTiPCs7r.js";import{t as ue}from"./AgentConversations-Ccy41mEA.js";import{r as de,t as fe}from"./agent-work-summary-C-yW7x7A.js";import{a as pe,i as me,s as he}from"./catalog-D0VEfOAV.js";import{t as ge}from"./ProjectAgentFirstTask-BkRJ0zwO.js";import{t as _e}from"./ProjectScopePicker-CiDxM2Yx.js";import{t as ve}from"./EmployeeRecruitDialog-D8Hvhc-M.js";function ye(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:be(t),toDate:be(e)}}function be(e){return e.toISOString().slice(0,10)}function xe(e,t){let n=H(e),r=G(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=H(e);return{date:W(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:G(t.tasks).map(J).filter(e=>!!e)}}).filter(({date:e})=>e),a=W(n,`fromDate`,`from_date`),o=W(n,`toDate`,`to_date`),s=i.some(({total:e,tasks:t})=>e>0||!!t?.length),c=a??(i.length?i.map(({date:e})=>e).sort()[0]:void 0),l=o??(i.length?i.map(({date:e})=>e).sort().at(-1):void 0),u=s&&c&&l?Se(i,c,l):[];return{agentId:W(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:W(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Se(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=be(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function J(e){let t=H(e),n=W(t,`taskId`,`task_id`);if(!n)return null;let r=U(V(t,`actualExecution`,`actual_execution`))??U({executor:W(t,`actualExecutor`,`actual_executor`),provider:W(t,`actualModelProvider`,`actual_model_provider`),model:W(t,`actualModel`,`actual_model`),client:W(t,`sourceApplication`,`source_application`)});return{taskId:n,title:W(t,`title`,`title`)??n,status:W(t,`status`,`status`),summary:W(t,`summary`,`summary`)??``,occurredAt:W(t,`occurredAt`,`occurred_at`)??``,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),assignmentId:W(t,`assignmentId`,`assignment_id`),collaborators:G(t.collaborators).map(K),sourceApplication:W(t,`sourceApplication`,`source_application`),sourceSessionId:W(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:W(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:B(V(t,`workerRuntime`,`worker_runtime`)),toolsUsed:q(t,`toolsUsed`,`tools_used`),tokenUsage:le(V(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:W(t,`actualModelProvider`,`actual_model_provider`),actualModel:W(t,`actualModel`,`actual_model`)}}var Ce={class:`project-agent-assignment-fields`},we={key:1,class:`ui-field`},Te=[`value`],Ee={key:3,class:`ui-field project-agent-assignment-wide`},De=[`disabled`],Oe={key:4,class:`ui-field`},Y=[`disabled`],ke={key:5,class:`ui-field`},Ae=[`disabled`,`placeholder`],je={class:`ui-field project-agent-assignment-wide`},Me=[`disabled`,`placeholder`],Ne=P(n({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:n}){let i=e,a=n,o=c(``),h=c(``),g=c(``),_=c(``),v=c(``),y=c(``),x=c(!1),D=c(``),k=C(()=>i.action!==`assign`),A=C(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),j=C(()=>i.availableAgents.filter(e=>e.agentId!==i.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.displayName||e.profile.name,meta:e.profile.name})));t(()=>[i.open,i.agent,i.assignment,i.action,i.defaultProjectId],()=>{i.open&&(o.value=i.assignment?.personalProjectId??i.defaultProjectId??i.projects[0]?.project_id??``,h.value=``,g.value=i.assignment?.responsibility??i.agent?.profile.responsibility??``,_.value=i.assignment?.scope??``,v.value=i.assignment?.workKinds?.join(`
|
|
2
|
+
`)??``,y.value=``,D.value=``)},{immediate:!0});async function M(){if(!i.agent)return;D.value=``;let e=y.value.trim(),t=g.value.trim();if(!e||i.action===`assign`&&!t){D.value=f(`projectAgents.assignmentDialog.required`);return}if(i.action===`replace`&&!h.value){D.value=f(`projectAgents.assignmentDialog.replacementRequired`);return}x.value=!0;try{if(i.action===`assign`){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:i.agent.personalSpaceId,personalProjectId:o.value,agentId:i.agent.agentId,idempotencyKey:P(),responsibility:t,workKinds:N(v.value),capabilities:[],reason:e});a(`saved`,n)}else{if(!i.assignment)return;await O(`/api/project-agent-assignments/${encodeURIComponent(i.assignment.assignmentId)}/${i.action}`,i.action===`replace`?{personalSpaceId:i.agent.personalSpaceId,personalProjectId:i.assignment.personalProjectId,assignmentId:i.assignment.assignmentId,expectedRevision:i.assignment.revision??0,replacementAgentId:h.value,idempotencyKey:P(),responsibility:t||i.assignment.responsibility,workKinds:N(v.value),capabilities:i.assignment.capabilities??[],reason:e}:{personalSpaceId:i.agent.personalSpaceId,personalProjectId:i.assignment.personalProjectId,assignmentId:i.assignment.assignmentId,expectedRevision:i.assignment.revision??0,reason:e}),a(`changed`)}a(`close`)}catch(e){D.value=e instanceof Error?e.message:f(`projectAgents.assignmentDialog.saveFailed`)}finally{x.value=!1}}function N(e){return[...new Set(e.split(`
|
|
3
|
+
`).map(e=>e.trim()).filter(Boolean))]}function P(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(t,n)=>(s(),p(ee,{open:e.open,class:`project-agent-assignment-dialog`,form:``,busy:x.value,error:D.value,title:S(f)(`projectAgents.assignmentDialog.${k.value?e.action:`assign`}Title`),onClose:n[7]||=e=>a(`close`),onSubmit:M},{footer:r(()=>[u(F,{variant:`ghost`,disabled:x.value,onClick:n[6]||=e=>a(`close`)},{default:r(()=>[w(b(S(f)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),u(F,{variant:`primary`,type:`submit`,busy:x.value,"busy-label":S(f)(`projectAgents.assignmentDialog.saving`)},{default:r(()=>[w(b(S(f)(`projectAgents.assignmentDialog.${k.value?`saveChange`:`saveAssign`}`)),1)]),_:1},8,[`busy`,`busy-label`])]),default:r(()=>[E(`div`,Ce,[k.value?(s(),l(`label`,we,[w(b(S(f)(`projectAgents.fields.project`))+` `,1),E(`input`,{value:i.assignment?i.assignment.personalProjectId:``,disabled:``},null,8,Te)])):(s(),p(R,{key:0,modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,field:``,"control-id":`project-agent-assignment-project`,options:A.value,label:S(f)(`projectAgents.fields.project`),placeholder:S(f)(`projectAgents.dialog.projectPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])),k.value&&e.action===`replace`?(s(),p(R,{key:2,modelValue:h.value,"onUpdate:modelValue":n[1]||=e=>h.value=e,field:``,"control-id":`project-agent-assignment-replacement`,options:j.value,label:S(f)(`projectAgents.assignmentDialog.replacement`),placeholder:S(f)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:x.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])):T(``,!0),k.value?T(``,!0):(s(),l(`label`,Ee,[w(b(S(f)(`projectAgents.fields.responsibility`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[2]||=e=>g.value=e,rows:`3`,maxlength:`4096`,disabled:x.value,required:``},null,8,De),[[m,g.value]])])),k.value?T(``,!0):(s(),l(`label`,Oe,[w(b(S(f)(`projectAgents.fields.scope`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>_.value=e,maxlength:`4096`,disabled:x.value},null,8,Y),[[m,_.value]])])),k.value?T(``,!0):(s(),l(`label`,ke,[w(b(S(f)(`projectAgents.assignmentDialog.workKinds`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[4]||=e=>v.value=e,rows:`3`,disabled:x.value,placeholder:S(f)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,Ae),[[m,v.value]])])),E(`label`,je,[w(b(S(f)(`projectAgents.fields.reason`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[5]||=e=>y.value=e,rows:`3`,maxlength:`2048`,disabled:x.value,placeholder:S(f)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Me),[[m,y.value]])])])]),_:1},8,[`open`,`busy`,`error`,`title`]))}}),[[`__scopeId`,`data-v-0c51a000`]]),X={class:`executor-routing-fields`},Pe={class:`ui-field`},Fe=[`disabled`],Ie={class:`ui-field`},Le=[`disabled`],Re={class:`ui-field`},ze=[`disabled`],Be={class:`ui-field`},Ve=[`disabled`],He={class:`ui-field executor-routing-wide`},Ue=[`disabled`],We={class:`ui-check executor-routing-wide`},Ge=[`disabled`],Ke={class:`ui-meta executor-routing-wide`},Z={class:`ui-field`},qe=[`disabled`],Je={key:1,class:`ui-field`},Ye=[`disabled`],Xe={class:`ui-field`},Ze=[`disabled`],Qe={class:`ui-field executor-routing-wide`},$e=[`placeholder`,`disabled`],et={class:`ui-field executor-routing-wide`},tt=[`disabled`],nt={class:`ui-field executor-routing-wide`},rt=[`disabled`],Q={class:`ui-meta executor-routing-wide`},it=P(n({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(e,{emit:n}){let i=e,a=n,o=c(``),g=c(``),_=c(`external`),y=c(``),x=c(100),D=c(!1),O=c(`space`),k=c(``),A=c(``),M=c(``),N=c(``),P=c(``),I=c(``),L=c(!1),z=c(``),te=C(()=>!!i.executor),ne=C(()=>i.mode===`executor`?te.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),re=C(()=>i.mode===`executor`?f(`projectAgents.routing.editor.savingExecutor`):f(`projectAgents.routing.editor.savingRule`)),B=[`space`,`project`,`task`].map(e=>({value:e,label:e})),ie=C(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));t(()=>[i.open,i.mode,i.executor,i.rule],([e])=>{if(!e)return;let t=i.executor,n=i.rule;o.value=t?.executorId??``,g.value=t?.displayName??t?.label??``,_.value=t?.executorKind??`external`,y.value=t?.capabilities?.join(`
|
|
4
|
+
`)??``,x.value=t?.globalPriority??n?.priority??100,D.value=t?.healthRequired===!0,O.value=n?.scope??`space`,k.value=n?.personalProjectId??``,A.value=n?.taskId??``,M.value=n?.workKind??``,N.value=n?.requiredCapabilities?.join(`
|
|
5
5
|
`)??``,P.value=n?.executorIds?.join(`
|
|
6
6
|
`)??``,I.value=``,z.value=``},{immediate:!0});function V(e){return[...new Set(e.split(`
|
|
7
|
-
`).map(e=>e.trim()).filter(Boolean))]}function H(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function U(){if(L.value)return;let e=V(y.value),t=I.value.trim();if(i.mode===`executor`){if(!o.value.trim()||!g.value.trim()||x.value<1){z.value=f(`projectAgents.routing.editor.executorRequired`);return}}else if(!M.value.trim()||!V(P.value).length||!t){z.value=f(`projectAgents.routing.editor.ruleRequired`);return}L.value=!0,z.value=``;try{if(i.mode===`executor`){let t=await O(`/api/executors`,{personalSpaceId:i.personalSpaceId,executorId:o.value.trim(),displayName:g.value.trim(),executorKind:_.value.trim()||`external`,capabilities:e,advertisedModels:i.executor?.advertisedModels??i.executor?.availableModels??[],globalPriority:x.value,healthRequired:D.value,expectedRevision:i.executor?.revision,idempotencyKey:H(`executor-directory`)});a(`saved`,t)}else{let e=await O(`/api/executor-routing-rules`,{personalSpaceId:k.value===`global`?void 0:i.personalSpaceId,scope:k.value,personalProjectId:(k.value===`project`||k.value===`task`)&&A.value||void 0,taskId:k.value===`task`&&j.value||void 0,workKind:M.value.trim(),requiredCapabilities:V(N.value),executorIds:V(P.value),priority:x.value,reason:t,idempotencyKey:H(`executor-rule`)});a(`saved`,e)}a(`close`)}catch(e){z.value=e instanceof Error?e.message:f(`projectAgents.routing.editor.saveFailed`)}finally{L.value=!1}}return(t,n)=>(s(),p(ee,{open:e.open,class:`executor-routing-dialog`,size:`lg`,form:``,busy:L.value,error:z.value,title:S(f)(`projectAgents.routing.editor.${ne.value}`),onClose:n[15]||=e=>a(`close`),onSubmit:U},{footer:r(()=>[u(F,{variant:`ghost`,disabled:L.value,onClick:n[14]||=e=>a(`close`)},{default:r(()=>[w(b(S(f)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),u(F,{variant:`primary`,type:`submit`,busy:L.value,"busy-label":re.value},{default:r(()=>[w(b(S(f)(`projectAgents.routing.editor.save`)),1)]),_:1},8,[`busy`,`busy-label`])]),default:r(()=>[E(`div`,X,[e.mode===`executor`?(s(),l(h,{key:0},[E(`label`,Pe,[w(b(S(f)(`projectAgents.routing.editor.executorId`)),1),d(E(`input`,{"onUpdate:modelValue":n[0]||=e=>o.value=e,maxlength:`128`,disabled:te.value||L.value,required:``},null,8,Fe),[[m,o.value]])]),E(`label`,Ie,[w(b(S(f)(`projectAgents.routing.editor.displayName`)),1),d(E(`input`,{"onUpdate:modelValue":n[1]||=e=>g.value=e,maxlength:`160`,disabled:L.value,required:``},null,8,Le),[[m,g.value]])]),E(`label`,Re,[w(b(S(f)(`projectAgents.routing.editor.executorKind`)),1),d(E(`input`,{"onUpdate:modelValue":n[2]||=e=>_.value=e,maxlength:`128`,disabled:L.value},null,8,ze),[[m,_.value]])]),E(`label`,Be,[w(b(S(f)(`projectAgents.routing.editor.priority`)),1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>x.value=e,type:`number`,min:`1`,max:`1000000`,disabled:L.value,required:``},null,8,Ve),[[m,x.value,void 0,{number:!0}]])]),E(`label`,He,[w(b(S(f)(`projectAgents.routing.editor.capabilities`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[4]||=e=>y.value=e,rows:`3`,disabled:L.value},null,8,Ue),[[m,y.value]])]),E(`label`,We,[d(E(`input`,{"onUpdate:modelValue":n[5]||=e=>D.value=e,type:`checkbox`,disabled:L.value},null,8,Ge),[[v,D.value]]),E(`span`,null,b(S(f)(`projectAgents.routing.editor.healthRequired`)),1)]),E(`p`,Ke,b(S(f)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(s(),l(h,{key:1},[u(R,{modelValue:k.value,"onUpdate:modelValue":n[6]||=e=>k.value=e,field:``,label:S(f)(`projectAgents.routing.editor.scope`),options:S(B),disabled:L.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`label`,Z,[w(b(S(f)(`projectAgents.routing.editor.priority`)),1),d(E(`input`,{"onUpdate:modelValue":n[7]||=e=>x.value=e,type:`number`,min:`1`,max:`1000000`,disabled:L.value,required:``},null,8,qe),[[m,x.value,void 0,{number:!0}]])]),k.value===`project`||k.value===`task`?(s(),p(R,{key:0,modelValue:A.value,"onUpdate:modelValue":n[8]||=e=>A.value=e,field:``,"control-id":`executor-rule-project`,options:ie.value,label:S(f)(`projectAgents.fields.project`),disabled:L.value},null,8,[`modelValue`,`options`,`label`,`disabled`])):T(``,!0),k.value===`task`?(s(),l(`label`,Je,[w(b(S(f)(`projectAgents.routing.editor.taskId`)),1),d(E(`input`,{"onUpdate:modelValue":n[9]||=e=>j.value=e,maxlength:`128`,disabled:L.value},null,8,Ye),[[m,j.value]])])):T(``,!0),E(`label`,Xe,[w(b(S(f)(`projectAgents.routing.editor.workKind`)),1),d(E(`input`,{"onUpdate:modelValue":n[10]||=e=>M.value=e,maxlength:`128`,disabled:L.value,required:``},null,8,Ze),[[m,M.value]])]),E(`label`,Qe,[w(b(S(f)(`projectAgents.routing.editor.executorIds`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[11]||=e=>P.value=e,rows:`3`,placeholder:S(f)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:L.value,required:``},null,8,$e),[[m,P.value]])]),E(`label`,et,[w(b(S(f)(`projectAgents.routing.editor.requiredCapabilities`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[12]||=e=>N.value=e,rows:`3`,disabled:L.value},null,8,tt),[[m,N.value]])]),E(`label`,nt,[w(b(S(f)(`projectAgents.fields.reason`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[13]||=e=>I.value=e,rows:`3`,disabled:L.value,required:``},null,8,rt),[[m,I.value]])]),E(`p`,Q,b(S(f)(`projectAgents.routing.editor.ruleNote`)),1)],64))])]),_:1},8,[`open`,`busy`,`error`,`title`]))}}),[[`__scopeId`,`data-v-7120b758`]]),at=[`aria-label`,`aria-busy`],ot={key:1,class:`project-agent-policy-options`},st=[`checked`,`disabled`],ct=[`checked`,`disabled`],lt=[`checked`,`disabled`],ut={key:2,class:`project-team`},dt={class:`project-team-peers`},ft={key:1},pt={key:2},mt={class:`project-team-summary`},ht={key:0,class:`project-team-members`},gt=[`onClick`],$=[`disabled`],_t=[`onChange`],vt=[`value`],yt=[`disabled`],bt={class:`project-agent-policy-feedback`,"aria-live":`polite`},xt={key:0,role:`alert`},St=[`disabled`],Ct={key:2,role:`status`},wt=P(n({__name:`ProjectAgentAutomationPolicyPanel`,props:{personalSpaceId:{},personalProjectId:{},projectName:{},agents:{}},emits:[`select`],setup(e,{emit:n}){let r=e,a=n,o=c(ae()),m=c(!1),g=c(!1),_=c(``),y=c(``),x=c(!1),D=c(``),O=c([]),k=0,N=C(()=>m.value||g.value),P=C(()=>(r.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===r.personalProjectId))),F=P,ee=C(()=>[...o.value.teamLeadAgentId?[]:[{value:``,label:f(`projectAgents.team.noLead`)}],...F.value.map(e=>({value:e.agentId,label:re(e)}))]),I=C(()=>P.value.filter(e=>e.agentId!==D.value)),L=C(()=>O.value.filter(e=>!I.value.some(t=>t.agentId===e)).map(e=>({id:e,name:(r.agents??[]).find(t=>t.agentId===e)?.profile.displayName||(r.agents??[]).find(t=>t.agentId===e)?.profile.name||f(`projectAgents.team.unavailableMember`)}))),z=C(()=>P.value.find(e=>e.agentId===o.value.teamLeadAgentId)),te=C(()=>P.value.filter(e=>o.value.teamMemberAgentIds?.includes(e.agentId))),ne=C(()=>D.value!==(o.value.teamLeadAgentId??``)||JSON.stringify([...O.value].sort())!==JSON.stringify([...o.value.teamMemberAgentIds??[]].sort()));t(D,e=>{O.value=e?O.value.filter(t=>t!==e):[]});function re(e){return e.profile.displayName||e.profile.name}function B(){D.value=o.value.teamLeadAgentId??``,O.value=[...o.value.teamMemberAgentIds??[]]}t(()=>[r.personalSpaceId,r.personalProjectId],()=>void ie(),{immediate:!0});async function ie(){let e=++k;if(o.value=ae(),B(),g.value=!1,m.value=!1,x.value=!1,y.value=``,!(!r.personalSpaceId||!r.personalProjectId)){m.value=!0,_.value=``;try{let t=await A(`/api/project-agent-coordination-policy?${new URLSearchParams({personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId})}`);e===k&&(o.value=W(t),B())}catch(t){e===k&&(_.value=t instanceof Error?t.message:f(`projectAgents.coordination.loadFailed`))}finally{e===k&&(m.value=!1)}}}async function V(e,t){if(N.value||_.value)return;let n={...o.value},r=t.currentTarget.checked;o.value={...o.value,[e]:r},await U(n)}async function H(){N.value||_.value||!ne.value||!D.value||await U({...o.value},{teamLeadAgentId:D.value||null,teamMemberAgentIds:[...O.value]})}async function U(e,t){let n=k;g.value=!0,x.value=!1,y.value=``;try{let i=await M(`/api/project-agent-coordination-policy`,{personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId,askBeforeRecruitment:o.value.askBeforeRecruitment,autoReusePreviousAgent:o.value.autoReusePreviousAgent,autoGrowTeam:o.value.autoGrowTeam??!0,expectedUpdatedAt:e.updatedAt,...t});if(n!==k)return;o.value=W(i),t&&B(),x.value=!0}catch(t){if(n!==k)return;o.value=e,y.value=t instanceof Error?t.message:f(`projectAgents.coordination.saveFailed`)}finally{n===k&&(g.value=!1)}}function ae(){return{personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId,askBeforeRecruitment:!0,autoReusePreviousAgent:!0,autoGrowTeam:!0,updatedAt:null,teamLeadAgentId:null,teamMemberAgentIds:[]}}function W(e){let t=e&&typeof e==`object`?e:{};return{personalSpaceId:K(t.personalSpaceId??t.personal_space_id)||r.personalSpaceId,personalProjectId:K(t.personalProjectId??t.personal_project_id)||r.personalProjectId,askBeforeRecruitment:G(t.askBeforeRecruitment??t.ask_before_recruitment,!0),autoReusePreviousAgent:G(t.autoReusePreviousAgent??t.auto_reuse_previous_agent,!0),updatedAt:K(t.updatedAt??t.updated_at),autoGrowTeam:G(t.autoGrowTeam??t.auto_grow_team,!0),teamLeadAgentId:K(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 G(e,t){return typeof e==`boolean`?e:t}function K(e){return typeof e==`string`&&e?e:null}return(t,n)=>(s(),l(`section`,{class:`project-agent-automation-policy`,"aria-label":S(f)(`projectAgents.coordination.aria`,{project:e.projectName}),"aria-busy":N.value},[E(`header`,null,[E(`h3`,null,b(S(f)(`projectAgents.coordination.title`)),1),E(`span`,null,b(e.projectName),1)]),m.value?(s(),p(j,{key:0,variant:`compact`,label:S(f)(`projectAgents.coordination.loading`)},null,8,[`label`])):(s(),l(`div`,ot,[E(`label`,null,[E(`span`,null,[E(`strong`,null,b(S(f)(`projectAgents.coordination.autoReuse`)),1),E(`small`,null,b(S(f)(`projectAgents.coordination.autoReuseMeta`)),1)]),E(`input`,{checked:o.value.autoReusePreviousAgent,disabled:N.value||!!_.value,type:`checkbox`,role:`switch`,onChange:n[0]||=e=>V(`autoReusePreviousAgent`,e)},null,40,st)]),E(`label`,null,[E(`span`,null,[E(`strong`,null,b(S(f)(`projectAgents.coordination.askBeforeRecruitment`)),1),E(`small`,null,b(S(f)(`projectAgents.coordination.askBeforeRecruitmentMeta`)),1)]),E(`input`,{checked:o.value.askBeforeRecruitment,disabled:N.value||!!_.value,type:`checkbox`,role:`switch`,onChange:n[1]||=e=>V(`askBeforeRecruitment`,e)},null,40,ct)]),E(`label`,null,[E(`span`,null,[E(`strong`,null,b(S(f)(`projectAgents.team.autoGrow`)),1),E(`small`,null,b(S(f)(`projectAgents.team.autoGrowMeta`)),1)]),E(`input`,{checked:o.value.autoGrowTeam,disabled:N.value||!!_.value,type:`checkbox`,role:`switch`,onChange:n[2]||=e=>V(`autoGrowTeam`,e)},null,40,lt)])])),e.agents&&!m.value&&!_.value?(s(),l(`div`,ut,[E(`div`,dt,[E(`span`,null,b(S(f)(`projectAgents.team.hr`)),1),E(`span`,null,b(S(f)(`projectAgents.team.manager`)),1),z.value?(s(),l(`button`,{key:0,type:`button`,onClick:n[3]||=e=>a(`select`,z.value.agentId)},b(S(f)(`projectAgents.team.lead`))+` · `+b(re(z.value)),1)):o.value.teamLeadAgentId?(s(),l(`span`,ft,b(S(f)(`projectAgents.team.unavailable`)),1)):(s(),l(`span`,pt,b(S(f)(`projectAgents.team.noLead`)),1))]),E(`p`,mt,b(S(f)(`projectAgents.team.summary`)),1),te.value.length?(s(),l(`ul`,ht,[(s(!0),l(h,null,i(te.value,e=>(s(),l(`li`,{key:e.agentId},[E(`button`,{type:`button`,onClick:t=>a(`select`,e.agentId)},[E(`strong`,null,b(re(e)),1),E(`span`,null,b(e.profile.responsibility),1)],8,gt)]))),128))])):T(``,!0),E(`details`,null,[E(`summary`,null,b(S(f)(`projectAgents.team.edit`)),1),u(R,{modelValue:D.value,"onUpdate:modelValue":n[4]||=e=>D.value=e,class:`team-lead-field`,field:``,label:S(f)(`projectAgents.team.lead`),options:ee.value,disabled:N.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`fieldset`,{disabled:N.value||!D.value},[E(`legend`,null,b(S(f)(`projectAgents.team.members`)),1),(s(!0),l(h,null,i(L.value,e=>(s(),l(`label`,{key:e.id,class:`unavailable-team-member`},[E(`input`,{type:`checkbox`,checked:``,onChange:t=>O.value=O.value.filter(t=>t!==e.id)},null,40,_t),w(` `+b(e.name)+` · `+b(S(f)(`projectAgents.team.removeUnavailable`)),1)]))),128)),(s(!0),l(h,null,i(I.value,e=>(s(),l(`label`,{key:e.agentId},[d(E(`input`,{"onUpdate:modelValue":n[5]||=e=>O.value=e,type:`checkbox`,value:e.agentId},null,8,vt),[[v,O.value]]),w(b(re(e)),1)]))),128))],8,$),E(`button`,{type:`button`,disabled:N.value||!ne.value||!D.value,onClick:H},b(S(f)(`projectAgents.team.save`)),9,yt)])])):T(``,!0),E(`div`,bt,[_.value||y.value?(s(),l(`p`,xt,[w(b(_.value||y.value)+` `,1),_.value?(s(),l(`button`,{key:0,type:`button`,disabled:N.value,onClick:ie},b(S(f)(`projectAgents.retry`)),9,St)):T(``,!0)])):g.value?(s(),p(j,{key:1,variant:`compact`,label:S(f)(`projectAgents.coordination.saving`)},null,8,[`label`])):x.value?(s(),l(`p`,Ct,b(S(f)(`projectAgents.coordination.saved`)),1)):T(``,!0)])],8,at))}}),[[`__scopeId`,`data-v-881ab823`]]),Tt={key:0,class:`project-agent-source-state`,role:`status`},Et={key:1,class:`project-agent-source-state`},Dt={key:2,class:`project-agent-source-state is-error`,role:`alert`},Ot=P(n({__name:`ProjectAgentDetailState`,props:{status:{},error:{},label:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(s(),l(`div`,Tt,b(S(f)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(s(),l(`div`,Et,[u(j,{variant:`inline`,label:e.label},null,8,[`label`])])):e.status===`error`?(s(),l(`div`,Dt,[E(`span`,null,b(e.error||S(f)(`projectAgents.detail.sectionUnavailable`)),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},b(S(f)(`projectAgents.retry`)),1)])):a(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-4f121023`]]),kt=[`aria-label`],At={"data-task-project-state":``},jt={key:0},Mt={"data-task-assignment-state":``},Nt={"data-task-execution-state":``},Pt={key:0,class:`project-agent-task-scope-hint`},Ft={key:1,"data-task-summary-reason":``},It=P(n({__name:`ProjectAgentTaskDiagnostics`,props:{task:{},projectName:{}},setup(e){let t=e,n=C(()=>!!(t.task.ownerAgentId||t.task.leadAgentId||t.task.participants.some(e=>e.agentId))),r=C(()=>t.task.projectScope?.type===`temporary`?`temporary`:t.task.personalProjectId?`identified`:`unresolved`),i=C(()=>{if(t.task.executionSummary!==void 0)return t.task.executionSummary;let e=new Map;for(let n of te(t.task)){let t=n.workerId||n.agentId||n.workerLabel||n.eventId,r=e.get(t);(!r||n.createdAt>=r.createdAt)&&e.set(t,{status:n.workerStatus,createdAt:n.createdAt})}return[...e.values()]}),a=C(()=>{let e=i.value;return e.length?e.some(e=>e.status===`running`)?`running`:e.every(e=>e.status===`queued`)?`queued`:e.every(e=>[`completed`,`failed`,`cancelled`].includes(e.status??``))?`ended`:`reported`:`unreported`}),o=C(()=>t.task.executionSummary?.length?``:i.value.length?`eventsOnly`:n.value?`assignedOnly`:`unassigned`);return(t,i)=>(s(),l(`section`,{class:`project-agent-task-diagnostics`,"aria-label":S(f)(`projectAgents.diagnostics.title`)},[E(`dl`,null,[E(`div`,At,[E(`dt`,null,b(S(f)(`projectAgents.diagnostics.project`)),1),E(`dd`,null,b(S(f)(`projectAgents.diagnostics.projectState.${r.value}`)),1),e.task.personalProjectId?(s(),l(`small`,jt,b(e.projectName),1)):T(``,!0)]),E(`div`,Mt,[E(`dt`,null,b(S(f)(`projectAgents.diagnostics.assignment`)),1),E(`dd`,null,b(S(f)(`projectAgents.diagnostics.assignmentState.${n.value?`assigned`:`unreported`}`)),1)]),E(`div`,Nt,[E(`dt`,null,b(S(f)(`projectAgents.diagnostics.execution`)),1),E(`dd`,null,b(S(f)(`projectAgents.diagnostics.executionState.${a.value}`)),1)])]),r.value===`temporary`?(s(),l(`p`,Pt,b(S(f)(`projectAgents.diagnostics.temporaryHint`)),1)):T(``,!0),o.value?(s(),l(`p`,Ft,b(S(f)(`projectAgents.diagnostics.summaryReason.${o.value}`)),1)):T(``,!0)],8,kt))}}),[[`__scopeId`,`data-v-f960dcef`]]),Lt={key:2,role:`alert`},Rt={key:3},zt={class:`work-record-meta`},Bt=[`datetime`],Vt={key:4},Ht=P(n({__name:`EmployeeWorkHistory`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(e){let n=e,r=c(``),a=c(!1),o=c(!1),u=c(``),d=c([]),m=0;t(()=>[n.agentId,n.personalSpaceId,n.projects.map(e=>e.id).join(`
|
|
8
|
-
`)],()=>{let e=n.projects.some(e=>e.id===r.value)?r.value:n.projects[0]?.id??``;e===r.value?g():r.value=e},{immediate:!0}),t(r,()=>void g());async function g(){let e=++m;if(d.value=[],u.value=``,o.value=!1,!(!a.value||!r.value)){o.value=!0;try{let t=new URLSearchParams({personalSpaceId:n.personalSpaceId,personalProjectId:r.value}),i=await
|
|
7
|
+
`).map(e=>e.trim()).filter(Boolean))]}function H(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function U(){if(L.value)return;let e=V(y.value),t=I.value.trim();if(i.mode===`executor`){if(!o.value.trim()||!g.value.trim()||x.value<1){z.value=f(`projectAgents.routing.editor.executorRequired`);return}}else if(!M.value.trim()||!V(P.value).length||!t){z.value=f(`projectAgents.routing.editor.ruleRequired`);return}L.value=!0,z.value=``;try{if(i.mode===`executor`){let t=await j(`/api/executors`,{personalSpaceId:i.personalSpaceId,executorId:o.value.trim(),displayName:g.value.trim(),executorKind:_.value.trim()||`external`,capabilities:e,advertisedModels:i.executor?.advertisedModels??i.executor?.availableModels??[],globalPriority:x.value,healthRequired:D.value,expectedRevision:i.executor?.revision,idempotencyKey:H(`executor-directory`)});a(`saved`,t)}else{let e=await j(`/api/executor-routing-rules`,{personalSpaceId:O.value===`global`?void 0:i.personalSpaceId,scope:O.value,personalProjectId:(O.value===`project`||O.value===`task`)&&k.value||void 0,taskId:O.value===`task`&&A.value||void 0,workKind:M.value.trim(),requiredCapabilities:V(N.value),executorIds:V(P.value),priority:x.value,reason:t,idempotencyKey:H(`executor-rule`)});a(`saved`,e)}a(`close`)}catch(e){z.value=e instanceof Error?e.message:f(`projectAgents.routing.editor.saveFailed`)}finally{L.value=!1}}return(t,n)=>(s(),p(ee,{open:e.open,class:`executor-routing-dialog`,size:`lg`,form:``,busy:L.value,error:z.value,title:S(f)(`projectAgents.routing.editor.${ne.value}`),onClose:n[15]||=e=>a(`close`),onSubmit:U},{footer:r(()=>[u(F,{variant:`ghost`,disabled:L.value,onClick:n[14]||=e=>a(`close`)},{default:r(()=>[w(b(S(f)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),u(F,{variant:`primary`,type:`submit`,busy:L.value,"busy-label":re.value},{default:r(()=>[w(b(S(f)(`projectAgents.routing.editor.save`)),1)]),_:1},8,[`busy`,`busy-label`])]),default:r(()=>[E(`div`,X,[e.mode===`executor`?(s(),l(h,{key:0},[E(`label`,Pe,[w(b(S(f)(`projectAgents.routing.editor.executorId`)),1),d(E(`input`,{"onUpdate:modelValue":n[0]||=e=>o.value=e,maxlength:`128`,disabled:te.value||L.value,required:``},null,8,Fe),[[m,o.value]])]),E(`label`,Ie,[w(b(S(f)(`projectAgents.routing.editor.displayName`)),1),d(E(`input`,{"onUpdate:modelValue":n[1]||=e=>g.value=e,maxlength:`160`,disabled:L.value,required:``},null,8,Le),[[m,g.value]])]),E(`label`,Re,[w(b(S(f)(`projectAgents.routing.editor.executorKind`)),1),d(E(`input`,{"onUpdate:modelValue":n[2]||=e=>_.value=e,maxlength:`128`,disabled:L.value},null,8,ze),[[m,_.value]])]),E(`label`,Be,[w(b(S(f)(`projectAgents.routing.editor.priority`)),1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>x.value=e,type:`number`,min:`1`,max:`1000000`,disabled:L.value,required:``},null,8,Ve),[[m,x.value,void 0,{number:!0}]])]),E(`label`,He,[w(b(S(f)(`projectAgents.routing.editor.capabilities`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[4]||=e=>y.value=e,rows:`3`,disabled:L.value},null,8,Ue),[[m,y.value]])]),E(`label`,We,[d(E(`input`,{"onUpdate:modelValue":n[5]||=e=>D.value=e,type:`checkbox`,disabled:L.value},null,8,Ge),[[v,D.value]]),E(`span`,null,b(S(f)(`projectAgents.routing.editor.healthRequired`)),1)]),E(`p`,Ke,b(S(f)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(s(),l(h,{key:1},[u(R,{modelValue:O.value,"onUpdate:modelValue":n[6]||=e=>O.value=e,field:``,label:S(f)(`projectAgents.routing.editor.scope`),options:S(B),disabled:L.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`label`,Z,[w(b(S(f)(`projectAgents.routing.editor.priority`)),1),d(E(`input`,{"onUpdate:modelValue":n[7]||=e=>x.value=e,type:`number`,min:`1`,max:`1000000`,disabled:L.value,required:``},null,8,qe),[[m,x.value,void 0,{number:!0}]])]),O.value===`project`||O.value===`task`?(s(),p(R,{key:0,modelValue:k.value,"onUpdate:modelValue":n[8]||=e=>k.value=e,field:``,"control-id":`executor-rule-project`,options:ie.value,label:S(f)(`projectAgents.fields.project`),disabled:L.value},null,8,[`modelValue`,`options`,`label`,`disabled`])):T(``,!0),O.value===`task`?(s(),l(`label`,Je,[w(b(S(f)(`projectAgents.routing.editor.taskId`)),1),d(E(`input`,{"onUpdate:modelValue":n[9]||=e=>A.value=e,maxlength:`128`,disabled:L.value},null,8,Ye),[[m,A.value]])])):T(``,!0),E(`label`,Xe,[w(b(S(f)(`projectAgents.routing.editor.workKind`)),1),d(E(`input`,{"onUpdate:modelValue":n[10]||=e=>M.value=e,maxlength:`128`,disabled:L.value,required:``},null,8,Ze),[[m,M.value]])]),E(`label`,Qe,[w(b(S(f)(`projectAgents.routing.editor.executorIds`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[11]||=e=>P.value=e,rows:`3`,placeholder:S(f)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:L.value,required:``},null,8,$e),[[m,P.value]])]),E(`label`,et,[w(b(S(f)(`projectAgents.routing.editor.requiredCapabilities`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[12]||=e=>N.value=e,rows:`3`,disabled:L.value},null,8,tt),[[m,N.value]])]),E(`label`,nt,[w(b(S(f)(`projectAgents.fields.reason`)),1),d(E(`textarea`,{"onUpdate:modelValue":n[13]||=e=>I.value=e,rows:`3`,disabled:L.value,required:``},null,8,rt),[[m,I.value]])]),E(`p`,Q,b(S(f)(`projectAgents.routing.editor.ruleNote`)),1)],64))])]),_:1},8,[`open`,`busy`,`error`,`title`]))}}),[[`__scopeId`,`data-v-7120b758`]]),at=[`aria-label`,`aria-busy`],ot={key:1,class:`project-agent-policy-options`},st=[`checked`,`disabled`],ct=[`checked`,`disabled`],lt=[`checked`,`disabled`],ut={key:2,class:`project-team`},dt={class:`project-team-peers`},ft={key:1},pt={key:2},mt={class:`project-team-summary`},ht={key:0,class:`project-team-members`},gt=[`onClick`],$=[`disabled`],_t=[`onChange`],vt=[`value`],yt=[`disabled`],bt={class:`project-agent-policy-feedback`,"aria-live":`polite`},xt={key:0,role:`alert`},St=[`disabled`],Ct={key:2,role:`status`},wt=P(n({__name:`ProjectAgentAutomationPolicyPanel`,props:{personalSpaceId:{},personalProjectId:{},projectName:{},agents:{}},emits:[`select`],setup(e,{emit:n}){let r=e,a=n,o=c(ae()),m=c(!1),g=c(!1),_=c(``),y=c(``),x=c(!1),D=c(``),O=c([]),A=0,j=C(()=>m.value||g.value),P=C(()=>(r.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===r.personalProjectId))),F=P,I=C(()=>[...o.value.teamLeadAgentId?[]:[{value:``,label:f(`projectAgents.team.noLead`)}],...F.value.map(e=>({value:e.agentId,label:re(e)}))]),L=C(()=>P.value.filter(e=>e.agentId!==D.value)),ee=C(()=>O.value.filter(e=>!L.value.some(t=>t.agentId===e)).map(e=>({id:e,name:(r.agents??[]).find(t=>t.agentId===e)?.profile.displayName||(r.agents??[]).find(t=>t.agentId===e)?.profile.name||f(`projectAgents.team.unavailableMember`)}))),z=C(()=>P.value.find(e=>e.agentId===o.value.teamLeadAgentId)),te=C(()=>P.value.filter(e=>o.value.teamMemberAgentIds?.includes(e.agentId))),ne=C(()=>D.value!==(o.value.teamLeadAgentId??``)||JSON.stringify([...O.value].sort())!==JSON.stringify([...o.value.teamMemberAgentIds??[]].sort()));t(D,e=>{O.value=e?O.value.filter(t=>t!==e):[]});function re(e){return e.profile.displayName||e.profile.name}function B(){D.value=o.value.teamLeadAgentId??``,O.value=[...o.value.teamMemberAgentIds??[]]}t(()=>[r.personalSpaceId,r.personalProjectId],()=>void ie(),{immediate:!0});async function ie(){let e=++A;if(o.value=ae(),B(),g.value=!1,m.value=!1,x.value=!1,y.value=``,!(!r.personalSpaceId||!r.personalProjectId)){m.value=!0,_.value=``;try{let t=await M(`/api/project-agent-coordination-policy?${new URLSearchParams({personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId})}`);e===A&&(o.value=W(t),B())}catch(t){e===A&&(_.value=t instanceof Error?t.message:f(`projectAgents.coordination.loadFailed`))}finally{e===A&&(m.value=!1)}}}async function V(e,t){if(j.value||_.value)return;let n={...o.value},r=t.currentTarget.checked;o.value={...o.value,[e]:r},await U(n)}async function H(){j.value||_.value||!ne.value||!D.value||await U({...o.value},{teamLeadAgentId:D.value||null,teamMemberAgentIds:[...O.value]})}async function U(e,t){let n=A;g.value=!0,x.value=!1,y.value=``;try{let i=await k(`/api/project-agent-coordination-policy`,{personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId,askBeforeRecruitment:o.value.askBeforeRecruitment,autoReusePreviousAgent:o.value.autoReusePreviousAgent,autoGrowTeam:o.value.autoGrowTeam??!0,expectedUpdatedAt:e.updatedAt,...t});if(n!==A)return;o.value=W(i),t&&B(),x.value=!0}catch(t){if(n!==A)return;o.value=e,y.value=t instanceof Error?t.message:f(`projectAgents.coordination.saveFailed`)}finally{n===A&&(g.value=!1)}}function ae(){return{personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId,askBeforeRecruitment:!0,autoReusePreviousAgent:!0,autoGrowTeam:!0,updatedAt:null,teamLeadAgentId:null,teamMemberAgentIds:[]}}function W(e){let t=e&&typeof e==`object`?e:{};return{personalSpaceId:K(t.personalSpaceId??t.personal_space_id)||r.personalSpaceId,personalProjectId:K(t.personalProjectId??t.personal_project_id)||r.personalProjectId,askBeforeRecruitment:G(t.askBeforeRecruitment??t.ask_before_recruitment,!0),autoReusePreviousAgent:G(t.autoReusePreviousAgent??t.auto_reuse_previous_agent,!0),updatedAt:K(t.updatedAt??t.updated_at),autoGrowTeam:G(t.autoGrowTeam??t.auto_grow_team,!0),teamLeadAgentId:K(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 G(e,t){return typeof e==`boolean`?e:t}function K(e){return typeof e==`string`&&e?e:null}return(t,n)=>(s(),l(`section`,{class:`project-agent-automation-policy`,"aria-label":S(f)(`projectAgents.coordination.aria`,{project:e.projectName}),"aria-busy":j.value},[E(`header`,null,[E(`h3`,null,b(S(f)(`projectAgents.coordination.title`)),1),E(`span`,null,b(e.projectName),1)]),m.value?(s(),p(N,{key:0,variant:`compact`,label:S(f)(`projectAgents.coordination.loading`)},null,8,[`label`])):(s(),l(`div`,ot,[E(`label`,null,[E(`span`,null,[E(`strong`,null,b(S(f)(`projectAgents.coordination.autoReuse`)),1),E(`small`,null,b(S(f)(`projectAgents.coordination.autoReuseMeta`)),1)]),E(`input`,{checked:o.value.autoReusePreviousAgent,disabled:j.value||!!_.value,type:`checkbox`,role:`switch`,onChange:n[0]||=e=>V(`autoReusePreviousAgent`,e)},null,40,st)]),E(`label`,null,[E(`span`,null,[E(`strong`,null,b(S(f)(`projectAgents.coordination.askBeforeRecruitment`)),1),E(`small`,null,b(S(f)(`projectAgents.coordination.askBeforeRecruitmentMeta`)),1)]),E(`input`,{checked:o.value.askBeforeRecruitment,disabled:j.value||!!_.value,type:`checkbox`,role:`switch`,onChange:n[1]||=e=>V(`askBeforeRecruitment`,e)},null,40,ct)]),E(`label`,null,[E(`span`,null,[E(`strong`,null,b(S(f)(`projectAgents.team.autoGrow`)),1),E(`small`,null,b(S(f)(`projectAgents.team.autoGrowMeta`)),1)]),E(`input`,{checked:o.value.autoGrowTeam,disabled:j.value||!!_.value,type:`checkbox`,role:`switch`,onChange:n[2]||=e=>V(`autoGrowTeam`,e)},null,40,lt)])])),e.agents&&!m.value&&!_.value?(s(),l(`div`,ut,[E(`div`,dt,[E(`span`,null,b(S(f)(`projectAgents.team.hr`)),1),E(`span`,null,b(S(f)(`projectAgents.team.manager`)),1),z.value?(s(),l(`button`,{key:0,type:`button`,onClick:n[3]||=e=>a(`select`,z.value.agentId)},b(S(f)(`projectAgents.team.lead`))+` · `+b(re(z.value)),1)):o.value.teamLeadAgentId?(s(),l(`span`,ft,b(S(f)(`projectAgents.team.unavailable`)),1)):(s(),l(`span`,pt,b(S(f)(`projectAgents.team.noLead`)),1))]),E(`p`,mt,b(S(f)(`projectAgents.team.summary`)),1),te.value.length?(s(),l(`ul`,ht,[(s(!0),l(h,null,i(te.value,e=>(s(),l(`li`,{key:e.agentId},[E(`button`,{type:`button`,onClick:t=>a(`select`,e.agentId)},[E(`strong`,null,b(re(e)),1),E(`span`,null,b(e.profile.responsibility),1)],8,gt)]))),128))])):T(``,!0),E(`details`,null,[E(`summary`,null,b(S(f)(`projectAgents.team.edit`)),1),u(R,{modelValue:D.value,"onUpdate:modelValue":n[4]||=e=>D.value=e,class:`team-lead-field`,field:``,label:S(f)(`projectAgents.team.lead`),options:I.value,disabled:j.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`fieldset`,{disabled:j.value||!D.value},[E(`legend`,null,b(S(f)(`projectAgents.team.members`)),1),(s(!0),l(h,null,i(ee.value,e=>(s(),l(`label`,{key:e.id,class:`unavailable-team-member`},[E(`input`,{type:`checkbox`,checked:``,onChange:t=>O.value=O.value.filter(t=>t!==e.id)},null,40,_t),w(` `+b(e.name)+` · `+b(S(f)(`projectAgents.team.removeUnavailable`)),1)]))),128)),(s(!0),l(h,null,i(L.value,e=>(s(),l(`label`,{key:e.agentId},[d(E(`input`,{"onUpdate:modelValue":n[5]||=e=>O.value=e,type:`checkbox`,value:e.agentId},null,8,vt),[[v,O.value]]),w(b(re(e)),1)]))),128))],8,$),E(`button`,{type:`button`,disabled:j.value||!ne.value||!D.value,onClick:H},b(S(f)(`projectAgents.team.save`)),9,yt)])])):T(``,!0),E(`div`,bt,[_.value||y.value?(s(),l(`p`,xt,[w(b(_.value||y.value)+` `,1),_.value?(s(),l(`button`,{key:0,type:`button`,disabled:j.value,onClick:ie},b(S(f)(`projectAgents.retry`)),9,St)):T(``,!0)])):g.value?(s(),p(N,{key:1,variant:`compact`,label:S(f)(`projectAgents.coordination.saving`)},null,8,[`label`])):x.value?(s(),l(`p`,Ct,b(S(f)(`projectAgents.coordination.saved`)),1)):T(``,!0)])],8,at))}}),[[`__scopeId`,`data-v-881ab823`]]),Tt={key:0,class:`project-agent-source-state`,role:`status`},Et={key:1,class:`project-agent-source-state`},Dt={key:2,class:`project-agent-source-state is-error`,role:`alert`},Ot=P(n({__name:`ProjectAgentDetailState`,props:{status:{},error:{},label:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(s(),l(`div`,Tt,b(S(f)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(s(),l(`div`,Et,[u(N,{variant:`inline`,label:e.label},null,8,[`label`])])):e.status===`error`?(s(),l(`div`,Dt,[E(`span`,null,b(e.error||S(f)(`projectAgents.detail.sectionUnavailable`)),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},b(S(f)(`projectAgents.retry`)),1)])):a(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-4f121023`]]),kt=[`aria-label`],At={"data-task-project-state":``},jt={key:0},Mt={"data-task-assignment-state":``},Nt={"data-task-execution-state":``},Pt={key:0,class:`project-agent-task-scope-hint`},Ft={key:1,"data-task-summary-reason":``},It=P(n({__name:`ProjectAgentTaskDiagnostics`,props:{task:{},projectName:{}},setup(e){let t=e,n=C(()=>!!(t.task.ownerAgentId||t.task.leadAgentId||t.task.participants.some(e=>e.agentId))),r=C(()=>t.task.projectScope?.type===`temporary`?`temporary`:t.task.personalProjectId?`identified`:`unresolved`),i=C(()=>{if(t.task.executionSummary!==void 0)return t.task.executionSummary;let e=new Map;for(let n of te(t.task)){let t=n.workerId||n.agentId||n.workerLabel||n.eventId,r=e.get(t);(!r||n.createdAt>=r.createdAt)&&e.set(t,{status:n.workerStatus,createdAt:n.createdAt})}return[...e.values()]}),a=C(()=>{let e=i.value;return e.length?e.some(e=>e.status===`running`)?`running`:e.every(e=>e.status===`queued`)?`queued`:e.every(e=>[`completed`,`failed`,`cancelled`].includes(e.status??``))?`ended`:`reported`:`unreported`}),o=C(()=>t.task.executionSummary?.length?``:i.value.length?`eventsOnly`:n.value?`assignedOnly`:`unassigned`);return(t,i)=>(s(),l(`section`,{class:`project-agent-task-diagnostics`,"aria-label":S(f)(`projectAgents.diagnostics.title`)},[E(`dl`,null,[E(`div`,At,[E(`dt`,null,b(S(f)(`projectAgents.diagnostics.project`)),1),E(`dd`,null,b(S(f)(`projectAgents.diagnostics.projectState.${r.value}`)),1),e.task.personalProjectId?(s(),l(`small`,jt,b(e.projectName),1)):T(``,!0)]),E(`div`,Mt,[E(`dt`,null,b(S(f)(`projectAgents.diagnostics.assignment`)),1),E(`dd`,null,b(S(f)(`projectAgents.diagnostics.assignmentState.${n.value?`assigned`:`unreported`}`)),1)]),E(`div`,Nt,[E(`dt`,null,b(S(f)(`projectAgents.diagnostics.execution`)),1),E(`dd`,null,b(S(f)(`projectAgents.diagnostics.executionState.${a.value}`)),1)])]),r.value===`temporary`?(s(),l(`p`,Pt,b(S(f)(`projectAgents.diagnostics.temporaryHint`)),1)):T(``,!0),o.value?(s(),l(`p`,Ft,b(S(f)(`projectAgents.diagnostics.summaryReason.${o.value}`)),1)):T(``,!0)],8,kt))}}),[[`__scopeId`,`data-v-f960dcef`]]),Lt={key:2,role:`alert`},Rt={key:3},zt={class:`work-record-meta`},Bt=[`datetime`],Vt={key:4},Ht=P(n({__name:`EmployeeWorkHistory`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(e){let n=e,r=c(``),a=c(!1),o=c(!1),u=c(``),d=c([]),m=0;t(()=>[n.agentId,n.personalSpaceId,n.projects.map(e=>e.id).join(`
|
|
8
|
+
`)],()=>{let e=n.projects.some(e=>e.id===r.value)?r.value:n.projects[0]?.id??``;e===r.value?g():r.value=e},{immediate:!0}),t(r,()=>void g());async function g(){let e=++m;if(d.value=[],u.value=``,o.value=!1,!(!a.value||!r.value)){o.value=!0;try{let t=new URLSearchParams({personalSpaceId:n.personalSpaceId,personalProjectId:r.value}),i=await M(`/api/project-agents/${encodeURIComponent(n.agentId)}/memory?${t}`);e===m&&(d.value=i.workLog??[])}catch(t){e===m&&(u.value=t instanceof Error?t.message:f(`projectAgents.workHistory.loadFailed`))}finally{e===m&&(o.value=!1)}}}function _(e){let t=e.target.open;t!==a.value&&(a.value=t,a.value?g():++m)}function v(e){let t=new Date(e);return Number.isNaN(t.getTime())?f(`projectAgents.notReported`):new Intl.DateTimeFormat(y(),{dateStyle:`short`,timeStyle:`short`}).format(t)}function x(e){return f(`projectAgents.workHistory.${[`reported`,`completed`,`incomplete`,`failed`,`no_change`,`unreported`,`running`].includes(e)?e:`unreported`}`)}return(t,n)=>(s(),l(`details`,{class:`employee-work-history`,onToggle:_},[E(`summary`,null,b(S(f)(`projectAgents.workHistory.title`)),1),e.projects.length?(s(),p(R,{key:0,modelValue:r.value,"onUpdate:modelValue":n[0]||=e=>r.value=e,field:``,label:S(f)(`projectAgents.fields.project`),options:e.projects.map(e=>({value:e.id,label:e.name}))},null,8,[`modelValue`,`label`,`options`])):T(``,!0),o.value?(s(),p(N,{key:1,variant:`compact`,label:S(f)(`projectAgents.workHistory.loading`)},null,8,[`label`])):u.value?(s(),l(`div`,Lt,[E(`p`,null,b(u.value),1),E(`button`,{type:`button`,class:`quiet-button`,onClick:g},b(S(f)(`projectAgents.retry`)),1)])):d.value.length?(s(),l(`ol`,Rt,[(s(!0),l(h,null,i(d.value,e=>(s(),l(`li`,{key:e.taskContextToken},[E(`div`,zt,[E(`strong`,null,b(x(e.status)),1),E(`span`,null,b(e.sourceApplication),1),E(`time`,{datetime:e.createdAt},b(v(e.createdAt)),9,Bt)]),E(`p`,null,b(e.summary),1)]))),128))])):(s(),l(`p`,Vt,b(S(f)(`projectAgents.workHistory.empty`)),1))],32))}}),[[`__scopeId`,`data-v-d4d00831`]]),Ut={class:`project-agent-fields`},Wt={class:`ui-field`},Gt=[`disabled`,`placeholder`],Kt={key:0,class:`ui-field-hint`},qt={class:`ui-field`},Jt=[`disabled`,`placeholder`],Yt={class:`ui-field`},Xt=[`disabled`],Zt={class:`ui-field`},Qt=[`disabled`,`placeholder`],$t={class:`ui-field project-agent-wide`},en=[`disabled`,`placeholder`],tn={class:`ui-field project-agent-wide`},nn=[`disabled`,`placeholder`],rn={class:`ui-field project-agent-wide`},an=[`disabled`,`placeholder`],on={class:`project-agent-wide project-agent-strategy`},sn={class:`ui-field project-agent-wide`},cn=[`disabled`,`placeholder`],ln={class:`ui-field-hint project-agent-wide`},un=P(n({__name:`ProjectAgentDialog`,props:{open:{type:Boolean},agent:{},projects:{},defaultProjectId:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(e,{emit:n}){let i=e,a=n,o=c(``),h=c(``),g=c(``),_=c(``),v=c(``),y=c(``),x=c(``),D=c(``),k=c(`active`),A=c(`durable`),M=c(`adaptive`),N=c(`flexible`),P=c(``),I=c(!1),L=c(``),z=C(()=>!!i.agent),te=C(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),ne=C(()=>[`active`,`inactive`,`archived`].map(e=>({value:e,label:f(`projectAgents.status.${e}`)}))),re=C(()=>[...[`durable`,`hr`].map(e=>({value:e,label:f(`projectAgents.agentType.${e}`)})),...z.value&&(A.value===`temporary`||A.value===`coordinator`)?[{value:A.value,label:f(`projectAgents.agentType.${A.value}`),disabled:!0}]:[]]),B=C(()=>[`flexible`,`locked`].map(e=>({value:e,label:f(`projectAgents.strategy.${e}`)}))),ie=[`adaptive`,`fast`,`balanced`,`deep`].map(e=>({value:e,label:e}));t(()=>[i.open,i.agent,i.defaultProjectId],([e,t,n])=>{if(!e)return;o.value=t?.personalProjectId??n??i.projects[0]?.project_id??``,h.value=t?.agentId??``,g.value=t?.profile.name??``,_.value=t?.profile.displayName??``,v.value=t?.profile.occupationEmoji??``,y.value=t?.profile.responsibility??``,x.value=(t?.profile.capabilities??[]).join(`
|
|
9
9
|
`),D.value=(t?.profile.initialPreferences??[]).join(`
|
|
10
|
-
`),
|
|
10
|
+
`),k.value=t?.profile.status??`active`,A.value=t?.profile.agentType??`durable`,M.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,N.value=t?.profile.executorPolicy?.mode??`flexible`;let r=t?.profile.executorPolicy,a=r?.mode===`locked`?r.lockedExecutorIds:r?.preferredExecutorIds;P.value=(a?.length?a:r?.allowList?.map(({executorId:e})=>e)??[]).join(`
|
|
11
11
|
`),L.value=``},{immediate:!0});function V(e){let t=e.split(`
|
|
12
|
-
`).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function H(){if(I.value)return;let e=o.value.trim(),t=h.value.trim(),n=g.value.trim(),r=v.value.trim(),s=y.value.trim();if(!t||!n||!s){L.value=f(`projectAgents.dialog.required`);return}let c=i.projects.find(({project_id:t})=>t===e);if(e&&!c){L.value=f(`projectAgents.dialog.projectUnavailable`);return}if(r&&!U(r)){L.value=f(`projectAgents.dialog.occupationEmojiInvalid`);return}let l=c?.personal_space_id??i.personalSpaceId??i.agent?.personalSpaceId;if(!l){L.value=f(`projectAgents.dialog.spaceUnavailable`);return}let u=V(x.value),d=V(D.value);if(!u||!d){L.value=f(`projectAgents.dialog.duplicate`);return}let p=V(P.value);if(!p||N.value===`locked`&&!p.length){L.value=f(`projectAgents.dialog.duplicate`);return}I.value=!0,L.value=``;try{let o={...i.agent?.profile,name:n,responsibility:s,capabilities:u,initialPreferences:d,status:A.value};_.value.trim()&&(o.displayName=_.value.trim()),r&&(o.occupationEmoji=r),j.value!==`durable`&&(o.agentType=j.value),M.value!==`adaptive`&&(o.defaultModelStrategy={mode:M.value}),(N.value!==`flexible`||p.length)&&(o.executorPolicy={mode:N.value,lockedExecutorIds:N.value===`locked`?p:[],preferredExecutorIds:N.value===`flexible`?p:[]});let c=await O(`/api/project-agents`,{personalSpaceId:l,personalProjectId:null,agentId:t,profile:o}),m=c;if(e&&!z.value){let n=await k(`/api/project-agent-assignments`,{personalSpaceId:l,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:s,capabilities:u,reason:f(`projectAgents.dialog.initialAssignmentReason`)});m={...c,personalProjectId:e,assignments:[n]}}a(`saved`,m),a(`close`)}catch(e){L.value=e instanceof Error?e.message:f(`projectAgents.dialog.saveFailed`)}finally{I.value=!1}}function U(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)=>(s(),p(ee,{open:e.open,class:`project-agent-dialog`,size:`lg`,form:``,busy:I.value,error:L.value,title:z.value?S(f)(`projectAgents.dialog.editTitle`):S(f)(`projectAgents.dialog.createTitle`),onClose:n[14]||=e=>a(`close`),onSubmit:H},{footer:r(()=>[u(F,{variant:`ghost`,disabled:I.value,onClick:n[13]||=e=>a(`close`)},{default:r(()=>[w(b(S(f)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),u(F,{variant:`primary`,type:`submit`,busy:I.value,"busy-label":S(f)(`projectAgents.dialog.saving`)},{default:r(()=>[w(b(z.value?S(f)(`projectAgents.dialog.saveEdit`):S(f)(`projectAgents.dialog.saveCreate`)),1)]),_:1},8,[`busy`,`busy-label`])]),default:r(()=>[E(`div`,Ut,[u(R,{modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,field:``,"control-id":`project-agent-project`,options:te.value,label:S(f)(`projectAgents.fields.project`),placeholder:S(f)(`projectAgents.dialog.projectPlaceholder`),disabled:z.value||I.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`]),u(R,{modelValue:A.value,"onUpdate:modelValue":n[1]||=e=>A.value=e,field:``,name:`project-agent-status`,label:S(f)(`projectAgents.fields.status`),options:ne.value,disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),u(R,{modelValue:j.value,"onUpdate:modelValue":n[2]||=e=>j.value=e,field:``,name:`project-agent-type`,label:S(f)(`projectAgents.fields.agentType`),options:re.value,disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`label`,Wt,[w(b(S(f)(`projectAgents.fields.agentId`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>h.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:z.value||I.value,placeholder:S(f)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,Gt),[[m,h.value]]),z.value?(s(),l(`small`,Kt,b(S(f)(`projectAgents.dialog.idLocked`)),1)):T(``,!0)]),E(`label`,qt,[w(b(S(f)(`attention.roleName`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[4]||=e=>g.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.namePlaceholder`)},null,8,Jt),[[m,g.value]])]),E(`label`,Yt,[w(b(S(f)(`attention.displayName`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[5]||=e=>_.value=e,name:`project-agent-display-name`,maxlength:`160`,disabled:I.value},null,8,Xt),[[m,_.value]])]),E(`label`,Zt,[w(b(S(f)(`projectAgents.fields.occupationEmoji`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[6]||=e=>v.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Qt),[[m,v.value]])]),E(`label`,$t,[w(b(S(f)(`projectAgents.fields.responsibility`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[7]||=e=>y.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,en),[[m,y.value]])]),E(`label`,tn,[w(b(S(f)(`projectAgents.fields.capabilities`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[8]||=e=>x.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,nn),[[m,x.value]])]),E(`label`,rn,[w(b(S(f)(`projectAgents.fields.initialPreferences`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[9]||=e=>D.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,an),[[m,D.value]])]),E(`fieldset`,on,[E(`legend`,null,b(S(f)(`projectAgents.fields.defaultModelStrategy`)),1),u(R,{modelValue:N.value,"onUpdate:modelValue":n[10]||=e=>N.value=e,field:``,name:`project-agent-selection-mode`,label:S(f)(`projectAgents.fields.executorPolicy`),options:B.value,disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),u(R,{modelValue:M.value,"onUpdate:modelValue":n[11]||=e=>M.value=e,field:``,name:`project-agent-model-mode`,label:S(f)(`projectAgents.fields.modelIntent`),options:S(ie),disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`label`,sn,[w(b(S(f)(`projectAgents.fields.allowList`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[12]||=e=>P.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.allowListPlaceholder`)},null,8,cn),[[m,P.value]])]),E(`small`,ln,b(N.value===`locked`?S(f)(`projectAgents.strategy.lockedUnavailable`):S(f)(`projectAgents.strategy.providerNeutral`)),1)])])]),_:1},8,[`open`,`busy`,`error`,`title`]))}}),[[`__scopeId`,`data-v-86bea342`]]),dn=[`aria-label`],fn={class:`project-agents-header`},pn={key:0,class:`project-agents-header-meta`},mn={class:`project-agent-header-actions`},hn=[`disabled`],gn=[`disabled`],_n={key:0,class:`project-agents-summary`,"aria-live":`polite`},vn={class:`project-agents-toolbar`},yn={class:`project-agents-search`},bn={class:`sr-only`},xn=[`placeholder`],Sn=[`aria-label`],Cn=[`aria-pressed`,`onClick`],wn={key:4,class:`ui-card project-agents-state is-error`,role:`alert`},Tn={key:5,class:`ui-card project-agents-state`},En=[`disabled`],Dn={key:6,class:`ui-card project-agents-state`},On={key:7,class:`ui-card project-agents-directory`},kn=[`aria-label`],An=[`aria-current`,`onClick`],jn={class:`project-agent-row-heading`},Mn=[`aria-label`],Nn={class:`ui-badge project-agent-kind`},Pn={class:`project-agent-row-projects`},Fn={key:0},In={key:1},Ln={class:`project-agent-row-responsibility`},Rn={class:`project-agent-row-work`},zn=[`aria-label`],Bn={class:`project-agent-detail-heading`},Vn=[`aria-label`],Hn={key:0},Un={key:0},Wn={class:`project-agent-detail-actions`},Gn=[`disabled`],Kn=[`disabled`],qn={key:1},Jn={key:0,class:`project-agent-detail-notice`,role:`status`},Yn={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},Xn={class:`employee-project-overview-heading`},Zn={id:`employee-project-overview-title`},Qn={key:0,class:`employee-assigned-projects`},$n={key:1,class:`employee-project-overview-hint`},er={class:`ui-card project-agent-detail-section is-responsibility`},tr={key:0,class:`project-agent-tags`},nr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},rr={key:0,class:`project-agent-muted`,"data-task-partial":``},ir={class:`project-agent-detail-section`},ar={class:`project-agent-section-heading`},or={key:0,class:`project-agent-task-list`},sr=[`id`],cr={key:0},lr={key:1,class:`project-agent-inline-list`},ur=[`open`],dr=[`aria-label`],fr={class:`project-agent-section-heading`},pr=[`aria-label`],mr={class:`project-agent-execution-summary-table`},hr={class:`sr-only`},gr={scope:`col`},_r={scope:`col`},vr={scope:`col`},yr={scope:`col`},br={scope:`col`},xr={scope:`col`},Sr={scope:`col`},Cr={scope:`row`},wr={class:`project-agent-execution-worker`},Tr=[`aria-label`],Er={key:0},Dr=[`data-label`],Or=[`data-label`],kr=[`data-label`],Ar={key:0},jr={key:1},Mr=[`data-label`],Nr=[`href`],Pr={key:1},Fr={class:`project-agent-reporter-label`},Ir=[`href`],Lr={key:1},Rr=[`data-label`],zr=[`data-label`],Br={key:1},Vr={key:1,class:`project-agent-muted`},Hr=[`aria-label`],Ur={class:`project-agent-section-heading`},Wr={class:`project-agent-execution-summary-list`},Gr=[`aria-label`],Kr={key:1},qr={class:`project-agent-execution-summary-meta`},Jr={key:0},Yr={key:0},Xr={key:1},Zr={key:2},Qr={key:2},$r={key:3,class:`project-agent-routing-decision`},ei={class:`project-agent-section-heading`},ti={key:0},ni={key:1},ri={key:2},ii={key:0},ai={key:3},oi={key:0},si={key:4},ci={class:`project-agent-execution-line`},li={key:0},ui={key:1},di={key:2},fi={key:4},pi={key:5},mi={key:1,class:`project-agent-muted`},hi={class:`ui-disclosure project-agent-disclosure`},gi={class:`project-agent-detail-source`,"data-detail-section":`assignments`},_i={class:`project-agent-detail-section`},vi={class:`project-agent-section-heading`},yi={class:`project-agent-section-tools`},bi={key:0,class:`project-agent-assignment-list`},xi={class:`project-agent-card-actions`},Si=[`onClick`],Ci=[`onClick`],wi={key:0},Ti={key:1,class:`project-agent-inline-list`},Ei={class:`project-agent-strategy-note`},Di={key:0},Oi={key:2,class:`project-agent-tags`},ki={key:3},Ai={key:1,class:`project-agent-muted`},ji={class:`ui-disclosure project-agent-disclosure`},Mi={class:`project-agent-detail-source`,"data-detail-section":`activity`},Ni={class:`project-agent-detail-section`},Pi={class:`project-agent-section-heading`},Fi={key:0},Ii={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},Li=[`aria-label`],Ri=[`aria-label`,`aria-pressed`,`onClick`],zi={class:`sr-only`},Bi={key:0,class:`project-agent-day-detail`},Vi={key:0,class:`project-agent-muted`},Hi={key:1},Ui={key:1,class:`project-agent-muted`},Wi={class:`ui-disclosure project-agent-disclosure`},Gi={class:`project-agent-detail-meta`},Ki={key:0},qi=[`open`],Ji={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},Yi={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},Xi={class:`project-agent-section-heading`},Zi={id:`project-agent-recruitment-heading`},Qi={key:0,class:`project-agent-recruitment-list`},$i={class:`project-agent-card-actions`},ea={class:`ui-badge`},ta=[`disabled`,`onClick`],na={key:1},ra=[`disabled`,`onClick`],ia={key:1},aa={class:`project-agent-compact-meta`},oa={key:1,class:`project-agent-muted`},sa={class:`project-agent-detail-source`,"data-detail-section":`executors`},ca={class:`project-agent-detail-section`},la={class:`project-agent-section-heading`},ua={class:`project-agent-muted`},da={key:0,class:`project-agent-tags`},fa={key:1,class:`project-agent-blocked`},pa={key:2,class:`project-agent-muted`},ma={class:`project-agent-section-tools`},ha={key:3,class:`project-agent-executor-list`},ga=[`onClick`],_a=[`disabled`,`onClick`],va={key:1},ya=[`disabled`,`onClick`],ba={key:1},xa={class:`project-agent-detail-source`,"data-detail-section":`clients`},Sa={class:`project-agent-detail-section`},Ca={class:`project-agent-section-heading`},wa={key:0,class:`project-agent-client-list`},Ta={key:0},Ea={key:1},Da={key:2},Oa={key:1,class:`project-agent-muted`},ka={class:`project-agent-detail-source`,"data-detail-section":`routing`},Aa={class:`project-agent-detail-section`},ja={class:`project-agent-section-heading`},Ma={class:`project-agent-section-tools`},Na={key:0,class:`project-agent-rule-list`},Pa=[`disabled`,`onClick`],Fa={key:1},Ia={key:1,class:`project-agent-muted`},La={class:`project-agent-note`},Ra={class:`project-agent-detail-source`,"data-detail-section":`learning`},za={class:`project-agent-detail-section`},Ba={class:`project-agent-section-heading`},Va={key:0,class:`project-agent-learning-list`},Ha={class:`ui-badge`},Ua={key:0},Wa={key:1,class:`project-agent-inline-list`},Ga={key:0},Ka={key:2,class:`project-agent-evidence-list`},qa=[`disabled`,`onClick`],Ja={key:1},Ya={key:3,class:`project-agent-learning-actions`},Xa=[`disabled`,`onClick`],Za={key:1},Qa={key:1,class:`project-agent-muted`},$a={class:`project-agent-note`},eo={key:1,class:`project-agent-detail-placeholder`},to=P(n({__name:`ProjectAgentsPage`,setup(n){let a=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],v=D(),O=I(),P=c([]),F=c(!1),ee=c(``),R=c(null),B=c(!1),U=c(`all`),K=c(``),q=c(``);t(()=>O.query.agent,e=>{typeof e==`string`&&(q.value=e)},{immediate:!0});let le=c(!1),be=c(!1),Se=c(``),J=c(null),Ce=c(!1),we=c(`assign`),Te=c(null),Ee=c(!1),De=c({}),Oe=c({}),Y=c(``),ke=c(``),Ae=c(!1),je=c(``),Me=c(``),X=c(``),Pe=c(``),Fe=c(``),Ie=c(``),Le=c(!1),Re=c(`executor`),ze=c(null),Be=c(null),Ve=0,He=0,Ue=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function We(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let Ge=C(()=>v.state?.personalProjects??[]);async function Ke(e){await gt(),rt.value.some(t=>t.agentId===e.agent.agentId)||(R.value=null,U.value=`all`,K.value=``);let t=q.value===e.agent.agentId;q.value=e.agent.agentId,t&&$()}let Z=C(()=>v.activePersonalSpace?.id??``),qe=C(()=>F.value||!v.state&&(v.runtimeStatus===`idle`||v.runtimeStatus===`loading`)),Je=C(()=>ee.value||(!v.state&&v.runtimeStatus===`error`?v.feedback?.message||f(`projectAgents.loadError`):``));function Ye(){v.state?gt():v.refresh()}let Xe=C(()=>new Map(Ge.value.map(e=>[e.project_id,e]))),Ze=C(()=>Ge.value.map(e=>({id:e.project_id,name:e.profile.name}))),Qe=C(()=>{let e=typeof O.query.agent==`string`?O.query.agent:``;return e?P.value.find(t=>t.personalSpaceId===Z.value&&(t.agentId===e||t.legacyAgentIds?.includes(e)))??null:null}),$e=C(()=>!!(Qe.value&&typeof O.query.project==`string`&&typeof O.query.task==`string`&&!B.value)),et=C({get:()=>R.value??Ze.value.map(e=>e.id),set:e=>{B.value=!0;let t=Ze.value.filter(t=>e.includes(t.id)).map(e=>e.id);R.value=t.length===Ze.value.length?null:t}}),tt=C(()=>R.value?.length===1?R.value[0]:``);t([()=>O.query.project,Ze],([e,t],n)=>{let r=!n||e!==n[0];typeof e==`string`&&t.some(t=>t.id===e)&&(r||!B.value)&&(R.value=[e],r&&(B.value=!1))},{immediate:!0});let nt=C(()=>[{value:`all`,label:f(`projectAgents.status.all`)},{value:`active`,label:f(`projectAgents.status.active`)},{value:`inactive`,label:f(`projectAgents.status.inactive`)},{value:`archived`,label:f(`projectAgents.status.archived`)}]),rt=C(()=>{let e=K.value.trim().toLocaleLowerCase(y());return P.value.filter(e=>R.value===null||Kt(e).some(({id:e})=>R.value.includes(e))||$e.value&&e.agentId===Qe.value?.agentId).filter(e=>U.value===`all`||e.profile.status===U.value).filter(t=>!e||Jt(t).toLocaleLowerCase(y()).includes(e)).sort(Vt)}),Q=C(()=>rt.value.find(e=>e.agentId===q.value)??null),at=C(()=>Q.value?me(Q.value):null),ot=C(()=>pe.value.find(e=>e.id===at.value)),st=C(()=>Q.value?Kt(Q.value).filter(e=>Xe.value.get(e.id)?.profile.lifecycle!==`archived`):[]),ct=C(()=>P.value.filter(({profile:e})=>e.status===`active`).length),lt=C(()=>P.value.reduce((e,t)=>e+Gt(t).length,0)),ut=C(()=>new Set(P.value.flatMap(e=>Gt(e).map(({personalProjectId:e})=>e))).size),dt=C(()=>tt.value?tt.value:Q.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Q.value?.personalProjectId??Ge.value[0]?.project_id??null),ft=C(()=>Q.value?.activity??null),pt=C(()=>ft.value?.days.find(({date:e})=>e===ke.value)??null),mt=C(()=>Object.entries(Q.value?.learningEvidence??{})),ht=C(()=>Q.value?.recruitments??[]);o(()=>{v.runtimeStatus===`idle`&&v.refresh()}),t(Z,e=>{++Ve,++He,De.value={},Oe.value={},q.value=``,P.value=[],B.value=!1,R.value=typeof O.query.project==`string`&&Ze.value.some(e=>e.id===O.query.project)?[O.query.project]:null,ee.value=``,e?gt(e):F.value=!1},{immediate:!0}),t(rt,e=>{if(!e.some(e=>e.agentId===q.value)){let t=e.find(e=>e.agentId===O.query.agent||typeof O.query.agent==`string`&&e.legacyAgentIds?.includes(O.query.agent));q.value=t?.agentId??($e.value?Qe.value?.agentId:void 0)??e[0]?.agentId??``}e.some(e=>e.activity?.days.some(({date:e})=>e===ke.value))||(ke.value=``)},{immediate:!0}),t([q,Z],([e,t])=>{ke.value=``,e&&t&&$(e,t)},{immediate:!0});async function gt(e=Z.value){if(!e)return;let t=++Ve;F.value=!0,ee.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([A(`/api/project-agents?${n}`),A(`/api/project-agent-tasks?${n}`)]);if(t!==Ve)return;if(he(e),r.status===`rejected`)throw r.reason;if(t===Ve){let e=Go(ce(r.value)),t=i.status===`fulfilled`?Ro(i.value).filter(e=>Ue.has(e.status)):[];P.value=Ao(e,t)}}catch(e){t===Ve&&(ee.value=e instanceof Error?e.message:f(`projectAgents.loadError`))}finally{t===Ve&&(F.value=!1)}}async function $(e=q.value,t=Z.value){let n=P.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++He;Ee.value=!0,Y.value=``,yt(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),o=ye(),s=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:o.fromDate,toDate:o.toDate}),c={assignments:A(`/api/project-agent-assignments?${i}`),tasks:_t(i),activity:A(`/api/project-agent-activity?${s}`),recruitments:A(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:A(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:A(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:A(`/api/project-agent-routing-learning?${i}`)};await Promise.all(a.map(async i=>{try{let a=await c[i];if(!Ct(r,e,t))return;Tt(n,i,a),bt(e,i,{status:`ready`,error:``})}catch(n){if(!Ct(r,e,t))return;bt(e,i,{status:`error`,error:n instanceof Error?n.message:f(`projectAgents.detail.sectionUnavailable`)})}})),Ct(r,e,t)&&(Ee.value=!1)}async function _t(e){let t=e.get(`agentId`)??``,n=e.get(`personalSpaceId`)??``,r=typeof O.query.project==`string`?O.query.project:``,i=typeof O.query.task==`string`?O.query.task:``;e=new URLSearchParams({personalSpaceId:n,limit:`200`}),r&&e.set(`personalProjectId`,r);let a=await A(`/api/project-agent-tasks?${e}`);Et(a,[`tasks`,`items`]);let o=e=>(!e.personalSpaceId||e.personalSpaceId===n)&&(!r||e.personalProjectId===r)&&de(e,t),s=Ro(a).filter(o);if(i&&!s.some(e=>e.taskId===i)){let t=ae(await A(`/api/project-agent-tasks/${encodeURIComponent(i)}?${e}`));t&&o(t)&&s.unshift(t)}return{tasks:s,partial:!fe(a)}}t([()=>O.query.task,Ee],async([e,t])=>{t||typeof e!=`string`||(await _(),document.getElementById(`task-${e}`)?.scrollIntoView?.({block:`nearest`}))});function vt(e=`idle`){return Object.fromEntries(a.map(t=>[t,{status:e,error:``}]))}function yt(e,t){De.value={...De.value,[e]:vt(t)}}function bt(e,t,n){De.value={...De.value,[e]:{...De.value[e]??vt(),[t]:n}}}function xt(e){let t=(Array.isArray(e)?e:[e]).map(e=>De.value[q.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 St(e){return f(`projectAgents.detail.loading.`+e)}function Ct(e,t,n){return e===He&&t===q.value&&n===Z.value}function Tt(e,t,n){let r;switch(t){case`assignments`:Et(n,[`assignments`,`items`]),r={assignments:No(n,e)};break;case`tasks`:Et(n,[`tasks`,`items`]),Oe.value={...Oe.value,[e.agentId]:H(n).partial===!0},r={tasks:Ro(n)};break;case`activity`:{let e=xe(n,{agentId:q.value,personalSpaceId:Z.value});if(!e)throw Error(f(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:Et(n,[`recruitments`,`items`]),r={recruitments:Bo(n).filter(t=>Vo(t,e))};break;case`executors`:Et(n,[`executors`,`items`]),r={executorDirectory:Fo(n),clientEvidence:Ho(n)};break;case`routingRules`:Et(n,[`rules`,`items`]),r={routingRules:Uo(n)};break;case`learning`:Et(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:Wo(n)};break}P.value=P.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function Et(e,t,n=!1){if(Array.isArray(e))return;let r=H(e);if(!t.some(e=>Array.isArray(r[e])||n&&Dt(r[e])))throw Error(f(`projectAgents.detail.sectionUnavailable`))}function Dt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function kt(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=Q.value;if(!(!r||!i||!Z.value||je.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){Y.value=f(`projectAgents.learning.resetUnavailable`);return}je.value=r,Me.value=t;try{await M(`/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`:We(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await $()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.learning.updateFailed`)}finally{je.value=``,Me.value=``}}}async function At(e,t){if(!(!Z.value||X.value)){X.value=e.recruitmentId,Pe.value=t;try{await k(`/api/project-agent-recruitments/decision`,{personalSpaceId:Z.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:f(`projectAgents.recruitment.${t}Reason`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.recruitment.decisionFailed`)}finally{X.value=``,Pe.value=``}}}async function jt(e,t){if(!(!Z.value||Fe.value)){Fe.value=e.executorId,Ie.value=t===`authorized`?`authorize`:`revoke`;try{await k(`/api/executors/authorization`,{personalSpaceId:Z.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:We(`console-executor:${e.executorId}:${t}`),reason:f(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.routing.authorizationFailed`)}finally{Fe.value=``,Ie.value=``}}}function Mt(e=null){Re.value=`executor`,ze.value=e,Be.value=null,Le.value=!0}function Nt(e=null){Re.value=`rule`,Be.value=e,ze.value=null,Le.value=!0}function Pt(){Le.value=!1,ze.value=null,Be.value=null}function Ft(e){Q.value&&(P.value=P.value.map(t=>t.agentId===Q.value?.agentId?{...t,executorDirectory:Ko([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),Pt())}function Lt(e){Q.value&&(P.value=P.value.map(t=>t.agentId===Q.value?.agentId?{...t,routingRules:Ko([...t.routingRules??[],e],({ruleId:e})=>e)}:t),Pt())}function Rt(e){Re.value===`executor`?Ft(e):Lt(e)}async function zt(e){if(!(!Z.value||!e.ruleId||X.value)){X.value=`rule:${e.ruleId}`,Pe.value=`disable`;try{await M(`/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){Y.value=e instanceof Error?e.message:f(`projectAgents.routing.updateFailed`)}finally{X.value=``,Pe.value=``}}}async function Bt(e){if(e.profile.cleanupEligible){Ae.value=!0,Ee.value=!0;try{await N(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await gt()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.source.cleanupFailed`)}finally{Ae.value=!1,Ee.value=!1}}}function Vt(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,y())||e.agentId.localeCompare(t.agentId,y())}function Ut(e){return e?Xe.value.get(e)?.profile.name??e:f(`projectAgents.notReported`)}function Wt(e){return e.assignments??(e.personalProjectId?[qt(e)]:[])}function Gt(e){return[...new Map(Wt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function Kt(e){let t=me(e);return(t?pe.value.find(e=>e.id===t):void 0)?.managedProjects??Gt(e).map(e=>({id:e.personalProjectId,name:Ut(e.personalProjectId)}))}function qt(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 Jt(e){return[e.agentId,e.profile.name,e.profile.displayName??``,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Wt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function Yt(){J.value=null,le.value=!0}function Xt(e=``){Se.value=e,be.value=!0}function Zt(e){J.value=e,le.value=!0}function Qt(){le.value=!1,J.value=null}function $t(e,t=null,n=`assign`){let r=me(e);if(n===`assign`&&r){Xt(r);return}J.value=e,Te.value=t,we.value=n,Ce.value=!0}function en(){Ce.value=!1,Te.value=null,we.value=`assign`}function tn(e){J.value&&(P.value=P.value.map(t=>t.agentId===J.value?.agentId?{...t,assignments:Ko([...t.assignments??[],e],({assignmentId:e})=>e)}:t),q.value=J.value.agentId,en())}function nn(){en(),$()}function rn(e){let t=jo(e),n=P.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));P.value=Go([...n,t]),t.personalProjectId&&(R.value=[t.personalProjectId]),U.value=`all`,K.value=``,q.value=t.agentId,v.notify(f(`projectAgents.saved`))}function an(e){if(!e)return f(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?f(`projectAgents.notReported`):new Intl.DateTimeFormat(y(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function on(e){if(!e)return f(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(y(),{month:`short`,day:`numeric`}).format(t)}function sn(e){return e?.mode??`adaptive`}function cn(e){return e?.mode??`flexible`}function ln(e){return e?.mode===`locked`}function to(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function no(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?oe(t):null}function ro(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||f(`projectAgents.notReported`)}function io(e){return e.workerOccupationEmoji||``}function ao(e){return co(e.workerStatus||e.status)}function oo(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||f(`projectAgents.notReported`)}function so(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function co(e){return e?_o(e):f(`projectAgents.notReported`)}function lo(e){if(!e)return f(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=f(t);return n===t?e:n}function uo(e){return f(`projectAgents.tokenSources.${e}`)}function fo(e){return!e||![`executor`,`host`,`dingdong`].includes(e.source)||!Number.isSafeInteger(e.totalTokens)||e.totalTokens<0?`-`:`${new Intl.NumberFormat(y()).format(e.totalTokens)} Token · ${uo(e.source)}`}function po(e){return mo(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function mo(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 ho(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function go(e){return(e.tasks??[]).find(e=>Ue.has(e.status))??null}function _o(e){let t=`projectAgents.taskStatus.${e}`,n=f(t);return n===t?e:n}function vo(e){return f(`projectAgents.agentType.${e??`durable`}`)}function yo(e){return f(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function bo(e){return qo([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function xo(e,t){return e.clientEvidence?.find(e=>e.client===t)}function So(e,t){return xo(e,t)?.actualUse?.count??0}function Co(e){return e.neutral!==!1||e.sampleCount<=0}function wo(e){return Co(e)?f(`projectAgents.learning.neutral`):f(`projectAgents.learning.recorded`)}function To(e){return e.recentWeightedSamples??f(`projectAgents.notReported`)}function Eo(e){return e.score??``}function Do(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 Oo(e){ke.value=e.date}function ko(e,t){return de(t,e.agentId)}function Ao(e,t){return e.map(e=>{let n=t.filter(t=>ko(e,t));return n.length?{...e,tasks:Ko([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function jo(e){let t=H(e),n=H(t.profile),r=W(t,`agentId`,`agent_id`)??``,i=W(t,`createdAt`,`created_at`)??``,a=W(t,`updatedAt`,`updated_at`)??i,o={name:W(n,`name`,`name`)??r,displayName:W(n,`displayName`,`display_name`),responsibility:W(n,`responsibility`,`responsibility`)??``,capabilities:G(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:G(V(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:W(n,`status`,`status`)??`active`,occupationEmoji:W(n,`occupationEmoji`,`occupation_emoji`),agentType:W(n,`agentType`,`agent_type`),workKinds:G(V(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:re(V(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:se(V(n,`executorPolicy`,`executor_policy`)),allowedClients:G(V(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),character:{judgment:String(H(n.character).judgment??``),taste:String(H(n.character).taste??``),personality:String(H(n.character).personality??``)},expectations:W(n,`expectations`,`expectations`)??``,testSource:W(n,`testSource`,`test_source`),cleanupEligible:V(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:W(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:W(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>ne(e,s)).filter(Boolean):void 0,legacyAgentIds:G(t.legacyAgentIds??t.legacy_agent_ids).filter(e=>typeof e==`string`),recruitments:Bo(t.recruitments??t.recruitmentHistory).filter(e=>Vo(e,s)),recruitmentId:W(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:W(t,`temporaryTaskId`,`temporary_task_id`),workStatus:W(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:W(t,`currentTaskId`,`current_task_id`),observedClients:G(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:W(t,`recruitedAt`,`recruited_at`),recruitmentReason:W(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:W(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:G(t.tasks??t.taskHistory).map(ae).filter(Boolean),activity:xe(t.activity,{agentId:q.value,personalSpaceId:Z.value}),clientEvidence:Ho(t.clientEvidence??t.client_evidence),routingRules:Uo(t.routingRules??t.routing_rules),learningEvidence:Lo(t.learningEvidence??t.learning_evidence)}}function Mo(e){let t=H(e),n=W(t,`client`,`client`);if(!n)return null;let r=H(V(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:W(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:W(r,`lastUsedAt`,`last_used_at`)}:null}}function No(e,t){let n=H(e);return G(Array.isArray(e)?e:n.assignments??n.items).map(e=>ne(e,t)).filter(e=>!!e)}function Po(e){let t=H(e),n=W(t,`provider`,`provider`),r=W(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:G(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:G(V(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:G(V(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:W(t,`observedAt`,`observed_at`),unavailableReason:W(t,`unavailableReason`,`unavailable_reason`)}}function Fo(e){let t=H(e);return G(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=H(e),n=W(t,`executorId`,`executor_id`);if(!n)return null;let r=H(V(t,`actualUse`,`actual_use`));return{executorId:n,label:W(t,`label`,`label`),provider:W(t,`provider`,`provider`),model:W(t,`model`,`model`),client:W(t,`client`,`client`),availabilityStatus:W(t,`availabilityStatus`,`availability_status`),personalSpaceId:W(t,`personalSpaceId`,`personal_space_id`),displayName:W(t,`displayName`,`display_name`),executorKind:W(t,`executorKind`,`executor_kind`),capabilities:G(V(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof V(t,`globalPriority`,`global_priority`)==`number`?V(t,`globalPriority`,`global_priority`):null,healthRequired:V(t,`healthRequired`,`health_required`)===!0,registrationStatus:W(t,`registrationStatus`,`registration_status`),permissionStatus:W(t,`permissionStatus`,`permission_status`),preflightStatus:W(t,`preflightStatus`,`preflight_status`),healthStatus:W(t,`healthStatus`,`health_status`),workspacePermission:typeof V(t,`workspacePermission`,`workspace_permission`)==`boolean`?V(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof V(t,`permissionRevision`,`permission_revision`)==`number`?V(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:W(t,`registeredAt`,`registered_at`),updatedAt:W(t,`updatedAt`,`updated_at`),testSource:W(t,`testSource`,`test_source`),cleanupEligible:V(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:G(V(t,`advertisedModels`,`advertised_models`)).map(Po).filter(e=>e!==null),availableModels:G(V(t,`availableModels`,`available_models`)).map(Po).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:W(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Io(e){let t=H(e),n=W(t,`ruleId`,`rule_id`);if(!n)return null;let r=W(t,`status`,`status`);return{ruleId:n,scope:W(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),taskId:W(t,`taskId`,`task_id`),workKind:W(t,`workKind`,`work_kind`),agentId:W(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:G(V(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:re(V(t,`modelStrategy`,`model_strategy`)),reason:W(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:W(t,`createdAt`,`created_at`),updatedAt:W(t,`updatedAt`,`updated_at`)}}function Lo(e){let t=H(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(H(n))).map((e,t)=>{let n=H(e),r=W(n,`personalProjectId`,`personal_project_id`),i=W(n,`workKind`,`work_kind`),a=W(n,`executorId`,`executor_id`)??W(n,`executor`,`executor`),o=re(V(n,`modelStrategy`,`model_strategy`)),s=W(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=G(V(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=H(e),n=W(t,`signal`,`signal`),r=W(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof V(t,`decayWeight`,`decay_weight`)==`number`?V(t,`decayWeight`,`decay_weight`):null;return{evidenceId:W(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:W(t,`occurredAt`,`occurred_at`)}}),u=typeof V(n,`weightedSuccess`,`weighted_success`)==`number`?V(n,`weightedSuccess`,`weighted_success`):0,d=typeof V(n,`weightedFailure`,`weighted_failure`)==`number`?V(n,`weightedFailure`,`weighted_failure`):0,f=V(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof V(n,`sampleCount`,`sample_count`)==`number`?V(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof V(n,`recentCount`,`recent_count`)==`number`?V(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:W(n,`asOf`,`as_of`)??W(n,`updatedAt`,`updated_at`),outcomes:{success:typeof V(n,`successCount`,`success_count`)==`number`?V(n,`successCount`,`success_count`):void 0,rework:typeof V(n,`reworkCount`,`rework_count`)==`number`?V(n,`reworkCount`,`rework_count`):void 0,failure:typeof V(n,`failureCount`,`failure_count`)==`number`?V(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof V(n,`ratingCount`,`rating_count`)==`number`?V(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:V(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function Ro(e){let t=H(e);return G(Array.isArray(e)?e:t.tasks??t.items).map(ae).filter(Boolean)}function zo(e){let t=H(e),n=W(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:W(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:W(t,`personalProjectId`,`personal_project_id`)??``,taskId:W(t,`taskId`,`task_id`)??``,coordinatorAgentId:W(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:W(t,`hrAgentId`,`hr_agent_id`),positionKind:W(t,`positionKind`,`position_kind`)??`durable`,workKind:W(t,`workKind`,`work_kind`)??``,requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:W(t,`reasonCode`,`reason_code`)??``,reason:W(t,`reason`,`reason`)??``,status:W(t,`status`,`status`)??`unknown`,confirmationMode:W(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:W(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:W(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:W(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:W(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:W(t,`testSource`,`test_source`),cleanupEligible:V(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:W(t,`createdAt`,`created_at`)??``,updatedAt:W(t,`updatedAt`,`updated_at`)??``,fulfilledAt:W(t,`fulfilledAt`,`fulfilled_at`)}:null}function Bo(e){let t=H(e);return G(Array.isArray(e)?e:t.recruitments??t.items).map(zo).filter(e=>!!e)}function Vo(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function Ho(e){let t=H(e);return G(Array.isArray(e)?e:t.clients??t.executors??t.items).map(Mo).filter(Boolean)}function Uo(e){let t=H(e);return G(Array.isArray(e)?e:t.rules??t.items).map(Io).filter(Boolean)}function Wo(e){let t=H(e);return Lo(t.learningEvidence??t.learning_evidence??e)}function Go(e){let t=new Map;return e.map(jo).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Wt(n),...Wt(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:qo([...n.profile.capabilities,...e.profile.capabilities]),workKinds:qo([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:qo([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:Ko(r,({assignmentId:e})=>e),recruitments:Ko([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:Ko(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:qo([...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 Ko(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function qo(e){return[...new Set(e)]}return(t,n)=>(s(),l(`section`,{class:`view project-agents-view`,"aria-label":S(f)(`projectAgents.aria`)},[E(`header`,fn,[E(`div`,null,[E(`h2`,null,b(S(f)(`projectAgents.title`)),1),!qe.value&&!Je.value?(s(),l(`p`,pn,b(S(f)(`projectAgents.stats.total`,{count:P.value.length}))+` · `+b(S(f)(`projectAgents.stats.assignments`,{count:lt.value}))+` · `+b(S(f)(`projectAgents.stats.projects`,{count:ut.value})),1)):T(``,!0)]),E(`div`,mn,[E(`button`,{class:`quiet-button`,type:`button`,disabled:!Z.value,onClick:Yt},b(S(f)(`projectAgents.add`)),9,hn),E(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:n[0]||=e=>Xt()},b(S(f)(`employees.recruit`)),9,gn)])]),u(ve,{open:be.value,"personal-space-id":Z.value,projects:Ge.value,"template-id":Se.value,"default-project-ids":R.value??[],onClose:n[1]||=e=>be.value=!1,onRecruited:Ke},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),!qe.value&&!Je.value?(s(),l(`div`,_n,[E(`span`,null,b(S(f)(`projectAgents.stats.active`,{count:ct.value})),1),E(`span`,null,b(S(f)(`projectAgents.stats.noOnlineClaim`)),1)])):T(``,!0),!qe.value&&!Je.value&&!Ge.value.length?(s(),p(ge,{key:1,"personal-space-id":Z.value},null,8,[`personal-space-id`])):T(``,!0),E(`div`,vn,[u(_e,{modelValue:et.value,"onUpdate:modelValue":n[2]||=e=>et.value=e,class:`project-agents-project-filter`,compact:``,projects:Ze.value,label:S(f)(`employees.filterLabel`),hint:S(f)(`employees.filterHint`),"empty-label":S(f)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),E(`label`,yn,[E(`span`,bn,b(S(f)(`projectAgents.searchLabel`)),1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>K.value=e,type:`search`,placeholder:S(f)(`projectAgents.searchPlaceholder`)},null,8,xn),[[m,K.value]])]),E(`div`,{class:`project-agents-status-filter`,"aria-label":S(f)(`projectAgents.fields.status`)},[(s(!0),l(h,null,i(nt.value,e=>(s(),l(`button`,{key:e.value,type:`button`,"aria-pressed":U.value===e.value,onClick:t=>U.value=e.value},b(e.label),9,Cn))),128))],8,Sn)]),tt.value?(s(),p(wt,{key:tt.value,"personal-space-id":Z.value,"personal-project-id":tt.value,"project-name":Ut(tt.value),agents:P.value,onSelect:n[4]||=e=>q.value=e},null,8,[`personal-space-id`,`personal-project-id`,`project-name`,`agents`])):T(``,!0),qe.value?(s(),p(j,{key:3,label:S(v).state?S(f)(`projectAgents.loading`):S(f)(`common.status.loadingConsole`)},null,8,[`label`])):Je.value?(s(),l(`div`,wn,[E(`p`,null,b(Je.value),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:Ye},b(S(f)(`projectAgents.retry`)),1)])):P.value.length?rt.value.length?(s(),l(`div`,On,[E(`div`,{class:`project-agent-list`,role:`list`,"aria-label":S(f)(`projectAgents.listLabel`)},[(s(!0),l(h,null,i(rt.value,e=>(s(),l(`div`,{key:e.agentId,class:`project-agent-row-shell`},[E(`button`,{type:`button`,class:g([`project-agent-row`,{selected:q.value===e.agentId}]),"aria-current":q.value===e.agentId?`true`:void 0,onClick:t=>q.value=e.agentId},[E(`span`,jn,[e.profile.occupationEmoji?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${S(f)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},b(e.profile.occupationEmoji),9,Mn)):T(``,!0),E(`strong`,null,b(e.profile.displayName||e.profile.name),1),E(`i`,Nn,b(vo(e.profile.agentType)),1),E(`i`,{class:g([`ui-badge`,`is-${e.profile.status}`])},b(S(f)(`projectAgents.status.${e.profile.status}`)),3)]),E(`span`,Pn,[(s(!0),l(h,null,i(Kt(e).slice(0,3),e=>(s(),l(`b`,{key:e.id},b(e.name),1))),128)),Kt(e).length>3?(s(),l(`b`,Fn,`+`+b(Kt(e).length-3),1)):T(``,!0),Kt(e).length?T(``,!0):(s(),l(`em`,In,b(S(f)(`employees.noAssignedProjects`)),1))]),E(`span`,Ln,b(e.profile.responsibility||S(f)(`projectAgents.notReported`)),1),E(`span`,Rn,[go(e)?(s(),l(h,{key:0},[E(`i`,{class:g([`project-agent-work-dot`,{"is-live":go(e).status===`running`}]),"aria-hidden":`true`},null,2),w(b(_o(go(e).status))+` · `+b(go(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(s(),l(h,{key:1},[w(b(_o(e.workStatus))+` · `+b(S(f)(`projectAgents.detail.stateReported`)),1)],64)):(s(),l(h,{key:2},[w(b(S(f)(`projectAgents.detail.noRun`)),1)],64))])],10,An),u(z,{"agent-id":e.agentId},null,8,[`agent-id`])]))),128))],8,kn),Q.value?(s(),l(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Q.value.profile.displayName||Q.value.profile.name},[E(`header`,null,[E(`div`,Bn,[E(`h3`,null,[Q.value.profile.occupationEmoji?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${S(f)(`projectAgents.fields.occupationEmoji`)}: ${Q.value.profile.occupationEmoji}`},b(Q.value.profile.occupationEmoji),9,Vn)):T(``,!0),w(b(Q.value.profile.displayName||Q.value.profile.name)+` `,1),u(z,{"agent-id":Q.value.agentId},null,8,[`agent-id`])]),E(`p`,null,[w(b(vo(Q.value.profile.agentType)),1),Q.value.isTestRole?(s(),l(`span`,Hn,[w(` · `+b(S(f)(`projectAgents.source.testRole`)),1),Q.value.profile.testSource?(s(),l(`span`,Un,` · `+b(Q.value.profile.testSource),1)):T(``,!0)])):T(``,!0)])]),E(`div`,Wn,[E(`button`,{class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:n[5]||=e=>$()},b(S(f)(`projectAgents.detail.refresh`)),9,Gn),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[6]||=e=>Zt(Q.value)},b(S(f)(`projectAgents.edit`)),1),Q.value.profile.cleanupEligible?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:n[7]||=e=>Bt(Q.value)},[Ae.value?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.source.cleanupLoading`)},null,8,[`label`])):(s(),l(`span`,qn,b(S(f)(`projectAgents.source.cleanup`)),1))],8,Kn)):T(``,!0)])]),Y.value?(s(),l(`p`,Jn,b(Y.value),1)):T(``,!0),at.value?(s(),l(`section`,Yn,[E(`div`,Xn,[E(`div`,null,[E(`h4`,Zn,b(ot.value?.management?.mode===`all`?S(f)(`employees.scope.continuousAll`):S(f)(`employees.scope.label`)),1),E(`p`,null,b(S(f)(`employees.assignedCount`,{count:st.value.length})),1)]),E(`button`,{class:`primary-button`,type:`button`,onClick:n[8]||=e=>Xt(at.value)},b(S(f)(`employees.manageProjects`)),1)]),st.value.length?(s(),l(`div`,Qn,[(s(!0),l(h,null,i(st.value,e=>(s(),p(S(L),{key:e.id,to:`/employees/${encodeURIComponent(at.value)}?project=${encodeURIComponent(e.id)}`},{default:r(()=>[E(`span`,null,b(e.name),1),n[12]||=E(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[E(`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))])):(s(),l(`p`,$n,b(S(f)(`employees.manageHint`)),1))])):T(``,!0),E(`section`,er,[E(`h4`,null,b(S(f)(`projectAgents.fields.responsibility`)),1),E(`p`,null,b(Q.value.profile.responsibility||S(f)(`projectAgents.notReported`)),1),Q.value.profile.capabilities.length?(s(),l(`div`,tr,[(s(!0),l(h,null,i(Q.value.profile.capabilities,e=>(s(),l(`span`,{key:e},b(e),1))),128))])):T(``,!0)]),E(`div`,nr,[u(Ot,e(xt(`tasks`),{label:St(`tasks`),onRetry:$}),{default:r(()=>[Oe.value[Q.value.agentId]?(s(),l(`p`,rr,b(S(f)(`agentProfiles.partial`)),1)):T(``,!0),E(`section`,ir,[E(`div`,ar,[E(`h4`,null,b(S(f)(`projectAgents.sections.tasks`)),1),E(`span`,null,b(Q.value.tasks?.length??0),1)]),Q.value.tasks?.length?(s(),l(`div`,or,[(s(!0),l(h,null,i(Q.value.tasks,e=>(s(),l(`article`,{id:`task-${e.taskId}`,key:e.taskId,class:g([`ui-card project-agent-task-card`,{"is-linked":e.taskId===S(O).query.task}])},[E(`header`,null,[E(`div`,null,[E(`strong`,null,b(e.title),1),E(`small`,null,b(Ut(e.personalProjectId)),1)]),E(`i`,{class:g([`ui-badge`,`is-${e.status}`])},b(_o(e.status)),3)]),e.resultSummary||e.failureReason?(s(),l(`p`,cr,b(e.resultSummary||e.failureReason),1)):T(``,!0),E(`small`,null,b(S(f)(`projectAgents.fields.collaborators`))+` · `+b(e.participants.length),1),e.participants.length?(s(),l(`div`,lr,[(s(!0),l(h,null,i(e.participants,t=>(s(),l(`span`,{key:`${e.taskId}:${t.agentId}`},b(P.value.find(e=>e.agentId===t.agentId)?.profile.displayName||P.value.find(e=>e.agentId===t.agentId)?.profile.name||t.agentId)+` · `+b(lo(t.role)),1))),128))])):T(``,!0),u(It,{task:e,"project-name":Ut(e.personalProjectId)},null,8,[`task`,`project-name`]),E(`details`,{class:`ui-disclosure project-agent-disclosure`,open:e.taskId===S(O).query.task,"data-task-details":``},[E(`summary`,null,b(S(f)(`projectAgents.taskDetails`)),1),E(`small`,null,b(e.taskId),1),e.executionSummary===void 0?T(``,!0):(s(),l(`section`,{key:0,class:`project-agent-execution-summary`,"aria-label":S(f)(`projectAgents.fields.executionSummary`)},[E(`div`,fr,[E(`h5`,null,b(S(f)(`projectAgents.fields.executionSummary`)),1),E(`span`,null,b(e.executionSummary.length),1)]),e.executionSummary.length?(s(),l(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":S(f)(`projectAgents.fields.executionSummary`)},[E(`table`,mr,[E(`caption`,hr,b(S(f)(`projectAgents.fields.executionSummary`)),1),E(`thead`,null,[E(`tr`,null,[E(`th`,gr,b(S(f)(`projectAgents.fields.worker`)),1),E(`th`,_r,b(S(f)(`projectAgents.fields.workSummary`)),1),E(`th`,vr,b(S(f)(`projectAgents.fields.toolsUsed`)),1),E(`th`,yr,b(S(f)(`projectAgents.fields.executionEnvironment`)),1),E(`th`,br,b(S(f)(`projectAgents.fields.sourceSession`)),1),E(`th`,xr,b(S(f)(`projectAgents.fields.tokenUsage`)),1),E(`th`,Sr,b(S(f)(`projectAgents.fields.terminalStatus`)),1)])]),E(`tbody`,null,[(s(!0),l(h,null,i(e.executionSummary,(t,n)=>(s(),l(`tr`,{key:e.taskId+`:execution:`+(t.workerId||t.agentId||n),class:`project-agent-execution-summary-row`},[E(`th`,Cr,[E(`span`,wr,[so(t)?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":S(f)(`projectAgents.fields.occupationEmoji`)+`: `+so(t)},b(so(t)),9,Tr)):T(``,!0),w(` `+b(oo(t)),1)]),t.agentId||t.workerId?(s(),l(`small`,Er,b(t.workerId||t.agentId),1)):T(``,!0),E(`small`,null,b(lo(t.participantRole)),1)]),E(`td`,{"data-label":S(f)(`projectAgents.fields.workSummary`)},b(t.workSummary||S(f)(`projectAgents.notReported`)),9,Dr),E(`td`,{"data-label":S(f)(`projectAgents.fields.toolsUsed`)},b(t.toolsUsed?t.toolsUsed.join(` · `)||S(f)(`projectAgents.noToolsUsed`):S(f)(`projectAgents.notReported`)),9,Or),E(`td`,{"data-label":S(f)(`projectAgents.fields.executionEnvironment`)},[E(`strong`,null,b(t.executor||S(f)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(s(),l(`small`,Ar,b(t.executorId),1)):T(``,!0),t.actualModelProvider||t.actualModel?(s(),l(`small`,jr,b([t.actualModelProvider,t.actualModel].filter(Boolean).join(` · `)),1)):T(``,!0)],8,kr),E(`td`,{"data-label":S(f)(`projectAgents.fields.sourceSession`)},[E(`span`,null,[t.workerRuntime?(s(),l(h,{key:0},[w(b(S(f)(`projectAgents.fields.workerSession`))+` · `,1)],64)):T(``,!0),w(b(yo(t.workerRuntime?.application||t.sourceApplication)),1)]),po(t)?(s(),l(`a`,{key:0,href:po(t)||void 0,target:`_blank`,rel:`noreferrer`},b(ho(t)||po(t)),9,Nr)):(s(),l(`small`,Pr,b(ho(t)||S(f)(`projectAgents.notReported`)),1)),t.workerRuntime?(s(),l(h,{key:2},[E(`small`,Fr,b(S(f)(`projectAgents.fields.reporterSession`))+` · `+b(yo(t.sourceApplication)),1),mo(t.sourceSessionUrl)?(s(),l(`a`,{key:0,href:mo(t.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},b(t.sourceSessionId||t.sourceSessionUrl),9,Ir)):(s(),l(`small`,Lr,b(t.sourceSessionId||S(f)(`projectAgents.notReported`)),1))],64)):T(``,!0)],8,Mr),E(`td`,{"data-label":S(f)(`projectAgents.fields.tokenUsage`)},b(fo(t.tokenUsage)),9,Rr),E(`td`,{"data-label":S(f)(`projectAgents.fields.terminalStatus`)},[t.status?(s(),l(`i`,{key:0,class:g(`is-`+t.status)},b(co(t.status)),3)):(s(),l(`span`,Br,b(S(f)(`projectAgents.notReported`)),1))],8,zr)]))),128))])])],8,pr)):(s(),l(`p`,Vr,b(S(f)(`projectAgents.detail.noExecutionSummary`)),1))],8,dr)),S(te)(e).length?(s(),l(`section`,{key:1,class:`project-agent-worker-event-evidence`,"aria-label":S(f)(`projectAgents.fields.workerEventEvidence`)},[E(`div`,Ur,[E(`h5`,null,b(S(f)(`projectAgents.fields.workerEventEvidence`)),1),E(`span`,null,b(S(te)(e).length),1)]),E(`ul`,Wr,[(s(!0),l(h,null,i(S(te)(e),t=>(s(),l(`li`,{key:`${e.taskId}:worker-event:${t.eventId}`,class:`project-agent-worker-event-row`},[E(`header`,null,[E(`strong`,null,[io(t)?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${S(f)(`projectAgents.fields.occupationEmoji`)}: ${io(t)}`},b(io(t)),9,Gr)):T(``,!0),w(b(ro(t)),1),t.agentId?(s(),l(`small`,Kr,b(S(f)(`projectAgents.fields.agentId`))+` · `+b(t.agentId),1)):T(``,!0)]),E(`i`,{class:g(`is-${t.workerStatus||t.status}`)},b(ao(t)),3)]),E(`dl`,qr,[E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.workSummary`)),1),E(`dd`,null,b(t.summary||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.sourceApplication`)),1),E(`dd`,null,b(yo(t.sourceApplication)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.sourceSession`)),1),E(`dd`,null,b(t.sourceSessionId||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.tokenUsage`)),1),E(`dd`,null,b(fo(t.tokenUsage)),1)]),t.actualModelProvider||t.actualModel?(s(),l(`div`,Jr,[E(`dt`,null,b(S(f)(`projectAgents.fields.actualModel`)),1),E(`dd`,null,[t.actualModelProvider?(s(),l(`span`,Yr,b(t.actualModelProvider),1)):T(``,!0),t.actualModelProvider&&t.actualModel?(s(),l(`span`,Xr,` · `)):T(``,!0),t.actualModel?(s(),l(`span`,Zr,b(t.actualModel),1)):T(``,!0)])])):T(``,!0),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.reportedAt`)),1),E(`dd`,null,b(an(t.createdAt)),1)])])]))),128))])],8,Hr)):T(``,!0),e.effectiveModelStrategy?(s(),l(`small`,Qr,b(S(f)(`projectAgents.fields.strategySource`))+` · `+b(e.modelStrategySource||S(f)(`projectAgents.notReported`))+` · `+b(sn(e.effectiveModelStrategy))+` · `+b(cn(e.effectiveExecutorPolicy)),1)):T(``,!0),e.routingDecision?(s(),l(`div`,$r,[E(`div`,ei,[E(`span`,null,b(S(f)(`projectAgents.fields.reportedStaffingDecision`)),1),E(`strong`,null,b(e.routingDecision.outcome||S(f)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(s(),l(`small`,ti,b(S(f)(`projectAgents.fields.coordinator`))+` · `+b(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):T(``,!0),E(`small`,null,b(S(f)(`projectAgents.fields.matchBasis`))+` · `+b(e.routingDecision.matchBasis?.join(` · `)||S(f)(`projectAgents.notReported`))+` · `+b(e.routingDecision.reason||S(f)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(s(),l(`small`,ni,b(S(f)(`projectAgents.fields.candidateAgents`))+` · `+b(e.routingDecision.candidateAgentIds.join(` · `)),1)):T(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(s(),l(`small`,ri,[w(b(S(f)(`projectAgents.fields.complexity`))+` · `+b(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(s(),l(`span`,ii,` · `+b(e.routingDecision.complexityBasis.join(` · `)),1)):T(``,!0)])):T(``,!0),S(ie)(e.routingDecision.parallelPlan)?(s(),l(`small`,ai,[w(b(S(f)(`projectAgents.fields.parallelPlan`))+` · `+b(e.routingDecision.parallelPlan?.reason||S(f)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(s(),l(`span`,oi,` · `+b(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):T(``,!0)])):T(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(s(),l(`small`,si,b(e.routingDecision.ruleId||S(f)(`projectAgents.notReported`))+` · `+b(e.routingDecision.fallback||S(f)(`projectAgents.notReported`)),1)):T(``,!0)])):T(``,!0),E(`div`,ci,[E(`span`,null,b(S(f)(`projectAgents.fields.actualExecution`)),1),no(e)?(s(),l(`strong`,li,b(no(e)?.executor||no(e)?.provider||S(f)(`projectAgents.notReported`))+` / `+b(no(e)?.model||S(f)(`projectAgents.notReported`))+` / `+b(yo(no(e)?.client)),1)):(s(),l(`span`,ui,b(S(f)(`projectAgents.detail.notReportedActualExecution`)),1)),no(e)?.rule||no(e)?.fallback?(s(),l(`small`,di,b(no(e)?.rule||S(f)(`projectAgents.notReported`))+` · `+b(no(e)?.fallback||S(f)(`projectAgents.notReported`)),1)):T(``,!0)]),e.runId?(s(),l(`small`,fi,b(S(f)(`projectAgents.fields.run`))+` · `+b(e.runId),1)):(s(),l(`small`,pi,b(S(f)(`projectAgents.detail.noRun`)),1))],8,ur)],10,sr))),128))])):Oe.value[Q.value.agentId]?T(``,!0):(s(),l(`p`,mi,b(S(f)(`projectAgents.detail.noTasks`)),1))])]),_:1},16,[`label`])]),E(`details`,hi,[E(`summary`,null,b(S(f)(`projectAgents.sections.assignments`)),1),E(`div`,gi,[u(Ot,e(xt(`assignments`),{label:St(`assignments`),onRetry:$}),{default:r(()=>[E(`section`,_i,[E(`div`,vi,[E(`h4`,null,b(S(f)(`projectAgents.sections.assignments`)),1),E(`div`,yi,[E(`span`,null,b(Wt(Q.value).length),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[9]||=e=>$t(Q.value)},b(S(f)(`projectAgents.assignmentDialog.assign`)),1)])]),Wt(Q.value).length?(s(),l(`div`,bi,[(s(!0),l(h,null,i(Wt(Q.value),e=>(s(),l(`article`,{key:e.assignmentId,class:`ui-card project-agent-assignment-card`},[E(`header`,null,[E(`strong`,null,b(Ut(e.personalProjectId)),1),E(`div`,xi,[E(`i`,{class:g([`ui-badge`,`is-${e.status}`])},b(S(f)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>$t(Q.value,e,`end`)},b(S(f)(`projectAgents.assignmentDialog.end`)),9,Si)):T(``,!0),e.status===`active`?(s(),l(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>$t(Q.value,e,`replace`)},b(S(f)(`projectAgents.assignmentDialog.replace`)),9,Ci)):T(``,!0)])]),E(`p`,null,b(e.responsibility||S(f)(`projectAgents.notReported`)),1),e.scope?(s(),l(`small`,wi,b(S(f)(`projectAgents.fields.scope`))+` · `+b(e.scope),1)):T(``,!0),E(`small`,null,b(an(e.assignedAt))+` → `+b(e.endedAt?an(e.endedAt):S(f)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(s(),l(`div`,Ti,[(s(!0),l(h,null,i(e.workKinds,e=>(s(),l(`span`,{key:e},b(e),1))),128))])):T(``,!0),E(`div`,Ei,[E(`span`,null,b(S(f)(`projectAgents.fields.assignmentModel`)),1),E(`strong`,null,b(sn(e.modelStrategyOverride))+` · `+b(cn(e.executorPolicyOverride)),1),ln(e.executorPolicyOverride)&&!to(e.executorPolicyOverride).length?(s(),l(`small`,Di,b(S(f)(`projectAgents.strategy.lockedUnavailable`)),1)):T(``,!0)]),to(e.executorPolicyOverride).length?(s(),l(`div`,Oi,[(s(!0),l(h,null,i(to(e.executorPolicyOverride),e=>(s(),l(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):T(``,!0),e.reason?(s(),l(`small`,ki,b(S(f)(`projectAgents.fields.reason`))+` · `+b(e.reason),1)):T(``,!0)]))),128))])):(s(),l(`p`,Ai,b(S(f)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16,[`label`])])]),E(`details`,ji,[E(`summary`,null,b(S(f)(`projectAgents.sections.activity`)),1),E(`div`,Mi,[u(Ot,e(xt(`activity`),{label:St(`activity`),onRetry:$}),{default:r(()=>[E(`section`,Ni,[E(`div`,Pi,[E(`h4`,null,b(S(f)(`projectAgents.sections.activity`)),1),ft.value?(s(),l(`span`,Fi,b(ft.value.days.length),1)):T(``,!0)]),ft.value?.days.length?(s(),l(`div`,Ii,[E(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":S(f)(`projectAgents.activity.aria`)},[(s(!0),l(h,null,i(ft.value.days,e=>(s(),l(`button`,{key:e.date,type:`button`,role:`listitem`,class:g([`project-agent-heat-cell`,`intensity-${Do(e,ft.value)}`,{selected:ke.value===e.date}]),"aria-label":`${on(e.date)} · ${e.total}`,"aria-pressed":ke.value===e.date,onClick:t=>Oo(e)},[E(`span`,zi,b(on(e.date))+` · `+b(e.total),1)],10,Ri))),128))],8,Li),pt.value?(s(),l(`article`,Bi,[E(`header`,null,[E(`strong`,null,b(on(pt.value.date)),1),E(`span`,null,b(pt.value.total),1)]),pt.value.tasks?.length?(s(),l(`ul`,Hi,[(s(!0),l(h,null,i(pt.value.tasks,e=>(s(),l(`li`,{key:e.taskId},[E(`strong`,null,b(e.title),1),E(`span`,null,b(_o(e.status))+` · `+b(Ut(e.personalProjectId)),1),E(`small`,null,b(e.summary||S(f)(`projectAgents.notReported`)),1)]))),128))])):(s(),l(`p`,Vi,b(S(f)(`projectAgents.activity.noTasks`)),1))])):T(``,!0)])):(s(),l(`p`,Ui,b(S(f)(`projectAgents.activity.empty`)),1))])]),_:1},16,[`label`])])]),Q.value.memoryScope===`reviewed_agent`?(s(),p(ue,{key:Q.value.agentId,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:st.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):T(``,!0),Q.value.memoryScope===`reviewed_agent`?(s(),p(Ht,{key:3,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:st.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):T(``,!0),E(`details`,Wi,[E(`summary`,null,b(S(f)(`projectAgents.profileDetails`)),1),E(`dl`,Gi,[E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.assignments`)),1),E(`dd`,null,b(Gt(Q.value).length),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.memoryScope`)),1),E(`dd`,null,b(Q.value.memoryScope??S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.status`)),1),E(`dd`,null,b(S(f)(`projectAgents.status.${Q.value.profile.status}`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.recruitment`)),1),E(`dd`,null,[w(b(yo(Q.value.recruitmentSourceApplication)),1),Q.value.recruitmentReason?(s(),l(`small`,Ki,b(Q.value.recruitmentReason),1)):T(``,!0)])]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.updatedAt`)),1),E(`dd`,null,b(an(Q.value.updatedAt)),1)])])]),E(`details`,{class:`ui-disclosure project-agent-disclosure`,open:ht.value.some(e=>e.status===`awaiting_confirmation`)},[E(`summary`,null,b(S(f)(`projectAgents.sections.recruitment`)),1),E(`div`,Ji,[u(Ot,e(xt(`recruitments`),{label:St(`recruitments`),onRetry:$}),{default:r(()=>[E(`section`,Yi,[E(`div`,Xi,[E(`h4`,Zi,b(S(f)(`projectAgents.sections.recruitment`)),1),E(`span`,null,b(ht.value.length),1)]),ht.value.length?(s(),l(`div`,Qi,[(s(!0),l(h,null,i(ht.value,e=>(s(),l(`article`,{key:e.recruitmentId,class:`ui-card project-agent-recruitment-card`},[E(`header`,null,[E(`strong`,null,b(e.positionKind)+` · `+b(e.workKind||S(f)(`projectAgents.notReported`)),1),E(`div`,$i,[E(`i`,ea,b(e.status),1),e.status===`awaiting_confirmation`?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>At(e,`approve`)},[X.value===e.recruitmentId&&Pe.value===`approve`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.recruitment.approving`)},null,8,[`label`])):(s(),l(`span`,na,b(S(f)(`projectAgents.recruitment.approve`)),1))],8,ta)):T(``,!0),e.status===`awaiting_confirmation`?(s(),l(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>At(e,`cancel`)},[X.value===e.recruitmentId&&Pe.value===`cancel`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.recruitment.cancelling`)},null,8,[`label`])):(s(),l(`span`,ia,b(S(f)(`projectAgents.recruitment.cancel`)),1))],8,ra)):T(``,!0)])]),E(`dl`,aa,[E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.hr`)),1),E(`dd`,null,b(e.hrAgentId||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.trigger`)),1),E(`dd`,null,b(yo(e.triggerSourceApplication)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.reason`)),1),E(`dd`,null,b(e.reason||e.reasonCode||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.time`)),1),E(`dd`,null,b(an(e.fulfilledAt||e.createdAt)),1)])]),E(`small`,null,b(S(f)(`projectAgents.recruitment.testSource`))+` · `+b(e.testSource||S(f)(`projectAgents.notReported`)),1)]))),128))])):(s(),l(`p`,oa,b(S(f)(`projectAgents.recruitment.empty`)),1))])]),_:1},16,[`label`])])],8,qi),(s(),l(`details`,{key:`advanced:${Q.value.agentId}`,class:`ui-disclosure project-agent-disclosure`,"data-agent-advanced":``},[E(`summary`,null,b(S(f)(`projectAgents.advanced`)),1),E(`div`,sa,[u(Ot,e(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:r(()=>[E(`section`,ca,[E(`div`,la,[E(`h4`,null,b(S(f)(`projectAgents.sections.strategy`)),1),E(`span`,null,b(sn(Q.value.profile.defaultModelStrategy))+` · `+b(cn(Q.value.profile.executorPolicy)),1)]),E(`p`,ua,b(S(f)(`projectAgents.strategy.providerNeutral`)),1),to(Q.value.profile.executorPolicy).length?(s(),l(`div`,da,[(s(!0),l(h,null,i(to(Q.value.profile.executorPolicy),e=>(s(),l(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):ln(Q.value.profile.executorPolicy)?(s(),l(`p`,fa,b(S(f)(`projectAgents.strategy.lockedUnavailable`)),1)):(s(),l(`p`,pa,b(S(f)(`projectAgents.strategy.noAllowList`)),1)),E(`div`,ma,[E(`button`,{class:`quiet-button`,type:`button`,onClick:n[10]||=e=>Mt()},b(S(f)(`projectAgents.routing.addExecutor`)),1)]),Q.value.executorDirectory?.length?(s(),l(`div`,ha,[(s(!0),l(h,null,i(Q.value.executorDirectory,e=>(s(),l(`div`,{key:e.executorId,class:`project-agent-executor-row`},[E(`strong`,null,b(e.displayName||e.label||e.executorId),1),E(`span`,null,b(e.provider||S(f)(`projectAgents.notReported`))+` / `+b(e.model||S(f)(`projectAgents.notReported`)),1),E(`span`,null,b(e.globalPriority??S(f)(`projectAgents.notReported`)),1),E(`small`,null,b(e.registrationStatus||S(f)(`projectAgents.notReported`))+` · `+b(e.permissionStatus||S(f)(`projectAgents.notReported`))+` · `+b(e.preflightStatus||S(f)(`projectAgents.strategy.availabilityUnreported`))+` · `+b(e.healthStatus||S(f)(`projectAgents.notReported`)),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:t=>Mt(e)},b(S(f)(`projectAgents.routing.editExecutor`)),9,ga),e.permissionStatus===`authorized`?(s(),l(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Fe.value,onClick:t=>jt(e,`revoked`)},[Fe.value===e.executorId&&Ie.value===`revoke`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.routing.revoking`)},null,8,[`label`])):(s(),l(`span`,ba,b(S(f)(`projectAgents.routing.revoke`)),1))],8,ya)):(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Fe.value,onClick:t=>jt(e,`authorized`)},[Fe.value===e.executorId&&Ie.value===`authorize`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.routing.authorizing`)},null,8,[`label`])):(s(),l(`span`,va,b(S(f)(`projectAgents.routing.authorize`)),1))],8,_a))]))),128))])):T(``,!0)])]),_:1},16,[`label`])]),E(`div`,xa,[u(Ot,e(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:r(()=>[E(`section`,Sa,[E(`div`,Ca,[E(`h4`,null,b(S(f)(`projectAgents.sections.clients`)),1),E(`span`,null,b(bo(Q.value).length),1)]),bo(Q.value).length?(s(),l(`div`,wa,[(s(!0),l(h,null,i(bo(Q.value),e=>(s(),l(`div`,{key:e,class:`project-agent-client-row`},[E(`strong`,null,b(yo(e)),1),E(`span`,null,b(xo(Q.value,e)?.allowed||Q.value.profile.allowedClients?.includes(e)?S(f)(`projectAgents.clients.allowed`):S(f)(`projectAgents.clients.notAllowed`)),1),So(Q.value,e)?(s(),l(`span`,Ta,b(S(f)(`projectAgents.clients.observed`,{count:So(Q.value,e)})),1)):Q.value.observedClients?.includes(e)?(s(),l(`span`,Ea,b(S(f)(`projectAgents.clients.observedAny`)),1)):(s(),l(`span`,Da,b(S(f)(`projectAgents.clients.unreported`)),1)),E(`small`,null,b(xo(Q.value,e)?.integrationStatus||S(f)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(s(),l(`p`,Oa,b(S(f)(`projectAgents.clients.empty`)),1))])]),_:1},16,[`label`])]),E(`div`,ka,[u(Ot,e(xt(`routingRules`),{label:St(`routingRules`),onRetry:$}),{default:r(()=>[E(`section`,Aa,[E(`div`,ja,[E(`h4`,null,b(S(f)(`projectAgents.sections.routing`)),1),E(`div`,Ma,[E(`span`,null,b(Q.value.routingRules?.length??0),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[11]||=e=>Nt()},b(S(f)(`projectAgents.routing.addRule`)),1)])]),Q.value.routingRules?.length?(s(),l(`div`,Na,[(s(!0),l(h,null,i(Q.value.routingRules,e=>(s(),l(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[E(`strong`,null,b(e.scope)+` · `+b(e.priority),1),E(`span`,null,b(e.workKind||e.reason||S(f)(`projectAgents.notReported`))+` · `+b(e.executorIds?.join(`, `)||S(f)(`projectAgents.notReported`)),1),e.enabled?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>zt(e)},[X.value===`rule:${e.ruleId}`&&Pe.value===`disable`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.routing.disabling`)},null,8,[`label`])):(s(),l(`span`,Fa,b(S(f)(`projectAgents.routing.disable`)),1))],8,Pa)):T(``,!0)]))),128))])):(s(),l(`p`,Ia,b(S(f)(`projectAgents.routing.empty`)),1)),E(`small`,La,b(S(f)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16,[`label`])]),E(`div`,Ra,[u(Ot,e(xt(`learning`),{label:St(`learning`),onRetry:$}),{default:r(()=>[E(`section`,za,[E(`div`,Ba,[E(`h4`,null,b(S(f)(`projectAgents.sections.learning`)),1),E(`span`,null,b(mt.value.length),1)]),mt.value.length?(s(),l(`div`,Va,[(s(!0),l(h,null,i(mt.value,([e,t])=>(s(),l(`article`,{key:e,class:`ui-card project-agent-learning-card`},[E(`header`,null,[E(`strong`,null,b(e),1),E(`i`,Ha,b(wo(t)),1)]),t.personalProjectId||t.workKind||t.executor||t.modelStrategy?(s(),l(`small`,Ua,b(Ut(t.personalProjectId))+` · `+b(t.workKind||S(f)(`projectAgents.notReported`))+` · `+b(t.executor||S(f)(`projectAgents.notReported`))+` / `+b(t.modelStrategy?sn(t.modelStrategy):S(f)(`projectAgents.notReported`)),1)):T(``,!0),E(`p`,null,b(S(f)(`projectAgents.learning.samples`,{count:t.sampleCount}))+` · `+b(S(f)(`projectAgents.learning.recent`,{count:To(t)})),1),E(`small`,null,b(t.decayBasis||S(f)(`projectAgents.learning.decayUnreported`))+` · `+b(an(t.updatedAt)),1),t.outcomes?(s(),l(`div`,Wa,[(s(!0),l(h,null,i(t.outcomes,(e,t)=>d((s(),l(`span`,{key:t},b(t)+` · `+b(e??S(f)(`projectAgents.notReported`)),1)),[[x,e!==void 0]])),128)),t.score!==null&&t.score!==void 0?(s(),l(`span`,Ga,b(S(f)(`projectAgents.learning.score`,{score:Eo(t)})),1)):T(``,!0)])):T(``,!0),t.evidence?.length?(s(),l(`ul`,Ka,[(s(!0),l(h,null,i(t.evidence,e=>(s(),l(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[E(`span`,null,b(e.kind)+` · `+b(e.count??0)+` · `+b(e.summary||S(f)(`projectAgents.notReported`)),1),e.evidenceId?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!je.value,onClick:n=>kt(t,`ignore`,e.evidenceId)},[je.value===e.evidenceId&&Me.value===`ignore`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.learning.ignoring`)},null,8,[`label`])):(s(),l(`span`,Ja,b(S(f)(`projectAgents.learning.ignore`)),1))],8,qa)):T(``,!0)]))),128))])):T(``,!0),t.learningKey?(s(),l(`div`,Ya,[E(`button`,{class:`quiet-button`,type:`button`,disabled:!!je.value||!t.personalProjectId||!t.workKind||!t.executor,onClick:e=>kt(t,`reset`)},[je.value===t.learningKey&&Me.value===`reset`?(s(),p(j,{key:0,variant:`inline`,label:S(f)(`projectAgents.learning.resetting`)},null,8,[`label`])):(s(),l(`span`,Za,b(S(f)(`projectAgents.learning.reset`)),1))],8,Xa)])):T(``,!0)]))),128))])):(s(),l(`p`,Qa,b(S(f)(`projectAgents.learning.empty`)),1)),E(`small`,$a,b(S(f)(`projectAgents.learning.note`)),1)])]),_:1},16,[`label`])])]))],8,zn)):(s(),l(`div`,eo,b(S(f)(`projectAgents.detail.choose`)),1))])):(s(),l(`div`,Dn,[E(`strong`,null,b(S(f)(`projectAgents.noMatchTitle`)),1),E(`p`,null,b(S(f)(`projectAgents.noMatchCopy`)),1)])):(s(),l(`div`,Tn,[E(`strong`,null,b(S(f)(`projectAgents.emptyTitle`)),1),E(`p`,null,b(S(f)(`projectAgents.emptyCopy`)),1),E(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:Yt},b(S(f)(`projectAgents.add`)),9,En)])),u(un,{open:le.value,agent:J.value,projects:Ge.value,"default-project-id":dt.value,"personal-space-id":Z.value,onClose:Qt,onSaved:rn},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),u(Ne,{open:Ce.value,agent:J.value,assignment:Te.value,action:we.value,projects:Ge.value,"available-agents":P.value,"default-project-id":dt.value,onClose:en,onSaved:tn,onChanged:nn},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),u(it,{open:Le.value,mode:Re.value,"personal-space-id":Z.value,executor:ze.value,rule:Be.value,projects:Ge.value,"available-executors":Q.value?.executorDirectory??[],onClose:Pt,onSaved:Rt},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,dn))}}),[[`__scopeId`,`data-v-394b82e3`]]);export{to as default};
|
|
12
|
+
`).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function H(){if(I.value)return;let e=o.value.trim(),t=h.value.trim(),n=g.value.trim(),r=v.value.trim(),s=y.value.trim();if(!t||!n||!s){L.value=f(`projectAgents.dialog.required`);return}let c=i.projects.find(({project_id:t})=>t===e);if(e&&!c){L.value=f(`projectAgents.dialog.projectUnavailable`);return}if(r&&!U(r)){L.value=f(`projectAgents.dialog.occupationEmojiInvalid`);return}let l=c?.personal_space_id??i.personalSpaceId??i.agent?.personalSpaceId;if(!l){L.value=f(`projectAgents.dialog.spaceUnavailable`);return}let u=V(x.value),d=V(D.value);if(!u||!d){L.value=f(`projectAgents.dialog.duplicate`);return}let p=V(P.value);if(!p||N.value===`locked`&&!p.length){L.value=f(`projectAgents.dialog.duplicate`);return}I.value=!0,L.value=``;try{let o={...i.agent?.profile,name:n,responsibility:s,capabilities:u,initialPreferences:d,status:k.value};_.value.trim()&&(o.displayName=_.value.trim()),r&&(o.occupationEmoji=r),A.value!==`durable`&&(o.agentType=A.value),M.value!==`adaptive`&&(o.defaultModelStrategy={mode:M.value}),(N.value!==`flexible`||p.length)&&(o.executorPolicy={mode:N.value,lockedExecutorIds:N.value===`locked`?p:[],preferredExecutorIds:N.value===`flexible`?p:[]});let c=await j(`/api/project-agents`,{personalSpaceId:l,personalProjectId:null,agentId:t,profile:o}),m=c;if(e&&!z.value){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:l,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:s,capabilities:u,reason:f(`projectAgents.dialog.initialAssignmentReason`)});m={...c,personalProjectId:e,assignments:[n]}}a(`saved`,m),a(`close`)}catch(e){L.value=e instanceof Error?e.message:f(`projectAgents.dialog.saveFailed`)}finally{I.value=!1}}function U(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)=>(s(),p(ee,{open:e.open,class:`project-agent-dialog`,size:`lg`,form:``,busy:I.value,error:L.value,title:z.value?S(f)(`projectAgents.dialog.editTitle`):S(f)(`projectAgents.dialog.createTitle`),onClose:n[14]||=e=>a(`close`),onSubmit:H},{footer:r(()=>[u(F,{variant:`ghost`,disabled:I.value,onClick:n[13]||=e=>a(`close`)},{default:r(()=>[w(b(S(f)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),u(F,{variant:`primary`,type:`submit`,busy:I.value,"busy-label":S(f)(`projectAgents.dialog.saving`)},{default:r(()=>[w(b(z.value?S(f)(`projectAgents.dialog.saveEdit`):S(f)(`projectAgents.dialog.saveCreate`)),1)]),_:1},8,[`busy`,`busy-label`])]),default:r(()=>[E(`div`,Ut,[u(R,{modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,field:``,"control-id":`project-agent-project`,options:te.value,label:S(f)(`projectAgents.fields.project`),placeholder:S(f)(`projectAgents.dialog.projectPlaceholder`),disabled:z.value||I.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`]),u(R,{modelValue:k.value,"onUpdate:modelValue":n[1]||=e=>k.value=e,field:``,name:`project-agent-status`,label:S(f)(`projectAgents.fields.status`),options:ne.value,disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),u(R,{modelValue:A.value,"onUpdate:modelValue":n[2]||=e=>A.value=e,field:``,name:`project-agent-type`,label:S(f)(`projectAgents.fields.agentType`),options:re.value,disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`label`,Wt,[w(b(S(f)(`projectAgents.fields.agentId`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>h.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:z.value||I.value,placeholder:S(f)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,Gt),[[m,h.value]]),z.value?(s(),l(`small`,Kt,b(S(f)(`projectAgents.dialog.idLocked`)),1)):T(``,!0)]),E(`label`,qt,[w(b(S(f)(`attention.roleName`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[4]||=e=>g.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.namePlaceholder`)},null,8,Jt),[[m,g.value]])]),E(`label`,Yt,[w(b(S(f)(`attention.displayName`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[5]||=e=>_.value=e,name:`project-agent-display-name`,maxlength:`160`,disabled:I.value},null,8,Xt),[[m,_.value]])]),E(`label`,Zt,[w(b(S(f)(`projectAgents.fields.occupationEmoji`))+` `,1),d(E(`input`,{"onUpdate:modelValue":n[6]||=e=>v.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Qt),[[m,v.value]])]),E(`label`,$t,[w(b(S(f)(`projectAgents.fields.responsibility`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[7]||=e=>y.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,en),[[m,y.value]])]),E(`label`,tn,[w(b(S(f)(`projectAgents.fields.capabilities`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[8]||=e=>x.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,nn),[[m,x.value]])]),E(`label`,rn,[w(b(S(f)(`projectAgents.fields.initialPreferences`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[9]||=e=>D.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,an),[[m,D.value]])]),E(`fieldset`,on,[E(`legend`,null,b(S(f)(`projectAgents.fields.defaultModelStrategy`)),1),u(R,{modelValue:N.value,"onUpdate:modelValue":n[10]||=e=>N.value=e,field:``,name:`project-agent-selection-mode`,label:S(f)(`projectAgents.fields.executorPolicy`),options:B.value,disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),u(R,{modelValue:M.value,"onUpdate:modelValue":n[11]||=e=>M.value=e,field:``,name:`project-agent-model-mode`,label:S(f)(`projectAgents.fields.modelIntent`),options:S(ie),disabled:I.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),E(`label`,sn,[w(b(S(f)(`projectAgents.fields.allowList`))+` `,1),d(E(`textarea`,{"onUpdate:modelValue":n[12]||=e=>P.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:I.value,placeholder:S(f)(`projectAgents.dialog.allowListPlaceholder`)},null,8,cn),[[m,P.value]])]),E(`small`,ln,b(N.value===`locked`?S(f)(`projectAgents.strategy.lockedUnavailable`):S(f)(`projectAgents.strategy.providerNeutral`)),1)])])]),_:1},8,[`open`,`busy`,`error`,`title`]))}}),[[`__scopeId`,`data-v-86bea342`]]),dn=[`aria-label`],fn={class:`project-agents-header`},pn={key:0,class:`project-agents-header-meta`},mn={class:`project-agent-header-actions`},hn=[`disabled`],gn=[`disabled`],_n={key:0,class:`project-agents-summary`,"aria-live":`polite`},vn={class:`project-agents-toolbar`},yn={class:`project-agents-search`},bn={class:`sr-only`},xn=[`placeholder`],Sn=[`aria-label`],Cn=[`aria-pressed`,`onClick`],wn={key:4,class:`ui-card project-agents-state is-error`,role:`alert`},Tn={key:5,class:`ui-card project-agents-state`},En=[`disabled`],Dn={key:6,class:`ui-card project-agents-state`},On={key:7,class:`ui-card project-agents-directory`},kn=[`aria-label`],An=[`aria-current`,`onClick`],jn={class:`project-agent-row-heading`},Mn=[`aria-label`],Nn={class:`ui-badge project-agent-kind`},Pn={class:`project-agent-row-projects`},Fn={key:0},In={key:1},Ln={class:`project-agent-row-responsibility`},Rn={class:`project-agent-row-work`},zn=[`aria-label`],Bn={class:`project-agent-detail-heading`},Vn=[`aria-label`],Hn={key:0},Un={key:0},Wn={class:`project-agent-detail-actions`},Gn=[`disabled`],Kn=[`disabled`],qn={key:1},Jn={key:0,class:`project-agent-detail-notice`,role:`status`},Yn={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},Xn={class:`employee-project-overview-heading`},Zn={id:`employee-project-overview-title`},Qn={key:0,class:`employee-assigned-projects`},$n={key:1,class:`employee-project-overview-hint`},er={class:`ui-card project-agent-detail-section is-responsibility`},tr={key:0,class:`project-agent-tags`},nr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},rr={key:0,class:`project-agent-muted`,"data-task-partial":``},ir={class:`project-agent-detail-section`},ar={class:`project-agent-section-heading`},or={key:0,class:`project-agent-task-list`},sr=[`id`],cr={key:0},lr={key:1,class:`project-agent-inline-list`},ur=[`open`],dr=[`aria-label`],fr={class:`project-agent-section-heading`},pr=[`aria-label`],mr={class:`project-agent-execution-summary-table`},hr={class:`sr-only`},gr={scope:`col`},_r={scope:`col`},vr={scope:`col`},yr={scope:`col`},br={scope:`col`},xr={scope:`col`},Sr={scope:`col`},Cr={scope:`row`},wr={class:`project-agent-execution-worker`},Tr=[`aria-label`],Er={key:0},Dr=[`data-label`],Or=[`data-label`],kr=[`data-label`],Ar={key:0},jr={key:1},Mr=[`data-label`],Nr=[`href`],Pr={key:1},Fr={class:`project-agent-reporter-label`},Ir=[`href`],Lr={key:1},Rr=[`data-label`],zr=[`data-label`],Br={key:1},Vr={key:1,class:`project-agent-muted`},Hr=[`aria-label`],Ur={class:`project-agent-section-heading`},Wr={class:`project-agent-execution-summary-list`},Gr=[`aria-label`],Kr={key:1},qr={class:`project-agent-execution-summary-meta`},Jr={key:0},Yr={key:0},Xr={key:1},Zr={key:2},Qr={key:2},$r={key:3,class:`project-agent-routing-decision`},ei={class:`project-agent-section-heading`},ti={key:0},ni={key:1},ri={key:2},ii={key:0},ai={key:3},oi={key:0},si={key:4},ci={class:`project-agent-execution-line`},li={key:0},ui={key:1},di={key:2},fi={key:4},pi={key:5},mi={key:1,class:`project-agent-muted`},hi={class:`ui-disclosure project-agent-disclosure`},gi={class:`project-agent-detail-source`,"data-detail-section":`assignments`},_i={class:`project-agent-detail-section`},vi={class:`project-agent-section-heading`},yi={class:`project-agent-section-tools`},bi={key:0,class:`project-agent-assignment-list`},xi={class:`project-agent-card-actions`},Si=[`onClick`],Ci=[`onClick`],wi={key:0},Ti={key:1,class:`project-agent-inline-list`},Ei={class:`project-agent-strategy-note`},Di={key:0},Oi={key:2,class:`project-agent-tags`},ki={key:3},Ai={key:1,class:`project-agent-muted`},ji={class:`ui-disclosure project-agent-disclosure`},Mi={class:`project-agent-detail-source`,"data-detail-section":`activity`},Ni={class:`project-agent-detail-section`},Pi={class:`project-agent-section-heading`},Fi={key:0},Ii={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},Li=[`aria-label`],Ri=[`aria-label`,`aria-pressed`,`onClick`],zi={class:`sr-only`},Bi={key:0,class:`project-agent-day-detail`},Vi={key:0,class:`project-agent-muted`},Hi={key:1},Ui={key:1,class:`project-agent-muted`},Wi={class:`ui-disclosure project-agent-disclosure`},Gi={class:`project-agent-detail-meta`},Ki={key:0},qi=[`open`],Ji={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},Yi={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},Xi={class:`project-agent-section-heading`},Zi={id:`project-agent-recruitment-heading`},Qi={key:0,class:`project-agent-recruitment-list`},$i={class:`project-agent-card-actions`},ea={class:`ui-badge`},ta=[`disabled`,`onClick`],na={key:1},ra=[`disabled`,`onClick`],ia={key:1},aa={class:`project-agent-compact-meta`},oa={key:1,class:`project-agent-muted`},sa={class:`project-agent-detail-source`,"data-detail-section":`executors`},ca={class:`project-agent-detail-section`},la={class:`project-agent-section-heading`},ua={class:`project-agent-muted`},da={key:0,class:`project-agent-tags`},fa={key:1,class:`project-agent-blocked`},pa={key:2,class:`project-agent-muted`},ma={class:`project-agent-section-tools`},ha={key:3,class:`project-agent-executor-list`},ga=[`onClick`],_a=[`disabled`,`onClick`],va={key:1},ya=[`disabled`,`onClick`],ba={key:1},xa={class:`project-agent-detail-source`,"data-detail-section":`clients`},Sa={class:`project-agent-detail-section`},Ca={class:`project-agent-section-heading`},wa={key:0,class:`project-agent-client-list`},Ta={key:0},Ea={key:1},Da={key:2},Oa={key:1,class:`project-agent-muted`},ka={class:`project-agent-detail-source`,"data-detail-section":`routing`},Aa={class:`project-agent-detail-section`},ja={class:`project-agent-section-heading`},Ma={class:`project-agent-section-tools`},Na={key:0,class:`project-agent-rule-list`},Pa=[`disabled`,`onClick`],Fa={key:1},Ia={key:1,class:`project-agent-muted`},La={class:`project-agent-note`},Ra={class:`project-agent-detail-source`,"data-detail-section":`learning`},za={class:`project-agent-detail-section`},Ba={class:`project-agent-section-heading`},Va={key:0,class:`project-agent-learning-list`},Ha={class:`ui-badge`},Ua={key:0},Wa={key:1,class:`project-agent-inline-list`},Ga={key:0},Ka={key:2,class:`project-agent-evidence-list`},qa=[`disabled`,`onClick`],Ja={key:1},Ya={key:3,class:`project-agent-learning-actions`},Xa=[`disabled`,`onClick`],Za={key:1},Qa={key:1,class:`project-agent-muted`},$a={class:`project-agent-note`},eo={key:1,class:`project-agent-detail-placeholder`},to=P(n({__name:`ProjectAgentsPage`,setup(n){let a=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],v=D(),j=I(),P=c([]),F=c(!1),ee=c(``),R=c(null),B=c(!1),U=c(`all`),K=c(``),q=c(``);t(()=>j.query.agent,e=>{typeof e==`string`&&(q.value=e)},{immediate:!0});let le=c(!1),be=c(!1),Se=c(``),J=c(null),Ce=c(!1),we=c(`assign`),Te=c(null),Ee=c(!1),De=c({}),Oe=c({}),Y=c(``),ke=c(``),Ae=c(!1),je=c(``),Me=c(``),X=c(``),Pe=c(``),Fe=c(``),Ie=c(``),Le=c(!1),Re=c(`executor`),ze=c(null),Be=c(null),Ve=0,He=0,Ue=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function We(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let Ge=C(()=>v.state?.personalProjects??[]);async function Ke(e){await gt(),rt.value.some(t=>t.agentId===e.agent.agentId)||(R.value=null,U.value=`all`,K.value=``);let t=q.value===e.agent.agentId;q.value=e.agent.agentId,t&&$()}let Z=C(()=>v.activePersonalSpace?.id??``),qe=C(()=>F.value||!v.state&&(v.runtimeStatus===`idle`||v.runtimeStatus===`loading`)),Je=C(()=>ee.value||(!v.state&&v.runtimeStatus===`error`?v.feedback?.message||f(`projectAgents.loadError`):``));function Ye(){v.state?gt():v.refresh()}let Xe=C(()=>new Map(Ge.value.map(e=>[e.project_id,e]))),Ze=C(()=>Ge.value.map(e=>({id:e.project_id,name:e.profile.name}))),Qe=C(()=>{let e=typeof j.query.agent==`string`?j.query.agent:``;return e?P.value.find(t=>t.personalSpaceId===Z.value&&(t.agentId===e||t.legacyAgentIds?.includes(e)))??null:null}),$e=C(()=>!!(Qe.value&&typeof j.query.project==`string`&&typeof j.query.task==`string`&&!B.value)),et=C({get:()=>R.value??Ze.value.map(e=>e.id),set:e=>{B.value=!0;let t=Ze.value.filter(t=>e.includes(t.id)).map(e=>e.id);R.value=t.length===Ze.value.length?null:t}}),tt=C(()=>R.value?.length===1?R.value[0]:``);t([()=>j.query.project,Ze],([e,t],n)=>{let r=!n||e!==n[0];typeof e==`string`&&t.some(t=>t.id===e)&&(r||!B.value)&&(R.value=[e],r&&(B.value=!1))},{immediate:!0});let nt=C(()=>[{value:`all`,label:f(`projectAgents.status.all`)},{value:`active`,label:f(`projectAgents.status.active`)},{value:`inactive`,label:f(`projectAgents.status.inactive`)},{value:`archived`,label:f(`projectAgents.status.archived`)}]),rt=C(()=>{let e=K.value.trim().toLocaleLowerCase(y());return P.value.filter(e=>R.value===null||Kt(e).some(({id:e})=>R.value.includes(e))||$e.value&&e.agentId===Qe.value?.agentId).filter(e=>U.value===`all`||e.profile.status===U.value).filter(t=>!e||Jt(t).toLocaleLowerCase(y()).includes(e)).sort(Vt)}),Q=C(()=>rt.value.find(e=>e.agentId===q.value)??null),at=C(()=>Q.value?me(Q.value):null),ot=C(()=>pe.value.find(e=>e.id===at.value)),st=C(()=>Q.value?Kt(Q.value).filter(e=>Xe.value.get(e.id)?.profile.lifecycle!==`archived`):[]),ct=C(()=>P.value.filter(({profile:e})=>e.status===`active`).length),lt=C(()=>P.value.reduce((e,t)=>e+Gt(t).length,0)),ut=C(()=>new Set(P.value.flatMap(e=>Gt(e).map(({personalProjectId:e})=>e))).size),dt=C(()=>tt.value?tt.value:Q.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Q.value?.personalProjectId??Ge.value[0]?.project_id??null),ft=C(()=>Q.value?.activity??null),pt=C(()=>ft.value?.days.find(({date:e})=>e===ke.value)??null),mt=C(()=>Object.entries(Q.value?.learningEvidence??{})),ht=C(()=>Q.value?.recruitments??[]);o(()=>{v.runtimeStatus===`idle`&&v.refresh()}),t(Z,e=>{++Ve,++He,De.value={},Oe.value={},q.value=``,P.value=[],B.value=!1,R.value=typeof j.query.project==`string`&&Ze.value.some(e=>e.id===j.query.project)?[j.query.project]:null,ee.value=``,e?gt(e):F.value=!1},{immediate:!0}),t(rt,e=>{if(!e.some(e=>e.agentId===q.value)){let t=e.find(e=>e.agentId===j.query.agent||typeof j.query.agent==`string`&&e.legacyAgentIds?.includes(j.query.agent));q.value=t?.agentId??($e.value?Qe.value?.agentId:void 0)??e[0]?.agentId??``}e.some(e=>e.activity?.days.some(({date:e})=>e===ke.value))||(ke.value=``)},{immediate:!0}),t([q,Z],([e,t])=>{ke.value=``,e&&t&&$(e,t)},{immediate:!0});async function gt(e=Z.value){if(!e)return;let t=++Ve;F.value=!0,ee.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([M(`/api/project-agents?${n}`),M(`/api/project-agent-tasks?${n}`)]);if(t!==Ve)return;if(he(e),r.status===`rejected`)throw r.reason;if(t===Ve){let e=Go(ce(r.value)),t=i.status===`fulfilled`?Ro(i.value).filter(e=>Ue.has(e.status)):[];P.value=Ao(e,t)}}catch(e){t===Ve&&(ee.value=e instanceof Error?e.message:f(`projectAgents.loadError`))}finally{t===Ve&&(F.value=!1)}}async function $(e=q.value,t=Z.value){let n=P.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++He;Ee.value=!0,Y.value=``,yt(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),o=ye(),s=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:o.fromDate,toDate:o.toDate}),c={assignments:M(`/api/project-agent-assignments?${i}`),tasks:_t(i),activity:M(`/api/project-agent-activity?${s}`),recruitments:M(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:M(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:M(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:M(`/api/project-agent-routing-learning?${i}`)};await Promise.all(a.map(async i=>{try{let a=await c[i];if(!Ct(r,e,t))return;Tt(n,i,a),bt(e,i,{status:`ready`,error:``})}catch(n){if(!Ct(r,e,t))return;bt(e,i,{status:`error`,error:n instanceof Error?n.message:f(`projectAgents.detail.sectionUnavailable`)})}})),Ct(r,e,t)&&(Ee.value=!1)}async function _t(e){let t=e.get(`agentId`)??``,n=e.get(`personalSpaceId`)??``,r=typeof j.query.project==`string`?j.query.project:``,i=typeof j.query.task==`string`?j.query.task:``;e=new URLSearchParams({personalSpaceId:n,limit:`200`}),r&&e.set(`personalProjectId`,r);let a=await M(`/api/project-agent-tasks?${e}`);Et(a,[`tasks`,`items`]);let o=e=>(!e.personalSpaceId||e.personalSpaceId===n)&&(!r||e.personalProjectId===r)&&de(e,t),s=Ro(a).filter(o);if(i&&!s.some(e=>e.taskId===i)){let t=ae(await M(`/api/project-agent-tasks/${encodeURIComponent(i)}?${e}`));t&&o(t)&&s.unshift(t)}return{tasks:s,partial:!fe(a)}}t([()=>j.query.task,Ee],async([e,t])=>{t||typeof e!=`string`||(await _(),document.getElementById(`task-${e}`)?.scrollIntoView?.({block:`nearest`}))});function vt(e=`idle`){return Object.fromEntries(a.map(t=>[t,{status:e,error:``}]))}function yt(e,t){De.value={...De.value,[e]:vt(t)}}function bt(e,t,n){De.value={...De.value,[e]:{...De.value[e]??vt(),[t]:n}}}function xt(e){let t=(Array.isArray(e)?e:[e]).map(e=>De.value[q.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 St(e){return f(`projectAgents.detail.loading.`+e)}function Ct(e,t,n){return e===He&&t===q.value&&n===Z.value}function Tt(e,t,n){let r;switch(t){case`assignments`:Et(n,[`assignments`,`items`]),r={assignments:No(n,e)};break;case`tasks`:Et(n,[`tasks`,`items`]),Oe.value={...Oe.value,[e.agentId]:H(n).partial===!0},r={tasks:Ro(n)};break;case`activity`:{let e=xe(n,{agentId:q.value,personalSpaceId:Z.value});if(!e)throw Error(f(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:Et(n,[`recruitments`,`items`]),r={recruitments:Bo(n).filter(t=>Vo(t,e))};break;case`executors`:Et(n,[`executors`,`items`]),r={executorDirectory:Fo(n),clientEvidence:Ho(n)};break;case`routingRules`:Et(n,[`rules`,`items`]),r={routingRules:Uo(n)};break;case`learning`:Et(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:Wo(n)};break}P.value=P.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function Et(e,t,n=!1){if(Array.isArray(e))return;let r=H(e);if(!t.some(e=>Array.isArray(r[e])||n&&Dt(r[e])))throw Error(f(`projectAgents.detail.sectionUnavailable`))}function Dt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function kt(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=Q.value;if(!(!r||!i||!Z.value||je.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){Y.value=f(`projectAgents.learning.resetUnavailable`);return}je.value=r,Me.value=t;try{await k(`/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`:We(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await $()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.learning.updateFailed`)}finally{je.value=``,Me.value=``}}}async function At(e,t){if(!(!Z.value||X.value)){X.value=e.recruitmentId,Pe.value=t;try{await O(`/api/project-agent-recruitments/decision`,{personalSpaceId:Z.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:f(`projectAgents.recruitment.${t}Reason`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.recruitment.decisionFailed`)}finally{X.value=``,Pe.value=``}}}async function jt(e,t){if(!(!Z.value||Fe.value)){Fe.value=e.executorId,Ie.value=t===`authorized`?`authorize`:`revoke`;try{await O(`/api/executors/authorization`,{personalSpaceId:Z.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:We(`console-executor:${e.executorId}:${t}`),reason:f(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.routing.authorizationFailed`)}finally{Fe.value=``,Ie.value=``}}}function Mt(e=null){Re.value=`executor`,ze.value=e,Be.value=null,Le.value=!0}function Nt(e=null){Re.value=`rule`,Be.value=e,ze.value=null,Le.value=!0}function Pt(){Le.value=!1,ze.value=null,Be.value=null}function Ft(e){Q.value&&(P.value=P.value.map(t=>t.agentId===Q.value?.agentId?{...t,executorDirectory:Ko([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),Pt())}function Lt(e){Q.value&&(P.value=P.value.map(t=>t.agentId===Q.value?.agentId?{...t,routingRules:Ko([...t.routingRules??[],e],({ruleId:e})=>e)}:t),Pt())}function Rt(e){Re.value===`executor`?Ft(e):Lt(e)}async function zt(e){if(!(!Z.value||!e.ruleId||X.value)){X.value=`rule:${e.ruleId}`,Pe.value=`disable`;try{await k(`/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){Y.value=e instanceof Error?e.message:f(`projectAgents.routing.updateFailed`)}finally{X.value=``,Pe.value=``}}}async function Bt(e){if(e.profile.cleanupEligible){Ae.value=!0,Ee.value=!0;try{await A(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await gt()}catch(e){Y.value=e instanceof Error?e.message:f(`projectAgents.source.cleanupFailed`)}finally{Ae.value=!1,Ee.value=!1}}}function Vt(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,y())||e.agentId.localeCompare(t.agentId,y())}function Ut(e){return e?Xe.value.get(e)?.profile.name??e:f(`projectAgents.notReported`)}function Wt(e){return e.assignments??(e.personalProjectId?[qt(e)]:[])}function Gt(e){return[...new Map(Wt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function Kt(e){let t=me(e);return(t?pe.value.find(e=>e.id===t):void 0)?.managedProjects??Gt(e).map(e=>({id:e.personalProjectId,name:Ut(e.personalProjectId)}))}function qt(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 Jt(e){return[e.agentId,e.profile.name,e.profile.displayName??``,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Wt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function Yt(){J.value=null,le.value=!0}function Xt(e=``){Se.value=e,be.value=!0}function Zt(e){J.value=e,le.value=!0}function Qt(){le.value=!1,J.value=null}function $t(e,t=null,n=`assign`){let r=me(e);if(n===`assign`&&r){Xt(r);return}J.value=e,Te.value=t,we.value=n,Ce.value=!0}function en(){Ce.value=!1,Te.value=null,we.value=`assign`}function tn(e){J.value&&(P.value=P.value.map(t=>t.agentId===J.value?.agentId?{...t,assignments:Ko([...t.assignments??[],e],({assignmentId:e})=>e)}:t),q.value=J.value.agentId,en())}function nn(){en(),$()}function rn(e){let t=jo(e),n=P.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));P.value=Go([...n,t]),t.personalProjectId&&(R.value=[t.personalProjectId]),U.value=`all`,K.value=``,q.value=t.agentId,v.notify(f(`projectAgents.saved`))}function an(e){if(!e)return f(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?f(`projectAgents.notReported`):new Intl.DateTimeFormat(y(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function on(e){if(!e)return f(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(y(),{month:`short`,day:`numeric`}).format(t)}function sn(e){return e?.mode??`adaptive`}function cn(e){return e?.mode??`flexible`}function ln(e){return e?.mode===`locked`}function to(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function no(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?oe(t):null}function ro(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||f(`projectAgents.notReported`)}function io(e){return e.workerOccupationEmoji||``}function ao(e){return co(e.workerStatus||e.status)}function oo(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||f(`projectAgents.notReported`)}function so(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function co(e){return e?_o(e):f(`projectAgents.notReported`)}function lo(e){if(!e)return f(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=f(t);return n===t?e:n}function uo(e){return f(`projectAgents.tokenSources.${e}`)}function fo(e){return!e||![`executor`,`host`,`dingdong`].includes(e.source)||!Number.isSafeInteger(e.totalTokens)||e.totalTokens<0?`-`:`${new Intl.NumberFormat(y()).format(e.totalTokens)} Token · ${uo(e.source)}`}function po(e){return mo(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function mo(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 ho(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function go(e){return(e.tasks??[]).find(e=>Ue.has(e.status))??null}function _o(e){let t=`projectAgents.taskStatus.${e}`,n=f(t);return n===t?e:n}function vo(e){return f(`projectAgents.agentType.${e??`durable`}`)}function yo(e){return f(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function bo(e){return qo([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function xo(e,t){return e.clientEvidence?.find(e=>e.client===t)}function So(e,t){return xo(e,t)?.actualUse?.count??0}function Co(e){return e.neutral!==!1||e.sampleCount<=0}function wo(e){return Co(e)?f(`projectAgents.learning.neutral`):f(`projectAgents.learning.recorded`)}function To(e){return e.recentWeightedSamples??f(`projectAgents.notReported`)}function Eo(e){return e.score??``}function Do(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 Oo(e){ke.value=e.date}function ko(e,t){return de(t,e.agentId)}function Ao(e,t){return e.map(e=>{let n=t.filter(t=>ko(e,t));return n.length?{...e,tasks:Ko([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function jo(e){let t=H(e),n=H(t.profile),r=W(t,`agentId`,`agent_id`)??``,i=W(t,`createdAt`,`created_at`)??``,a=W(t,`updatedAt`,`updated_at`)??i,o={name:W(n,`name`,`name`)??r,displayName:W(n,`displayName`,`display_name`),responsibility:W(n,`responsibility`,`responsibility`)??``,capabilities:G(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:G(V(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:W(n,`status`,`status`)??`active`,occupationEmoji:W(n,`occupationEmoji`,`occupation_emoji`),agentType:W(n,`agentType`,`agent_type`),workKinds:G(V(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:re(V(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:se(V(n,`executorPolicy`,`executor_policy`)),allowedClients:G(V(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),character:{judgment:String(H(n.character).judgment??``),taste:String(H(n.character).taste??``),personality:String(H(n.character).personality??``)},expectations:W(n,`expectations`,`expectations`)??``,testSource:W(n,`testSource`,`test_source`),cleanupEligible:V(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:W(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:W(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>ne(e,s)).filter(Boolean):void 0,legacyAgentIds:G(t.legacyAgentIds??t.legacy_agent_ids).filter(e=>typeof e==`string`),recruitments:Bo(t.recruitments??t.recruitmentHistory).filter(e=>Vo(e,s)),recruitmentId:W(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:W(t,`temporaryTaskId`,`temporary_task_id`),workStatus:W(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:W(t,`currentTaskId`,`current_task_id`),observedClients:G(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:W(t,`recruitedAt`,`recruited_at`),recruitmentReason:W(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:W(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:G(t.tasks??t.taskHistory).map(ae).filter(Boolean),activity:xe(t.activity,{agentId:q.value,personalSpaceId:Z.value}),clientEvidence:Ho(t.clientEvidence??t.client_evidence),routingRules:Uo(t.routingRules??t.routing_rules),learningEvidence:Lo(t.learningEvidence??t.learning_evidence)}}function Mo(e){let t=H(e),n=W(t,`client`,`client`);if(!n)return null;let r=H(V(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:W(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:W(r,`lastUsedAt`,`last_used_at`)}:null}}function No(e,t){let n=H(e);return G(Array.isArray(e)?e:n.assignments??n.items).map(e=>ne(e,t)).filter(e=>!!e)}function Po(e){let t=H(e),n=W(t,`provider`,`provider`),r=W(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:G(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:G(V(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:G(V(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:W(t,`observedAt`,`observed_at`),unavailableReason:W(t,`unavailableReason`,`unavailable_reason`)}}function Fo(e){let t=H(e);return G(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=H(e),n=W(t,`executorId`,`executor_id`);if(!n)return null;let r=H(V(t,`actualUse`,`actual_use`));return{executorId:n,label:W(t,`label`,`label`),provider:W(t,`provider`,`provider`),model:W(t,`model`,`model`),client:W(t,`client`,`client`),availabilityStatus:W(t,`availabilityStatus`,`availability_status`),personalSpaceId:W(t,`personalSpaceId`,`personal_space_id`),displayName:W(t,`displayName`,`display_name`),executorKind:W(t,`executorKind`,`executor_kind`),capabilities:G(V(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof V(t,`globalPriority`,`global_priority`)==`number`?V(t,`globalPriority`,`global_priority`):null,healthRequired:V(t,`healthRequired`,`health_required`)===!0,registrationStatus:W(t,`registrationStatus`,`registration_status`),permissionStatus:W(t,`permissionStatus`,`permission_status`),preflightStatus:W(t,`preflightStatus`,`preflight_status`),healthStatus:W(t,`healthStatus`,`health_status`),workspacePermission:typeof V(t,`workspacePermission`,`workspace_permission`)==`boolean`?V(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof V(t,`permissionRevision`,`permission_revision`)==`number`?V(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:W(t,`registeredAt`,`registered_at`),updatedAt:W(t,`updatedAt`,`updated_at`),testSource:W(t,`testSource`,`test_source`),cleanupEligible:V(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:G(V(t,`advertisedModels`,`advertised_models`)).map(Po).filter(e=>e!==null),availableModels:G(V(t,`availableModels`,`available_models`)).map(Po).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:W(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Io(e){let t=H(e),n=W(t,`ruleId`,`rule_id`);if(!n)return null;let r=W(t,`status`,`status`);return{ruleId:n,scope:W(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:W(t,`personalProjectId`,`personal_project_id`),taskId:W(t,`taskId`,`task_id`),workKind:W(t,`workKind`,`work_kind`),agentId:W(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:G(V(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:re(V(t,`modelStrategy`,`model_strategy`)),reason:W(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:W(t,`createdAt`,`created_at`),updatedAt:W(t,`updatedAt`,`updated_at`)}}function Lo(e){let t=H(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(H(n))).map((e,t)=>{let n=H(e),r=W(n,`personalProjectId`,`personal_project_id`),i=W(n,`workKind`,`work_kind`),a=W(n,`executorId`,`executor_id`)??W(n,`executor`,`executor`),o=re(V(n,`modelStrategy`,`model_strategy`)),s=W(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=G(V(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=H(e),n=W(t,`signal`,`signal`),r=W(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof V(t,`decayWeight`,`decay_weight`)==`number`?V(t,`decayWeight`,`decay_weight`):null;return{evidenceId:W(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:W(t,`occurredAt`,`occurred_at`)}}),u=typeof V(n,`weightedSuccess`,`weighted_success`)==`number`?V(n,`weightedSuccess`,`weighted_success`):0,d=typeof V(n,`weightedFailure`,`weighted_failure`)==`number`?V(n,`weightedFailure`,`weighted_failure`):0,f=V(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof V(n,`sampleCount`,`sample_count`)==`number`?V(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof V(n,`recentCount`,`recent_count`)==`number`?V(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:W(n,`asOf`,`as_of`)??W(n,`updatedAt`,`updated_at`),outcomes:{success:typeof V(n,`successCount`,`success_count`)==`number`?V(n,`successCount`,`success_count`):void 0,rework:typeof V(n,`reworkCount`,`rework_count`)==`number`?V(n,`reworkCount`,`rework_count`):void 0,failure:typeof V(n,`failureCount`,`failure_count`)==`number`?V(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof V(n,`ratingCount`,`rating_count`)==`number`?V(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:V(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function Ro(e){let t=H(e);return G(Array.isArray(e)?e:t.tasks??t.items).map(ae).filter(Boolean)}function zo(e){let t=H(e),n=W(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:W(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:W(t,`personalProjectId`,`personal_project_id`)??``,taskId:W(t,`taskId`,`task_id`)??``,coordinatorAgentId:W(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:W(t,`hrAgentId`,`hr_agent_id`),positionKind:W(t,`positionKind`,`position_kind`)??`durable`,workKind:W(t,`workKind`,`work_kind`)??``,requiredCapabilities:G(V(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:W(t,`reasonCode`,`reason_code`)??``,reason:W(t,`reason`,`reason`)??``,status:W(t,`status`,`status`)??`unknown`,confirmationMode:W(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:W(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:W(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:W(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:W(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:W(t,`testSource`,`test_source`),cleanupEligible:V(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:W(t,`createdAt`,`created_at`)??``,updatedAt:W(t,`updatedAt`,`updated_at`)??``,fulfilledAt:W(t,`fulfilledAt`,`fulfilled_at`)}:null}function Bo(e){let t=H(e);return G(Array.isArray(e)?e:t.recruitments??t.items).map(zo).filter(e=>!!e)}function Vo(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function Ho(e){let t=H(e);return G(Array.isArray(e)?e:t.clients??t.executors??t.items).map(Mo).filter(Boolean)}function Uo(e){let t=H(e);return G(Array.isArray(e)?e:t.rules??t.items).map(Io).filter(Boolean)}function Wo(e){let t=H(e);return Lo(t.learningEvidence??t.learning_evidence??e)}function Go(e){let t=new Map;return e.map(jo).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Wt(n),...Wt(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:qo([...n.profile.capabilities,...e.profile.capabilities]),workKinds:qo([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:qo([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:Ko(r,({assignmentId:e})=>e),recruitments:Ko([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:Ko(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:qo([...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 Ko(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function qo(e){return[...new Set(e)]}return(t,n)=>(s(),l(`section`,{class:`view project-agents-view`,"aria-label":S(f)(`projectAgents.aria`)},[E(`header`,fn,[E(`div`,null,[E(`h2`,null,b(S(f)(`projectAgents.title`)),1),!qe.value&&!Je.value?(s(),l(`p`,pn,b(S(f)(`projectAgents.stats.total`,{count:P.value.length}))+` · `+b(S(f)(`projectAgents.stats.assignments`,{count:lt.value}))+` · `+b(S(f)(`projectAgents.stats.projects`,{count:ut.value})),1)):T(``,!0)]),E(`div`,mn,[E(`button`,{class:`quiet-button`,type:`button`,disabled:!Z.value,onClick:Yt},b(S(f)(`projectAgents.add`)),9,hn),E(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:n[0]||=e=>Xt()},b(S(f)(`employees.recruit`)),9,gn)])]),u(ve,{open:be.value,"personal-space-id":Z.value,projects:Ge.value,"template-id":Se.value,"default-project-ids":R.value??[],onClose:n[1]||=e=>be.value=!1,onRecruited:Ke},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),!qe.value&&!Je.value?(s(),l(`div`,_n,[E(`span`,null,b(S(f)(`projectAgents.stats.active`,{count:ct.value})),1),E(`span`,null,b(S(f)(`projectAgents.stats.noOnlineClaim`)),1)])):T(``,!0),!qe.value&&!Je.value&&!Ge.value.length?(s(),p(ge,{key:1,"personal-space-id":Z.value},null,8,[`personal-space-id`])):T(``,!0),E(`div`,vn,[u(_e,{modelValue:et.value,"onUpdate:modelValue":n[2]||=e=>et.value=e,class:`project-agents-project-filter`,compact:``,projects:Ze.value,label:S(f)(`employees.filterLabel`),hint:S(f)(`employees.filterHint`),"empty-label":S(f)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),E(`label`,yn,[E(`span`,bn,b(S(f)(`projectAgents.searchLabel`)),1),d(E(`input`,{"onUpdate:modelValue":n[3]||=e=>K.value=e,type:`search`,placeholder:S(f)(`projectAgents.searchPlaceholder`)},null,8,xn),[[m,K.value]])]),E(`div`,{class:`project-agents-status-filter`,"aria-label":S(f)(`projectAgents.fields.status`)},[(s(!0),l(h,null,i(nt.value,e=>(s(),l(`button`,{key:e.value,type:`button`,"aria-pressed":U.value===e.value,onClick:t=>U.value=e.value},b(e.label),9,Cn))),128))],8,Sn)]),tt.value?(s(),p(wt,{key:tt.value,"personal-space-id":Z.value,"personal-project-id":tt.value,"project-name":Ut(tt.value),agents:P.value,onSelect:n[4]||=e=>q.value=e},null,8,[`personal-space-id`,`personal-project-id`,`project-name`,`agents`])):T(``,!0),qe.value?(s(),p(N,{key:3,label:S(v).state?S(f)(`projectAgents.loading`):S(f)(`common.status.loadingConsole`)},null,8,[`label`])):Je.value?(s(),l(`div`,wn,[E(`p`,null,b(Je.value),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:Ye},b(S(f)(`projectAgents.retry`)),1)])):P.value.length?rt.value.length?(s(),l(`div`,On,[E(`div`,{class:`project-agent-list`,role:`list`,"aria-label":S(f)(`projectAgents.listLabel`)},[(s(!0),l(h,null,i(rt.value,e=>(s(),l(`div`,{key:e.agentId,class:`project-agent-row-shell`},[E(`button`,{type:`button`,class:g([`project-agent-row`,{selected:q.value===e.agentId}]),"aria-current":q.value===e.agentId?`true`:void 0,onClick:t=>q.value=e.agentId},[E(`span`,jn,[e.profile.occupationEmoji?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${S(f)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},b(e.profile.occupationEmoji),9,Mn)):T(``,!0),E(`strong`,null,b(e.profile.displayName||e.profile.name),1),E(`i`,Nn,b(vo(e.profile.agentType)),1),E(`i`,{class:g([`ui-badge`,`is-${e.profile.status}`])},b(S(f)(`projectAgents.status.${e.profile.status}`)),3)]),E(`span`,Pn,[(s(!0),l(h,null,i(Kt(e).slice(0,3),e=>(s(),l(`b`,{key:e.id},b(e.name),1))),128)),Kt(e).length>3?(s(),l(`b`,Fn,`+`+b(Kt(e).length-3),1)):T(``,!0),Kt(e).length?T(``,!0):(s(),l(`em`,In,b(S(f)(`employees.noAssignedProjects`)),1))]),E(`span`,Ln,b(e.profile.responsibility||S(f)(`projectAgents.notReported`)),1),E(`span`,Rn,[go(e)?(s(),l(h,{key:0},[E(`i`,{class:g([`project-agent-work-dot`,{"is-live":go(e).status===`running`}]),"aria-hidden":`true`},null,2),w(b(_o(go(e).status))+` · `+b(go(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(s(),l(h,{key:1},[w(b(_o(e.workStatus))+` · `+b(S(f)(`projectAgents.detail.stateReported`)),1)],64)):(s(),l(h,{key:2},[w(b(S(f)(`projectAgents.detail.noRun`)),1)],64))])],10,An),u(z,{"agent-id":e.agentId},null,8,[`agent-id`])]))),128))],8,kn),Q.value?(s(),l(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Q.value.profile.displayName||Q.value.profile.name},[E(`header`,null,[E(`div`,Bn,[E(`h3`,null,[Q.value.profile.occupationEmoji?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${S(f)(`projectAgents.fields.occupationEmoji`)}: ${Q.value.profile.occupationEmoji}`},b(Q.value.profile.occupationEmoji),9,Vn)):T(``,!0),w(b(Q.value.profile.displayName||Q.value.profile.name)+` `,1),u(z,{"agent-id":Q.value.agentId},null,8,[`agent-id`])]),E(`p`,null,[w(b(vo(Q.value.profile.agentType)),1),Q.value.isTestRole?(s(),l(`span`,Hn,[w(` · `+b(S(f)(`projectAgents.source.testRole`)),1),Q.value.profile.testSource?(s(),l(`span`,Un,` · `+b(Q.value.profile.testSource),1)):T(``,!0)])):T(``,!0)])]),E(`div`,Wn,[E(`button`,{class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:n[5]||=e=>$()},b(S(f)(`projectAgents.detail.refresh`)),9,Gn),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[6]||=e=>Zt(Q.value)},b(S(f)(`projectAgents.edit`)),1),Q.value.profile.cleanupEligible?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:n[7]||=e=>Bt(Q.value)},[Ae.value?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.source.cleanupLoading`)},null,8,[`label`])):(s(),l(`span`,qn,b(S(f)(`projectAgents.source.cleanup`)),1))],8,Kn)):T(``,!0)])]),Y.value?(s(),l(`p`,Jn,b(Y.value),1)):T(``,!0),at.value?(s(),l(`section`,Yn,[E(`div`,Xn,[E(`div`,null,[E(`h4`,Zn,b(ot.value?.management?.mode===`all`?S(f)(`employees.scope.continuousAll`):S(f)(`employees.scope.label`)),1),E(`p`,null,b(S(f)(`employees.assignedCount`,{count:st.value.length})),1)]),E(`button`,{class:`primary-button`,type:`button`,onClick:n[8]||=e=>Xt(at.value)},b(S(f)(`employees.manageProjects`)),1)]),st.value.length?(s(),l(`div`,Qn,[(s(!0),l(h,null,i(st.value,e=>(s(),p(S(L),{key:e.id,to:`/employees/${encodeURIComponent(at.value)}?project=${encodeURIComponent(e.id)}`},{default:r(()=>[E(`span`,null,b(e.name),1),n[12]||=E(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[E(`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))])):(s(),l(`p`,$n,b(S(f)(`employees.manageHint`)),1))])):T(``,!0),E(`section`,er,[E(`h4`,null,b(S(f)(`projectAgents.fields.responsibility`)),1),E(`p`,null,b(Q.value.profile.responsibility||S(f)(`projectAgents.notReported`)),1),Q.value.profile.capabilities.length?(s(),l(`div`,tr,[(s(!0),l(h,null,i(Q.value.profile.capabilities,e=>(s(),l(`span`,{key:e},b(e),1))),128))])):T(``,!0)]),E(`div`,nr,[u(Ot,e(xt(`tasks`),{label:St(`tasks`),onRetry:$}),{default:r(()=>[Oe.value[Q.value.agentId]?(s(),l(`p`,rr,b(S(f)(`agentProfiles.partial`)),1)):T(``,!0),E(`section`,ir,[E(`div`,ar,[E(`h4`,null,b(S(f)(`projectAgents.sections.tasks`)),1),E(`span`,null,b(Q.value.tasks?.length??0),1)]),Q.value.tasks?.length?(s(),l(`div`,or,[(s(!0),l(h,null,i(Q.value.tasks,e=>(s(),l(`article`,{id:`task-${e.taskId}`,key:e.taskId,class:g([`ui-card project-agent-task-card`,{"is-linked":e.taskId===S(j).query.task}])},[E(`header`,null,[E(`div`,null,[E(`strong`,null,b(e.title),1),E(`small`,null,b(Ut(e.personalProjectId)),1)]),E(`i`,{class:g([`ui-badge`,`is-${e.status}`])},b(_o(e.status)),3)]),e.resultSummary||e.failureReason?(s(),l(`p`,cr,b(e.resultSummary||e.failureReason),1)):T(``,!0),E(`small`,null,b(S(f)(`projectAgents.fields.collaborators`))+` · `+b(e.participants.length),1),e.participants.length?(s(),l(`div`,lr,[(s(!0),l(h,null,i(e.participants,t=>(s(),l(`span`,{key:`${e.taskId}:${t.agentId}`},b(P.value.find(e=>e.agentId===t.agentId)?.profile.displayName||P.value.find(e=>e.agentId===t.agentId)?.profile.name||t.agentId)+` · `+b(lo(t.role)),1))),128))])):T(``,!0),u(It,{task:e,"project-name":Ut(e.personalProjectId)},null,8,[`task`,`project-name`]),E(`details`,{class:`ui-disclosure project-agent-disclosure`,open:e.taskId===S(j).query.task,"data-task-details":``},[E(`summary`,null,b(S(f)(`projectAgents.taskDetails`)),1),E(`small`,null,b(e.taskId),1),e.executionSummary===void 0?T(``,!0):(s(),l(`section`,{key:0,class:`project-agent-execution-summary`,"aria-label":S(f)(`projectAgents.fields.executionSummary`)},[E(`div`,fr,[E(`h5`,null,b(S(f)(`projectAgents.fields.executionSummary`)),1),E(`span`,null,b(e.executionSummary.length),1)]),e.executionSummary.length?(s(),l(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":S(f)(`projectAgents.fields.executionSummary`)},[E(`table`,mr,[E(`caption`,hr,b(S(f)(`projectAgents.fields.executionSummary`)),1),E(`thead`,null,[E(`tr`,null,[E(`th`,gr,b(S(f)(`projectAgents.fields.worker`)),1),E(`th`,_r,b(S(f)(`projectAgents.fields.workSummary`)),1),E(`th`,vr,b(S(f)(`projectAgents.fields.toolsUsed`)),1),E(`th`,yr,b(S(f)(`projectAgents.fields.executionEnvironment`)),1),E(`th`,br,b(S(f)(`projectAgents.fields.sourceSession`)),1),E(`th`,xr,b(S(f)(`projectAgents.fields.tokenUsage`)),1),E(`th`,Sr,b(S(f)(`projectAgents.fields.terminalStatus`)),1)])]),E(`tbody`,null,[(s(!0),l(h,null,i(e.executionSummary,(t,n)=>(s(),l(`tr`,{key:e.taskId+`:execution:`+(t.workerId||t.agentId||n),class:`project-agent-execution-summary-row`},[E(`th`,Cr,[E(`span`,wr,[so(t)?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":S(f)(`projectAgents.fields.occupationEmoji`)+`: `+so(t)},b(so(t)),9,Tr)):T(``,!0),w(` `+b(oo(t)),1)]),t.agentId||t.workerId?(s(),l(`small`,Er,b(t.workerId||t.agentId),1)):T(``,!0),E(`small`,null,b(lo(t.participantRole)),1)]),E(`td`,{"data-label":S(f)(`projectAgents.fields.workSummary`)},b(t.workSummary||S(f)(`projectAgents.notReported`)),9,Dr),E(`td`,{"data-label":S(f)(`projectAgents.fields.toolsUsed`)},b(t.toolsUsed?t.toolsUsed.join(` · `)||S(f)(`projectAgents.noToolsUsed`):S(f)(`projectAgents.notReported`)),9,Or),E(`td`,{"data-label":S(f)(`projectAgents.fields.executionEnvironment`)},[E(`strong`,null,b(t.executor||S(f)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(s(),l(`small`,Ar,b(t.executorId),1)):T(``,!0),t.actualModelProvider||t.actualModel?(s(),l(`small`,jr,b([t.actualModelProvider,t.actualModel].filter(Boolean).join(` · `)),1)):T(``,!0)],8,kr),E(`td`,{"data-label":S(f)(`projectAgents.fields.sourceSession`)},[E(`span`,null,[t.workerRuntime?(s(),l(h,{key:0},[w(b(S(f)(`projectAgents.fields.workerSession`))+` · `,1)],64)):T(``,!0),w(b(yo(t.workerRuntime?.application||t.sourceApplication)),1)]),po(t)?(s(),l(`a`,{key:0,href:po(t)||void 0,target:`_blank`,rel:`noreferrer`},b(ho(t)||po(t)),9,Nr)):(s(),l(`small`,Pr,b(ho(t)||S(f)(`projectAgents.notReported`)),1)),t.workerRuntime?(s(),l(h,{key:2},[E(`small`,Fr,b(S(f)(`projectAgents.fields.reporterSession`))+` · `+b(yo(t.sourceApplication)),1),mo(t.sourceSessionUrl)?(s(),l(`a`,{key:0,href:mo(t.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},b(t.sourceSessionId||t.sourceSessionUrl),9,Ir)):(s(),l(`small`,Lr,b(t.sourceSessionId||S(f)(`projectAgents.notReported`)),1))],64)):T(``,!0)],8,Mr),E(`td`,{"data-label":S(f)(`projectAgents.fields.tokenUsage`)},b(fo(t.tokenUsage)),9,Rr),E(`td`,{"data-label":S(f)(`projectAgents.fields.terminalStatus`)},[t.status?(s(),l(`i`,{key:0,class:g(`is-`+t.status)},b(co(t.status)),3)):(s(),l(`span`,Br,b(S(f)(`projectAgents.notReported`)),1))],8,zr)]))),128))])])],8,pr)):(s(),l(`p`,Vr,b(S(f)(`projectAgents.detail.noExecutionSummary`)),1))],8,dr)),S(te)(e).length?(s(),l(`section`,{key:1,class:`project-agent-worker-event-evidence`,"aria-label":S(f)(`projectAgents.fields.workerEventEvidence`)},[E(`div`,Ur,[E(`h5`,null,b(S(f)(`projectAgents.fields.workerEventEvidence`)),1),E(`span`,null,b(S(te)(e).length),1)]),E(`ul`,Wr,[(s(!0),l(h,null,i(S(te)(e),t=>(s(),l(`li`,{key:`${e.taskId}:worker-event:${t.eventId}`,class:`project-agent-worker-event-row`},[E(`header`,null,[E(`strong`,null,[io(t)?(s(),l(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${S(f)(`projectAgents.fields.occupationEmoji`)}: ${io(t)}`},b(io(t)),9,Gr)):T(``,!0),w(b(ro(t)),1),t.agentId?(s(),l(`small`,Kr,b(S(f)(`projectAgents.fields.agentId`))+` · `+b(t.agentId),1)):T(``,!0)]),E(`i`,{class:g(`is-${t.workerStatus||t.status}`)},b(ao(t)),3)]),E(`dl`,qr,[E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.workSummary`)),1),E(`dd`,null,b(t.summary||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.sourceApplication`)),1),E(`dd`,null,b(yo(t.sourceApplication)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.sourceSession`)),1),E(`dd`,null,b(t.sourceSessionId||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.tokenUsage`)),1),E(`dd`,null,b(fo(t.tokenUsage)),1)]),t.actualModelProvider||t.actualModel?(s(),l(`div`,Jr,[E(`dt`,null,b(S(f)(`projectAgents.fields.actualModel`)),1),E(`dd`,null,[t.actualModelProvider?(s(),l(`span`,Yr,b(t.actualModelProvider),1)):T(``,!0),t.actualModelProvider&&t.actualModel?(s(),l(`span`,Xr,` · `)):T(``,!0),t.actualModel?(s(),l(`span`,Zr,b(t.actualModel),1)):T(``,!0)])])):T(``,!0),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.reportedAt`)),1),E(`dd`,null,b(an(t.createdAt)),1)])])]))),128))])],8,Hr)):T(``,!0),e.effectiveModelStrategy?(s(),l(`small`,Qr,b(S(f)(`projectAgents.fields.strategySource`))+` · `+b(e.modelStrategySource||S(f)(`projectAgents.notReported`))+` · `+b(sn(e.effectiveModelStrategy))+` · `+b(cn(e.effectiveExecutorPolicy)),1)):T(``,!0),e.routingDecision?(s(),l(`div`,$r,[E(`div`,ei,[E(`span`,null,b(S(f)(`projectAgents.fields.reportedStaffingDecision`)),1),E(`strong`,null,b(e.routingDecision.outcome||S(f)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(s(),l(`small`,ti,b(S(f)(`projectAgents.fields.coordinator`))+` · `+b(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):T(``,!0),E(`small`,null,b(S(f)(`projectAgents.fields.matchBasis`))+` · `+b(e.routingDecision.matchBasis?.join(` · `)||S(f)(`projectAgents.notReported`))+` · `+b(e.routingDecision.reason||S(f)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(s(),l(`small`,ni,b(S(f)(`projectAgents.fields.candidateAgents`))+` · `+b(e.routingDecision.candidateAgentIds.join(` · `)),1)):T(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(s(),l(`small`,ri,[w(b(S(f)(`projectAgents.fields.complexity`))+` · `+b(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(s(),l(`span`,ii,` · `+b(e.routingDecision.complexityBasis.join(` · `)),1)):T(``,!0)])):T(``,!0),S(ie)(e.routingDecision.parallelPlan)?(s(),l(`small`,ai,[w(b(S(f)(`projectAgents.fields.parallelPlan`))+` · `+b(e.routingDecision.parallelPlan?.reason||S(f)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(s(),l(`span`,oi,` · `+b(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):T(``,!0)])):T(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(s(),l(`small`,si,b(e.routingDecision.ruleId||S(f)(`projectAgents.notReported`))+` · `+b(e.routingDecision.fallback||S(f)(`projectAgents.notReported`)),1)):T(``,!0)])):T(``,!0),E(`div`,ci,[E(`span`,null,b(S(f)(`projectAgents.fields.actualExecution`)),1),no(e)?(s(),l(`strong`,li,b(no(e)?.executor||no(e)?.provider||S(f)(`projectAgents.notReported`))+` / `+b(no(e)?.model||S(f)(`projectAgents.notReported`))+` / `+b(yo(no(e)?.client)),1)):(s(),l(`span`,ui,b(S(f)(`projectAgents.detail.notReportedActualExecution`)),1)),no(e)?.rule||no(e)?.fallback?(s(),l(`small`,di,b(no(e)?.rule||S(f)(`projectAgents.notReported`))+` · `+b(no(e)?.fallback||S(f)(`projectAgents.notReported`)),1)):T(``,!0)]),e.runId?(s(),l(`small`,fi,b(S(f)(`projectAgents.fields.run`))+` · `+b(e.runId),1)):(s(),l(`small`,pi,b(S(f)(`projectAgents.detail.noRun`)),1))],8,ur)],10,sr))),128))])):Oe.value[Q.value.agentId]?T(``,!0):(s(),l(`p`,mi,b(S(f)(`projectAgents.detail.noTasks`)),1))])]),_:1},16,[`label`])]),E(`details`,hi,[E(`summary`,null,b(S(f)(`projectAgents.sections.assignments`)),1),E(`div`,gi,[u(Ot,e(xt(`assignments`),{label:St(`assignments`),onRetry:$}),{default:r(()=>[E(`section`,_i,[E(`div`,vi,[E(`h4`,null,b(S(f)(`projectAgents.sections.assignments`)),1),E(`div`,yi,[E(`span`,null,b(Wt(Q.value).length),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[9]||=e=>$t(Q.value)},b(S(f)(`projectAgents.assignmentDialog.assign`)),1)])]),Wt(Q.value).length?(s(),l(`div`,bi,[(s(!0),l(h,null,i(Wt(Q.value),e=>(s(),l(`article`,{key:e.assignmentId,class:`ui-card project-agent-assignment-card`},[E(`header`,null,[E(`strong`,null,b(Ut(e.personalProjectId)),1),E(`div`,xi,[E(`i`,{class:g([`ui-badge`,`is-${e.status}`])},b(S(f)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>$t(Q.value,e,`end`)},b(S(f)(`projectAgents.assignmentDialog.end`)),9,Si)):T(``,!0),e.status===`active`?(s(),l(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>$t(Q.value,e,`replace`)},b(S(f)(`projectAgents.assignmentDialog.replace`)),9,Ci)):T(``,!0)])]),E(`p`,null,b(e.responsibility||S(f)(`projectAgents.notReported`)),1),e.scope?(s(),l(`small`,wi,b(S(f)(`projectAgents.fields.scope`))+` · `+b(e.scope),1)):T(``,!0),E(`small`,null,b(an(e.assignedAt))+` → `+b(e.endedAt?an(e.endedAt):S(f)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(s(),l(`div`,Ti,[(s(!0),l(h,null,i(e.workKinds,e=>(s(),l(`span`,{key:e},b(e),1))),128))])):T(``,!0),E(`div`,Ei,[E(`span`,null,b(S(f)(`projectAgents.fields.assignmentModel`)),1),E(`strong`,null,b(sn(e.modelStrategyOverride))+` · `+b(cn(e.executorPolicyOverride)),1),ln(e.executorPolicyOverride)&&!to(e.executorPolicyOverride).length?(s(),l(`small`,Di,b(S(f)(`projectAgents.strategy.lockedUnavailable`)),1)):T(``,!0)]),to(e.executorPolicyOverride).length?(s(),l(`div`,Oi,[(s(!0),l(h,null,i(to(e.executorPolicyOverride),e=>(s(),l(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):T(``,!0),e.reason?(s(),l(`small`,ki,b(S(f)(`projectAgents.fields.reason`))+` · `+b(e.reason),1)):T(``,!0)]))),128))])):(s(),l(`p`,Ai,b(S(f)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16,[`label`])])]),E(`details`,ji,[E(`summary`,null,b(S(f)(`projectAgents.sections.activity`)),1),E(`div`,Mi,[u(Ot,e(xt(`activity`),{label:St(`activity`),onRetry:$}),{default:r(()=>[E(`section`,Ni,[E(`div`,Pi,[E(`h4`,null,b(S(f)(`projectAgents.sections.activity`)),1),ft.value?(s(),l(`span`,Fi,b(ft.value.days.length),1)):T(``,!0)]),ft.value?.days.length?(s(),l(`div`,Ii,[E(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":S(f)(`projectAgents.activity.aria`)},[(s(!0),l(h,null,i(ft.value.days,e=>(s(),l(`button`,{key:e.date,type:`button`,role:`listitem`,class:g([`project-agent-heat-cell`,`intensity-${Do(e,ft.value)}`,{selected:ke.value===e.date}]),"aria-label":`${on(e.date)} · ${e.total}`,"aria-pressed":ke.value===e.date,onClick:t=>Oo(e)},[E(`span`,zi,b(on(e.date))+` · `+b(e.total),1)],10,Ri))),128))],8,Li),pt.value?(s(),l(`article`,Bi,[E(`header`,null,[E(`strong`,null,b(on(pt.value.date)),1),E(`span`,null,b(pt.value.total),1)]),pt.value.tasks?.length?(s(),l(`ul`,Hi,[(s(!0),l(h,null,i(pt.value.tasks,e=>(s(),l(`li`,{key:e.taskId},[E(`strong`,null,b(e.title),1),E(`span`,null,b(_o(e.status))+` · `+b(Ut(e.personalProjectId)),1),E(`small`,null,b(e.summary||S(f)(`projectAgents.notReported`)),1)]))),128))])):(s(),l(`p`,Vi,b(S(f)(`projectAgents.activity.noTasks`)),1))])):T(``,!0)])):(s(),l(`p`,Ui,b(S(f)(`projectAgents.activity.empty`)),1))])]),_:1},16,[`label`])])]),Q.value.memoryScope===`reviewed_agent`?(s(),p(ue,{key:Q.value.agentId,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:st.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):T(``,!0),Q.value.memoryScope===`reviewed_agent`?(s(),p(Ht,{key:3,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:st.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):T(``,!0),E(`details`,Wi,[E(`summary`,null,b(S(f)(`projectAgents.profileDetails`)),1),E(`dl`,Gi,[E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.assignments`)),1),E(`dd`,null,b(Gt(Q.value).length),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.memoryScope`)),1),E(`dd`,null,b(Q.value.memoryScope??S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.status`)),1),E(`dd`,null,b(S(f)(`projectAgents.status.${Q.value.profile.status}`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.recruitment`)),1),E(`dd`,null,[w(b(yo(Q.value.recruitmentSourceApplication)),1),Q.value.recruitmentReason?(s(),l(`small`,Ki,b(Q.value.recruitmentReason),1)):T(``,!0)])]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.fields.updatedAt`)),1),E(`dd`,null,b(an(Q.value.updatedAt)),1)])])]),E(`details`,{class:`ui-disclosure project-agent-disclosure`,open:ht.value.some(e=>e.status===`awaiting_confirmation`)},[E(`summary`,null,b(S(f)(`projectAgents.sections.recruitment`)),1),E(`div`,Ji,[u(Ot,e(xt(`recruitments`),{label:St(`recruitments`),onRetry:$}),{default:r(()=>[E(`section`,Yi,[E(`div`,Xi,[E(`h4`,Zi,b(S(f)(`projectAgents.sections.recruitment`)),1),E(`span`,null,b(ht.value.length),1)]),ht.value.length?(s(),l(`div`,Qi,[(s(!0),l(h,null,i(ht.value,e=>(s(),l(`article`,{key:e.recruitmentId,class:`ui-card project-agent-recruitment-card`},[E(`header`,null,[E(`strong`,null,b(e.positionKind)+` · `+b(e.workKind||S(f)(`projectAgents.notReported`)),1),E(`div`,$i,[E(`i`,ea,b(e.status),1),e.status===`awaiting_confirmation`?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>At(e,`approve`)},[X.value===e.recruitmentId&&Pe.value===`approve`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.recruitment.approving`)},null,8,[`label`])):(s(),l(`span`,na,b(S(f)(`projectAgents.recruitment.approve`)),1))],8,ta)):T(``,!0),e.status===`awaiting_confirmation`?(s(),l(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>At(e,`cancel`)},[X.value===e.recruitmentId&&Pe.value===`cancel`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.recruitment.cancelling`)},null,8,[`label`])):(s(),l(`span`,ia,b(S(f)(`projectAgents.recruitment.cancel`)),1))],8,ra)):T(``,!0)])]),E(`dl`,aa,[E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.hr`)),1),E(`dd`,null,b(e.hrAgentId||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.trigger`)),1),E(`dd`,null,b(yo(e.triggerSourceApplication)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.reason`)),1),E(`dd`,null,b(e.reason||e.reasonCode||S(f)(`projectAgents.notReported`)),1)]),E(`div`,null,[E(`dt`,null,b(S(f)(`projectAgents.recruitment.time`)),1),E(`dd`,null,b(an(e.fulfilledAt||e.createdAt)),1)])]),E(`small`,null,b(S(f)(`projectAgents.recruitment.testSource`))+` · `+b(e.testSource||S(f)(`projectAgents.notReported`)),1)]))),128))])):(s(),l(`p`,oa,b(S(f)(`projectAgents.recruitment.empty`)),1))])]),_:1},16,[`label`])])],8,qi),(s(),l(`details`,{key:`advanced:${Q.value.agentId}`,class:`ui-disclosure project-agent-disclosure`,"data-agent-advanced":``},[E(`summary`,null,b(S(f)(`projectAgents.advanced`)),1),E(`div`,sa,[u(Ot,e(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:r(()=>[E(`section`,ca,[E(`div`,la,[E(`h4`,null,b(S(f)(`projectAgents.sections.strategy`)),1),E(`span`,null,b(sn(Q.value.profile.defaultModelStrategy))+` · `+b(cn(Q.value.profile.executorPolicy)),1)]),E(`p`,ua,b(S(f)(`projectAgents.strategy.providerNeutral`)),1),to(Q.value.profile.executorPolicy).length?(s(),l(`div`,da,[(s(!0),l(h,null,i(to(Q.value.profile.executorPolicy),e=>(s(),l(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):ln(Q.value.profile.executorPolicy)?(s(),l(`p`,fa,b(S(f)(`projectAgents.strategy.lockedUnavailable`)),1)):(s(),l(`p`,pa,b(S(f)(`projectAgents.strategy.noAllowList`)),1)),E(`div`,ma,[E(`button`,{class:`quiet-button`,type:`button`,onClick:n[10]||=e=>Mt()},b(S(f)(`projectAgents.routing.addExecutor`)),1)]),Q.value.executorDirectory?.length?(s(),l(`div`,ha,[(s(!0),l(h,null,i(Q.value.executorDirectory,e=>(s(),l(`div`,{key:e.executorId,class:`project-agent-executor-row`},[E(`strong`,null,b(e.displayName||e.label||e.executorId),1),E(`span`,null,b(e.provider||S(f)(`projectAgents.notReported`))+` / `+b(e.model||S(f)(`projectAgents.notReported`)),1),E(`span`,null,b(e.globalPriority??S(f)(`projectAgents.notReported`)),1),E(`small`,null,b(e.registrationStatus||S(f)(`projectAgents.notReported`))+` · `+b(e.permissionStatus||S(f)(`projectAgents.notReported`))+` · `+b(e.preflightStatus||S(f)(`projectAgents.strategy.availabilityUnreported`))+` · `+b(e.healthStatus||S(f)(`projectAgents.notReported`)),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:t=>Mt(e)},b(S(f)(`projectAgents.routing.editExecutor`)),9,ga),e.permissionStatus===`authorized`?(s(),l(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Fe.value,onClick:t=>jt(e,`revoked`)},[Fe.value===e.executorId&&Ie.value===`revoke`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.routing.revoking`)},null,8,[`label`])):(s(),l(`span`,ba,b(S(f)(`projectAgents.routing.revoke`)),1))],8,ya)):(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Fe.value,onClick:t=>jt(e,`authorized`)},[Fe.value===e.executorId&&Ie.value===`authorize`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.routing.authorizing`)},null,8,[`label`])):(s(),l(`span`,va,b(S(f)(`projectAgents.routing.authorize`)),1))],8,_a))]))),128))])):T(``,!0)])]),_:1},16,[`label`])]),E(`div`,xa,[u(Ot,e(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:r(()=>[E(`section`,Sa,[E(`div`,Ca,[E(`h4`,null,b(S(f)(`projectAgents.sections.clients`)),1),E(`span`,null,b(bo(Q.value).length),1)]),bo(Q.value).length?(s(),l(`div`,wa,[(s(!0),l(h,null,i(bo(Q.value),e=>(s(),l(`div`,{key:e,class:`project-agent-client-row`},[E(`strong`,null,b(yo(e)),1),E(`span`,null,b(xo(Q.value,e)?.allowed||Q.value.profile.allowedClients?.includes(e)?S(f)(`projectAgents.clients.allowed`):S(f)(`projectAgents.clients.notAllowed`)),1),So(Q.value,e)?(s(),l(`span`,Ta,b(S(f)(`projectAgents.clients.observed`,{count:So(Q.value,e)})),1)):Q.value.observedClients?.includes(e)?(s(),l(`span`,Ea,b(S(f)(`projectAgents.clients.observedAny`)),1)):(s(),l(`span`,Da,b(S(f)(`projectAgents.clients.unreported`)),1)),E(`small`,null,b(xo(Q.value,e)?.integrationStatus||S(f)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(s(),l(`p`,Oa,b(S(f)(`projectAgents.clients.empty`)),1))])]),_:1},16,[`label`])]),E(`div`,ka,[u(Ot,e(xt(`routingRules`),{label:St(`routingRules`),onRetry:$}),{default:r(()=>[E(`section`,Aa,[E(`div`,ja,[E(`h4`,null,b(S(f)(`projectAgents.sections.routing`)),1),E(`div`,Ma,[E(`span`,null,b(Q.value.routingRules?.length??0),1),E(`button`,{class:`quiet-button`,type:`button`,onClick:n[11]||=e=>Nt()},b(S(f)(`projectAgents.routing.addRule`)),1)])]),Q.value.routingRules?.length?(s(),l(`div`,Na,[(s(!0),l(h,null,i(Q.value.routingRules,e=>(s(),l(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[E(`strong`,null,b(e.scope)+` · `+b(e.priority),1),E(`span`,null,b(e.workKind||e.reason||S(f)(`projectAgents.notReported`))+` · `+b(e.executorIds?.join(`, `)||S(f)(`projectAgents.notReported`)),1),e.enabled?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>zt(e)},[X.value===`rule:${e.ruleId}`&&Pe.value===`disable`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.routing.disabling`)},null,8,[`label`])):(s(),l(`span`,Fa,b(S(f)(`projectAgents.routing.disable`)),1))],8,Pa)):T(``,!0)]))),128))])):(s(),l(`p`,Ia,b(S(f)(`projectAgents.routing.empty`)),1)),E(`small`,La,b(S(f)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16,[`label`])]),E(`div`,Ra,[u(Ot,e(xt(`learning`),{label:St(`learning`),onRetry:$}),{default:r(()=>[E(`section`,za,[E(`div`,Ba,[E(`h4`,null,b(S(f)(`projectAgents.sections.learning`)),1),E(`span`,null,b(mt.value.length),1)]),mt.value.length?(s(),l(`div`,Va,[(s(!0),l(h,null,i(mt.value,([e,t])=>(s(),l(`article`,{key:e,class:`ui-card project-agent-learning-card`},[E(`header`,null,[E(`strong`,null,b(e),1),E(`i`,Ha,b(wo(t)),1)]),t.personalProjectId||t.workKind||t.executor||t.modelStrategy?(s(),l(`small`,Ua,b(Ut(t.personalProjectId))+` · `+b(t.workKind||S(f)(`projectAgents.notReported`))+` · `+b(t.executor||S(f)(`projectAgents.notReported`))+` / `+b(t.modelStrategy?sn(t.modelStrategy):S(f)(`projectAgents.notReported`)),1)):T(``,!0),E(`p`,null,b(S(f)(`projectAgents.learning.samples`,{count:t.sampleCount}))+` · `+b(S(f)(`projectAgents.learning.recent`,{count:To(t)})),1),E(`small`,null,b(t.decayBasis||S(f)(`projectAgents.learning.decayUnreported`))+` · `+b(an(t.updatedAt)),1),t.outcomes?(s(),l(`div`,Wa,[(s(!0),l(h,null,i(t.outcomes,(e,t)=>d((s(),l(`span`,{key:t},b(t)+` · `+b(e??S(f)(`projectAgents.notReported`)),1)),[[x,e!==void 0]])),128)),t.score!==null&&t.score!==void 0?(s(),l(`span`,Ga,b(S(f)(`projectAgents.learning.score`,{score:Eo(t)})),1)):T(``,!0)])):T(``,!0),t.evidence?.length?(s(),l(`ul`,Ka,[(s(!0),l(h,null,i(t.evidence,e=>(s(),l(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[E(`span`,null,b(e.kind)+` · `+b(e.count??0)+` · `+b(e.summary||S(f)(`projectAgents.notReported`)),1),e.evidenceId?(s(),l(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!je.value,onClick:n=>kt(t,`ignore`,e.evidenceId)},[je.value===e.evidenceId&&Me.value===`ignore`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.learning.ignoring`)},null,8,[`label`])):(s(),l(`span`,Ja,b(S(f)(`projectAgents.learning.ignore`)),1))],8,qa)):T(``,!0)]))),128))])):T(``,!0),t.learningKey?(s(),l(`div`,Ya,[E(`button`,{class:`quiet-button`,type:`button`,disabled:!!je.value||!t.personalProjectId||!t.workKind||!t.executor,onClick:e=>kt(t,`reset`)},[je.value===t.learningKey&&Me.value===`reset`?(s(),p(N,{key:0,variant:`inline`,label:S(f)(`projectAgents.learning.resetting`)},null,8,[`label`])):(s(),l(`span`,Za,b(S(f)(`projectAgents.learning.reset`)),1))],8,Xa)])):T(``,!0)]))),128))])):(s(),l(`p`,Qa,b(S(f)(`projectAgents.learning.empty`)),1)),E(`small`,$a,b(S(f)(`projectAgents.learning.note`)),1)])]),_:1},16,[`label`])])]))],8,zn)):(s(),l(`div`,eo,b(S(f)(`projectAgents.detail.choose`)),1))])):(s(),l(`div`,Dn,[E(`strong`,null,b(S(f)(`projectAgents.noMatchTitle`)),1),E(`p`,null,b(S(f)(`projectAgents.noMatchCopy`)),1)])):(s(),l(`div`,Tn,[E(`strong`,null,b(S(f)(`projectAgents.emptyTitle`)),1),E(`p`,null,b(S(f)(`projectAgents.emptyCopy`)),1),E(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:Yt},b(S(f)(`projectAgents.add`)),9,En)])),u(un,{open:le.value,agent:J.value,projects:Ge.value,"default-project-id":dt.value,"personal-space-id":Z.value,onClose:Qt,onSaved:rn},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),u(Ne,{open:Ce.value,agent:J.value,assignment:Te.value,action:we.value,projects:Ge.value,"available-agents":P.value,"default-project-id":dt.value,onClose:en,onSaved:tn,onChanged:nn},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),u(it,{open:Le.value,mode:Re.value,"personal-space-id":Z.value,executor:ze.value,rule:Be.value,projects:Ge.value,"available-executors":Q.value?.executorDirectory??[],onClose:Pt,onSaved:Rt},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,dn))}}),[[`__scopeId`,`data-v-394b82e3`]]);export{to as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,E as t,I as ee,M as n,N as te,P as r,Q as i,S as a,U as ne,a as o,f as re,g as s,h as c,it as l,j as u,m as d,ot as f,rt as p,v as m,w as h,x as g,y as _,z as v}from"./i18n-
|
|
1
|
+
import{B as e,E as t,I as ee,M as n,N as te,P as r,Q as i,S as a,U as ne,a as o,f as re,g as s,h as c,it as l,j as u,m as d,ot as f,rt as p,v as m,w as h,x as g,y as _,z as v}from"./i18n-oJFlt8hW.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";var b={class:`project-scope-heading`},x=[`id`],ie={key:0,class:`project-scope-count`,role:`status`},S=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],C={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},w=[`id`],ae={key:1,class:`project-scope-multiple`},oe=[`id`,`aria-labelledby`],se=[`placeholder`,`aria-label`,`disabled`],ce={class:`project-scope-bulk`},T={class:`project-scope-option project-scope-all`},E=[`checked`,`indeterminate`,`disabled`],D=[`disabled`],O=[`disabled`],k={class:`project-scope-list`},A=[`value`,`checked`,`disabled`,`onChange`],j={key:0,class:`project-scope-project-id`},M={key:0,class:`project-scope-empty`},N={key:0,class:`project-scope-footer`},P={role:`status`},F={key:1,class:`project-scope-hint`},I={key:2,class:`project-scope-hint`},L=y(t({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean},allLabel:{},showCount:{type:Boolean},resettable:{type:Boolean}},emits:[`update:modelValue`,`reset`],setup(t,{emit:y}){let L=t,R=y,z=i(null),B=i(null),V=i(null),H=i(!1),U=i(``),W=`employee-projects-${v().replace(/[^a-zA-Z0-9_-]/g,``)}`,G=m(()=>new Set(L.modelValue)),K=m(()=>L.projects.filter(e=>G.value.has(e.id)).length),q=m(()=>L.projects.length>0&&K.value===L.projects.length),le=m(()=>L.label??o(`employees.scope.label`)),J=m(()=>{let e=new Map;for(let t of L.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),ue=m(()=>{let e=L.projects.find(e=>G.value.has(e.id));return e?`${e.name}${J.value.has(e.name)?` · ${e.id}`:``}`:``}),de=m(()=>L.showCount?o(`employees.scope.count`,{selected:K.value,total:L.projects.length}):q.value?L.allLabel??o(`employees.scope.allSummary`,{count:K.value}):K.value===1?ue.value:K.value?o(`employees.scope.selected`,{count:K.value}):L.emptyLabel??o(`employees.unassigned`)),Y=m(()=>{let e=U.value.trim().toLocaleLowerCase();return L.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});e(()=>L.disabled,e=>{e&&X()}),te(()=>document.addEventListener(`pointerdown`,Z)),n(()=>document.removeEventListener(`pointerdown`,Z));async function fe(){if(!L.disabled){if(H.value){X();return}U.value=``,H.value=!0,await u(),V.value?.focus()}}function X(e=!1){H.value=!1,e&&u(()=>B.value?.focus())}function Z(e){H.value&&!z.value?.contains(e.target)&&X()}function Q(e){e.relatedTarget&&!z.value?.contains(e.relatedTarget)&&X()}function pe(e){H.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),X(!0))}function $(e){L.disabled||R(`update:modelValue`,e)}function me(){$(q.value?[]:L.projects.map(e=>e.id))}function he(){$(L.projects.filter(e=>!G.value.has(e.id)).map(e=>e.id))}function ge(e){let t=new Set(L.modelValue);t.has(e)?t.delete(e):t.add(e),$(L.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,n)=>(r(),a(`div`,{ref_key:`root`,ref:z,class:l([`project-scope-picker`,{"is-inline":t.inline,"is-compact":t.compact,"has-count":t.showCount}]),onFocusout:Q,onKeydown:pe},[_(`div`,b,[_(`span`,{id:`${W}-label`,class:`project-scope-label`},f(le.value),9,x),t.inline?(r(),a(`span`,ie,f(p(o)(`employees.scope.count`,{selected:K.value,total:t.projects.length})),1)):g(``,!0)]),t.inline?g(``,!0):(r(),a(`button`,{key:0,ref_key:`trigger`,ref:B,type:`button`,class:`project-scope-trigger`,disabled:t.disabled,"aria-expanded":H.value,"aria-controls":`${W}-panel`,"aria-labelledby":`${W}-label ${W}-value`,onClick:fe},[t.compact?(r(),a(`svg`,C,[...n[4]||=[_(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):g(``,!0),_(`span`,{id:`${W}-value`,class:`project-scope-value`},f(de.value),9,w),t.compact&&!t.showCount?(r(),a(`small`,ae,f(p(o)(`employees.scope.multiple`)),1)):g(``,!0),n[5]||=_(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[_(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,S)),t.inline||H.value?(r(),a(`div`,{key:1,id:`${W}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${W}-label`},[ne(_(`input`,{ref_key:`search`,ref:V,"onUpdate:modelValue":n[0]||=e=>U.value=e,type:`search`,class:`project-scope-search`,placeholder:p(o)(`employees.scope.search`),"aria-label":p(o)(`employees.scope.search`),disabled:t.disabled,onKeydown:n[1]||=d(c(()=>{},[`prevent`]),[`enter`])},null,40,se),[[re,U.value]]),_(`div`,ce,[_(`label`,T,[_(`input`,{type:`checkbox`,checked:q.value,indeterminate:K.value>0&&!q.value,disabled:t.disabled||!t.projects.length,onChange:me},null,40,E),_(`span`,null,[h(f(t.allLabel??p(o)(`employees.scope.all`))+` `,1),_(`small`,null,f(t.projects.length),1)])]),_(`button`,{type:`button`,disabled:t.disabled||!t.projects.length,onClick:he},f(p(o)(`employees.scope.invert`)),9,D),t.resettable?(r(),a(`button`,{key:0,class:`project-scope-reset`,type:`button`,disabled:t.disabled,onClick:n[2]||=e=>R(`reset`)},f(p(o)(`employees.scope.reset`)),9,O)):g(``,!0)]),_(`div`,k,[(r(!0),a(s,null,ee(Y.value,e=>(r(),a(`label`,{key:e.id,class:l([`project-scope-option`,{"is-selected":G.value.has(e.id)}])},[_(`input`,{type:`checkbox`,value:e.id,checked:G.value.has(e.id),disabled:t.disabled,onChange:t=>ge(e.id)},null,40,A),_(`span`,null,[h(f(e.name),1),J.value.has(e.name)?(r(),a(`small`,j,f(e.id),1)):g(``,!0)])],2))),128)),Y.value.length?g(``,!0):(r(),a(`p`,M,f(p(o)(t.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),t.inline?g(``,!0):(r(),a(`div`,N,[_(`span`,P,f(p(o)(`employees.scope.count`,{selected:K.value,total:t.projects.length})),1),_(`button`,{type:`button`,onClick:n[3]||=e=>X(!0)},f(p(o)(`employees.scope.done`)),1)])),t.compact&&t.hint?(r(),a(`p`,F,f(t.hint),1)):g(``,!0)],8,oe)):g(``,!0),!t.compact&&t.hint!==``?(r(),a(`p`,I,f(t.hint??p(o)(`employees.scope.snapshotHint`)),1)):g(``,!0)],34))}}),[[`__scopeId`,`data-v-ba5341fd`]]);export{L as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as e,H as t,I as n,M as r,P as i,Q as a,S as o,T as s,U as ee,a as c,b as l,f as te,g as u,h as ne,it as re,n as ie,ot as d,rt as f,v as p,w as m,x as h,y as g}from"./i18n-oJFlt8hW.js";import{t as ae}from"./console-Cw7TzOSC.js";import{a as _,n as v,r as y,s as oe}from"./client-DnwnUBQV.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as x}from"./UiButton-x8hiHNRM.js";import{h as se}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as S}from"./UiDialog-mjletK0y.js";import{t as C}from"./UiSelect-K29jnV-1.js";import{t as ce}from"./paths-CDREouhi.js";import{r as w,t as T}from"./identity-DSGS4CZc.js";var le={class:`view`},ue={class:`space-heading public-space-heading`},de=[`aria-label`],fe={class:`project-grid`},pe={class:`project-card-heading`},me={class:`project-card-heading-actions`},he=[`onClick`],ge={class:`completion-badge`},_e={class:`project-purpose`},ve={class:`evidence-row`},ye={key:0,class:`muted`},be={class:`project-access`},xe={class:`muted`},Se={key:0,class:`project-release-meta`},Ce={class:`project-card-footer`},we=[`onClick`],Te=[`onClick`],Ee={key:0,class:`empty-state project-empty`},De={class:`project-section`},Oe={class:`section-toolbar compact-toolbar relation-section-toolbar`},ke=[`disabled`],Ae={key:0,class:`muted`},je={class:`compact-relation-preview`,"aria-live":`polite`},Me={key:0},Ne={key:1},Pe={class:`primary-action`,type:`submit`},Fe={class:`project-latest-release`},Ie={key:0},Le={key:1,class:`ui-muted`},Re={class:`project-detail-columns`},ze={key:1,class:`ui-muted`},Be={key:0,class:`ui-muted`},Ve={key:1,class:`ui-muted`},He={class:`public-project-dialog-note`},Ue={class:`ui-field`},We=[`disabled`],Ge={class:`public-project-dialog-note`},Ke=`fuli-workspace-v1`,E=b(e({__name:`PublicProjectsPage`,setup(e){let b=ae(),E=se(),D=a(null),O=a([]),k=a([]),A=a(!1),j=a(!1),M=a(``),N=a(``),P=a(`RELATED_TO`),F=a(null),I=a(``),L=a(!1),R=a(``),z=0,B=null,V=p(()=>b.state?.projects??[]),qe=p(()=>b.state?.providers?.workspaces??[]),H=p(()=>new Set((b.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),U=p(()=>V.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),W=p(()=>U.value.filter(({providerUrl:e})=>J(e))),Je=p(()=>W.value.map(e=>({value:e.id,label:e.name,meta:`#${T(e.id,26)}`,search:w(e.id)}))),Ye=p(()=>{let e=V.value.find(({id:e})=>e===M.value);return!e||!J(e.providerUrl)?[]:V.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&J(n))}),Xe=p(()=>Ye.value.map(e=>({value:e.id,label:e.name,meta:`#${T(e.id,26)}`,search:w(e.id)}))),Ze=p(()=>V.value.find(({id:e})=>e===M.value)??null),Qe=p(()=>V.value.find(({id:e})=>e===N.value)??null),$e=p(()=>K.value.find(({value:e})=>e===P.value)?.label??c(`pages.publicProjects.relationLabels.relatedTo`)),et=p(()=>D.value?J(D.value.providerUrl):!1),G=p(()=>!!(F.value&&I.value===F.value.name)),K=p(()=>[{value:`PART_OF`,label:c(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:c(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:c(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:c(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:c(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:c(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:c(`pages.publicProjects.relationLabels.relatedTo`)}]);function q(e){return`${e.providerUrl}::${e.id}`}function J(e){return qe.value.find(({providerUrl:t})=>t===e)?.protocol!==Ke}function Y(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||c(`pages.publicProjects.fallbackDescription`)}async function X(e){try{if(H.value.has(q(e))){let t=new URLSearchParams({personalSpaceId:b.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await v(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),b.notify(c(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:b.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),b.notify(c(`pages.publicProjects.subscribed`,{name:e.name}));await b.refresh()}catch(e){b.reportError(e)}}async function tt(e){if(Q(),D.value=e,O.value=[],k.value=[],!J(e.providerUrl))return;let t=++z,n=new AbortController;B=n,A.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([y(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),y(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==z||n.signal.aborted)return;O.value=i.releases??[],k.value=a.relations??[]}catch(e){if(t!==z||n.signal.aborted)return;b.reportError(e)}finally{if(t!==z||n.signal.aborted)return;A.value=!1,B===n&&(B=null)}}async function nt(e){Q(),await E.push(ce(`public`,e.id,`graph`))}function Z(){z+=1,B?.abort(),B=null,A.value=!1}function Q(){Z(),D.value=null,O.value=[],k.value=[]}function rt(e){J(e.providerUrl)&&(F.value=e,I.value=``,R.value=``)}function it(){L.value||(F.value=null,I.value=``,R.value=``)}async function at(){let e=F.value;if(!e||!G.value){R.value=c(`pages.publicProjects.deleteNameRequired`);return}if(!J(e.providerUrl)){R.value=c(`pages.publicProjects.providerOperationsUnavailable`);return}L.value=!0,R.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await v(`/api/projects/${encodeURIComponent(e.id)}?${t}`),D.value=null,F.value=null,b.notify(c(`pages.publicProjects.deleted`,{name:e.name})),await b.refresh()}catch(e){R.value=e instanceof Error?e.message:c(`pages.publicProjects.deleteFailed`),b.reportError(e)}finally{L.value=!1}}async function ot(){let e=V.value.find(({id:e})=>e===M.value),t=V.value.find(({id:e})=>e===N.value);if(!e||!t){b.reportError(Error(c(`pages.publicProjects.chooseRelationProjects`)));return}if(!J(e.providerUrl)){b.reportError(Error(c(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:P.value,note:null}),j.value=!1,M.value=``,N.value=``,b.notify(P.value===`PART_OF`?c(`pages.publicProjects.parentRelationSubmitted`):c(`pages.publicProjects.relationCreated`))}catch(e){b.reportError(e)}}r(Z);function $(e){return e?new Date(e).toLocaleString(ie()):c(`pages.publicProjects.timeNotRecorded`)}return(e,r)=>(i(),o(`section`,le,[g(`div`,ue,[r[7]||=g(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-public-project`})],-1),g(`div`,null,[g(`p`,null,d(f(c)(`pages.publicProjects.intro`)),1)]),g(`div`,{class:`public-space-stats`,"aria-label":f(c)(`pages.publicProjects.overviewAria`)},[g(`span`,null,[g(`strong`,null,d(V.value.length),1),m(d(f(c)(`pages.publicProjects.discoverable`)),1)]),g(`span`,null,[g(`strong`,null,d(f(b).state?.subscriptions.length??0),1),m(d(f(c)(`pages.publicProjects.subscribedCount`)),1)])],8,de)]),g(`div`,fe,[(i(!0),o(u,null,n(V.value,e=>(i(),o(`article`,{key:q(e),class:`project-card`},[g(`div`,pe,[g(`div`,null,[g(`h4`,null,d(e.name),1)]),g(`div`,me,[e.can_manage&&J(e.providerUrl)?(i(),o(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>rt(e)},d(f(c)(`pages.publicProjects.manage`)),9,he)):h(``,!0),g(`div`,ge,[g(`strong`,null,d(e.profile?.assessment?.score??`—`),1),g(`span`,null,d(e.profile?.assessment?f(c)(`pages.publicProjects.coverage`):f(c)(`pages.publicProjects.noSummary`)),1)])])]),g(`p`,_e,d(Y(e)),1),g(`div`,ve,[(i(!0),o(u,null,n(e.profile?.sources??[],(e,t)=>(i(),o(`span`,{key:t,class:`status-chip`},d(e.kind??f(c)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?h(``,!0):(i(),o(`span`,ye,d(f(c)(`pages.publicProjects.noSources`)),1))]),g(`div`,be,[g(`span`,{class:re([`status-chip`,{owner:e.isOwner}])},d(e.isOwner?`Owner`:e.role??`Reader`),3),g(`span`,xe,d(e.isOwner?f(c)(`pages.publicProjects.publishedByYou`):f(c)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&J(e.providerUrl)?(i(),o(`span`,Se,[g(`strong`,null,d(e.current_release.version),1),g(`span`,null,d($(e.current_release.published_at)),1)])):h(``,!0)]),g(`footer`,Ce,[g(`button`,{class:`secondary-action`,type:`button`,onClick:t=>X(e)},d(H.value.has(q(e))?f(c)(`pages.publicProjects.unsubscribe`):f(c)(`pages.publicProjects.subscribe`)),9,we),g(`button`,{class:`primary-action`,type:`button`,onClick:t=>tt(e)},d(f(c)(`common.actions.viewDetails`)),9,Te)])]))),128)),V.value.length?h(``,!0):(i(),o(`div`,Ee,d(f(c)(`pages.publicProjects.noProjects`)),1))]),g(`section`,De,[g(`div`,Oe,[g(`div`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.relationsTitle`)),1)]),g(`button`,{class:`primary-action`,type:`button`,disabled:!W.value.length,onClick:r[0]||=e=>j.value=!j.value},d(f(c)(`pages.publicProjects.addRelation`)),9,ke)]),U.value.length&&!W.value.length?(i(),o(`p`,Ae,d(f(c)(`pages.publicProjects.providerOperationsUnavailable`)),1)):h(``,!0),j.value?(i(),o(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(ot,[`prevent`])},[g(`label`,null,[m(d(f(c)(`pages.publicProjects.sourceProject`))+` `,1),s(C,{modelValue:M.value,"onUpdate:modelValue":r[1]||=e=>M.value=e,options:Je.value,label:f(c)(`pages.publicProjects.sourceProjectLabel`),placeholder:f(c)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:r[2]||=e=>N.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),g(`label`,null,[m(d(f(c)(`pages.publicProjects.relation`))+` `,1),s(C,{modelValue:P.value,"onUpdate:modelValue":r[3]||=e=>P.value=e,options:K.value,label:f(c)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),g(`label`,null,[m(d(f(c)(`pages.publicProjects.targetProject`))+` `,1),s(C,{modelValue:N.value,"onUpdate:modelValue":r[4]||=e=>N.value=e,options:Xe.value,label:f(c)(`pages.publicProjects.targetProjectLabel`),placeholder:f(c)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),g(`div`,je,[g(`span`,null,d(f(c)(`pages.publicProjects.preview`)),1),g(`strong`,null,d(Ze.value?.name||f(c)(`pages.publicProjects.sourceProject`))+` `+d($e.value)+` `+d(Qe.value?.name||f(c)(`pages.publicProjects.targetProject`)),1),P.value===`PART_OF`?(i(),o(`p`,Me,d(f(c)(`pages.publicProjects.parentConfirmation`)),1)):(i(),o(`p`,Ne,d(f(c)(`pages.publicProjects.relationBoundary`)),1))]),g(`button`,Pe,d(f(c)(`pages.publicProjects.addRelation`)),1)],32)):h(``,!0)]),D.value?(i(),l(S,{key:0,open:``,class:`public-project-details`,size:`lg`,title:D.value.name,description:Y(D.value),onClose:Q},{footer:t(()=>[g(`span`,He,d(f(c)(`pages.publicProjects.contentManagementSeparated`)),1),s(x,{variant:`primary`,onClick:r[5]||=e=>nt(D.value)},{default:t(()=>[m(d(f(c)(`pages.publicProjects.viewGraph`)),1)]),_:1})]),default:t(()=>[et.value?(i(),o(u,{key:0},[g(`section`,Fe,[g(`h3`,null,d(f(c)(`pages.publicProjects.latestRelease`)),1),D.value.current_release?(i(),o(`p`,Ie,[g(`strong`,null,d(D.value.current_release.version),1),m(` · `+d($(D.value.current_release.published_at)),1)])):(i(),o(`p`,Le,d(f(c)(`pages.publicProjects.noRelease`)),1))]),g(`div`,Re,[g(`section`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.releaseHistory`)),1),A.value?(i(),l(oe,{key:0,variant:`compact`,label:f(c)(`pages.publicProjects.loading`)},null,8,[`label`])):h(``,!0),(i(!0),o(u,null,n(O.value,e=>(i(),o(`article`,{key:e.version,class:`project-release-item`},[g(`strong`,null,d(e.version),1),g(`p`,null,d(e.update_summary),1),g(`small`,null,d($(e.published_at)),1)]))),128)),!A.value&&!O.value.length?(i(),o(`p`,ze,d(f(c)(`pages.publicProjects.noReleaseHistory`)),1)):h(``,!0)]),g(`section`,null,[g(`h3`,null,d(f(c)(`pages.publicProjects.relationsTitle`)),1),(i(!0),o(u,null,n(k.value,e=>(i(),o(`article`,{key:e.id,class:`project-detail-relation`},[g(`strong`,null,d(e.relation_type),1),g(`small`,null,d(e.status??`active`),1)]))),128)),!A.value&&!k.value.length?(i(),o(`p`,Be,d(f(c)(`pages.publicProjects.noRelations`)),1)):h(``,!0)])])],64)):(i(),o(`p`,Ve,d(f(c)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1))]),_:1},8,[`title`,`description`])):h(``,!0),F.value?(i(),l(S,{key:1,open:``,class:`public-project-deletion`,size:`sm`,busy:L.value,error:R.value,title:f(c)(`pages.publicProjects.deleteTitle`),description:f(c)(`pages.publicProjects.deleteCopy`),onClose:it},{footer:t(()=>[g(`span`,Ge,d(f(c)(`pages.publicProjects.deleteWarning`)),1),s(x,{variant:`danger`,disabled:!G.value,busy:L.value,"busy-label":f(c)(`pages.publicProjects.deleting`),onClick:at},{default:t(()=>[m(d(f(c)(`pages.publicProjects.deletePermanently`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])]),default:t(()=>[g(`label`,Ue,[g(`span`,null,[m(d(f(c)(`pages.publicProjects.enterFullName`))+` `,1),g(`strong`,null,d(F.value.name),1)]),ee(g(`input`,{"onUpdate:modelValue":r[6]||=e=>I.value=e,autocomplete:`off`,disabled:L.value},null,8,We),[[te,I.value]])])]),_:1},8,[`busy`,`error`,`title`,`description`])):h(``,!0)]))}}),[[`__scopeId`,`data-v-df9baf3c`]]);export{E as default};
|