fuli-context 0.20.0-beta.3 → 0.20.0-beta.4

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 (90) hide show
  1. package/README.md +20 -7
  2. package/README.zh-CN.md +48 -15
  3. package/dist/web/assets/{AboutPage-BmX7l4yh.js → AboutPage-Bi4E7wSy.js} +1 -1
  4. package/dist/web/assets/{AgentName-DeHNVQ-r.js → AgentName-CKA8o3DK.js} +1 -1
  5. package/dist/web/assets/{AgentProfilePage-DbzxN3rz.js → AgentProfilePage-DoWYikZx.js} +1 -1
  6. package/dist/web/assets/{AgentsDirectoryPage-DnvNg4s-.js → AgentsDirectoryPage-DubxSJXK.js} +1 -1
  7. package/dist/web/assets/{ConnectionsPage-C_-t36vt.js → ConnectionsPage-Y9Ll8XwK.js} +1 -1
  8. package/dist/web/assets/{CreateProjectDialog-78Sz76lL.js → CreateProjectDialog-T2ISpEdQ.js} +1 -1
  9. package/dist/web/assets/{EmployeeRecruitDialog-CbakSlIK.js → EmployeeRecruitDialog-DA6MLiX4.js} +1 -1
  10. package/dist/web/assets/{EmployeeWorkbenchPage-CZb36N9r.js → EmployeeWorkbenchPage-BQrxgK-1.js} +1 -1
  11. package/dist/web/assets/{InboxPage-Bsa1NRSD.js → InboxPage-CSnVNoTP.js} +1 -1
  12. package/dist/web/assets/{KnowledgeEditDialog-CSjtslJS.js → KnowledgeEditDialog-TsODwgcQ.js} +1 -1
  13. package/dist/web/assets/{KnowledgeInspector-DB9USgC0.js → KnowledgeInspector-r2MFq5In.js} +1 -1
  14. package/dist/web/assets/{KnowledgeOrganizerPage-DEucKWd7.js → KnowledgeOrganizerPage-Bg2p9UBN.js} +1 -1
  15. package/dist/web/assets/KnowledgePage-ClUQTumH.js +1 -0
  16. package/dist/web/assets/{KnowledgeWorkspace-B7ZiPf6n.js → KnowledgeWorkspace-BGh6AEYh.js} +1 -1
  17. package/dist/web/assets/{NotFoundPage-XPalsChA.js → NotFoundPage-UodKAzSD.js} +1 -1
  18. package/dist/web/assets/{OccupationsPage-BRdGXQ2P.js → OccupationsPage-C1hxB4uo.js} +1 -1
  19. package/dist/web/assets/{OverviewPage-x0ExTLqh.js → OverviewPage-DlWymsvL.js} +2 -2
  20. package/dist/web/assets/{PersonalProfilePage-Cl2EQuuO.js → PersonalProfilePage-BF5vSKIG.js} +1 -1
  21. package/dist/web/assets/{PersonalProjectsPage-Dh44vNQk.js → PersonalProjectsPage-CN8CzEwx.js} +1 -1
  22. package/dist/web/assets/{ProjectAgentFirstTask-BVNcBsw9.js → ProjectAgentFirstTask-1ZqQx7TD.js} +1 -1
  23. package/dist/web/assets/{ProjectAgentsPage-DdooNyYs.css → ProjectAgentsPage-BdAKFeHd.css} +1 -1
  24. package/dist/web/assets/ProjectAgentsPage-DAub8kxJ.js +12 -0
  25. package/dist/web/assets/{ProjectScopePicker-CNN_sGrN.js → ProjectScopePicker-C5Qs2q55.js} +1 -1
  26. package/dist/web/assets/{PublicProjectsPage-BEyOXwu-.js → PublicProjectsPage-BagwGxkm.js} +1 -1
  27. package/dist/web/assets/RoundtablesPage-BE0EM4sU.js +1 -0
  28. package/dist/web/assets/RoundtablesPage-DLZIf0Pu.css +1 -0
  29. package/dist/web/assets/{SettingsPage-DdWrf4wR.js → SettingsPage-CpyIq-BG.js} +1 -1
  30. package/dist/web/assets/{SharedJefaReportPage-B5vPQ7QK.js → SharedJefaReportPage-Cj6nm6w-.js} +1 -1
  31. package/dist/web/assets/{TaskExecutionPlan-CFM_14VC.js → TaskExecutionPlan-DFh08QFN.js} +1 -1
  32. package/dist/web/assets/TaskSchedulesPage-Cs_pzUIm.js +1 -0
  33. package/dist/web/assets/TaskSchedulesPage-sheRrvlF.css +1 -0
  34. package/dist/web/assets/{TextField-BVqz0DTp.js → TextField-DnkSv9Ye.js} +1 -1
  35. package/dist/web/assets/{UiDialog-CIyDfEYh.js → UiDialog-DMozYPbD.js} +1 -1
  36. package/dist/web/assets/{UiDisclosure-BIE3uXrx.js → UiDisclosure-BkmYnV5V.js} +1 -1
  37. package/dist/web/assets/{UiIcon-INPsGFvz.js → UiIcon-D_OCiZ2T.js} +1 -1
  38. package/dist/web/assets/{UiIconButton-w6pfBSda.js → UiIconButton-CaxMAEd6.js} +1 -1
  39. package/dist/web/assets/{UiSegmented-wN76K7F9.js → UiSegmented-DirGF0fz.js} +1 -1
  40. package/dist/web/assets/{UiSelect-BaVTdhtR.js → UiSelect-iDXgMBmg.js} +1 -1
  41. package/dist/web/assets/{UiToggle-Cs1CZzk6.js → UiToggle-DNvok1W_.js} +1 -1
  42. package/dist/web/assets/UnassignedConversationsPanel-LcjLO-S7.js +1 -0
  43. package/dist/web/assets/{VirtualDirectoryList-nAWaJ2eM.js → VirtualDirectoryList-rmg4zT6b.js} +1 -1
  44. package/dist/web/assets/{Workbench3D-CYCi_MRp.js → Workbench3D-DVM9HEZI.js} +1 -1
  45. package/dist/web/assets/{WritingTastePage-DfTuTJx2.js → WritingTastePage-ifJbdlZs.js} +1 -1
  46. package/dist/web/assets/{agent-occupation-Bke7eg11.js → agent-occupation-BODbxMc2.js} +1 -1
  47. package/dist/web/assets/{agent-pins-DrG1uUDt.js → agent-pins-CtGOL6hE.js} +1 -1
  48. package/dist/web/assets/{agent-profile-CU4YqRz_.css → agent-profile-BWgoaYE6.css} +1 -1
  49. package/dist/web/assets/{agent-work-summary-C53Zfzk5.js → agent-work-summary-9jEiDLve.js} +1 -1
  50. package/dist/web/assets/{attention-store-Bg-rVsgG.js → attention-store-CVJJ9eFY.js} +1 -1
  51. package/dist/web/assets/{catalog-CmHt1ONG.js → catalog-DoiBFHyb.js} +1 -1
  52. package/dist/web/assets/{client-DBYe0KzE.js → client-CRiPFGQo.js} +1 -1
  53. package/dist/web/assets/{console-2nhA6IaV.js → console-Dl-Zf-vm.js} +1 -1
  54. package/dist/web/assets/{conversation-launcher-settings-txCBZEle.js → conversation-launcher-settings-DUaL_j2q.js} +1 -1
  55. package/dist/web/assets/{design-lab-ClOnEnF7.js → design-lab-DQJjssoJ.js} +1 -1
  56. package/dist/web/assets/{i18n-DAeCdA8L.js → i18n-DYrQWclR.js} +2 -2
  57. package/dist/web/assets/{identity-bmKz-BGh.js → identity-B3k8Qjz8.js} +1 -1
  58. package/dist/web/assets/{index-YZYwAHdd.js → index-CPPm_vKK.js} +2 -2
  59. package/dist/web/assets/{index-DsqCEnEC.css → index-CUiJp41v.css} +1 -1
  60. package/dist/web/assets/{judgment-types-C2vHfclm.js → judgment-types-YhMdw8_r.js} +1 -1
  61. package/dist/web/assets/{model-VWzF8pT3.js → model-CgiRuBdV.js} +1 -1
  62. package/dist/web/assets/{motion-preference-D3Aq7THt.js → motion-preference-CgUW4x60.js} +1 -1
  63. package/dist/web/assets/{occupation-catalog-DnevywIk.js → occupation-catalog-C1dtWRD4.js} +1 -1
  64. package/dist/web/assets/{personal-profile-graph-CyRXX8b0.js → personal-profile-graph-C9t0-CUF.js} +1 -1
  65. package/dist/web/assets/{project-origin-KvE_J110.js → project-origin-BthRWajS.js} +1 -1
  66. package/dist/web/assets/project-team-api-DLYFf3Df.js +1 -0
  67. package/dist/web/assets/{shared-report-BxeCmoU_.js → shared-report-T8YWwLIB.js} +1 -1
  68. package/dist/web/assets/{task-labels-C4t6U38E.js → task-labels-DCM3k8vr.js} +1 -1
  69. package/dist/web/assets/{ui-WHqcW6KK.js → ui-8PDiMeCo.js} +1 -1
  70. package/dist/web/assets/{useAgentRecords-DotFATN2.js → useAgentRecords-Bw9B25sk.js} +1 -1
  71. package/dist/web/assets/{useApi-CROJJdhE-BJn8l1Cb.js → useApi-CROJJdhE-Di-SEzl3.js} +1 -1
  72. package/dist/web/assets/{vue-router-YsTpOqqM.js → vue-router-CG6ezAck.js} +1 -1
  73. package/dist/web/index.html +19 -19
  74. package/graph-provider/fuli_graph/store_task_contexts.py +5 -0
  75. package/graph-provider/pyproject.toml +1 -1
  76. package/npm-shrinkwrap.json +2 -2
  77. package/package.json +1 -1
  78. package/src/agent-roundtable/chat-wait.js +7 -3
  79. package/src/agents/codex/lifecycle-hook.js +22 -8
  80. package/src/conversations/stop-auto-close.js +6 -4
  81. package/src/conversations/transcript-lifecycle.js +4 -1
  82. package/src/graphiti/agent-knowledge-workflows.js +1 -1
  83. package/dist/web/assets/KnowledgePage-tLziTkSU.js +0 -1
  84. package/dist/web/assets/ProjectAgentsPage-BBo_ALw_.js +0 -12
  85. package/dist/web/assets/RoundtablesPage-CdfpgOnb.js +0 -1
  86. package/dist/web/assets/RoundtablesPage-ftnoDxpL.css +0 -1
  87. package/dist/web/assets/TaskSchedulesPage-CISJAYZy.js +0 -1
  88. package/dist/web/assets/TaskSchedulesPage-fNCG8EWD.css +0 -1
  89. package/dist/web/assets/UnassignedConversationsPanel-0y0YliA_.js +0 -1
  90. package/dist/web/assets/project-team-api-CXPeakuM.js +0 -1
package/README.md CHANGED
@@ -136,6 +136,10 @@ forks the conversation; Codex records the exchange in it (or uses a new session
136
136
  open in the app). A message that cannot be delivered waits in the recipient's inbox for its
137
137
  next task.
138
138
 
139
+ Agents can also keep direct and group chats with `agent_chat`. Messages are pushed: an Agent
140
+ that calls `wait` gets new messages at once, and a direct message or an `@` mention wakes an
141
+ Agent that is not waiting. Chats only carry communication; they never change knowledge weights.
142
+
139
143
  Every exchange is kept locally; the console's Roundtable page shows who asked whom, through
140
144
  which client, and exactly what was said. Tools and limits: [Agent Roundtable](docs/agent-roundtable.md).
141
145
 
@@ -405,18 +409,16 @@ sequenceDiagram
405
409
  opt The task creates a decision, contradiction, or stale signal
406
410
  A->>F: Record rationale or knowledge feedback
407
411
  end
408
- A->>F: checkpoint_task_knowledge
409
- alt A small durable candidate batch exists
412
+ opt Something is worth keeping (candidates, a decision, a meaningful work log)
413
+ A->>F: checkpoint_task_knowledge
410
414
  F->>G: capture_candidates
411
- else Nothing should be retained
412
- F-->>A: retain_nothing
413
415
  end
414
416
 
415
417
  alt Loaded and trusted Claude Code / Codex Stop hook
416
418
  L->>F: verify_task_checkpoint
417
- F-->>L: Allow stop only after review
418
- else Cursor reminder or prompt-fallback agent
419
- Note over A,F: Same contract; a bounded reminder is not an unconditional Stop gate
419
+ F-->>L: Close a routine task as retain_nothing / reported, otherwise remind
420
+ else Cursor or an Agent without a Stop hook
421
+ Note over A,F: Same contract. A routine fallback task closes at the next task entry
420
422
  end
421
423
  A-->>U: Return the result and any Fuli sources actually used
422
424
  ```
@@ -518,6 +520,17 @@ Core mechanisms covered by implementation and automated tests include:
518
520
  - common-knowledge discovery and preview-token-protected atomic promotion;
519
521
  - read-only multi-project MCP, Notion, Feishu/Lark, Dify-compatible RAG Retrieval API, and trusted-code bindings with connected retrieval.
520
522
 
523
+ New in 0.20 (public preview `0.20.0-beta`, see the [release notes](docs/releases/0.20.0.md)):
524
+
525
+ - **Projects and people**: unassigned conversations go to Astro, Jefa triages them, and a topic becomes a project after three conversations. Every project has a brief and every Agent an occupation, which Bole recruits by.
526
+ - **Tasks**: assign without starting (backlog), schedule recurring tasks that pause after repeated failures, and stop, retry, or review any run from the task details. A temporary failure is retried automatically only when no prompt was sent.
527
+ - **Decisions**: an Agent that needs you asks in the conversation first. A request that must wait for you goes to the Decisions page, and your reply reaches the Agent that asked.
528
+ - **Roundtable**: besides asks (`message_agent`), Agents have direct and group chats (`agent_chat`) with push delivery and `wait`; the console shows them live.
529
+ - **Memory between projects**: weighted links (related, frequent, close) say how much one project may draw on another. Weights never grant access.
530
+ - **Lower token cost**: a smaller task entry, shared rules read on demand, long preference lists read in pages, and a Stop hook that closes routine tasks without another model turn.
531
+ - **Console**: six entries (Workbench, Agents, Conversations, Projects, Memory, Settings), a phone layout, and Alt/Option-click explanations for any status or term.
532
+ - **Windows**: an installed build with Update-Fuli, Rollback-Fuli, and Uninstall-Fuli that keeps your data.
533
+
521
534
  The following must not be presented as already proven:
522
535
 
523
536
  - the A/B thresholds in `FULI_ALIGNMENT_BENCHMARK.md` are acceptance conventions; claims that Fuli
package/README.zh-CN.md CHANGED
@@ -14,20 +14,30 @@
14
14
  <a href="LICENSE"><img src="https://img.shields.io/npm/l/fuli-context?style=flat" alt="许可证" /></a>
15
15
  </p>
16
16
 
17
- **换 AI 工具,不用换搭档。**
17
+ **换 AI 工具,留住你自己。**
18
+
19
+ 复利(Fuli)就是 **compound interest**:收益再生收益。
20
+
21
+ 复利的初衷,是在你和 AI 一起工作时,留住你自己的品味、个性和判断。我们相信,人不必再事事亲力亲为。
22
+ 你可以腾出手来做决定、想点子,也可以歇一歇。
23
+
24
+ 复利支持 Codex、Claude Code,以及其他支持 MCP 和 Skills 的 Agent 客户端。让这些客户端接入同一份 Fuli 数据,
25
+ 就能继续和同一位 Agent 合作,延续它记录下的工作和相关上下文。
26
+
27
+ AI 能接手的工作越来越多。复利帮你完成这段过渡,同时让你自己的判断始终居中。
18
28
 
19
29
  复利是跨兼容 MCP 客户端的长期 Agent 协作层。让 AI 工具接入同一份可访问的 Fuli 数据,
20
30
  选中同一位 Agent,就能延续它的身份、项目职责和相关工作脉络。运行 `fuli connect` 获取标准
21
31
  MCP 配置,有适配器的客户端还支持自动配置(Codex、Claude Code、Cursor,以及使用精简聊天工具集的 Claude
22
32
  桌面版)。详见[客户端接入](docs/client-connections.md)。
23
33
 
24
- - **搭档留得住:**任务结束后,Agent 的职责、合作记录与工作记忆继续保留。
25
- - **上下文有边界:**按需取回项目知识、决定与偏好,保留来源、作用域和确认状态。
26
- - **需要时一起做:**协调不同专长的 Agent,通过可用且获授权的客户端或执行器开展任务,记录真实执行。
27
- - **每个任务都有负责人:**在项目目录里直接提需求,Fuli 自动登记项目并安排一位负责 Agent;回复最后一行写明谁负责、谁协助。
28
- - **三位专职随时在岗:**Jefa 管项目,Bole 做 AR(Agent Resources),负责招募与人员安排,Tonborg 帮你做判断;每个空间都自带这三位。
29
- - **按你的偏好判断:**[Tonborg](docs/judgment-and-autonomy.md) 在你设定的自主程度内协助审核、建议客户端与模型。每次判断都有记录,点赞、点踩或补一句理由,帮助它改进后续判断。
30
- - **Agent 之间直接对话:**通过[圆桌](#agent-圆桌),一个 Agent 可以直接去问另一段对话里的 Agent,往来全程留痕。
34
+ - **搭档留得住**:任务结束后,Agent 的职责、合作记录与工作记忆继续保留。
35
+ - **上下文有边界**:按需取回项目知识、决定与偏好,保留来源、作用域和确认状态。
36
+ - **需要时一起做**:协调不同专长的 Agent,通过可用且获授权的客户端或执行器开展任务,记录真实执行。
37
+ - **每个任务都有负责人**:在项目目录里直接提需求,Fuli 自动登记项目并安排一位负责 Agent;回复最后一行写明谁负责、谁协助。
38
+ - **三位专职随时在岗**:Jefa 管项目,Bole 做 AR(Agent Resources),负责招募与人员安排,Tonborg 帮你做判断;每个空间都自带这三位。
39
+ - **按你的偏好判断**:[Tonborg](docs/judgment-and-autonomy.md) 在你设定的自主程度内协助审核、建议客户端与模型。每次判断都有记录,点赞、点踩或补一句理由,帮助它改进后续判断。
40
+ - **Agent 之间直接对话**:通过[圆桌](#agent-圆桌),一个 Agent 可以直接去问另一段对话里的 Agent,往来全程留痕。
31
41
 
32
42
  这里的“长期”指身份和上下文持续存在。Fuli 负责组织上下文与协调任务,接入的 AI 工具负责执行。
33
43
  能采集、接续哪些对话取决于客户端适配器;换工具不会自动获得其他项目的私有记忆。
@@ -85,6 +95,9 @@ Agent 调用 `message_agent`,Fuli 在对方自己的客户端里以只读方
85
95
  Claude Code 会 fork 原会话;Codex 会在原对话里记下这次问答(对话正在 Codex 中打开时改用新会话)。
86
96
  暂时唤不醒的消息会在对方下次开始任务时出现在它的收件箱里。
87
97
 
98
+ Agent 之间还可以用 `agent_chat` 私聊和建群。消息是推送的:调用 `wait` 的 Agent 会立刻收到新消息,
99
+ 私聊或 `@` 点名会唤醒不在等待的 Agent。聊天只负责通信,不会改变知识权重。
100
+
88
101
  每一段往来都保存在本机,控制台的“圆桌”页能看到谁问了谁、通过哪个客户端、原文和回答。
89
102
  工具与限制见[圆桌说明](docs/agent-roundtable.md)。
90
103
 
@@ -324,18 +337,16 @@ sequenceDiagram
324
337
  opt 产生决策、反证或失效证据
325
338
  A->>F: 记录理由或知识反馈
326
339
  end
327
- A->>F: checkpoint_task_knowledge
328
- alt 有少量可复用候选
340
+ opt 有值得保留的内容(候选、决策、有意义的工作记录)
341
+ A->>F: checkpoint_task_knowledge
329
342
  F->>G: capture_candidates
330
- else 没有值得长期保留的内容
331
- F-->>A: retain_nothing
332
343
  end
333
344
 
334
345
  alt 已加载并获信任的 Claude Code / Codex Stop Hook
335
346
  L->>F: verify_task_checkpoint
336
- F-->>L: 已检查才允许结束
337
- else Cursor 提醒或 Prompt fallback Agent
338
- Note over A,F: 遵循同一契约;有限提醒不是无条件 Stop Gate
347
+ F-->>L: 日常任务如实收尾为 retain_nothing / reported,其余给出提醒
348
+ else Cursor 或没有 Stop Hook 的 Agent
349
+ Note over A,F: 遵循同一契约。日常兜底任务在下一次任务入口时收尾
339
350
  end
340
351
  A-->>U: 返回结果与实际使用的 Fuli 来源
341
352
  ```
@@ -423,6 +434,17 @@ Agent 上下文。
423
434
  - 公共知识候选发现,以及预览令牌保护的原子提升;
424
435
  - MCP、Notion、飞书 / Lark、Dify 兼容 RAG Retrieval API 和可信自定义代码的只读多项目绑定与聚合检索。
425
436
 
437
+ 0.20 新增(公开预览版 `0.20.0-beta`,详见[发布说明](docs/releases/0.20.0.md)):
438
+
439
+ - **项目与人员**:没有归属的会话先交给 Astro,Jefa 负责分诊,同一话题累计 3 个会话就成为正式项目。项目都有简介,Agent 都有职业,Bole 按职业招聘。
440
+ - **任务**:可以只指派不开工(backlog);可以定时创建任务,连续失败会自动暂停;在任务详情里可以停止、重试、回看任何一次运行。临时故障只在确定没发出指令时才自动重试。
441
+ - **待决策**:Agent 需要你时,先在当前会话里问你。需要等你稍后处理的请求进「待决策」页,你的回复会送回发起请求的 Agent。
442
+ - **圆桌**:除了问答(`message_agent`),Agent 之间还能私聊和群聊(`agent_chat`),支持推送和 `wait` 等待;控制台实时显示。
443
+ - **项目间记忆**:用权重(有关系 / 常往来 / 密切)表示一个项目能从另一个项目取多少记忆。权重不授予权限。
444
+ - **更省 Token**:任务入口更小,共享规则按需读取,长偏好分页读完,Stop Hook 直接收尾日常任务,省掉一次模型往返。
445
+ - **控制台**:六个入口(工作台、Agents、对话、项目、记忆、设置),适配手机;按住 Alt / Option 点任意状态或名词就能看到解释。
446
+ - **Windows**:安装版自带 Update-Fuli、Rollback-Fuli、Uninstall-Fuli,数据都会保留。
447
+
426
448
  仍需与“已经证明”区分的内容:
427
449
 
428
450
  - `FULI_ALIGNMENT_BENCHMARK.md` 中 A/B 阈值是验收约定;只有完成足量、同条件的真实配对任务
@@ -498,6 +520,7 @@ CLI 的帮助、交互提示、状态和错误信息固定使用英文,不跟
498
520
  | `fuli open [--data-dir DIR]` | 在默认浏览器中打开当前管理界面 |
499
521
  | `fuli graph export --output DIR [--mode container\|native]` | 把当前图数据导出为可校验、可复制的离线备份包 |
500
522
  | `fuli graph import --input DIR [--target-mode container\|native] [--yes]` | 校验备份并替换目标图数据;导入前自动保留回滚包 |
523
+ | `fuli graph migrate --to native [--yes]` | 把容器图谱迁移到原生模式;节点和关系数量完全一致才算成功 |
501
524
  | `fuli update [setup 选项]` | 更新 npm 包并刷新本机接入 |
502
525
  | `fuli uninstall [--yes] [--data-dir DIR]` | 清理 Agent 接入和服务,保留知识数据和 Neo4j 数据卷 |
503
526
 
@@ -606,6 +629,16 @@ fuli setup --yes --runtime-mode native --memory-profile low --adaptive-memory
606
629
  fuli graph import --target-mode native --input "$HOME/Backups/fuli-container" --yes
607
630
  ```
608
631
 
632
+ 也可以用一条命令完成同样的步骤(需要带原生运行时的安装包;Windows 上是已安装的 Fuli 桌面版):
633
+
634
+ ```bash
635
+ fuli graph migrate --to native
636
+ ```
637
+
638
+ 它会停止正在运行的控制台,统计并导出容器图谱,切到原生模式后导入;只有每种标签和关系类型的数量都一致,
639
+ 才接受迁移结果。任何一步失败都会切回容器模式。容器卷只会被读取,之后保持停止,不会被删除;
640
+ 客户端接入不受影响。
641
+
609
642
  反向迁移只需交换 `container` 和 `native`。导出会短暂停止来源数据库,完成后只恢复导出前
610
643
  确实在运行的服务;导入会先校验清单和每个 dump 的 SHA-256,再停止目标数据库。替换前的
611
644
  目标数据会自动保存在数据目录下的 `backups/graph`,导入失败时会立即尝试回滚。执行前应让
@@ -1 +1 @@
1
- import{B as e,C as t,E as n,H as r,O as i,T as a,_ as o,b as s,dt as c,ft as l,it as u,mt as d,o as f,y as p}from"./i18n-DAeCdA8L.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as h}from"./fuli-logo-Bu9WBuQe.js";var g={class:`about-section-heading`},ee=[`id`],_=m(i({__name:`AboutSectionHeading`,props:{titleId:{},title:{},description:{}},setup(n){return(r,i)=>(e(),t(`header`,g,[s(`h2`,{id:n.titleId},d(n.title),9,ee),s(`p`,null,d(n.description),1)]))}}),[[`__scopeId`,`data-v-99ca5811`]]),v=[`aria-label`],y={class:`label-dimension-strip`},b=[`data-dimension`],x={class:`label-guide-sheet`},S={class:`label-guide-section profile-guide`},C={class:`label-definition-list`},w=[`data-kind`],T={class:`label-guide-section quadrant-guide`},E={class:`quadrant-explainer`},D={class:`quadrant-y-axis`,"aria-hidden":`true`},O=[`aria-label`],k=[`data-quadrant`],A={class:`quadrant-x-axis`,"aria-hidden":`true`},j={class:`quadrant-notes`},M={class:`label-guide-section confirmation-guide`},N={class:`status-table-wrap`},P={class:`status-definition-table`},F={scope:`col`},I={scope:`col`},L={scope:`col`},R={scope:`row`},z=[`data-status`],B=[`data-label`],V=[`data-label`],H={class:`status-boundaries`},U={class:`label-example`},W={class:`label-example-tags`,"aria-hidden":`true`},te={class:`label-token profile-token`,"data-kind":`taste`},G={class:`label-token origin-token`},K={class:`label-token status-token`,"data-status":`confirmed`},q={class:`label-all-note`},J=m(i({__name:`LabelGuide`,setup(n){let i=p(()=>[{key:`profile`,title:f(`about.dimensions.profile.title`),question:f(`about.dimensions.profile.question`),timing:f(`about.dimensions.profile.timing`)},{key:`origin`,title:f(`about.dimensions.origin.title`),question:f(`about.dimensions.origin.question`),timing:f(`about.dimensions.origin.timing`)},{key:`confirmation`,title:f(`about.dimensions.confirmation.title`),question:f(`about.dimensions.confirmation.question`),timing:f(`about.dimensions.confirmation.timing`)}]),l=p(()=>[{key:`taste`,label:f(`about.profiles.taste.label`),short:f(`about.profiles.taste.short`),description:f(`about.profiles.taste.description`)},{key:`personality`,label:f(`about.profiles.personality.label`),short:f(`about.profiles.personality.short`),description:f(`about.profiles.personality.description`)},{key:`judgment`,label:f(`about.profiles.judgment.label`),short:f(`about.profiles.judgment.short`),description:f(`about.profiles.judgment.description`)}]),u=p(()=>[{key:`known-unknown`,label:f(`about.quadrants.knownUnknown.label`),coordinate:f(`about.quadrants.knownUnknown.coordinate`),description:f(`about.quadrants.knownUnknown.description`)},{key:`known-known`,label:f(`about.quadrants.knownKnown.label`),coordinate:f(`about.quadrants.knownKnown.coordinate`),description:f(`about.quadrants.knownKnown.description`)},{key:`unknown-unknown`,label:f(`about.quadrants.unknownUnknown.label`),coordinate:f(`about.quadrants.unknownUnknown.coordinate`),description:f(`about.quadrants.unknownUnknown.description`)},{key:`unknown-known`,label:f(`about.quadrants.unknownKnown.label`),coordinate:f(`about.quadrants.unknownKnown.coordinate`),description:f(`about.quadrants.unknownKnown.description`)}]),m=p(()=>[{key:`pending`,label:f(`about.statuses.pending.label`),description:f(`about.statuses.pending.description`),rule:f(`about.statuses.pending.rule`)},{key:`agent-confirmed`,label:f(`about.statuses.agentConfirmed.label`),description:f(`about.statuses.agentConfirmed.description`),rule:f(`about.statuses.agentConfirmed.rule`)},{key:`confirmed`,label:f(`about.statuses.confirmed.label`),description:f(`about.statuses.confirmed.description`),rule:f(`about.statuses.confirmed.rule`)}]);return(n,p)=>(e(),t(`section`,{class:`label-guide`,"aria-label":c(f)(`about.labelsAria`)},[s(`div`,y,[(e(!0),t(o,null,r(i.value,n=>(e(),t(`article`,{key:n.key,"data-dimension":n.key},[p[0]||=s(`i`,{"aria-hidden":`true`},null,-1),s(`dl`,null,[s(`dt`,null,d(n.title),1),s(`dd`,null,[a(d(n.question)+` `,1),s(`small`,null,d(n.timing),1)])])],8,b))),128))]),s(`div`,x,[s(`section`,S,[s(`header`,null,[s(`span`,null,d(c(f)(`about.sections.profile.index`)),1),s(`div`,null,[s(`h3`,null,d(c(f)(`about.sections.profile.title`)),1),s(`p`,null,d(c(f)(`about.sections.profile.meta`)),1)])]),s(`dl`,C,[(e(!0),t(o,null,r(l.value,n=>(e(),t(`div`,{key:n.key,class:`label-definition-row`},[s(`dt`,null,[s(`span`,{class:`label-token profile-token`,"data-kind":n.key},d(n.label),9,w)]),s(`dd`,null,[s(`strong`,null,d(n.short),1),s(`p`,null,d(n.description),1)])]))),128))])]),s(`section`,T,[s(`header`,null,[s(`span`,null,d(c(f)(`about.sections.origin.index`)),1),s(`div`,null,[s(`h3`,null,d(c(f)(`about.sections.origin.title`)),1),s(`p`,null,d(c(f)(`about.sections.origin.meta`)),1)])]),s(`div`,E,[s(`div`,D,[s(`span`,null,d(c(f)(`about.quadrants.aware`)),1),s(`strong`,null,d(c(f)(`about.quadrants.awareness`)),1),s(`span`,null,d(c(f)(`about.quadrants.unaware`)),1)]),s(`div`,{class:`quadrant-grid`,role:`group`,"aria-label":c(f)(`about.sections.origin.title`)},[(e(!0),t(o,null,r(u.value,n=>(e(),t(`article`,{key:n.key,"data-quadrant":n.key},[s(`span`,null,d(n.coordinate),1),s(`strong`,null,d(n.label),1),s(`p`,null,d(n.description),1)],8,k))),128))],8,O),s(`div`,A,[s(`span`,null,d(c(f)(`about.quadrants.unmastered`)),1),s(`strong`,null,d(c(f)(`about.quadrants.mastery`)),1),s(`span`,null,d(c(f)(`about.quadrants.mastered`)),1)]),s(`div`,j,[s(`p`,null,d(c(f)(`about.quadrants.immutable`)),1),s(`p`,null,d(c(f)(`about.quadrants.unclassified`)),1)])])]),s(`section`,M,[s(`header`,null,[s(`span`,null,d(c(f)(`about.sections.confirmation.index`)),1),s(`div`,null,[s(`h3`,null,d(c(f)(`about.sections.confirmation.title`)),1),s(`p`,null,d(c(f)(`about.sections.confirmation.meta`)),1)])]),s(`div`,N,[s(`table`,P,[s(`thead`,null,[s(`tr`,null,[s(`th`,F,d(c(f)(`about.sections.confirmation.title`)),1),s(`th`,I,d(c(f)(`about.statuses.descriptionHeader`)),1),s(`th`,L,d(c(f)(`about.statuses.entryCondition`)),1)])]),s(`tbody`,null,[(e(!0),t(o,null,r(m.value,n=>(e(),t(`tr`,{key:n.key,class:`status-definition-row`},[s(`th`,R,[s(`span`,{class:`label-token status-token`,"data-status":n.key},d(n.label),9,z)]),s(`td`,{"data-label":c(f)(`about.statuses.descriptionHeader`)},d(n.description),9,B),s(`td`,{"data-label":c(f)(`about.statuses.entryCondition`)},[s(`strong`,null,d(n.rule),1)],8,V)]))),128))])]),s(`div`,H,[s(`p`,null,d(c(f)(`about.statuses.usageBoundary`)),1),s(`p`,null,d(c(f)(`about.statuses.resetBoundary`)),1)])])]),s(`section`,U,[s(`div`,null,[s(`span`,null,d(c(f)(`about.example.title`)),1),s(`strong`,null,d(c(f)(`about.example.item`)),1)]),s(`div`,W,[s(`span`,te,d(c(f)(`about.example.profile`)),1),s(`span`,G,d(c(f)(`about.example.origin`)),1),s(`span`,K,d(c(f)(`about.example.status`)),1)]),s(`p`,null,d(c(f)(`about.example.description`)),1)]),s(`p`,q,d(c(f)(`about.allFilter`)),1)])],8,v))}}),[[`__scopeId`,`data-v-e657da2b`]]),Y={class:`open-source-credits`,"aria-labelledby":`credits-title`},X={class:`credit-grid`},Z=[`href`,`data-credit`],Q=[`src`,`onError`],ne={key:1,"aria-hidden":`true`},re={class:`credit-copy`},ie=[`title`],ae={class:`credit-source-note`},oe={class:`fuli-finale`},se={class:`finale-logo-plate`},ce=[`src`],le={class:`finale-brand`},ue={class:`finale-site-link`,"data-testid":`about-website-link`,href:`https://xn--8ovp9s.xn--m8txu.com/fuli/`,target:`_blank`,rel:`noreferrer`},de=m(i({__name:`OpenSourceCredits`,setup(i){let a=u(new Set),m=p(()=>[{name:`Vue.js`,role:f(`about.credits.roles.vue`),url:`https://vuejs.org/`,logo:`https://raw.githubusercontent.com/vuejs/docs/main/src/public/logo.svg`},{name:`Vite`,role:f(`about.credits.roles.vite`),url:`https://vite.dev/`,logo:`https://raw.githubusercontent.com/vitejs/vite/main/docs/public/logo-without-border.svg`},{name:`Pinia`,role:f(`about.credits.roles.pinia`),url:`https://pinia.vuejs.org/`,logo:`https://raw.githubusercontent.com/vuejs/pinia/v4/packages/docs/public/logo.svg`},{name:`D3.js`,role:f(`about.credits.roles.d3`),url:`https://d3js.org/`,logo:`https://raw.githubusercontent.com/d3/d3-logo/master/d3.svg`},{name:`Vitest`,role:f(`about.credits.roles.vitest`),url:`https://vitest.dev/`,logo:`https://raw.githubusercontent.com/vitest-dev/vitest/main/docs/public/logo-without-border.svg`},{name:`Hono`,role:f(`about.credits.roles.hono`),url:`https://hono.dev/`,logo:`https://raw.githubusercontent.com/honojs/website/main/public/images/logo.svg`},{name:`Neo4j`,role:f(`about.credits.roles.neo4j`),url:`https://neo4j.com/`,logo:`https://avatars.githubusercontent.com/u/201120?v=4`},{name:`Zod`,role:f(`about.credits.roles.zod`),url:`https://zod.dev/`,logo:`https://raw.githubusercontent.com/colinhacks/zod/main/packages/docs/public/logo/logo_square.png`},{name:`FastAPI`,role:f(`about.credits.roles.fastapi`),url:`https://fastapi.tiangolo.com/`,logo:`https://raw.githubusercontent.com/fastapi/fastapi/master/docs/en/docs/img/favicon.png`},{name:`Graphiti`,role:f(`about.credits.roles.graphiti`),url:`https://github.com/getzep/graphiti`,logo:`https://avatars.githubusercontent.com/u/132832125?s=128&v=4`},{name:`MCP`,role:f(`about.credits.roles.mcp`),url:`https://modelcontextprotocol.io/`,logo:`https://raw.githubusercontent.com/modelcontextprotocol/docs/main/favicon.svg`}]);return(i,u)=>(e(),t(`section`,Y,[n(_,{"title-id":`credits-title`,title:c(f)(`about.credits.title`),description:c(f)(`about.credits.description`)},null,8,[`title`,`description`]),s(`ul`,X,[(e(!0),t(o,null,r(m.value,n=>(e(),t(`li`,{key:n.name},[s(`a`,{class:`credit-card`,href:n.url,target:`_blank`,rel:`noreferrer`,"data-credit":n.name},[s(`span`,{class:l([`credit-mark`,{"is-fallback":a.has(n.name)}])},[a.has(n.name)?(e(),t(`span`,ne,d(n.name.charAt(0)),1)):(e(),t(`img`,{key:0,src:n.logo,alt:``,loading:`lazy`,referrerpolicy:`no-referrer`,onError:e=>a.add(n.name)},null,40,Q))],2),s(`span`,re,[s(`strong`,{title:n.name},d(n.name),9,ie),s(`small`,null,d(n.role),1)]),u[0]||=s(`span`,{class:`credit-arrow`,"aria-hidden":`true`},`↗`,-1)],8,Z)]))),128))]),s(`p`,ae,d(c(f)(`about.credits.sourceNote`)),1),s(`footer`,oe,[s(`span`,se,[s(`img`,{src:c(h),alt:``,"aria-hidden":`true`},null,8,ce)]),s(`div`,le,[s(`strong`,null,d(c(f)(`common.brand`)),1),u[1]||=s(`span`,null,`Context Graph`,-1)]),s(`p`,null,d(c(f)(`about.credits.finale`)),1),s(`a`,ue,d(c(f)(`about.credits.website`)),1)])]))}}),[[`__scopeId`,`data-v-c9330c37`]]),fe={class:`product-principles`,"aria-labelledby":`principles-title`},pe={class:`principle-sequence`},me={class:`principle-boundaries`},he=[`data-boundary`],ge=m(i({__name:`ProductPrinciples`,setup(i){let a=p(()=>[{key:`capture`,index:f(`about.philosophy.capture.index`),title:f(`about.philosophy.capture.title`),description:f(`about.philosophy.capture.description`)},{key:`project`,index:f(`about.philosophy.project.index`),title:f(`about.philosophy.project.title`),description:f(`about.philosophy.project.description`)},{key:`review`,index:f(`about.philosophy.review.index`),title:f(`about.philosophy.review.title`),description:f(`about.philosophy.review.description`)},{key:`reuse`,index:f(`about.philosophy.reuse.index`),title:f(`about.philosophy.reuse.title`),description:f(`about.philosophy.reuse.description`)}]),l=p(()=>[{key:`local`,title:f(`about.philosophy.local.title`),description:f(`about.philosophy.local.description`)},{key:`authority`,title:f(`about.philosophy.authority.title`),description:f(`about.philosophy.authority.description`)},{key:`scope`,title:f(`about.philosophy.scope.title`),description:f(`about.philosophy.scope.description`)}]);return(i,u)=>(e(),t(`section`,fe,[n(_,{"title-id":`principles-title`,title:c(f)(`about.philosophy.sectionTitle`),description:c(f)(`about.philosophy.support`)},null,8,[`title`,`description`]),s(`div`,pe,[(e(!0),t(o,null,r(a.value,n=>(e(),t(`article`,{key:n.key},[s(`span`,null,d(n.index),1),s(`div`,null,[s(`h3`,null,d(n.title),1),s(`p`,null,d(n.description),1)])]))),128))]),s(`div`,me,[s(`h3`,null,d(c(f)(`about.philosophy.boundariesTitle`)),1),s(`div`,null,[(e(!0),t(o,null,r(l.value,n=>(e(),t(`article`,{key:n.key},[s(`i`,{"data-boundary":n.key,"aria-hidden":`true`},null,8,he),s(`h4`,null,d(n.title),1),s(`p`,null,d(n.description),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-caaf4c60`]]),_e=[`aria-label`],ve={class:`about-content`},ye={class:`about-opening`},be={class:`about-brand-lockup`},$={class:`about-logo-plate`},xe=[`src`],Se={class:`about-brand-name`},Ce={class:`about-opening-claim`},we={class:`about-opening-copy`},Te={class:`about-labels-section`,"aria-labelledby":`about-labels-title`},Ee=m(i({__name:`AboutPage`,setup(r){return(r,i)=>(e(),t(`section`,{class:`view about-view`,"aria-label":c(f)(`about.aria`)},[s(`div`,ve,[s(`header`,ye,[s(`div`,be,[s(`span`,$,[s(`img`,{"data-testid":`about-opening-logo`,src:c(h),alt:``,"aria-hidden":`true`},null,8,xe)]),s(`span`,Se,d(c(f)(`common.brand`)),1)]),s(`p`,Ce,d(c(f)(`about.philosophy.title`)),1),s(`p`,we,d(c(f)(`about.philosophy.intro`)),1)]),n(ge),s(`section`,Te,[n(_,{"title-id":`about-labels-title`,title:c(f)(`about.labelsIntro.title`),description:c(f)(`about.labelsIntro.description`)},null,8,[`title`,`description`]),n(J)]),n(de)])],8,_e))}}),[[`__scopeId`,`data-v-91d4f5d4`]]);export{Ee as default};
1
+ import{B as e,C as t,E as n,H as r,O as i,T as a,_ as o,b as s,dt as c,ft as l,it as u,mt as d,o as f,y as p}from"./i18n-DYrQWclR.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as h}from"./fuli-logo-Bu9WBuQe.js";var g={class:`about-section-heading`},ee=[`id`],_=m(i({__name:`AboutSectionHeading`,props:{titleId:{},title:{},description:{}},setup(n){return(r,i)=>(e(),t(`header`,g,[s(`h2`,{id:n.titleId},d(n.title),9,ee),s(`p`,null,d(n.description),1)]))}}),[[`__scopeId`,`data-v-99ca5811`]]),v=[`aria-label`],y={class:`label-dimension-strip`},b=[`data-dimension`],x={class:`label-guide-sheet`},S={class:`label-guide-section profile-guide`},C={class:`label-definition-list`},w=[`data-kind`],T={class:`label-guide-section quadrant-guide`},E={class:`quadrant-explainer`},D={class:`quadrant-y-axis`,"aria-hidden":`true`},O=[`aria-label`],k=[`data-quadrant`],A={class:`quadrant-x-axis`,"aria-hidden":`true`},j={class:`quadrant-notes`},M={class:`label-guide-section confirmation-guide`},N={class:`status-table-wrap`},P={class:`status-definition-table`},F={scope:`col`},I={scope:`col`},L={scope:`col`},R={scope:`row`},z=[`data-status`],B=[`data-label`],V=[`data-label`],H={class:`status-boundaries`},U={class:`label-example`},W={class:`label-example-tags`,"aria-hidden":`true`},te={class:`label-token profile-token`,"data-kind":`taste`},G={class:`label-token origin-token`},K={class:`label-token status-token`,"data-status":`confirmed`},q={class:`label-all-note`},J=m(i({__name:`LabelGuide`,setup(n){let i=p(()=>[{key:`profile`,title:f(`about.dimensions.profile.title`),question:f(`about.dimensions.profile.question`),timing:f(`about.dimensions.profile.timing`)},{key:`origin`,title:f(`about.dimensions.origin.title`),question:f(`about.dimensions.origin.question`),timing:f(`about.dimensions.origin.timing`)},{key:`confirmation`,title:f(`about.dimensions.confirmation.title`),question:f(`about.dimensions.confirmation.question`),timing:f(`about.dimensions.confirmation.timing`)}]),l=p(()=>[{key:`taste`,label:f(`about.profiles.taste.label`),short:f(`about.profiles.taste.short`),description:f(`about.profiles.taste.description`)},{key:`personality`,label:f(`about.profiles.personality.label`),short:f(`about.profiles.personality.short`),description:f(`about.profiles.personality.description`)},{key:`judgment`,label:f(`about.profiles.judgment.label`),short:f(`about.profiles.judgment.short`),description:f(`about.profiles.judgment.description`)}]),u=p(()=>[{key:`known-unknown`,label:f(`about.quadrants.knownUnknown.label`),coordinate:f(`about.quadrants.knownUnknown.coordinate`),description:f(`about.quadrants.knownUnknown.description`)},{key:`known-known`,label:f(`about.quadrants.knownKnown.label`),coordinate:f(`about.quadrants.knownKnown.coordinate`),description:f(`about.quadrants.knownKnown.description`)},{key:`unknown-unknown`,label:f(`about.quadrants.unknownUnknown.label`),coordinate:f(`about.quadrants.unknownUnknown.coordinate`),description:f(`about.quadrants.unknownUnknown.description`)},{key:`unknown-known`,label:f(`about.quadrants.unknownKnown.label`),coordinate:f(`about.quadrants.unknownKnown.coordinate`),description:f(`about.quadrants.unknownKnown.description`)}]),m=p(()=>[{key:`pending`,label:f(`about.statuses.pending.label`),description:f(`about.statuses.pending.description`),rule:f(`about.statuses.pending.rule`)},{key:`agent-confirmed`,label:f(`about.statuses.agentConfirmed.label`),description:f(`about.statuses.agentConfirmed.description`),rule:f(`about.statuses.agentConfirmed.rule`)},{key:`confirmed`,label:f(`about.statuses.confirmed.label`),description:f(`about.statuses.confirmed.description`),rule:f(`about.statuses.confirmed.rule`)}]);return(n,p)=>(e(),t(`section`,{class:`label-guide`,"aria-label":c(f)(`about.labelsAria`)},[s(`div`,y,[(e(!0),t(o,null,r(i.value,n=>(e(),t(`article`,{key:n.key,"data-dimension":n.key},[p[0]||=s(`i`,{"aria-hidden":`true`},null,-1),s(`dl`,null,[s(`dt`,null,d(n.title),1),s(`dd`,null,[a(d(n.question)+` `,1),s(`small`,null,d(n.timing),1)])])],8,b))),128))]),s(`div`,x,[s(`section`,S,[s(`header`,null,[s(`span`,null,d(c(f)(`about.sections.profile.index`)),1),s(`div`,null,[s(`h3`,null,d(c(f)(`about.sections.profile.title`)),1),s(`p`,null,d(c(f)(`about.sections.profile.meta`)),1)])]),s(`dl`,C,[(e(!0),t(o,null,r(l.value,n=>(e(),t(`div`,{key:n.key,class:`label-definition-row`},[s(`dt`,null,[s(`span`,{class:`label-token profile-token`,"data-kind":n.key},d(n.label),9,w)]),s(`dd`,null,[s(`strong`,null,d(n.short),1),s(`p`,null,d(n.description),1)])]))),128))])]),s(`section`,T,[s(`header`,null,[s(`span`,null,d(c(f)(`about.sections.origin.index`)),1),s(`div`,null,[s(`h3`,null,d(c(f)(`about.sections.origin.title`)),1),s(`p`,null,d(c(f)(`about.sections.origin.meta`)),1)])]),s(`div`,E,[s(`div`,D,[s(`span`,null,d(c(f)(`about.quadrants.aware`)),1),s(`strong`,null,d(c(f)(`about.quadrants.awareness`)),1),s(`span`,null,d(c(f)(`about.quadrants.unaware`)),1)]),s(`div`,{class:`quadrant-grid`,role:`group`,"aria-label":c(f)(`about.sections.origin.title`)},[(e(!0),t(o,null,r(u.value,n=>(e(),t(`article`,{key:n.key,"data-quadrant":n.key},[s(`span`,null,d(n.coordinate),1),s(`strong`,null,d(n.label),1),s(`p`,null,d(n.description),1)],8,k))),128))],8,O),s(`div`,A,[s(`span`,null,d(c(f)(`about.quadrants.unmastered`)),1),s(`strong`,null,d(c(f)(`about.quadrants.mastery`)),1),s(`span`,null,d(c(f)(`about.quadrants.mastered`)),1)]),s(`div`,j,[s(`p`,null,d(c(f)(`about.quadrants.immutable`)),1),s(`p`,null,d(c(f)(`about.quadrants.unclassified`)),1)])])]),s(`section`,M,[s(`header`,null,[s(`span`,null,d(c(f)(`about.sections.confirmation.index`)),1),s(`div`,null,[s(`h3`,null,d(c(f)(`about.sections.confirmation.title`)),1),s(`p`,null,d(c(f)(`about.sections.confirmation.meta`)),1)])]),s(`div`,N,[s(`table`,P,[s(`thead`,null,[s(`tr`,null,[s(`th`,F,d(c(f)(`about.sections.confirmation.title`)),1),s(`th`,I,d(c(f)(`about.statuses.descriptionHeader`)),1),s(`th`,L,d(c(f)(`about.statuses.entryCondition`)),1)])]),s(`tbody`,null,[(e(!0),t(o,null,r(m.value,n=>(e(),t(`tr`,{key:n.key,class:`status-definition-row`},[s(`th`,R,[s(`span`,{class:`label-token status-token`,"data-status":n.key},d(n.label),9,z)]),s(`td`,{"data-label":c(f)(`about.statuses.descriptionHeader`)},d(n.description),9,B),s(`td`,{"data-label":c(f)(`about.statuses.entryCondition`)},[s(`strong`,null,d(n.rule),1)],8,V)]))),128))])]),s(`div`,H,[s(`p`,null,d(c(f)(`about.statuses.usageBoundary`)),1),s(`p`,null,d(c(f)(`about.statuses.resetBoundary`)),1)])])]),s(`section`,U,[s(`div`,null,[s(`span`,null,d(c(f)(`about.example.title`)),1),s(`strong`,null,d(c(f)(`about.example.item`)),1)]),s(`div`,W,[s(`span`,te,d(c(f)(`about.example.profile`)),1),s(`span`,G,d(c(f)(`about.example.origin`)),1),s(`span`,K,d(c(f)(`about.example.status`)),1)]),s(`p`,null,d(c(f)(`about.example.description`)),1)]),s(`p`,q,d(c(f)(`about.allFilter`)),1)])],8,v))}}),[[`__scopeId`,`data-v-e657da2b`]]),Y={class:`open-source-credits`,"aria-labelledby":`credits-title`},X={class:`credit-grid`},Z=[`href`,`data-credit`],Q=[`src`,`onError`],ne={key:1,"aria-hidden":`true`},re={class:`credit-copy`},ie=[`title`],ae={class:`credit-source-note`},oe={class:`fuli-finale`},se={class:`finale-logo-plate`},ce=[`src`],le={class:`finale-brand`},ue={class:`finale-site-link`,"data-testid":`about-website-link`,href:`https://xn--8ovp9s.xn--m8txu.com/fuli/`,target:`_blank`,rel:`noreferrer`},de=m(i({__name:`OpenSourceCredits`,setup(i){let a=u(new Set),m=p(()=>[{name:`Vue.js`,role:f(`about.credits.roles.vue`),url:`https://vuejs.org/`,logo:`https://raw.githubusercontent.com/vuejs/docs/main/src/public/logo.svg`},{name:`Vite`,role:f(`about.credits.roles.vite`),url:`https://vite.dev/`,logo:`https://raw.githubusercontent.com/vitejs/vite/main/docs/public/logo-without-border.svg`},{name:`Pinia`,role:f(`about.credits.roles.pinia`),url:`https://pinia.vuejs.org/`,logo:`https://raw.githubusercontent.com/vuejs/pinia/v4/packages/docs/public/logo.svg`},{name:`D3.js`,role:f(`about.credits.roles.d3`),url:`https://d3js.org/`,logo:`https://raw.githubusercontent.com/d3/d3-logo/master/d3.svg`},{name:`Vitest`,role:f(`about.credits.roles.vitest`),url:`https://vitest.dev/`,logo:`https://raw.githubusercontent.com/vitest-dev/vitest/main/docs/public/logo-without-border.svg`},{name:`Hono`,role:f(`about.credits.roles.hono`),url:`https://hono.dev/`,logo:`https://raw.githubusercontent.com/honojs/website/main/public/images/logo.svg`},{name:`Neo4j`,role:f(`about.credits.roles.neo4j`),url:`https://neo4j.com/`,logo:`https://avatars.githubusercontent.com/u/201120?v=4`},{name:`Zod`,role:f(`about.credits.roles.zod`),url:`https://zod.dev/`,logo:`https://raw.githubusercontent.com/colinhacks/zod/main/packages/docs/public/logo/logo_square.png`},{name:`FastAPI`,role:f(`about.credits.roles.fastapi`),url:`https://fastapi.tiangolo.com/`,logo:`https://raw.githubusercontent.com/fastapi/fastapi/master/docs/en/docs/img/favicon.png`},{name:`Graphiti`,role:f(`about.credits.roles.graphiti`),url:`https://github.com/getzep/graphiti`,logo:`https://avatars.githubusercontent.com/u/132832125?s=128&v=4`},{name:`MCP`,role:f(`about.credits.roles.mcp`),url:`https://modelcontextprotocol.io/`,logo:`https://raw.githubusercontent.com/modelcontextprotocol/docs/main/favicon.svg`}]);return(i,u)=>(e(),t(`section`,Y,[n(_,{"title-id":`credits-title`,title:c(f)(`about.credits.title`),description:c(f)(`about.credits.description`)},null,8,[`title`,`description`]),s(`ul`,X,[(e(!0),t(o,null,r(m.value,n=>(e(),t(`li`,{key:n.name},[s(`a`,{class:`credit-card`,href:n.url,target:`_blank`,rel:`noreferrer`,"data-credit":n.name},[s(`span`,{class:l([`credit-mark`,{"is-fallback":a.has(n.name)}])},[a.has(n.name)?(e(),t(`span`,ne,d(n.name.charAt(0)),1)):(e(),t(`img`,{key:0,src:n.logo,alt:``,loading:`lazy`,referrerpolicy:`no-referrer`,onError:e=>a.add(n.name)},null,40,Q))],2),s(`span`,re,[s(`strong`,{title:n.name},d(n.name),9,ie),s(`small`,null,d(n.role),1)]),u[0]||=s(`span`,{class:`credit-arrow`,"aria-hidden":`true`},`↗`,-1)],8,Z)]))),128))]),s(`p`,ae,d(c(f)(`about.credits.sourceNote`)),1),s(`footer`,oe,[s(`span`,se,[s(`img`,{src:c(h),alt:``,"aria-hidden":`true`},null,8,ce)]),s(`div`,le,[s(`strong`,null,d(c(f)(`common.brand`)),1),u[1]||=s(`span`,null,`Context Graph`,-1)]),s(`p`,null,d(c(f)(`about.credits.finale`)),1),s(`a`,ue,d(c(f)(`about.credits.website`)),1)])]))}}),[[`__scopeId`,`data-v-c9330c37`]]),fe={class:`product-principles`,"aria-labelledby":`principles-title`},pe={class:`principle-sequence`},me={class:`principle-boundaries`},he=[`data-boundary`],ge=m(i({__name:`ProductPrinciples`,setup(i){let a=p(()=>[{key:`capture`,index:f(`about.philosophy.capture.index`),title:f(`about.philosophy.capture.title`),description:f(`about.philosophy.capture.description`)},{key:`project`,index:f(`about.philosophy.project.index`),title:f(`about.philosophy.project.title`),description:f(`about.philosophy.project.description`)},{key:`review`,index:f(`about.philosophy.review.index`),title:f(`about.philosophy.review.title`),description:f(`about.philosophy.review.description`)},{key:`reuse`,index:f(`about.philosophy.reuse.index`),title:f(`about.philosophy.reuse.title`),description:f(`about.philosophy.reuse.description`)}]),l=p(()=>[{key:`local`,title:f(`about.philosophy.local.title`),description:f(`about.philosophy.local.description`)},{key:`authority`,title:f(`about.philosophy.authority.title`),description:f(`about.philosophy.authority.description`)},{key:`scope`,title:f(`about.philosophy.scope.title`),description:f(`about.philosophy.scope.description`)}]);return(i,u)=>(e(),t(`section`,fe,[n(_,{"title-id":`principles-title`,title:c(f)(`about.philosophy.sectionTitle`),description:c(f)(`about.philosophy.support`)},null,8,[`title`,`description`]),s(`div`,pe,[(e(!0),t(o,null,r(a.value,n=>(e(),t(`article`,{key:n.key},[s(`span`,null,d(n.index),1),s(`div`,null,[s(`h3`,null,d(n.title),1),s(`p`,null,d(n.description),1)])]))),128))]),s(`div`,me,[s(`h3`,null,d(c(f)(`about.philosophy.boundariesTitle`)),1),s(`div`,null,[(e(!0),t(o,null,r(l.value,n=>(e(),t(`article`,{key:n.key},[s(`i`,{"data-boundary":n.key,"aria-hidden":`true`},null,8,he),s(`h4`,null,d(n.title),1),s(`p`,null,d(n.description),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-caaf4c60`]]),_e=[`aria-label`],ve={class:`about-content`},ye={class:`about-opening`},be={class:`about-brand-lockup`},$={class:`about-logo-plate`},xe=[`src`],Se={class:`about-brand-name`},Ce={class:`about-opening-claim`},we={class:`about-opening-copy`},Te={class:`about-labels-section`,"aria-labelledby":`about-labels-title`},Ee=m(i({__name:`AboutPage`,setup(r){return(r,i)=>(e(),t(`section`,{class:`view about-view`,"aria-label":c(f)(`about.aria`)},[s(`div`,ve,[s(`header`,ye,[s(`div`,be,[s(`span`,$,[s(`img`,{"data-testid":`about-opening-logo`,src:c(h),alt:``,"aria-hidden":`true`},null,8,xe)]),s(`span`,Se,d(c(f)(`common.brand`)),1)]),s(`p`,Ce,d(c(f)(`about.philosophy.title`)),1),s(`p`,we,d(c(f)(`about.philosophy.intro`)),1)]),n(ge),s(`section`,Te,[n(_,{"title-id":`about-labels-title`,title:c(f)(`about.labelsIntro.title`),description:c(f)(`about.labelsIntro.description`)},null,8,[`title`,`description`]),n(J)]),n(de)])],8,_e))}}),[[`__scopeId`,`data-v-91d4f5d4`]]);export{Ee as default};
@@ -1 +1 @@
1
- import{B as e,O as t,T as n,X as r,dt as i,mt as a,x as o}from"./i18n-DAeCdA8L.js";import{t as s}from"./vue-router-YsTpOqqM.js";import{t as c}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as l}from"./profile-model-BQO4zNs9.js";var u=c(t({__name:`AgentName`,props:{spaceId:{},agentId:{},name:{}},setup(t){return(c,u)=>(e(),o(i(s),{class:`agent-name-link`,to:i(l)(t.spaceId,t.agentId)},{default:r(()=>[n(a(t.name),1)]),_:1},8,[`to`]))}}),[[`__scopeId`,`data-v-4c868995`]]);export{u as t};
1
+ import{B as e,O as t,T as n,X as r,dt as i,mt as a,x as o}from"./i18n-DYrQWclR.js";import{t as s}from"./vue-router-CG6ezAck.js";import{t as c}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as l}from"./profile-model-BQO4zNs9.js";var u=c(t({__name:`AgentName`,props:{spaceId:{},agentId:{},name:{}},setup(t){return(c,u)=>(e(),o(i(s),{class:`agent-name-link`,to:i(l)(t.spaceId,t.agentId)},{default:r(()=>[n(a(t.name),1)]),_:1},8,[`to`]))}}),[[`__scopeId`,`data-v-4c868995`]]);export{u as t};
@@ -1 +1 @@
1
- import{B as e,C as t,E as n,H as r,J as i,O as a,P as o,R as s,S as c,T as l,X as u,Z as d,_ as f,b as p,dt as m,ft as h,g,m as _,mt as v,o as y,ot as b,p as x,pt as S,x as C,y as w}from"./i18n-DAeCdA8L.js";import{n as T,t as E}from"./console-2nhA6IaV.js";import{m as D}from"./useApi-CROJJdhE-BJn8l1Cb.js";import{t as O}from"./vue-router-YsTpOqqM.js";import{o as k,r as A,s as j}from"./client-DBYe0KzE.js";import{t as M}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{r as N}from"./ui-WHqcW6KK.js";import{t as ee}from"./UiSelect-BaVTdhtR.js";import{t as P}from"./avatars-CUyfvsKO.js";import{t as F}from"./agent-identity-color-RqpT7gtx.js";import{a as I,r as te,t as L}from"./profile-model-BQO4zNs9.js";import{a as ne,h as R,l as re,n as ie}from"./task-evidence-i9SDhd3E.js";import{n as ae}from"./useAgentRecords-DotFATN2.js";import{n as oe}from"./paths-CDREouhi.js";import{t as se}from"./UiDisclosure-BIE3uXrx.js";import{t as ce}from"./AgentName-DeHNVQ-r.js";import{i as le,n as z,t as ue}from"./occupation-catalog-DnevywIk.js";import{i as B,n as V,r as H,t as U}from"./agent-occupation-Bke7eg11.js";import{n as de,t as fe}from"./TaskExecutionPlan-CFM_14VC.js";import{a as pe,i as me,n as he}from"./agent-work-summary-C53Zfzk5.js";import{a as ge,s as _e}from"./catalog-CmHt1ONG.js";import{t as ve}from"./project-team-api-CXPeakuM.js";/* empty css */var W=[`title`],ye=M(a({__name:`ActivityOriginBadge`,props:{origin:{}},setup(n){return(r,i)=>n.origin?.kind===`ai_internal`?(e(),t(`span`,{key:0,class:`ui-badge activity-origin-badge`,"data-activity-origin":``,title:m(y)(`agentProfiles.activityOrigin.sources.${n.origin.source}`)},v(m(y)(`agentProfiles.activityOrigin.label`,{purpose:m(y)(`agentProfiles.activityOrigin.purposes.${n.origin.purpose}`)})),9,W)):c(``,!0)}}),[[`__scopeId`,`data-v-8e8c076b`]]),G={key:1,class:`agent-locked-platforms`},K={key:2,class:`agent-platform-field`},q=[`disabled`,`placeholder`],J=[`onUpdate:modelValue`,`disabled`],Y={key:3,role:`alert`},X={key:4,role:`status`},be=a({__name:`AgentProfileSettings`,props:{agent:{}},emits:[`saved`],setup(a,{emit:o}){let s=a,h=o,_=b([]),S=b(!1),E=b(!1),D=b(``),O=b(!1),M=``,N=b(``),P=b(``),F=b({judgment:``,taste:``,personality:``}),I=w(()=>s.agent.profile.executorPolicy?.mode===`locked`),te=w(()=>{let e=s.agent.profile.executorPolicy;return(e?.lockedExecutorIds?.length?e.lockedExecutorIds:(e?.allowList??[]).map(e=>e.executorId)).map(e=>_.value.find(t=>t.executorId===e)?.displayName||e)}),L=w(()=>_.value.filter(e=>e.registrationStatus===`registered`&&e.permissionStatus===`authorized`&&e.preflightStatus===`passed`&&e.workspacePermission&&e.healthStatus!==`unhealthy`&&(!e.healthRequired||e.healthStatus===`healthy`))),ne=w(()=>[{value:``,label:y(`agentProfiles.automatic`)},...N.value&&!L.value.some(e=>e.executorId===N.value)?[{value:N.value,label:y(`agentProfiles.platformUnavailable`),disabled:!0}]:[],...L.value.map(e=>({value:e.executorId,label:e.displayName||e.executorId}))]),R=0;i(()=>`${s.agent.personalSpaceId}/${s.agent.agentId}`,async()=>{let e=s.agent,t=++R;P.value=e.profile.expectations??``,F.value={judgment:``,taste:``,personality:``,...e.profile.character},N.value=e.profile.executorPolicy?.preferredExecutorIds?.[0]??``,M=N.value,D.value=``,O.value=!1,E.value=!1,S.value=!0,_.value=[];try{let n=await A(`/api/executors?${new URLSearchParams({personalSpaceId:e.personalSpaceId})}`);t===R&&(_.value=Array.isArray(n)?n:n.executors)}catch{t===R&&(D.value=y(`agentProfiles.platformUnavailable`))}finally{t===R&&(S.value=!1)}},{immediate:!0});async function re(){if(E.value)return;let e=R,t=s.agent;E.value=!0,D.value=``,O.value=!1;let n=t.profile.executorPolicy;try{let r=await k(`/api/project-agents`,{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId??null,agentId:t.agentId,profile:{...t.profile,character:{...F.value},expectations:P.value,executorPolicy:I.value||N.value===M?n:{...n,mode:`flexible`,preferredExecutorIds:N.value?[N.value]:[]}}});e===R&&(M=N.value,h(`saved`,r),O.value=!0)}catch(t){e===R&&(D.value=t instanceof Error?t.message:y(`agentProfiles.saveError`))}finally{e===R&&(E.value=!1)}}return(i,a)=>(e(),t(`form`,{class:`agent-simple-settings`,onSubmit:g(re,[`prevent`])},[p(`h3`,null,v(m(y)(`agentProfiles.settings`)),1),S.value?(e(),C(j,{key:0,variant:`compact`,label:m(y)(`agentProfiles.settingsLoading`)},null,8,[`label`])):I.value?(e(),t(`div`,G,[p(`h4`,null,v(m(y)(`agentProfiles.platform`)),1),p(`p`,null,v(te.value.join(` · `)||m(y)(`agentProfiles.platformUnavailable`)),1),p(`small`,null,v(m(y)(`agentProfiles.locked`)),1)])):(e(),t(`div`,K,[n(ee,{modelValue:N.value,"onUpdate:modelValue":a[0]||=e=>N.value=e,field:``,label:m(y)(`agentProfiles.platform`),options:ne.value,disabled:I.value||E.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),p(`small`,null,v(m(y)(I.value?`agentProfiles.locked`:`agentProfiles.platformHint`)),1)])),p(`label`,null,[l(v(m(y)(`agentProfiles.expectations`)),1),d(p(`textarea`,{"onUpdate:modelValue":a[1]||=e=>P.value=e,rows:`3`,maxlength:`4096`,disabled:E.value,placeholder:m(y)(`agentProfiles.expectationsPlaceholder`)},null,8,q),[[x,P.value]])]),p(`details`,null,[p(`summary`,null,v(m(y)(`agentProfiles.editCharacter`)),1),(e(),t(f,null,r([`judgment`,`taste`,`personality`],e=>p(`label`,{key:e},[l(v(m(y)(`agentProfiles.${e}`)),1),d(p(`textarea`,{"onUpdate:modelValue":t=>F.value[e]=t,rows:`2`,maxlength:`2048`,disabled:E.value},null,8,J),[[x,F.value[e]]])])),64))]),D.value?(e(),t(`p`,Y,v(D.value),1)):c(``,!0),O.value?(e(),t(`p`,X,v(m(y)(`agentProfiles.saved`)),1)):c(``,!0),n(T,{size:`sm`,variant:`primary`,disabled:E.value||S.value,type:`submit`},{default:u(()=>[E.value?(e(),C(j,{key:0,variant:`inline`,label:m(y)(`agentProfiles.saving`)},null,8,[`label`])):(e(),t(f,{key:1},[l(v(m(y)(`agentProfiles.save`)),1)],64))]),_:1},8,[`disabled`])],32))}}),xe={key:0,class:`agent-occupation-editor`,"data-occupation-locked":``},Se={class:`ui-meta`},Ce={class:`ui-meta`},Z=[`disabled`],we={class:`ui-meta`},Te={key:0,class:`agent-occupation-main`},Ee={key:0,role:`alert`},De={key:1,role:`status`},Oe=M(a({__name:`AgentOccupationEditor`,props:{agent:{}},emits:[`saved`],setup(a,{emit:o}){let s=a,d=o,h=b(``),_=b([]),x=b(!1),S=b(``),E=b(!1);i(()=>s.agent.occupation,e=>{h.value=e?.role??``,_.value=(e?.tags??[]).filter(t=>t!==e?.role)},{immediate:!0}),i(h,e=>{e&&(_.value=_.value.filter(t=>t!==e))});let D=le(w(()=>s.agent.personalSpaceId)),O=w(()=>{let e=D.active.value.map(e=>e.key),t=[s.agent.occupation?.role,...s.agent.occupation?.tags??[]].filter(e=>!!e);return[...new Set([...e.length?e:U,...t])]}),k=e=>{let t=z(e);return t?ue(t):void 0},A=w(()=>[{value:``,label:y(`agentRedesign.occupation.none`)},...O.value.map(e=>({value:e,label:V(e)}))]);function M(e){E.value=!1,_.value=_.value.includes(e)?_.value.filter(t=>t!==e):[..._.value,e]}async function N(){x.value=!0,S.value=``,E.value=!1;try{let e=await B(s.agent.personalSpaceId,s.agent.agentId,{role:h.value||null,tags:_.value});d(`saved`,e),E.value=!0}catch(e){S.value=e instanceof Error?e.message:y(`agentRedesign.occupation.saveError`)}finally{x.value=!1}}return(i,o)=>a.agent.occupationLocked?(e(),t(`section`,xe,[p(`h3`,null,v(m(y)(`agentRedesign.occupation.title`)),1),p(`p`,Se,v(m(y)(`agentRedesign.occupation.locked`,{occupation:m(H)(a.agent.occupation).join(` · `)||m(y)(`agentRedesign.occupation.none`)})),1)])):(e(),t(`form`,{key:1,class:`agent-occupation-editor`,"data-occupation-editor":``,onSubmit:g(N,[`prevent`])},[p(`h3`,null,v(m(y)(`agentRedesign.occupation.title`)),1),p(`p`,Ce,v(m(y)(`agentRedesign.occupation.note`)),1),n(ee,{modelValue:h.value,"onUpdate:modelValue":[o[0]||=e=>h.value=e,o[1]||=e=>E.value=!1],field:``,label:m(y)(`agentRedesign.occupation.role`),options:A.value,disabled:x.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),p(`fieldset`,{class:`agent-occupation-tags`,disabled:x.value},[p(`legend`,null,[l(v(m(y)(`agentRedesign.occupation.tags`))+` `,1),p(`small`,we,v(m(y)(`agentRedesign.occupation.tagsHint`)),1)]),(e(!0),t(f,null,r(O.value,n=>(e(),C(T,{size:`sm`,variant:`ghost`,key:n,"data-occupation-tag":n,"aria-pressed":_.value.includes(n),disabled:n===h.value||!_.value.includes(n)&&_.value.length>=m(5),title:n===h.value?m(y)(`agentRedesign.occupation.isMainRole`):k(n),onClick:e=>M(n)},{default:u(()=>[l(v(m(V)(n)),1),n===h.value?(e(),t(`small`,Te,` · `+v(m(y)(`agentRedesign.occupation.mainRoleShort`)),1)):c(``,!0)]),_:2},1032,[`data-occupation-tag`,`aria-pressed`,`disabled`,`title`,`onClick`]))),128))],8,Z),S.value?(e(),t(`p`,Ee,v(S.value),1)):c(``,!0),E.value?(e(),t(`p`,De,v(m(y)(`agentRedesign.occupation.saved`)),1)):c(``,!0),n(T,{size:`sm`,variant:`primary`,type:`submit`,disabled:x.value},{default:u(()=>[x.value?(e(),C(j,{key:0,variant:`inline`,label:m(y)(`agentRedesign.occupation.saving`)},null,8,[`label`])):(e(),t(f,{key:1},[l(v(m(y)(`agentRedesign.occupation.save`)),1)],64))]),_:1},8,[`disabled`])],32))}}),[[`__scopeId`,`data-v-acfb86ae`]]),Q=[`aria-expanded`,`data-occupation`],ke={class:`occupation-chip-detail`,"data-occupation-detail":``},Ae={key:0},je=M(a({__name:`OccupationChip`,props:{occupationKey:{},main:{type:Boolean}},setup(r){let i=r,a=b(null),o=w(()=>z(i.occupationKey)),s=w(()=>V(i.occupationKey));function d(e){a.value=e.currentTarget.getBoundingClientRect()}return(i,g)=>(e(),t(f,null,[p(`button`,{type:`button`,class:h([`occupation-chip`,{"is-main":r.main}]),"aria-expanded":!!a.value,"data-occupation":r.occupationKey,onClick:d},v(s.value),11,Q),n(m(N),{open:!!a.value,anchor:a.value,label:s.value,onClose:g[1]||=e=>a.value=null},{default:u(()=>[p(`div`,ke,[p(`strong`,null,v(s.value),1),p(`p`,null,v(o.value?m(ue)(o.value):m(y)(`occupations.noDescription`)),1),o.value?(e(),t(`small`,Ae,v(m(y)(`occupations.agentCount`,{count:o.value.agent_count})),1)):c(``,!0),n(m(O),{to:`/project-agents/occupations`,onClick:g[0]||=e=>a.value=null},{default:u(()=>[l(v(m(y)(`occupations.manage`)),1)]),_:1})])]),_:1},8,[`open`,`anchor`,`label`])],64))}}),[[`__scopeId`,`data-v-6314de26`]]),Me=[`aria-label`],Ne={key:1,class:`ui-card ui-empty agent-profile-empty`,role:`alert`},Pe={key:2,class:`ui-card ui-empty agent-profile-empty`},Fe={class:`ui-card agent-resume-header`},Ie=[`src`],Le={class:`agent-resume-intro`},Re={class:`agent-resume-name-row`},ze={key:0,class:`ui-badge fla-employee-number`},Be={class:`agent-resume-occupation`,"data-profile-occupation":``},Ve={key:1,class:`ui-meta`},He={class:`agent-resume-meta`},Ue={class:`agent-profile-actions`},We={key:1,class:`agent-profile-refresh-status`,role:`status`},Ge=[`aria-label`],Ke=[`id`,`aria-selected`,`aria-controls`,`tabindex`,`onClick`,`onKeydown`],qe={key:5,class:`agent-profile-partial`,role:`status`},Je=[`aria-hidden`],Ye={class:`agent-profile-primary-grid`},Xe={class:`ui-card agent-resume-section agent-current-work-section`},Ze={class:`agent-section-heading`},Qe={key:0},$e={key:0,class:`agent-current-work-list`},et={class:`ui-badge`},tt={key:1,class:`agent-muted`},nt={key:2,class:`agent-muted`},rt={class:`ui-card agent-resume-section agent-projects-section`},it={class:`agent-section-heading`},at={class:`agent-resume-list agent-current-project-list`},ot={key:0,class:`agent-project-responsibility`},st={class:`agent-resume-list`},ct={key:0,class:`agent-project-responsibility`},lt={key:1,class:`agent-muted`},ut=[`aria-hidden`],dt={class:`ui-card agent-resume-section`},ft={key:0,class:`ui-disclosure`,open:``},pt={class:`agent-resume-list`},mt={key:1,class:`agent-muted`},ht={class:`ui-card agent-resume-section`},gt={class:`agent-muted`},_t={class:`agent-work-timeline`},vt={class:`agent-section-heading`},yt={key:0},bt={key:0},xt={key:0},St={key:0,class:`agent-muted`},Ct=[`aria-hidden`],wt={class:`ui-card agent-resume-section`},Tt={class:`agent-character`},Et={key:0,class:`agent-expectation`},Dt={class:`agent-strengths`},Ot={class:`agent-inline-skills`},kt={key:0},At=[`aria-hidden`],jt={class:`ui-card agent-resume-section`},Mt={class:`agent-section-heading`},Nt={key:0,role:`status`},Pt={key:0,class:`agent-org-lead-unavailable`,role:`status`},Ft={key:1,class:`agent-org-lead`},It={key:2,class:`agent-org-reporting`},Lt={key:3,class:`agent-org-members`},Rt={key:2,class:`agent-muted`},zt={key:0,class:`agent-muted`},Bt={class:`ui-card agent-resume-section`},Vt={class:`agent-collaborators`},Ht={key:0,class:`agent-muted`},Ut=[`aria-hidden`],Wt={class:`ui-card agent-resume-section`},Gt=[`aria-hidden`],Kt={class:`ui-card agent-resume-section agent-management-card`},qt={class:`agent-muted`},Jt={class:`agent-profile-management-links`},Yt=M(a({__name:`AgentProfilePage`,setup(a){let g=D(),x=E(),k=w(()=>x.activePersonalSpace?.id??``),M=w(()=>g.params.spaceId===k.value?String(g.params.agentId??``):``),N=ae(k,w(()=>M.value?[M.value]:[])),{loading:ee,error:z}=N,ue=()=>N.load({force:!0}),B=w(()=>M.value?N.records.value[M.value]:void 0),V=w(()=>(x.state?.personalProjects??[]).filter(e=>e.personal_space_id===k.value)),H=e=>V.value.find(t=>t.project_id===e)?.profile.name||e,U=b([]),W=b(void 0),G=b([]),K=b(!1),q=b(!1),J=b(!1),Y=b(`overview`),X=w(()=>{let e=[{id:`overview`,label:y(`agentProfiles.working`)},{id:`history`,label:y(`agentProfiles.experience`)},{id:`style`,label:y(`agentProfiles.about`)},{id:`collaborators`,label:y(`agentProfiles.collaborators`)},{id:`management`,label:y(`agentProfiles.advanced`)}];return B.value?.memoryScope===`reviewed_agent`&&e.splice(4,0,{id:`conversations`,label:y(`projectAgents.conversations.title`)}),e}),xe=w(()=>B.value?te(B.value.agentId,U.value):[]),Se=ae(k,w(()=>xe.value.map(e=>e.agentId))),Ce=e=>{let t=Se.records.value[e];return t?L(t):e},Z=w(()=>B.value?I({...B.value,assignments:W.value??B.value.assignments}):[]),we=w(()=>V.value.filter(e=>Z.value.includes(e.project_id)).map(e=>({id:e.project_id,name:e.profile.name}))),Te=w(()=>Z.value.slice(0,4)),Ee=w(()=>Z.value.slice(4)),De=w(()=>(W.value??[]).filter(e=>e.status!==`active`)),Q=w(()=>U.value.filter(e=>pe.has(e.status)).slice(0,6)),ke=w(()=>{let e=B.value?.occupation;return e?[...new Set([...e.role?[e.role]:[],...e.tags])]:[]});le(w(()=>B.value?.personalSpaceId??``));let Ae=w(()=>ge.value.find(e=>e.agentId===B.value?.agentId)),Yt=w(()=>Ae.value?.id===`bole`),$=e=>e&&!Number.isNaN(Date.parse(e))?new Date(e).toLocaleDateString():y(`agentProfiles.timeUnknown`),Xt=e=>{let t=W.value?.find(t=>t.personalProjectId===e&&t.status===`active`)?.responsibility?.trim(),n=B.value?.profile.responsibility.trim();return t&&t!==n?t:``},Zt=w(()=>{let e=`agentRedesign.projects.more`,t=y(e,{count:Z.value.length});return t===e?`All projects (${Z.value.length})`:t}),Qt=0;i(()=>B.value?`${B.value.personalSpaceId}/${B.value.agentId}`:``,async()=>{let e=B.value,t=++Qt;if(U.value=[],W.value=void 0,G.value=[],q.value=!1,K.value=!1,J.value=!1,Y.value=`overview`,!e)return;_e(e.personalSpaceId),K.value=!0,W.value=e.assignments;let n=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),r=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),i=await Promise.allSettled([A(`/api/project-agent-tasks?${n}&limit=200`),A(`/api/project-agent-assignments?${r}`)]);if(t!==Qt)return;let[a,o]=i;if(a.status===`fulfilled`){let t=a.value,n=R(t);q.value=!he(t),U.value=ie(Array.isArray(t)?t:n.tasks??n.items).map(re).filter(t=>!!(t&&(!t.personalSpaceId||t.personalSpaceId===e.personalSpaceId)&&me(t,e.agentId))).sort((e,t)=>(t.updatedAt??t.createdAt??``).localeCompare(e.updatedAt??e.createdAt??``))}else q.value=!0;if(o.status===`fulfilled`){let t=o.value,n=R(t);W.value=ie(Array.isArray(t)?t:n.assignments??n.items).map(t=>ne(t,e)).filter(t=>!!(t&&t.agentId===e.agentId&&t.personalSpaceId===e.personalSpaceId))}else q.value=!0;let s=I({...e,assignments:W.value??e.assignments}),c=await Promise.all(s.map(async t=>{try{return{projectId:t,view:await ve(e.personalSpaceId,t),error:!1}}catch{return{projectId:t,view:null,error:!0}}}));t===Qt&&(G.value=c,K.value=!1)},{immediate:!0});function $t(e){B.value&&N.put(M.value,{...B.value,...e})}function en(e){Y.value=e}function tn(e,t){let n=e.key;if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(n))return;let r=e.currentTarget;e.preventDefault();let i=X.value.length,a=n===`Home`?0:n===`End`?i-1:(t+(n===`ArrowRight`?1:-1)+i)%i,s=X.value[a];s&&(en(s.id),o(()=>{let e=(r?.closest(`[role="tablist"]`))?.querySelectorAll(`[role="tab"]`)[a];e?.focus(),e?.scrollIntoView?.({block:`nearest`,inline:`nearest`})}))}return s(()=>{x.runtimeStatus===`idle`&&x.refresh()}),(i,a)=>(e(),t(`section`,{class:`view agent-profile-page`,"aria-label":m(y)(`agentProfiles.profile`)},[n(m(O),{class:`agent-profile-back`,to:`/project-agents`},{default:u(()=>[l(` ← `+v(m(y)(`agentProfiles.back`)),1)]),_:1}),(m(ee)||m(x).runtimeStatus===`loading`)&&!B.value?(e(),C(j,{key:0,label:m(y)(`agentProfiles.loading`)},null,8,[`label`])):(m(z)||m(x).runtimeStatus===`error`)&&!B.value?(e(),t(`div`,Ne,[p(`p`,null,v(m(z)||m(y)(`agentProfiles.loadError`)),1),n(T,{size:`sm`,variant:`ghost`,onClick:a[0]||=e=>m(x).state?ue():m(x).refresh()},{default:u(()=>[l(v(m(y)(`agentProfiles.retry`)),1)]),_:1})])):B.value?(e(),t(f,{key:3},[p(`header`,Fe,[p(`span`,{class:`agent-portrait agent-identity`,style:S(m(F)(B.value.agentId)),"aria-hidden":`true`},[m(P)(B.value.agentId)?(e(),t(`img`,{key:0,src:m(P)(B.value.agentId),alt:``},null,8,Ie)):(e(),t(f,{key:1},[l(v(B.value.profile.occupationEmoji||m(L)(B.value).slice(0,1)),1)],64))],4),p(`div`,Le,[p(`div`,Re,[p(`h1`,null,v(m(L)(B.value)),1),B.value.employeeNumber?(e(),t(`span`,ze,`FLA `+v(B.value.employeeNumber),1)):c(``,!0),p(`span`,{class:h([`ui-badge agent-profile-membership`,`is-${B.value.profile.status}`])},v(m(y)(`projectAgents.status.${B.value.profile.status}`)),3)]),p(`p`,Be,[ke.value.length?(e(!0),t(f,{key:0},r(ke.value,(t,n)=>(e(),C(je,{key:t,"occupation-key":t,main:n===0&&!!B.value.occupation?.role},null,8,[`occupation-key`,`main`]))),128)):(e(),t(`span`,Ve,v(m(y)(`agentRedesign.occupation.notSet`)),1))]),p(`p`,null,v(B.value.profile.responsibility),1),p(`div`,He,[p(`span`,null,v(m(y)(B.value.recruitedAt?`agentProfiles.joined`:`agentProfiles.created`))+` · `+v($(B.value.recruitedAt||B.value.createdAt)),1)])]),p(`div`,Ue,[Ae.value?(e(),C(m(O),{key:0,class:`quiet-button`,to:`/employees/${encodeURIComponent(Ae.value.id)}`},{default:u(()=>[l(v(m(y)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):c(``,!0),n(T,{size:`sm`,variant:`ghost`,"aria-expanded":J.value,onClick:a[1]||=e=>J.value=!J.value},{default:u(()=>[l(v(m(y)(`agentProfiles.settings`)),1)]),_:1},8,[`aria-expanded`]),Yt.value?c(``,!0):(e(),C(m(O),{key:1,class:`quiet-button`,to:{path:`/employees/bole`,query:{q:m(L)(B.value)}}},{default:u(()=>[l(v(m(y)(`agentProfiles.askHR`)),1)]),_:1},8,[`to`]))])]),m(ee)||m(x).runtimeStatus===`loading`?(e(),C(j,{key:0,variant:`compact`,label:m(y)(`agentProfiles.loading`)},null,8,[`label`])):c(``,!0),m(z)?(e(),t(`p`,We,v(m(z)),1)):c(``,!0),J.value?(e(),C(be,{key:B.value.agentId,agent:B.value,onSaved:$t},null,8,[`agent`])):c(``,!0),J.value&&B.value.profile.status!==`archived`?(e(),C(Oe,{key:`occupation-${B.value.agentId}`,agent:B.value,onSaved:$t},null,8,[`agent`])):c(``,!0),K.value?(e(),C(j,{key:4,variant:`compact`,label:m(y)(`agentProfiles.detailLoading`)},null,8,[`label`])):c(``,!0),p(`nav`,{class:`agent-profile-tabs`,role:`tablist`,"aria-label":m(y)(`agentProfiles.profile`)},[(e(!0),t(f,null,r(X.value,n=>(e(),t(`button`,{id:`agent-tab-${n.id}`,key:n.id,class:`agent-profile-tab`,type:`button`,role:`tab`,"aria-selected":Y.value===n.id,"aria-controls":`agent-panel-${n.id}`,tabindex:Y.value===n.id?0:-1,onClick:e=>en(n.id),onKeydown:e=>tn(e,X.value.findIndex(e=>e.id===n.id))},v(n.label),41,Ke))),128))],8,Ge),q.value?(e(),t(`p`,qe,v(m(y)(`agentProfiles.partial`)),1)):c(``,!0),d(p(`section`,{id:`agent-panel-overview`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-overview`,"aria-hidden":Y.value!==`overview`,tabindex:`0`},[p(`div`,Ye,[p(`section`,Xe,[p(`div`,Ze,[p(`h2`,null,v(m(y)(`agentProfiles.working`)),1),Q.value.length?(e(),t(`span`,Qe,v(Q.value.length),1)):c(``,!0)]),Q.value.length?(e(),t(`ul`,$e,[(e(!0),t(f,null,r(Q.value,r=>(e(),t(`li`,{key:r.taskId},[n(m(O),{to:{path:`/project-agents/manage`,query:{agent:B.value.agentId,task:r.taskId}}},{default:u(()=>[l(v(r.title),1)]),_:2},1032,[`to`]),p(`span`,et,v(m(y)(`projectAgents.taskStatus.${r.status}`)),1),n(ye,{origin:r.activityOrigin},null,8,[`origin`]),n(fe,{task:r,"personal-space-id":k.value,active:Y.value===`overview`},null,8,[`task`,`personal-space-id`,`active`])]))),128))])):!K.value&&!q.value?(e(),t(`p`,tt,v(m(y)(`agentProfiles.idle`)),1)):K.value?c(``,!0):(e(),t(`p`,nt,v(m(y)(`agentProfiles.partial`)),1))]),p(`section`,rt,[p(`div`,it,[p(`h2`,null,v(m(y)(`agentProfiles.projects`)),1),p(`span`,null,v(Z.value.length),1)]),p(`ul`,at,[(e(!0),t(f,null,r(Te.value,r=>(e(),t(`li`,{key:r,class:`agent-project-item`},[p(`h3`,null,[n(m(O),{class:`agent-project-link`,to:m(oe)(k.value,`overview`,r)},{default:u(()=>[l(v(H(r)),1)]),_:2},1032,[`to`])]),Xt(r)?(e(),t(`p`,ot,v(Xt(r)),1)):c(``,!0)]))),128))]),Ee.value.length?(e(),C(se,{key:0,class:`agent-project-overflow`,title:Zt.value},{default:u(()=>[p(`ul`,st,[(e(!0),t(f,null,r(Ee.value,r=>(e(),t(`li`,{key:r,class:`agent-project-item`},[p(`h3`,null,[n(m(O),{class:`agent-project-link`,to:m(oe)(k.value,`overview`,r)},{default:u(()=>[l(v(H(r)),1)]),_:2},1032,[`to`])]),Xt(r)?(e(),t(`p`,ct,v(Xt(r)),1)):c(``,!0)]))),128))])]),_:1},8,[`title`])):c(``,!0),!K.value&&!Z.value.length?(e(),t(`p`,lt,v(m(y)(`agentProfiles.noProject`)),1)):c(``,!0)])])],8,Je),[[_,Y.value===`overview`]]),d(p(`section`,{id:`agent-panel-history`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-history`,"aria-hidden":Y.value!==`history`,tabindex:`0`},[p(`section`,dt,[p(`h2`,null,v(m(y)(`agentProfiles.projects`)),1),De.value.length?(e(),t(`details`,ft,[p(`summary`,null,v(m(y)(`agentProfiles.projectHistory`)),1),p(`ul`,pt,[(e(!0),t(f,null,r(De.value,r=>(e(),t(`li`,{key:r.assignmentId},[p(`h3`,null,[n(m(O),{class:`agent-project-link`,to:m(oe)(k.value,`overview`,r.personalProjectId)},{default:u(()=>[l(v(H(r.personalProjectId)),1)]),_:2},1032,[`to`])]),p(`p`,null,v(r.responsibility),1),p(`small`,null,v($(r.assignedAt))+` – `+v($(r.endedAt)),1)]))),128))])])):K.value?c(``,!0):(e(),t(`p`,mt,v(m(y)(`agentProfiles.noProject`)),1))]),p(`section`,ht,[p(`h2`,null,v(m(y)(`agentProfiles.experience`)),1),p(`p`,gt,v(m(y)(`agentProfiles.recent`)),1),p(`ol`,_t,[(e(!0),t(f,null,r(U.value.slice(0,12),r=>(e(),t(`li`,{key:r.taskId},[p(`div`,vt,[n(m(O),{to:{path:`/project-agents/manage`,query:{agent:B.value.agentId,task:r.taskId}}},{default:u(()=>[l(v(r.title),1)]),_:2},1032,[`to`]),p(`span`,null,v(m(y)(`projectAgents.taskStatus.${r.status}`)),1),n(ye,{origin:r.activityOrigin},null,8,[`origin`])]),r.resultSummary?(e(),t(`p`,yt,v(r.resultSummary),1)):c(``,!0),p(`small`,null,v($(r.completedAt||r.updatedAt||r.createdAt)),1)]))),128)),B.value.recruitedAt||B.value.recruitmentReason?(e(),t(`li`,bt,[p(`h3`,null,v(m(y)(`agentProfiles.recruitment`)),1),B.value.recruitmentReason?(e(),t(`p`,xt,v(B.value.recruitmentReason),1)):c(``,!0),p(`small`,null,v($(B.value.recruitedAt)),1)])):c(``,!0)]),!K.value&&!U.value.length&&!B.value.recruitmentReason&&!B.value.recruitedAt?(e(),t(`p`,St,v(m(y)(`agentProfiles.noExperience`)),1)):c(``,!0)])],8,ut),[[_,Y.value===`history`]]),d(p(`section`,{id:`agent-panel-style`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-style`,"aria-hidden":Y.value!==`style`,tabindex:`0`},[p(`section`,wt,[p(`h2`,null,v(m(y)(`agentProfiles.about`)),1),p(`div`,Tt,[(e(),t(f,null,r([`judgment`,`taste`,`personality`],e=>p(`div`,{key:e},[p(`h3`,null,v(m(y)(`agentProfiles.${e}`)),1),p(`p`,{class:h({"agent-muted":!B.value.profile.character?.[e]})},v(B.value.profile.character?.[e]||m(y)(`agentProfiles.characterEmpty`)),3)])),64))]),B.value.profile.expectations?(e(),t(`p`,Et,[p(`strong`,null,v(m(y)(`agentProfiles.expectations`)),1),l(` `+v(B.value.profile.expectations),1)])):c(``,!0),p(`div`,Dt,[p(`h3`,null,v(m(y)(`agentProfiles.strengths`)),1),p(`div`,Ot,[(e(!0),t(f,null,r(B.value.profile.capabilities,n=>(e(),t(`span`,{key:n},v(n),1))),128)),B.value.profile.capabilities.length?c(``,!0):(e(),t(`span`,kt,v(m(y)(`agentProfiles.noSkills`)),1))])])])],8,Ct),[[_,Y.value===`style`]]),d(p(`section`,{id:`agent-panel-collaborators`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-collaborators`,"aria-hidden":Y.value!==`collaborators`,tabindex:`0`},[p(`section`,jt,[p(`div`,Mt,[p(`h2`,null,v(m(y)(`agentProfiles.organization`)),1),Yt.value?c(``,!0):(e(),C(m(O),{key:0,to:{path:`/employees/bole`,query:{q:m(L)(B.value)}}},{default:u(()=>[l(v(m(y)(`agentProfiles.hr`)),1)]),_:1},8,[`to`]))]),(e(!0),t(f,null,r(G.value,i=>(e(),t(`div`,{key:i.projectId,class:`agent-organization`},[p(`h3`,null,v(H(i.projectId)),1),i.error?(e(),t(`p`,Nt,v(m(y)(`agentProfiles.teamUnavailable`)),1)):i.view&&(i.view.lead||i.view.unavailableLead||i.view.members.length)?(e(),t(f,{key:1},[i.view.unavailableLead?(e(),t(`p`,Pt,v(i.view.unavailableLead.name?m(y)(`agentProfiles.leadUnavailable`,{name:i.view.unavailableLead.name}):m(y)(`agentProfiles.leadUnavailableUnnamed`)),1)):c(``,!0),i.view.lead?(e(),t(`div`,Ft,[p(`span`,null,v(m(y)(`agentProfiles.lead`)),1),n(ce,{"space-id":k.value,"agent-id":i.view.lead.agentId,name:i.view.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):c(``,!0),i.view.lead?(e(),t(`p`,It,v(m(y)(`agentProfiles.reporting`)),1)):c(``,!0),i.view.members.length?(e(),t(`div`,Lt,[p(`span`,null,v(m(y)(`agentProfiles.teammates`)),1),p(`ul`,null,[(e(!0),t(f,null,r(i.view.members,r=>(e(),t(`li`,{key:r.agentId},[n(ce,{"space-id":k.value,"agent-id":r.agentId,name:r.name},null,8,[`space-id`,`agent-id`,`name`])]))),128))])])):c(``,!0)],64)):(e(),t(`p`,Rt,v(m(y)(`agentProfiles.teamUnset`)),1))]))),128)),!K.value&&!G.value.length?(e(),t(`p`,zt,v(m(y)(`agentProfiles.noProject`)),1)):c(``,!0)]),p(`section`,Bt,[p(`h2`,null,v(m(y)(`agentProfiles.collaborators`)),1),p(`ul`,Vt,[(e(!0),t(f,null,r(xe.value,r=>(e(),t(`li`,{key:r.agentId},[n(ce,{"space-id":k.value,"agent-id":r.agentId,name:Ce(r.agentId)},null,8,[`space-id`,`agent-id`,`name`]),p(`span`,null,v(m(y)(`agentProfiles.sharedTasks`,{count:r.count})),1)]))),128))]),!K.value&&!xe.value.length?(e(),t(`p`,Ht,v(m(y)(`agentProfiles.noCollaborators`)),1)):c(``,!0)])],8,At),[[_,Y.value===`collaborators`]]),B.value.memoryScope===`reviewed_agent`?d((e(),t(`section`,{key:6,id:`agent-panel-conversations`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-conversations`,"aria-hidden":Y.value!==`conversations`,tabindex:`0`},[p(`section`,Wt,[(e(),C(de,{key:B.value.agentId,"personal-space-id":k.value,"agent-id":B.value.agentId,projects:we.value},null,8,[`personal-space-id`,`agent-id`,`projects`]))])],8,Ut)),[[_,Y.value===`conversations`]]):c(``,!0),d(p(`section`,{id:`agent-panel-management`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-management`,"aria-hidden":Y.value!==`management`,tabindex:`0`},[p(`section`,Kt,[p(`h2`,null,v(m(y)(`agentProfiles.advanced`)),1),p(`p`,qt,v(m(y)(`agentProfiles.locked`)),1),p(`div`,Jt,[n(m(O),{class:`quiet-button`,"data-open-management":``,to:{path:`/project-agents/manage`,query:{agent:B.value.agentId}}},{default:u(()=>[l(v(m(y)(`agentProfiles.openManagement`)),1)]),_:1},8,[`to`])])])],8,Gt),[[_,Y.value===`management`]])],64)):(e(),t(`p`,Pe,v(m(y)(`agentProfiles.unavailable`)),1))],8,Me))}}),[[`__scopeId`,`data-v-e79efe2b`]]);export{Yt as default};
1
+ import{B as e,C as t,E as n,H as r,J as i,O as a,P as o,R as s,S as c,T as l,X as u,Z as d,_ as f,b as p,dt as m,ft as h,g,m as _,mt as v,o as y,ot as b,p as x,pt as S,x as C,y as w}from"./i18n-DYrQWclR.js";import{n as T,t as E}from"./console-Dl-Zf-vm.js";import{m as D}from"./useApi-CROJJdhE-Di-SEzl3.js";import{t as O}from"./vue-router-CG6ezAck.js";import{o as k,r as A,s as j}from"./client-CRiPFGQo.js";import{t as M}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{r as N}from"./ui-8PDiMeCo.js";import{t as ee}from"./UiSelect-iDXgMBmg.js";import{t as P}from"./avatars-CUyfvsKO.js";import{t as F}from"./agent-identity-color-RqpT7gtx.js";import{a as I,r as te,t as L}from"./profile-model-BQO4zNs9.js";import{a as ne,h as R,l as re,n as ie}from"./task-evidence-i9SDhd3E.js";import{n as ae}from"./useAgentRecords-Bw9B25sk.js";import{n as oe}from"./paths-CDREouhi.js";import{t as se}from"./UiDisclosure-BkmYnV5V.js";import{t as ce}from"./AgentName-CKA8o3DK.js";import{i as le,n as z,t as ue}from"./occupation-catalog-C1dtWRD4.js";import{i as B,n as V,r as H,t as U}from"./agent-occupation-BODbxMc2.js";import{n as de,t as fe}from"./TaskExecutionPlan-DFh08QFN.js";import{a as pe,i as me,n as he}from"./agent-work-summary-9jEiDLve.js";import{a as ge,s as _e}from"./catalog-DoiBFHyb.js";import{t as ve}from"./project-team-api-DLYFf3Df.js";/* empty css */var W=[`title`],ye=M(a({__name:`ActivityOriginBadge`,props:{origin:{}},setup(n){return(r,i)=>n.origin?.kind===`ai_internal`?(e(),t(`span`,{key:0,class:`ui-badge activity-origin-badge`,"data-activity-origin":``,title:m(y)(`agentProfiles.activityOrigin.sources.${n.origin.source}`)},v(m(y)(`agentProfiles.activityOrigin.label`,{purpose:m(y)(`agentProfiles.activityOrigin.purposes.${n.origin.purpose}`)})),9,W)):c(``,!0)}}),[[`__scopeId`,`data-v-8e8c076b`]]),G={key:1,class:`agent-locked-platforms`},K={key:2,class:`agent-platform-field`},q=[`disabled`,`placeholder`],J=[`onUpdate:modelValue`,`disabled`],Y={key:3,role:`alert`},X={key:4,role:`status`},be=a({__name:`AgentProfileSettings`,props:{agent:{}},emits:[`saved`],setup(a,{emit:o}){let s=a,h=o,_=b([]),S=b(!1),E=b(!1),D=b(``),O=b(!1),M=``,N=b(``),P=b(``),F=b({judgment:``,taste:``,personality:``}),I=w(()=>s.agent.profile.executorPolicy?.mode===`locked`),te=w(()=>{let e=s.agent.profile.executorPolicy;return(e?.lockedExecutorIds?.length?e.lockedExecutorIds:(e?.allowList??[]).map(e=>e.executorId)).map(e=>_.value.find(t=>t.executorId===e)?.displayName||e)}),L=w(()=>_.value.filter(e=>e.registrationStatus===`registered`&&e.permissionStatus===`authorized`&&e.preflightStatus===`passed`&&e.workspacePermission&&e.healthStatus!==`unhealthy`&&(!e.healthRequired||e.healthStatus===`healthy`))),ne=w(()=>[{value:``,label:y(`agentProfiles.automatic`)},...N.value&&!L.value.some(e=>e.executorId===N.value)?[{value:N.value,label:y(`agentProfiles.platformUnavailable`),disabled:!0}]:[],...L.value.map(e=>({value:e.executorId,label:e.displayName||e.executorId}))]),R=0;i(()=>`${s.agent.personalSpaceId}/${s.agent.agentId}`,async()=>{let e=s.agent,t=++R;P.value=e.profile.expectations??``,F.value={judgment:``,taste:``,personality:``,...e.profile.character},N.value=e.profile.executorPolicy?.preferredExecutorIds?.[0]??``,M=N.value,D.value=``,O.value=!1,E.value=!1,S.value=!0,_.value=[];try{let n=await A(`/api/executors?${new URLSearchParams({personalSpaceId:e.personalSpaceId})}`);t===R&&(_.value=Array.isArray(n)?n:n.executors)}catch{t===R&&(D.value=y(`agentProfiles.platformUnavailable`))}finally{t===R&&(S.value=!1)}},{immediate:!0});async function re(){if(E.value)return;let e=R,t=s.agent;E.value=!0,D.value=``,O.value=!1;let n=t.profile.executorPolicy;try{let r=await k(`/api/project-agents`,{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId??null,agentId:t.agentId,profile:{...t.profile,character:{...F.value},expectations:P.value,executorPolicy:I.value||N.value===M?n:{...n,mode:`flexible`,preferredExecutorIds:N.value?[N.value]:[]}}});e===R&&(M=N.value,h(`saved`,r),O.value=!0)}catch(t){e===R&&(D.value=t instanceof Error?t.message:y(`agentProfiles.saveError`))}finally{e===R&&(E.value=!1)}}return(i,a)=>(e(),t(`form`,{class:`agent-simple-settings`,onSubmit:g(re,[`prevent`])},[p(`h3`,null,v(m(y)(`agentProfiles.settings`)),1),S.value?(e(),C(j,{key:0,variant:`compact`,label:m(y)(`agentProfiles.settingsLoading`)},null,8,[`label`])):I.value?(e(),t(`div`,G,[p(`h4`,null,v(m(y)(`agentProfiles.platform`)),1),p(`p`,null,v(te.value.join(` · `)||m(y)(`agentProfiles.platformUnavailable`)),1),p(`small`,null,v(m(y)(`agentProfiles.locked`)),1)])):(e(),t(`div`,K,[n(ee,{modelValue:N.value,"onUpdate:modelValue":a[0]||=e=>N.value=e,field:``,label:m(y)(`agentProfiles.platform`),options:ne.value,disabled:I.value||E.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),p(`small`,null,v(m(y)(I.value?`agentProfiles.locked`:`agentProfiles.platformHint`)),1)])),p(`label`,null,[l(v(m(y)(`agentProfiles.expectations`)),1),d(p(`textarea`,{"onUpdate:modelValue":a[1]||=e=>P.value=e,rows:`3`,maxlength:`4096`,disabled:E.value,placeholder:m(y)(`agentProfiles.expectationsPlaceholder`)},null,8,q),[[x,P.value]])]),p(`details`,null,[p(`summary`,null,v(m(y)(`agentProfiles.editCharacter`)),1),(e(),t(f,null,r([`judgment`,`taste`,`personality`],e=>p(`label`,{key:e},[l(v(m(y)(`agentProfiles.${e}`)),1),d(p(`textarea`,{"onUpdate:modelValue":t=>F.value[e]=t,rows:`2`,maxlength:`2048`,disabled:E.value},null,8,J),[[x,F.value[e]]])])),64))]),D.value?(e(),t(`p`,Y,v(D.value),1)):c(``,!0),O.value?(e(),t(`p`,X,v(m(y)(`agentProfiles.saved`)),1)):c(``,!0),n(T,{size:`sm`,variant:`primary`,disabled:E.value||S.value,type:`submit`},{default:u(()=>[E.value?(e(),C(j,{key:0,variant:`inline`,label:m(y)(`agentProfiles.saving`)},null,8,[`label`])):(e(),t(f,{key:1},[l(v(m(y)(`agentProfiles.save`)),1)],64))]),_:1},8,[`disabled`])],32))}}),xe={key:0,class:`agent-occupation-editor`,"data-occupation-locked":``},Se={class:`ui-meta`},Ce={class:`ui-meta`},Z=[`disabled`],we={class:`ui-meta`},Te={key:0,class:`agent-occupation-main`},Ee={key:0,role:`alert`},De={key:1,role:`status`},Oe=M(a({__name:`AgentOccupationEditor`,props:{agent:{}},emits:[`saved`],setup(a,{emit:o}){let s=a,d=o,h=b(``),_=b([]),x=b(!1),S=b(``),E=b(!1);i(()=>s.agent.occupation,e=>{h.value=e?.role??``,_.value=(e?.tags??[]).filter(t=>t!==e?.role)},{immediate:!0}),i(h,e=>{e&&(_.value=_.value.filter(t=>t!==e))});let D=le(w(()=>s.agent.personalSpaceId)),O=w(()=>{let e=D.active.value.map(e=>e.key),t=[s.agent.occupation?.role,...s.agent.occupation?.tags??[]].filter(e=>!!e);return[...new Set([...e.length?e:U,...t])]}),k=e=>{let t=z(e);return t?ue(t):void 0},A=w(()=>[{value:``,label:y(`agentRedesign.occupation.none`)},...O.value.map(e=>({value:e,label:V(e)}))]);function M(e){E.value=!1,_.value=_.value.includes(e)?_.value.filter(t=>t!==e):[..._.value,e]}async function N(){x.value=!0,S.value=``,E.value=!1;try{let e=await B(s.agent.personalSpaceId,s.agent.agentId,{role:h.value||null,tags:_.value});d(`saved`,e),E.value=!0}catch(e){S.value=e instanceof Error?e.message:y(`agentRedesign.occupation.saveError`)}finally{x.value=!1}}return(i,o)=>a.agent.occupationLocked?(e(),t(`section`,xe,[p(`h3`,null,v(m(y)(`agentRedesign.occupation.title`)),1),p(`p`,Se,v(m(y)(`agentRedesign.occupation.locked`,{occupation:m(H)(a.agent.occupation).join(` · `)||m(y)(`agentRedesign.occupation.none`)})),1)])):(e(),t(`form`,{key:1,class:`agent-occupation-editor`,"data-occupation-editor":``,onSubmit:g(N,[`prevent`])},[p(`h3`,null,v(m(y)(`agentRedesign.occupation.title`)),1),p(`p`,Ce,v(m(y)(`agentRedesign.occupation.note`)),1),n(ee,{modelValue:h.value,"onUpdate:modelValue":[o[0]||=e=>h.value=e,o[1]||=e=>E.value=!1],field:``,label:m(y)(`agentRedesign.occupation.role`),options:A.value,disabled:x.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),p(`fieldset`,{class:`agent-occupation-tags`,disabled:x.value},[p(`legend`,null,[l(v(m(y)(`agentRedesign.occupation.tags`))+` `,1),p(`small`,we,v(m(y)(`agentRedesign.occupation.tagsHint`)),1)]),(e(!0),t(f,null,r(O.value,n=>(e(),C(T,{size:`sm`,variant:`ghost`,key:n,"data-occupation-tag":n,"aria-pressed":_.value.includes(n),disabled:n===h.value||!_.value.includes(n)&&_.value.length>=m(5),title:n===h.value?m(y)(`agentRedesign.occupation.isMainRole`):k(n),onClick:e=>M(n)},{default:u(()=>[l(v(m(V)(n)),1),n===h.value?(e(),t(`small`,Te,` · `+v(m(y)(`agentRedesign.occupation.mainRoleShort`)),1)):c(``,!0)]),_:2},1032,[`data-occupation-tag`,`aria-pressed`,`disabled`,`title`,`onClick`]))),128))],8,Z),S.value?(e(),t(`p`,Ee,v(S.value),1)):c(``,!0),E.value?(e(),t(`p`,De,v(m(y)(`agentRedesign.occupation.saved`)),1)):c(``,!0),n(T,{size:`sm`,variant:`primary`,type:`submit`,disabled:x.value},{default:u(()=>[x.value?(e(),C(j,{key:0,variant:`inline`,label:m(y)(`agentRedesign.occupation.saving`)},null,8,[`label`])):(e(),t(f,{key:1},[l(v(m(y)(`agentRedesign.occupation.save`)),1)],64))]),_:1},8,[`disabled`])],32))}}),[[`__scopeId`,`data-v-acfb86ae`]]),Q=[`aria-expanded`,`data-occupation`],ke={class:`occupation-chip-detail`,"data-occupation-detail":``},Ae={key:0},je=M(a({__name:`OccupationChip`,props:{occupationKey:{},main:{type:Boolean}},setup(r){let i=r,a=b(null),o=w(()=>z(i.occupationKey)),s=w(()=>V(i.occupationKey));function d(e){a.value=e.currentTarget.getBoundingClientRect()}return(i,g)=>(e(),t(f,null,[p(`button`,{type:`button`,class:h([`occupation-chip`,{"is-main":r.main}]),"aria-expanded":!!a.value,"data-occupation":r.occupationKey,onClick:d},v(s.value),11,Q),n(m(N),{open:!!a.value,anchor:a.value,label:s.value,onClose:g[1]||=e=>a.value=null},{default:u(()=>[p(`div`,ke,[p(`strong`,null,v(s.value),1),p(`p`,null,v(o.value?m(ue)(o.value):m(y)(`occupations.noDescription`)),1),o.value?(e(),t(`small`,Ae,v(m(y)(`occupations.agentCount`,{count:o.value.agent_count})),1)):c(``,!0),n(m(O),{to:`/project-agents/occupations`,onClick:g[0]||=e=>a.value=null},{default:u(()=>[l(v(m(y)(`occupations.manage`)),1)]),_:1})])]),_:1},8,[`open`,`anchor`,`label`])],64))}}),[[`__scopeId`,`data-v-6314de26`]]),Me=[`aria-label`],Ne={key:1,class:`ui-card ui-empty agent-profile-empty`,role:`alert`},Pe={key:2,class:`ui-card ui-empty agent-profile-empty`},Fe={class:`ui-card agent-resume-header`},Ie=[`src`],Le={class:`agent-resume-intro`},Re={class:`agent-resume-name-row`},ze={key:0,class:`ui-badge fla-employee-number`},Be={class:`agent-resume-occupation`,"data-profile-occupation":``},Ve={key:1,class:`ui-meta`},He={class:`agent-resume-meta`},Ue={class:`agent-profile-actions`},We={key:1,class:`agent-profile-refresh-status`,role:`status`},Ge=[`aria-label`],Ke=[`id`,`aria-selected`,`aria-controls`,`tabindex`,`onClick`,`onKeydown`],qe={key:5,class:`agent-profile-partial`,role:`status`},Je=[`aria-hidden`],Ye={class:`agent-profile-primary-grid`},Xe={class:`ui-card agent-resume-section agent-current-work-section`},Ze={class:`agent-section-heading`},Qe={key:0},$e={key:0,class:`agent-current-work-list`},et={class:`ui-badge`},tt={key:1,class:`agent-muted`},nt={key:2,class:`agent-muted`},rt={class:`ui-card agent-resume-section agent-projects-section`},it={class:`agent-section-heading`},at={class:`agent-resume-list agent-current-project-list`},ot={key:0,class:`agent-project-responsibility`},st={class:`agent-resume-list`},ct={key:0,class:`agent-project-responsibility`},lt={key:1,class:`agent-muted`},ut=[`aria-hidden`],dt={class:`ui-card agent-resume-section`},ft={key:0,class:`ui-disclosure`,open:``},pt={class:`agent-resume-list`},mt={key:1,class:`agent-muted`},ht={class:`ui-card agent-resume-section`},gt={class:`agent-muted`},_t={class:`agent-work-timeline`},vt={class:`agent-section-heading`},yt={key:0},bt={key:0},xt={key:0},St={key:0,class:`agent-muted`},Ct=[`aria-hidden`],wt={class:`ui-card agent-resume-section`},Tt={class:`agent-character`},Et={key:0,class:`agent-expectation`},Dt={class:`agent-strengths`},Ot={class:`agent-inline-skills`},kt={key:0},At=[`aria-hidden`],jt={class:`ui-card agent-resume-section`},Mt={class:`agent-section-heading`},Nt={key:0,role:`status`},Pt={key:0,class:`agent-org-lead-unavailable`,role:`status`},Ft={key:1,class:`agent-org-lead`},It={key:2,class:`agent-org-reporting`},Lt={key:3,class:`agent-org-members`},Rt={key:2,class:`agent-muted`},zt={key:0,class:`agent-muted`},Bt={class:`ui-card agent-resume-section`},Vt={class:`agent-collaborators`},Ht={key:0,class:`agent-muted`},Ut=[`aria-hidden`],Wt={class:`ui-card agent-resume-section`},Gt=[`aria-hidden`],Kt={class:`ui-card agent-resume-section agent-management-card`},qt={class:`agent-muted`},Jt={class:`agent-profile-management-links`},Yt=M(a({__name:`AgentProfilePage`,setup(a){let g=D(),x=E(),k=w(()=>x.activePersonalSpace?.id??``),M=w(()=>g.params.spaceId===k.value?String(g.params.agentId??``):``),N=ae(k,w(()=>M.value?[M.value]:[])),{loading:ee,error:z}=N,ue=()=>N.load({force:!0}),B=w(()=>M.value?N.records.value[M.value]:void 0),V=w(()=>(x.state?.personalProjects??[]).filter(e=>e.personal_space_id===k.value)),H=e=>V.value.find(t=>t.project_id===e)?.profile.name||e,U=b([]),W=b(void 0),G=b([]),K=b(!1),q=b(!1),J=b(!1),Y=b(`overview`),X=w(()=>{let e=[{id:`overview`,label:y(`agentProfiles.working`)},{id:`history`,label:y(`agentProfiles.experience`)},{id:`style`,label:y(`agentProfiles.about`)},{id:`collaborators`,label:y(`agentProfiles.collaborators`)},{id:`management`,label:y(`agentProfiles.advanced`)}];return B.value?.memoryScope===`reviewed_agent`&&e.splice(4,0,{id:`conversations`,label:y(`projectAgents.conversations.title`)}),e}),xe=w(()=>B.value?te(B.value.agentId,U.value):[]),Se=ae(k,w(()=>xe.value.map(e=>e.agentId))),Ce=e=>{let t=Se.records.value[e];return t?L(t):e},Z=w(()=>B.value?I({...B.value,assignments:W.value??B.value.assignments}):[]),we=w(()=>V.value.filter(e=>Z.value.includes(e.project_id)).map(e=>({id:e.project_id,name:e.profile.name}))),Te=w(()=>Z.value.slice(0,4)),Ee=w(()=>Z.value.slice(4)),De=w(()=>(W.value??[]).filter(e=>e.status!==`active`)),Q=w(()=>U.value.filter(e=>pe.has(e.status)).slice(0,6)),ke=w(()=>{let e=B.value?.occupation;return e?[...new Set([...e.role?[e.role]:[],...e.tags])]:[]});le(w(()=>B.value?.personalSpaceId??``));let Ae=w(()=>ge.value.find(e=>e.agentId===B.value?.agentId)),Yt=w(()=>Ae.value?.id===`bole`),$=e=>e&&!Number.isNaN(Date.parse(e))?new Date(e).toLocaleDateString():y(`agentProfiles.timeUnknown`),Xt=e=>{let t=W.value?.find(t=>t.personalProjectId===e&&t.status===`active`)?.responsibility?.trim(),n=B.value?.profile.responsibility.trim();return t&&t!==n?t:``},Zt=w(()=>{let e=`agentRedesign.projects.more`,t=y(e,{count:Z.value.length});return t===e?`All projects (${Z.value.length})`:t}),Qt=0;i(()=>B.value?`${B.value.personalSpaceId}/${B.value.agentId}`:``,async()=>{let e=B.value,t=++Qt;if(U.value=[],W.value=void 0,G.value=[],q.value=!1,K.value=!1,J.value=!1,Y.value=`overview`,!e)return;_e(e.personalSpaceId),K.value=!0,W.value=e.assignments;let n=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),r=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),i=await Promise.allSettled([A(`/api/project-agent-tasks?${n}&limit=200`),A(`/api/project-agent-assignments?${r}`)]);if(t!==Qt)return;let[a,o]=i;if(a.status===`fulfilled`){let t=a.value,n=R(t);q.value=!he(t),U.value=ie(Array.isArray(t)?t:n.tasks??n.items).map(re).filter(t=>!!(t&&(!t.personalSpaceId||t.personalSpaceId===e.personalSpaceId)&&me(t,e.agentId))).sort((e,t)=>(t.updatedAt??t.createdAt??``).localeCompare(e.updatedAt??e.createdAt??``))}else q.value=!0;if(o.status===`fulfilled`){let t=o.value,n=R(t);W.value=ie(Array.isArray(t)?t:n.assignments??n.items).map(t=>ne(t,e)).filter(t=>!!(t&&t.agentId===e.agentId&&t.personalSpaceId===e.personalSpaceId))}else q.value=!0;let s=I({...e,assignments:W.value??e.assignments}),c=await Promise.all(s.map(async t=>{try{return{projectId:t,view:await ve(e.personalSpaceId,t),error:!1}}catch{return{projectId:t,view:null,error:!0}}}));t===Qt&&(G.value=c,K.value=!1)},{immediate:!0});function $t(e){B.value&&N.put(M.value,{...B.value,...e})}function en(e){Y.value=e}function tn(e,t){let n=e.key;if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(n))return;let r=e.currentTarget;e.preventDefault();let i=X.value.length,a=n===`Home`?0:n===`End`?i-1:(t+(n===`ArrowRight`?1:-1)+i)%i,s=X.value[a];s&&(en(s.id),o(()=>{let e=(r?.closest(`[role="tablist"]`))?.querySelectorAll(`[role="tab"]`)[a];e?.focus(),e?.scrollIntoView?.({block:`nearest`,inline:`nearest`})}))}return s(()=>{x.runtimeStatus===`idle`&&x.refresh()}),(i,a)=>(e(),t(`section`,{class:`view agent-profile-page`,"aria-label":m(y)(`agentProfiles.profile`)},[n(m(O),{class:`agent-profile-back`,to:`/project-agents`},{default:u(()=>[l(` ← `+v(m(y)(`agentProfiles.back`)),1)]),_:1}),(m(ee)||m(x).runtimeStatus===`loading`)&&!B.value?(e(),C(j,{key:0,label:m(y)(`agentProfiles.loading`)},null,8,[`label`])):(m(z)||m(x).runtimeStatus===`error`)&&!B.value?(e(),t(`div`,Ne,[p(`p`,null,v(m(z)||m(y)(`agentProfiles.loadError`)),1),n(T,{size:`sm`,variant:`ghost`,onClick:a[0]||=e=>m(x).state?ue():m(x).refresh()},{default:u(()=>[l(v(m(y)(`agentProfiles.retry`)),1)]),_:1})])):B.value?(e(),t(f,{key:3},[p(`header`,Fe,[p(`span`,{class:`agent-portrait agent-identity`,style:S(m(F)(B.value.agentId)),"aria-hidden":`true`},[m(P)(B.value.agentId)?(e(),t(`img`,{key:0,src:m(P)(B.value.agentId),alt:``},null,8,Ie)):(e(),t(f,{key:1},[l(v(B.value.profile.occupationEmoji||m(L)(B.value).slice(0,1)),1)],64))],4),p(`div`,Le,[p(`div`,Re,[p(`h1`,null,v(m(L)(B.value)),1),B.value.employeeNumber?(e(),t(`span`,ze,`FLA `+v(B.value.employeeNumber),1)):c(``,!0),p(`span`,{class:h([`ui-badge agent-profile-membership`,`is-${B.value.profile.status}`])},v(m(y)(`projectAgents.status.${B.value.profile.status}`)),3)]),p(`p`,Be,[ke.value.length?(e(!0),t(f,{key:0},r(ke.value,(t,n)=>(e(),C(je,{key:t,"occupation-key":t,main:n===0&&!!B.value.occupation?.role},null,8,[`occupation-key`,`main`]))),128)):(e(),t(`span`,Ve,v(m(y)(`agentRedesign.occupation.notSet`)),1))]),p(`p`,null,v(B.value.profile.responsibility),1),p(`div`,He,[p(`span`,null,v(m(y)(B.value.recruitedAt?`agentProfiles.joined`:`agentProfiles.created`))+` · `+v($(B.value.recruitedAt||B.value.createdAt)),1)])]),p(`div`,Ue,[Ae.value?(e(),C(m(O),{key:0,class:`quiet-button`,to:`/employees/${encodeURIComponent(Ae.value.id)}`},{default:u(()=>[l(v(m(y)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):c(``,!0),n(T,{size:`sm`,variant:`ghost`,"aria-expanded":J.value,onClick:a[1]||=e=>J.value=!J.value},{default:u(()=>[l(v(m(y)(`agentProfiles.settings`)),1)]),_:1},8,[`aria-expanded`]),Yt.value?c(``,!0):(e(),C(m(O),{key:1,class:`quiet-button`,to:{path:`/employees/bole`,query:{q:m(L)(B.value)}}},{default:u(()=>[l(v(m(y)(`agentProfiles.askHR`)),1)]),_:1},8,[`to`]))])]),m(ee)||m(x).runtimeStatus===`loading`?(e(),C(j,{key:0,variant:`compact`,label:m(y)(`agentProfiles.loading`)},null,8,[`label`])):c(``,!0),m(z)?(e(),t(`p`,We,v(m(z)),1)):c(``,!0),J.value?(e(),C(be,{key:B.value.agentId,agent:B.value,onSaved:$t},null,8,[`agent`])):c(``,!0),J.value&&B.value.profile.status!==`archived`?(e(),C(Oe,{key:`occupation-${B.value.agentId}`,agent:B.value,onSaved:$t},null,8,[`agent`])):c(``,!0),K.value?(e(),C(j,{key:4,variant:`compact`,label:m(y)(`agentProfiles.detailLoading`)},null,8,[`label`])):c(``,!0),p(`nav`,{class:`agent-profile-tabs`,role:`tablist`,"aria-label":m(y)(`agentProfiles.profile`)},[(e(!0),t(f,null,r(X.value,n=>(e(),t(`button`,{id:`agent-tab-${n.id}`,key:n.id,class:`agent-profile-tab`,type:`button`,role:`tab`,"aria-selected":Y.value===n.id,"aria-controls":`agent-panel-${n.id}`,tabindex:Y.value===n.id?0:-1,onClick:e=>en(n.id),onKeydown:e=>tn(e,X.value.findIndex(e=>e.id===n.id))},v(n.label),41,Ke))),128))],8,Ge),q.value?(e(),t(`p`,qe,v(m(y)(`agentProfiles.partial`)),1)):c(``,!0),d(p(`section`,{id:`agent-panel-overview`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-overview`,"aria-hidden":Y.value!==`overview`,tabindex:`0`},[p(`div`,Ye,[p(`section`,Xe,[p(`div`,Ze,[p(`h2`,null,v(m(y)(`agentProfiles.working`)),1),Q.value.length?(e(),t(`span`,Qe,v(Q.value.length),1)):c(``,!0)]),Q.value.length?(e(),t(`ul`,$e,[(e(!0),t(f,null,r(Q.value,r=>(e(),t(`li`,{key:r.taskId},[n(m(O),{to:{path:`/project-agents/manage`,query:{agent:B.value.agentId,task:r.taskId}}},{default:u(()=>[l(v(r.title),1)]),_:2},1032,[`to`]),p(`span`,et,v(m(y)(`projectAgents.taskStatus.${r.status}`)),1),n(ye,{origin:r.activityOrigin},null,8,[`origin`]),n(fe,{task:r,"personal-space-id":k.value,active:Y.value===`overview`},null,8,[`task`,`personal-space-id`,`active`])]))),128))])):!K.value&&!q.value?(e(),t(`p`,tt,v(m(y)(`agentProfiles.idle`)),1)):K.value?c(``,!0):(e(),t(`p`,nt,v(m(y)(`agentProfiles.partial`)),1))]),p(`section`,rt,[p(`div`,it,[p(`h2`,null,v(m(y)(`agentProfiles.projects`)),1),p(`span`,null,v(Z.value.length),1)]),p(`ul`,at,[(e(!0),t(f,null,r(Te.value,r=>(e(),t(`li`,{key:r,class:`agent-project-item`},[p(`h3`,null,[n(m(O),{class:`agent-project-link`,to:m(oe)(k.value,`overview`,r)},{default:u(()=>[l(v(H(r)),1)]),_:2},1032,[`to`])]),Xt(r)?(e(),t(`p`,ot,v(Xt(r)),1)):c(``,!0)]))),128))]),Ee.value.length?(e(),C(se,{key:0,class:`agent-project-overflow`,title:Zt.value},{default:u(()=>[p(`ul`,st,[(e(!0),t(f,null,r(Ee.value,r=>(e(),t(`li`,{key:r,class:`agent-project-item`},[p(`h3`,null,[n(m(O),{class:`agent-project-link`,to:m(oe)(k.value,`overview`,r)},{default:u(()=>[l(v(H(r)),1)]),_:2},1032,[`to`])]),Xt(r)?(e(),t(`p`,ct,v(Xt(r)),1)):c(``,!0)]))),128))])]),_:1},8,[`title`])):c(``,!0),!K.value&&!Z.value.length?(e(),t(`p`,lt,v(m(y)(`agentProfiles.noProject`)),1)):c(``,!0)])])],8,Je),[[_,Y.value===`overview`]]),d(p(`section`,{id:`agent-panel-history`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-history`,"aria-hidden":Y.value!==`history`,tabindex:`0`},[p(`section`,dt,[p(`h2`,null,v(m(y)(`agentProfiles.projects`)),1),De.value.length?(e(),t(`details`,ft,[p(`summary`,null,v(m(y)(`agentProfiles.projectHistory`)),1),p(`ul`,pt,[(e(!0),t(f,null,r(De.value,r=>(e(),t(`li`,{key:r.assignmentId},[p(`h3`,null,[n(m(O),{class:`agent-project-link`,to:m(oe)(k.value,`overview`,r.personalProjectId)},{default:u(()=>[l(v(H(r.personalProjectId)),1)]),_:2},1032,[`to`])]),p(`p`,null,v(r.responsibility),1),p(`small`,null,v($(r.assignedAt))+` – `+v($(r.endedAt)),1)]))),128))])])):K.value?c(``,!0):(e(),t(`p`,mt,v(m(y)(`agentProfiles.noProject`)),1))]),p(`section`,ht,[p(`h2`,null,v(m(y)(`agentProfiles.experience`)),1),p(`p`,gt,v(m(y)(`agentProfiles.recent`)),1),p(`ol`,_t,[(e(!0),t(f,null,r(U.value.slice(0,12),r=>(e(),t(`li`,{key:r.taskId},[p(`div`,vt,[n(m(O),{to:{path:`/project-agents/manage`,query:{agent:B.value.agentId,task:r.taskId}}},{default:u(()=>[l(v(r.title),1)]),_:2},1032,[`to`]),p(`span`,null,v(m(y)(`projectAgents.taskStatus.${r.status}`)),1),n(ye,{origin:r.activityOrigin},null,8,[`origin`])]),r.resultSummary?(e(),t(`p`,yt,v(r.resultSummary),1)):c(``,!0),p(`small`,null,v($(r.completedAt||r.updatedAt||r.createdAt)),1)]))),128)),B.value.recruitedAt||B.value.recruitmentReason?(e(),t(`li`,bt,[p(`h3`,null,v(m(y)(`agentProfiles.recruitment`)),1),B.value.recruitmentReason?(e(),t(`p`,xt,v(B.value.recruitmentReason),1)):c(``,!0),p(`small`,null,v($(B.value.recruitedAt)),1)])):c(``,!0)]),!K.value&&!U.value.length&&!B.value.recruitmentReason&&!B.value.recruitedAt?(e(),t(`p`,St,v(m(y)(`agentProfiles.noExperience`)),1)):c(``,!0)])],8,ut),[[_,Y.value===`history`]]),d(p(`section`,{id:`agent-panel-style`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-style`,"aria-hidden":Y.value!==`style`,tabindex:`0`},[p(`section`,wt,[p(`h2`,null,v(m(y)(`agentProfiles.about`)),1),p(`div`,Tt,[(e(),t(f,null,r([`judgment`,`taste`,`personality`],e=>p(`div`,{key:e},[p(`h3`,null,v(m(y)(`agentProfiles.${e}`)),1),p(`p`,{class:h({"agent-muted":!B.value.profile.character?.[e]})},v(B.value.profile.character?.[e]||m(y)(`agentProfiles.characterEmpty`)),3)])),64))]),B.value.profile.expectations?(e(),t(`p`,Et,[p(`strong`,null,v(m(y)(`agentProfiles.expectations`)),1),l(` `+v(B.value.profile.expectations),1)])):c(``,!0),p(`div`,Dt,[p(`h3`,null,v(m(y)(`agentProfiles.strengths`)),1),p(`div`,Ot,[(e(!0),t(f,null,r(B.value.profile.capabilities,n=>(e(),t(`span`,{key:n},v(n),1))),128)),B.value.profile.capabilities.length?c(``,!0):(e(),t(`span`,kt,v(m(y)(`agentProfiles.noSkills`)),1))])])])],8,Ct),[[_,Y.value===`style`]]),d(p(`section`,{id:`agent-panel-collaborators`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-collaborators`,"aria-hidden":Y.value!==`collaborators`,tabindex:`0`},[p(`section`,jt,[p(`div`,Mt,[p(`h2`,null,v(m(y)(`agentProfiles.organization`)),1),Yt.value?c(``,!0):(e(),C(m(O),{key:0,to:{path:`/employees/bole`,query:{q:m(L)(B.value)}}},{default:u(()=>[l(v(m(y)(`agentProfiles.hr`)),1)]),_:1},8,[`to`]))]),(e(!0),t(f,null,r(G.value,i=>(e(),t(`div`,{key:i.projectId,class:`agent-organization`},[p(`h3`,null,v(H(i.projectId)),1),i.error?(e(),t(`p`,Nt,v(m(y)(`agentProfiles.teamUnavailable`)),1)):i.view&&(i.view.lead||i.view.unavailableLead||i.view.members.length)?(e(),t(f,{key:1},[i.view.unavailableLead?(e(),t(`p`,Pt,v(i.view.unavailableLead.name?m(y)(`agentProfiles.leadUnavailable`,{name:i.view.unavailableLead.name}):m(y)(`agentProfiles.leadUnavailableUnnamed`)),1)):c(``,!0),i.view.lead?(e(),t(`div`,Ft,[p(`span`,null,v(m(y)(`agentProfiles.lead`)),1),n(ce,{"space-id":k.value,"agent-id":i.view.lead.agentId,name:i.view.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):c(``,!0),i.view.lead?(e(),t(`p`,It,v(m(y)(`agentProfiles.reporting`)),1)):c(``,!0),i.view.members.length?(e(),t(`div`,Lt,[p(`span`,null,v(m(y)(`agentProfiles.teammates`)),1),p(`ul`,null,[(e(!0),t(f,null,r(i.view.members,r=>(e(),t(`li`,{key:r.agentId},[n(ce,{"space-id":k.value,"agent-id":r.agentId,name:r.name},null,8,[`space-id`,`agent-id`,`name`])]))),128))])])):c(``,!0)],64)):(e(),t(`p`,Rt,v(m(y)(`agentProfiles.teamUnset`)),1))]))),128)),!K.value&&!G.value.length?(e(),t(`p`,zt,v(m(y)(`agentProfiles.noProject`)),1)):c(``,!0)]),p(`section`,Bt,[p(`h2`,null,v(m(y)(`agentProfiles.collaborators`)),1),p(`ul`,Vt,[(e(!0),t(f,null,r(xe.value,r=>(e(),t(`li`,{key:r.agentId},[n(ce,{"space-id":k.value,"agent-id":r.agentId,name:Ce(r.agentId)},null,8,[`space-id`,`agent-id`,`name`]),p(`span`,null,v(m(y)(`agentProfiles.sharedTasks`,{count:r.count})),1)]))),128))]),!K.value&&!xe.value.length?(e(),t(`p`,Ht,v(m(y)(`agentProfiles.noCollaborators`)),1)):c(``,!0)])],8,At),[[_,Y.value===`collaborators`]]),B.value.memoryScope===`reviewed_agent`?d((e(),t(`section`,{key:6,id:`agent-panel-conversations`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-conversations`,"aria-hidden":Y.value!==`conversations`,tabindex:`0`},[p(`section`,Wt,[(e(),C(de,{key:B.value.agentId,"personal-space-id":k.value,"agent-id":B.value.agentId,projects:we.value},null,8,[`personal-space-id`,`agent-id`,`projects`]))])],8,Ut)),[[_,Y.value===`conversations`]]):c(``,!0),d(p(`section`,{id:`agent-panel-management`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-management`,"aria-hidden":Y.value!==`management`,tabindex:`0`},[p(`section`,Kt,[p(`h2`,null,v(m(y)(`agentProfiles.advanced`)),1),p(`p`,qt,v(m(y)(`agentProfiles.locked`)),1),p(`div`,Jt,[n(m(O),{class:`quiet-button`,"data-open-management":``,to:{path:`/project-agents/manage`,query:{agent:B.value.agentId}}},{default:u(()=>[l(v(m(y)(`agentProfiles.openManagement`)),1)]),_:1},8,[`to`])])])],8,Gt),[[_,Y.value===`management`]])],64)):(e(),t(`p`,Pe,v(m(y)(`agentProfiles.unavailable`)),1))],8,Me))}}),[[`__scopeId`,`data-v-e79efe2b`]]);export{Yt as default};
@@ -1 +1 @@
1
- import{B as e,C as t,E as n,H as r,I as i,J as a,M as o,N as s,O as c,P as l,R as u,S as d,T as f,U as p,X as m,Z as h,_ as g,b as _,dt as v,ft as y,g as b,h as x,m as S,mt as C,n as ee,o as w,ot as T,p as E,pt as te,q as ne,x as D,y as O}from"./i18n-DAeCdA8L.js";import{n as k,t as re}from"./console-2nhA6IaV.js";import{h as ie,m as ae}from"./useApi-CROJJdhE-BJn8l1Cb.js";import{a as A,t as j}from"./vue-router-YsTpOqqM.js";import{r as M,s as N}from"./client-DBYe0KzE.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{i as oe,n as se}from"./agent-pins-DrG1uUDt.js";import{t as ce}from"./UiIconButton-w6pfBSda.js";import{t as le}from"./UiSegmented-wN76K7F9.js";import{t as F}from"./UiSelect-BaVTdhtR.js";import{t as I}from"./avatars-CUyfvsKO.js";import{t as ue}from"./agent-identity-color-RqpT7gtx.js";import{a as de,i as fe,n as pe,t as L}from"./profile-model-BQO4zNs9.js";import{h as me}from"./task-evidence-i9SDhd3E.js";import{t as he}from"./useAgentRecords-DotFATN2.js";import{n as R}from"./paths-CDREouhi.js";import{t as z}from"./AgentName-DeHNVQ-r.js";import{r as B}from"./agent-occupation-Bke7eg11.js";import{i as ge,n as _e}from"./project-origin-KvE_J110.js";import{n as V,r as H,s as U,t as W}from"./agent-work-summary-C53Zfzk5.js";import{a as ve,s as G}from"./catalog-CmHt1ONG.js";import{t as K}from"./project-team-api-CXPeakuM.js";/* empty css */import{t as ye}from"./UnassignedConversationsPanel-0y0YliA_.js";import{n as be,t as xe}from"./EmployeeRecruitDialog-CbakSlIK.js";import{t as Se}from"./ProjectAgentFirstTask-BVNcBsw9.js";function Ce(e,t=Date.now()){return`-${Math.floor(t%e)}ms`}var we=[`aria-label`,`title`],Te=P(c({__name:`BackToTop`,props:{scroller:{},threshold:{default:600}},setup(n){let r=n,o=T(!1);function s(){o.value=(r.scroller?.scrollTop??0)>r.threshold}a(()=>r.scroller,(e,t)=>{t?.removeEventListener(`scroll`,s),e?.addEventListener(`scroll`,s,{passive:!0}),s()},{immediate:!0}),i(()=>r.scroller?.removeEventListener(`scroll`,s));function c(){r.scroller&&(r.scroller.scrollTop=0),s()}return(n,r)=>o.value?(e(),t(`button`,{key:0,type:`button`,class:`back-to-top`,"data-back-to-top":``,"aria-label":v(w)(`ui.backToTop`),title:v(w)(`ui.backToTop`),onClick:c},[...r[0]||=[_(`svg`,{viewBox:`0 0 24 24`,width:`18`,height:`18`,"aria-hidden":`true`},[_(`path`,{d:`M6 15l6-6 6 6`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,we)):d(``,!0)}}),[[`__scopeId`,`data-v-dceeb77d`]]);function Ee(e,t,n=600){let r=T(!1),o=null;function s(){o?.disconnect(),o=null}return a([e,t],([e,t])=>{s(),r.value=!1,!(!e||typeof IntersectionObserver>`u`)&&(o=new IntersectionObserver(e=>{r.value=e.some(e=>e.isIntersecting)},{root:t,rootMargin:`0px 0px ${n}px 0px`}),o.observe(e))},{immediate:!0,flush:`post`}),i(s),r}var q=new Map;function De(e,t,n){let r=!1;A(()=>{e.value&&q.set(t,e.value.scrollTop)}),a(n,async n=>{if(!n||r)return;r=!0;let i=q.get(t);q.delete(t),i!==void 0&&(await l(),e.value&&(e.value.scrollTop=i))},{immediate:!0})}var Oe=[`all`,`active`,`inactive`,`archived`],ke=[`agents`,`projects`],J=[`q`,`project`,`status`,`view`];function Y(e){return(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`&&e!==``)}function Ae(e,t,n){return e.includes(t??``)?t:n}function je(e){return{search:Y(e.q)[0]??``,projects:[...new Set(Y(e.project))],status:Ae(Oe,Y(e.status)[0],`all`),view:Ae(ke,Y(e.view)[0],`agents`)}}function Me(e,t){let n=Object.fromEntries(Object.entries(e).filter(([e])=>!J.includes(e))),r=t.search.trim();return r&&(n.q=r),t.projects.length&&(n.project=[...t.projects]),t.status!==`all`&&(n.status=t.status),t.view!==`agents`&&(n.view=t.view),n}function Ne(e,t){return e.search.trim()===t.search.trim()&&e.status===t.status&&e.view===t.view&&e.projects.length===t.projects.length&&e.projects.every((e,n)=>e===t.projects[n])}var Pe=new Set([`loading`,`unreported`,`unavailable`]);function Fe(e,t,n,r,i=[],a=!1){let o=new Set(r.filter(e=>!i.length||i.includes(e))),s=new Map,c=e=>{let t=s.get(e);return t||(t={projectId:e,agentIds:[],runningCount:0,unknownCount:0},s.set(e,t)),t};if(typeof a==`boolean`?a:a?.includeEmpty)for(let e of r)o.has(e)&&c(e);for(let r of e){let e=t(r).filter(e=>o.has(e)),i=n(r);for(let t of e){let e=c(t);e.agentIds.push(r),i===`running`&&(e.runningCount+=1),(!i||Pe.has(i))&&(e.unknownCount+=1)}}let l=new Map(r.map((e,t)=>[e,t]));return[...s.values()].sort((e,t)=>(l.get(e.projectId)??2**53-1)-(l.get(t.projectId)??2**53-1)||e.projectId.localeCompare(t.projectId))}var Ie=[`data-directory-project`],Le=[`aria-expanded`,`aria-controls`],Re={class:`directory-project-heading`},X={class:`directory-project-name`},ze={key:0,class:`ui-meta directory-project-purpose`,"data-project-purpose":``},Be={class:`ui-meta directory-project-summary`},Ve={class:`directory-project-header-lead`,"data-project-header-lead":``},He={key:0,class:`directory-project-occupations`,"data-project-member-occupations":``},Ue={class:`ui-meta directory-project-counts`},Z=[`id`],We={key:0,class:`directory-project-lead`,"data-project-lead":``},Ge={key:1,role:`alert`},Ke={key:2},qe={class:`ui-meta`},Je={key:3,class:`ui-meta`},Ye=c({__name:`DirectoryProjectGroup`,props:o({spaceId:{},projectId:{},name:{},purpose:{},agents:{},count:{},runningCount:{},unknownCount:{}},{expanded:{type:Boolean,default:!1},expandedModifiers:{}}),emits:[`update:expanded`],setup(r){let i=r,o=ne(r,`expanded`),s=T(null),c=T(!1),l=T(!1),u=0,h=O(()=>`directory-project-${i.projectId??`unassigned`}`),y=O(()=>i.projectId&&i.spaceId?R(i.spaceId,`overview`,i.projectId):null),b=O(()=>{if(s.value?.lead?.name)return s.value.lead.name;let e=(i.agents??[]).find(e=>e.occupation?.role===`lead`||e.profile.agentType===`coordinator`);return e?e.profile.displayName||e.profile.name:null}),x=O(()=>{let e=new Set,t=[];for(let n of i.agents??[]){let r=B(n.occupation)[0];if(!r)continue;let i=n.profile.occupationEmoji?.trim(),a=i?`${i} ${r}`:r;e.has(a)||(e.add(a),t.push(a))}return t});async function S(){if(!i.projectId||!i.spaceId)return;let e=++u;c.value=!0,l.value=!1;try{let t=await K(i.spaceId,i.projectId);e===u&&(s.value=t)}catch{e===u&&(l.value=!0)}finally{e===u&&(c.value=!1)}}return a(()=>[i.spaceId,i.projectId],()=>{u+=1,s.value=null,c.value=!1,l.value=!1,o.value&&S()}),a(o,e=>{e&&!s.value&&!c.value&&S()},{immediate:!0}),(i,a)=>(e(),t(`section`,{class:`directory-project`,"data-directory-project":r.projectId??``},[_(`button`,{type:`button`,class:`directory-project-toggle`,"aria-expanded":o.value,"aria-controls":h.value,onClick:a[0]||=e=>o.value=!o.value},[_(`span`,Re,[_(`span`,X,C(r.name),1),r.purpose?(e(),t(`span`,ze,C(r.purpose),1)):d(``,!0)]),_(`span`,Be,[_(`span`,Ve,C(b.value?v(w)(`agentRedesign.projectView.lead`,{name:b.value}):v(w)(`agentRedesign.projectView.leadUnset`)),1),x.value.length?(e(),t(`span`,He,` · `+C(x.value.join(` · `)),1)):d(``,!0)]),_(`span`,Ue,[f(C(v(w)(`agentRedesign.projectView.members`,{count:r.count}))+` `,1),r.runningCount?(e(),t(g,{key:0},[f(` · `+C(v(w)(`agentRedesign.projectView.running`,{count:r.runningCount})),1)],64)):d(``,!0),r.unknownCount?(e(),t(g,{key:1},[f(` · `+C(v(w)(`agentRedesign.projectView.unknown`,{count:r.unknownCount})),1)],64)):d(``,!0)]),a[1]||=_(`svg`,{class:`directory-project-chevron`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[_(`path`,{d:`m6 9 6 6 6-6`})],-1)],8,Le),o.value?(e(),t(`div`,{key:0,id:h.value,class:`directory-project-body`},[r.projectId?(e(),t(`div`,We,[c.value?(e(),D(N,{key:0,variant:`inline`,label:v(w)(`agentRedesign.projectView.loadingLead`)},null,8,[`label`])):l.value?(e(),t(`p`,Ge,[f(C(v(w)(`agentRedesign.projectView.leadFailed`))+` `,1),n(k,{size:`sm`,variant:`ghost`,onClick:S},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1})])):s.value?.lead?(e(),t(`p`,Ke,[_(`span`,qe,C(v(w)(`projects.overview.lead`)),1),n(z,{"space-id":r.spaceId,"agent-id":s.value.lead.agentId,name:s.value.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):s.value?(e(),t(`p`,Je,C(s.value.status===`lead_unavailable`?v(w)(`projects.overview.leadUnavailableUnnamed`):v(w)(`projects.overview.noLead`)),1)):d(``,!0),y.value?(e(),D(v(j),{key:4,class:`quiet-button`,to:y.value},{default:m(()=>[f(C(v(w)(`agentRedesign.projectView.openProject`)),1)]),_:1},8,[`to`])):d(``,!0)])):d(``,!0),p(i.$slots,`default`)],8,Z)):d(``,!0)],8,Ie))}}),Xe={viewBox:`0 0 1024 1024`,width:`18`,height:`18`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`},Ze=[`d`],Q=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z`,$=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z`,Qe=c({__name:`PinIcon`,props:{filled:{type:Boolean,default:!1}},setup(n){return(r,i)=>(e(),t(`svg`,Xe,[_(`path`,{d:n.filled?$:Q},null,8,Ze)]))}}),$e=T(Date.now()),et=0,tt;function nt(e=6e4){return et+=1,tt||=($e.value=Date.now(),setInterval(()=>{$e.value=Date.now()},e)),i(()=>{--et,!et&&tt&&(clearInterval(tt),tt=void 0)}),$e}var rt=6e4,it=60*rt,at=24*it;function ot(e,t,n=Date.now()){let r=e?Date.parse(e):NaN;if(Number.isNaN(r)||r>n)return null;let i=n-r,[a,o]=i<it?[`minute`,rt]:i<2*at?[`hour`,it]:[`day`,at];return new Intl.NumberFormat(t,{style:`unit`,unit:a,unitDisplay:`long`}).format(Math.max(1,Math.floor(i/o)))}var st=[[`second`,60],[`minute`,60],[`hour`,24],[`day`,30],[`month`,12],[`year`,1/0]];function ct(e,t,n=Date.now()){let r=e?Date.parse(e):NaN;if(Number.isNaN(r))return null;let i=Math.round((r-n)/1e3),a=new Intl.RelativeTimeFormat(t,{numeric:`auto`});for(let[e,t]of st){if(Math.abs(i)<t)return a.format(i,e);i=Math.round(i/t)}return null}function lt(e){if(!e)return null;let t=e.reason;switch(e.status){case`blocked`:return t?w(`agentRedesign.statusDetail.blocked`,{reason:t}):w(`agentRedesign.statusDetail.blockedUnrecorded`);case`awaiting_review`:return t?w(`agentRedesign.statusDetail.review`,{reason:t}):w(`agentRedesign.statusDetail.reviewUnrecorded`);case`paused`:return t?w(`agentRedesign.statusDetail.paused`,{reason:t}):w(`agentRedesign.statusDetail.pausedUnrecorded`);case`queued`:return w(`agentRedesign.statusDetail.queued`);case`awaiting_recruitment`:return w(`agentRedesign.statusDetail.recruitment`);case`unreported`:return w(e.source===`roster`?`agentRedesign.statusDetail.unreportedRoster`:`agentRedesign.statusDetail.unreportedTasks`);case`unavailable`:return w(`agentRedesign.statusDetail.unavailable`);default:return null}}var ut={class:`ui-card agent-card`},dt={class:`agent-card-topline`},ft=[`src`],pt={class:`agent-directory-name`},mt={key:0,class:`ui-badge fla-employee-number`},ht={key:1,class:`ui-badge ui-badge--accent agent-card-role`},gt=[`title`],_t=[`data-membership-status`],vt=[`data-work-status`,`aria-label`],yt={class:`agent-card-work-status-text`},bt=[`aria-label`,`aria-pressed`,`title`,`disabled`],xt={key:0,class:`agent-card-current`,"data-current-task":``},St={class:`agent-card-current-label`},Ct=[`title`],wt=[`title`],Tt=[`title`],Et=[`title`],Dt={key:2,class:`agent-inline-skills`},Ot={class:`agent-card-meta`},kt={class:`agent-card-projects`},At={key:0,class:`agent-card-project-list`},jt=[`title`],Mt={key:0,class:`ui-badge agent-card-project-count`},Nt={key:1,class:`ui-badge`},Pt={key:2,class:`agent-card-no-project`},Ft=2400,It=P(c({__name:`AgentCard`,props:{agent:{},spaceId:{},projectNames:{},managesAllProjects:{type:Boolean},entry:{},pinned:{type:Boolean},pinPending:{type:Boolean}},emits:[`toggle-pin`],setup(i,{emit:a}){let o=i,s=a,c=O(()=>L(o.agent)),l=Ce(Ft),u=O(()=>de(o.agent)),p=O(()=>u.value.slice(0,2).map(e=>o.projectNames?.[e]||e)),h=O(()=>Math.max(u.value.length-2,0)),x=O(()=>o.agent.profile.capabilities.slice(0,3)),S=O(()=>`is-${o.agent.profile.status}`),T=O(()=>w(`projectAgents.status.${o.agent.profile.status}`)),E=O(()=>o.entry?.status??`unreported`),ne=O(()=>o.entry?.title??w(`agentRedesign.workbench.titleNotLoaded`)),k=O(()=>ct(o.entry?.lastUpdateAt,ee())),re=nt(),ie=O(()=>E.value===`running`?ot(o.entry?.runningSince,ee(),re.value):null),ae=O(()=>({path:`/project-agents/manage`,query:{agent:o.agent.agentId,task:o.entry?.taskId??``}})),A=O(()=>lt(o.entry)),M=O(()=>B(o.agent.occupation)),P=O(()=>`is-${E.value}`),oe=O(()=>({coordinator:w(`agentProfiles.roles.projectManager`),hr:w(`agentProfiles.roles.hr`)})[o.agent.profile.agentType]??``);function ce(e,t,n){let r=w(e,n);return r===e?t:r}let le=O(()=>ce(`agentRedesign.membershipStatus`,`Member · ${T.value}`,{status:T.value})),F=O(()=>{let e={awaiting_recruitment:`Awaiting recruitment`,queued:`Queued`,running:`Running`,paused:`Paused`,awaiting_review:`Awaiting review`,blocked:`Blocked`,none:w(`agentProfiles.idle`),loading:`Loading work status`,unreported:`Partial status`,unavailable:`Unavailable`,ended:`Ended`}[E.value];return ce(`agentRedesign.workStatus.${E.value}`,e??`Work status unavailable`)}),fe=O(()=>o.pinPending?se(`saving`,`Saving Agent pin…`):o.pinned?se(`unpin`,`Unpin Agent`):se(`pin`,`Pin Agent`));function me(){s(`toggle-pin`,!o.pinned)}return(a,o)=>(e(),t(`article`,ut,[_(`div`,dt,[_(`span`,{class:y([`agent-portrait small agent-card-identity`,{"is-working":E.value===`running`}]),style:te([v(ue)(i.agent.agentId),{"--working-phase":v(l)}]),"aria-hidden":`true`,"data-card-portrait":``},[v(I)(i.agent.agentId)?(e(),t(`img`,{key:0,src:v(I)(i.agent.agentId),alt:``},null,8,ft)):(e(),t(g,{key:1},[f(C(i.agent.profile.occupationEmoji||c.value.slice(0,1)),1)],64))],6),_(`div`,pt,[n(v(j),{to:v(pe)(i.spaceId,i.agent.agentId),"aria-label":`${c.value} · ${v(w)(`agentProfiles.profile`)}`},{default:m(()=>[f(C(c.value),1)]),_:1},8,[`to`,`aria-label`]),i.agent.employeeNumber?(e(),t(`span`,mt,`FLA `+C(i.agent.employeeNumber),1)):d(``,!0),oe.value?(e(),t(`span`,ht,C(oe.value),1)):d(``,!0),M.value.length?(e(),t(`span`,{key:2,class:`agent-card-occupation`,"data-occupation":``,title:v(w)(`agentRedesign.occupation.title`)},C(M.value.join(` · `)),9,gt)):d(``,!0),n(be,{"agent-id":i.agent.agentId},null,8,[`agent-id`])]),i.agent.profile.status===`active`?d(``,!0):(e(),t(`span`,{key:0,class:y([`ui-badge agent-card-status agent-card-membership-status`,S.value]),"data-membership-status":i.agent.profile.status},C(le.value),11,_t)),E.value!==`ended`&&(i.agent.profile.status===`active`||![`none`,`loading`].includes(E.value))?(e(),t(`span`,{key:1,class:y([`agent-card-work-status`,P.value]),"data-work-status":E.value,"aria-label":`${v(w)(`agentRedesign.workStatus.label`)} · ${F.value}`},[_(`span`,yt,C(F.value),1)],10,vt)):d(``,!0),_(`button`,{class:`agent-card-pin quiet-button`,"data-agent-pin-toggle":``,type:`button`,"aria-label":`${fe.value} · ${c.value}`,"aria-pressed":!!i.pinned,title:fe.value,disabled:i.pinPending,onClick:b(me,[`stop`])},[i.pinPending?(e(),D(N,{key:0,variant:`inline`,label:fe.value},null,8,[`label`])):(e(),D(Qe,{key:1,filled:i.pinned},null,8,[`filled`]))],8,bt)]),i.entry?.taskId?(e(),t(`p`,xt,[_(`span`,St,C(v(w)(`agentRedesign.workbench.current`)),1),n(v(j),{class:y([`agent-card-current-task`,{"is-unloaded":!i.entry.title}]),to:ae.value},{default:m(()=>[f(C(ne.value),1)]),_:1},8,[`to`,`class`]),E.value===`running`?(e(),t(`span`,{key:0,class:`agent-card-last-update`,title:i.entry.runningSince??void 0,"data-running-since":``},C(ie.value?v(w)(`agentRedesign.workbench.runningFor`,{duration:ie.value}):v(w)(`agentRedesign.workbench.runningForUnknown`)),9,Ct)):(e(),t(`span`,{key:1,class:`agent-card-last-update`,title:i.entry.lastUpdateAt??void 0,"data-last-update":``},C(k.value?v(w)(`agentRedesign.workbench.lastUpdate`,{time:k.value}):v(w)(`agentRedesign.workbench.lastUpdateUnknown`)),9,wt))])):d(``,!0),A.value?(e(),t(`p`,{key:1,class:y([`agent-card-status-detail`,P.value]),title:A.value,"data-status-detail":``},C(A.value),11,Tt)):d(``,!0),_(`p`,{class:`agent-card-responsibility`,"data-agent-summary":``,title:v(w)(`agentRedesign.workbench.responsibility`)},C(i.agent.profile.responsibility),9,Et),x.value.length?(e(),t(`div`,Dt,[(e(!0),t(g,null,r(x.value,n=>(e(),t(`span`,{key:n},C(n),1))),128))])):d(``,!0),_(`div`,Ot,[_(`div`,kt,[p.value.length?(e(),t(`div`,At,[(e(!0),t(g,null,r(p.value,n=>(e(),t(`span`,{key:n,class:`ui-badge agent-card-project-badge`,title:n},C(n),9,jt))),128)),h.value?(e(),t(`span`,Mt,` +`+C(h.value),1)):d(``,!0)])):i.managesAllProjects?(e(),t(`span`,Nt,C(v(w)(`agentProfiles.allProjects`)),1)):(e(),t(`span`,Pt,C(v(w)(`agentProfiles.noProject`)),1))]),n(v(j),{class:`agent-directory-open`,to:v(pe)(i.spaceId,i.agent.agentId),"aria-label":`${c.value} · ${v(w)(`agentProfiles.profile`)}`},{default:m(()=>[f(C(v(w)(`agentProfiles.profile`))+` → `,1)]),_:1},8,[`to`,`aria-label`])])]))}}),[[`__scopeId`,`data-v-310201de`]]),Lt=new Map,Rt=()=>({agents:[],phase:`open`,cursor:null,complete:!1});function zt(e,t){let n=T([]),r=T(!1),i=T(``),o=T(!1),s=Rt(),c=``,l=0;function u(e){s=e,n.value=e.agents,o.value=e.complete}function d(){l+=1,c=`${e.value}\n${t.value}`,r.value=!1,i.value=``;let n=Lt.get(c);return u(n??Rt()),n?Promise.resolve():f()}async function f(){let n=e.value;if(!n||r.value||s.complete)return;let a=l,o=s,d=new URLSearchParams({personalSpaceId:n,limit:`50`});t.value!==`all`&&d.set(`status`,t.value),o.phase===`open`&&d.set(`work`,`open`),o.cursor&&d.set(`cursor`,o.cursor),r.value=!0,i.value=``;let p=!1;try{let e=await M(`/api/project-agent-pages?${d}`);if(a!==l)return;let t=me(e),r=typeof t.nextCursor==`string`&&t.nextCursor?t.nextCursor:null,i=t.complete===!0;if(!i&&!r)throw Error(w(`agentProfiles.pageBroken`));let s=new Set(o.agents.map(e=>e.agentId)),f=he(e,n).filter(e=>s.has(e.agentId)?!1:(s.add(e.agentId),!0)),m={agents:[...o.agents,...f],phase:i?`all`:o.phase,cursor:i?null:r,complete:i&&o.phase===`all`};Lt.set(c,m),u(m),p=o.phase===`open`&&i&&m.agents.length<50}catch(e){a===l&&(i.value=e instanceof Error?e.message:w(`agentProfiles.loadError`))}finally{a===l&&(r.value=!1)}p&&a===l&&await f()}function p(){return Lt.delete(c),d()}return a([e,t],d,{immediate:!0}),{agents:n,loading:r,error:i,complete:o,loadMore:f,reload:p}}var Bt={running:0,awaiting_review:1,blocked:2,paused:3,queued:4,awaiting_recruitment:5,loading:6,unreported:6,unavailable:6,none:7,ended:8},Vt=new Set([`blocked`,`awaiting_review`,`paused`]);function Ht(e){return W.includes(e)}function Ut(e,t){let n={};for(let r of U(e,t))n[r.taskId]={taskId:r.taskId,title:r.title,updatedAt:r.updatedAt??null,participantUpdatedAt:Object.fromEntries(r.participants.map(e=>[e.agentId,e.updatedAt??null])),summary:r.resultSummary?.trim()||null};return n}function Wt(e,t){return e?e.status:t===`loading`?`loading`:t===`error`?`unavailable`:t===`incomplete`?`unreported`:`none`}function Gt(e){return e===`idle`?`none`:e===`ended`?`ended`:Ht(e)?e:`unreported`}function Kt(e,t){let n=typeof e.workStatus==`string`,r=n?Gt(e.workStatus):Wt(t.summary,t.summaryState),i=Ht(r)?n?e.currentTaskId??null:t.summary?.taskId??null:null,a=i?t.tasks?.[i]:void 0,o=a?.title??(i&&t.summary?.taskId===i?t.summary.title:null),s=a?a.participantUpdatedAt[e.agentId]??a.updatedAt:null;return{status:r,source:n?`roster`:t.summary?`tasks`:`unknown`,taskId:i,title:o,lastUpdateAt:s,reason:Vt.has(r)?a?.summary??null:null,runningSince:n&&r===`running`?e.currentTaskRunningSince??null:null}}function qt(e){let t=e?Date.parse(e):NaN;return Number.isNaN(t)?null:t}function Jt(e,t){let n=Bt[e.entry.status]-Bt[t.entry.status];if(n)return n;let r=qt(e.entry.lastUpdateAt),i=qt(t.entry.lastUpdateAt);return r===i?e.name.localeCompare(t.name):r===null?1:i===null?-1:i-r}function Yt(e){let t=T({}),n=T({}),r=T(!1),i=T(``),o=T(`idle`),s=new Map,c=0;async function l(){let a=++c,l=e.value;if(i.value=``,!l){t.value={},n.value={},r.value=!1,o.value=`idle`;return}let u=s.get(l);u?(t.value=u.summaries,n.value=u.tasks):(Object.keys(t.value).length||Object.keys(n.value).length)&&(t.value={},n.value={}),r.value=!0,o.value=`loading`;try{let r=await M(`/api/project-agent-tasks?${new URLSearchParams({personalSpaceId:l,limit:`200`})}`);if(a!==c||e.value!==l)return;let i={summaries:H(r,l),tasks:Ut(r,l)};s.set(l,i),t.value=i.summaries,n.value=i.tasks,o.value=V(r)?`ready`:`incomplete`}catch(t){if(a!==c||e.value!==l)return;i.value=t instanceof Error?t.message:w(`agentProfiles.loadError`),o.value=`error`}finally{a===c&&e.value===l&&(r.value=!1)}}return a(e,l,{immediate:!0}),{summaries:t,tasks:n,loading:r,error:i,state:o,load:l}}function Xt(e,t,n){let r=T([]);a(n,()=>{r.value=[]}),a([e,t],([e,t])=>{t&&e.length&&!r.value.length&&(r.value=[...e])},{immediate:!0});let i=O(()=>{if(!r.value.length)return e.value;let t=new Map(r.value.map((e,t)=>[e,t]));return[...e.value.filter(e=>t.has(e)).sort((e,n)=>t.get(e)-t.get(n)),...e.value.filter(e=>!t.has(e))]});function o(){r.value=[...e.value]}return{order:i,apply:o}}var Zt=[`src`],Qt=P(c({__name:`EmployeeWorkbenchLinks`,props:{personalSpaceId:{}},setup(n){let i=n;a(()=>i.personalSpaceId,e=>{G(e===`current`?``:e)},{immediate:!0});let o=O(()=>ve.value.filter(e=>e.agentId&&e.agentStatus===`active`&&(e.runtime||e.workbench?.kind===`native`)));return(n,i)=>(e(!0),t(g,null,r(o.value,n=>(e(),D(v(j),{key:n.id,class:`ui-button employee-workbench-link`,to:`/employees/${encodeURIComponent(n.id)}`,title:v(w)(`agentProfiles.workbench`)},{default:m(()=>[v(I)(n.id)?(e(),t(`img`,{key:0,src:v(I)(n.id),alt:``,"aria-hidden":`true`},null,8,Zt)):d(``,!0),f(` `+C(n.name)+` · `+C(n.role),1)]),_:2},1032,[`to`,`title`]))),128))}}),[[`__scopeId`,`data-v-4906fde1`]]),$t=[`aria-label`],en={class:`ui-toolbar agents-directory-heading`},tn={key:0,class:`agents-directory-count`},nn={key:1,class:`agents-directory-count`,"aria-hidden":`true`},rn={class:`agent-profile-actions`},an={key:0,class:`agent-directory-pin-error`,role:`alert`},on={key:2,class:`agent-directory-work-error`,role:`status`},sn={class:`ui-toolbar agents-directory-filters`},cn={key:0,class:`agents-directory-search`},ln={class:`ui-sr-only`},un=[`placeholder`],dn={key:4,role:`alert`,class:`ui-card ui-empty agent-profile-empty`},fn={key:5,class:`agents-directory-partial`,role:`status`},pn={key:6,class:`ui-card ui-empty agent-profile-empty`},mn={key:7,class:`agents-directory-reorder`,role:`status`},hn={key:8,class:`agents-directory-grid`},gn={key:9,class:`agents-directory-projects`},_n={class:`agents-directory-grid`},vn={key:1,class:`agents-directory-more-error`,role:`alert`},yn=P(c({__name:`AgentsDirectoryPage`,setup(i){let o=re(),c=ae(),p=ie(),y=O(()=>o.activePersonalSpace?.id??``),b=oe(y),te=b.agentIds,ne=b.savingAgentId,A=b.error,j=O(()=>se(`retry`,`Retry`)),{summaries:M,tasks:P,loading:I,error:ue,state:me,load:he}=Yt(y),R=je(c.query),z=T(R.search),B=T(R.status),V=T(R.projects),H=T(R.view),{agents:U,loading:W,error:G,complete:K,loadMore:be,reload:Ce}=zt(y,B),we=O(()=>W.value&&!U.value.length),q=O(()=>!K.value&&U.value.length>0),Oe=O(()=>!!(z.value.trim()||V.value.length)),ke=T({}),J=T(null),Y=T(null),Ae=Ee(Y,J),Pe=T(!1),Ie=O(()=>ve.value.some(e=>!e.fixed)),Le=e=>ve.value.some(t=>t.agentId===e&&t.management?.mode===`all`),Re=O(()=>(o.state?.personalProjects??[]).filter(e=>e.personal_space_id===y.value)),X=O(()=>Re.value.filter(e=>_e(e))),ze=O(()=>new Map(X.value.map(e=>[e.project_id,e]))),Be=O(()=>X.value.map(e=>({value:e.project_id,label:e.profile.name}))),Ve=O(()=>Object.fromEntries(Re.value.map(e=>[e.project_id,ge(e)]))),He=O(()=>[{value:`all`,label:w(`agentProfiles.allStatus`)},...[`active`,`inactive`,`archived`].map(e=>({value:e,label:w(`projectAgents.status.${e}`)}))]),Ue=e=>(B.value===`all`||e.profile.status===B.value)&&(!V.value.length||de(e).some(e=>V.value.includes(e)))&&fe([L(e),e.employeeNumber?`FLA ${e.employeeNumber}`:``,e.profile.responsibility,...e.profile.capabilities,...de(e).map(e=>Ve.value[e]||e)].join(` `),z.value),Z=O(()=>we.value||I.value||o.runtimeStatus===`loading`),We=O(()=>Object.fromEntries(U.value.map(e=>[e.agentId,Kt(e,{summary:M.value[e.agentId],summaryState:me.value,tasks:P.value})]))),Ge=O(()=>new Map(U.value.map(e=>[e.agentId,e]))),Ke=O(()=>U.value.map(e=>({agent:e,entry:We.value[e.agentId],name:L(e)})).sort(Jt).map(e=>e.agent.agentId)),qe=Xt(Ke,O(()=>!Z.value),y),Je=e=>e.map(e=>Ge.value.get(e)).filter(e=>e&&Ue(e)),Xe=T(`recent`),Ze=O(()=>[{value:`recent`,label:w(`agentProfiles.sort.recent`)},{value:`name`,label:w(`agentProfiles.sort.name`)}]),Q=O(()=>{let e=Je(qe.order.value);return Xe.value===`name`?[...e].sort((e,t)=>L(e).localeCompare(L(t),ee())):e}),$=T(!1),Qe=T(null);async function $e(){$.value=!0,await l(),Qe.value?.focus()}let et=O(()=>[{value:`agents`,label:w(`agentRedesign.projectView.agents`)},{value:`projects`,label:w(`agentRedesign.projectView.projects`)}]),tt=O(()=>Fe(Q.value.map(e=>e.agentId),e=>de(Ge.value.get(e)),e=>We.value[e]?.status,X.value.map(e=>e.project_id),V.value,{includeEmpty:!z.value.trim()}).map(e=>({...e,key:e.projectId,name:Ve.value[e.projectId]||e.projectId,purpose:ze.value.get(e.projectId)?.profile.purpose??null,agents:e.agentIds.map(e=>Ge.value.get(e))}))),nt=e=>({agent:e,spaceId:y.value,projectNames:Ve.value,managesAllProjects:Le(e.agentId),entry:We.value[e.agentId],pinned:te.value.includes(e.agentId),pinPending:ne.value===e.agentId}),rt=O(()=>Je(Ke.value).some((e,t)=>e.agentId!==Q.value[t]?.agentId));async function it(e,t){await b.setPinned(e,t)}u(()=>{o.runtimeStatus===`idle`&&o.refresh()});let at=()=>({search:z.value,projects:V.value,status:B.value,view:H.value});a(()=>c.query,e=>{let t=je(e);z.value=t.search,V.value=t.projects,B.value=t.status,H.value=t.view}),a([z,B,V,H],()=>{Ne(je(c.query),at())||p.replace({query:Me(c.query,at())})},{deep:!0}),De(J,`agents-directory`,O(()=>Q.value.length>0)),a([y,()=>c.query.agent],([e,t])=>{if(e&&typeof t==`string`){let{agent:n,...r}=c.query;p.replace({path:typeof c.query.task==`string`?`/project-agents/manage`:pe(e,t),query:typeof c.query.task==`string`?c.query:r})}},{immediate:!0}),a(y,(e,t)=>{t&&(z.value=``,V.value=[],B.value=`all`,ke.value={})});async function ot(e){Pe.value=!1,await p.push(pe(y.value,e.agent.agentId))}a([Ae,W,G,K],()=>{Ae.value&&!W.value&&!G.value&&!K.value&&be()});async function st(){o.state||await o.refresh(),await Promise.allSettled([Ce(),he()])}function ct(e){o.rememberPersonalProject(e)}return(i,a)=>(e(),t(`section`,{ref_key:`scroller`,ref:J,class:`view agents-directory`,"aria-label":v(w)(`agentProfiles.title`)},[_(`header`,en,[!Z.value||v(U).length?(e(),t(`p`,tn,C(v(w)(q.value?`agentProfiles.membersLoaded`:`agentProfiles.members`,{count:v(U).length})),1)):(e(),t(`span`,nn,`\xA0`)),_(`div`,rn,[Z.value&&v(U).length?(e(),D(N,{key:0,variant:`inline`,label:v(w)(`agentRedesign.refreshing`)},null,8,[`label`])):d(``,!0),n(Qt,{"personal-space-id":y.value||`current`},null,8,[`personal-space-id`]),Ie.value?(e(),D(k,{key:1,size:`sm`,variant:`primary`,disabled:!y.value,onClick:a[0]||=e=>Pe.value=!0},{default:m(()=>[f(C(v(w)(`employees.recruit`)),1)]),_:1},8,[`disabled`])):d(``,!0)])]),v(A)?(e(),t(`p`,an,[_(`span`,null,C(v(A)),1),n(k,{size:`sm`,variant:`ghost`,onClick:a[1]||=e=>v(b).load({force:!0})},{default:m(()=>[f(C(j.value),1)]),_:1})])):d(``,!0),!Z.value&&!v(G)&&v(o).runtimeStatus===`ready`&&!X.value.length?(e(),D(Se,{key:1,"personal-space-id":y.value},null,8,[`personal-space-id`])):d(``,!0),v(ue)?(e(),t(`p`,on,[_(`span`,null,C(v(w)(`agentRedesign.workStatus.refreshError`)),1),n(k,{size:`sm`,variant:`ghost`,onClick:v(he)},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1},8,[`onClick`])])):d(``,!0),_(`div`,sn,[n(F,{modelValue:V.value,"onUpdate:modelValue":a[2]||=e=>V.value=e,class:`agents-directory-select`,multiple:``,options:Be.value,label:v(w)(`employees.filterLabel`),placeholder:v(w)(`employees.allProjectsFilter`)},null,8,[`modelValue`,`options`,`label`,`placeholder`]),n(F,{modelValue:B.value,"onUpdate:modelValue":a[3]||=e=>B.value=e,class:`agents-directory-select`,options:He.value,label:v(w)(`projectAgents.fields.status`)},null,8,[`modelValue`,`options`,`label`]),n(F,{modelValue:Xe.value,"onUpdate:modelValue":a[4]||=e=>Xe.value=e,class:`agents-directory-select`,"data-directory-sort":``,options:Ze.value,label:v(w)(`agentProfiles.sort.label`)},null,8,[`modelValue`,`options`,`label`]),n(le,{modelValue:H.value,"onUpdate:modelValue":a[5]||=e=>H.value=e,class:`agents-directory-view`,"data-directory-view":``,options:et.value,label:v(w)(`agentRedesign.projectView.label`)},null,8,[`modelValue`,`options`,`label`]),$.value||z.value?(e(),t(`label`,cn,[_(`span`,ln,C(v(w)(`agentProfiles.search`)),1),h(_(`input`,{ref_key:`searchInput`,ref:Qe,"onUpdate:modelValue":a[6]||=e=>z.value=e,type:`search`,maxlength:`160`,placeholder:v(w)(`agentProfiles.search`),onFocus:a[7]||=e=>$.value=!0,onBlur:a[8]||=e=>$.value=!1,onKeydown:a[9]||=x(e=>{z.value=``,$.value=!1},[`esc`])},null,40,un),[[E,z.value]])])):(e(),D(ce,{key:1,icon:`search`,label:v(w)(`agentProfiles.search`),"data-directory-search":``,onClick:$e},null,8,[`label`]))]),Z.value&&!v(U).length?(e(),D(N,{key:3,label:v(w)(`agentProfiles.loading`)},null,8,[`label`])):d(``,!0),v(G)&&!v(U).length||v(o).runtimeStatus===`error`?h((e(),t(`div`,dn,[_(`p`,null,C(!v(U).length&&v(G)||v(w)(`agentProfiles.loadError`)),1),n(k,{size:`sm`,variant:`ghost`,onClick:st},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1})],512)),[[S,!Z.value||v(U).length===0]]):d(``,!0),q.value?(e(),t(`p`,fn,C(v(w)(Oe.value?`agentProfiles.partialFilter`:`agentProfiles.partialRoster`,{count:v(U).length})),1)):d(``,!0),!Z.value&&v(K)&&!Q.value.length&&H.value===`agents`&&!v(G)&&v(o).runtimeStatus!==`error`?(e(),t(`p`,pn,C(v(w)(v(U).length?`agentProfiles.noMatch`:`agentProfiles.noAgents`)),1)):d(``,!0),rt.value&&!Z.value?(e(),t(`p`,mn,[_(`span`,null,C(v(w)(`agentRedesign.workbench.reorderHint`)),1),n(k,{size:`sm`,variant:`ghost`,"data-workbench-reorder":``,onClick:a[10]||=e=>v(qe).apply()},{default:m(()=>[f(C(v(w)(`agentRedesign.workbench.reorder`)),1)]),_:1})])):d(``,!0),Q.value.length&&H.value===`agents`?(e(),t(`ul`,hn,[(e(!0),t(g,null,r(Q.value,r=>(e(),t(`li`,{key:r.agentId},[n(It,s({ref_for:!0},nt(r),{onTogglePin:e=>it(r.agentId,e)}),null,16,[`onTogglePin`])]))),128))])):H.value===`projects`?(e(),t(`div`,gn,[n(ye,{"space-id":y.value,"formal-projects":X.value,"existing-project-ids":Re.value.map(e=>e.project_id),onProjectCreated:ct},null,8,[`space-id`,`formal-projects`,`existing-project-ids`]),(e(!0),t(g,null,r(tt.value,i=>(e(),D(Ye,{key:i.key,expanded:ke.value[i.key],"onUpdate:expanded":e=>ke.value[i.key]=e,"space-id":y.value,"project-id":i.projectId,name:i.name,purpose:i.purpose,agents:i.agents,count:i.agents.length,"running-count":i.runningCount,"unknown-count":i.unknownCount},{default:m(()=>[_(`ul`,_n,[(e(!0),t(g,null,r(i.agents,r=>(e(),t(`li`,{key:r.agentId},[n(It,s({ref_for:!0},nt(r),{onTogglePin:e=>it(r.agentId,e)}),null,16,[`onTogglePin`])]))),128))])]),_:2},1032,[`expanded`,`onUpdate:expanded`,`space-id`,`project-id`,`name`,`purpose`,`agents`,`count`,`running-count`,`unknown-count`]))),128))])):d(``,!0),v(U).length&&!v(K)?(e(),t(`div`,{key:10,ref_key:`rosterEnd`,ref:Y,class:`agents-directory-more`},[v(W)?(e(),D(N,{key:0,variant:`inline`,label:v(w)(`agentProfiles.loadingMore`)},null,8,[`label`])):v(G)?(e(),t(`p`,vn,[_(`span`,null,C(v(w)(`agentProfiles.loadMoreError`))+` `+C(v(G)),1),n(k,{size:`sm`,variant:`ghost`,"data-roster-retry":``,onClick:v(be)},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1},8,[`onClick`])])):(e(),D(k,{key:2,size:`sm`,variant:`ghost`,"data-roster-more":``,onClick:v(be)},{default:m(()=>[f(C(v(w)(`agentProfiles.loadMore`)),1)]),_:1},8,[`onClick`]))],512)):d(``,!0),n(Te,{scroller:J.value},null,8,[`scroller`]),n(xe,{open:Pe.value,"personal-space-id":y.value,projects:X.value,"default-project-ids":V.value??[],onClose:a[11]||=e=>Pe.value=!1,onRecruited:ot},null,8,[`open`,`personal-space-id`,`projects`,`default-project-ids`])],8,$t))}}),[[`__scopeId`,`data-v-59b90cb4`]]);export{yn as default};
1
+ import{B as e,C as t,E as n,H as r,I as i,J as a,M as o,N as s,O as c,P as l,R as u,S as d,T as f,U as p,X as m,Z as h,_ as g,b as _,dt as v,ft as y,g as b,h as x,m as S,mt as C,n as ee,o as w,ot as T,p as E,pt as te,q as ne,x as D,y as O}from"./i18n-DYrQWclR.js";import{n as k,t as re}from"./console-Dl-Zf-vm.js";import{h as ie,m as ae}from"./useApi-CROJJdhE-Di-SEzl3.js";import{a as A,t as j}from"./vue-router-CG6ezAck.js";import{r as M,s as N}from"./client-CRiPFGQo.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{i as oe,n as se}from"./agent-pins-CtGOL6hE.js";import{t as ce}from"./UiIconButton-CaxMAEd6.js";import{t as le}from"./UiSegmented-DirGF0fz.js";import{t as F}from"./UiSelect-iDXgMBmg.js";import{t as I}from"./avatars-CUyfvsKO.js";import{t as ue}from"./agent-identity-color-RqpT7gtx.js";import{a as de,i as fe,n as pe,t as L}from"./profile-model-BQO4zNs9.js";import{h as me}from"./task-evidence-i9SDhd3E.js";import{t as he}from"./useAgentRecords-Bw9B25sk.js";import{n as R}from"./paths-CDREouhi.js";import{t as z}from"./AgentName-CKA8o3DK.js";import{r as B}from"./agent-occupation-BODbxMc2.js";import{i as ge,n as _e}from"./project-origin-BthRWajS.js";import{n as V,r as H,s as U,t as W}from"./agent-work-summary-9jEiDLve.js";import{a as ve,s as G}from"./catalog-DoiBFHyb.js";import{t as K}from"./project-team-api-DLYFf3Df.js";/* empty css */import{t as ye}from"./UnassignedConversationsPanel-LcjLO-S7.js";import{n as be,t as xe}from"./EmployeeRecruitDialog-DA6MLiX4.js";import{t as Se}from"./ProjectAgentFirstTask-1ZqQx7TD.js";function Ce(e,t=Date.now()){return`-${Math.floor(t%e)}ms`}var we=[`aria-label`,`title`],Te=P(c({__name:`BackToTop`,props:{scroller:{},threshold:{default:600}},setup(n){let r=n,o=T(!1);function s(){o.value=(r.scroller?.scrollTop??0)>r.threshold}a(()=>r.scroller,(e,t)=>{t?.removeEventListener(`scroll`,s),e?.addEventListener(`scroll`,s,{passive:!0}),s()},{immediate:!0}),i(()=>r.scroller?.removeEventListener(`scroll`,s));function c(){r.scroller&&(r.scroller.scrollTop=0),s()}return(n,r)=>o.value?(e(),t(`button`,{key:0,type:`button`,class:`back-to-top`,"data-back-to-top":``,"aria-label":v(w)(`ui.backToTop`),title:v(w)(`ui.backToTop`),onClick:c},[...r[0]||=[_(`svg`,{viewBox:`0 0 24 24`,width:`18`,height:`18`,"aria-hidden":`true`},[_(`path`,{d:`M6 15l6-6 6 6`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,we)):d(``,!0)}}),[[`__scopeId`,`data-v-dceeb77d`]]);function Ee(e,t,n=600){let r=T(!1),o=null;function s(){o?.disconnect(),o=null}return a([e,t],([e,t])=>{s(),r.value=!1,!(!e||typeof IntersectionObserver>`u`)&&(o=new IntersectionObserver(e=>{r.value=e.some(e=>e.isIntersecting)},{root:t,rootMargin:`0px 0px ${n}px 0px`}),o.observe(e))},{immediate:!0,flush:`post`}),i(s),r}var q=new Map;function De(e,t,n){let r=!1;A(()=>{e.value&&q.set(t,e.value.scrollTop)}),a(n,async n=>{if(!n||r)return;r=!0;let i=q.get(t);q.delete(t),i!==void 0&&(await l(),e.value&&(e.value.scrollTop=i))},{immediate:!0})}var Oe=[`all`,`active`,`inactive`,`archived`],ke=[`agents`,`projects`],J=[`q`,`project`,`status`,`view`];function Y(e){return(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`&&e!==``)}function Ae(e,t,n){return e.includes(t??``)?t:n}function je(e){return{search:Y(e.q)[0]??``,projects:[...new Set(Y(e.project))],status:Ae(Oe,Y(e.status)[0],`all`),view:Ae(ke,Y(e.view)[0],`agents`)}}function Me(e,t){let n=Object.fromEntries(Object.entries(e).filter(([e])=>!J.includes(e))),r=t.search.trim();return r&&(n.q=r),t.projects.length&&(n.project=[...t.projects]),t.status!==`all`&&(n.status=t.status),t.view!==`agents`&&(n.view=t.view),n}function Ne(e,t){return e.search.trim()===t.search.trim()&&e.status===t.status&&e.view===t.view&&e.projects.length===t.projects.length&&e.projects.every((e,n)=>e===t.projects[n])}var Pe=new Set([`loading`,`unreported`,`unavailable`]);function Fe(e,t,n,r,i=[],a=!1){let o=new Set(r.filter(e=>!i.length||i.includes(e))),s=new Map,c=e=>{let t=s.get(e);return t||(t={projectId:e,agentIds:[],runningCount:0,unknownCount:0},s.set(e,t)),t};if(typeof a==`boolean`?a:a?.includeEmpty)for(let e of r)o.has(e)&&c(e);for(let r of e){let e=t(r).filter(e=>o.has(e)),i=n(r);for(let t of e){let e=c(t);e.agentIds.push(r),i===`running`&&(e.runningCount+=1),(!i||Pe.has(i))&&(e.unknownCount+=1)}}let l=new Map(r.map((e,t)=>[e,t]));return[...s.values()].sort((e,t)=>(l.get(e.projectId)??2**53-1)-(l.get(t.projectId)??2**53-1)||e.projectId.localeCompare(t.projectId))}var Ie=[`data-directory-project`],Le=[`aria-expanded`,`aria-controls`],Re={class:`directory-project-heading`},X={class:`directory-project-name`},ze={key:0,class:`ui-meta directory-project-purpose`,"data-project-purpose":``},Be={class:`ui-meta directory-project-summary`},Ve={class:`directory-project-header-lead`,"data-project-header-lead":``},He={key:0,class:`directory-project-occupations`,"data-project-member-occupations":``},Ue={class:`ui-meta directory-project-counts`},Z=[`id`],We={key:0,class:`directory-project-lead`,"data-project-lead":``},Ge={key:1,role:`alert`},Ke={key:2},qe={class:`ui-meta`},Je={key:3,class:`ui-meta`},Ye=c({__name:`DirectoryProjectGroup`,props:o({spaceId:{},projectId:{},name:{},purpose:{},agents:{},count:{},runningCount:{},unknownCount:{}},{expanded:{type:Boolean,default:!1},expandedModifiers:{}}),emits:[`update:expanded`],setup(r){let i=r,o=ne(r,`expanded`),s=T(null),c=T(!1),l=T(!1),u=0,h=O(()=>`directory-project-${i.projectId??`unassigned`}`),y=O(()=>i.projectId&&i.spaceId?R(i.spaceId,`overview`,i.projectId):null),b=O(()=>{if(s.value?.lead?.name)return s.value.lead.name;let e=(i.agents??[]).find(e=>e.occupation?.role===`lead`||e.profile.agentType===`coordinator`);return e?e.profile.displayName||e.profile.name:null}),x=O(()=>{let e=new Set,t=[];for(let n of i.agents??[]){let r=B(n.occupation)[0];if(!r)continue;let i=n.profile.occupationEmoji?.trim(),a=i?`${i} ${r}`:r;e.has(a)||(e.add(a),t.push(a))}return t});async function S(){if(!i.projectId||!i.spaceId)return;let e=++u;c.value=!0,l.value=!1;try{let t=await K(i.spaceId,i.projectId);e===u&&(s.value=t)}catch{e===u&&(l.value=!0)}finally{e===u&&(c.value=!1)}}return a(()=>[i.spaceId,i.projectId],()=>{u+=1,s.value=null,c.value=!1,l.value=!1,o.value&&S()}),a(o,e=>{e&&!s.value&&!c.value&&S()},{immediate:!0}),(i,a)=>(e(),t(`section`,{class:`directory-project`,"data-directory-project":r.projectId??``},[_(`button`,{type:`button`,class:`directory-project-toggle`,"aria-expanded":o.value,"aria-controls":h.value,onClick:a[0]||=e=>o.value=!o.value},[_(`span`,Re,[_(`span`,X,C(r.name),1),r.purpose?(e(),t(`span`,ze,C(r.purpose),1)):d(``,!0)]),_(`span`,Be,[_(`span`,Ve,C(b.value?v(w)(`agentRedesign.projectView.lead`,{name:b.value}):v(w)(`agentRedesign.projectView.leadUnset`)),1),x.value.length?(e(),t(`span`,He,` · `+C(x.value.join(` · `)),1)):d(``,!0)]),_(`span`,Ue,[f(C(v(w)(`agentRedesign.projectView.members`,{count:r.count}))+` `,1),r.runningCount?(e(),t(g,{key:0},[f(` · `+C(v(w)(`agentRedesign.projectView.running`,{count:r.runningCount})),1)],64)):d(``,!0),r.unknownCount?(e(),t(g,{key:1},[f(` · `+C(v(w)(`agentRedesign.projectView.unknown`,{count:r.unknownCount})),1)],64)):d(``,!0)]),a[1]||=_(`svg`,{class:`directory-project-chevron`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[_(`path`,{d:`m6 9 6 6 6-6`})],-1)],8,Le),o.value?(e(),t(`div`,{key:0,id:h.value,class:`directory-project-body`},[r.projectId?(e(),t(`div`,We,[c.value?(e(),D(N,{key:0,variant:`inline`,label:v(w)(`agentRedesign.projectView.loadingLead`)},null,8,[`label`])):l.value?(e(),t(`p`,Ge,[f(C(v(w)(`agentRedesign.projectView.leadFailed`))+` `,1),n(k,{size:`sm`,variant:`ghost`,onClick:S},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1})])):s.value?.lead?(e(),t(`p`,Ke,[_(`span`,qe,C(v(w)(`projects.overview.lead`)),1),n(z,{"space-id":r.spaceId,"agent-id":s.value.lead.agentId,name:s.value.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):s.value?(e(),t(`p`,Je,C(s.value.status===`lead_unavailable`?v(w)(`projects.overview.leadUnavailableUnnamed`):v(w)(`projects.overview.noLead`)),1)):d(``,!0),y.value?(e(),D(v(j),{key:4,class:`quiet-button`,to:y.value},{default:m(()=>[f(C(v(w)(`agentRedesign.projectView.openProject`)),1)]),_:1},8,[`to`])):d(``,!0)])):d(``,!0),p(i.$slots,`default`)],8,Z)):d(``,!0)],8,Ie))}}),Xe={viewBox:`0 0 1024 1024`,width:`18`,height:`18`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`},Ze=[`d`],Q=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z`,$=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z`,Qe=c({__name:`PinIcon`,props:{filled:{type:Boolean,default:!1}},setup(n){return(r,i)=>(e(),t(`svg`,Xe,[_(`path`,{d:n.filled?$:Q},null,8,Ze)]))}}),$e=T(Date.now()),et=0,tt;function nt(e=6e4){return et+=1,tt||=($e.value=Date.now(),setInterval(()=>{$e.value=Date.now()},e)),i(()=>{--et,!et&&tt&&(clearInterval(tt),tt=void 0)}),$e}var rt=6e4,it=60*rt,at=24*it;function ot(e,t,n=Date.now()){let r=e?Date.parse(e):NaN;if(Number.isNaN(r)||r>n)return null;let i=n-r,[a,o]=i<it?[`minute`,rt]:i<2*at?[`hour`,it]:[`day`,at];return new Intl.NumberFormat(t,{style:`unit`,unit:a,unitDisplay:`long`}).format(Math.max(1,Math.floor(i/o)))}var st=[[`second`,60],[`minute`,60],[`hour`,24],[`day`,30],[`month`,12],[`year`,1/0]];function ct(e,t,n=Date.now()){let r=e?Date.parse(e):NaN;if(Number.isNaN(r))return null;let i=Math.round((r-n)/1e3),a=new Intl.RelativeTimeFormat(t,{numeric:`auto`});for(let[e,t]of st){if(Math.abs(i)<t)return a.format(i,e);i=Math.round(i/t)}return null}function lt(e){if(!e)return null;let t=e.reason;switch(e.status){case`blocked`:return t?w(`agentRedesign.statusDetail.blocked`,{reason:t}):w(`agentRedesign.statusDetail.blockedUnrecorded`);case`awaiting_review`:return t?w(`agentRedesign.statusDetail.review`,{reason:t}):w(`agentRedesign.statusDetail.reviewUnrecorded`);case`paused`:return t?w(`agentRedesign.statusDetail.paused`,{reason:t}):w(`agentRedesign.statusDetail.pausedUnrecorded`);case`queued`:return w(`agentRedesign.statusDetail.queued`);case`awaiting_recruitment`:return w(`agentRedesign.statusDetail.recruitment`);case`unreported`:return w(e.source===`roster`?`agentRedesign.statusDetail.unreportedRoster`:`agentRedesign.statusDetail.unreportedTasks`);case`unavailable`:return w(`agentRedesign.statusDetail.unavailable`);default:return null}}var ut={class:`ui-card agent-card`},dt={class:`agent-card-topline`},ft=[`src`],pt={class:`agent-directory-name`},mt={key:0,class:`ui-badge fla-employee-number`},ht={key:1,class:`ui-badge ui-badge--accent agent-card-role`},gt=[`title`],_t=[`data-membership-status`],vt=[`data-work-status`,`aria-label`],yt={class:`agent-card-work-status-text`},bt=[`aria-label`,`aria-pressed`,`title`,`disabled`],xt={key:0,class:`agent-card-current`,"data-current-task":``},St={class:`agent-card-current-label`},Ct=[`title`],wt=[`title`],Tt=[`title`],Et=[`title`],Dt={key:2,class:`agent-inline-skills`},Ot={class:`agent-card-meta`},kt={class:`agent-card-projects`},At={key:0,class:`agent-card-project-list`},jt=[`title`],Mt={key:0,class:`ui-badge agent-card-project-count`},Nt={key:1,class:`ui-badge`},Pt={key:2,class:`agent-card-no-project`},Ft=2400,It=P(c({__name:`AgentCard`,props:{agent:{},spaceId:{},projectNames:{},managesAllProjects:{type:Boolean},entry:{},pinned:{type:Boolean},pinPending:{type:Boolean}},emits:[`toggle-pin`],setup(i,{emit:a}){let o=i,s=a,c=O(()=>L(o.agent)),l=Ce(Ft),u=O(()=>de(o.agent)),p=O(()=>u.value.slice(0,2).map(e=>o.projectNames?.[e]||e)),h=O(()=>Math.max(u.value.length-2,0)),x=O(()=>o.agent.profile.capabilities.slice(0,3)),S=O(()=>`is-${o.agent.profile.status}`),T=O(()=>w(`projectAgents.status.${o.agent.profile.status}`)),E=O(()=>o.entry?.status??`unreported`),ne=O(()=>o.entry?.title??w(`agentRedesign.workbench.titleNotLoaded`)),k=O(()=>ct(o.entry?.lastUpdateAt,ee())),re=nt(),ie=O(()=>E.value===`running`?ot(o.entry?.runningSince,ee(),re.value):null),ae=O(()=>({path:`/project-agents/manage`,query:{agent:o.agent.agentId,task:o.entry?.taskId??``}})),A=O(()=>lt(o.entry)),M=O(()=>B(o.agent.occupation)),P=O(()=>`is-${E.value}`),oe=O(()=>({coordinator:w(`agentProfiles.roles.projectManager`),hr:w(`agentProfiles.roles.hr`)})[o.agent.profile.agentType]??``);function ce(e,t,n){let r=w(e,n);return r===e?t:r}let le=O(()=>ce(`agentRedesign.membershipStatus`,`Member · ${T.value}`,{status:T.value})),F=O(()=>{let e={awaiting_recruitment:`Awaiting recruitment`,queued:`Queued`,running:`Running`,paused:`Paused`,awaiting_review:`Awaiting review`,blocked:`Blocked`,none:w(`agentProfiles.idle`),loading:`Loading work status`,unreported:`Partial status`,unavailable:`Unavailable`,ended:`Ended`}[E.value];return ce(`agentRedesign.workStatus.${E.value}`,e??`Work status unavailable`)}),fe=O(()=>o.pinPending?se(`saving`,`Saving Agent pin…`):o.pinned?se(`unpin`,`Unpin Agent`):se(`pin`,`Pin Agent`));function me(){s(`toggle-pin`,!o.pinned)}return(a,o)=>(e(),t(`article`,ut,[_(`div`,dt,[_(`span`,{class:y([`agent-portrait small agent-card-identity`,{"is-working":E.value===`running`}]),style:te([v(ue)(i.agent.agentId),{"--working-phase":v(l)}]),"aria-hidden":`true`,"data-card-portrait":``},[v(I)(i.agent.agentId)?(e(),t(`img`,{key:0,src:v(I)(i.agent.agentId),alt:``},null,8,ft)):(e(),t(g,{key:1},[f(C(i.agent.profile.occupationEmoji||c.value.slice(0,1)),1)],64))],6),_(`div`,pt,[n(v(j),{to:v(pe)(i.spaceId,i.agent.agentId),"aria-label":`${c.value} · ${v(w)(`agentProfiles.profile`)}`},{default:m(()=>[f(C(c.value),1)]),_:1},8,[`to`,`aria-label`]),i.agent.employeeNumber?(e(),t(`span`,mt,`FLA `+C(i.agent.employeeNumber),1)):d(``,!0),oe.value?(e(),t(`span`,ht,C(oe.value),1)):d(``,!0),M.value.length?(e(),t(`span`,{key:2,class:`agent-card-occupation`,"data-occupation":``,title:v(w)(`agentRedesign.occupation.title`)},C(M.value.join(` · `)),9,gt)):d(``,!0),n(be,{"agent-id":i.agent.agentId},null,8,[`agent-id`])]),i.agent.profile.status===`active`?d(``,!0):(e(),t(`span`,{key:0,class:y([`ui-badge agent-card-status agent-card-membership-status`,S.value]),"data-membership-status":i.agent.profile.status},C(le.value),11,_t)),E.value!==`ended`&&(i.agent.profile.status===`active`||![`none`,`loading`].includes(E.value))?(e(),t(`span`,{key:1,class:y([`agent-card-work-status`,P.value]),"data-work-status":E.value,"aria-label":`${v(w)(`agentRedesign.workStatus.label`)} · ${F.value}`},[_(`span`,yt,C(F.value),1)],10,vt)):d(``,!0),_(`button`,{class:`agent-card-pin quiet-button`,"data-agent-pin-toggle":``,type:`button`,"aria-label":`${fe.value} · ${c.value}`,"aria-pressed":!!i.pinned,title:fe.value,disabled:i.pinPending,onClick:b(me,[`stop`])},[i.pinPending?(e(),D(N,{key:0,variant:`inline`,label:fe.value},null,8,[`label`])):(e(),D(Qe,{key:1,filled:i.pinned},null,8,[`filled`]))],8,bt)]),i.entry?.taskId?(e(),t(`p`,xt,[_(`span`,St,C(v(w)(`agentRedesign.workbench.current`)),1),n(v(j),{class:y([`agent-card-current-task`,{"is-unloaded":!i.entry.title}]),to:ae.value},{default:m(()=>[f(C(ne.value),1)]),_:1},8,[`to`,`class`]),E.value===`running`?(e(),t(`span`,{key:0,class:`agent-card-last-update`,title:i.entry.runningSince??void 0,"data-running-since":``},C(ie.value?v(w)(`agentRedesign.workbench.runningFor`,{duration:ie.value}):v(w)(`agentRedesign.workbench.runningForUnknown`)),9,Ct)):(e(),t(`span`,{key:1,class:`agent-card-last-update`,title:i.entry.lastUpdateAt??void 0,"data-last-update":``},C(k.value?v(w)(`agentRedesign.workbench.lastUpdate`,{time:k.value}):v(w)(`agentRedesign.workbench.lastUpdateUnknown`)),9,wt))])):d(``,!0),A.value?(e(),t(`p`,{key:1,class:y([`agent-card-status-detail`,P.value]),title:A.value,"data-status-detail":``},C(A.value),11,Tt)):d(``,!0),_(`p`,{class:`agent-card-responsibility`,"data-agent-summary":``,title:v(w)(`agentRedesign.workbench.responsibility`)},C(i.agent.profile.responsibility),9,Et),x.value.length?(e(),t(`div`,Dt,[(e(!0),t(g,null,r(x.value,n=>(e(),t(`span`,{key:n},C(n),1))),128))])):d(``,!0),_(`div`,Ot,[_(`div`,kt,[p.value.length?(e(),t(`div`,At,[(e(!0),t(g,null,r(p.value,n=>(e(),t(`span`,{key:n,class:`ui-badge agent-card-project-badge`,title:n},C(n),9,jt))),128)),h.value?(e(),t(`span`,Mt,` +`+C(h.value),1)):d(``,!0)])):i.managesAllProjects?(e(),t(`span`,Nt,C(v(w)(`agentProfiles.allProjects`)),1)):(e(),t(`span`,Pt,C(v(w)(`agentProfiles.noProject`)),1))]),n(v(j),{class:`agent-directory-open`,to:v(pe)(i.spaceId,i.agent.agentId),"aria-label":`${c.value} · ${v(w)(`agentProfiles.profile`)}`},{default:m(()=>[f(C(v(w)(`agentProfiles.profile`))+` → `,1)]),_:1},8,[`to`,`aria-label`])])]))}}),[[`__scopeId`,`data-v-310201de`]]),Lt=new Map,Rt=()=>({agents:[],phase:`open`,cursor:null,complete:!1});function zt(e,t){let n=T([]),r=T(!1),i=T(``),o=T(!1),s=Rt(),c=``,l=0;function u(e){s=e,n.value=e.agents,o.value=e.complete}function d(){l+=1,c=`${e.value}\n${t.value}`,r.value=!1,i.value=``;let n=Lt.get(c);return u(n??Rt()),n?Promise.resolve():f()}async function f(){let n=e.value;if(!n||r.value||s.complete)return;let a=l,o=s,d=new URLSearchParams({personalSpaceId:n,limit:`50`});t.value!==`all`&&d.set(`status`,t.value),o.phase===`open`&&d.set(`work`,`open`),o.cursor&&d.set(`cursor`,o.cursor),r.value=!0,i.value=``;let p=!1;try{let e=await M(`/api/project-agent-pages?${d}`);if(a!==l)return;let t=me(e),r=typeof t.nextCursor==`string`&&t.nextCursor?t.nextCursor:null,i=t.complete===!0;if(!i&&!r)throw Error(w(`agentProfiles.pageBroken`));let s=new Set(o.agents.map(e=>e.agentId)),f=he(e,n).filter(e=>s.has(e.agentId)?!1:(s.add(e.agentId),!0)),m={agents:[...o.agents,...f],phase:i?`all`:o.phase,cursor:i?null:r,complete:i&&o.phase===`all`};Lt.set(c,m),u(m),p=o.phase===`open`&&i&&m.agents.length<50}catch(e){a===l&&(i.value=e instanceof Error?e.message:w(`agentProfiles.loadError`))}finally{a===l&&(r.value=!1)}p&&a===l&&await f()}function p(){return Lt.delete(c),d()}return a([e,t],d,{immediate:!0}),{agents:n,loading:r,error:i,complete:o,loadMore:f,reload:p}}var Bt={running:0,awaiting_review:1,blocked:2,paused:3,queued:4,awaiting_recruitment:5,loading:6,unreported:6,unavailable:6,none:7,ended:8},Vt=new Set([`blocked`,`awaiting_review`,`paused`]);function Ht(e){return W.includes(e)}function Ut(e,t){let n={};for(let r of U(e,t))n[r.taskId]={taskId:r.taskId,title:r.title,updatedAt:r.updatedAt??null,participantUpdatedAt:Object.fromEntries(r.participants.map(e=>[e.agentId,e.updatedAt??null])),summary:r.resultSummary?.trim()||null};return n}function Wt(e,t){return e?e.status:t===`loading`?`loading`:t===`error`?`unavailable`:t===`incomplete`?`unreported`:`none`}function Gt(e){return e===`idle`?`none`:e===`ended`?`ended`:Ht(e)?e:`unreported`}function Kt(e,t){let n=typeof e.workStatus==`string`,r=n?Gt(e.workStatus):Wt(t.summary,t.summaryState),i=Ht(r)?n?e.currentTaskId??null:t.summary?.taskId??null:null,a=i?t.tasks?.[i]:void 0,o=a?.title??(i&&t.summary?.taskId===i?t.summary.title:null),s=a?a.participantUpdatedAt[e.agentId]??a.updatedAt:null;return{status:r,source:n?`roster`:t.summary?`tasks`:`unknown`,taskId:i,title:o,lastUpdateAt:s,reason:Vt.has(r)?a?.summary??null:null,runningSince:n&&r===`running`?e.currentTaskRunningSince??null:null}}function qt(e){let t=e?Date.parse(e):NaN;return Number.isNaN(t)?null:t}function Jt(e,t){let n=Bt[e.entry.status]-Bt[t.entry.status];if(n)return n;let r=qt(e.entry.lastUpdateAt),i=qt(t.entry.lastUpdateAt);return r===i?e.name.localeCompare(t.name):r===null?1:i===null?-1:i-r}function Yt(e){let t=T({}),n=T({}),r=T(!1),i=T(``),o=T(`idle`),s=new Map,c=0;async function l(){let a=++c,l=e.value;if(i.value=``,!l){t.value={},n.value={},r.value=!1,o.value=`idle`;return}let u=s.get(l);u?(t.value=u.summaries,n.value=u.tasks):(Object.keys(t.value).length||Object.keys(n.value).length)&&(t.value={},n.value={}),r.value=!0,o.value=`loading`;try{let r=await M(`/api/project-agent-tasks?${new URLSearchParams({personalSpaceId:l,limit:`200`})}`);if(a!==c||e.value!==l)return;let i={summaries:H(r,l),tasks:Ut(r,l)};s.set(l,i),t.value=i.summaries,n.value=i.tasks,o.value=V(r)?`ready`:`incomplete`}catch(t){if(a!==c||e.value!==l)return;i.value=t instanceof Error?t.message:w(`agentProfiles.loadError`),o.value=`error`}finally{a===c&&e.value===l&&(r.value=!1)}}return a(e,l,{immediate:!0}),{summaries:t,tasks:n,loading:r,error:i,state:o,load:l}}function Xt(e,t,n){let r=T([]);a(n,()=>{r.value=[]}),a([e,t],([e,t])=>{t&&e.length&&!r.value.length&&(r.value=[...e])},{immediate:!0});let i=O(()=>{if(!r.value.length)return e.value;let t=new Map(r.value.map((e,t)=>[e,t]));return[...e.value.filter(e=>t.has(e)).sort((e,n)=>t.get(e)-t.get(n)),...e.value.filter(e=>!t.has(e))]});function o(){r.value=[...e.value]}return{order:i,apply:o}}var Zt=[`src`],Qt=P(c({__name:`EmployeeWorkbenchLinks`,props:{personalSpaceId:{}},setup(n){let i=n;a(()=>i.personalSpaceId,e=>{G(e===`current`?``:e)},{immediate:!0});let o=O(()=>ve.value.filter(e=>e.agentId&&e.agentStatus===`active`&&(e.runtime||e.workbench?.kind===`native`)));return(n,i)=>(e(!0),t(g,null,r(o.value,n=>(e(),D(v(j),{key:n.id,class:`ui-button employee-workbench-link`,to:`/employees/${encodeURIComponent(n.id)}`,title:v(w)(`agentProfiles.workbench`)},{default:m(()=>[v(I)(n.id)?(e(),t(`img`,{key:0,src:v(I)(n.id),alt:``,"aria-hidden":`true`},null,8,Zt)):d(``,!0),f(` `+C(n.name)+` · `+C(n.role),1)]),_:2},1032,[`to`,`title`]))),128))}}),[[`__scopeId`,`data-v-4906fde1`]]),$t=[`aria-label`],en={class:`ui-toolbar agents-directory-heading`},tn={key:0,class:`agents-directory-count`},nn={key:1,class:`agents-directory-count`,"aria-hidden":`true`},rn={class:`agent-profile-actions`},an={key:0,class:`agent-directory-pin-error`,role:`alert`},on={key:2,class:`agent-directory-work-error`,role:`status`},sn={class:`ui-toolbar agents-directory-filters`},cn={key:0,class:`agents-directory-search`},ln={class:`ui-sr-only`},un=[`placeholder`],dn={key:4,role:`alert`,class:`ui-card ui-empty agent-profile-empty`},fn={key:5,class:`agents-directory-partial`,role:`status`},pn={key:6,class:`ui-card ui-empty agent-profile-empty`},mn={key:7,class:`agents-directory-reorder`,role:`status`},hn={key:8,class:`agents-directory-grid`},gn={key:9,class:`agents-directory-projects`},_n={class:`agents-directory-grid`},vn={key:1,class:`agents-directory-more-error`,role:`alert`},yn=P(c({__name:`AgentsDirectoryPage`,setup(i){let o=re(),c=ae(),p=ie(),y=O(()=>o.activePersonalSpace?.id??``),b=oe(y),te=b.agentIds,ne=b.savingAgentId,A=b.error,j=O(()=>se(`retry`,`Retry`)),{summaries:M,tasks:P,loading:I,error:ue,state:me,load:he}=Yt(y),R=je(c.query),z=T(R.search),B=T(R.status),V=T(R.projects),H=T(R.view),{agents:U,loading:W,error:G,complete:K,loadMore:be,reload:Ce}=zt(y,B),we=O(()=>W.value&&!U.value.length),q=O(()=>!K.value&&U.value.length>0),Oe=O(()=>!!(z.value.trim()||V.value.length)),ke=T({}),J=T(null),Y=T(null),Ae=Ee(Y,J),Pe=T(!1),Ie=O(()=>ve.value.some(e=>!e.fixed)),Le=e=>ve.value.some(t=>t.agentId===e&&t.management?.mode===`all`),Re=O(()=>(o.state?.personalProjects??[]).filter(e=>e.personal_space_id===y.value)),X=O(()=>Re.value.filter(e=>_e(e))),ze=O(()=>new Map(X.value.map(e=>[e.project_id,e]))),Be=O(()=>X.value.map(e=>({value:e.project_id,label:e.profile.name}))),Ve=O(()=>Object.fromEntries(Re.value.map(e=>[e.project_id,ge(e)]))),He=O(()=>[{value:`all`,label:w(`agentProfiles.allStatus`)},...[`active`,`inactive`,`archived`].map(e=>({value:e,label:w(`projectAgents.status.${e}`)}))]),Ue=e=>(B.value===`all`||e.profile.status===B.value)&&(!V.value.length||de(e).some(e=>V.value.includes(e)))&&fe([L(e),e.employeeNumber?`FLA ${e.employeeNumber}`:``,e.profile.responsibility,...e.profile.capabilities,...de(e).map(e=>Ve.value[e]||e)].join(` `),z.value),Z=O(()=>we.value||I.value||o.runtimeStatus===`loading`),We=O(()=>Object.fromEntries(U.value.map(e=>[e.agentId,Kt(e,{summary:M.value[e.agentId],summaryState:me.value,tasks:P.value})]))),Ge=O(()=>new Map(U.value.map(e=>[e.agentId,e]))),Ke=O(()=>U.value.map(e=>({agent:e,entry:We.value[e.agentId],name:L(e)})).sort(Jt).map(e=>e.agent.agentId)),qe=Xt(Ke,O(()=>!Z.value),y),Je=e=>e.map(e=>Ge.value.get(e)).filter(e=>e&&Ue(e)),Xe=T(`recent`),Ze=O(()=>[{value:`recent`,label:w(`agentProfiles.sort.recent`)},{value:`name`,label:w(`agentProfiles.sort.name`)}]),Q=O(()=>{let e=Je(qe.order.value);return Xe.value===`name`?[...e].sort((e,t)=>L(e).localeCompare(L(t),ee())):e}),$=T(!1),Qe=T(null);async function $e(){$.value=!0,await l(),Qe.value?.focus()}let et=O(()=>[{value:`agents`,label:w(`agentRedesign.projectView.agents`)},{value:`projects`,label:w(`agentRedesign.projectView.projects`)}]),tt=O(()=>Fe(Q.value.map(e=>e.agentId),e=>de(Ge.value.get(e)),e=>We.value[e]?.status,X.value.map(e=>e.project_id),V.value,{includeEmpty:!z.value.trim()}).map(e=>({...e,key:e.projectId,name:Ve.value[e.projectId]||e.projectId,purpose:ze.value.get(e.projectId)?.profile.purpose??null,agents:e.agentIds.map(e=>Ge.value.get(e))}))),nt=e=>({agent:e,spaceId:y.value,projectNames:Ve.value,managesAllProjects:Le(e.agentId),entry:We.value[e.agentId],pinned:te.value.includes(e.agentId),pinPending:ne.value===e.agentId}),rt=O(()=>Je(Ke.value).some((e,t)=>e.agentId!==Q.value[t]?.agentId));async function it(e,t){await b.setPinned(e,t)}u(()=>{o.runtimeStatus===`idle`&&o.refresh()});let at=()=>({search:z.value,projects:V.value,status:B.value,view:H.value});a(()=>c.query,e=>{let t=je(e);z.value=t.search,V.value=t.projects,B.value=t.status,H.value=t.view}),a([z,B,V,H],()=>{Ne(je(c.query),at())||p.replace({query:Me(c.query,at())})},{deep:!0}),De(J,`agents-directory`,O(()=>Q.value.length>0)),a([y,()=>c.query.agent],([e,t])=>{if(e&&typeof t==`string`){let{agent:n,...r}=c.query;p.replace({path:typeof c.query.task==`string`?`/project-agents/manage`:pe(e,t),query:typeof c.query.task==`string`?c.query:r})}},{immediate:!0}),a(y,(e,t)=>{t&&(z.value=``,V.value=[],B.value=`all`,ke.value={})});async function ot(e){Pe.value=!1,await p.push(pe(y.value,e.agent.agentId))}a([Ae,W,G,K],()=>{Ae.value&&!W.value&&!G.value&&!K.value&&be()});async function st(){o.state||await o.refresh(),await Promise.allSettled([Ce(),he()])}function ct(e){o.rememberPersonalProject(e)}return(i,a)=>(e(),t(`section`,{ref_key:`scroller`,ref:J,class:`view agents-directory`,"aria-label":v(w)(`agentProfiles.title`)},[_(`header`,en,[!Z.value||v(U).length?(e(),t(`p`,tn,C(v(w)(q.value?`agentProfiles.membersLoaded`:`agentProfiles.members`,{count:v(U).length})),1)):(e(),t(`span`,nn,`\xA0`)),_(`div`,rn,[Z.value&&v(U).length?(e(),D(N,{key:0,variant:`inline`,label:v(w)(`agentRedesign.refreshing`)},null,8,[`label`])):d(``,!0),n(Qt,{"personal-space-id":y.value||`current`},null,8,[`personal-space-id`]),Ie.value?(e(),D(k,{key:1,size:`sm`,variant:`primary`,disabled:!y.value,onClick:a[0]||=e=>Pe.value=!0},{default:m(()=>[f(C(v(w)(`employees.recruit`)),1)]),_:1},8,[`disabled`])):d(``,!0)])]),v(A)?(e(),t(`p`,an,[_(`span`,null,C(v(A)),1),n(k,{size:`sm`,variant:`ghost`,onClick:a[1]||=e=>v(b).load({force:!0})},{default:m(()=>[f(C(j.value),1)]),_:1})])):d(``,!0),!Z.value&&!v(G)&&v(o).runtimeStatus===`ready`&&!X.value.length?(e(),D(Se,{key:1,"personal-space-id":y.value},null,8,[`personal-space-id`])):d(``,!0),v(ue)?(e(),t(`p`,on,[_(`span`,null,C(v(w)(`agentRedesign.workStatus.refreshError`)),1),n(k,{size:`sm`,variant:`ghost`,onClick:v(he)},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1},8,[`onClick`])])):d(``,!0),_(`div`,sn,[n(F,{modelValue:V.value,"onUpdate:modelValue":a[2]||=e=>V.value=e,class:`agents-directory-select`,multiple:``,options:Be.value,label:v(w)(`employees.filterLabel`),placeholder:v(w)(`employees.allProjectsFilter`)},null,8,[`modelValue`,`options`,`label`,`placeholder`]),n(F,{modelValue:B.value,"onUpdate:modelValue":a[3]||=e=>B.value=e,class:`agents-directory-select`,options:He.value,label:v(w)(`projectAgents.fields.status`)},null,8,[`modelValue`,`options`,`label`]),n(F,{modelValue:Xe.value,"onUpdate:modelValue":a[4]||=e=>Xe.value=e,class:`agents-directory-select`,"data-directory-sort":``,options:Ze.value,label:v(w)(`agentProfiles.sort.label`)},null,8,[`modelValue`,`options`,`label`]),n(le,{modelValue:H.value,"onUpdate:modelValue":a[5]||=e=>H.value=e,class:`agents-directory-view`,"data-directory-view":``,options:et.value,label:v(w)(`agentRedesign.projectView.label`)},null,8,[`modelValue`,`options`,`label`]),$.value||z.value?(e(),t(`label`,cn,[_(`span`,ln,C(v(w)(`agentProfiles.search`)),1),h(_(`input`,{ref_key:`searchInput`,ref:Qe,"onUpdate:modelValue":a[6]||=e=>z.value=e,type:`search`,maxlength:`160`,placeholder:v(w)(`agentProfiles.search`),onFocus:a[7]||=e=>$.value=!0,onBlur:a[8]||=e=>$.value=!1,onKeydown:a[9]||=x(e=>{z.value=``,$.value=!1},[`esc`])},null,40,un),[[E,z.value]])])):(e(),D(ce,{key:1,icon:`search`,label:v(w)(`agentProfiles.search`),"data-directory-search":``,onClick:$e},null,8,[`label`]))]),Z.value&&!v(U).length?(e(),D(N,{key:3,label:v(w)(`agentProfiles.loading`)},null,8,[`label`])):d(``,!0),v(G)&&!v(U).length||v(o).runtimeStatus===`error`?h((e(),t(`div`,dn,[_(`p`,null,C(!v(U).length&&v(G)||v(w)(`agentProfiles.loadError`)),1),n(k,{size:`sm`,variant:`ghost`,onClick:st},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1})],512)),[[S,!Z.value||v(U).length===0]]):d(``,!0),q.value?(e(),t(`p`,fn,C(v(w)(Oe.value?`agentProfiles.partialFilter`:`agentProfiles.partialRoster`,{count:v(U).length})),1)):d(``,!0),!Z.value&&v(K)&&!Q.value.length&&H.value===`agents`&&!v(G)&&v(o).runtimeStatus!==`error`?(e(),t(`p`,pn,C(v(w)(v(U).length?`agentProfiles.noMatch`:`agentProfiles.noAgents`)),1)):d(``,!0),rt.value&&!Z.value?(e(),t(`p`,mn,[_(`span`,null,C(v(w)(`agentRedesign.workbench.reorderHint`)),1),n(k,{size:`sm`,variant:`ghost`,"data-workbench-reorder":``,onClick:a[10]||=e=>v(qe).apply()},{default:m(()=>[f(C(v(w)(`agentRedesign.workbench.reorder`)),1)]),_:1})])):d(``,!0),Q.value.length&&H.value===`agents`?(e(),t(`ul`,hn,[(e(!0),t(g,null,r(Q.value,r=>(e(),t(`li`,{key:r.agentId},[n(It,s({ref_for:!0},nt(r),{onTogglePin:e=>it(r.agentId,e)}),null,16,[`onTogglePin`])]))),128))])):H.value===`projects`?(e(),t(`div`,gn,[n(ye,{"space-id":y.value,"formal-projects":X.value,"existing-project-ids":Re.value.map(e=>e.project_id),onProjectCreated:ct},null,8,[`space-id`,`formal-projects`,`existing-project-ids`]),(e(!0),t(g,null,r(tt.value,i=>(e(),D(Ye,{key:i.key,expanded:ke.value[i.key],"onUpdate:expanded":e=>ke.value[i.key]=e,"space-id":y.value,"project-id":i.projectId,name:i.name,purpose:i.purpose,agents:i.agents,count:i.agents.length,"running-count":i.runningCount,"unknown-count":i.unknownCount},{default:m(()=>[_(`ul`,_n,[(e(!0),t(g,null,r(i.agents,r=>(e(),t(`li`,{key:r.agentId},[n(It,s({ref_for:!0},nt(r),{onTogglePin:e=>it(r.agentId,e)}),null,16,[`onTogglePin`])]))),128))])]),_:2},1032,[`expanded`,`onUpdate:expanded`,`space-id`,`project-id`,`name`,`purpose`,`agents`,`count`,`running-count`,`unknown-count`]))),128))])):d(``,!0),v(U).length&&!v(K)?(e(),t(`div`,{key:10,ref_key:`rosterEnd`,ref:Y,class:`agents-directory-more`},[v(W)?(e(),D(N,{key:0,variant:`inline`,label:v(w)(`agentProfiles.loadingMore`)},null,8,[`label`])):v(G)?(e(),t(`p`,vn,[_(`span`,null,C(v(w)(`agentProfiles.loadMoreError`))+` `+C(v(G)),1),n(k,{size:`sm`,variant:`ghost`,"data-roster-retry":``,onClick:v(be)},{default:m(()=>[f(C(v(w)(`agentProfiles.retry`)),1)]),_:1},8,[`onClick`])])):(e(),D(k,{key:2,size:`sm`,variant:`ghost`,"data-roster-more":``,onClick:v(be)},{default:m(()=>[f(C(v(w)(`agentProfiles.loadMore`)),1)]),_:1},8,[`onClick`]))],512)):d(``,!0),n(Te,{scroller:J.value},null,8,[`scroller`]),n(xe,{open:Pe.value,"personal-space-id":y.value,projects:X.value,"default-project-ids":V.value??[],onClose:a[11]||=e=>Pe.value=!1,onRecruited:ot},null,8,[`open`,`personal-space-id`,`projects`,`default-project-ids`])],8,$t))}}),[[`__scopeId`,`data-v-59b90cb4`]]);export{yn as default};