fuli-context 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +17 -43
  2. package/README.zh-CN.md +14 -40
  3. package/dist/web/assets/{ProjectAgentsPage-CQemHFxy.js → ProjectAgentsPage-CPgKVLgg.js} +1 -1
  4. package/dist/web/assets/{ProjectAgentsPage-BgQLIpxg.css → ProjectAgentsPage-DeuRkMp1.css} +1 -1
  5. package/dist/web/assets/RoundtablesPage-C9dXfWCl.js +2 -0
  6. package/dist/web/assets/{index-UygXwZDZ.js → index-ulISYH02.js} +3 -3
  7. package/dist/web/index.html +1 -1
  8. package/docs/roundtable.md +46 -0
  9. package/graph-provider/pyproject.toml +1 -1
  10. package/npm-shrinkwrap.json +2 -2
  11. package/package.json +2 -4
  12. package/skills/capturing-session-knowledge/SKILL.md +1 -1
  13. package/src/agents/claude-code/lifecycle-hook.js +6 -19
  14. package/src/agents/codex/lifecycle-hook.js +51 -27
  15. package/src/agents/codex/token-usage.js +235 -0
  16. package/src/agents/cursor/lifecycle-hook.js +3 -9
  17. package/src/agents/token-usage-resolver.js +147 -0
  18. package/src/graphiti/federated-application.js +5 -1
  19. package/src/graphiti/project-agent-mapping.js +1 -1
  20. package/src/graphiti/project-agent-workflows.js +6 -1
  21. package/src/mcp/instructions.js +1 -1
  22. package/src/mcp/session-id.js +1 -1
  23. package/src/mcp/tool-annotations.js +3 -1
  24. package/src/roundtables/domain.js +3 -3
  25. package/src/roundtables/http-router.js +5 -3
  26. package/src/roundtables/mcp-server.js +15 -8
  27. package/src/roundtables/profiles.js +84 -0
  28. package/src/roundtables/service.js +86 -2
  29. package/src/roundtables/store.js +4 -0
  30. package/src/roundtables/tool-contract.js +22 -5
  31. package/dist/web/assets/RoundtablesPage-ByVeZlgC.js +0 -2
  32. package/docs/roundtable-beta-testing.md +0 -102
  33. package/docs/roundtable-beta-validation.md +0 -133
  34. package/docs/roundtable-research.md +0 -142
package/README.md CHANGED
@@ -59,7 +59,7 @@ For a one-off task, this source version also supports an isolated **temporary pr
59
59
  connected client to coordinate the task with Fuli even when no registered project matches. Fuli
60
60
  retains its task history and follows the existing Agent recruitment and executor permissions.
61
61
  Reading preferences alone creates nothing. An ambiguous project still needs a choice.
62
- This behavior is included in the `0.9.0-beta.2` prerelease.
62
+ This behavior is available in the stable release.
63
63
 
64
64
  The Agent directory now explains the first-task entry, and task details distinguish assignment
65
65
  from actual worker reports. A completion table appears only after real execution is reported;
@@ -70,60 +70,34 @@ an assigned Agent or an ordinary local conversation alone is not worker evidence
70
70
  [Cross-client acceptance](acceptance/cross-client-handoff.md) · [Contribute](CONTRIBUTING.md) ·
71
71
  [Report an issue](https://github.com/JevonsCode/fuli/issues/new/choose)
72
72
 
73
- ## Agent Roundtable (Beta)
73
+ ## Agent Roundtable
74
74
 
75
- The [validation record](docs/roundtable-beta-validation.md) includes a genuine seven-turn Codex run, an independently verified file and an explicit review result. Physical multi-computer and external service checks remain separate.
75
+ Give independent agents one shared goal and a place to find teammates, discuss proposals,
76
+ handoff work, implement and review results. Roundtable is part of the stable Fuli release.
76
77
 
77
- Give independent agents one shared goal, discuss proposals, hand work to implementers, and review
78
- the result before accepting delivery. Fuli keeps lasting identity and scoped knowledge; the
79
- roundtable keeps this collaboration's messages, turns, task dependencies, dissent and receipts.
80
- Workers run on the participants' own computers and pull only their authorized turns.
81
-
82
- | Product layer | Availability | Responsibility |
83
- | --- | --- | --- |
84
- | Identity and knowledge | Available | Persistent agent roles, relevant context, project scope, provenance and temporal history |
85
- | Roundtable coordination | Beta | Discussion, planning, implementation, review, synthesis and explicit human acceptance |
86
- | Runtime adapters | Beta | Codex CLI, Claude Code CLI, Pi with local Ollama, active MCP participation and xAI API; A2A is experimental within supported protocol paths |
87
- | Delivery across computers | Beta | One coordinator, revocable seat invitations, participant workers and actual execution receipts |
88
- | Closed platforms and always-on cloud hosting | Planned | Require separate callable integrations and operational verification |
89
-
90
- Start a standalone coordinator, then open `http://127.0.0.1:3738/roundtables`:
78
+ Once connected with a seat invitation, an AI can discover the workflow, introduce its
79
+ responsibilities and capabilities, find peers, and send addressed questions or handoffs.
80
+ The tools describe their own inputs and next steps. Profiles and messages stay visible to the
81
+ room; execution permissions remain attached to each seat.
91
82
 
92
83
  ```bash
93
- npm install -g fuli-context@beta
84
+ npm install -g fuli-context@latest
94
85
  fl roundtable serve --data-dir ./roundtable-data --port 3738
95
86
  ```
96
87
 
97
- Create a discussion or collaborative task, assign 2–6 seats with one moderator, and create a seat
98
- invitation. Every participant completes preflight and joins before the owner starts the room.
99
- Selecting an adapter alone does not launch an agent. A collaborative task needs implementer and
100
- reviewer roles; writing requires both the owner's explicit workspace permission and the worker
101
- user's `--allow-write`. Reviews and workers default to read only.
102
-
103
- On a participant's computer, keep the invitation in `FULI_ROUNDTABLE_TOKEN`, then run:
88
+ Open `http://127.0.0.1:3738/roundtables`, create a goal and invite 2–6 participants.
89
+ Connect an MCP client with the generated seat invitation, or start a local worker:
104
90
 
105
91
  ```bash
106
- fl roundtable worker --url https://COORDINATOR --room ROOM_ID --runtime codex --workspace /local/project
92
+ fl roundtable worker --url https://COORDINATOR --room ROOM_ID --runtime codex --workspace ./project
107
93
  ```
108
94
 
109
- Use `claude-code`, `pi`, `grok`, or `a2a` for the corresponding adapter. Pi requires an installed local Ollama model selected with `--model`; see the [beta testing guide](docs/roundtable-beta-testing.md). Grok requires `XAI_API_KEY` and `XAI_MODEL` on the
110
- worker; A2A requires `--a2a-url`. The coordinator must expose a reachable HTTPS peer endpoint and
111
- set `--public-url https://COORDINATOR`; keep owner control on local loopback. The invitation UI
112
- generates participant commands and exposes credentials once without storing them in browser storage.
113
-
114
- Pi / Ollama is experimental: real tool actions and file references are checked, but tested local models can still produce inaccurate reports. Use an independent reviewer before accepting delivery.
115
-
116
- An MCP participant uses `https://COORDINATOR/roundtable-peer/v1/rooms/ROOM_ID/mcp` with the seat
117
- credential as Bearer authentication, then actively calls `join_roundtable`, `read_roundtable`,
118
- `claim_roundtable_turn`, and `submit_roundtable_turn`. A [Grok Team Bot can configure a custom remote
119
- HTTPS MCP server](https://docs.x.ai/grok-bot/team-bots) through its official settings. This is
120
- separate from a Grok API seat and does not use an API to wake an existing Bot chat.
95
+ Roundtable preserves messages, task dependencies, review results and dissent. It supports
96
+ Codex CLI, Claude Code CLI and MCP clients, with adapters for xAI and A2A services.
97
+ Pi/Ollama is available as an experimental local-model adapter. Reviewers use the artifact
98
+ references and shared workspace access supplied for the task.
121
99
 
122
- Only actual source receipts produce execution rows. Missing model or usage data stays unknown;
123
- joining, preflight and assignment do not count as execution. Runtime sources are participant
124
- reports, and the server does not independently verify native process identity. Beta adapters still need live
125
- verification with the intended credentials, clients and computers. Full A2A conformance,
126
- cloud availability and arbitrary closed-platform support are not established by protocol tests.
100
+ See the [Roundtable guide](docs/roundtable.md) for invitations, AI onboarding and runtime configuration.
127
101
 
128
102
  ## npm packages
129
103
 
package/README.zh-CN.md CHANGED
@@ -47,7 +47,7 @@ fuli open
47
47
 
48
48
  临时任务也能交给 Agent:本次源码支持在没有匹配到已登记项目时,建立隔离的**临时项目**,
49
49
  继续用 Fuli 协调任务。任务历史会保留,Agent 招募与执行器授权沿用现有规则;
50
- 单纯读取偏好不会创建项目,多个候选项目仍需明确选择。此能力包含在 `0.9.0-beta.2` 预发布中。
50
+ 单纯读取偏好不会创建项目,多个候选项目仍需明确选择。此能力已包含在正式版中。
51
51
 
52
52
  Agent 目录提供首次任务入口,任务详情会区分“已分配”和“收到工作进程报告”。
53
53
  只有上报真实执行后才有完成汇总;分配了 Agent、或仅完成普通本机对话,都不等于已运行工作进程。
@@ -56,57 +56,31 @@ Agent 目录提供首次任务入口,任务详情会区分“已分配”和
56
56
  [跨客户端验收](acceptance/cross-client-handoff.md) · [参与贡献](CONTRIBUTING.md) ·
57
57
  [反馈问题](https://github.com/JevonsCode/fuli/issues/new/choose)
58
58
 
59
- ## Agent 圆桌(Beta)
59
+ ## Agent 圆桌
60
60
 
61
- [验证记录](docs/roundtable-beta-validation.md)包含真实的 Codex 七轮协作、独立核对的文件和明确的审查结果。多台物理电脑与外部服务分别验收。
61
+ 让独立 Agent 围绕同一个目标,找到同伴、讨论方案、交接任务、实施并审查结果。
62
+ 圆桌已包含在 Fuli 正式版中。
62
63
 
63
- 让独立 Agent 围绕同一个目标,先讨论方案,再交接实施和审查,由你验收交付。
64
- Fuli 管理长期身份与有边界的知识;圆桌保存本次公开消息、回合、任务依赖、分歧与实际回执。
65
- 各参与者在自己的电脑上运行工作端,主动领取获授权的回合。
66
-
67
- | 产品层 | 状态 | 职责 |
68
- | --- | --- | --- |
69
- | 身份与知识 | 已提供 | Agent 职责、相关脉络、项目范围、来源与时间历史 |
70
- | 圆桌协作 | Beta | 讨论、分工、实施、审查、汇总与明确的人工验收 |
71
- | 运行时接入 | Beta | Codex CLI、Claude Code CLI、Pi + 本地 Ollama、主动 MCP 参与和 xAI API;A2A 按已支持的协议能力试验接入 |
72
- | 跨电脑交付 | Beta | 一个协调端、可撤销席位邀请、参与端工作进程与真实执行回执 |
73
- | 封闭平台与云端常驻 | 待支持 | 需要独立的可调用接口与运行验收 |
74
-
75
- 启动独立协调端,再打开 `http://127.0.0.1:3738/roundtables`:
64
+ AI 使用席位邀请接入后,可以通过工具自带的说明了解流程,介绍自己的职责与能力,
65
+ 寻找合适的同伴,发送定向问题或交接消息。成员介绍与消息在房间内可见,执行权限由席位控制。
76
66
 
77
67
  ```bash
78
- npm install -g fuli-context@beta
68
+ npm install -g fuli-context@latest
79
69
  fl roundtable serve --data-dir ./roundtable-data --port 3738
80
70
  ```
81
71
 
82
- 创建讨论或协作任务,设置 2–6 个席位和一位主持人,生成席位邀请。
83
- 各参与端完成真实预检并加入后,由本地用户开始圆桌。选择平台本身不会启动 Agent。
84
- 协作任务需要实施者和审查者;写入需要创建者明确授权工作区,以及工作端用户的
85
- `--allow-write`。审查和工作端默认只读。
86
-
87
- 在参与者的电脑上,将邀请凭据设置为环境变量 `FULI_ROUNDTABLE_TOKEN`,然后运行:
72
+ 打开 `http://127.0.0.1:3738/roundtables`,创建目标并邀请 2–6 位参与者。
73
+ 用生成的席位邀请连接 MCP 客户端,或启动本机工作端:
88
74
 
89
75
  ```bash
90
- fl roundtable worker --url https://COORDINATOR --room ROOM_ID --runtime codex --workspace /local/project
76
+ fl roundtable worker --url https://COORDINATOR --room ROOM_ID --runtime codex --workspace ./project
91
77
  ```
92
78
 
93
- 将 runtime 换成 `claude-code`、`pi`、`grok` 或 `a2a` 使用对应适配器。Pi 使用本机 Ollama,通过 `--model` 选择已安装模型,配置见 [Beta 测试指南](docs/roundtable-beta-testing.md)。Grok 需要在工作端配置
94
- `XAI_API_KEY` 和 `XAI_MODEL`,A2A 需要 `--a2a-url`。跨电脑时,协调端提供可访问的 HTTPS 参与端入口,
95
- 并设置 `--public-url https://COORDINATOR`;所有者控制面保留在本机回环地址。
96
- 邀请界面提供可复制指令,凭据只在当前页面显示一次,不写入浏览器存储。
97
-
98
- Pi / Ollama 当前为试验能力:真实工具动作和文件引用受到检查,但已测试的本地模型仍可能输出不准确的报告,交付必须经过独立审查。
99
-
100
- MCP 参与者配置 `https://COORDINATOR/roundtable-peer/v1/rooms/ROOM_ID/mcp`,将席位凭据作为
101
- Bearer 认证秘密保存,再主动调用 `join_roundtable`、`read_roundtable`、
102
- `claim_roundtable_turn`、`submit_roundtable_turn`。
103
- [Grok Team Bot 官方支持自定义远程 HTTPS MCP](https://docs.x.ai/grok-bot/team-bots),可在其设置中
104
- 配置圆桌入口。这个接入与调用 xAI 的 Grok API 席位分别展示,不通过 API 唤醒现有 Bot 聊天。
79
+ 圆桌保存消息、任务依赖、审查结果与分歧,支持 Codex CLI、Claude Code CLI 和 MCP 客户端,
80
+ 并提供 xAI、A2A 服务适配器。Pi/Ollama 作为试验性本地模型适配器提供。
81
+ 审查者通过任务提供的产物引用和工作区访问权限检查交付结果。
105
82
 
106
- 只有实际来源回执会产生执行行;缺少模型或用量时标为未知。运行来源由参与端报告,服务端不独立证明
107
- 原生进程身份。加入、预检和任务分配都不是执行证据。
108
- Beta 适配器仍需在目标凭据、客户端和电脑上完成真实验收;协议测试不能证明完整 A2A 兼容、
109
- 云端常驻或任意封闭平台接入。参与同一圆桌不会共享他人的私有记忆,也不会扩大执行权限。
83
+ 邀请、AI 接入与运行时配置见[圆桌使用指南](docs/roundtable.md)。
110
84
 
111
85
  ## npm 包
112
86
 
@@ -9,4 +9,4 @@ import{B as e,C as t,F as n,M as r,O as i,P as a,R as o,S as s,V as c,X as l,_ a
9
9
  `),S.value=(t?.profile.initialPreferences??[]).join(`
10
10
  `),E.value=t?.profile.status??`active`,k.value=t?.profile.agentType??`durable`,j.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,M.value=t?.profile.executorPolicy?.mode??`flexible`;let r=t?.profile.executorPolicy,a=r?.mode===`locked`?r.lockedExecutorIds:r?.preferredExecutorIds;N.value=(a?.length?a:r?.allowList?.map(({executorId:e})=>e)??[]).join(`
11
11
  `),I.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 ie(){if(F.value)return;let e=s.value.trim(),t=p.value.trim(),n=h.value.trim(),r=v.value.trim(),o=y.value.trim();if(!t||!n||!o){I.value=d(`projectAgents.dialog.required`);return}let c=i.projects.find(({project_id:t})=>t===e);if(e&&!c){I.value=d(`projectAgents.dialog.projectUnavailable`);return}if(r&&!H(r)){I.value=d(`projectAgents.dialog.occupationEmojiInvalid`);return}let l=c?.personal_space_id??i.personalSpaceId??i.agent?.personalSpaceId;if(!l){I.value=d(`projectAgents.dialog.spaceUnavailable`);return}let u=V(x.value),f=V(S.value);if(!u||!f){I.value=d(`projectAgents.dialog.duplicate`);return}let m=V(N.value);if(!m||M.value===`locked`&&!m.length){I.value=d(`projectAgents.dialog.duplicate`);return}F.value=!0,I.value=``;try{let s={...i.agent?.profile,name:n,responsibility:o,capabilities:u,initialPreferences:f,status:E.value};g.value.trim()&&(s.displayName=g.value.trim()),r&&(s.occupationEmoji=r),k.value!==`durable`&&(s.agentType=k.value),j.value!==`adaptive`&&(s.defaultModelStrategy={mode:j.value}),(M.value!==`flexible`||m.length)&&(s.executorPolicy={mode:M.value,lockedExecutorIds:M.value===`locked`?m:[],preferredExecutorIds:M.value===`flexible`?m:[]});let c=await ee(`/api/project-agents`,{personalSpaceId:l,personalProjectId:null,agentId:t,profile:s}),p=c;if(e&&!z.value){let n=await P(`/api/project-agent-assignments`,{personalSpaceId:l,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:o,capabilities:u,reason:d(`projectAgents.dialog.initialAssignmentReason`)});p={...c,personalProjectId:e,assignments:[n]}}a(`saved`,p),a(`close`)}catch(e){I.value=e instanceof Error?e.message:d(`projectAgents.dialog.saveFailed`)}finally{F.value=!1}}function H(e){return Array.from(e).length>32||/\s/u.test(e)||Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)).length!==1?!1:/\p{Extended_Pictographic}|\p{Regional_Indicator}{2}|[#*0-9]\uFE0F?\u20E3/u.test(e)&&/^[\p{Extended_Pictographic}\p{Emoji_Component}\uFE0E\uFE0F\u200D\u{E0020}-\u{E007F}#*0-9]+$/u.test(e)}return(n,i)=>e.open?(r(),D(`dialog`,{key:0,ref_key:`dialogRef`,ref:L,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:i[15]||=(...e)=>C(te)&&C(te)(...e),onKeydown:i[16]||=(...e)=>C(ne)&&C(ne)(...e)},[T(`form`,{class:`project-agent-dialog-shell`,onSubmit:b(ie,[`prevent`])},[T(`header`,dn,[T(`h3`,fn,_(z.value?C(d)(`projectAgents.dialog.editTitle`):C(d)(`projectAgents.dialog.createTitle`)),1),T(`button`,{ref_key:`initialFocusRef`,ref:R,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:F.value,onClick:i[0]||=e=>a(`close`)},_(C(d)(`common.actions.close`)),9,pn)]),T(`div`,mn,[T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.project`)),1),t(ve,{modelValue:s.value,"onUpdate:modelValue":i[1]||=e=>s.value=e,"control-id":`project-agent-project`,options:re.value,label:C(d)(`projectAgents.fields.project`),placeholder:C(d)(`projectAgents.dialog.projectPlaceholder`),disabled:z.value||F.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.status`)),1),c(T(`select`,{"onUpdate:modelValue":i[2]||=e=>E.value=e,name:`project-agent-status`,disabled:F.value},[T(`option`,gn,_(C(d)(`projectAgents.status.active`)),1),T(`option`,_n,_(C(d)(`projectAgents.status.inactive`)),1),T(`option`,vn,_(C(d)(`projectAgents.status.archived`)),1)],8,hn),[[w,E.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.agentType`)),1),c(T(`select`,{"onUpdate:modelValue":i[3]||=e=>k.value=e,name:`project-agent-type`,disabled:F.value},[T(`option`,bn,_(C(d)(`projectAgents.agentType.durable`)),1),T(`option`,xn,_(C(d)(`projectAgents.agentType.hr`)),1),z.value&&k.value===`temporary`?(r(),D(`option`,Sn,_(C(d)(`projectAgents.agentType.temporary`)),1)):f(``,!0),z.value&&k.value===`coordinator`?(r(),D(`option`,Cn,_(C(d)(`projectAgents.agentType.coordinator`)),1)):f(``,!0)],8,yn),[[w,k.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.agentId`)),1),c(T(`input`,{"onUpdate:modelValue":i[4]||=e=>p.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:z.value||F.value,placeholder:C(d)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,wn),[[m,p.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`attention.roleName`)),1),c(T(`input`,{"onUpdate:modelValue":i[5]||=e=>h.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.namePlaceholder`)},null,8,Tn),[[m,h.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`attention.displayName`)),1),c(T(`input`,{"onUpdate:modelValue":i[6]||=e=>g.value=e,name:`project-agent-display-name`,maxlength:`160`,disabled:F.value},null,8,En),[[m,g.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.occupationEmoji`)),1),c(T(`input`,{"onUpdate:modelValue":i[7]||=e=>v.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Dn),[[m,v.value]])]),z.value?(r(),D(`small`,On,_(C(d)(`projectAgents.dialog.idLocked`)),1)):f(``,!0),T(`label`,kn,[T(`span`,null,_(C(d)(`projectAgents.fields.responsibility`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[8]||=e=>y.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,An),[[m,y.value]])]),T(`label`,jn,[T(`span`,null,_(C(d)(`projectAgents.fields.capabilities`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[9]||=e=>x.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Mn),[[m,x.value]])]),T(`label`,Nn,[T(`span`,null,_(C(d)(`projectAgents.fields.initialPreferences`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[10]||=e=>S.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,Pn),[[m,S.value]])]),T(`fieldset`,Fn,[T(`legend`,null,_(C(d)(`projectAgents.fields.defaultModelStrategy`)),1),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.executorPolicy`)),1),c(T(`select`,{"onUpdate:modelValue":i[11]||=e=>M.value=e,name:`project-agent-selection-mode`,disabled:F.value},[T(`option`,Ln,_(C(d)(`projectAgents.strategy.flexible`)),1),T(`option`,Rn,_(C(d)(`projectAgents.strategy.locked`)),1)],8,In),[[w,M.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.modelIntent`)),1),c(T(`select`,{"onUpdate:modelValue":i[12]||=e=>j.value=e,name:`project-agent-model-mode`,disabled:F.value},[...i[17]||=[T(`option`,{value:`adaptive`},`adaptive`,-1),T(`option`,{value:`fast`},`fast`,-1),T(`option`,{value:`balanced`},`balanced`,-1),T(`option`,{value:`deep`},`deep`,-1)]],8,zn),[[w,j.value]])]),T(`label`,Bn,[T(`span`,null,_(C(d)(`projectAgents.fields.allowList`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[13]||=e=>N.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.allowListPlaceholder`)},null,8,Vn),[[m,N.value]])]),T(`small`,null,_(M.value===`locked`?C(d)(`projectAgents.strategy.lockedUnavailable`):C(d)(`projectAgents.strategy.providerNeutral`)),1)])]),I.value?(r(),D(`p`,Hn,_(I.value),1)):f(``,!0),T(`footer`,Un,[T(`button`,{class:`quiet-button`,type:`button`,disabled:F.value,onClick:i[14]||=e=>a(`close`)},_(C(d)(`common.actions.cancel`)),9,Wn),T(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:F.value},[F.value?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.dialog.saving`)},null,8,[`label`])):(r(),D(`span`,Kn,_(z.value?C(d)(`projectAgents.dialog.saveEdit`):C(d)(`projectAgents.dialog.saveCreate`)),1))],8,Gn)])],32)],544)):f(``,!0)}}),[[`__scopeId`,`data-v-f3d4e6a7`]]),Jn=[`aria-label`],Yn={class:`project-agents-header`},Xn={key:0,class:`project-agents-header-meta`},Zn={class:`project-agent-header-actions`},Qn=[`disabled`],$n=[`disabled`],er={key:0,class:`project-agents-summary`,"aria-live":`polite`},tr={class:`project-agents-toolbar`},nr={class:`project-agents-search`},rr={class:`sr-only`},ir=[`placeholder`],ar=[`aria-label`],or=[`aria-pressed`,`onClick`],sr={key:4,class:`ui-card project-agents-state is-error`,role:`alert`},cr={key:5,class:`ui-card project-agents-state`},lr=[`disabled`],ur={key:6,class:`ui-card project-agents-state`},dr={key:7,class:`ui-card project-agents-directory`},fr=[`aria-label`],pr=[`aria-current`,`onClick`],mr={class:`project-agent-row-heading`},hr=[`aria-label`],gr={class:`ui-badge project-agent-kind`},_r={class:`project-agent-row-projects`},vr={key:0},yr={key:1},br={class:`project-agent-row-responsibility`},xr={class:`project-agent-row-work`},Sr=[`aria-label`],Cr={class:`project-agent-detail-heading`},wr=[`aria-label`],Tr={key:0},Er={key:0},Dr={class:`project-agent-detail-actions`},Or=[`disabled`],kr=[`disabled`],Ar={key:1},jr={key:0,class:`project-agent-detail-notice`,role:`status`},Mr={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},Nr={class:`employee-project-overview-heading`},Pr={id:`employee-project-overview-title`},Fr={key:0,class:`employee-assigned-projects`},Ir={key:1,class:`employee-project-overview-hint`},Lr={class:`ui-card project-agent-detail-section is-responsibility`},Rr={key:0,class:`project-agent-tags`},zr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},Br={key:0,class:`project-agent-muted`,"data-task-partial":``},Vr={class:`project-agent-detail-section`},Hr={class:`project-agent-section-heading`},Ur={key:0,class:`project-agent-task-list`},Wr=[`id`],Gr={key:0},Kr={key:1,class:`project-agent-inline-list`},qr=[`open`],Jr=[`aria-label`],Yr={class:`project-agent-section-heading`},Xr=[`aria-label`],Zr={class:`project-agent-execution-summary-table`},Qr={class:`sr-only`},$r={scope:`col`},ei={scope:`col`},ti={scope:`col`},ni={scope:`col`},ri={scope:`col`},ii={scope:`col`},ai={scope:`col`},oi={scope:`row`},si={class:`project-agent-execution-worker`},ci=[`aria-label`],li={key:0},ui=[`data-label`],di=[`data-label`],fi=[`data-label`],pi={key:0},mi={key:1},hi=[`data-label`],gi=[`href`],_i={key:1},vi={class:`project-agent-reporter-label`},yi=[`href`],bi={key:1},xi=[`data-label`],Si=[`data-label`],Ci={key:1},wi={key:1,class:`project-agent-muted`},Ti=[`aria-label`],Ei={class:`project-agent-section-heading`},Di={class:`project-agent-execution-summary-list`},Oi=[`aria-label`],ki={key:1},Ai={class:`project-agent-execution-summary-meta`},ji={key:0},Mi={key:0},Ni={key:1},Pi={key:2},Fi={key:2},Ii={key:3,class:`project-agent-routing-decision`},Li={class:`project-agent-section-heading`},Ri={key:0},zi={key:1},Bi={key:2},Vi={key:0},Hi={key:3},Ui={key:0},Wi={key:4},Gi={class:`project-agent-execution-line`},Ki={key:0},qi={key:1},Ji={key:2},Yi={key:4},Xi={key:5},Zi={key:1,class:`project-agent-muted`},Qi={class:`ui-disclosure project-agent-disclosure`},$i={class:`project-agent-detail-source`,"data-detail-section":`assignments`},ea={class:`project-agent-detail-section`},ta={class:`project-agent-section-heading`},na={class:`project-agent-section-tools`},ra={key:0,class:`project-agent-assignment-list`},ia={class:`project-agent-card-actions`},aa=[`onClick`],oa=[`onClick`],sa={key:0},ca={key:1,class:`project-agent-inline-list`},la={class:`project-agent-strategy-note`},ua={key:0},da={key:2,class:`project-agent-tags`},fa={key:3},pa={key:1,class:`project-agent-muted`},ma={class:`ui-disclosure project-agent-disclosure`},ha={class:`project-agent-detail-source`,"data-detail-section":`activity`},ga={class:`project-agent-detail-section`},_a={class:`project-agent-section-heading`},va={key:0},ya={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},ba=[`aria-label`],xa=[`aria-label`,`aria-pressed`,`onClick`],Sa={class:`sr-only`},Ca={key:0,class:`project-agent-day-detail`},wa={key:0,class:`project-agent-muted`},Ta={key:1},Ea={key:1,class:`project-agent-muted`},Da={class:`ui-disclosure project-agent-disclosure`},Oa={class:`project-agent-detail-meta`},ka={key:0},Aa=[`open`],ja={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},Ma={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},Na={class:`project-agent-section-heading`},Pa={id:`project-agent-recruitment-heading`},Fa={key:0,class:`project-agent-recruitment-list`},Ia={class:`project-agent-card-actions`},La={class:`ui-badge`},Ra=[`disabled`,`onClick`],za={key:1},Ba=[`disabled`,`onClick`],Va={key:1},Ha={class:`project-agent-compact-meta`},Ua={key:1,class:`project-agent-muted`},Wa={class:`project-agent-detail-source`,"data-detail-section":`executors`},Ga={class:`project-agent-detail-section`},Ka={class:`project-agent-section-heading`},qa={class:`project-agent-muted`},Ja={key:0,class:`project-agent-tags`},Ya={key:1,class:`project-agent-blocked`},Xa={key:2,class:`project-agent-muted`},Za={class:`project-agent-section-tools`},Qa={key:3,class:`project-agent-executor-list`},$a=[`onClick`],eo=[`disabled`,`onClick`],to={key:1},no=[`disabled`,`onClick`],ro={key:1},io={class:`project-agent-detail-source`,"data-detail-section":`clients`},ao={class:`project-agent-detail-section`},oo={class:`project-agent-section-heading`},so={key:0,class:`project-agent-client-list`},co={key:0},lo={key:1},uo={key:2},fo={key:1,class:`project-agent-muted`},po={class:`project-agent-detail-source`,"data-detail-section":`routing`},mo={class:`project-agent-detail-section`},ho={class:`project-agent-section-heading`},go={class:`project-agent-section-tools`},_o={key:0,class:`project-agent-rule-list`},vo=[`disabled`,`onClick`],yo={key:1},bo={key:1,class:`project-agent-muted`},xo={class:`project-agent-note`},So={class:`project-agent-detail-source`,"data-detail-section":`learning`},Co={class:`project-agent-detail-section`},wo={class:`project-agent-section-heading`},To={key:0,class:`project-agent-learning-list`},Eo={class:`ui-badge`},Do={key:0},Oo={key:1,class:`project-agent-inline-list`},ko={key:0},Ao={key:2,class:`project-agent-evidence-list`},jo=[`disabled`,`onClick`],Mo={key:1},No={key:3,class:`project-agent-learning-actions`},Po=[`disabled`,`onClick`],Fo={key:1},Io={key:1,class:`project-agent-muted`},Lo={class:`project-agent-note`},Ro={key:1,class:`project-agent-detail-placeholder`},zo=j(E({__name:`ProjectAgentsPage`,setup(n){let p=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],b=k(),w=M(),E=l([]),j=l(!1),ee=l(``),B=l(null),H=l(!1),W=l(`all`),ce=l(``),K=l(``);o(()=>w.query.agent,e=>{typeof e==`string`&&(K.value=e)},{immediate:!0});let he=l(!1),ve=l(!1),xe=l(``),J=l(null),Ce=l(!1),we=l(`assign`),Te=l(null),Ee=l(!1),De=l({}),Oe=l({}),Y=l(``),ke=l(``),Ae=l(!1),je=l(``),Me=l(``),X=l(``),Ne=l(``),Pe=l(``),Fe=l(``),Ie=l(!1),Le=l(`executor`),Re=l(null),ze=l(null),Be=0,Ve=0,He=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=u(()=>b.state?.personalProjects??[]);async function Ke(e){await ht(),rt.value.some(t=>t.agentId===e.agent.agentId)||(B.value=null,W.value=`all`,ce.value=``);let t=K.value===e.agent.agentId;K.value=e.agent.agentId,t&&$()}let Z=u(()=>b.activePersonalSpace?.id??``),qe=u(()=>j.value||!b.state&&(b.runtimeStatus===`idle`||b.runtimeStatus===`loading`)),Je=u(()=>ee.value||(!b.state&&b.runtimeStatus===`error`?b.feedback?.message||d(`projectAgents.loadError`):``));function Ye(){b.state?ht():b.refresh()}let Xe=u(()=>new Map(Ge.value.map(e=>[e.project_id,e]))),Ze=u(()=>Ge.value.map(e=>({id:e.project_id,name:e.profile.name}))),Qe=u(()=>{let e=typeof w.query.agent==`string`?w.query.agent:``;return e?E.value.find(t=>t.personalSpaceId===Z.value&&(t.agentId===e||t.legacyAgentIds?.includes(e)))??null:null}),$e=u(()=>!!(Qe.value&&typeof w.query.project==`string`&&typeof w.query.task==`string`&&!H.value)),et=u({get:()=>B.value??Ze.value.map(e=>e.id),set:e=>{H.value=!0;let t=Ze.value.filter(t=>e.includes(t.id)).map(e=>e.id);B.value=t.length===Ze.value.length?null:t}}),tt=u(()=>B.value?.length===1?B.value[0]:``);o([()=>w.query.project,Ze],([e,t],n)=>{let r=!n||e!==n[0];typeof e==`string`&&t.some(t=>t.id===e)&&(r||!H.value)&&(B.value=[e],r&&(H.value=!1))},{immediate:!0});let nt=u(()=>[{value:`all`,label:d(`projectAgents.status.all`)},{value:`active`,label:d(`projectAgents.status.active`)},{value:`inactive`,label:d(`projectAgents.status.inactive`)},{value:`archived`,label:d(`projectAgents.status.archived`)}]),rt=u(()=>{let e=ce.value.trim().toLocaleLowerCase(x());return E.value.filter(e=>B.value===null||Ht(e).some(({id:e})=>B.value.includes(e))||$e.value&&e.agentId===Qe.value?.agentId).filter(e=>W.value===`all`||e.profile.status===W.value).filter(t=>!e||Gt(t).toLocaleLowerCase(x()).includes(e)).sort(Rt)}),Q=u(()=>rt.value.find(e=>e.agentId===K.value)??null),it=u(()=>Q.value?te(Q.value):null),at=u(()=>R.value.find(e=>e.id===it.value)),ot=u(()=>Q.value?Ht(Q.value).filter(e=>Xe.value.get(e.id)?.profile.lifecycle!==`archived`):[]),st=u(()=>E.value.filter(({profile:e})=>e.status===`active`).length),ct=u(()=>E.value.reduce((e,t)=>e+Vt(t).length,0)),lt=u(()=>new Set(E.value.flatMap(e=>Vt(e).map(({personalProjectId:e})=>e))).size),ut=u(()=>tt.value?tt.value:Q.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Q.value?.personalProjectId??Ge.value[0]?.project_id??null),dt=u(()=>Q.value?.activity??null),ft=u(()=>dt.value?.days.find(({date:e})=>e===ke.value)??null),pt=u(()=>Object.entries(Q.value?.learningEvidence??{})),mt=u(()=>Q.value?.recruitments??[]);v(()=>{b.runtimeStatus===`idle`&&b.refresh()}),o(Z,e=>{++Be,++Ve,De.value={},Oe.value={},K.value=``,E.value=[],H.value=!1,B.value=typeof w.query.project==`string`&&Ze.value.some(e=>e.id===w.query.project)?[w.query.project]:null,ee.value=``,e?ht(e):j.value=!1},{immediate:!0}),o(rt,e=>{if(!e.some(e=>e.agentId===K.value)){let t=e.find(e=>e.agentId===w.query.agent||typeof w.query.agent==`string`&&e.legacyAgentIds?.includes(w.query.agent));K.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}),o([K,Z],([e,t])=>{ke.value=``,e&&t&&$(e,t)},{immediate:!0});async function ht(e=Z.value){if(!e)return;let t=++Be;j.value=!0,ee.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([F(`/api/project-agents?${n}`),F(`/api/project-agent-tasks?${n}`)]);if(t!==Be)return;if(ne(e),r.status===`rejected`)throw r.reason;if(t===Be){let e=Go(fe(r.value)),t=i.status===`fulfilled`?Kn(i.value).filter(e=>He.has(e.status)):[];E.value=Rn(e,t)}}catch(e){t===Be&&(ee.value=e instanceof Error?e.message:d(`projectAgents.loadError`))}finally{t===Be&&(j.value=!1)}}async function $(e=K.value,t=Z.value){let n=E.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++Ve;Ee.value=!0,Y.value=``,yt(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=be(),o=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),s={assignments:F(`/api/project-agent-assignments?${i}`),tasks:gt(i),activity:F(`/api/project-agent-activity?${o}`),recruitments:F(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:F(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:F(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:F(`/api/project-agent-routing-learning?${i}`)};await Promise.all(p.map(async i=>{try{let a=await s[i];if(!Ct(r,e,t))return;wt(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:d(`projectAgents.detail.sectionUnavailable`)})}})),Ct(r,e,t)&&(Ee.value=!1)}async function gt(e){let t=e.get(`agentId`)??``,n=e.get(`personalSpaceId`)??``,r=typeof w.query.project==`string`?w.query.project:``,i=typeof w.query.task==`string`?w.query.task:``;e=new URLSearchParams({personalSpaceId:n,limit:`200`}),r&&e.set(`personalProjectId`,r);let a=await F(`/api/project-agent-tasks?${e}`);Tt(a,[`tasks`,`items`]);let o=e=>(!e.personalSpaceId||e.personalSpaceId===n)&&(!r||e.personalProjectId===r)&&ue(e,t),s=Kn(a).filter(o);if(i&&!s.some(e=>e.taskId===i)){let t=pe(await F(`/api/project-agent-tasks/${encodeURIComponent(i)}?${e}`));t&&o(t)&&s.unshift(t)}return{tasks:s,partial:!de(a)}}o([()=>w.query.task,Ee],async([e,t])=>{t||typeof e!=`string`||(await y(),document.getElementById(`task-${e}`)?.scrollIntoView?.({block:`nearest`}))});function _t(e=`idle`){return Object.fromEntries(p.map(t=>[t,{status:e,error:``}]))}function yt(e,t){De.value={...De.value,[e]:_t(t)}}function bt(e,t,n){De.value={...De.value,[e]:{...De.value[e]??_t(),[t]:n}}}function xt(e){let t=(Array.isArray(e)?e:[e]).map(e=>De.value[K.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 d(`projectAgents.detail.loading.`+e)}function Ct(e,t,n){return e===Ve&&t===K.value&&n===Z.value}function wt(e,t,n){let r;switch(t){case`assignments`:Tt(n,[`assignments`,`items`]),r={assignments:Vn(n,e)};break;case`tasks`:Tt(n,[`tasks`,`items`]),Oe.value={...Oe.value,[e.agentId]:q(n).partial===!0},r={tasks:Kn(n)};break;case`activity`:{let e=Se(n,{agentId:K.value,personalSpaceId:Z.value});if(!e)throw Error(d(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:Tt(n,[`recruitments`,`items`]),r={recruitments:Bo(n).filter(t=>Vo(t,e))};break;case`executors`:Tt(n,[`executors`,`items`]),r={executorDirectory:Un(n),clientEvidence:Ho(n)};break;case`routingRules`:Tt(n,[`rules`,`items`]),r={routingRules:Uo(n)};break;case`learning`:Tt(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:Wo(n)};break}E.value=E.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function Tt(e,t,n=!1){if(Array.isArray(e))return;let r=q(e);if(!t.some(e=>Array.isArray(r[e])||n&&Et(r[e])))throw Error(d(`projectAgents.detail.sectionUnavailable`))}function Et(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Dt(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=d(`projectAgents.learning.resetUnavailable`);return}je.value=r,Me.value=t;try{await I(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:Z.value,personalProjectId:e.personalProjectId,agentId:i.agentId,workKind:e.workKind,executorId:e.executor,modelStrategy:e.modelStrategy,modelStrategyKey:e.modelStrategyKey,resetAt:t===`reset`?new Date().toISOString():void 0,idempotencyKey:t===`ignore`?`console-learning:${r}:ignore`:We(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.learning.updateFailed`)}finally{je.value=``,Me.value=``}}}async function Ot(e,t){if(!(!Z.value||X.value)){X.value=e.recruitmentId,Ne.value=t;try{await P(`/api/project-agent-recruitments/decision`,{personalSpaceId:Z.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:d(`projectAgents.recruitment.${t}Reason`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.recruitment.decisionFailed`)}finally{X.value=``,Ne.value=``}}}async function kt(e,t){if(!(!Z.value||Pe.value)){Pe.value=e.executorId,Fe.value=t===`authorized`?`authorize`:`revoke`;try{await P(`/api/executors/authorization`,{personalSpaceId:Z.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:We(`console-executor:${e.executorId}:${t}`),reason:d(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.routing.authorizationFailed`)}finally{Pe.value=``,Fe.value=``}}}function At(e=null){Le.value=`executor`,Re.value=e,ze.value=null,Ie.value=!0}function jt(e=null){Le.value=`rule`,ze.value=e,Re.value=null,Ie.value=!0}function Mt(){Ie.value=!1,Re.value=null,ze.value=null}function Nt(e){Q.value&&(E.value=E.value.map(t=>t.agentId===Q.value?.agentId?{...t,executorDirectory:Ko([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),Mt())}function Pt(e){Q.value&&(E.value=E.value.map(t=>t.agentId===Q.value?.agentId?{...t,routingRules:Ko([...t.routingRules??[],e],({ruleId:e})=>e)}:t),Mt())}function Ft(e){Le.value===`executor`?Nt(e):Pt(e)}async function It(e){if(!(!Z.value||!e.ruleId||X.value)){X.value=`rule:${e.ruleId}`,Ne.value=`disable`;try{await I(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:Z.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.routing.updateFailed`)}finally{X.value=``,Ne.value=``}}}async function Lt(e){if(e.profile.cleanupEligible){Ae.value=!0,Ee.value=!0;try{await L(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await ht()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.source.cleanupFailed`)}finally{Ae.value=!1,Ee.value=!1}}}function Rt(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,x())||e.agentId.localeCompare(t.agentId,x())}function zt(e){return e?Xe.value.get(e)?.profile.name??e:d(`projectAgents.notReported`)}function Bt(e){return e.assignments??(e.personalProjectId?[Wt(e)]:[])}function Vt(e){return[...new Map(Bt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function Ht(e){let t=te(e);return(t?R.value.find(e=>e.id===t):void 0)?.managedProjects??Vt(e).map(e=>({id:e.personalProjectId,name:zt(e.personalProjectId)}))}function Wt(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 Gt(e){return[e.agentId,e.profile.name,e.profile.displayName??``,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Bt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function Kt(){J.value=null,he.value=!0}function Jt(e=``){xe.value=e,ve.value=!0}function Yt(e){J.value=e,he.value=!0}function Xt(){he.value=!1,J.value=null}function Zt(e,t=null,n=`assign`){let r=te(e);if(n===`assign`&&r){Jt(r);return}J.value=e,Te.value=t,we.value=n,Ce.value=!0}function Qt(){Ce.value=!1,Te.value=null,we.value=`assign`}function $t(e){J.value&&(E.value=E.value.map(t=>t.agentId===J.value?.agentId?{...t,assignments:Ko([...t.assignments??[],e],({assignmentId:e})=>e)}:t),K.value=J.value.agentId,Qt())}function en(){Qt(),$()}function nn(e){let t=zn(e),n=E.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));E.value=Go([...n,t]),t.personalProjectId&&(B.value=[t.personalProjectId]),W.value=`all`,ce.value=``,K.value=t.agentId,b.notify(d(`projectAgents.saved`))}function rn(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(x(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function an(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(x(),{month:`short`,day:`numeric`}).format(t)}function on(e){return e?.mode??`adaptive`}function sn(e){return e?.mode??`flexible`}function cn(e){return e?.mode===`locked`}function ln(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function dn(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?oe(t):null}function fn(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||d(`projectAgents.notReported`)}function pn(e){return e.workerOccupationEmoji||``}function mn(e){return _n(e.workerStatus||e.status)}function hn(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||d(`projectAgents.notReported`)}function gn(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function _n(e){return e?Tn(e):d(`projectAgents.notReported`)}function vn(e){if(!e)return d(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=d(t);return n===t?e:n}function yn(e){return d(`projectAgents.tokenSources.${e}`)}function bn(e){return e?`${new Intl.NumberFormat(x()).format(e.totalTokens)} Token · ${yn(e.source)}`:d(`projectAgents.notReported`)}function xn(e){return Sn(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function Sn(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 Cn(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function wn(e){return(e.tasks??[]).find(e=>He.has(e.status))??null}function Tn(e){let t=`projectAgents.taskStatus.${e}`,n=d(t);return n===t?e:n}function En(e){return d(`projectAgents.agentType.${e??`durable`}`)}function Dn(e){return d(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function On(e){return qo([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function kn(e,t){return e.clientEvidence?.find(e=>e.client===t)}function An(e,t){return kn(e,t)?.actualUse?.count??0}function jn(e){return e.neutral!==!1||e.sampleCount<=0}function Mn(e){return jn(e)?d(`projectAgents.learning.neutral`):d(`projectAgents.learning.recorded`)}function Nn(e){return e.recentWeightedSamples??d(`projectAgents.notReported`)}function Pn(e){return e.score??``}function Fn(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 In(e){ke.value=e.date}function Ln(e,t){return ue(t,e.agentId)}function Rn(e,t){return e.map(e=>{let n=t.filter(t=>Ln(e,t));return n.length?{...e,tasks:Ko([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function zn(e){let t=q(e),n=q(t.profile),r=V(t,`agentId`,`agent_id`)??``,i=V(t,`createdAt`,`created_at`)??``,a=V(t,`updatedAt`,`updated_at`)??i,o={name:V(n,`name`,`name`)??r,displayName:V(n,`displayName`,`display_name`),responsibility:V(n,`responsibility`,`responsibility`)??``,capabilities:G(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:G(U(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:V(n,`status`,`status`)??`active`,occupationEmoji:V(n,`occupationEmoji`,`occupation_emoji`),agentType:V(n,`agentType`,`agent_type`),workKinds:G(U(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:ae(U(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:se(U(n,`executorPolicy`,`executor_policy`)),allowedClients:G(U(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),character:{judgment:String(q(n.character).judgment??``),taste:String(q(n.character).taste??``),personality:String(q(n.character).personality??``)},expectations:V(n,`expectations`,`expectations`)??``,testSource:V(n,`testSource`,`test_source`),cleanupEligible:U(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:V(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>le(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:V(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:V(t,`temporaryTaskId`,`temporary_task_id`),workStatus:V(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:V(t,`currentTaskId`,`current_task_id`),observedClients:G(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:V(t,`recruitedAt`,`recruited_at`),recruitmentReason:V(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:V(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(pe).filter(Boolean),activity:Se(t.activity,{agentId:K.value,personalSpaceId:Z.value}),clientEvidence:Ho(t.clientEvidence??t.client_evidence),routingRules:Uo(t.routingRules??t.routing_rules),learningEvidence:Gn(t.learningEvidence??t.learning_evidence)}}function Bn(e){let t=q(e),n=V(t,`client`,`client`);if(!n)return null;let r=q(U(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:V(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:V(r,`lastUsedAt`,`last_used_at`)}:null}}function Vn(e,t){let n=q(e);return G(Array.isArray(e)?e:n.assignments??n.items).map(e=>le(e,t)).filter(e=>!!e)}function Hn(e){let t=q(e),n=V(t,`provider`,`provider`),r=V(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(U(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:G(U(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:V(t,`observedAt`,`observed_at`),unavailableReason:V(t,`unavailableReason`,`unavailable_reason`)}}function Un(e){let t=q(e);return G(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=q(e),n=V(t,`executorId`,`executor_id`);if(!n)return null;let r=q(U(t,`actualUse`,`actual_use`));return{executorId:n,label:V(t,`label`,`label`),provider:V(t,`provider`,`provider`),model:V(t,`model`,`model`),client:V(t,`client`,`client`),availabilityStatus:V(t,`availabilityStatus`,`availability_status`),personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`),displayName:V(t,`displayName`,`display_name`),executorKind:V(t,`executorKind`,`executor_kind`),capabilities:G(U(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof U(t,`globalPriority`,`global_priority`)==`number`?U(t,`globalPriority`,`global_priority`):null,healthRequired:U(t,`healthRequired`,`health_required`)===!0,registrationStatus:V(t,`registrationStatus`,`registration_status`),permissionStatus:V(t,`permissionStatus`,`permission_status`),preflightStatus:V(t,`preflightStatus`,`preflight_status`),healthStatus:V(t,`healthStatus`,`health_status`),workspacePermission:typeof U(t,`workspacePermission`,`workspace_permission`)==`boolean`?U(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof U(t,`permissionRevision`,`permission_revision`)==`number`?U(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:V(t,`registeredAt`,`registered_at`),updatedAt:V(t,`updatedAt`,`updated_at`),testSource:V(t,`testSource`,`test_source`),cleanupEligible:U(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:G(U(t,`advertisedModels`,`advertised_models`)).map(Hn).filter(e=>e!==null),availableModels:G(U(t,`availableModels`,`available_models`)).map(Hn).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:V(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Wn(e){let t=q(e),n=V(t,`ruleId`,`rule_id`);if(!n)return null;let r=V(t,`status`,`status`);return{ruleId:n,scope:V(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),taskId:V(t,`taskId`,`task_id`),workKind:V(t,`workKind`,`work_kind`),agentId:V(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:G(U(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:G(U(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:ae(U(t,`modelStrategy`,`model_strategy`)),reason:V(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:V(t,`createdAt`,`created_at`),updatedAt:V(t,`updatedAt`,`updated_at`)}}function Gn(e){let t=q(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(q(n))).map((e,t)=>{let n=q(e),r=V(n,`personalProjectId`,`personal_project_id`),i=V(n,`workKind`,`work_kind`),a=V(n,`executorId`,`executor_id`)??V(n,`executor`,`executor`),o=ae(U(n,`modelStrategy`,`model_strategy`)),s=V(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=G(U(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=q(e),n=V(t,`signal`,`signal`),r=V(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof U(t,`decayWeight`,`decay_weight`)==`number`?U(t,`decayWeight`,`decay_weight`):null;return{evidenceId:V(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:V(t,`occurredAt`,`occurred_at`)}}),u=typeof U(n,`weightedSuccess`,`weighted_success`)==`number`?U(n,`weightedSuccess`,`weighted_success`):0,d=typeof U(n,`weightedFailure`,`weighted_failure`)==`number`?U(n,`weightedFailure`,`weighted_failure`):0,f=U(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof U(n,`sampleCount`,`sample_count`)==`number`?U(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof U(n,`recentCount`,`recent_count`)==`number`?U(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:V(n,`asOf`,`as_of`)??V(n,`updatedAt`,`updated_at`),outcomes:{success:typeof U(n,`successCount`,`success_count`)==`number`?U(n,`successCount`,`success_count`):void 0,rework:typeof U(n,`reworkCount`,`rework_count`)==`number`?U(n,`reworkCount`,`rework_count`):void 0,failure:typeof U(n,`failureCount`,`failure_count`)==`number`?U(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof U(n,`ratingCount`,`rating_count`)==`number`?U(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:U(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function Kn(e){let t=q(e);return G(Array.isArray(e)?e:t.tasks??t.items).map(pe).filter(Boolean)}function zo(e){let t=q(e),n=V(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:V(t,`personalProjectId`,`personal_project_id`)??``,taskId:V(t,`taskId`,`task_id`)??``,coordinatorAgentId:V(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:V(t,`hrAgentId`,`hr_agent_id`),positionKind:V(t,`positionKind`,`position_kind`)??`durable`,workKind:V(t,`workKind`,`work_kind`)??``,requiredCapabilities:G(U(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:V(t,`reasonCode`,`reason_code`)??``,reason:V(t,`reason`,`reason`)??``,status:V(t,`status`,`status`)??`unknown`,confirmationMode:V(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:V(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:V(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:V(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:V(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:V(t,`testSource`,`test_source`),cleanupEligible:U(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:V(t,`createdAt`,`created_at`)??``,updatedAt:V(t,`updatedAt`,`updated_at`)??``,fulfilledAt:V(t,`fulfilledAt`,`fulfilled_at`)}:null}function Bo(e){let t=q(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=q(e);return G(Array.isArray(e)?e:t.clients??t.executors??t.items).map(Bn).filter(Boolean)}function Uo(e){let t=q(e);return G(Array.isArray(e)?e:t.rules??t.items).map(Wn).filter(Boolean)}function Wo(e){let t=q(e);return Gn(t.learningEvidence??t.learning_evidence??e)}function Go(e){let t=new Map;return e.map(zn).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Bt(n),...Bt(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(n,o)=>(r(),D(`section`,{class:`view project-agents-view`,"aria-label":C(d)(`projectAgents.aria`)},[T(`header`,Yn,[T(`div`,null,[T(`h2`,null,_(C(d)(`projectAgents.title`)),1),!qe.value&&!Je.value?(r(),D(`p`,Xn,_(C(d)(`projectAgents.stats.total`,{count:E.value.length}))+` · `+_(C(d)(`projectAgents.stats.assignments`,{count:ct.value}))+` · `+_(C(d)(`projectAgents.stats.projects`,{count:lt.value})),1)):f(``,!0)]),T(`div`,Zn,[T(`button`,{class:`quiet-button`,type:`button`,disabled:!Z.value,onClick:Kt},_(C(d)(`projectAgents.add`)),9,Qn),T(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:o[0]||=e=>Jt()},_(C(d)(`employees.recruit`)),9,$n)])]),t(ye,{open:ve.value,"personal-space-id":Z.value,projects:Ge.value,"template-id":xe.value,"default-project-ids":B.value??[],onClose:o[1]||=e=>ve.value=!1,onRecruited:Ke},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),!qe.value&&!Je.value?(r(),D(`div`,er,[T(`span`,null,_(C(d)(`projectAgents.stats.active`,{count:st.value})),1),T(`span`,null,_(C(d)(`projectAgents.stats.noOnlineClaim`)),1)])):f(``,!0),!qe.value&&!Je.value&&!Ge.value.length?(r(),O(ge,{key:1,"personal-space-id":Z.value},null,8,[`personal-space-id`])):f(``,!0),T(`div`,tr,[t(_e,{modelValue:et.value,"onUpdate:modelValue":o[2]||=e=>et.value=e,class:`project-agents-project-filter`,compact:``,projects:Ze.value,label:C(d)(`employees.filterLabel`),hint:C(d)(`employees.filterHint`),"empty-label":C(d)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),T(`label`,nr,[T(`span`,rr,_(C(d)(`projectAgents.searchLabel`)),1),c(T(`input`,{"onUpdate:modelValue":o[3]||=e=>ce.value=e,type:`search`,placeholder:C(d)(`projectAgents.searchPlaceholder`)},null,8,ir),[[m,ce.value]])]),T(`div`,{class:`project-agents-status-filter`,"aria-label":C(d)(`projectAgents.fields.status`)},[(r(!0),D(g,null,a(nt.value,e=>(r(),D(`button`,{key:e.value,type:`button`,"aria-pressed":W.value===e.value,onClick:t=>W.value=e.value},_(e.label),9,or))),128))],8,ar)]),tt.value?(r(),O(Ut,{key:tt.value,"personal-space-id":Z.value,"personal-project-id":tt.value,"project-name":zt(tt.value),agents:E.value,onSelect:o[4]||=e=>K.value=e},null,8,[`personal-space-id`,`personal-project-id`,`project-name`,`agents`])):f(``,!0),qe.value?(r(),O(A,{key:3,label:C(b).state?C(d)(`projectAgents.loading`):C(d)(`common.status.loadingConsole`)},null,8,[`label`])):Je.value?(r(),D(`div`,sr,[T(`p`,null,_(Je.value),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:Ye},_(C(d)(`projectAgents.retry`)),1)])):E.value.length?rt.value.length?(r(),D(`div`,dr,[T(`div`,{class:`project-agent-list`,role:`list`,"aria-label":C(d)(`projectAgents.listLabel`)},[(r(!0),D(g,null,a(rt.value,e=>(r(),D(`div`,{key:e.agentId,class:`project-agent-row-shell`},[T(`button`,{type:`button`,class:S([`project-agent-row`,{selected:K.value===e.agentId}]),"aria-current":K.value===e.agentId?`true`:void 0,onClick:t=>K.value=e.agentId},[T(`span`,mr,[e.profile.occupationEmoji?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${C(d)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},_(e.profile.occupationEmoji),9,hr)):f(``,!0),T(`strong`,null,_(e.profile.displayName||e.profile.name),1),T(`i`,gr,_(En(e.profile.agentType)),1),T(`i`,{class:S([`ui-badge`,`is-${e.profile.status}`])},_(C(d)(`projectAgents.status.${e.profile.status}`)),3)]),T(`span`,_r,[(r(!0),D(g,null,a(Ht(e).slice(0,3),e=>(r(),D(`b`,{key:e.id},_(e.name),1))),128)),Ht(e).length>3?(r(),D(`b`,vr,`+`+_(Ht(e).length-3),1)):f(``,!0),Ht(e).length?f(``,!0):(r(),D(`em`,yr,_(C(d)(`employees.noAssignedProjects`)),1))]),T(`span`,br,_(e.profile.responsibility||C(d)(`projectAgents.notReported`)),1),T(`span`,xr,[wn(e)?(r(),D(g,{key:0},[T(`i`,{class:S([`project-agent-work-dot`,{"is-live":wn(e).status===`running`}]),"aria-hidden":`true`},null,2),s(_(Tn(wn(e).status))+` · `+_(wn(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(r(),D(g,{key:1},[s(_(Tn(e.workStatus))+` · `+_(C(d)(`projectAgents.detail.stateReported`)),1)],64)):(r(),D(g,{key:2},[s(_(C(d)(`projectAgents.detail.noRun`)),1)],64))])],10,pr),t(z,{"agent-id":e.agentId},null,8,[`agent-id`])]))),128))],8,fr),Q.value?(r(),D(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Q.value.profile.displayName||Q.value.profile.name},[T(`header`,null,[T(`div`,Cr,[T(`h3`,null,[Q.value.profile.occupationEmoji?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${C(d)(`projectAgents.fields.occupationEmoji`)}: ${Q.value.profile.occupationEmoji}`},_(Q.value.profile.occupationEmoji),9,wr)):f(``,!0),s(_(Q.value.profile.displayName||Q.value.profile.name)+` `,1),t(z,{"agent-id":Q.value.agentId},null,8,[`agent-id`])]),T(`p`,null,[s(_(En(Q.value.profile.agentType)),1),Q.value.isTestRole?(r(),D(`span`,Tr,[s(` · `+_(C(d)(`projectAgents.source.testRole`)),1),Q.value.profile.testSource?(r(),D(`span`,Er,` · `+_(Q.value.profile.testSource),1)):f(``,!0)])):f(``,!0)])]),T(`div`,Dr,[T(`button`,{class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:o[5]||=e=>$()},_(C(d)(`projectAgents.detail.refresh`)),9,Or),T(`button`,{class:`quiet-button`,type:`button`,onClick:o[6]||=e=>Yt(Q.value)},_(C(d)(`projectAgents.edit`)),1),Q.value.profile.cleanupEligible?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:o[7]||=e=>Lt(Q.value)},[Ae.value?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.source.cleanupLoading`)},null,8,[`label`])):(r(),D(`span`,Ar,_(C(d)(`projectAgents.source.cleanup`)),1))],8,kr)):f(``,!0)])]),Y.value?(r(),D(`p`,jr,_(Y.value),1)):f(``,!0),it.value?(r(),D(`section`,Mr,[T(`div`,Nr,[T(`div`,null,[T(`h4`,Pr,_(at.value?.management?.mode===`all`?C(d)(`employees.scope.continuousAll`):C(d)(`employees.scope.label`)),1),T(`p`,null,_(C(d)(`employees.assignedCount`,{count:ot.value.length})),1)]),T(`button`,{class:`primary-button`,type:`button`,onClick:o[8]||=e=>Jt(it.value)},_(C(d)(`employees.manageProjects`)),1)]),ot.value.length?(r(),D(`div`,Fr,[(r(!0),D(g,null,a(ot.value,t=>(r(),O(C(N),{key:t.id,to:`/employees/${encodeURIComponent(it.value)}?project=${encodeURIComponent(t.id)}`},{default:e(()=>[T(`span`,null,_(t.name),1),o[12]||=T(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[T(`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))])):(r(),D(`p`,Ir,_(C(d)(`employees.manageHint`)),1))])):f(``,!0),T(`section`,Lr,[T(`h4`,null,_(C(d)(`projectAgents.fields.responsibility`)),1),T(`p`,null,_(Q.value.profile.responsibility||C(d)(`projectAgents.notReported`)),1),Q.value.profile.capabilities.length?(r(),D(`div`,Rr,[(r(!0),D(g,null,a(Q.value.profile.capabilities,e=>(r(),D(`span`,{key:e},_(e),1))),128))])):f(``,!0)]),T(`div`,zr,[t(qt,i(xt(`tasks`),{label:St(`tasks`),onRetry:$}),{default:e(()=>[Oe.value[Q.value.agentId]?(r(),D(`p`,Br,_(C(d)(`agentProfiles.partial`)),1)):f(``,!0),T(`section`,Vr,[T(`div`,Hr,[T(`h4`,null,_(C(d)(`projectAgents.sections.tasks`)),1),T(`span`,null,_(Q.value.tasks?.length??0),1)]),Q.value.tasks?.length?(r(),D(`div`,Ur,[(r(!0),D(g,null,a(Q.value.tasks,e=>(r(),D(`article`,{id:`task-${e.taskId}`,key:e.taskId,class:S([`ui-card project-agent-task-card`,{"is-linked":e.taskId===C(w).query.task}])},[T(`header`,null,[T(`div`,null,[T(`strong`,null,_(e.title),1),T(`small`,null,_(zt(e.personalProjectId)),1)]),T(`i`,{class:S([`ui-badge`,`is-${e.status}`])},_(Tn(e.status)),3)]),e.resultSummary||e.failureReason?(r(),D(`p`,Gr,_(e.resultSummary||e.failureReason),1)):f(``,!0),T(`small`,null,_(C(d)(`projectAgents.fields.collaborators`))+` · `+_(e.participants.length),1),e.participants.length?(r(),D(`div`,Kr,[(r(!0),D(g,null,a(e.participants,t=>(r(),D(`span`,{key:`${e.taskId}:${t.agentId}`},_(E.value.find(e=>e.agentId===t.agentId)?.profile.displayName||E.value.find(e=>e.agentId===t.agentId)?.profile.name||t.agentId)+` · `+_(vn(t.role)),1))),128))])):f(``,!0),t(tn,{task:e,"project-name":zt(e.personalProjectId)},null,8,[`task`,`project-name`]),T(`details`,{class:`ui-disclosure project-agent-disclosure`,open:e.taskId===C(w).query.task,"data-task-details":``},[T(`summary`,null,_(C(d)(`projectAgents.taskDetails`)),1),T(`small`,null,_(e.taskId),1),e.executionSummary===void 0?f(``,!0):(r(),D(`section`,{key:0,class:`project-agent-execution-summary`,"aria-label":C(d)(`projectAgents.fields.executionSummary`)},[T(`div`,Yr,[T(`h5`,null,_(C(d)(`projectAgents.fields.executionSummary`)),1),T(`span`,null,_(e.executionSummary.length),1)]),e.executionSummary.length?(r(),D(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":C(d)(`projectAgents.fields.executionSummary`)},[T(`table`,Zr,[T(`caption`,Qr,_(C(d)(`projectAgents.fields.executionSummary`)),1),T(`thead`,null,[T(`tr`,null,[T(`th`,$r,_(C(d)(`projectAgents.fields.worker`)),1),T(`th`,ei,_(C(d)(`projectAgents.fields.workSummary`)),1),T(`th`,ti,_(C(d)(`projectAgents.fields.toolsUsed`)),1),T(`th`,ni,_(C(d)(`projectAgents.fields.executionEnvironment`)),1),T(`th`,ri,_(C(d)(`projectAgents.fields.sourceSession`)),1),T(`th`,ii,_(C(d)(`projectAgents.fields.tokenUsage`)),1),T(`th`,ai,_(C(d)(`projectAgents.fields.terminalStatus`)),1)])]),T(`tbody`,null,[(r(!0),D(g,null,a(e.executionSummary,(t,n)=>(r(),D(`tr`,{key:e.taskId+`:execution:`+(t.workerId||t.agentId||n),class:`project-agent-execution-summary-row`},[T(`th`,oi,[T(`span`,si,[gn(t)?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":C(d)(`projectAgents.fields.occupationEmoji`)+`: `+gn(t)},_(gn(t)),9,ci)):f(``,!0),s(` `+_(hn(t)),1)]),t.agentId||t.workerId?(r(),D(`small`,li,_(t.workerId||t.agentId),1)):f(``,!0),T(`small`,null,_(vn(t.participantRole)),1)]),T(`td`,{"data-label":C(d)(`projectAgents.fields.workSummary`)},_(t.workSummary||C(d)(`projectAgents.notReported`)),9,ui),T(`td`,{"data-label":C(d)(`projectAgents.fields.toolsUsed`)},_(t.toolsUsed?t.toolsUsed.join(` · `)||C(d)(`projectAgents.noToolsUsed`):C(d)(`projectAgents.notReported`)),9,di),T(`td`,{"data-label":C(d)(`projectAgents.fields.executionEnvironment`)},[T(`strong`,null,_(t.executor||C(d)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(r(),D(`small`,pi,_(t.executorId),1)):f(``,!0),t.actualModelProvider||t.actualModel?(r(),D(`small`,mi,_([t.actualModelProvider,t.actualModel].filter(Boolean).join(` · `)),1)):f(``,!0)],8,fi),T(`td`,{"data-label":C(d)(`projectAgents.fields.sourceSession`)},[T(`span`,null,[t.workerRuntime?(r(),D(g,{key:0},[s(_(C(d)(`projectAgents.fields.workerSession`))+` · `,1)],64)):f(``,!0),s(_(Dn(t.workerRuntime?.application||t.sourceApplication)),1)]),xn(t)?(r(),D(`a`,{key:0,href:xn(t)||void 0,target:`_blank`,rel:`noreferrer`},_(Cn(t)||xn(t)),9,gi)):(r(),D(`small`,_i,_(Cn(t)||C(d)(`projectAgents.notReported`)),1)),t.workerRuntime?(r(),D(g,{key:2},[T(`small`,vi,_(C(d)(`projectAgents.fields.reporterSession`))+` · `+_(Dn(t.sourceApplication)),1),Sn(t.sourceSessionUrl)?(r(),D(`a`,{key:0,href:Sn(t.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},_(t.sourceSessionId||t.sourceSessionUrl),9,yi)):(r(),D(`small`,bi,_(t.sourceSessionId||C(d)(`projectAgents.notReported`)),1))],64)):f(``,!0)],8,hi),T(`td`,{"data-label":C(d)(`projectAgents.fields.tokenUsage`)},_(bn(t.tokenUsage)),9,xi),T(`td`,{"data-label":C(d)(`projectAgents.fields.terminalStatus`)},[t.status?(r(),D(`i`,{key:0,class:S(`is-`+t.status)},_(_n(t.status)),3)):(r(),D(`span`,Ci,_(C(d)(`projectAgents.notReported`)),1))],8,Si)]))),128))])])],8,Xr)):(r(),D(`p`,wi,_(C(d)(`projectAgents.detail.noExecutionSummary`)),1))],8,Jr)),C(ie)(e).length?(r(),D(`section`,{key:1,class:`project-agent-worker-event-evidence`,"aria-label":C(d)(`projectAgents.fields.workerEventEvidence`)},[T(`div`,Ei,[T(`h5`,null,_(C(d)(`projectAgents.fields.workerEventEvidence`)),1),T(`span`,null,_(C(ie)(e).length),1)]),T(`ul`,Di,[(r(!0),D(g,null,a(C(ie)(e),t=>(r(),D(`li`,{key:`${e.taskId}:worker-event:${t.eventId}`,class:`project-agent-worker-event-row`},[T(`header`,null,[T(`strong`,null,[pn(t)?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${C(d)(`projectAgents.fields.occupationEmoji`)}: ${pn(t)}`},_(pn(t)),9,Oi)):f(``,!0),s(_(fn(t)),1),t.agentId?(r(),D(`small`,ki,_(C(d)(`projectAgents.fields.agentId`))+` · `+_(t.agentId),1)):f(``,!0)]),T(`i`,{class:S(`is-${t.workerStatus||t.status}`)},_(mn(t)),3)]),T(`dl`,Ai,[T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.workSummary`)),1),T(`dd`,null,_(t.summary||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.sourceApplication`)),1),T(`dd`,null,_(Dn(t.sourceApplication)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.sourceSession`)),1),T(`dd`,null,_(t.sourceSessionId||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.tokenUsage`)),1),T(`dd`,null,_(bn(t.tokenUsage)),1)]),t.actualModelProvider||t.actualModel?(r(),D(`div`,ji,[T(`dt`,null,_(C(d)(`projectAgents.fields.actualModel`)),1),T(`dd`,null,[t.actualModelProvider?(r(),D(`span`,Mi,_(t.actualModelProvider),1)):f(``,!0),t.actualModelProvider&&t.actualModel?(r(),D(`span`,Ni,` · `)):f(``,!0),t.actualModel?(r(),D(`span`,Pi,_(t.actualModel),1)):f(``,!0)])])):f(``,!0),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.reportedAt`)),1),T(`dd`,null,_(rn(t.createdAt)),1)])])]))),128))])],8,Ti)):f(``,!0),e.effectiveModelStrategy?(r(),D(`small`,Fi,_(C(d)(`projectAgents.fields.strategySource`))+` · `+_(e.modelStrategySource||C(d)(`projectAgents.notReported`))+` · `+_(on(e.effectiveModelStrategy))+` · `+_(sn(e.effectiveExecutorPolicy)),1)):f(``,!0),e.routingDecision?(r(),D(`div`,Ii,[T(`div`,Li,[T(`span`,null,_(C(d)(`projectAgents.fields.reportedStaffingDecision`)),1),T(`strong`,null,_(e.routingDecision.outcome||C(d)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(r(),D(`small`,Ri,_(C(d)(`projectAgents.fields.coordinator`))+` · `+_(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):f(``,!0),T(`small`,null,_(C(d)(`projectAgents.fields.matchBasis`))+` · `+_(e.routingDecision.matchBasis?.join(` · `)||C(d)(`projectAgents.notReported`))+` · `+_(e.routingDecision.reason||C(d)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(r(),D(`small`,zi,_(C(d)(`projectAgents.fields.candidateAgents`))+` · `+_(e.routingDecision.candidateAgentIds.join(` · `)),1)):f(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(r(),D(`small`,Bi,[s(_(C(d)(`projectAgents.fields.complexity`))+` · `+_(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(r(),D(`span`,Vi,` · `+_(e.routingDecision.complexityBasis.join(` · `)),1)):f(``,!0)])):f(``,!0),C(me)(e.routingDecision.parallelPlan)?(r(),D(`small`,Hi,[s(_(C(d)(`projectAgents.fields.parallelPlan`))+` · `+_(e.routingDecision.parallelPlan?.reason||C(d)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(r(),D(`span`,Ui,` · `+_(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):f(``,!0)])):f(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(r(),D(`small`,Wi,_(e.routingDecision.ruleId||C(d)(`projectAgents.notReported`))+` · `+_(e.routingDecision.fallback||C(d)(`projectAgents.notReported`)),1)):f(``,!0)])):f(``,!0),T(`div`,Gi,[T(`span`,null,_(C(d)(`projectAgents.fields.actualExecution`)),1),dn(e)?(r(),D(`strong`,Ki,_(dn(e)?.executor||dn(e)?.provider||C(d)(`projectAgents.notReported`))+` / `+_(dn(e)?.model||C(d)(`projectAgents.notReported`))+` / `+_(Dn(dn(e)?.client)),1)):(r(),D(`span`,qi,_(C(d)(`projectAgents.detail.notReportedActualExecution`)),1)),dn(e)?.rule||dn(e)?.fallback?(r(),D(`small`,Ji,_(dn(e)?.rule||C(d)(`projectAgents.notReported`))+` · `+_(dn(e)?.fallback||C(d)(`projectAgents.notReported`)),1)):f(``,!0)]),e.runId?(r(),D(`small`,Yi,_(C(d)(`projectAgents.fields.run`))+` · `+_(e.runId),1)):(r(),D(`small`,Xi,_(C(d)(`projectAgents.detail.noRun`)),1))],8,qr)],10,Wr))),128))])):Oe.value[Q.value.agentId]?f(``,!0):(r(),D(`p`,Zi,_(C(d)(`projectAgents.detail.noTasks`)),1))])]),_:1},16,[`label`])]),T(`details`,Qi,[T(`summary`,null,_(C(d)(`projectAgents.sections.assignments`)),1),T(`div`,$i,[t(qt,i(xt(`assignments`),{label:St(`assignments`),onRetry:$}),{default:e(()=>[T(`section`,ea,[T(`div`,ta,[T(`h4`,null,_(C(d)(`projectAgents.sections.assignments`)),1),T(`div`,na,[T(`span`,null,_(Bt(Q.value).length),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:o[9]||=e=>Zt(Q.value)},_(C(d)(`projectAgents.assignmentDialog.assign`)),1)])]),Bt(Q.value).length?(r(),D(`div`,ra,[(r(!0),D(g,null,a(Bt(Q.value),e=>(r(),D(`article`,{key:e.assignmentId,class:`ui-card project-agent-assignment-card`},[T(`header`,null,[T(`strong`,null,_(zt(e.personalProjectId)),1),T(`div`,ia,[T(`i`,{class:S([`ui-badge`,`is-${e.status}`])},_(C(d)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>Zt(Q.value,e,`end`)},_(C(d)(`projectAgents.assignmentDialog.end`)),9,aa)):f(``,!0),e.status===`active`?(r(),D(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>Zt(Q.value,e,`replace`)},_(C(d)(`projectAgents.assignmentDialog.replace`)),9,oa)):f(``,!0)])]),T(`p`,null,_(e.responsibility||C(d)(`projectAgents.notReported`)),1),e.scope?(r(),D(`small`,sa,_(C(d)(`projectAgents.fields.scope`))+` · `+_(e.scope),1)):f(``,!0),T(`small`,null,_(rn(e.assignedAt))+` → `+_(e.endedAt?rn(e.endedAt):C(d)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(r(),D(`div`,ca,[(r(!0),D(g,null,a(e.workKinds,e=>(r(),D(`span`,{key:e},_(e),1))),128))])):f(``,!0),T(`div`,la,[T(`span`,null,_(C(d)(`projectAgents.fields.assignmentModel`)),1),T(`strong`,null,_(on(e.modelStrategyOverride))+` · `+_(sn(e.executorPolicyOverride)),1),cn(e.executorPolicyOverride)&&!ln(e.executorPolicyOverride).length?(r(),D(`small`,ua,_(C(d)(`projectAgents.strategy.lockedUnavailable`)),1)):f(``,!0)]),ln(e.executorPolicyOverride).length?(r(),D(`div`,da,[(r(!0),D(g,null,a(ln(e.executorPolicyOverride),e=>(r(),D(`span`,{key:e.executorId},_(e.label||e.executorId),1))),128))])):f(``,!0),e.reason?(r(),D(`small`,fa,_(C(d)(`projectAgents.fields.reason`))+` · `+_(e.reason),1)):f(``,!0)]))),128))])):(r(),D(`p`,pa,_(C(d)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16,[`label`])])]),T(`details`,ma,[T(`summary`,null,_(C(d)(`projectAgents.sections.activity`)),1),T(`div`,ha,[t(qt,i(xt(`activity`),{label:St(`activity`),onRetry:$}),{default:e(()=>[T(`section`,ga,[T(`div`,_a,[T(`h4`,null,_(C(d)(`projectAgents.sections.activity`)),1),dt.value?(r(),D(`span`,va,_(dt.value.days.length),1)):f(``,!0)]),dt.value?.days.length?(r(),D(`div`,ya,[T(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":C(d)(`projectAgents.activity.aria`)},[(r(!0),D(g,null,a(dt.value.days,e=>(r(),D(`button`,{key:e.date,type:`button`,role:`listitem`,class:S([`project-agent-heat-cell`,`intensity-${Fn(e,dt.value)}`,{selected:ke.value===e.date}]),"aria-label":`${an(e.date)} · ${e.total}`,"aria-pressed":ke.value===e.date,onClick:t=>In(e)},[T(`span`,Sa,_(an(e.date))+` · `+_(e.total),1)],10,xa))),128))],8,ba),ft.value?(r(),D(`article`,Ca,[T(`header`,null,[T(`strong`,null,_(an(ft.value.date)),1),T(`span`,null,_(ft.value.total),1)]),ft.value.tasks?.length?(r(),D(`ul`,Ta,[(r(!0),D(g,null,a(ft.value.tasks,e=>(r(),D(`li`,{key:e.taskId},[T(`strong`,null,_(e.title),1),T(`span`,null,_(Tn(e.status))+` · `+_(zt(e.personalProjectId)),1),T(`small`,null,_(e.summary||C(d)(`projectAgents.notReported`)),1)]))),128))])):(r(),D(`p`,wa,_(C(d)(`projectAgents.activity.noTasks`)),1))])):f(``,!0)])):(r(),D(`p`,Ea,_(C(d)(`projectAgents.activity.empty`)),1))])]),_:1},16,[`label`])])]),Q.value.memoryScope===`reviewed_agent`?(r(),O(re,{key:Q.value.agentId,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:ot.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):f(``,!0),Q.value.memoryScope===`reviewed_agent`?(r(),O(un,{key:3,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:ot.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):f(``,!0),T(`details`,Da,[T(`summary`,null,_(C(d)(`projectAgents.profileDetails`)),1),T(`dl`,Oa,[T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.assignments`)),1),T(`dd`,null,_(Vt(Q.value).length),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.memoryScope`)),1),T(`dd`,null,_(Q.value.memoryScope??C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.status`)),1),T(`dd`,null,_(C(d)(`projectAgents.status.${Q.value.profile.status}`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.recruitment`)),1),T(`dd`,null,[s(_(Dn(Q.value.recruitmentSourceApplication)),1),Q.value.recruitmentReason?(r(),D(`small`,ka,_(Q.value.recruitmentReason),1)):f(``,!0)])]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.updatedAt`)),1),T(`dd`,null,_(rn(Q.value.updatedAt)),1)])])]),T(`details`,{class:`ui-disclosure project-agent-disclosure`,open:mt.value.some(e=>e.status===`awaiting_confirmation`)},[T(`summary`,null,_(C(d)(`projectAgents.sections.recruitment`)),1),T(`div`,ja,[t(qt,i(xt(`recruitments`),{label:St(`recruitments`),onRetry:$}),{default:e(()=>[T(`section`,Ma,[T(`div`,Na,[T(`h4`,Pa,_(C(d)(`projectAgents.sections.recruitment`)),1),T(`span`,null,_(mt.value.length),1)]),mt.value.length?(r(),D(`div`,Fa,[(r(!0),D(g,null,a(mt.value,e=>(r(),D(`article`,{key:e.recruitmentId,class:`ui-card project-agent-recruitment-card`},[T(`header`,null,[T(`strong`,null,_(e.positionKind)+` · `+_(e.workKind||C(d)(`projectAgents.notReported`)),1),T(`div`,Ia,[T(`i`,La,_(e.status),1),e.status===`awaiting_confirmation`?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>Ot(e,`approve`)},[X.value===e.recruitmentId&&Ne.value===`approve`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.recruitment.approving`)},null,8,[`label`])):(r(),D(`span`,za,_(C(d)(`projectAgents.recruitment.approve`)),1))],8,Ra)):f(``,!0),e.status===`awaiting_confirmation`?(r(),D(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>Ot(e,`cancel`)},[X.value===e.recruitmentId&&Ne.value===`cancel`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.recruitment.cancelling`)},null,8,[`label`])):(r(),D(`span`,Va,_(C(d)(`projectAgents.recruitment.cancel`)),1))],8,Ba)):f(``,!0)])]),T(`dl`,Ha,[T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.hr`)),1),T(`dd`,null,_(e.hrAgentId||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.trigger`)),1),T(`dd`,null,_(Dn(e.triggerSourceApplication)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.reason`)),1),T(`dd`,null,_(e.reason||e.reasonCode||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.time`)),1),T(`dd`,null,_(rn(e.fulfilledAt||e.createdAt)),1)])]),T(`small`,null,_(C(d)(`projectAgents.recruitment.testSource`))+` · `+_(e.testSource||C(d)(`projectAgents.notReported`)),1)]))),128))])):(r(),D(`p`,Ua,_(C(d)(`projectAgents.recruitment.empty`)),1))])]),_:1},16,[`label`])])],8,Aa),(r(),D(`details`,{key:`advanced:${Q.value.agentId}`,class:`ui-disclosure project-agent-disclosure`,"data-agent-advanced":``},[T(`summary`,null,_(C(d)(`projectAgents.advanced`)),1),T(`div`,Wa,[t(qt,i(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:e(()=>[T(`section`,Ga,[T(`div`,Ka,[T(`h4`,null,_(C(d)(`projectAgents.sections.strategy`)),1),T(`span`,null,_(on(Q.value.profile.defaultModelStrategy))+` · `+_(sn(Q.value.profile.executorPolicy)),1)]),T(`p`,qa,_(C(d)(`projectAgents.strategy.providerNeutral`)),1),ln(Q.value.profile.executorPolicy).length?(r(),D(`div`,Ja,[(r(!0),D(g,null,a(ln(Q.value.profile.executorPolicy),e=>(r(),D(`span`,{key:e.executorId},_(e.label||e.executorId),1))),128))])):cn(Q.value.profile.executorPolicy)?(r(),D(`p`,Ya,_(C(d)(`projectAgents.strategy.lockedUnavailable`)),1)):(r(),D(`p`,Xa,_(C(d)(`projectAgents.strategy.noAllowList`)),1)),T(`div`,Za,[T(`button`,{class:`quiet-button`,type:`button`,onClick:o[10]||=e=>At()},_(C(d)(`projectAgents.routing.addExecutor`)),1)]),Q.value.executorDirectory?.length?(r(),D(`div`,Qa,[(r(!0),D(g,null,a(Q.value.executorDirectory,e=>(r(),D(`div`,{key:e.executorId,class:`project-agent-executor-row`},[T(`strong`,null,_(e.displayName||e.label||e.executorId),1),T(`span`,null,_(e.provider||C(d)(`projectAgents.notReported`))+` / `+_(e.model||C(d)(`projectAgents.notReported`)),1),T(`span`,null,_(e.globalPriority??C(d)(`projectAgents.notReported`)),1),T(`small`,null,_(e.registrationStatus||C(d)(`projectAgents.notReported`))+` · `+_(e.permissionStatus||C(d)(`projectAgents.notReported`))+` · `+_(e.preflightStatus||C(d)(`projectAgents.strategy.availabilityUnreported`))+` · `+_(e.healthStatus||C(d)(`projectAgents.notReported`)),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:t=>At(e)},_(C(d)(`projectAgents.routing.editExecutor`)),9,$a),e.permissionStatus===`authorized`?(r(),D(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Pe.value,onClick:t=>kt(e,`revoked`)},[Pe.value===e.executorId&&Fe.value===`revoke`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.routing.revoking`)},null,8,[`label`])):(r(),D(`span`,ro,_(C(d)(`projectAgents.routing.revoke`)),1))],8,no)):(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Pe.value,onClick:t=>kt(e,`authorized`)},[Pe.value===e.executorId&&Fe.value===`authorize`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.routing.authorizing`)},null,8,[`label`])):(r(),D(`span`,to,_(C(d)(`projectAgents.routing.authorize`)),1))],8,eo))]))),128))])):f(``,!0)])]),_:1},16,[`label`])]),T(`div`,io,[t(qt,i(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:e(()=>[T(`section`,ao,[T(`div`,oo,[T(`h4`,null,_(C(d)(`projectAgents.sections.clients`)),1),T(`span`,null,_(On(Q.value).length),1)]),On(Q.value).length?(r(),D(`div`,so,[(r(!0),D(g,null,a(On(Q.value),e=>(r(),D(`div`,{key:e,class:`project-agent-client-row`},[T(`strong`,null,_(Dn(e)),1),T(`span`,null,_(kn(Q.value,e)?.allowed||Q.value.profile.allowedClients?.includes(e)?C(d)(`projectAgents.clients.allowed`):C(d)(`projectAgents.clients.notAllowed`)),1),An(Q.value,e)?(r(),D(`span`,co,_(C(d)(`projectAgents.clients.observed`,{count:An(Q.value,e)})),1)):Q.value.observedClients?.includes(e)?(r(),D(`span`,lo,_(C(d)(`projectAgents.clients.observedAny`)),1)):(r(),D(`span`,uo,_(C(d)(`projectAgents.clients.unreported`)),1)),T(`small`,null,_(kn(Q.value,e)?.integrationStatus||C(d)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(r(),D(`p`,fo,_(C(d)(`projectAgents.clients.empty`)),1))])]),_:1},16,[`label`])]),T(`div`,po,[t(qt,i(xt(`routingRules`),{label:St(`routingRules`),onRetry:$}),{default:e(()=>[T(`section`,mo,[T(`div`,ho,[T(`h4`,null,_(C(d)(`projectAgents.sections.routing`)),1),T(`div`,go,[T(`span`,null,_(Q.value.routingRules?.length??0),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:o[11]||=e=>jt()},_(C(d)(`projectAgents.routing.addRule`)),1)])]),Q.value.routingRules?.length?(r(),D(`div`,_o,[(r(!0),D(g,null,a(Q.value.routingRules,e=>(r(),D(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[T(`strong`,null,_(e.scope)+` · `+_(e.priority),1),T(`span`,null,_(e.workKind||e.reason||C(d)(`projectAgents.notReported`))+` · `+_(e.executorIds?.join(`, `)||C(d)(`projectAgents.notReported`)),1),e.enabled?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>It(e)},[X.value===`rule:${e.ruleId}`&&Ne.value===`disable`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.routing.disabling`)},null,8,[`label`])):(r(),D(`span`,yo,_(C(d)(`projectAgents.routing.disable`)),1))],8,vo)):f(``,!0)]))),128))])):(r(),D(`p`,bo,_(C(d)(`projectAgents.routing.empty`)),1)),T(`small`,xo,_(C(d)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16,[`label`])]),T(`div`,So,[t(qt,i(xt(`learning`),{label:St(`learning`),onRetry:$}),{default:e(()=>[T(`section`,Co,[T(`div`,wo,[T(`h4`,null,_(C(d)(`projectAgents.sections.learning`)),1),T(`span`,null,_(pt.value.length),1)]),pt.value.length?(r(),D(`div`,To,[(r(!0),D(g,null,a(pt.value,([e,t])=>(r(),D(`article`,{key:e,class:`ui-card project-agent-learning-card`},[T(`header`,null,[T(`strong`,null,_(e),1),T(`i`,Eo,_(Mn(t)),1)]),t.personalProjectId||t.workKind||t.executor||t.modelStrategy?(r(),D(`small`,Do,_(zt(t.personalProjectId))+` · `+_(t.workKind||C(d)(`projectAgents.notReported`))+` · `+_(t.executor||C(d)(`projectAgents.notReported`))+` / `+_(t.modelStrategy?on(t.modelStrategy):C(d)(`projectAgents.notReported`)),1)):f(``,!0),T(`p`,null,_(C(d)(`projectAgents.learning.samples`,{count:t.sampleCount}))+` · `+_(C(d)(`projectAgents.learning.recent`,{count:Nn(t)})),1),T(`small`,null,_(t.decayBasis||C(d)(`projectAgents.learning.decayUnreported`))+` · `+_(rn(t.updatedAt)),1),t.outcomes?(r(),D(`div`,Oo,[(r(!0),D(g,null,a(t.outcomes,(e,t)=>c((r(),D(`span`,{key:t},_(t)+` · `+_(e??C(d)(`projectAgents.notReported`)),1)),[[h,e!==void 0]])),128)),t.score!==null&&t.score!==void 0?(r(),D(`span`,ko,_(C(d)(`projectAgents.learning.score`,{score:Pn(t)})),1)):f(``,!0)])):f(``,!0),t.evidence?.length?(r(),D(`ul`,Ao,[(r(!0),D(g,null,a(t.evidence,e=>(r(),D(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[T(`span`,null,_(e.kind)+` · `+_(e.count??0)+` · `+_(e.summary||C(d)(`projectAgents.notReported`)),1),e.evidenceId?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!je.value,onClick:n=>Dt(t,`ignore`,e.evidenceId)},[je.value===e.evidenceId&&Me.value===`ignore`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.learning.ignoring`)},null,8,[`label`])):(r(),D(`span`,Mo,_(C(d)(`projectAgents.learning.ignore`)),1))],8,jo)):f(``,!0)]))),128))])):f(``,!0),t.learningKey?(r(),D(`div`,No,[T(`button`,{class:`quiet-button`,type:`button`,disabled:!!je.value||!t.personalProjectId||!t.workKind||!t.executor,onClick:e=>Dt(t,`reset`)},[je.value===t.learningKey&&Me.value===`reset`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.learning.resetting`)},null,8,[`label`])):(r(),D(`span`,Fo,_(C(d)(`projectAgents.learning.reset`)),1))],8,Po)])):f(``,!0)]))),128))])):(r(),D(`p`,Io,_(C(d)(`projectAgents.learning.empty`)),1)),T(`small`,Lo,_(C(d)(`projectAgents.learning.note`)),1)])]),_:1},16,[`label`])])]))],8,Sr)):(r(),D(`div`,Ro,_(C(d)(`projectAgents.detail.choose`)),1))])):(r(),D(`div`,ur,[T(`strong`,null,_(C(d)(`projectAgents.noMatchTitle`)),1),T(`p`,null,_(C(d)(`projectAgents.noMatchCopy`)),1)])):(r(),D(`div`,cr,[T(`strong`,null,_(C(d)(`projectAgents.emptyTitle`)),1),T(`p`,null,_(C(d)(`projectAgents.emptyCopy`)),1),T(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:Kt},_(C(d)(`projectAgents.add`)),9,lr)])),t(qn,{open:he.value,agent:J.value,projects:Ge.value,"default-project-id":ut.value,"personal-space-id":Z.value,onClose:Xt,onSaved:nn},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),t(Ue,{open:Ce.value,agent:J.value,assignment:Te.value,action:we.value,projects:Ge.value,"available-agents":E.value,"default-project-id":ut.value,onClose:Qt,onSaved:$t,onChanged:en},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),t(vt,{open:Ie.value,mode:Le.value,"personal-space-id":Z.value,executor:Re.value,rule:ze.value,projects:Ge.value,"available-executors":Q.value?.executorDirectory??[],onClose:Mt,onSaved:Ft},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,Jn))}}),[[`__scopeId`,`data-v-3bae9e1f`]]);export{zo 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 ie(){if(F.value)return;let e=s.value.trim(),t=p.value.trim(),n=h.value.trim(),r=v.value.trim(),o=y.value.trim();if(!t||!n||!o){I.value=d(`projectAgents.dialog.required`);return}let c=i.projects.find(({project_id:t})=>t===e);if(e&&!c){I.value=d(`projectAgents.dialog.projectUnavailable`);return}if(r&&!H(r)){I.value=d(`projectAgents.dialog.occupationEmojiInvalid`);return}let l=c?.personal_space_id??i.personalSpaceId??i.agent?.personalSpaceId;if(!l){I.value=d(`projectAgents.dialog.spaceUnavailable`);return}let u=V(x.value),f=V(S.value);if(!u||!f){I.value=d(`projectAgents.dialog.duplicate`);return}let m=V(N.value);if(!m||M.value===`locked`&&!m.length){I.value=d(`projectAgents.dialog.duplicate`);return}F.value=!0,I.value=``;try{let s={...i.agent?.profile,name:n,responsibility:o,capabilities:u,initialPreferences:f,status:E.value};g.value.trim()&&(s.displayName=g.value.trim()),r&&(s.occupationEmoji=r),k.value!==`durable`&&(s.agentType=k.value),j.value!==`adaptive`&&(s.defaultModelStrategy={mode:j.value}),(M.value!==`flexible`||m.length)&&(s.executorPolicy={mode:M.value,lockedExecutorIds:M.value===`locked`?m:[],preferredExecutorIds:M.value===`flexible`?m:[]});let c=await ee(`/api/project-agents`,{personalSpaceId:l,personalProjectId:null,agentId:t,profile:s}),p=c;if(e&&!z.value){let n=await P(`/api/project-agent-assignments`,{personalSpaceId:l,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:o,capabilities:u,reason:d(`projectAgents.dialog.initialAssignmentReason`)});p={...c,personalProjectId:e,assignments:[n]}}a(`saved`,p),a(`close`)}catch(e){I.value=e instanceof Error?e.message:d(`projectAgents.dialog.saveFailed`)}finally{F.value=!1}}function H(e){return Array.from(e).length>32||/\s/u.test(e)||Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)).length!==1?!1:/\p{Extended_Pictographic}|\p{Regional_Indicator}{2}|[#*0-9]\uFE0F?\u20E3/u.test(e)&&/^[\p{Extended_Pictographic}\p{Emoji_Component}\uFE0E\uFE0F\u200D\u{E0020}-\u{E007F}#*0-9]+$/u.test(e)}return(n,i)=>e.open?(r(),D(`dialog`,{key:0,ref_key:`dialogRef`,ref:L,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:i[15]||=(...e)=>C(te)&&C(te)(...e),onKeydown:i[16]||=(...e)=>C(ne)&&C(ne)(...e)},[T(`form`,{class:`project-agent-dialog-shell`,onSubmit:b(ie,[`prevent`])},[T(`header`,dn,[T(`h3`,fn,_(z.value?C(d)(`projectAgents.dialog.editTitle`):C(d)(`projectAgents.dialog.createTitle`)),1),T(`button`,{ref_key:`initialFocusRef`,ref:R,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:F.value,onClick:i[0]||=e=>a(`close`)},_(C(d)(`common.actions.close`)),9,pn)]),T(`div`,mn,[T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.project`)),1),t(ve,{modelValue:s.value,"onUpdate:modelValue":i[1]||=e=>s.value=e,"control-id":`project-agent-project`,options:re.value,label:C(d)(`projectAgents.fields.project`),placeholder:C(d)(`projectAgents.dialog.projectPlaceholder`),disabled:z.value||F.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.status`)),1),c(T(`select`,{"onUpdate:modelValue":i[2]||=e=>E.value=e,name:`project-agent-status`,disabled:F.value},[T(`option`,gn,_(C(d)(`projectAgents.status.active`)),1),T(`option`,_n,_(C(d)(`projectAgents.status.inactive`)),1),T(`option`,vn,_(C(d)(`projectAgents.status.archived`)),1)],8,hn),[[w,E.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.agentType`)),1),c(T(`select`,{"onUpdate:modelValue":i[3]||=e=>k.value=e,name:`project-agent-type`,disabled:F.value},[T(`option`,bn,_(C(d)(`projectAgents.agentType.durable`)),1),T(`option`,xn,_(C(d)(`projectAgents.agentType.hr`)),1),z.value&&k.value===`temporary`?(r(),D(`option`,Sn,_(C(d)(`projectAgents.agentType.temporary`)),1)):f(``,!0),z.value&&k.value===`coordinator`?(r(),D(`option`,Cn,_(C(d)(`projectAgents.agentType.coordinator`)),1)):f(``,!0)],8,yn),[[w,k.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.agentId`)),1),c(T(`input`,{"onUpdate:modelValue":i[4]||=e=>p.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:z.value||F.value,placeholder:C(d)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,wn),[[m,p.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`attention.roleName`)),1),c(T(`input`,{"onUpdate:modelValue":i[5]||=e=>h.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.namePlaceholder`)},null,8,Tn),[[m,h.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`attention.displayName`)),1),c(T(`input`,{"onUpdate:modelValue":i[6]||=e=>g.value=e,name:`project-agent-display-name`,maxlength:`160`,disabled:F.value},null,8,En),[[m,g.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.occupationEmoji`)),1),c(T(`input`,{"onUpdate:modelValue":i[7]||=e=>v.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Dn),[[m,v.value]])]),z.value?(r(),D(`small`,On,_(C(d)(`projectAgents.dialog.idLocked`)),1)):f(``,!0),T(`label`,kn,[T(`span`,null,_(C(d)(`projectAgents.fields.responsibility`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[8]||=e=>y.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,An),[[m,y.value]])]),T(`label`,jn,[T(`span`,null,_(C(d)(`projectAgents.fields.capabilities`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[9]||=e=>x.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Mn),[[m,x.value]])]),T(`label`,Nn,[T(`span`,null,_(C(d)(`projectAgents.fields.initialPreferences`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[10]||=e=>S.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,Pn),[[m,S.value]])]),T(`fieldset`,Fn,[T(`legend`,null,_(C(d)(`projectAgents.fields.defaultModelStrategy`)),1),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.executorPolicy`)),1),c(T(`select`,{"onUpdate:modelValue":i[11]||=e=>M.value=e,name:`project-agent-selection-mode`,disabled:F.value},[T(`option`,Ln,_(C(d)(`projectAgents.strategy.flexible`)),1),T(`option`,Rn,_(C(d)(`projectAgents.strategy.locked`)),1)],8,In),[[w,M.value]])]),T(`label`,null,[T(`span`,null,_(C(d)(`projectAgents.fields.modelIntent`)),1),c(T(`select`,{"onUpdate:modelValue":i[12]||=e=>j.value=e,name:`project-agent-model-mode`,disabled:F.value},[...i[17]||=[T(`option`,{value:`adaptive`},`adaptive`,-1),T(`option`,{value:`fast`},`fast`,-1),T(`option`,{value:`balanced`},`balanced`,-1),T(`option`,{value:`deep`},`deep`,-1)]],8,zn),[[w,j.value]])]),T(`label`,Bn,[T(`span`,null,_(C(d)(`projectAgents.fields.allowList`)),1),c(T(`textarea`,{"onUpdate:modelValue":i[13]||=e=>N.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:F.value,placeholder:C(d)(`projectAgents.dialog.allowListPlaceholder`)},null,8,Vn),[[m,N.value]])]),T(`small`,null,_(M.value===`locked`?C(d)(`projectAgents.strategy.lockedUnavailable`):C(d)(`projectAgents.strategy.providerNeutral`)),1)])]),I.value?(r(),D(`p`,Hn,_(I.value),1)):f(``,!0),T(`footer`,Un,[T(`button`,{class:`quiet-button`,type:`button`,disabled:F.value,onClick:i[14]||=e=>a(`close`)},_(C(d)(`common.actions.cancel`)),9,Wn),T(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:F.value},[F.value?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.dialog.saving`)},null,8,[`label`])):(r(),D(`span`,Kn,_(z.value?C(d)(`projectAgents.dialog.saveEdit`):C(d)(`projectAgents.dialog.saveCreate`)),1))],8,Gn)])],32)],544)):f(``,!0)}}),[[`__scopeId`,`data-v-f3d4e6a7`]]),Jn=[`aria-label`],Yn={class:`project-agents-header`},Xn={key:0,class:`project-agents-header-meta`},Zn={class:`project-agent-header-actions`},Qn=[`disabled`],$n=[`disabled`],er={key:0,class:`project-agents-summary`,"aria-live":`polite`},tr={class:`project-agents-toolbar`},nr={class:`project-agents-search`},rr={class:`sr-only`},ir=[`placeholder`],ar=[`aria-label`],or=[`aria-pressed`,`onClick`],sr={key:4,class:`ui-card project-agents-state is-error`,role:`alert`},cr={key:5,class:`ui-card project-agents-state`},lr=[`disabled`],ur={key:6,class:`ui-card project-agents-state`},dr={key:7,class:`ui-card project-agents-directory`},fr=[`aria-label`],pr=[`aria-current`,`onClick`],mr={class:`project-agent-row-heading`},hr=[`aria-label`],gr={class:`ui-badge project-agent-kind`},_r={class:`project-agent-row-projects`},vr={key:0},yr={key:1},br={class:`project-agent-row-responsibility`},xr={class:`project-agent-row-work`},Sr=[`aria-label`],Cr={class:`project-agent-detail-heading`},wr=[`aria-label`],Tr={key:0},Er={key:0},Dr={class:`project-agent-detail-actions`},Or=[`disabled`],kr=[`disabled`],Ar={key:1},jr={key:0,class:`project-agent-detail-notice`,role:`status`},Mr={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},Nr={class:`employee-project-overview-heading`},Pr={id:`employee-project-overview-title`},Fr={key:0,class:`employee-assigned-projects`},Ir={key:1,class:`employee-project-overview-hint`},Lr={class:`ui-card project-agent-detail-section is-responsibility`},Rr={key:0,class:`project-agent-tags`},zr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},Br={key:0,class:`project-agent-muted`,"data-task-partial":``},Vr={class:`project-agent-detail-section`},Hr={class:`project-agent-section-heading`},Ur={key:0,class:`project-agent-task-list`},Wr=[`id`],Gr={key:0},Kr={key:1,class:`project-agent-inline-list`},qr=[`open`],Jr=[`aria-label`],Yr={class:`project-agent-section-heading`},Xr=[`aria-label`],Zr={class:`project-agent-execution-summary-table`},Qr={class:`sr-only`},$r={scope:`col`},ei={scope:`col`},ti={scope:`col`},ni={scope:`col`},ri={scope:`col`},ii={scope:`col`},ai={scope:`col`},oi={scope:`row`},si={class:`project-agent-execution-worker`},ci=[`aria-label`],li={key:0},ui=[`data-label`],di=[`data-label`],fi=[`data-label`],pi={key:0},mi={key:1},hi=[`data-label`],gi=[`href`],_i={key:1},vi={class:`project-agent-reporter-label`},yi=[`href`],bi={key:1},xi=[`data-label`],Si=[`data-label`],Ci={key:1},wi={key:1,class:`project-agent-muted`},Ti=[`aria-label`],Ei={class:`project-agent-section-heading`},Di={class:`project-agent-execution-summary-list`},Oi=[`aria-label`],ki={key:1},Ai={class:`project-agent-execution-summary-meta`},ji={key:0},Mi={key:0},Ni={key:1},Pi={key:2},Fi={key:2},Ii={key:3,class:`project-agent-routing-decision`},Li={class:`project-agent-section-heading`},Ri={key:0},zi={key:1},Bi={key:2},Vi={key:0},Hi={key:3},Ui={key:0},Wi={key:4},Gi={class:`project-agent-execution-line`},Ki={key:0},qi={key:1},Ji={key:2},Yi={key:4},Xi={key:5},Zi={key:1,class:`project-agent-muted`},Qi={class:`ui-disclosure project-agent-disclosure`},$i={class:`project-agent-detail-source`,"data-detail-section":`assignments`},ea={class:`project-agent-detail-section`},ta={class:`project-agent-section-heading`},na={class:`project-agent-section-tools`},ra={key:0,class:`project-agent-assignment-list`},ia={class:`project-agent-card-actions`},aa=[`onClick`],oa=[`onClick`],sa={key:0},ca={key:1,class:`project-agent-inline-list`},la={class:`project-agent-strategy-note`},ua={key:0},da={key:2,class:`project-agent-tags`},fa={key:3},pa={key:1,class:`project-agent-muted`},ma={class:`ui-disclosure project-agent-disclosure`},ha={class:`project-agent-detail-source`,"data-detail-section":`activity`},ga={class:`project-agent-detail-section`},_a={class:`project-agent-section-heading`},va={key:0},ya={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},ba=[`aria-label`],xa=[`aria-label`,`aria-pressed`,`onClick`],Sa={class:`sr-only`},Ca={key:0,class:`project-agent-day-detail`},wa={key:0,class:`project-agent-muted`},Ta={key:1},Ea={key:1,class:`project-agent-muted`},Da={class:`ui-disclosure project-agent-disclosure`},Oa={class:`project-agent-detail-meta`},ka={key:0},Aa=[`open`],ja={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},Ma={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},Na={class:`project-agent-section-heading`},Pa={id:`project-agent-recruitment-heading`},Fa={key:0,class:`project-agent-recruitment-list`},Ia={class:`project-agent-card-actions`},La={class:`ui-badge`},Ra=[`disabled`,`onClick`],za={key:1},Ba=[`disabled`,`onClick`],Va={key:1},Ha={class:`project-agent-compact-meta`},Ua={key:1,class:`project-agent-muted`},Wa={class:`project-agent-detail-source`,"data-detail-section":`executors`},Ga={class:`project-agent-detail-section`},Ka={class:`project-agent-section-heading`},qa={class:`project-agent-muted`},Ja={key:0,class:`project-agent-tags`},Ya={key:1,class:`project-agent-blocked`},Xa={key:2,class:`project-agent-muted`},Za={class:`project-agent-section-tools`},Qa={key:3,class:`project-agent-executor-list`},$a=[`onClick`],eo=[`disabled`,`onClick`],to={key:1},no=[`disabled`,`onClick`],ro={key:1},io={class:`project-agent-detail-source`,"data-detail-section":`clients`},ao={class:`project-agent-detail-section`},oo={class:`project-agent-section-heading`},so={key:0,class:`project-agent-client-list`},co={key:0},lo={key:1},uo={key:2},fo={key:1,class:`project-agent-muted`},po={class:`project-agent-detail-source`,"data-detail-section":`routing`},mo={class:`project-agent-detail-section`},ho={class:`project-agent-section-heading`},go={class:`project-agent-section-tools`},_o={key:0,class:`project-agent-rule-list`},vo=[`disabled`,`onClick`],yo={key:1},bo={key:1,class:`project-agent-muted`},xo={class:`project-agent-note`},So={class:`project-agent-detail-source`,"data-detail-section":`learning`},Co={class:`project-agent-detail-section`},wo={class:`project-agent-section-heading`},To={key:0,class:`project-agent-learning-list`},Eo={class:`ui-badge`},Do={key:0},Oo={key:1,class:`project-agent-inline-list`},ko={key:0},Ao={key:2,class:`project-agent-evidence-list`},jo=[`disabled`,`onClick`],Mo={key:1},No={key:3,class:`project-agent-learning-actions`},Po=[`disabled`,`onClick`],Fo={key:1},Io={key:1,class:`project-agent-muted`},Lo={class:`project-agent-note`},Ro={key:1,class:`project-agent-detail-placeholder`},zo=j(E({__name:`ProjectAgentsPage`,setup(n){let p=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],b=k(),w=M(),E=l([]),j=l(!1),ee=l(``),B=l(null),H=l(!1),W=l(`all`),ce=l(``),K=l(``);o(()=>w.query.agent,e=>{typeof e==`string`&&(K.value=e)},{immediate:!0});let he=l(!1),ve=l(!1),xe=l(``),J=l(null),Ce=l(!1),we=l(`assign`),Te=l(null),Ee=l(!1),De=l({}),Oe=l({}),Y=l(``),ke=l(``),Ae=l(!1),je=l(``),Me=l(``),X=l(``),Ne=l(``),Pe=l(``),Fe=l(``),Ie=l(!1),Le=l(`executor`),Re=l(null),ze=l(null),Be=0,Ve=0,He=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=u(()=>b.state?.personalProjects??[]);async function Ke(e){await ht(),rt.value.some(t=>t.agentId===e.agent.agentId)||(B.value=null,W.value=`all`,ce.value=``);let t=K.value===e.agent.agentId;K.value=e.agent.agentId,t&&$()}let Z=u(()=>b.activePersonalSpace?.id??``),qe=u(()=>j.value||!b.state&&(b.runtimeStatus===`idle`||b.runtimeStatus===`loading`)),Je=u(()=>ee.value||(!b.state&&b.runtimeStatus===`error`?b.feedback?.message||d(`projectAgents.loadError`):``));function Ye(){b.state?ht():b.refresh()}let Xe=u(()=>new Map(Ge.value.map(e=>[e.project_id,e]))),Ze=u(()=>Ge.value.map(e=>({id:e.project_id,name:e.profile.name}))),Qe=u(()=>{let e=typeof w.query.agent==`string`?w.query.agent:``;return e?E.value.find(t=>t.personalSpaceId===Z.value&&(t.agentId===e||t.legacyAgentIds?.includes(e)))??null:null}),$e=u(()=>!!(Qe.value&&typeof w.query.project==`string`&&typeof w.query.task==`string`&&!H.value)),et=u({get:()=>B.value??Ze.value.map(e=>e.id),set:e=>{H.value=!0;let t=Ze.value.filter(t=>e.includes(t.id)).map(e=>e.id);B.value=t.length===Ze.value.length?null:t}}),tt=u(()=>B.value?.length===1?B.value[0]:``);o([()=>w.query.project,Ze],([e,t],n)=>{let r=!n||e!==n[0];typeof e==`string`&&t.some(t=>t.id===e)&&(r||!H.value)&&(B.value=[e],r&&(H.value=!1))},{immediate:!0});let nt=u(()=>[{value:`all`,label:d(`projectAgents.status.all`)},{value:`active`,label:d(`projectAgents.status.active`)},{value:`inactive`,label:d(`projectAgents.status.inactive`)},{value:`archived`,label:d(`projectAgents.status.archived`)}]),rt=u(()=>{let e=ce.value.trim().toLocaleLowerCase(x());return E.value.filter(e=>B.value===null||Ht(e).some(({id:e})=>B.value.includes(e))||$e.value&&e.agentId===Qe.value?.agentId).filter(e=>W.value===`all`||e.profile.status===W.value).filter(t=>!e||Gt(t).toLocaleLowerCase(x()).includes(e)).sort(Rt)}),Q=u(()=>rt.value.find(e=>e.agentId===K.value)??null),it=u(()=>Q.value?te(Q.value):null),at=u(()=>R.value.find(e=>e.id===it.value)),ot=u(()=>Q.value?Ht(Q.value).filter(e=>Xe.value.get(e.id)?.profile.lifecycle!==`archived`):[]),st=u(()=>E.value.filter(({profile:e})=>e.status===`active`).length),ct=u(()=>E.value.reduce((e,t)=>e+Vt(t).length,0)),lt=u(()=>new Set(E.value.flatMap(e=>Vt(e).map(({personalProjectId:e})=>e))).size),ut=u(()=>tt.value?tt.value:Q.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Q.value?.personalProjectId??Ge.value[0]?.project_id??null),dt=u(()=>Q.value?.activity??null),ft=u(()=>dt.value?.days.find(({date:e})=>e===ke.value)??null),pt=u(()=>Object.entries(Q.value?.learningEvidence??{})),mt=u(()=>Q.value?.recruitments??[]);v(()=>{b.runtimeStatus===`idle`&&b.refresh()}),o(Z,e=>{++Be,++Ve,De.value={},Oe.value={},K.value=``,E.value=[],H.value=!1,B.value=typeof w.query.project==`string`&&Ze.value.some(e=>e.id===w.query.project)?[w.query.project]:null,ee.value=``,e?ht(e):j.value=!1},{immediate:!0}),o(rt,e=>{if(!e.some(e=>e.agentId===K.value)){let t=e.find(e=>e.agentId===w.query.agent||typeof w.query.agent==`string`&&e.legacyAgentIds?.includes(w.query.agent));K.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}),o([K,Z],([e,t])=>{ke.value=``,e&&t&&$(e,t)},{immediate:!0});async function ht(e=Z.value){if(!e)return;let t=++Be;j.value=!0,ee.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([F(`/api/project-agents?${n}`),F(`/api/project-agent-tasks?${n}`)]);if(t!==Be)return;if(ne(e),r.status===`rejected`)throw r.reason;if(t===Be){let e=Go(fe(r.value)),t=i.status===`fulfilled`?Kn(i.value).filter(e=>He.has(e.status)):[];E.value=Rn(e,t)}}catch(e){t===Be&&(ee.value=e instanceof Error?e.message:d(`projectAgents.loadError`))}finally{t===Be&&(j.value=!1)}}async function $(e=K.value,t=Z.value){let n=E.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++Ve;Ee.value=!0,Y.value=``,yt(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=be(),o=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),s={assignments:F(`/api/project-agent-assignments?${i}`),tasks:gt(i),activity:F(`/api/project-agent-activity?${o}`),recruitments:F(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:F(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:F(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:F(`/api/project-agent-routing-learning?${i}`)};await Promise.all(p.map(async i=>{try{let a=await s[i];if(!Ct(r,e,t))return;wt(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:d(`projectAgents.detail.sectionUnavailable`)})}})),Ct(r,e,t)&&(Ee.value=!1)}async function gt(e){let t=e.get(`agentId`)??``,n=e.get(`personalSpaceId`)??``,r=typeof w.query.project==`string`?w.query.project:``,i=typeof w.query.task==`string`?w.query.task:``;e=new URLSearchParams({personalSpaceId:n,limit:`200`}),r&&e.set(`personalProjectId`,r);let a=await F(`/api/project-agent-tasks?${e}`);Tt(a,[`tasks`,`items`]);let o=e=>(!e.personalSpaceId||e.personalSpaceId===n)&&(!r||e.personalProjectId===r)&&ue(e,t),s=Kn(a).filter(o);if(i&&!s.some(e=>e.taskId===i)){let t=pe(await F(`/api/project-agent-tasks/${encodeURIComponent(i)}?${e}`));t&&o(t)&&s.unshift(t)}return{tasks:s,partial:!de(a)}}o([()=>w.query.task,Ee],async([e,t])=>{t||typeof e!=`string`||(await y(),document.getElementById(`task-${e}`)?.scrollIntoView?.({block:`nearest`}))});function _t(e=`idle`){return Object.fromEntries(p.map(t=>[t,{status:e,error:``}]))}function yt(e,t){De.value={...De.value,[e]:_t(t)}}function bt(e,t,n){De.value={...De.value,[e]:{...De.value[e]??_t(),[t]:n}}}function xt(e){let t=(Array.isArray(e)?e:[e]).map(e=>De.value[K.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 d(`projectAgents.detail.loading.`+e)}function Ct(e,t,n){return e===Ve&&t===K.value&&n===Z.value}function wt(e,t,n){let r;switch(t){case`assignments`:Tt(n,[`assignments`,`items`]),r={assignments:Vn(n,e)};break;case`tasks`:Tt(n,[`tasks`,`items`]),Oe.value={...Oe.value,[e.agentId]:q(n).partial===!0},r={tasks:Kn(n)};break;case`activity`:{let e=Se(n,{agentId:K.value,personalSpaceId:Z.value});if(!e)throw Error(d(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:Tt(n,[`recruitments`,`items`]),r={recruitments:Bo(n).filter(t=>Vo(t,e))};break;case`executors`:Tt(n,[`executors`,`items`]),r={executorDirectory:Un(n),clientEvidence:Ho(n)};break;case`routingRules`:Tt(n,[`rules`,`items`]),r={routingRules:Uo(n)};break;case`learning`:Tt(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:Wo(n)};break}E.value=E.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function Tt(e,t,n=!1){if(Array.isArray(e))return;let r=q(e);if(!t.some(e=>Array.isArray(r[e])||n&&Et(r[e])))throw Error(d(`projectAgents.detail.sectionUnavailable`))}function Et(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Dt(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=d(`projectAgents.learning.resetUnavailable`);return}je.value=r,Me.value=t;try{await I(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:Z.value,personalProjectId:e.personalProjectId,agentId:i.agentId,workKind:e.workKind,executorId:e.executor,modelStrategy:e.modelStrategy,modelStrategyKey:e.modelStrategyKey,resetAt:t===`reset`?new Date().toISOString():void 0,idempotencyKey:t===`ignore`?`console-learning:${r}:ignore`:We(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.learning.updateFailed`)}finally{je.value=``,Me.value=``}}}async function Ot(e,t){if(!(!Z.value||X.value)){X.value=e.recruitmentId,Ne.value=t;try{await P(`/api/project-agent-recruitments/decision`,{personalSpaceId:Z.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:d(`projectAgents.recruitment.${t}Reason`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.recruitment.decisionFailed`)}finally{X.value=``,Ne.value=``}}}async function kt(e,t){if(!(!Z.value||Pe.value)){Pe.value=e.executorId,Fe.value=t===`authorized`?`authorize`:`revoke`;try{await P(`/api/executors/authorization`,{personalSpaceId:Z.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:We(`console-executor:${e.executorId}:${t}`),reason:d(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.routing.authorizationFailed`)}finally{Pe.value=``,Fe.value=``}}}function At(e=null){Le.value=`executor`,Re.value=e,ze.value=null,Ie.value=!0}function jt(e=null){Le.value=`rule`,ze.value=e,Re.value=null,Ie.value=!0}function Mt(){Ie.value=!1,Re.value=null,ze.value=null}function Nt(e){Q.value&&(E.value=E.value.map(t=>t.agentId===Q.value?.agentId?{...t,executorDirectory:Ko([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),Mt())}function Pt(e){Q.value&&(E.value=E.value.map(t=>t.agentId===Q.value?.agentId?{...t,routingRules:Ko([...t.routingRules??[],e],({ruleId:e})=>e)}:t),Mt())}function Ft(e){Le.value===`executor`?Nt(e):Pt(e)}async function It(e){if(!(!Z.value||!e.ruleId||X.value)){X.value=`rule:${e.ruleId}`,Ne.value=`disable`;try{await I(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:Z.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await $()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.routing.updateFailed`)}finally{X.value=``,Ne.value=``}}}async function Lt(e){if(e.profile.cleanupEligible){Ae.value=!0,Ee.value=!0;try{await L(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await ht()}catch(e){Y.value=e instanceof Error?e.message:d(`projectAgents.source.cleanupFailed`)}finally{Ae.value=!1,Ee.value=!1}}}function Rt(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,x())||e.agentId.localeCompare(t.agentId,x())}function zt(e){return e?Xe.value.get(e)?.profile.name??e:d(`projectAgents.notReported`)}function Bt(e){return e.assignments??(e.personalProjectId?[Wt(e)]:[])}function Vt(e){return[...new Map(Bt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function Ht(e){let t=te(e);return(t?R.value.find(e=>e.id===t):void 0)?.managedProjects??Vt(e).map(e=>({id:e.personalProjectId,name:zt(e.personalProjectId)}))}function Wt(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 Gt(e){return[e.agentId,e.profile.name,e.profile.displayName??``,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Bt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function Kt(){J.value=null,he.value=!0}function Jt(e=``){xe.value=e,ve.value=!0}function Yt(e){J.value=e,he.value=!0}function Xt(){he.value=!1,J.value=null}function Zt(e,t=null,n=`assign`){let r=te(e);if(n===`assign`&&r){Jt(r);return}J.value=e,Te.value=t,we.value=n,Ce.value=!0}function Qt(){Ce.value=!1,Te.value=null,we.value=`assign`}function $t(e){J.value&&(E.value=E.value.map(t=>t.agentId===J.value?.agentId?{...t,assignments:Ko([...t.assignments??[],e],({assignmentId:e})=>e)}:t),K.value=J.value.agentId,Qt())}function en(){Qt(),$()}function nn(e){let t=zn(e),n=E.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));E.value=Go([...n,t]),t.personalProjectId&&(B.value=[t.personalProjectId]),W.value=`all`,ce.value=``,K.value=t.agentId,b.notify(d(`projectAgents.saved`))}function rn(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(x(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function an(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(x(),{month:`short`,day:`numeric`}).format(t)}function on(e){return e?.mode??`adaptive`}function sn(e){return e?.mode??`flexible`}function cn(e){return e?.mode===`locked`}function ln(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function dn(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?oe(t):null}function fn(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||d(`projectAgents.notReported`)}function pn(e){return e.workerOccupationEmoji||``}function mn(e){return _n(e.workerStatus||e.status)}function hn(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||d(`projectAgents.notReported`)}function gn(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function _n(e){return e?Tn(e):d(`projectAgents.notReported`)}function vn(e){if(!e)return d(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=d(t);return n===t?e:n}function yn(e){return d(`projectAgents.tokenSources.${e}`)}function bn(e){return!e||![`executor`,`host`,`dingdong`].includes(e.source)||!Number.isSafeInteger(e.totalTokens)||e.totalTokens<0?`-`:`${new Intl.NumberFormat(x()).format(e.totalTokens)} Token · ${yn(e.source)}`}function xn(e){return Sn(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function Sn(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 Cn(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function wn(e){return(e.tasks??[]).find(e=>He.has(e.status))??null}function Tn(e){let t=`projectAgents.taskStatus.${e}`,n=d(t);return n===t?e:n}function En(e){return d(`projectAgents.agentType.${e??`durable`}`)}function Dn(e){return d(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function On(e){return qo([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function kn(e,t){return e.clientEvidence?.find(e=>e.client===t)}function An(e,t){return kn(e,t)?.actualUse?.count??0}function jn(e){return e.neutral!==!1||e.sampleCount<=0}function Mn(e){return jn(e)?d(`projectAgents.learning.neutral`):d(`projectAgents.learning.recorded`)}function Nn(e){return e.recentWeightedSamples??d(`projectAgents.notReported`)}function Pn(e){return e.score??``}function Fn(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 In(e){ke.value=e.date}function Ln(e,t){return ue(t,e.agentId)}function Rn(e,t){return e.map(e=>{let n=t.filter(t=>Ln(e,t));return n.length?{...e,tasks:Ko([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function zn(e){let t=q(e),n=q(t.profile),r=V(t,`agentId`,`agent_id`)??``,i=V(t,`createdAt`,`created_at`)??``,a=V(t,`updatedAt`,`updated_at`)??i,o={name:V(n,`name`,`name`)??r,displayName:V(n,`displayName`,`display_name`),responsibility:V(n,`responsibility`,`responsibility`)??``,capabilities:G(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:G(U(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:V(n,`status`,`status`)??`active`,occupationEmoji:V(n,`occupationEmoji`,`occupation_emoji`),agentType:V(n,`agentType`,`agent_type`),workKinds:G(U(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:ae(U(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:se(U(n,`executorPolicy`,`executor_policy`)),allowedClients:G(U(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),character:{judgment:String(q(n.character).judgment??``),taste:String(q(n.character).taste??``),personality:String(q(n.character).personality??``)},expectations:V(n,`expectations`,`expectations`)??``,testSource:V(n,`testSource`,`test_source`),cleanupEligible:U(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:V(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>le(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:V(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:V(t,`temporaryTaskId`,`temporary_task_id`),workStatus:V(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:V(t,`currentTaskId`,`current_task_id`),observedClients:G(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:V(t,`recruitedAt`,`recruited_at`),recruitmentReason:V(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:V(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(pe).filter(Boolean),activity:Se(t.activity,{agentId:K.value,personalSpaceId:Z.value}),clientEvidence:Ho(t.clientEvidence??t.client_evidence),routingRules:Uo(t.routingRules??t.routing_rules),learningEvidence:Gn(t.learningEvidence??t.learning_evidence)}}function Bn(e){let t=q(e),n=V(t,`client`,`client`);if(!n)return null;let r=q(U(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:V(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:V(r,`lastUsedAt`,`last_used_at`)}:null}}function Vn(e,t){let n=q(e);return G(Array.isArray(e)?e:n.assignments??n.items).map(e=>le(e,t)).filter(e=>!!e)}function Hn(e){let t=q(e),n=V(t,`provider`,`provider`),r=V(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(U(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:G(U(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:V(t,`observedAt`,`observed_at`),unavailableReason:V(t,`unavailableReason`,`unavailable_reason`)}}function Un(e){let t=q(e);return G(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=q(e),n=V(t,`executorId`,`executor_id`);if(!n)return null;let r=q(U(t,`actualUse`,`actual_use`));return{executorId:n,label:V(t,`label`,`label`),provider:V(t,`provider`,`provider`),model:V(t,`model`,`model`),client:V(t,`client`,`client`),availabilityStatus:V(t,`availabilityStatus`,`availability_status`),personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`),displayName:V(t,`displayName`,`display_name`),executorKind:V(t,`executorKind`,`executor_kind`),capabilities:G(U(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof U(t,`globalPriority`,`global_priority`)==`number`?U(t,`globalPriority`,`global_priority`):null,healthRequired:U(t,`healthRequired`,`health_required`)===!0,registrationStatus:V(t,`registrationStatus`,`registration_status`),permissionStatus:V(t,`permissionStatus`,`permission_status`),preflightStatus:V(t,`preflightStatus`,`preflight_status`),healthStatus:V(t,`healthStatus`,`health_status`),workspacePermission:typeof U(t,`workspacePermission`,`workspace_permission`)==`boolean`?U(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof U(t,`permissionRevision`,`permission_revision`)==`number`?U(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:V(t,`registeredAt`,`registered_at`),updatedAt:V(t,`updatedAt`,`updated_at`),testSource:V(t,`testSource`,`test_source`),cleanupEligible:U(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:G(U(t,`advertisedModels`,`advertised_models`)).map(Hn).filter(e=>e!==null),availableModels:G(U(t,`availableModels`,`available_models`)).map(Hn).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:V(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Wn(e){let t=q(e),n=V(t,`ruleId`,`rule_id`);if(!n)return null;let r=V(t,`status`,`status`);return{ruleId:n,scope:V(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),taskId:V(t,`taskId`,`task_id`),workKind:V(t,`workKind`,`work_kind`),agentId:V(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:G(U(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:G(U(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:ae(U(t,`modelStrategy`,`model_strategy`)),reason:V(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:V(t,`createdAt`,`created_at`),updatedAt:V(t,`updatedAt`,`updated_at`)}}function Gn(e){let t=q(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(q(n))).map((e,t)=>{let n=q(e),r=V(n,`personalProjectId`,`personal_project_id`),i=V(n,`workKind`,`work_kind`),a=V(n,`executorId`,`executor_id`)??V(n,`executor`,`executor`),o=ae(U(n,`modelStrategy`,`model_strategy`)),s=V(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=G(U(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=q(e),n=V(t,`signal`,`signal`),r=V(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof U(t,`decayWeight`,`decay_weight`)==`number`?U(t,`decayWeight`,`decay_weight`):null;return{evidenceId:V(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:V(t,`occurredAt`,`occurred_at`)}}),u=typeof U(n,`weightedSuccess`,`weighted_success`)==`number`?U(n,`weightedSuccess`,`weighted_success`):0,d=typeof U(n,`weightedFailure`,`weighted_failure`)==`number`?U(n,`weightedFailure`,`weighted_failure`):0,f=U(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof U(n,`sampleCount`,`sample_count`)==`number`?U(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof U(n,`recentCount`,`recent_count`)==`number`?U(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:V(n,`asOf`,`as_of`)??V(n,`updatedAt`,`updated_at`),outcomes:{success:typeof U(n,`successCount`,`success_count`)==`number`?U(n,`successCount`,`success_count`):void 0,rework:typeof U(n,`reworkCount`,`rework_count`)==`number`?U(n,`reworkCount`,`rework_count`):void 0,failure:typeof U(n,`failureCount`,`failure_count`)==`number`?U(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof U(n,`ratingCount`,`rating_count`)==`number`?U(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:U(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function Kn(e){let t=q(e);return G(Array.isArray(e)?e:t.tasks??t.items).map(pe).filter(Boolean)}function zo(e){let t=q(e),n=V(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:V(t,`personalProjectId`,`personal_project_id`)??``,taskId:V(t,`taskId`,`task_id`)??``,coordinatorAgentId:V(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:V(t,`hrAgentId`,`hr_agent_id`),positionKind:V(t,`positionKind`,`position_kind`)??`durable`,workKind:V(t,`workKind`,`work_kind`)??``,requiredCapabilities:G(U(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:V(t,`reasonCode`,`reason_code`)??``,reason:V(t,`reason`,`reason`)??``,status:V(t,`status`,`status`)??`unknown`,confirmationMode:V(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:V(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:V(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:V(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:V(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:V(t,`testSource`,`test_source`),cleanupEligible:U(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:V(t,`createdAt`,`created_at`)??``,updatedAt:V(t,`updatedAt`,`updated_at`)??``,fulfilledAt:V(t,`fulfilledAt`,`fulfilled_at`)}:null}function Bo(e){let t=q(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=q(e);return G(Array.isArray(e)?e:t.clients??t.executors??t.items).map(Bn).filter(Boolean)}function Uo(e){let t=q(e);return G(Array.isArray(e)?e:t.rules??t.items).map(Wn).filter(Boolean)}function Wo(e){let t=q(e);return Gn(t.learningEvidence??t.learning_evidence??e)}function Go(e){let t=new Map;return e.map(zn).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Bt(n),...Bt(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(n,o)=>(r(),D(`section`,{class:`view project-agents-view`,"aria-label":C(d)(`projectAgents.aria`)},[T(`header`,Yn,[T(`div`,null,[T(`h2`,null,_(C(d)(`projectAgents.title`)),1),!qe.value&&!Je.value?(r(),D(`p`,Xn,_(C(d)(`projectAgents.stats.total`,{count:E.value.length}))+` · `+_(C(d)(`projectAgents.stats.assignments`,{count:ct.value}))+` · `+_(C(d)(`projectAgents.stats.projects`,{count:lt.value})),1)):f(``,!0)]),T(`div`,Zn,[T(`button`,{class:`quiet-button`,type:`button`,disabled:!Z.value,onClick:Kt},_(C(d)(`projectAgents.add`)),9,Qn),T(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:o[0]||=e=>Jt()},_(C(d)(`employees.recruit`)),9,$n)])]),t(ye,{open:ve.value,"personal-space-id":Z.value,projects:Ge.value,"template-id":xe.value,"default-project-ids":B.value??[],onClose:o[1]||=e=>ve.value=!1,onRecruited:Ke},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),!qe.value&&!Je.value?(r(),D(`div`,er,[T(`span`,null,_(C(d)(`projectAgents.stats.active`,{count:st.value})),1),T(`span`,null,_(C(d)(`projectAgents.stats.noOnlineClaim`)),1)])):f(``,!0),!qe.value&&!Je.value&&!Ge.value.length?(r(),O(ge,{key:1,"personal-space-id":Z.value},null,8,[`personal-space-id`])):f(``,!0),T(`div`,tr,[t(_e,{modelValue:et.value,"onUpdate:modelValue":o[2]||=e=>et.value=e,class:`project-agents-project-filter`,compact:``,projects:Ze.value,label:C(d)(`employees.filterLabel`),hint:C(d)(`employees.filterHint`),"empty-label":C(d)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),T(`label`,nr,[T(`span`,rr,_(C(d)(`projectAgents.searchLabel`)),1),c(T(`input`,{"onUpdate:modelValue":o[3]||=e=>ce.value=e,type:`search`,placeholder:C(d)(`projectAgents.searchPlaceholder`)},null,8,ir),[[m,ce.value]])]),T(`div`,{class:`project-agents-status-filter`,"aria-label":C(d)(`projectAgents.fields.status`)},[(r(!0),D(g,null,a(nt.value,e=>(r(),D(`button`,{key:e.value,type:`button`,"aria-pressed":W.value===e.value,onClick:t=>W.value=e.value},_(e.label),9,or))),128))],8,ar)]),tt.value?(r(),O(Ut,{key:tt.value,"personal-space-id":Z.value,"personal-project-id":tt.value,"project-name":zt(tt.value),agents:E.value,onSelect:o[4]||=e=>K.value=e},null,8,[`personal-space-id`,`personal-project-id`,`project-name`,`agents`])):f(``,!0),qe.value?(r(),O(A,{key:3,label:C(b).state?C(d)(`projectAgents.loading`):C(d)(`common.status.loadingConsole`)},null,8,[`label`])):Je.value?(r(),D(`div`,sr,[T(`p`,null,_(Je.value),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:Ye},_(C(d)(`projectAgents.retry`)),1)])):E.value.length?rt.value.length?(r(),D(`div`,dr,[T(`div`,{class:`project-agent-list`,role:`list`,"aria-label":C(d)(`projectAgents.listLabel`)},[(r(!0),D(g,null,a(rt.value,e=>(r(),D(`div`,{key:e.agentId,class:`project-agent-row-shell`},[T(`button`,{type:`button`,class:S([`project-agent-row`,{selected:K.value===e.agentId}]),"aria-current":K.value===e.agentId?`true`:void 0,onClick:t=>K.value=e.agentId},[T(`span`,mr,[e.profile.occupationEmoji?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${C(d)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},_(e.profile.occupationEmoji),9,hr)):f(``,!0),T(`strong`,null,_(e.profile.displayName||e.profile.name),1),T(`i`,gr,_(En(e.profile.agentType)),1),T(`i`,{class:S([`ui-badge`,`is-${e.profile.status}`])},_(C(d)(`projectAgents.status.${e.profile.status}`)),3)]),T(`span`,_r,[(r(!0),D(g,null,a(Ht(e).slice(0,3),e=>(r(),D(`b`,{key:e.id},_(e.name),1))),128)),Ht(e).length>3?(r(),D(`b`,vr,`+`+_(Ht(e).length-3),1)):f(``,!0),Ht(e).length?f(``,!0):(r(),D(`em`,yr,_(C(d)(`employees.noAssignedProjects`)),1))]),T(`span`,br,_(e.profile.responsibility||C(d)(`projectAgents.notReported`)),1),T(`span`,xr,[wn(e)?(r(),D(g,{key:0},[T(`i`,{class:S([`project-agent-work-dot`,{"is-live":wn(e).status===`running`}]),"aria-hidden":`true`},null,2),s(_(Tn(wn(e).status))+` · `+_(wn(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(r(),D(g,{key:1},[s(_(Tn(e.workStatus))+` · `+_(C(d)(`projectAgents.detail.stateReported`)),1)],64)):(r(),D(g,{key:2},[s(_(C(d)(`projectAgents.detail.noRun`)),1)],64))])],10,pr),t(z,{"agent-id":e.agentId},null,8,[`agent-id`])]))),128))],8,fr),Q.value?(r(),D(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Q.value.profile.displayName||Q.value.profile.name},[T(`header`,null,[T(`div`,Cr,[T(`h3`,null,[Q.value.profile.occupationEmoji?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${C(d)(`projectAgents.fields.occupationEmoji`)}: ${Q.value.profile.occupationEmoji}`},_(Q.value.profile.occupationEmoji),9,wr)):f(``,!0),s(_(Q.value.profile.displayName||Q.value.profile.name)+` `,1),t(z,{"agent-id":Q.value.agentId},null,8,[`agent-id`])]),T(`p`,null,[s(_(En(Q.value.profile.agentType)),1),Q.value.isTestRole?(r(),D(`span`,Tr,[s(` · `+_(C(d)(`projectAgents.source.testRole`)),1),Q.value.profile.testSource?(r(),D(`span`,Er,` · `+_(Q.value.profile.testSource),1)):f(``,!0)])):f(``,!0)])]),T(`div`,Dr,[T(`button`,{class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:o[5]||=e=>$()},_(C(d)(`projectAgents.detail.refresh`)),9,Or),T(`button`,{class:`quiet-button`,type:`button`,onClick:o[6]||=e=>Yt(Q.value)},_(C(d)(`projectAgents.edit`)),1),Q.value.profile.cleanupEligible?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:Ee.value,onClick:o[7]||=e=>Lt(Q.value)},[Ae.value?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.source.cleanupLoading`)},null,8,[`label`])):(r(),D(`span`,Ar,_(C(d)(`projectAgents.source.cleanup`)),1))],8,kr)):f(``,!0)])]),Y.value?(r(),D(`p`,jr,_(Y.value),1)):f(``,!0),it.value?(r(),D(`section`,Mr,[T(`div`,Nr,[T(`div`,null,[T(`h4`,Pr,_(at.value?.management?.mode===`all`?C(d)(`employees.scope.continuousAll`):C(d)(`employees.scope.label`)),1),T(`p`,null,_(C(d)(`employees.assignedCount`,{count:ot.value.length})),1)]),T(`button`,{class:`primary-button`,type:`button`,onClick:o[8]||=e=>Jt(it.value)},_(C(d)(`employees.manageProjects`)),1)]),ot.value.length?(r(),D(`div`,Fr,[(r(!0),D(g,null,a(ot.value,t=>(r(),O(C(N),{key:t.id,to:`/employees/${encodeURIComponent(it.value)}?project=${encodeURIComponent(t.id)}`},{default:e(()=>[T(`span`,null,_(t.name),1),o[12]||=T(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[T(`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))])):(r(),D(`p`,Ir,_(C(d)(`employees.manageHint`)),1))])):f(``,!0),T(`section`,Lr,[T(`h4`,null,_(C(d)(`projectAgents.fields.responsibility`)),1),T(`p`,null,_(Q.value.profile.responsibility||C(d)(`projectAgents.notReported`)),1),Q.value.profile.capabilities.length?(r(),D(`div`,Rr,[(r(!0),D(g,null,a(Q.value.profile.capabilities,e=>(r(),D(`span`,{key:e},_(e),1))),128))])):f(``,!0)]),T(`div`,zr,[t(qt,i(xt(`tasks`),{label:St(`tasks`),onRetry:$}),{default:e(()=>[Oe.value[Q.value.agentId]?(r(),D(`p`,Br,_(C(d)(`agentProfiles.partial`)),1)):f(``,!0),T(`section`,Vr,[T(`div`,Hr,[T(`h4`,null,_(C(d)(`projectAgents.sections.tasks`)),1),T(`span`,null,_(Q.value.tasks?.length??0),1)]),Q.value.tasks?.length?(r(),D(`div`,Ur,[(r(!0),D(g,null,a(Q.value.tasks,e=>(r(),D(`article`,{id:`task-${e.taskId}`,key:e.taskId,class:S([`ui-card project-agent-task-card`,{"is-linked":e.taskId===C(w).query.task}])},[T(`header`,null,[T(`div`,null,[T(`strong`,null,_(e.title),1),T(`small`,null,_(zt(e.personalProjectId)),1)]),T(`i`,{class:S([`ui-badge`,`is-${e.status}`])},_(Tn(e.status)),3)]),e.resultSummary||e.failureReason?(r(),D(`p`,Gr,_(e.resultSummary||e.failureReason),1)):f(``,!0),T(`small`,null,_(C(d)(`projectAgents.fields.collaborators`))+` · `+_(e.participants.length),1),e.participants.length?(r(),D(`div`,Kr,[(r(!0),D(g,null,a(e.participants,t=>(r(),D(`span`,{key:`${e.taskId}:${t.agentId}`},_(E.value.find(e=>e.agentId===t.agentId)?.profile.displayName||E.value.find(e=>e.agentId===t.agentId)?.profile.name||t.agentId)+` · `+_(vn(t.role)),1))),128))])):f(``,!0),t(tn,{task:e,"project-name":zt(e.personalProjectId)},null,8,[`task`,`project-name`]),T(`details`,{class:`ui-disclosure project-agent-disclosure`,open:e.taskId===C(w).query.task,"data-task-details":``},[T(`summary`,null,_(C(d)(`projectAgents.taskDetails`)),1),T(`small`,null,_(e.taskId),1),e.executionSummary===void 0?f(``,!0):(r(),D(`section`,{key:0,class:`project-agent-execution-summary`,"aria-label":C(d)(`projectAgents.fields.executionSummary`)},[T(`div`,Yr,[T(`h5`,null,_(C(d)(`projectAgents.fields.executionSummary`)),1),T(`span`,null,_(e.executionSummary.length),1)]),e.executionSummary.length?(r(),D(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":C(d)(`projectAgents.fields.executionSummary`)},[T(`table`,Zr,[T(`caption`,Qr,_(C(d)(`projectAgents.fields.executionSummary`)),1),T(`thead`,null,[T(`tr`,null,[T(`th`,$r,_(C(d)(`projectAgents.fields.worker`)),1),T(`th`,ei,_(C(d)(`projectAgents.fields.workSummary`)),1),T(`th`,ti,_(C(d)(`projectAgents.fields.toolsUsed`)),1),T(`th`,ni,_(C(d)(`projectAgents.fields.executionEnvironment`)),1),T(`th`,ri,_(C(d)(`projectAgents.fields.sourceSession`)),1),T(`th`,ii,_(C(d)(`projectAgents.fields.tokenUsage`)),1),T(`th`,ai,_(C(d)(`projectAgents.fields.terminalStatus`)),1)])]),T(`tbody`,null,[(r(!0),D(g,null,a(e.executionSummary,(t,n)=>(r(),D(`tr`,{key:e.taskId+`:execution:`+(t.workerId||t.agentId||n),class:`project-agent-execution-summary-row`},[T(`th`,oi,[T(`span`,si,[gn(t)?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":C(d)(`projectAgents.fields.occupationEmoji`)+`: `+gn(t)},_(gn(t)),9,ci)):f(``,!0),s(` `+_(hn(t)),1)]),t.agentId||t.workerId?(r(),D(`small`,li,_(t.workerId||t.agentId),1)):f(``,!0),T(`small`,null,_(vn(t.participantRole)),1)]),T(`td`,{"data-label":C(d)(`projectAgents.fields.workSummary`)},_(t.workSummary||C(d)(`projectAgents.notReported`)),9,ui),T(`td`,{"data-label":C(d)(`projectAgents.fields.toolsUsed`)},_(t.toolsUsed?t.toolsUsed.join(` · `)||C(d)(`projectAgents.noToolsUsed`):C(d)(`projectAgents.notReported`)),9,di),T(`td`,{"data-label":C(d)(`projectAgents.fields.executionEnvironment`)},[T(`strong`,null,_(t.executor||C(d)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(r(),D(`small`,pi,_(t.executorId),1)):f(``,!0),t.actualModelProvider||t.actualModel?(r(),D(`small`,mi,_([t.actualModelProvider,t.actualModel].filter(Boolean).join(` · `)),1)):f(``,!0)],8,fi),T(`td`,{"data-label":C(d)(`projectAgents.fields.sourceSession`)},[T(`span`,null,[t.workerRuntime?(r(),D(g,{key:0},[s(_(C(d)(`projectAgents.fields.workerSession`))+` · `,1)],64)):f(``,!0),s(_(Dn(t.workerRuntime?.application||t.sourceApplication)),1)]),xn(t)?(r(),D(`a`,{key:0,href:xn(t)||void 0,target:`_blank`,rel:`noreferrer`},_(Cn(t)||xn(t)),9,gi)):(r(),D(`small`,_i,_(Cn(t)||C(d)(`projectAgents.notReported`)),1)),t.workerRuntime?(r(),D(g,{key:2},[T(`small`,vi,_(C(d)(`projectAgents.fields.reporterSession`))+` · `+_(Dn(t.sourceApplication)),1),Sn(t.sourceSessionUrl)?(r(),D(`a`,{key:0,href:Sn(t.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},_(t.sourceSessionId||t.sourceSessionUrl),9,yi)):(r(),D(`small`,bi,_(t.sourceSessionId||C(d)(`projectAgents.notReported`)),1))],64)):f(``,!0)],8,hi),T(`td`,{"data-label":C(d)(`projectAgents.fields.tokenUsage`)},_(bn(t.tokenUsage)),9,xi),T(`td`,{"data-label":C(d)(`projectAgents.fields.terminalStatus`)},[t.status?(r(),D(`i`,{key:0,class:S(`is-`+t.status)},_(_n(t.status)),3)):(r(),D(`span`,Ci,_(C(d)(`projectAgents.notReported`)),1))],8,Si)]))),128))])])],8,Xr)):(r(),D(`p`,wi,_(C(d)(`projectAgents.detail.noExecutionSummary`)),1))],8,Jr)),C(ie)(e).length?(r(),D(`section`,{key:1,class:`project-agent-worker-event-evidence`,"aria-label":C(d)(`projectAgents.fields.workerEventEvidence`)},[T(`div`,Ei,[T(`h5`,null,_(C(d)(`projectAgents.fields.workerEventEvidence`)),1),T(`span`,null,_(C(ie)(e).length),1)]),T(`ul`,Di,[(r(!0),D(g,null,a(C(ie)(e),t=>(r(),D(`li`,{key:`${e.taskId}:worker-event:${t.eventId}`,class:`project-agent-worker-event-row`},[T(`header`,null,[T(`strong`,null,[pn(t)?(r(),D(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${C(d)(`projectAgents.fields.occupationEmoji`)}: ${pn(t)}`},_(pn(t)),9,Oi)):f(``,!0),s(_(fn(t)),1),t.agentId?(r(),D(`small`,ki,_(C(d)(`projectAgents.fields.agentId`))+` · `+_(t.agentId),1)):f(``,!0)]),T(`i`,{class:S(`is-${t.workerStatus||t.status}`)},_(mn(t)),3)]),T(`dl`,Ai,[T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.workSummary`)),1),T(`dd`,null,_(t.summary||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.sourceApplication`)),1),T(`dd`,null,_(Dn(t.sourceApplication)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.sourceSession`)),1),T(`dd`,null,_(t.sourceSessionId||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.tokenUsage`)),1),T(`dd`,null,_(bn(t.tokenUsage)),1)]),t.actualModelProvider||t.actualModel?(r(),D(`div`,ji,[T(`dt`,null,_(C(d)(`projectAgents.fields.actualModel`)),1),T(`dd`,null,[t.actualModelProvider?(r(),D(`span`,Mi,_(t.actualModelProvider),1)):f(``,!0),t.actualModelProvider&&t.actualModel?(r(),D(`span`,Ni,` · `)):f(``,!0),t.actualModel?(r(),D(`span`,Pi,_(t.actualModel),1)):f(``,!0)])])):f(``,!0),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.reportedAt`)),1),T(`dd`,null,_(rn(t.createdAt)),1)])])]))),128))])],8,Ti)):f(``,!0),e.effectiveModelStrategy?(r(),D(`small`,Fi,_(C(d)(`projectAgents.fields.strategySource`))+` · `+_(e.modelStrategySource||C(d)(`projectAgents.notReported`))+` · `+_(on(e.effectiveModelStrategy))+` · `+_(sn(e.effectiveExecutorPolicy)),1)):f(``,!0),e.routingDecision?(r(),D(`div`,Ii,[T(`div`,Li,[T(`span`,null,_(C(d)(`projectAgents.fields.reportedStaffingDecision`)),1),T(`strong`,null,_(e.routingDecision.outcome||C(d)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(r(),D(`small`,Ri,_(C(d)(`projectAgents.fields.coordinator`))+` · `+_(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):f(``,!0),T(`small`,null,_(C(d)(`projectAgents.fields.matchBasis`))+` · `+_(e.routingDecision.matchBasis?.join(` · `)||C(d)(`projectAgents.notReported`))+` · `+_(e.routingDecision.reason||C(d)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(r(),D(`small`,zi,_(C(d)(`projectAgents.fields.candidateAgents`))+` · `+_(e.routingDecision.candidateAgentIds.join(` · `)),1)):f(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(r(),D(`small`,Bi,[s(_(C(d)(`projectAgents.fields.complexity`))+` · `+_(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(r(),D(`span`,Vi,` · `+_(e.routingDecision.complexityBasis.join(` · `)),1)):f(``,!0)])):f(``,!0),C(me)(e.routingDecision.parallelPlan)?(r(),D(`small`,Hi,[s(_(C(d)(`projectAgents.fields.parallelPlan`))+` · `+_(e.routingDecision.parallelPlan?.reason||C(d)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(r(),D(`span`,Ui,` · `+_(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):f(``,!0)])):f(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(r(),D(`small`,Wi,_(e.routingDecision.ruleId||C(d)(`projectAgents.notReported`))+` · `+_(e.routingDecision.fallback||C(d)(`projectAgents.notReported`)),1)):f(``,!0)])):f(``,!0),T(`div`,Gi,[T(`span`,null,_(C(d)(`projectAgents.fields.actualExecution`)),1),dn(e)?(r(),D(`strong`,Ki,_(dn(e)?.executor||dn(e)?.provider||C(d)(`projectAgents.notReported`))+` / `+_(dn(e)?.model||C(d)(`projectAgents.notReported`))+` / `+_(Dn(dn(e)?.client)),1)):(r(),D(`span`,qi,_(C(d)(`projectAgents.detail.notReportedActualExecution`)),1)),dn(e)?.rule||dn(e)?.fallback?(r(),D(`small`,Ji,_(dn(e)?.rule||C(d)(`projectAgents.notReported`))+` · `+_(dn(e)?.fallback||C(d)(`projectAgents.notReported`)),1)):f(``,!0)]),e.runId?(r(),D(`small`,Yi,_(C(d)(`projectAgents.fields.run`))+` · `+_(e.runId),1)):(r(),D(`small`,Xi,_(C(d)(`projectAgents.detail.noRun`)),1))],8,qr)],10,Wr))),128))])):Oe.value[Q.value.agentId]?f(``,!0):(r(),D(`p`,Zi,_(C(d)(`projectAgents.detail.noTasks`)),1))])]),_:1},16,[`label`])]),T(`details`,Qi,[T(`summary`,null,_(C(d)(`projectAgents.sections.assignments`)),1),T(`div`,$i,[t(qt,i(xt(`assignments`),{label:St(`assignments`),onRetry:$}),{default:e(()=>[T(`section`,ea,[T(`div`,ta,[T(`h4`,null,_(C(d)(`projectAgents.sections.assignments`)),1),T(`div`,na,[T(`span`,null,_(Bt(Q.value).length),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:o[9]||=e=>Zt(Q.value)},_(C(d)(`projectAgents.assignmentDialog.assign`)),1)])]),Bt(Q.value).length?(r(),D(`div`,ra,[(r(!0),D(g,null,a(Bt(Q.value),e=>(r(),D(`article`,{key:e.assignmentId,class:`ui-card project-agent-assignment-card`},[T(`header`,null,[T(`strong`,null,_(zt(e.personalProjectId)),1),T(`div`,ia,[T(`i`,{class:S([`ui-badge`,`is-${e.status}`])},_(C(d)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>Zt(Q.value,e,`end`)},_(C(d)(`projectAgents.assignmentDialog.end`)),9,aa)):f(``,!0),e.status===`active`?(r(),D(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>Zt(Q.value,e,`replace`)},_(C(d)(`projectAgents.assignmentDialog.replace`)),9,oa)):f(``,!0)])]),T(`p`,null,_(e.responsibility||C(d)(`projectAgents.notReported`)),1),e.scope?(r(),D(`small`,sa,_(C(d)(`projectAgents.fields.scope`))+` · `+_(e.scope),1)):f(``,!0),T(`small`,null,_(rn(e.assignedAt))+` → `+_(e.endedAt?rn(e.endedAt):C(d)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(r(),D(`div`,ca,[(r(!0),D(g,null,a(e.workKinds,e=>(r(),D(`span`,{key:e},_(e),1))),128))])):f(``,!0),T(`div`,la,[T(`span`,null,_(C(d)(`projectAgents.fields.assignmentModel`)),1),T(`strong`,null,_(on(e.modelStrategyOverride))+` · `+_(sn(e.executorPolicyOverride)),1),cn(e.executorPolicyOverride)&&!ln(e.executorPolicyOverride).length?(r(),D(`small`,ua,_(C(d)(`projectAgents.strategy.lockedUnavailable`)),1)):f(``,!0)]),ln(e.executorPolicyOverride).length?(r(),D(`div`,da,[(r(!0),D(g,null,a(ln(e.executorPolicyOverride),e=>(r(),D(`span`,{key:e.executorId},_(e.label||e.executorId),1))),128))])):f(``,!0),e.reason?(r(),D(`small`,fa,_(C(d)(`projectAgents.fields.reason`))+` · `+_(e.reason),1)):f(``,!0)]))),128))])):(r(),D(`p`,pa,_(C(d)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16,[`label`])])]),T(`details`,ma,[T(`summary`,null,_(C(d)(`projectAgents.sections.activity`)),1),T(`div`,ha,[t(qt,i(xt(`activity`),{label:St(`activity`),onRetry:$}),{default:e(()=>[T(`section`,ga,[T(`div`,_a,[T(`h4`,null,_(C(d)(`projectAgents.sections.activity`)),1),dt.value?(r(),D(`span`,va,_(dt.value.days.length),1)):f(``,!0)]),dt.value?.days.length?(r(),D(`div`,ya,[T(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":C(d)(`projectAgents.activity.aria`)},[(r(!0),D(g,null,a(dt.value.days,e=>(r(),D(`button`,{key:e.date,type:`button`,role:`listitem`,class:S([`project-agent-heat-cell`,`intensity-${Fn(e,dt.value)}`,{selected:ke.value===e.date}]),"aria-label":`${an(e.date)} · ${e.total}`,"aria-pressed":ke.value===e.date,onClick:t=>In(e)},[T(`span`,Sa,_(an(e.date))+` · `+_(e.total),1)],10,xa))),128))],8,ba),ft.value?(r(),D(`article`,Ca,[T(`header`,null,[T(`strong`,null,_(an(ft.value.date)),1),T(`span`,null,_(ft.value.total),1)]),ft.value.tasks?.length?(r(),D(`ul`,Ta,[(r(!0),D(g,null,a(ft.value.tasks,e=>(r(),D(`li`,{key:e.taskId},[T(`strong`,null,_(e.title),1),T(`span`,null,_(Tn(e.status))+` · `+_(zt(e.personalProjectId)),1),T(`small`,null,_(e.summary||C(d)(`projectAgents.notReported`)),1)]))),128))])):(r(),D(`p`,wa,_(C(d)(`projectAgents.activity.noTasks`)),1))])):f(``,!0)])):(r(),D(`p`,Ea,_(C(d)(`projectAgents.activity.empty`)),1))])]),_:1},16,[`label`])])]),Q.value.memoryScope===`reviewed_agent`?(r(),O(re,{key:Q.value.agentId,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:ot.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):f(``,!0),Q.value.memoryScope===`reviewed_agent`?(r(),O(un,{key:3,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:ot.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):f(``,!0),T(`details`,Da,[T(`summary`,null,_(C(d)(`projectAgents.profileDetails`)),1),T(`dl`,Oa,[T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.assignments`)),1),T(`dd`,null,_(Vt(Q.value).length),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.memoryScope`)),1),T(`dd`,null,_(Q.value.memoryScope??C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.status`)),1),T(`dd`,null,_(C(d)(`projectAgents.status.${Q.value.profile.status}`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.recruitment`)),1),T(`dd`,null,[s(_(Dn(Q.value.recruitmentSourceApplication)),1),Q.value.recruitmentReason?(r(),D(`small`,ka,_(Q.value.recruitmentReason),1)):f(``,!0)])]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.fields.updatedAt`)),1),T(`dd`,null,_(rn(Q.value.updatedAt)),1)])])]),T(`details`,{class:`ui-disclosure project-agent-disclosure`,open:mt.value.some(e=>e.status===`awaiting_confirmation`)},[T(`summary`,null,_(C(d)(`projectAgents.sections.recruitment`)),1),T(`div`,ja,[t(qt,i(xt(`recruitments`),{label:St(`recruitments`),onRetry:$}),{default:e(()=>[T(`section`,Ma,[T(`div`,Na,[T(`h4`,Pa,_(C(d)(`projectAgents.sections.recruitment`)),1),T(`span`,null,_(mt.value.length),1)]),mt.value.length?(r(),D(`div`,Fa,[(r(!0),D(g,null,a(mt.value,e=>(r(),D(`article`,{key:e.recruitmentId,class:`ui-card project-agent-recruitment-card`},[T(`header`,null,[T(`strong`,null,_(e.positionKind)+` · `+_(e.workKind||C(d)(`projectAgents.notReported`)),1),T(`div`,Ia,[T(`i`,La,_(e.status),1),e.status===`awaiting_confirmation`?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>Ot(e,`approve`)},[X.value===e.recruitmentId&&Ne.value===`approve`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.recruitment.approving`)},null,8,[`label`])):(r(),D(`span`,za,_(C(d)(`projectAgents.recruitment.approve`)),1))],8,Ra)):f(``,!0),e.status===`awaiting_confirmation`?(r(),D(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>Ot(e,`cancel`)},[X.value===e.recruitmentId&&Ne.value===`cancel`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.recruitment.cancelling`)},null,8,[`label`])):(r(),D(`span`,Va,_(C(d)(`projectAgents.recruitment.cancel`)),1))],8,Ba)):f(``,!0)])]),T(`dl`,Ha,[T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.hr`)),1),T(`dd`,null,_(e.hrAgentId||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.trigger`)),1),T(`dd`,null,_(Dn(e.triggerSourceApplication)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.reason`)),1),T(`dd`,null,_(e.reason||e.reasonCode||C(d)(`projectAgents.notReported`)),1)]),T(`div`,null,[T(`dt`,null,_(C(d)(`projectAgents.recruitment.time`)),1),T(`dd`,null,_(rn(e.fulfilledAt||e.createdAt)),1)])]),T(`small`,null,_(C(d)(`projectAgents.recruitment.testSource`))+` · `+_(e.testSource||C(d)(`projectAgents.notReported`)),1)]))),128))])):(r(),D(`p`,Ua,_(C(d)(`projectAgents.recruitment.empty`)),1))])]),_:1},16,[`label`])])],8,Aa),(r(),D(`details`,{key:`advanced:${Q.value.agentId}`,class:`ui-disclosure project-agent-disclosure`,"data-agent-advanced":``},[T(`summary`,null,_(C(d)(`projectAgents.advanced`)),1),T(`div`,Wa,[t(qt,i(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:e(()=>[T(`section`,Ga,[T(`div`,Ka,[T(`h4`,null,_(C(d)(`projectAgents.sections.strategy`)),1),T(`span`,null,_(on(Q.value.profile.defaultModelStrategy))+` · `+_(sn(Q.value.profile.executorPolicy)),1)]),T(`p`,qa,_(C(d)(`projectAgents.strategy.providerNeutral`)),1),ln(Q.value.profile.executorPolicy).length?(r(),D(`div`,Ja,[(r(!0),D(g,null,a(ln(Q.value.profile.executorPolicy),e=>(r(),D(`span`,{key:e.executorId},_(e.label||e.executorId),1))),128))])):cn(Q.value.profile.executorPolicy)?(r(),D(`p`,Ya,_(C(d)(`projectAgents.strategy.lockedUnavailable`)),1)):(r(),D(`p`,Xa,_(C(d)(`projectAgents.strategy.noAllowList`)),1)),T(`div`,Za,[T(`button`,{class:`quiet-button`,type:`button`,onClick:o[10]||=e=>At()},_(C(d)(`projectAgents.routing.addExecutor`)),1)]),Q.value.executorDirectory?.length?(r(),D(`div`,Qa,[(r(!0),D(g,null,a(Q.value.executorDirectory,e=>(r(),D(`div`,{key:e.executorId,class:`project-agent-executor-row`},[T(`strong`,null,_(e.displayName||e.label||e.executorId),1),T(`span`,null,_(e.provider||C(d)(`projectAgents.notReported`))+` / `+_(e.model||C(d)(`projectAgents.notReported`)),1),T(`span`,null,_(e.globalPriority??C(d)(`projectAgents.notReported`)),1),T(`small`,null,_(e.registrationStatus||C(d)(`projectAgents.notReported`))+` · `+_(e.permissionStatus||C(d)(`projectAgents.notReported`))+` · `+_(e.preflightStatus||C(d)(`projectAgents.strategy.availabilityUnreported`))+` · `+_(e.healthStatus||C(d)(`projectAgents.notReported`)),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:t=>At(e)},_(C(d)(`projectAgents.routing.editExecutor`)),9,$a),e.permissionStatus===`authorized`?(r(),D(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Pe.value,onClick:t=>kt(e,`revoked`)},[Pe.value===e.executorId&&Fe.value===`revoke`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.routing.revoking`)},null,8,[`label`])):(r(),D(`span`,ro,_(C(d)(`projectAgents.routing.revoke`)),1))],8,no)):(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Pe.value,onClick:t=>kt(e,`authorized`)},[Pe.value===e.executorId&&Fe.value===`authorize`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.routing.authorizing`)},null,8,[`label`])):(r(),D(`span`,to,_(C(d)(`projectAgents.routing.authorize`)),1))],8,eo))]))),128))])):f(``,!0)])]),_:1},16,[`label`])]),T(`div`,io,[t(qt,i(xt(`executors`),{label:St(`executors`),onRetry:$}),{default:e(()=>[T(`section`,ao,[T(`div`,oo,[T(`h4`,null,_(C(d)(`projectAgents.sections.clients`)),1),T(`span`,null,_(On(Q.value).length),1)]),On(Q.value).length?(r(),D(`div`,so,[(r(!0),D(g,null,a(On(Q.value),e=>(r(),D(`div`,{key:e,class:`project-agent-client-row`},[T(`strong`,null,_(Dn(e)),1),T(`span`,null,_(kn(Q.value,e)?.allowed||Q.value.profile.allowedClients?.includes(e)?C(d)(`projectAgents.clients.allowed`):C(d)(`projectAgents.clients.notAllowed`)),1),An(Q.value,e)?(r(),D(`span`,co,_(C(d)(`projectAgents.clients.observed`,{count:An(Q.value,e)})),1)):Q.value.observedClients?.includes(e)?(r(),D(`span`,lo,_(C(d)(`projectAgents.clients.observedAny`)),1)):(r(),D(`span`,uo,_(C(d)(`projectAgents.clients.unreported`)),1)),T(`small`,null,_(kn(Q.value,e)?.integrationStatus||C(d)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(r(),D(`p`,fo,_(C(d)(`projectAgents.clients.empty`)),1))])]),_:1},16,[`label`])]),T(`div`,po,[t(qt,i(xt(`routingRules`),{label:St(`routingRules`),onRetry:$}),{default:e(()=>[T(`section`,mo,[T(`div`,ho,[T(`h4`,null,_(C(d)(`projectAgents.sections.routing`)),1),T(`div`,go,[T(`span`,null,_(Q.value.routingRules?.length??0),1),T(`button`,{class:`quiet-button`,type:`button`,onClick:o[11]||=e=>jt()},_(C(d)(`projectAgents.routing.addRule`)),1)])]),Q.value.routingRules?.length?(r(),D(`div`,_o,[(r(!0),D(g,null,a(Q.value.routingRules,e=>(r(),D(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[T(`strong`,null,_(e.scope)+` · `+_(e.priority),1),T(`span`,null,_(e.workKind||e.reason||C(d)(`projectAgents.notReported`))+` · `+_(e.executorIds?.join(`, `)||C(d)(`projectAgents.notReported`)),1),e.enabled?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>It(e)},[X.value===`rule:${e.ruleId}`&&Ne.value===`disable`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.routing.disabling`)},null,8,[`label`])):(r(),D(`span`,yo,_(C(d)(`projectAgents.routing.disable`)),1))],8,vo)):f(``,!0)]))),128))])):(r(),D(`p`,bo,_(C(d)(`projectAgents.routing.empty`)),1)),T(`small`,xo,_(C(d)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16,[`label`])]),T(`div`,So,[t(qt,i(xt(`learning`),{label:St(`learning`),onRetry:$}),{default:e(()=>[T(`section`,Co,[T(`div`,wo,[T(`h4`,null,_(C(d)(`projectAgents.sections.learning`)),1),T(`span`,null,_(pt.value.length),1)]),pt.value.length?(r(),D(`div`,To,[(r(!0),D(g,null,a(pt.value,([e,t])=>(r(),D(`article`,{key:e,class:`ui-card project-agent-learning-card`},[T(`header`,null,[T(`strong`,null,_(e),1),T(`i`,Eo,_(Mn(t)),1)]),t.personalProjectId||t.workKind||t.executor||t.modelStrategy?(r(),D(`small`,Do,_(zt(t.personalProjectId))+` · `+_(t.workKind||C(d)(`projectAgents.notReported`))+` · `+_(t.executor||C(d)(`projectAgents.notReported`))+` / `+_(t.modelStrategy?on(t.modelStrategy):C(d)(`projectAgents.notReported`)),1)):f(``,!0),T(`p`,null,_(C(d)(`projectAgents.learning.samples`,{count:t.sampleCount}))+` · `+_(C(d)(`projectAgents.learning.recent`,{count:Nn(t)})),1),T(`small`,null,_(t.decayBasis||C(d)(`projectAgents.learning.decayUnreported`))+` · `+_(rn(t.updatedAt)),1),t.outcomes?(r(),D(`div`,Oo,[(r(!0),D(g,null,a(t.outcomes,(e,t)=>c((r(),D(`span`,{key:t},_(t)+` · `+_(e??C(d)(`projectAgents.notReported`)),1)),[[h,e!==void 0]])),128)),t.score!==null&&t.score!==void 0?(r(),D(`span`,ko,_(C(d)(`projectAgents.learning.score`,{score:Pn(t)})),1)):f(``,!0)])):f(``,!0),t.evidence?.length?(r(),D(`ul`,Ao,[(r(!0),D(g,null,a(t.evidence,e=>(r(),D(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[T(`span`,null,_(e.kind)+` · `+_(e.count??0)+` · `+_(e.summary||C(d)(`projectAgents.notReported`)),1),e.evidenceId?(r(),D(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!je.value,onClick:n=>Dt(t,`ignore`,e.evidenceId)},[je.value===e.evidenceId&&Me.value===`ignore`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.learning.ignoring`)},null,8,[`label`])):(r(),D(`span`,Mo,_(C(d)(`projectAgents.learning.ignore`)),1))],8,jo)):f(``,!0)]))),128))])):f(``,!0),t.learningKey?(r(),D(`div`,No,[T(`button`,{class:`quiet-button`,type:`button`,disabled:!!je.value||!t.personalProjectId||!t.workKind||!t.executor,onClick:e=>Dt(t,`reset`)},[je.value===t.learningKey&&Me.value===`reset`?(r(),O(A,{key:0,variant:`inline`,label:C(d)(`projectAgents.learning.resetting`)},null,8,[`label`])):(r(),D(`span`,Fo,_(C(d)(`projectAgents.learning.reset`)),1))],8,Po)])):f(``,!0)]))),128))])):(r(),D(`p`,Io,_(C(d)(`projectAgents.learning.empty`)),1)),T(`small`,Lo,_(C(d)(`projectAgents.learning.note`)),1)])]),_:1},16,[`label`])])]))],8,Sr)):(r(),D(`div`,Ro,_(C(d)(`projectAgents.detail.choose`)),1))])):(r(),D(`div`,ur,[T(`strong`,null,_(C(d)(`projectAgents.noMatchTitle`)),1),T(`p`,null,_(C(d)(`projectAgents.noMatchCopy`)),1)])):(r(),D(`div`,cr,[T(`strong`,null,_(C(d)(`projectAgents.emptyTitle`)),1),T(`p`,null,_(C(d)(`projectAgents.emptyCopy`)),1),T(`button`,{class:`primary-button`,type:`button`,disabled:!Z.value,onClick:Kt},_(C(d)(`projectAgents.add`)),9,lr)])),t(qn,{open:he.value,agent:J.value,projects:Ge.value,"default-project-id":ut.value,"personal-space-id":Z.value,onClose:Xt,onSaved:nn},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),t(Ue,{open:Ce.value,agent:J.value,assignment:Te.value,action:we.value,projects:Ge.value,"available-agents":E.value,"default-project-id":ut.value,onClose:Qt,onSaved:$t,onChanged:en},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),t(vt,{open:Ie.value,mode:Le.value,"personal-space-id":Z.value,executor:Re.value,rule:ze.value,projects:Ge.value,"available-executors":Q.value?.executorDirectory??[],onClose:Mt,onSaved:Ft},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,Jn))}}),[[`__scopeId`,`data-v-394b82e3`]]);export{zo as default};