fuli-context 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +4 -0
  2. package/README.zh-CN.md +4 -1
  3. package/dist/web/assets/{AboutPage-BjMmpwJB.js → AboutPage-fBq5VFoQ.js} +1 -1
  4. package/dist/web/assets/AgentHand-CMZk5GjY.js +1 -0
  5. package/dist/web/assets/AgentName-Cydd0UI4.css +1 -0
  6. package/dist/web/assets/AgentName-DRZHAIB2.js +1 -0
  7. package/dist/web/assets/AgentProfilePage-BPQEfMhB.js +1 -0
  8. package/dist/web/assets/AgentsDirectoryPage-CKZfrcuD.js +1 -0
  9. package/dist/web/assets/{ConnectionsPage-BKGxFDos.js → ConnectionsPage-COb56qnk.js} +1 -1
  10. package/dist/web/assets/EmployeeRecruitDialog-BLTpjCcK.js +1 -0
  11. package/dist/web/assets/EmployeeWorkbenchPage-CQwZnTA0.css +1 -0
  12. package/dist/web/assets/EmployeeWorkbenchPage-HUd-gne2.js +3 -0
  13. package/dist/web/assets/{GrowthLoading-WXCj8b0r.js → GrowthLoading-Bu_kH-I8.js} +1 -1
  14. package/dist/web/assets/{KnowledgeEditDialog-Bkie08ZA.js → KnowledgeEditDialog-BTwXXRCD.js} +1 -1
  15. package/dist/web/assets/{KnowledgeInspector-Cez-Z_95.js → KnowledgeInspector-Ct5hl2--.js} +1 -1
  16. package/dist/web/assets/{KnowledgeOrganizerPage-BYmTPA_8.js → KnowledgeOrganizerPage-DMC8Hh43.js} +1 -1
  17. package/dist/web/assets/KnowledgePage-uXW1Eovz.js +1 -0
  18. package/dist/web/assets/{KnowledgeWorkspace-DKij2_B4.js → KnowledgeWorkspace-DmHIc0jb.js} +1 -1
  19. package/dist/web/assets/{NotFoundPage-HGV-q-bh.js → NotFoundPage-C0yOR9T9.js} +1 -1
  20. package/dist/web/assets/{OverviewPage-DE29_F_Y.js → OverviewPage-BreX_kb4.js} +1 -1
  21. package/dist/web/assets/{PersonalProfilePage-B95DFc7x.js → PersonalProfilePage-CX1a6_E3.js} +1 -1
  22. package/dist/web/assets/PersonalProjectsPage-Br1S8ETM.js +1 -0
  23. package/dist/web/assets/ProjectAgentsPage-CA04h1Uf.js +13 -0
  24. package/dist/web/assets/ProjectAgentsPage-CZWWV4Kw.css +1 -0
  25. package/dist/web/assets/{ProjectScopePicker-Cu5PdxF6.js → ProjectScopePicker-DVHfXX1f.js} +1 -1
  26. package/dist/web/assets/{PublicProjectsPage-BY4B3_t3.js → PublicProjectsPage-CtctKml1.js} +1 -1
  27. package/dist/web/assets/{ReviewPage-C9vCesNu.js → ReviewPage-DUqaK-do.js} +1 -1
  28. package/dist/web/assets/{SearchableSelect-214TvfYg.js → SearchableSelect-BZtyYmZN.js} +1 -1
  29. package/dist/web/assets/{SettingsPage-D9TnzcFc.js → SettingsPage-CB4ymLr8.js} +1 -1
  30. package/dist/web/assets/{SharedJefaReportPage-CdSGI_OE.js → SharedJefaReportPage-CbFtrDCY.js} +1 -1
  31. package/dist/web/assets/{WritingTastePage-CUE1dU8f.js → WritingTastePage-B7lSzs2z.js} +1 -1
  32. package/dist/web/assets/agent-profile-CdKOh5xw.css +1 -0
  33. package/dist/web/assets/agent-profile.css_vue_type_style_index_0_src_true_lang-C22UdfU0.js +1 -0
  34. package/dist/web/assets/catalog-DU4Kfd-N.js +1 -0
  35. package/dist/web/assets/{client-Bl4oiW3E.js → client-CEHkJJ-5.js} +1 -1
  36. package/dist/web/assets/{console-BAIVNC-N.js → console--CZxc3PW.js} +1 -1
  37. package/dist/web/assets/{conversation-launcher-settings-DpRI_Jp2.js → conversation-launcher-settings-Co1RlTFH.js} +1 -1
  38. package/dist/web/assets/{i18n-CVFADb_M.js → i18n-BtOOoyJd.js} +3 -3
  39. package/dist/web/assets/{identity-Dt0WZgqo.js → identity-CsowvtIm.js} +1 -1
  40. package/dist/web/assets/index-7X3LGByg.js +2 -0
  41. package/dist/web/assets/index-CWMqDq8g.css +1 -0
  42. package/dist/web/assets/{model-B8sOxih0.js → model-CGpllrds.js} +1 -1
  43. package/dist/web/assets/{personal-profile-graph-aAqex7ty.js → personal-profile-graph-BNTG4PSY.js} +1 -1
  44. package/dist/web/assets/profile-model-BQO4zNs9.js +1 -0
  45. package/dist/web/assets/{shared-report-BQD6l_cS.js → shared-report-BFUJqqQe.js} +1 -1
  46. package/dist/web/assets/task-evidence-BUu7yYIn.js +1 -0
  47. package/dist/web/assets/{useApi-CROJJdhE-CuJ16v2S.js → useApi-CROJJdhE-raNlHRDl.js} +1 -1
  48. package/dist/web/assets/{useModalDialog-Ddv2XJQi.js → useModalDialog-CroGk2Cs.js} +1 -1
  49. package/dist/web/assets/{vue-router-C8KuEZ6a.js → vue-router-JFYBLXB1.js} +1 -1
  50. package/dist/web/index.html +12 -10
  51. package/docs/agent-conversations-and-collaboration.md +115 -0
  52. package/docs/agent-interface-architecture.md +17 -0
  53. package/docs/employee-agents.md +14 -1
  54. package/docs/project-agent-memory.md +34 -1
  55. package/graph-provider/fuli_graph/agent_conversation_models.py +72 -0
  56. package/graph-provider/fuli_graph/agent_conversation_routes.py +47 -0
  57. package/graph-provider/fuli_graph/agent_loan_models.py +28 -0
  58. package/graph-provider/fuli_graph/agent_quality_policy.py +151 -0
  59. package/graph-provider/fuli_graph/agent_verification_models.py +22 -0
  60. package/graph-provider/fuli_graph/conversation_context.py +30 -0
  61. package/graph-provider/fuli_graph/knowledge_search.py +8 -16
  62. package/graph-provider/fuli_graph/project_agent_executor_models.py +3 -0
  63. package/graph-provider/fuli_graph/project_agent_memory_routes.py +2 -0
  64. package/graph-provider/fuli_graph/project_agent_models.py +10 -0
  65. package/graph-provider/fuli_graph/project_agent_routes.py +5 -1
  66. package/graph-provider/fuli_graph/project_agent_task_models.py +4 -0
  67. package/graph-provider/fuli_graph/runtime.py +14 -0
  68. package/graph-provider/fuli_graph/store.py +6 -0
  69. package/graph-provider/fuli_graph/store_agent_conversations.py +206 -0
  70. package/graph-provider/fuli_graph/store_agent_loans.py +146 -0
  71. package/graph-provider/fuli_graph/store_agent_verification.py +111 -0
  72. package/graph-provider/fuli_graph/store_project_agent_executors.py +2 -0
  73. package/graph-provider/fuli_graph/store_project_agent_task_activity.py +6 -0
  74. package/graph-provider/fuli_graph/store_project_agent_tasks.py +20 -8
  75. package/graph-provider/fuli_graph/store_task_contexts.py +9 -0
  76. package/graph-provider/fuli_graph/task_context_routes.py +7 -0
  77. package/graph-provider/pyproject.toml +1 -1
  78. package/npm-shrinkwrap.json +15 -15
  79. package/package.json +4 -3
  80. package/skills/capturing-session-knowledge/SKILL.md +20 -2
  81. package/skills/operating-fuli/SKILL.md +4 -0
  82. package/src/agent-tools/agent-collaboration-definitions.js +30 -0
  83. package/src/agent-tools/agent-conversation-definitions.js +21 -0
  84. package/src/agent-tools/employee-definitions.js +6 -5
  85. package/src/agent-tools/graph-definitions.js +19 -35
  86. package/src/agent-tools/graph-handlers.js +17 -1
  87. package/src/agent-tools/interface-catalog.js +2 -0
  88. package/src/agent-tools/project-agent-definitions.js +21 -0
  89. package/src/agent-tools/project-relation-definitions.js +36 -0
  90. package/src/agents/claude-code/conversation-transcript.js +20 -0
  91. package/src/agents/claude-code/lifecycle-hook.js +154 -0
  92. package/src/agents/claude-code/lifecycle-hooks.js +20 -0
  93. package/src/agents/codex/conversation-transcript.js +22 -0
  94. package/src/agents/codex/lifecycle-hook.js +47 -8
  95. package/src/agents/codex/lifecycle-hooks.js +6 -6
  96. package/src/agents/cursor/lifecycle-hook.js +5 -4
  97. package/src/app/agent-request-context.js +6 -1
  98. package/src/app/test-tools.js +26 -0
  99. package/src/conversations/sync-transcript.js +144 -0
  100. package/src/conversations/task-context-view.js +28 -0
  101. package/src/conversations/transcript-guard.js +54 -0
  102. package/src/conversations/transcript-reader.js +113 -0
  103. package/src/employees/service.js +8 -1
  104. package/src/graphiti/agent-collaboration.js +62 -0
  105. package/src/graphiti/agent-conversations.js +75 -0
  106. package/src/graphiti/agent-knowledge-workflows.js +8 -2
  107. package/src/graphiti/project-agent-control-plane.js +22 -2
  108. package/src/graphiti/project-agent-mapping.js +19 -1
  109. package/src/graphiti/project-agent-task-entry.js +11 -1
  110. package/src/graphiti/project-agent-workflows.js +11 -1
  111. package/src/graphiti/project-path-context.js +17 -10
  112. package/src/graphiti/provider-client.js +17 -0
  113. package/src/graphiti/verification-preference.js +24 -0
  114. package/src/http/graph-api-router.js +17 -0
  115. package/src/mcp/create-mcp-server.js +19 -5
  116. package/src/mcp/employee-tool-catalog.js +22 -0
  117. package/src/mcp/session-id.js +4 -0
  118. package/src/mcp/tool-annotations.js +8 -1
  119. package/src/mcp/tool-result.js +3 -1
  120. package/src/setup/agent-installation-status.js +1 -0
  121. package/src/setup/claude-code-config.js +13 -19
  122. package/dist/web/assets/AgentHand-BfLYPGjg.js +0 -1
  123. package/dist/web/assets/EmployeeRecruitDialog-D-W043v4.js +0 -1
  124. package/dist/web/assets/EmployeeWorkbenchPage-Cz7y-IFD.css +0 -1
  125. package/dist/web/assets/EmployeeWorkbenchPage-HHQPxdqI.js +0 -3
  126. package/dist/web/assets/KnowledgePage-Ck7tIBDn.js +0 -1
  127. package/dist/web/assets/PersonalProjectsPage-Bt7tFF5Z.js +0 -1
  128. package/dist/web/assets/ProjectAgentsPage-BioDR9OW.css +0 -1
  129. package/dist/web/assets/ProjectAgentsPage-CiiPNe_G.js +0 -12
  130. package/dist/web/assets/index-BUMq5zNh.js +0 -2
  131. package/dist/web/assets/index-C0ci8dnU.css +0 -1
  132. package/src/mcp/task-context-registry.js +0 -165
@@ -1 +0,0 @@
1
- .bole-panel[data-v-b9fe7dc9]{--bole-ink:#293d31;--bole-muted:#596b60;--bole-line:#dde5df;min-width:0;min-height:0;color:var(--bole-ink);background:#fafbf9;flex-direction:column;flex:1;display:flex;overflow:hidden}.bole-header[data-v-b9fe7dc9],.bole-controls[data-v-b9fe7dc9]{flex:none;padding-inline:24px}.bole-header[data-v-b9fe7dc9]{border-bottom:1px solid var(--bole-line);background:#fff;flex-wrap:wrap;align-items:center;gap:4px 16px;padding-block:8px;display:flex}.bole-heading[data-v-b9fe7dc9]{flex-wrap:wrap;align-items:center;gap:4px 24px;display:flex}.bole-heading h2[data-v-b9fe7dc9]{margin:0;font-size:20px;font-weight:650;line-height:1.3}.bole-refresh[data-v-b9fe7dc9],.bole-alert button[data-v-b9fe7dc9]{min-height:36px;color:var(--bole-muted);background:0 0;border:0;border-radius:8px;padding:8px 12px;font-size:13px}.bole-refresh[data-v-b9fe7dc9]:hover:not(:disabled),.bole-alert button[data-v-b9fe7dc9]:hover{background:#e9efea}.bole-refresh[data-v-b9fe7dc9]:disabled{cursor:progress}.bole-summary[data-v-b9fe7dc9]{flex-wrap:wrap;gap:8px 16px;margin:0 0 0 auto;display:flex}.bole-summary div[data-v-b9fe7dc9]{align-items:baseline;gap:8px;display:flex}.bole-summary dt[data-v-b9fe7dc9]{color:var(--bole-muted);font-size:12px}.bole-summary dd[data-v-b9fe7dc9]{font-variant-numeric:tabular-nums;margin:0;font-size:15px;font-weight:650}.bole-controls[data-v-b9fe7dc9]{z-index:2;border-bottom:1px solid var(--bole-line);background:#fff;padding-bottom:12px}.bole-views[data-v-b9fe7dc9]{flex-wrap:wrap;gap:20px;display:flex}.bole-views button[data-v-b9fe7dc9]{min-height:44px;color:var(--bole-muted);background:0 0;border:0;align-items:center;gap:8px;padding:10px 0;font-size:14px;display:flex;position:relative}.bole-views button[aria-pressed=true][data-v-b9fe7dc9]{color:#214b33;font-weight:650}.bole-views button[aria-pressed=true][data-v-b9fe7dc9]:after{content:"";background:#315c43;height:2px;position:absolute;inset:auto 0 -1px}.bole-views span[data-v-b9fe7dc9]{color:var(--bole-muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.bole-filters[data-v-b9fe7dc9]{flex-wrap:wrap;align-items:center;gap:12px;padding-top:12px;display:flex}.bole-search[data-v-b9fe7dc9]{flex:220px;min-width:0}.bole-search[data-v-b9fe7dc9],.bole-filters select[data-v-b9fe7dc9]{min-height:44px;color:var(--bole-ink);background:#fff;border:1px solid #bdcbbf;border-radius:8px;padding:10px 12px;font-size:13px}.bole-search[data-v-b9fe7dc9]::placeholder{color:var(--bole-muted)}.bole-filters .project-scope-picker[data-v-b9fe7dc9]{flex:0 260px}.bole-role-filters[data-v-b9fe7dc9]{flex-wrap:wrap;gap:4px 8px;margin-top:12px;display:flex}.bole-role-filters button[data-v-b9fe7dc9]{min-height:36px;color:var(--bole-muted);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:12px}.bole-role-filters button[aria-pressed=true][data-v-b9fe7dc9]{color:#244d34;background:#e8f0e9;font-weight:600}.bole-role-filters button[data-v-b9fe7dc9]:hover{background:#edf2ed}.bole-role-filters span[data-v-b9fe7dc9]{font-variant-numeric:tabular-nums;margin-left:4px}.bole-role-filters .bole-clear[data-v-b9fe7dc9]{text-underline-offset:3px;margin-left:auto;text-decoration:underline}.bole-content[data-v-b9fe7dc9]{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:16px 24px 32px;overflow:auto}.bole-result-count[data-v-b9fe7dc9]{color:var(--bole-muted);align-self:center;font-size:12px}.bole-agent-list[data-v-b9fe7dc9]{border:1px solid var(--bole-line);background:#fff;border-radius:12px}.bole-table-heading[data-v-b9fe7dc9],.bole-agent-row[data-v-b9fe7dc9]{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,.8fr);gap:24px;padding:16px;display:grid}.bole-table-heading[data-v-b9fe7dc9]{color:var(--bole-muted);background:#f0f4f0;border-radius:12px 12px 0 0;padding-block:12px;font-size:12px}.bole-agent-row[data-v-b9fe7dc9]{border-top:1px solid var(--bole-line);align-items:center}.bole-agent-row[data-v-b9fe7dc9]:hover{background:#f8faf7}.bole-agent-row[data-v-b9fe7dc9]:last-child{border-radius:0 0 12px 12px}.bole-agent-identity[data-v-b9fe7dc9]{align-items:center;gap:12px;min-width:0;display:flex}.bole-agent-identity>div[data-v-b9fe7dc9]{min-width:0}.bole-agent-mark[data-v-b9fe7dc9]{background:#edf2ed;border-radius:10px;flex:0 0 36px;place-items:center;height:36px;font-size:18px;display:grid;overflow:hidden}.bole-agent-mark img[data-v-b9fe7dc9]{object-fit:cover;width:100%;height:100%}.bole-agent-identity strong[data-v-b9fe7dc9],.bole-recruitment-identity strong[data-v-b9fe7dc9]{overflow-wrap:anywhere;font-size:14px;font-weight:600;display:block}.bole-agent-identity small[data-v-b9fe7dc9],.bole-timeline small[data-v-b9fe7dc9]{color:var(--bole-muted);margin-top:4px;font-size:12px;line-height:1.5;display:block}.bole-agent-work p[data-v-b9fe7dc9]{overflow-wrap:anywhere;margin:6px 0 0;font-size:13px;line-height:1.6}.bole-agent-work .is-idle[data-v-b9fe7dc9]{color:var(--bole-muted);margin:0}.bole-status[data-v-b9fe7dc9]{color:#315b40;background:#edf4ee;border-radius:4px;padding:3px 6px;font-size:11px;display:inline-block}.bole-status[data-status=blocked][data-v-b9fe7dc9]{color:#893f2d;background:#faeae4}.bole-status[data-status=awaiting_review][data-v-b9fe7dc9]{color:#6f591f;background:#f4efd9}.bole-agent-projects[data-v-b9fe7dc9]{min-width:0;color:var(--bole-muted);font-size:12px;line-height:1.6}.bole-agent-projects span[data-v-b9fe7dc9]{overflow-wrap:anywhere;display:block}.bole-agent-projects summary[data-v-b9fe7dc9]{cursor:pointer;color:#315c43;width:fit-content;min-height:32px;padding-block:6px}.bole-timeline[data-v-b9fe7dc9]{border-top:1px solid var(--bole-line);margin:0;padding:0;list-style:none}.bole-timeline li[data-v-b9fe7dc9]{border-bottom:1px solid var(--bole-line);grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(120px,.6fr);gap:24px;padding:20px 0;display:grid}.bole-recruitment-reason p[data-v-b9fe7dc9]{overflow-wrap:anywhere;max-width:70ch;margin:0;font-size:13px;line-height:1.7}.bole-timeline time[data-v-b9fe7dc9]{color:var(--bole-muted);font-size:12px;line-height:1.6}.bole-empty[data-v-b9fe7dc9]{color:var(--bole-muted);text-align:center;padding:32px 16px;font-size:13px}.bole-alert[data-v-b9fe7dc9]{color:#7b4033;background:#fff1e9;flex:none;justify-content:space-between;align-items:center;gap:16px;padding:8px 24px;font-size:13px;display:flex}.bole-panel[data-v-b9fe7dc9] :is(button,input,select,summary):focus-visible,.bole-content[data-v-b9fe7dc9]:focus-visible{outline-offset:2px;outline:2px solid #356448}@media (width<=1100px){.bole-table-heading[data-v-b9fe7dc9],.bole-agent-row[data-v-b9fe7dc9]{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px}.bole-table-heading[data-v-b9fe7dc9]>:last-child{display:none}.bole-agent-projects[data-v-b9fe7dc9]{grid-column:2}.bole-timeline li[data-v-b9fe7dc9]{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:12px 20px}.bole-timeline time[data-v-b9fe7dc9]{grid-column:2}}@media (width<=700px),(height<=560px){.bole-panel[data-v-b9fe7dc9]{overscroll-behavior:contain;overflow:auto}.bole-content[data-v-b9fe7dc9]{flex:none;overflow:visible}}@media (width<=700px){.bole-header[data-v-b9fe7dc9],.bole-controls[data-v-b9fe7dc9]{padding-inline:16px}.bole-content[data-v-b9fe7dc9]{padding:16px 16px 28px}.bole-heading[data-v-b9fe7dc9]{gap:4px 16px;width:100%}.bole-views[data-v-b9fe7dc9]{gap:16px}.bole-summary[data-v-b9fe7dc9]{gap:8px 16px;margin-left:0}.bole-refresh[data-v-b9fe7dc9]{margin-left:auto}.bole-filters[data-v-b9fe7dc9]{gap:8px}.bole-search[data-v-b9fe7dc9]{flex-basis:100%}.bole-filters .project-scope-picker[data-v-b9fe7dc9]{flex:180px}.bole-filters select[data-v-b9fe7dc9]{flex:120px}.bole-role-filters[data-v-b9fe7dc9]{gap:4px}.bole-table-heading[data-v-b9fe7dc9]{display:none}.bole-agent-row[data-v-b9fe7dc9]{grid-template-columns:minmax(0,1fr);gap:12px}.bole-agent-row[data-v-b9fe7dc9]:first-of-type{border-top:0}.bole-agent-projects[data-v-b9fe7dc9]{grid-column:auto;padding-left:48px}.bole-agent-work[data-v-b9fe7dc9]{padding-left:48px}.bole-timeline li[data-v-b9fe7dc9]{grid-template-columns:minmax(0,1fr);gap:12px}.bole-timeline time[data-v-b9fe7dc9]{grid-column:auto}.bole-alert[data-v-b9fe7dc9]{padding-inline:16px}}fieldset[data-v-2da40afc]{border:0;min-width:0;margin:0;padding:0}.employee-share-result[data-v-2da40afc]{gap:12px;display:grid}.employee-share-result label[data-v-2da40afc]{gap:8px;font-size:13px;display:grid}.employee-share-result>div[data-v-2da40afc]{align-items:center;gap:16px;display:flex}.employee-share-result a[data-v-2da40afc]{color:#315c43;font-size:13px}.employee-share-local[data-v-2da40afc]{color:#725a2d}.employee-share-preview[data-v-2da40afc]{color:#315c43;font-weight:600}.employee-share-empty[data-v-2da40afc]{color:#725a2d;line-height:1.6}.employee-share-active[data-v-2da40afc]{border-top:1px solid #e6ece8;padding-top:16px}.employee-share-active h3[data-v-2da40afc]{margin:0 0 10px;font-size:14px}.employee-share-active>div[data-v-2da40afc]{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:13px;display:flex}.employee-share-active span[data-v-2da40afc]{overflow-wrap:anywhere}footer>span[data-v-2da40afc]{color:#526659;margin-right:auto;font-size:12px}.employee-workbench-view[data-v-fba11ab5]{background:#fff;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.employee-workbench-toolbar[data-v-fba11ab5]{flex:none;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px 10px;display:flex}.employee-workbench-identity[data-v-fba11ab5]{align-items:center;gap:10px;min-width:0;display:flex}.employee-workbench-mark[data-v-fba11ab5]{color:#315c43;background:#eaf0ec;border-radius:9px;flex:0 0 32px;place-items:center;height:32px;font-size:17px;font-weight:650;display:grid;overflow:hidden}.employee-workbench-mark img[data-v-fba11ab5]{object-fit:cover;width:100%;height:100%}.employee-share-button[data-v-fba11ab5]{color:#42624c;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:0 0 40px;place-items:center;width:40px;height:40px;display:grid}.employee-share-button[data-v-fba11ab5]:hover{background:#edf3ee}.employee-share-button[data-v-fba11ab5]:focus-visible{outline-offset:2px;outline:2px solid #356448}.employee-workbench-toolbar h1[data-v-fba11ab5]{color:#253c2f;overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:650;line-height:1.4}.employee-workbench-toolbar h1 span[data-v-fba11ab5]{color:#59685f;margin-left:8px;font-size:12px;font-weight:400}.employee-workbench-actions[data-v-fba11ab5]{align-items:center;gap:12px;min-width:0;display:flex}.employee-manage-projects[data-v-fba11ab5],.employee-back-to-all[data-v-fba11ab5]{color:#465b4d;min-height:40px;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:13px;display:inline-flex}.employee-manage-projects[data-v-fba11ab5]:hover:not(:disabled),.employee-back-to-all[data-v-fba11ab5]:hover{background:#e2ece5}.employee-manage-projects[data-v-fba11ab5]:disabled{color:#647568;cursor:default}.employee-manage-projects[data-v-fba11ab5]:focus-visible,.employee-back-to-all[data-v-fba11ab5]:focus-visible{outline-offset:3px;outline:2px solid #356448}.employee-workbench-frame[data-v-fba11ab5]{border:0;flex:1;width:100%;height:100%;min-height:0}.employee-workbench-state[data-v-fba11ab5]{color:#58695e;text-align:center;flex:1;place-content:center;justify-items:center;gap:14px;padding:30px;font-size:14px;display:grid}.employee-workbench-state a[data-v-fba11ab5]{color:#315c43}.employee-workbench-state h2[data-v-fba11ab5]{color:#253c2f;font-size:20px;font-weight:600}.employee-workbench-state p[data-v-fba11ab5]{max-width:48ch;margin:0;line-height:1.7}@media (width<=640px){.employee-workbench-toolbar[data-v-fba11ab5]{flex-wrap:wrap;gap:10px;padding:8px 16px 10px}.employee-workbench-actions[data-v-fba11ab5]{justify-content:flex-end;gap:8px;width:100%}.employee-workbench-toolbar h1 span[data-v-fba11ab5]{margin-left:6px}}
@@ -1,3 +0,0 @@
1
- import{C as e,F as t,H as n,N as r,T as i,V as a,Z as o,_ as s,a as c,at as l,b as u,d,h as f,m as p,nt as m,u as h,v as g,w as _,x as v,y,z as b}from"./i18n-CVFADb_M.js";import{t as x}from"./console-BAIVNC-N.js";import{t as ee}from"./GrowthLoading-WXCj8b0r.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{h as C,m as w}from"./useApi-CROJJdhE-CuJ16v2S.js";import{t as T}from"./vue-router-C8KuEZ6a.js";import{i as E,n as D,r as O}from"./client-Bl4oiW3E.js";import{a as k,d as A,i as j,l as M,o as N,s as P,t as F}from"./AgentHand-BfLYPGjg.js";import{t as I}from"./useModalDialog-Ddv2XJQi.js";/* empty css */import{t as L}from"./ProjectScopePicker-Cu5PdxF6.js";import{i as te,r as R,t as z}from"./shared-report-BQD6l_cS.js";import{t as ne}from"./EmployeeRecruitDialog-D-W043v4.js";var B=[`aria-busy`],V={key:0,class:`bole-alert`,role:`alert`},re={class:`bole-header`},H={class:`bole-heading`},ie={id:`bole-overview-title`},ae=[`aria-label`],oe=[`aria-pressed`],U={"data-testid":`people-total`},W=[`aria-pressed`],G=[`aria-label`],K={"data-testid":`people-working`},q=[`disabled`],se={class:`bole-controls`},ce={class:`bole-filters`},le=[`aria-label`,`placeholder`],ue=[`aria-label`],J={value:`all`},de={value:`working`},Y={value:`idle`},fe=[`aria-label`],pe=[`aria-pressed`],me=[`aria-pressed`,`onClick`],X={key:1,class:`bole-result-count`,role:`status`},he=[`aria-label`],ge={key:1,"aria-labelledby":`bole-work-title`},Z={key:0,class:`bole-empty`,role:`status`},_e={key:1,class:`bole-agent-list`},ve={class:`bole-table-heading`,"aria-hidden":`true`},ye={class:`bole-agent-identity`},be={class:`bole-agent-mark`,"aria-hidden":`true`},xe=[`src`],Se={class:`bole-agent-work`},Ce=[`data-status`],we={key:1,class:`is-idle`},Te={class:`bole-agent-projects`},Ee={key:0},De={key:1},Oe={key:2,class:`bole-empty`},ke={key:2,"aria-labelledby":`bole-history-title`},Ae={key:0,class:`bole-timeline`},je={class:`bole-recruitment-identity`},Me={class:`bole-recruitment-reason`},Ne=[`datetime`],Pe={key:1,class:`bole-empty`},Fe=`__bole_unassigned__`,Ie=200,Le=S(i({__name:`BolePeoplePanel`,props:{personalSpaceId:{},projects:{}},setup(i){let a=i,p=o([]),x=o([]),S=o([]),C=o(!1),w=o(!1),T=o(`people`),E=o(``),O=o(``),k=o(`all`),A=o(null),M=o(null),N=s(()=>x.value.length>=Ie),P=0,I=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]),te=s(()=>new Map(a.projects.map(e=>[e.project_id,e.profile.name]))),R=s(()=>p.value.filter(e=>e.status===`active`)),z=s(()=>x.value.filter(e=>I.has(e.status))),ne=s(()=>new Set(ze.value.filter(e=>e.task).map(e=>e.id))),Le=s(()=>new Set(R.value.flatMap(e=>e.projectIds).filter(Boolean))),Re=s(()=>{let e=[`coordinator`,`durable`,`hr`,`temporary`],t=new Map;for(let e of R.value)t.set(e.type,(t.get(e.type)??0)+1);return[...t.entries()].sort(([t],[n])=>rt(e,t)-rt(e,n)).map(([e,t])=>({type:e,count:t,label:it(e)}))}),ze=s(()=>R.value.map(e=>({...e,task:e.workStatus?I.has(e.workStatus)&&e.currentTaskId?x.value.find(t=>t.id===e.currentTaskId)??{id:e.currentTaskId,title:e.currentTaskId,status:e.workStatus,projectId:``,agentIds:[e.id],updatedAt:``}:void 0:z.value.filter(t=>t.agentIds.includes(e.id)).sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))[0]}))),Be=s(()=>[...S.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt))),Ve=s(()=>[...new Set([...a.projects.map(e=>e.project_id),...p.value.flatMap(e=>e.projectIds),...x.value.map(e=>e.projectId),...S.value.map(e=>e.projectId)].filter(Boolean))].map(e=>({id:e,name:te.value.get(e)??e})).sort((e,t)=>e.name.localeCompare(t.name)).concat({id:Fe,name:c(`employees.bole.noProject`)})),He=s({get:()=>A.value??Ve.value.map(e=>e.id),set:e=>{A.value=e.length===Ve.value.length?null:e}}),Ue=s(()=>ze.value.filter(e=>{let t=[...e.projectIds,...e.task?.projectId?[e.task.projectId]:[]];return Ke(t)&&(!O.value||e.type===O.value)&&(k.value===`all`||(k.value===`working`?!!e.task:!e.task))&&qe([e.name,e.responsibility,e.task?.title??``,...t.map(st)])}).sort((e,t)=>Number(!!t.task)-Number(!!e.task)||e.name.localeCompare(t.name))),We=s(()=>Be.value.filter(e=>Ke(e.projectId?[e.projectId]:[])&&(!O.value||e.positionKind===O.value)&&qe([ot(e.agentId),e.reason,e.workKind,st(e.projectId)]))),Ge=s(()=>E.value||O.value||A.value!==null||T.value===`people`&&k.value!==`all`);function Ke(e){return A.value===null||(e.length?e:[Fe]).some(e=>A.value?.includes(e))}function qe(e){return e.join(` `).toLocaleLowerCase().includes(E.value.trim().toLocaleLowerCase())}function Je(){E.value=``,O.value=``,k.value=`all`,A.value=null}function Ye(e){return j(e.replace(/^employee\./,``))}b([T,E,O,k,A],()=>{M.value&&(M.value.scrollTop=0)}),b(()=>a.personalSpaceId,()=>{Je(),Xe()},{immediate:!0});async function Xe(){let e=++P;if(p.value=[],x.value=[],S.value=[],w.value=!1,!a.personalSpaceId){C.value=!1;return}C.value=!0;let t=new URLSearchParams({personalSpaceId:a.personalSpaceId}),n=await Promise.allSettled([D(`/api/project-agents?${t}`),D(`/api/project-agent-tasks?${t}&limit=${Ie}`),D(`/api/project-agent-recruitments?${t}`)]);e===P&&(n[0].status===`fulfilled`&&(p.value=Ze(n[0].value,`agents`).map($e).filter(nt)),n[1].status===`fulfilled`&&(x.value=Ze(n[1].value,`tasks`).map(et).filter(nt)),n[2].status===`fulfilled`&&(S.value=Ze(n[2].value,`recruitments`).map(tt).filter(nt)),w.value=n.some(e=>e.status===`rejected`),C.value=!1)}function Q(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function Ze(e,t){if(Array.isArray(e))return e;let n=Q(e),r=n[t]??n.items;return Array.isArray(r)?r:[]}function $(e,t,n=t){let r=e[t]??e[n];return typeof r==`string`?r:``}function Qe(e){return Array.isArray(e)?e:[]}function $e(e){let t=Q(e),n=Q(t.profile),r=$(t,`agentId`,`agent_id`);if(!r)return null;let i=Qe(t.assignments).flatMap(e=>{let t=Q(e),n=$(t,`status`),r=$(t,`personalProjectId`,`personal_project_id`);return n===`active`&&r?[r]:[]}),a=$(t,`personalProjectId`,`personal_project_id`);return{id:r,name:$(n,`displayName`,`display_name`)||$(n,`name`)||r,emoji:$(n,`occupationEmoji`,`occupation_emoji`)||`✦`,responsibility:$(n,`responsibility`),type:$(n,`agentType`,`agent_type`)||`other`,status:$(n,`status`)||`active`,projectIds:[...new Set([...i,...a?[a]:[]])],currentTaskId:$(t,`currentTaskId`,`current_task_id`),workStatus:$(t,`workStatus`,`work_status`)}}function et(e){let t=Q(e),n=$(t,`taskId`,`task_id`);if(!n)return null;let r=[$(t,`ownerAgentId`,`owner_agent_id`),$(t,`leadAgentId`,`lead_agent_id`)],i=Qe(t.participants).flatMap(e=>{let t=Q(e),n=$(t,`status`);return n&&!I.has(n)?[]:[$(t,`agentId`,`agent_id`)]});return{id:n,title:$(t,`title`)||n,status:$(t,`status`)||`queued`,projectId:$(t,`personalProjectId`,`personal_project_id`),agentIds:[...new Set([...r,...i].filter(Boolean))],updatedAt:$(t,`updatedAt`,`updated_at`)||$(t,`createdAt`,`created_at`)}}function tt(e){let t=Q(e),n=$(t,`recruitmentId`,`recruitment_id`);return n?{id:n,agentId:$(t,`recruitedAgentId`,`recruited_agent_id`)||$(t,`proposedAgentId`,`proposed_agent_id`),projectId:$(t,`personalProjectId`,`personal_project_id`),workKind:$(t,`workKind`,`work_kind`),positionKind:$(t,`positionKind`,`position_kind`),reason:$(t,`reason`)||$(t,`reasonCode`,`reason_code`),status:$(t,`status`),createdAt:$(t,`createdAt`,`created_at`)}:null}function nt(e){return e!==null}function rt(e,t){let n=e.indexOf(t);return n<0?e.length:n}function it(e){return[`coordinator`,`durable`,`hr`,`temporary`].includes(e)?c(`employees.bole.types.${e}`):c(`employees.bole.types.other`)}function at(e){return[`awaiting_recruitment`,`queued`,`running`,`paused`,`failed`,`awaiting_review`,`blocked`].includes(e)?c(`employees.bole.status.${e}`):e}function ot(e){return p.value.find(t=>t.id===e)?.name??e}function st(e){return te.value.get(e)??c(`employees.bole.noProject`)}function ct(e){if(!e)return c(`employees.bole.unknownTime`);let t=new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(t)}return(i,a)=>(r(),v(`div`,{class:`bole-panel`,"aria-busy":C.value},[w.value?(r(),v(`div`,V,[g(`span`,null,l(m(c)(`employees.bole.partialError`)),1),g(`button`,{type:`button`,onClick:Xe},l(m(c)(`employees.retry`)),1)])):u(``,!0),g(`header`,re,[g(`div`,H,[g(`h2`,ie,l(m(c)(`employees.bole.title`)),1),g(`nav`,{class:`bole-views`,"aria-label":m(c)(`employees.bole.viewLabel`)},[g(`button`,{id:`bole-work-title`,type:`button`,"aria-pressed":T.value===`people`,onClick:a[0]||=e=>T.value=`people`},[e(l(m(c)(`employees.bole.currentWork`))+` `,1),g(`span`,U,l(C.value?`—`:R.value.length),1)],8,oe),g(`button`,{id:`bole-history-title`,type:`button`,"aria-pressed":T.value===`history`,onClick:a[1]||=e=>T.value=`history`},[e(l(m(c)(`employees.bole.recruitmentHistory`))+` `,1),g(`span`,null,l(C.value?`—`:S.value.length),1)],8,W)],8,ae)]),g(`dl`,{class:`bole-summary`,"aria-label":m(c)(`employees.bole.overview`)},[g(`div`,K,[g(`dt`,null,l(m(c)(`employees.bole.workingNow`)),1),g(`dd`,null,l(C.value?`—`:ne.value.size),1)]),g(`div`,null,[g(`dt`,null,l(m(c)(`employees.bole.coveredProjects`)),1),g(`dd`,null,l(C.value?`—`:Le.value.size),1)])],8,G),g(`button`,{class:`bole-refresh`,type:`button`,disabled:C.value,onClick:Xe},l(m(c)(`common.actions.refresh`)),9,q)]),g(`div`,se,[g(`div`,ce,[n(g(`input`,{"onUpdate:modelValue":a[2]||=e=>E.value=e,type:`search`,class:`bole-search`,"aria-label":m(c)(`employees.bole.search`),placeholder:m(c)(`employees.bole.search`)},null,8,le),[[d,E.value]]),_(L,{modelValue:He.value,"onUpdate:modelValue":a[3]||=e=>He.value=e,projects:Ve.value,label:m(c)(`employees.allProjects.projectFilter`),"all-label":m(c)(`employees.bole.allProjects`),"empty-label":m(c)(`employees.filterEmpty`),compact:``,hint:``},null,8,[`modelValue`,`projects`,`label`,`all-label`,`empty-label`]),T.value===`people`?n((r(),v(`select`,{key:0,"onUpdate:modelValue":a[4]||=e=>k.value=e,"aria-label":m(c)(`employees.bole.workFilter`)},[g(`option`,J,l(m(c)(`employees.bole.allWork`)),1),g(`option`,de,l(m(c)(`employees.bole.workingNow`)),1),g(`option`,Y,l(m(c)(`employees.bole.withoutTask`)),1)],8,ue)),[[h,k.value]]):u(``,!0)]),g(`div`,{class:`bole-role-filters`,role:`group`,"aria-label":m(c)(`employees.bole.distribution`)},[g(`button`,{type:`button`,"aria-pressed":!O.value,onClick:a[5]||=e=>O.value=``},l(m(c)(`employees.bole.allRoles`)),9,pe),(r(!0),v(f,null,t(Re.value,t=>(r(),v(`button`,{key:t.type,type:`button`,"aria-pressed":O.value===t.type,onClick:e=>O.value=O.value===t.type?``:t.type},[e(l(t.label)+` `,1),g(`span`,null,l(t.count),1)],8,me))),128)),Ge.value?(r(),v(`button`,{key:0,class:`bole-clear`,type:`button`,onClick:Je},l(m(c)(`employees.bole.clearFilters`)),1)):u(``,!0),Ge.value&&!C.value?(r(),v(`span`,X,l(m(c)(`employees.bole.resultCount`,{count:T.value===`people`?Ue.value.length:We.value.length})),1)):u(``,!0)],8,fe)]),g(`div`,{ref_key:`scrollRegion`,ref:M,class:`bole-content`,tabindex:`0`,role:`region`,"aria-label":m(c)(T.value===`people`?`employees.bole.currentWork`:`employees.bole.recruitmentHistory`)},[C.value?(r(),y(ee,{key:0,variant:`compact`,label:m(c)(`employees.bole.loading`)},null,8,[`label`])):T.value===`people`?(r(),v(`section`,ge,[N.value?(r(),v(`p`,Z,l(m(c)(`employees.bole.taskLimit`)),1)):u(``,!0),Ue.value.length?(r(),v(`div`,_e,[g(`div`,ve,[a[6]||=g(`span`,null,`Agent`,-1),g(`span`,null,l(m(c)(`employees.bole.taskColumn`)),1),g(`span`,null,l(m(c)(`employees.bole.projectsColumn`)),1)]),(r(!0),v(f,null,t(Ue.value,n=>(r(),v(`article`,{key:n.id,class:`bole-agent-row`},[g(`div`,ye,[g(`span`,be,[Ye(n.id)?(r(),v(`img`,{key:0,src:Ye(n.id),alt:``},null,8,xe)):(r(),v(f,{key:1},[e(l(n.emoji),1)],64))]),g(`div`,null,[g(`strong`,null,l(n.name),1),_(F,{"agent-id":n.id},null,8,[`agent-id`]),g(`small`,null,l(n.responsibility||it(n.type)),1)])]),g(`div`,Se,[n.task?(r(),v(f,{key:0},[g(`span`,{class:`bole-status`,"data-status":n.task.status},l(at(n.task.status)),9,Ce),g(`p`,null,l(n.task.title),1)],64)):(r(),v(`p`,we,l(m(c)(`employees.bole.idle`)),1))]),g(`div`,Te,[n.projectIds.length?(r(),v(f,{key:0},[(r(!0),v(f,null,t(n.projectIds.slice(0,2),e=>(r(),v(`span`,{key:e},l(st(e)),1))),128)),n.projectIds.length>2?(r(),v(`details`,Ee,[g(`summary`,null,l(m(c)(`employees.bole.moreProjects`,{count:n.projectIds.length-2})),1),(r(!0),v(f,null,t(n.projectIds.slice(2),e=>(r(),v(`span`,{key:e},l(st(e)),1))),128))])):u(``,!0)],64)):(r(),v(`span`,De,l(n.task?.projectId?st(n.task.projectId):m(c)(`employees.bole.noProject`)),1))])]))),128))])):(r(),v(`p`,Oe,l(m(c)(Ge.value?`employees.bole.noMatch`:`employees.bole.noAgents`)),1))])):(r(),v(`section`,ke,[We.value.length?(r(),v(`ol`,Ae,[(r(!0),v(f,null,t(We.value,e=>(r(),v(`li`,{key:e.id},[g(`div`,je,[g(`strong`,null,l(ot(e.agentId)),1),g(`small`,null,l(it(e.positionKind))+` · `+l(st(e.projectId)),1)]),g(`div`,Me,[g(`p`,null,l(e.reason),1),g(`small`,null,l(e.workKind||e.status),1)]),g(`time`,{datetime:e.createdAt},l(ct(e.createdAt)),9,Ne)]))),128))])):(r(),v(`p`,Pe,l(m(c)(Ge.value?`employees.bole.noMatch`:`employees.bole.noRecruitments`)),1))]))],8,he)],8,B))}}),[[`__scopeId`,`data-v-b9fe7dc9`]]),Re={id:`employee-task-title`},ze=[`disabled`,`aria-label`],Be={class:`employee-dialog-body`},Ve={key:1,class:`employee-dialog-error`,role:`alert`},He=[`disabled`],Ue=[`disabled`],We={disabled:``,value:``},Ge=[`value`],Ke=[`readonly`,`disabled`],qe={key:0,class:`employee-task-status`},Je=[`readonly`,`disabled`],Ye=[`disabled`],Xe=[`value`],Q=[`readonly`,`disabled`],Ze=[`readonly`,`disabled`],$=[`disabled`],Qe=[`disabled`],$e=i({__name:`EmployeeTaskDialog`,props:{open:{type:Boolean},item:{},projects:{},defaultProjectId:{},personalSpaceId:{},canWrite:{type:Boolean}},emits:[`close`,`saved`],setup(i,{emit:a}){let _=i,x=a,S=o(!1),C=o(!1),w=o(``),T=o(null),D=o(``),O=o(``),k=o(``),A=o(`medium`),j=o(``),M=o(``),N=0,F={signature:``,id:``},L=s(()=>_.canWrite&&!C.value&&!w.value&&!!D.value&&O.value.trim().length>=2),{dialogRef:te,initialFocusRef:R,onCancel:z,onKeydown:ne}=I(()=>_.open,H);b([()=>_.open,()=>_.item,()=>_.personalSpaceId],()=>{V()},{immediate:!0});async function B(e,t){return E(`/api/employee-templates/jefa/call`,{personalSpaceId:_.personalSpaceId,personalProjectId:D.value,tool:e,arguments:t})}async function V(){let e=++N;if(_.open&&(w.value=``,T.value=null,F={signature:``,id:``},D.value=_.item?.projectId??_.defaultProjectId??``,O.value=``,k.value=``,A.value=`medium`,j.value=``,M.value=``,C.value=!!_.item,_.item))try{let t=await B(`get_task`,{workItemId:_.item.id});if(e!==N)return;if(t.item.id!==_.item.id||t.item.projectId!==D.value||!t.item.updatedAt)throw Error(c(`employees.loadError`));T.value=t.item,O.value=t.item.title,k.value=t.item.summary??``,A.value=t.item.priority??`medium`,j.value=t.item.acceptanceCriteria?.join(`
2
- `)??``,M.value=t.item.tags?.join(`, `)??``}catch(t){e===N&&(w.value=P(t))}finally{e===N&&(C.value=!1)}}async function re(){if(!L.value||S.value)return;S.value=!0;let e={title:O.value.trim(),summary:k.value.trim()||O.value.trim(),priority:A.value,acceptanceCriteria:j.value.split(`
3
- `).map(e=>e.trim()).filter(Boolean),tags:M.value.split(/[,,]/).map(e=>e.trim()).filter(Boolean)},t=JSON.stringify([D.value,T.value?.updatedAt,e]);F.signature!==t&&(F={signature:t,id:`board-edit-${crypto.randomUUID()}`});try{T.value?await B(`update_tasks`,{requestId:F.id,updates:[{id:T.value.id,expectedUpdatedAt:T.value.updatedAt,...e}]}):await B(`create_tasks`,{messageId:F.id,tasks:[e]}),x(`saved`),x(`close`)}catch(e){w.value=P(e)}finally{S.value=!1}}function H(){S.value||x(`close`)}return(a,o)=>(r(),v(`dialog`,{ref_key:`dialogRef`,ref:te,class:`employee-dialog`,"aria-labelledby":`employee-task-title`,onCancel:o[6]||=(...e)=>m(z)&&m(z)(...e),onKeydown:o[7]||=(...e)=>m(ne)&&m(ne)(...e)},[g(`form`,{class:`employee-dialog-shell`,onSubmit:p(re,[`prevent`])},[g(`header`,null,[g(`h2`,Re,l(m(c)(i.item?`employees.task.detail`:`employees.task.create`)),1),g(`button`,{type:`button`,disabled:S.value,"aria-label":m(c)(`employees.close`),onClick:H},`×`,8,ze)]),g(`div`,Be,[C.value?(r(),y(ee,{key:0,variant:`compact`,label:m(c)(`employees.loadingTask`)},null,8,[`label`])):u(``,!0),w.value?(r(),v(`div`,Ve,[g(`p`,null,l(w.value),1),g(`button`,{type:`button`,disabled:S.value,onClick:V},l(m(c)(`employees.task.reload`)),9,He)])):u(``,!0),C.value?u(``,!0):(r(),v(f,{key:2},[g(`label`,null,[e(l(m(c)(`employees.task.project`)),1),n(g(`select`,{"onUpdate:modelValue":o[0]||=e=>D.value=e,disabled:!!i.item||S.value||!i.canWrite,required:``},[g(`option`,We,l(m(c)(`employees.task.chooseProject`)),1),(r(!0),v(f,null,t(i.projects,e=>(r(),v(`option`,{key:e.id,value:e.id},l(e.name),9,Ge))),128))],8,Ue),[[h,D.value]])]),g(`label`,null,[e(l(m(c)(`employees.task.title`)),1),n(g(`input`,{ref_key:`initialFocusRef`,ref:R,"onUpdate:modelValue":o[1]||=e=>O.value=e,minlength:`2`,maxlength:`180`,required:``,readonly:!i.canWrite,disabled:S.value},null,8,Ke),[[d,O.value]])]),T.value?(r(),v(`p`,qe,l(m(c)(`employees.allProjects.status.${T.value.status}`)),1)):u(``,!0),g(`label`,null,[e(l(m(c)(`employees.task.summary`)),1),n(g(`textarea`,{"onUpdate:modelValue":o[2]||=e=>k.value=e,rows:`4`,maxlength:`2000`,readonly:!i.canWrite,disabled:S.value},null,8,Je),[[d,k.value]])]),g(`label`,null,[e(l(m(c)(`employees.task.priority`)),1),n(g(`select`,{"onUpdate:modelValue":o[3]||=e=>A.value=e,disabled:!i.canWrite||S.value},[(r(),v(f,null,t([`critical`,`high`,`medium`,`low`],e=>g(`option`,{key:e,value:e},l(m(c)(`employees.task.priorities.${e}`)),9,Xe)),64))],8,Ye),[[h,A.value]])]),g(`label`,null,[e(l(m(c)(`employees.task.criteria`)),1),n(g(`textarea`,{"onUpdate:modelValue":o[4]||=e=>j.value=e,rows:`3`,readonly:!i.canWrite,disabled:S.value},null,8,Q),[[d,j.value]])]),g(`label`,null,[e(l(m(c)(`employees.task.tags`)),1),n(g(`input`,{"onUpdate:modelValue":o[5]||=e=>M.value=e,readonly:!i.canWrite,disabled:S.value},null,8,Ze),[[d,M.value]])])],64))]),g(`footer`,null,[g(`button`,{type:`button`,disabled:S.value,onClick:H},l(m(c)(`employees.close`)),9,$),i.canWrite?(r(),v(`button`,{key:0,class:`primary`,type:`submit`,disabled:!L.value||S.value},[S.value?(r(),y(ee,{key:0,variant:`inline`,label:m(c)(`employees.task.saving`)},null,8,[`label`])):(r(),v(f,{key:1},[e(l(m(c)(`employees.task.save`)),1)],64))],8,Qe)):u(``,!0)])],32)],544))}}),et={class:`employee-dialog-shell`},tt={id:`employee-share-title`},nt=[`disabled`,`aria-label`],rt={class:`employee-dialog-body`},it=[`disabled`],at={key:1,class:`employee-share-preview`,role:`status`},ot={key:2,class:`employee-share-empty`},st=[`disabled`],ct={key:3,class:`employee-dialog-error`,role:`alert`},lt={key:4,class:`employee-share-result`},ut=[`value`,`aria-label`],dt=[`href`],ft={key:5,class:`employee-share-local`},pt={key:6,class:`employee-share-active`},mt=[`disabled`,`onClick`],ht=[`disabled`],gt=S(i({__name:`EmployeeShareDialog`,props:{open:{type:Boolean},projects:{}},emits:[`close`],setup(n,{emit:i}){let a=n,d=i,p=o([]),h=o({}),x=o({}),S=o(!1),C=o(!1),w=o(null),T=o(``),E=o(``),k=o(``),A=o(!1),j=0,{dialogRef:M,initialFocusRef:N,onCancel:F,onKeydown:te}=I(()=>a.open,U),ne=s(()=>a.projects.filter(e=>h.value[e.id]?.publicShareEnabled)),B=s(()=>p.value.every(e=>x.value[e]!==void 0)?p.value.reduce((e,t)=>e+x.value[t],0):null),V=[`localhost`,`127.0.0.1`,`[::1]`].includes(window.location.hostname);b([()=>a.open,()=>JSON.stringify(a.projects.map(e=>e.id))],()=>{a.open?H():++j},{immediate:!0}),b(p,()=>{k.value=``,A.value=!1});function re(e){return`/employee-workspaces/jefa/${encodeURIComponent(e)}/api`}async function H(e=!1){let t=++j;e||(p.value=[]),h.value={},x.value={},E.value=``,k.value=``,S.value=!0;let n=await Promise.allSettled(a.projects.map(async e=>{let t=(await D(`${re(e.id)}/snapshot`)).snapshot.projects.find(t=>t.id===e.id);if(!t)throw Error(c(`employees.loadError`));let n=null,r=!1;if(t.publicShareEnabled&&t.publicShareSlug)try{n=(await z({id:e.id,slug:t.publicShareSlug})).items.length}catch{r=!0}return{state:t,count:n,previewFailed:r}}));if(t===j){for(let e of n)e.status===`fulfilled`&&(h.value[e.value.state.id]=e.value.state,e.value.count!==null&&(x.value[e.value.state.id]=e.value.count));n.some(e=>e.status===`rejected`||e.value.previewFailed)&&(E.value=c(`employees.share.loadFailed`)),S.value=!1}}async function ie(){if(!p.value.length||C.value||S.value||B.value===0)return;C.value=!0,w.value=`generate`,T.value=``,E.value=``,k.value=``,A.value=!1;let e=j,t=p.value.filter(e=>a.projects.some(t=>t.id===e));try{let n=await Promise.allSettled(t.map(async t=>{if(!h.value[t])throw Error(c(`employees.share.loadFailed`));let n=h.value[t];if(!n.publicShareEnabled||!n.publicShareSlug){if(n=(await O(`/employee-workspaces/jefa/${encodeURIComponent(t)}/api/projects/${encodeURIComponent(t)}/sharing`,{publicShareEnabled:!0,acceptsPublicRequests:!1})).project,n.id!==t||!n.publicShareEnabled||!n.publicShareSlug)throw Error(c(`employees.loadError`));if(e!==j)throw Error(c(`employees.share.loadFailed`));h.value[t]=n}let r=(await z({id:t,slug:n.publicShareSlug})).items.length;if(e!==j)throw Error(c(`employees.share.loadFailed`));return x.value[t]=r,{id:t,slug:n.publicShareSlug}}));if(e!==j)return;if(n.some(e=>e.status===`rejected`))throw Error(c(`employees.share.partial`));if(t.every(e=>x.value[e]===0))throw Error(c(`employees.shareContent.emptySelection`));k.value=R(n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),window.location.origin)}catch(t){e===j&&(E.value=P(t))}finally{C.value=!1,w.value=null,T.value=``}}async function ae(e){if(!C.value){C.value=!0,w.value=`revoke`,T.value=e,E.value=``,k.value=``,A.value=!1;try{let t=await O(`/employee-workspaces/jefa/${encodeURIComponent(e)}/api/projects/${encodeURIComponent(e)}/sharing`,{publicShareEnabled:!1,acceptsPublicRequests:!1});if(t.project.id!==e||t.project.publicShareEnabled)throw Error(c(`employees.loadError`));h.value[e]=t.project,delete x.value[e]}catch(e){E.value=P(e)}finally{C.value=!1,w.value=null,T.value=``}}}async function oe(){try{await navigator.clipboard.writeText(k.value),A.value=!0}catch{E.value=c(`employees.share.copyFailed`)}}function U(){C.value||d(`close`)}return(i,a)=>(r(),v(`dialog`,{ref_key:`dialogRef`,ref:M,class:`employee-dialog employee-share-dialog`,"aria-labelledby":`employee-share-title`,onCancel:a[4]||=(...e)=>m(F)&&m(F)(...e),onKeydown:a[5]||=(...e)=>m(te)&&m(te)(...e)},[g(`div`,et,[g(`header`,null,[g(`h2`,tt,l(m(c)(`employees.share.title`)),1),g(`button`,{ref_key:`initialFocusRef`,ref:N,type:`button`,disabled:C.value,"aria-label":m(c)(`employees.close`),onClick:U},`×`,8,nt)]),g(`div`,rt,[g(`p`,null,l(m(c)(`employees.share.scopeHint`)),1),g(`p`,null,l(m(c)(`employees.share.disclosure`)),1),S.value?(r(),y(ee,{key:0,variant:`compact`,label:m(c)(`employees.loadingShare`)},null,8,[`label`])):u(``,!0),g(`fieldset`,{disabled:C.value||S.value},[_(L,{modelValue:p.value,"onUpdate:modelValue":a[0]||=e=>p.value=e,projects:n.projects,disabled:C.value||S.value,inline:``,label:m(c)(`employees.share.projects`),hint:m(c)(`employees.share.selectionHint`)},null,8,[`modelValue`,`projects`,`disabled`,`label`,`hint`])],8,it),p.value.length&&!S.value?(r(),v(`p`,at,l(B.value===null?m(c)(`employees.shareContent.verifyContent`):m(c)(`employees.shareContent.publicCount`,{count:B.value})),1)):u(``,!0),p.value.length&&!S.value&&B.value===0?(r(),v(`p`,ot,l(m(c)(`employees.shareContent.emptySelection`)),1)):u(``,!0),g(`button`,{type:`button`,disabled:C.value||S.value,onClick:a[1]||=e=>H(!0)},l(m(c)(`common.actions.refresh`)),9,st),E.value?(r(),v(`div`,ct,[g(`p`,null,l(E.value),1),C.value?u(``,!0):(r(),v(`button`,{key:0,type:`button`,onClick:a[2]||=e=>H(!0)},l(m(c)(`employees.retry`)),1))])):u(``,!0),k.value?(r(),v(`div`,lt,[g(`label`,null,[e(l(m(c)(`employees.share.link`)),1),g(`input`,{value:k.value,readonly:``,"aria-label":m(c)(`employees.share.link`),onFocus:a[3]||=e=>e.target.select()},null,40,ut)]),g(`div`,null,[g(`button`,{type:`button`,onClick:oe},l(m(c)(A.value?`employees.share.copied`:`employees.share.copy`)),1),g(`a`,{href:k.value,target:`_blank`,rel:`noreferrer`},l(m(c)(`employees.share.preview`)),9,dt)])])):u(``,!0),m(V)?(r(),v(`p`,ft,l(m(c)(`employees.share.local`)),1)):u(``,!0),ne.value.length?(r(),v(`section`,pt,[g(`h3`,null,l(m(c)(`employees.share.active`)),1),(r(!0),v(f,null,t(ne.value,t=>(r(),v(`div`,{key:t.id},[g(`span`,null,l(t.name),1),g(`button`,{type:`button`,disabled:C.value,onClick:e=>ae(t.id)},[w.value===`revoke`&&T.value===t.id?(r(),y(ee,{key:0,variant:`inline`,label:m(c)(`employees.share.revoking`)},null,8,[`label`])):(r(),v(f,{key:1},[e(l(m(c)(`employees.share.revoke`)),1)],64))],8,mt)]))),128))])):u(``,!0)]),g(`footer`,null,[g(`span`,null,l(m(c)(`employees.scope.count`,{selected:p.value.length,total:n.projects.length})),1),g(`button`,{class:`primary`,type:`button`,disabled:!p.value.length||C.value||S.value||B.value===0,onClick:ie},[w.value===`generate`?(r(),y(ee,{key:0,variant:`inline`,label:m(c)(`employees.share.generating`)},null,8,[`label`])):(r(),v(f,{key:1},[e(l(m(c)(`employees.share.generate`)),1)],64))],8,ht)])])],544))}}),[[`__scopeId`,`data-v-2da40afc`]]);function _t(e){return`fuli:jefa:project-filter:v1:${encodeURIComponent(e)}`}function vt(e){let t=w(),n=C(),r=o(null),i=o(!1),a=o(!1),c=!1,l=``,u=!0;b([e.enabled,e.spaceId],([e,t])=>{let n=e?t:``;if(n!==l&&(u=!l||!n,l=n,r.value=null,c=!1,i.value=!1,a.value=!1,l))try{let e=localStorage.getItem(_t(l));if(!e)return;let t=JSON.parse(e);t&&typeof t==`object`&&`version`in t&&t.version===1&&`projectIds`in t&&Array.isArray(t.projectIds)&&t.projectIds.every(e=>typeof e==`string`&&e.length>0&&e===e.trim())&&(r.value=[...new Set(t.projectIds)],c=!0)}catch(e){a.value=!(e instanceof SyntaxError)}},{immediate:!0,flush:`sync`});function d(){if(l)try{let e=_t(l);r.value===null?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify({version:1,projectIds:r.value})),a.value=!1}catch{a.value=!0}}function f(){let e=t.query.project;return[...new Set((Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`&&!!e))]}function p(){return[t.query.empty].flat().includes(`1`)}function m(e){return!e.length&&!p()||e.length===1&&[`all`,`__all__`].includes(e[0])}let h=s(()=>e.projectIds.value.filter(e=>r.value===null||r.value.includes(e)));function g(){if(!e.enabled.value||!l||!e.ready.value||!c)return;let i=h.value,a=f(),o=r.value===null||i.length>0&&i.length===e.projectIds.value.length;o&&t.query.project===`all`&&t.query.empty===void 0||r.value!==null&&!m(a)&&a.length===i.length&&a.every(e=>i.includes(e))&&(i.length>0||t.query.empty===`1`)||n.replace({query:{...t.query,project:o?`all`:i.length?i:``,empty:o||i.length?void 0:`1`}})}b([e.enabled,e.spaceId,e.ready,e.projectIds,()=>t.query.project,()=>t.query.empty],()=>{if(!(!e.enabled.value||!l||!e.ready.value)){if(!c){let t=f(),n=!u||m(t);if(i.value=!n&&t.some(t=>!e.projectIds.value.includes(t)),i.value)return;r.value=n?null:[...new Set(t)],c=!0,n||d()}g()}},{immediate:!0});let _=s({get:()=>h.value,set:t=>{if(!e.enabled.value||!l||!e.ready.value)return;let n=r.value?.filter(t=>!e.projectIds.value.includes(t))??[];r.value=[...new Set([...n,...t.filter(t=>e.projectIds.value.includes(t))])],c=!0,i.value=!1,d(),g()}});function v(){r.value=null,c=!0,i.value=!1,d(),g()}return{selection:_,reset:v,invalidScope:i,storageUnavailable:a}}var yt=[`aria-label`],bt={class:`employee-workbench-toolbar`},xt={class:`employee-workbench-identity`},St={class:`employee-workbench-mark`,"aria-hidden":`true`},Ct=[`src`],wt=[`aria-label`,`title`],Tt={class:`employee-workbench-actions`},Et=[`disabled`],Dt={key:4,class:`employee-workbench-state`,role:`alert`},Ot={key:5,class:`employee-workbench-state`},kt={key:7,class:`employee-workbench-state`},At={key:8,class:`employee-workbench-state`},jt={key:10,class:`employee-workbench-state`},Mt=[`src`,`title`],Nt=`all`,Pt=S(i({__name:`EmployeeWorkbenchPage`,setup(t){let n=w(),i=C(),d=x(),p=o(``),h=o(null),S=o([]),F=o([]),I=o([]),L=o([]),R=o(``),z=o(``),B=o(!1),V=o(!1),re=o(!1),H=o(!1),ie=o(!1),ae=o(!1),oe=o(null),U=s(()=>d.activePersonalSpace?.id??``),W=s(()=>String(n.params.templateId??``)),G=s(()=>M.value.find(e=>e.id===W.value)),K=s(()=>G.value?.workbench?.kind===`native`&&G.value.workbench.view===`people`),q=s(()=>W.value===`jefa`),se=s(()=>!d.state&&(d.runtimeStatus===`idle`||d.runtimeStatus===`loading`)||!V.value||B.value),ce=s(()=>d.state?N.value||!V.value?c(`employees.loading`):c(`employees.loadingBoard`):c(`common.status.loadingConsole`)),le=s(()=>!d.state&&d.runtimeStatus===`error`?d.feedback?.message||c(`employees.loadError`):``),ue=s(()=>le.value||k.value||(q.value&&Y.invalidScope.value?c(`employees.invalidScope`):z.value)),J=s(()=>G.value?.managedProjects===void 0?(G.value?.assignments??[]).filter(e=>e.status===`active`).map(e=>({value:e.personalProjectId,label:d.state?.personalProjects?.find(t=>t.project_id===e.personalProjectId)?.profile.name??e.personalProjectId})):G.value.managedProjects.map(e=>({value:e.id,label:e.name}))),de=s(()=>JSON.stringify([...new Set(J.value.map(e=>e.value))].sort()));b(U,e=>{V.value=!1,A(e)},{immediate:!0});let Y=vt({enabled:q,spaceId:U,projectIds:s(()=>J.value.map(e=>e.value)),ready:s(()=>!N.value&&!k.value&&!!G.value)}),fe=s({get:()=>{if(q.value)return Y.selection.value;let e=new Set(I.value);return J.value.filter(t=>!e.has(t.value)).map(e=>e.value)},set:e=>{if(q.value){Y.selection.value=e;return}let t=new Set(J.value.map(e=>e.value)),n=new Set(e);I.value=[...I.value.filter(e=>!t.has(e)),...J.value.filter(e=>!n.has(e.value)).map(e=>e.value)]}}),pe=s(()=>{let e=new Set(fe.value);return S.value.filter(t=>e.has(t.project.id))}),me=s(()=>{let e=new Set(fe.value);return F.value.filter(t=>e.has(t)).length}),X=s(()=>G.value?.runtimeStatus===`ready`&&G.value.permissions.includes(`board.read`)&&J.value.length>0),he=s(()=>X.value?[{value:Nt,label:c(`employees.allProjects.option`),meta:c(`employees.allProjects.optionMeta`,{count:J.value.length})},...J.value]:J.value),ge=0;b([W,U],()=>{I.value=[],ae.value=!1,ie.value=!1,oe.value=null}),b([he,()=>n.query.project,()=>n.query.empty,W,K],()=>{if(K.value){if(++ge,p.value=``,B.value=!1,z.value=``,n.query.project!==void 0){let{project:e,...t}=n.query;i.replace({query:t})}return}if(q.value){p.value=J.value.length?Nt:``;return}let e=typeof n.query.project==`string`?n.query.project:``,t=he.value;p.value=e||(t.some(e=>e.value===p.value)?p.value:t[0]?.value??``),!e&&p.value&&i.replace({query:{...n.query,project:p.value}})},{immediate:!0}),b([W,p,U,X,V],()=>{!K.value&&V.value&&Z()},{immediate:!0}),b(N,e=>{if(!e){if(!V.value){V.value=!0;return}re.value&&(re.value=!1,Z())}},{immediate:!0}),b(Y.invalidScope,e=>{!e&&q.value&&V.value&&Z()}),b(de,(e,t)=>{e===t||!V.value||K.value||Z()});async function Z(){let e=++ge;if(h.value=null,S.value=[],F.value=[],R.value=``,z.value=``,K.value||!G.value||!p.value||!U.value){B.value=!1;return}if(q.value&&!X.value){B.value=!1;return}if(q.value&&Y.invalidScope.value){B.value=!1;return}if(N.value){re.value=!0,B.value=!0;return}re.value=!1;let t=W.value,n=p.value;B.value=!0;try{if(n===Nt&&X.value){let n=await Promise.all(J.value.map(async e=>{try{let n=await E(`/api/employee-templates/${encodeURIComponent(t)}/call`,{personalSpaceId:U.value,personalProjectId:e.value,tool:`read_board`,arguments:{limit:100}}),r=Array.isArray(n.items)?n.items.filter(Se).filter(t=>t.projectId===e.value):[],i=n.truncated;if(t===`jefa`&&i)try{let t=await D(`/employee-workspaces/jefa/${encodeURIComponent(e.value)}/api/snapshot`);if(!Array.isArray(t.snapshot.workItems))throw Error(`Invalid board snapshot`);r=t.snapshot.workItems.filter(Se).filter(t=>t.projectId===e.value),i=!1}catch{}return{ok:!0,board:{...n,truncated:i,project:{id:e.value,name:e.label},items:r}}}catch(t){return{ok:!1,cause:t,projectId:e.value}}}));if(e!==ge)return;S.value=n.filter(e=>e.ok).map(e=>e.board),F.value=n.flatMap(e=>e.ok?[]:[e.projectId]),!S.value.length&&F.value.length&&(z.value=P(n.find(e=>!e.ok)?.cause));return}let r=await D(`/api/employee-templates/${encodeURIComponent(t)}/workspace?${new URLSearchParams({personalSpaceId:U.value,personalProjectId:n})}`),i=`/employee-workspaces/${encodeURIComponent(t)}/${encodeURIComponent(n)}/`;if(r.workbenchUrl!==i)throw Error(c(`employees.loadError`));e===ge&&(h.value=r)}catch(t){e===ge&&(z.value=P(t))}finally{e===ge&&(B.value=!1)}}function _e(e=null){oe.value=e,ae.value=!0}function ve(e){return`${e.projectId}:${e.id}`}function ye(e,t,n){S.value=S.value.map(r=>r.project.id===e?{...r,items:r.items.map(e=>e.id===t?n:e)}:r)}function be(){return`aggregate-board-move-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}`}async function xe(e,t){if(e.status===t)return;let n=ve(e);if(L.value.includes(n))return;let r=`${W.value}:${U.value}`,i={...e,status:t};R.value=``,L.value=[...L.value,n],ye(e.projectId,e.id,i);try{let n;if(W.value===`jefa`&&t===`done`)n=(await O(`/employee-workspaces/${encodeURIComponent(W.value)}/${encodeURIComponent(e.projectId)}/api/work-items/${encodeURIComponent(e.id)}/status`,{status:t})).workItem;else{if(!e.updatedAt)throw Error(c(`employees.allProjects.refreshRequired`));n=(await E(`/api/employee-templates/${encodeURIComponent(W.value)}/call`,{personalSpaceId:U.value,personalProjectId:e.projectId,tool:`update_tasks`,arguments:{requestId:be(),updates:[{id:e.id,expectedUpdatedAt:e.updatedAt,status:t}]}})).updatedWorkItems?.find(t=>t.id===e.id)}if(`${W.value}:${U.value}`!==r)return;if(!n||!Se(n)||n.projectId!==e.projectId||n.id!==e.id||!n.updatedAt)throw Error(c(`employees.allProjects.refreshRequired`));ye(e.projectId,e.id,n)}catch(t){if(`${W.value}:${U.value}`!==r)return;ye(e.projectId,e.id,e),R.value=c(`employees.allProjects.moveFailed`,{error:P(t)})}finally{L.value=L.value.filter(e=>e!==n)}}function Se(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.projectId==`string`&&typeof t.title==`string`&&[`planned`,`active`,`blocked`,`review`,`done`].includes(t.status??``)}async function Ce(){if(!d.state){await d.refresh();return}await A(U.value),k.value||await Z()}async function we(){if(q.value){await i.replace({query:{...n.query,project:Nt,empty:void 0}}),await Z();return}let e=p.value===Nt&&X.value?Nt:J.value.find(e=>e.value===p.value)?.value??he.value[0]?.value;await i.replace({query:e?{project:e}:{}}),await Z()}return(t,n)=>(r(),v(`section`,{class:`employee-workbench-view`,"aria-label":G.value?.name??m(c)(`employees.workbench`)},[g(`header`,bt,[g(`div`,xt,[g(`span`,St,[m(j)(W.value)?(r(),v(`img`,{key:0,src:m(j)(W.value),alt:``},null,8,Ct)):(r(),v(f,{key:1},[e(l(G.value?.name.slice(0,1)??`A`),1)],64))]),g(`h1`,null,[e(l(G.value?.name??m(c)(`employees.workbench`))+` `,1),g(`span`,null,l(G.value?.role),1)]),q.value&&X.value?(r(),v(`button`,{key:0,class:`employee-share-button`,type:`button`,"aria-label":m(c)(`employees.share.title`),title:m(c)(`employees.share.title`),onClick:n[0]||=e=>ie.value=!0},[...n[8]||=[g(`svg`,{width:`19`,height:`19`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.7`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[g(`path`,{d:`M14 3h7v7m0-7-9 9M10 5H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5`}),g(`path`,{d:`M7 16v-3m4 3v-1`})],-1)]],8,wt)):u(``,!0)]),g(`div`,Tt,[G.value&&!K.value?(r(),v(`button`,{key:0,class:`employee-manage-projects`,type:`button`,disabled:!U.value,onClick:n[1]||=e=>H.value=!0},[n[9]||=g(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"aria-hidden":`true`},[g(`path`,{d:`M4 7h9m4 0h3M4 17h3m4 0h9`}),g(`circle`,{cx:`15`,cy:`7`,r:`2`}),g(`circle`,{cx:`9`,cy:`17`,r:`2`})],-1),e(` `+l(m(c)(`employees.manageProjects`)),1)],8,Et)):u(``,!0)])]),K.value?u(``,!0):(r(),y(ne,{key:0,open:H.value,"personal-space-id":U.value,projects:m(d).state?.personalProjects??[],"template-id":W.value,onClose:n[2]||=e=>H.value=!1,onRecruited:we},null,8,[`open`,`personal-space-id`,`projects`,`template-id`])),q.value?(r(),y($e,{key:1,open:ae.value,item:oe.value,projects:J.value.map(e=>({id:e.value,name:e.label})),"default-project-id":fe.value.length===1?fe.value[0]:void 0,"personal-space-id":U.value,"can-write":G.value?.permissions.includes(`board.write`)??!1,onClose:n[3]||=e=>ae.value=!1,onSaved:Z},null,8,[`open`,`item`,`projects`,`default-project-id`,`personal-space-id`,`can-write`])):u(``,!0),q.value?(r(),y(gt,{key:2,open:ie.value,projects:J.value.map(e=>({id:e.value,name:e.label})),onClose:n[4]||=e=>ie.value=!1},null,8,[`open`,`projects`])):u(``,!0),se.value?(r(),y(ee,{key:3,label:ce.value},null,8,[`label`])):ue.value?(r(),v(`div`,Dt,[g(`p`,null,l(ue.value),1),g(`button`,{class:`quiet-button`,type:`button`,onClick:Ce},l(m(c)(`employees.retry`)),1)])):G.value?K.value?(r(),y(Le,{key:6,"personal-space-id":U.value,projects:m(d).state?.personalProjects??[]},null,8,[`personal-space-id`,`projects`])):q.value&&G.value.runtimeStatus!==`ready`?(r(),v(`div`,kt,[g(`p`,null,l(m(c)(`employees.installRequired`)),1),g(`small`,null,l(m(c)(`employees.installHelp`)),1)])):p.value?p.value===Nt&&X.value?(r(),y(te,{key:9,"visible-project-ids":fe.value,"onUpdate:visibleProjectIds":n[6]||=e=>fe.value=e,boards:pe.value,projects:J.value.map(e=>({id:e.value,name:e.label})),"failed-projects":me.value,"can-move-tasks":G.value.permissions.includes(`board.write`),"moving-item-keys":L.value,"action-error":R.value,"resettable-filter":q.value,"filter-storage-unavailable":m(Y).storageUnavailable.value,onResetProjectFilter:m(Y).reset,onMoveTask:xe,onSelectTask:_e,onCreateTask:n[7]||=e=>_e(),onRetry:Z},null,8,[`visible-project-ids`,`boards`,`projects`,`failed-projects`,`can-move-tasks`,`moving-item-keys`,`action-error`,`resettable-filter`,`filter-storage-unavailable`,`onResetProjectFilter`])):h.value&&h.value.runtimeStatus!==`ready`?(r(),v(`div`,jt,[g(`p`,null,l(m(c)(`employees.installRequired`)),1),g(`small`,null,l(m(c)(`employees.installHelp`)),1)])):h.value?(r(),v(`iframe`,{key:h.value.workbenchUrl,src:h.value.workbenchUrl,title:`${h.value.name} · ${h.value.project.name}`,class:`employee-workbench-frame`},null,8,Mt)):u(``,!0):(r(),v(`div`,At,[g(`h2`,null,l(m(c)(`employees.emptyWorkbench`)),1),g(`p`,null,l(m(c)(`employees.manageHint`)),1),g(`button`,{class:`quiet-button`,type:`button`,onClick:n[5]||=e=>H.value=!0},l(m(c)(`employees.manageProjects`)),1)])):(r(),v(`div`,Ot,[g(`p`,null,l(m(c)(`employees.unavailable`)),1),_(m(T),{to:`/project-agents`},{default:a(()=>[e(l(m(c)(`employees.backToAgents`)),1)]),_:1})]))],8,yt))}}),[[`__scopeId`,`data-v-fba11ab5`]]);export{Pt as default};
@@ -1 +0,0 @@
1
- import{N as e,T as t,y as n}from"./i18n-CVFADb_M.js";import{t as r}from"./KnowledgeWorkspace-DKij2_B4.js";var i=t({__name:`KnowledgePage`,setup(t){return(t,i)=>(e(),n(r))}});export{i as default};
@@ -1 +0,0 @@
1
- import{N as e,T as t,y as n}from"./i18n-CVFADb_M.js";import{t as r}from"./KnowledgeWorkspace-DKij2_B4.js";var i=t({__name:`PersonalProjectsPage`,setup(t){return(t,i)=>(e(),n(r,{"personal-projects-only":``}))}});export{i as default};
@@ -1 +0,0 @@
1
- .project-agent-assignment-dialog[data-v-ee37776b]{background:0 0;border:0;border-radius:12px;width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);padding:0}.project-agent-assignment-dialog-shell[data-v-ee37776b]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-assignment-dialog-header[data-v-ee37776b],.project-agent-assignment-dialog-actions[data-v-ee37776b]{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.project-agent-assignment-dialog-header[data-v-ee37776b]{border-bottom:1px solid #e1e6e2}.project-agent-assignment-dialog-header h3[data-v-ee37776b]{color:#283a31;font-size:16px}.project-agent-assignment-dialog-fields[data-v-ee37776b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;padding:18px;display:grid;overflow:auto}.project-agent-assignment-dialog-fields label[data-v-ee37776b]{color:#626d66;gap:6px;font-size:11px;font-weight:650;display:grid}.project-agent-assignment-dialog-fields input[data-v-ee37776b],.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:8px 9px;font-size:12px;line-height:1.5}.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]{resize:vertical}.project-agent-assignment-dialog-fields input[data-v-ee37776b]:focus-visible,.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-assignment-wide-field[data-v-ee37776b]{grid-column:1/-1}.project-agent-assignment-dialog-error[data-v-ee37776b]{color:#8b3f38;margin:0 18px;font-size:11px}.project-agent-assignment-dialog-actions[data-v-ee37776b]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-ee37776b]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700}.project-agent-primary-action[data-v-ee37776b]:focus-visible{outline-offset:2px;outline:2px solid #91a398}@media (width<=620px){.project-agent-assignment-dialog-fields[data-v-ee37776b]{grid-template-columns:1fr}.project-agent-assignment-wide-field[data-v-ee37776b]{grid-column:auto}}.project-agent-dialog[data-v-4d36bcaf]{background:0 0;border:0;border-radius:12px;width:min(760px,100vw - 64px);max-height:calc(100vh - 64px);padding:0;overflow:hidden}.project-agent-dialog-shell[data-v-4d36bcaf]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-dialog-header[data-v-4d36bcaf],.project-agent-dialog-actions[data-v-4d36bcaf]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-4d36bcaf]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-4d36bcaf]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-4d36bcaf]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.project-agent-dialog-fields label[data-v-4d36bcaf]{color:#626d66;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:650;display:grid}.project-agent-dialog-fields input[data-v-4d36bcaf],.project-agent-dialog-fields select[data-v-4d36bcaf],.project-agent-dialog-fields textarea[data-v-4d36bcaf]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:9px 10px;font-size:12px;line-height:1.5}.project-agent-dialog-fields textarea[data-v-4d36bcaf]{resize:vertical}.project-agent-dialog-fields input[data-v-4d36bcaf]:focus-visible,.project-agent-dialog-fields select[data-v-4d36bcaf]:focus-visible,.project-agent-dialog-fields textarea[data-v-4d36bcaf]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-4d36bcaf],.project-agent-id-note[data-v-4d36bcaf]{grid-column:1/-1}.project-agent-dialog-error[data-v-4d36bcaf]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-4d36bcaf]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-4d36bcaf]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-4d36bcaf]:hover{background:#2b4234}.project-agent-primary-action[data-v-4d36bcaf]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-4d36bcaf]:disabled,.project-agent-dialog-fields[data-v-4d36bcaf] :disabled{cursor:not-allowed;opacity:.6}.project-agent-dialog-check[data-v-4d36bcaf]{align-items:center;gap:7px!important;display:flex!important}.project-agent-dialog-check input[data-v-4d36bcaf]{width:auto!important}.project-agent-dialog-note[data-v-4d36bcaf]{color:#7b857e;font-size:10px;line-height:1.55}.project-team[data-v-077ab7fe]{border-top:1px solid #dfe5e0;grid-column:1/-1;min-width:0;padding-block:12px}.project-team-peers[data-v-077ab7fe]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-team-peers[data-v-077ab7fe]>*{color:#31453a;background:#edf3ee;border:1px solid #cad9cd;border-radius:6px;padding:7px 10px;font-size:12px}.project-team-summary[data-v-077ab7fe]{color:#53665a;margin:9px 0;font-size:12px}.project-team-members[data-v-077ab7fe]{gap:9px;margin:10px 0 16px 18px;padding:0;list-style:none;display:grid}.project-team-members button[data-v-077ab7fe]{text-align:start;color:#31453a;background:0 0;border:0;gap:3px;max-width:100%;display:grid}.project-team-members span[data-v-077ab7fe]{color:#596b60;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.project-team summary[data-v-077ab7fe]{cursor:pointer;font-size:12px}.team-lead-field[data-v-077ab7fe]{flex-wrap:wrap;align-items:center;gap:12px;margin-block:14px;display:flex}.team-lead-field select[data-v-077ab7fe]{max-width:100%;padding:7px}.project-team fieldset[data-v-077ab7fe]{border:0;flex-wrap:wrap;gap:12px;margin-bottom:14px;padding:0;display:flex}.project-team fieldset label[data-v-077ab7fe]{align-items:center;gap:5px;font-size:12px;display:flex}.project-team legend[data-v-077ab7fe]{margin-bottom:8px;font-size:12px}.project-agent-automation-policy[data-v-077ab7fe]{border-block:1px solid #dfe5e0;grid-template-columns:minmax(110px,150px) minmax(0,1fr);align-items:center;gap:14px;padding:11px 0;display:grid}.project-agent-automation-policy>header[data-v-077ab7fe]{min-width:0}.project-agent-automation-policy h3[data-v-077ab7fe]{color:#31453a;font-size:12px;line-height:1.35}.project-agent-automation-policy header span[data-v-077ab7fe]{color:#68756d;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;display:block;overflow:hidden}.project-agent-policy-options[data-v-077ab7fe]{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.project-agent-policy-options label[data-v-077ab7fe]{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:2px 16px;display:grid}.project-agent-policy-options label+label[data-v-077ab7fe]{border-inline-start:1px solid #e2e7e3}.project-agent-policy-options label>span[data-v-077ab7fe]{gap:3px;min-width:0;display:grid}.project-agent-policy-options strong[data-v-077ab7fe]{color:#3d5045;font-size:10px;line-height:1.4}.project-agent-policy-options small[data-v-077ab7fe]{color:#6d7971;overflow-wrap:anywhere;max-width:54ch;font-size:9px;line-height:1.45}.project-agent-policy-options input[data-v-077ab7fe]{appearance:none;cursor:pointer;background:#e8ece9;border:1px solid #aeb8b1;border-radius:999px;width:34px;height:19px;margin:0;transition:background-color .14s ease-out,border-color .14s ease-out;position:relative}.project-agent-policy-options input[data-v-077ab7fe]:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .14s ease-out;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #24372c38}.project-agent-policy-options input[data-v-077ab7fe]:checked{background:#4d8164;border-color:#3f7658}.project-agent-policy-options input[data-v-077ab7fe]:checked:after{transform:translate(15px)}.project-agent-policy-options input[data-v-077ab7fe]:focus-visible{outline-offset:3px;outline:2px solid #355f49}.project-agent-policy-options input[data-v-077ab7fe]:disabled{cursor:wait;opacity:.62}.project-agent-policy-feedback[data-v-077ab7fe]{grid-column:2;min-height:14px;padding-inline:16px}.project-agent-policy-state[data-v-077ab7fe],.project-agent-policy-feedback p[data-v-077ab7fe]{color:#66736b;font-size:9px;line-height:1.45}.project-agent-policy-feedback p[role=alert][data-v-077ab7fe]{color:#874b43}.project-agent-policy-feedback button[data-v-077ab7fe]{color:#355f49;font:inherit;cursor:pointer;background:0 0;border:0;margin-inline-start:6px;padding:0;font-weight:700}@media (width<=760px){.project-agent-automation-policy[data-v-077ab7fe],.project-agent-policy-options[data-v-077ab7fe]{grid-template-columns:minmax(0,1fr)}.project-agent-policy-options label[data-v-077ab7fe]{padding:8px 0}.project-agent-policy-options label+label[data-v-077ab7fe]{border-block-start:1px solid #e2e7e3;border-inline-start:0}.project-agent-policy-feedback[data-v-077ab7fe]{grid-column:1;padding-inline:0}}.project-agent-source-state[data-v-ca9a5880]{color:#727d75;background:#f7f9f7;border:1px solid #e1e6e2;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding:10px 12px;font-size:10px;display:flex}.project-agent-source-state.is-error[data-v-ca9a5880]{color:#8c4f49;background:#fbf3f1;border-color:#ebd5d0}.employee-work-history[data-v-bf7d05b1]{margin-block:24px;font-size:14px}summary[data-v-bf7d05b1]{cursor:pointer;padding-block:12px;font-weight:650}label[data-v-bf7d05b1]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}select[data-v-bf7d05b1]{max-width:100%;font:inherit;padding:8px}ol[data-v-bf7d05b1]{margin:12px 0;padding:0;list-style:none}li[data-v-bf7d05b1]{border-top:1px solid #dce3de;padding-block:14px}.work-record-meta[data-v-bf7d05b1]{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}p[data-v-bf7d05b1]{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}@media (width<=640px){.employee-work-history[data-v-bf7d05b1]{font-size:16px}}.project-agent-dialog[data-v-95db0a3d]{background:0 0;border:0;border-radius:12px;width:min(760px,100vw - 64px);max-height:calc(100vh - 64px);padding:0;overflow:hidden}.project-agent-dialog-shell[data-v-95db0a3d]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-dialog-header[data-v-95db0a3d],.project-agent-dialog-actions[data-v-95db0a3d]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-95db0a3d]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-95db0a3d]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-95db0a3d]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.project-agent-dialog-fields label[data-v-95db0a3d]{color:#626d66;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:650;display:grid}.project-agent-dialog-fields input[data-v-95db0a3d],.project-agent-dialog-fields select[data-v-95db0a3d],.project-agent-dialog-fields textarea[data-v-95db0a3d]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:9px 10px;font-size:12px;line-height:1.5}.project-agent-dialog-fields textarea[data-v-95db0a3d]{resize:vertical}.project-agent-dialog-fields input[data-v-95db0a3d]:focus-visible,.project-agent-dialog-fields select[data-v-95db0a3d]:focus-visible,.project-agent-dialog-fields textarea[data-v-95db0a3d]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-95db0a3d],.project-agent-id-note[data-v-95db0a3d]{grid-column:1/-1}.project-agent-strategy-fields[data-v-95db0a3d]{border:1px solid #dfe5e0;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:12px;display:grid}.project-agent-strategy-fields legend[data-v-95db0a3d]{color:#59665d;padding:0 5px;font-size:10px;font-weight:700}.project-agent-strategy-fields>small[data-v-95db0a3d]{color:#818a84;grid-column:1/-1;font-size:9px;line-height:1.5}.project-agent-id-note[data-v-95db0a3d]{color:#7b847e;margin-top:-8px;font-size:10px}.project-agent-dialog-error[data-v-95db0a3d]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-95db0a3d]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-95db0a3d]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-95db0a3d]:hover{background:#2b4234}.project-agent-primary-action[data-v-95db0a3d]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-95db0a3d]:disabled,.project-agent-dialog-fields[data-v-95db0a3d] :disabled{cursor:not-allowed;opacity:.6}@media (width<=720px){.project-agent-dialog-fields[data-v-95db0a3d]{grid-template-columns:1fr}.project-agent-wide-field[data-v-95db0a3d],.project-agent-id-note[data-v-95db0a3d]{grid-column:1}}.project-agent-row-shell[data-v-9416bcaa]{align-items:flex-start;gap:6px;min-width:0;display:flex}.project-agent-row-shell>.project-agent-row[data-v-9416bcaa]{flex:1;min-width:0}.project-agent-row-shell>.agent-hand[data-v-9416bcaa]{margin-top:14px}.project-agent-header-actions[data-v-9416bcaa]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-agents-view[data-v-9416bcaa]{flex-direction:column;gap:12px;min-height:0;padding:18px 32px 20px;display:flex;overflow:hidden}.project-agents-header[data-v-9416bcaa],.project-agent-section-heading[data-v-9416bcaa],.project-agent-section-tools[data-v-9416bcaa],.project-agent-detail-actions[data-v-9416bcaa],.project-agent-assignment-card header[data-v-9416bcaa],.project-agent-task-card header[data-v-9416bcaa],.project-agent-learning-card header[data-v-9416bcaa],.project-agent-day-detail header[data-v-9416bcaa]{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-agents-header h2[data-v-9416bcaa]{color:#283a31;font-size:18px}.project-agents-header-meta[data-v-9416bcaa]{color:#7a847d;font-size:10px}.project-agents-summary[data-v-9416bcaa]{color:#58675d;gap:18px;padding:2px 0 4px;font-size:12px;line-height:1.5;display:flex}.project-agents-summary span[data-v-9416bcaa]:first-child{color:#2f493b;font-weight:700}.project-agent-add[data-v-9416bcaa]{color:#fff;cursor:pointer;background:#344c3d;border:0;border-radius:8px;min-height:40px;padding:9px 14px;font-size:12px;font-weight:600}.project-agent-add[data-v-9416bcaa]:hover{background:#2b4234}.project-agent-add[data-v-9416bcaa]:focus-visible,.quiet-button[data-v-9416bcaa]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-add[data-v-9416bcaa]:disabled{cursor:not-allowed;opacity:.55}.project-agents-toolbar[data-v-9416bcaa]{grid-template-columns:minmax(240px,320px) minmax(200px,1fr) auto;align-items:center;gap:12px;display:grid}.project-agents-search input[data-v-9416bcaa]{color:#2e3932;background:#fff;border:1px solid #cfd7d1;border-radius:8px;width:100%;min-height:44px;padding:10px 12px;font-size:13px}.project-agents-search input[data-v-9416bcaa]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agents-status-filter[data-v-9416bcaa]{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;gap:3px;padding:3px;display:flex}.project-agents-status-filter button[data-v-9416bcaa],.quiet-button[data-v-9416bcaa]{color:#58675d;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:34px;padding:7px 10px;font-size:12px}.project-agents-status-filter button[aria-pressed=true][data-v-9416bcaa]{color:#315440;background:#fff;font-weight:700;box-shadow:0 1px 3px #27392f1f}.project-agents-directory[data-v-9416bcaa]{background:#fff;border:1px solid #cfd7d1;border-radius:10px;flex:1;grid-template-columns:minmax(360px,.94fr) minmax(390px,1.06fr);min-height:0;display:grid;overflow:hidden}.project-agent-list[data-v-9416bcaa]{border-right:1px solid #dfe4e0;min-width:0;min-height:0;overflow:auto}.project-agent-row[data-v-9416bcaa]{width:100%;color:inherit;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6eae7;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:14px 16px;display:grid}.project-agent-row[data-v-9416bcaa]:hover{background:#f7f9f7}.project-agent-row.selected[data-v-9416bcaa]{background:#edf3ef}.project-agent-row[data-v-9416bcaa]:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #91a398;position:relative}.project-agent-row-heading[data-v-9416bcaa]{align-items:center;gap:7px;min-width:0;display:flex}.project-agent-occupation-emoji[data-v-9416bcaa]{flex:none;justify-content:center;align-items:center;min-width:1.2em;font-size:15px;line-height:1;display:inline-flex}.project-agent-row-heading strong[data-v-9416bcaa]{color:#293b31;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.project-agent-row-heading i[data-v-9416bcaa],.project-agent-assignment-card header i[data-v-9416bcaa],.project-agent-task-card header i[data-v-9416bcaa],.project-agent-learning-card header i[data-v-9416bcaa]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 7px;font-size:9px;font-style:normal;font-weight:700}.project-agent-row-heading i.is-active[data-v-9416bcaa]{color:#2f6947;background:#e1eee6}.project-agent-row-heading i.is-archived[data-v-9416bcaa]{color:#75695d;background:#eeeae5}.project-agent-kind[data-v-9416bcaa]{color:#53647b!important;background:#eef2f7!important}.project-agent-row-id[data-v-9416bcaa]{color:#8a938d;overflow-wrap:anywhere;text-align:right;font-size:9px}.project-agent-row-projects[data-v-9416bcaa]{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.project-agent-row-projects b[data-v-9416bcaa],.project-agent-tags span[data-v-9416bcaa],.project-agent-inline-list span[data-v-9416bcaa]{color:#5f6b64;background:#eef1ef;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-row-projects em[data-v-9416bcaa]{color:#8a938d;font-size:9px;font-style:normal}.project-agent-row-responsibility[data-v-9416bcaa]{color:#59645d;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:11px;line-height:1.5;overflow:hidden}.project-agent-row-work[data-v-9416bcaa]{color:#59645d;grid-column:1/-1;font-size:10px;line-height:1.5}.project-agent-work-dot[data-v-9416bcaa]{background:#4b8d63;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.project-agent-row-capabilities[data-v-9416bcaa]{flex-wrap:wrap;grid-column:1/-1;gap:5px;min-height:20px;display:flex}.project-agent-row-capabilities b[data-v-9416bcaa]{color:#68736c;background:#f1f3f1;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-detail[data-v-9416bcaa]{min-width:0;min-height:0;padding:20px;overflow:auto;container-type:inline-size}.employee-project-overview[data-v-9416bcaa]{border-bottom:1px solid #e1e6e2;margin:22px 0;padding-bottom:18px}.employee-project-overview-heading[data-v-9416bcaa]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.employee-project-overview-heading h4[data-v-9416bcaa]{color:#33483c;margin:0;font-size:14px}.employee-project-overview-heading p[data-v-9416bcaa],.employee-project-overview-hint[data-v-9416bcaa]{color:#58675d;margin:5px 0 0;font-size:12px;line-height:1.6}.employee-project-overview-hint[data-v-9416bcaa]{margin-top:12px}.employee-assigned-projects[data-v-9416bcaa]{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 20px;margin-top:12px;display:grid}.employee-assigned-projects a[data-v-9416bcaa]{color:#315c43;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;line-height:1.5;text-decoration:none;display:flex}.employee-assigned-projects a[data-v-9416bcaa]:hover{text-underline-offset:3px;text-decoration:underline}.employee-assigned-projects a[data-v-9416bcaa]:focus-visible{outline-offset:3px;outline:2px solid #91a398}.employee-assigned-projects a span[data-v-9416bcaa]{overflow-wrap:anywhere}.employee-assigned-projects svg[data-v-9416bcaa]{flex-shrink:0}@container (width<=480px){.employee-assigned-projects[data-v-9416bcaa]{grid-template-columns:minmax(0,1fr)}}.project-agent-detail>header[data-v-9416bcaa]{border-bottom:1px solid #e1e6e2;grid-template-columns:minmax(0,1fr) max-content;align-items:flex-start;gap:16px;padding-bottom:16px;display:grid}.project-agent-detail-heading[data-v-9416bcaa]{min-width:0}.project-agent-detail h3[data-v-9416bcaa]{color:#263b30;text-wrap:balance;font-size:17px;line-height:1.32}.project-agent-detail header p[data-v-9416bcaa]{color:#7a847d;overflow-wrap:anywhere;max-width:72ch;margin-top:5px;font-size:10px;line-height:1.5}.project-agent-detail-actions[data-v-9416bcaa]{grid-auto-columns:78px;grid-auto-flow:column;justify-content:end;gap:8px;display:grid}.project-agent-detail-actions .quiet-button[data-v-9416bcaa]{white-space:nowrap;width:78px}.project-agent-detail-meta[data-v-9416bcaa],.project-agent-compact-meta[data-v-9416bcaa]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}.project-agent-detail-meta div[data-v-9416bcaa],.project-agent-compact-meta div[data-v-9416bcaa]{min-width:0}.project-agent-detail-meta dt[data-v-9416bcaa],.project-agent-compact-meta dt[data-v-9416bcaa],.project-agent-detail-section h4[data-v-9416bcaa]{color:#7a847d;letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.project-agent-detail-meta dd[data-v-9416bcaa],.project-agent-compact-meta dd[data-v-9416bcaa]{overflow-wrap:anywhere;color:#39483f;margin:4px 0 0;font-size:11px}.project-agent-detail-meta dd small[data-v-9416bcaa]{color:#818a84;margin-top:3px;font-size:9px;line-height:1.4;display:block}.project-agent-detail-section[data-v-9416bcaa]{margin-top:22px}.project-agent-detail-section.is-responsibility[data-v-9416bcaa]{background:#f2f5f2;border-radius:10px;padding:14px}.project-agent-detail-section p[data-v-9416bcaa],.project-agent-detail-section li[data-v-9416bcaa]{color:#4f5c54;font-size:11px;line-height:1.65}.project-agent-tags[data-v-9416bcaa],.project-agent-inline-list[data-v-9416bcaa]{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.project-agent-muted[data-v-9416bcaa]{color:#8a928d!important}.project-agent-detail-notice[data-v-9416bcaa]{background:#f5f5f1;border-radius:7px;margin:12px 0 0;padding:8px 10px;color:#6f705f!important}.project-agent-detail-placeholder[data-v-9416bcaa],.project-agents-state[data-v-9416bcaa]{color:#737d76;text-align:center;place-content:center;justify-items:center;gap:8px;min-height:240px;font-size:11px;display:grid}.project-agents-state[data-v-9416bcaa]{background:#fafbfa;border:1px solid #d9dfda;border-radius:10px;flex:1}.project-agents-state strong[data-v-9416bcaa]{color:#36473e;font-size:14px}.project-agents-state p[data-v-9416bcaa]{max-width:52ch;line-height:1.6}.project-agents-state.is-error[data-v-9416bcaa]{color:#8b3f38}.project-agent-assignment-list[data-v-9416bcaa],.project-agent-task-list[data-v-9416bcaa],.project-agent-learning-list[data-v-9416bcaa],.project-agent-recruitment-list[data-v-9416bcaa]{gap:8px;margin-top:9px;display:grid}.project-agent-task-list[data-v-9416bcaa]{grid-template-columns:minmax(0,1fr);min-width:0}.project-agent-execution-summary[data-v-9416bcaa]{border-top:1px solid #dfe5e0;min-width:0;margin-top:13px;padding-top:12px}.project-agent-worker-event-evidence[data-v-9416bcaa]{background:#f8faf8;border:1px dashed #d8dfd9;border-radius:8px;margin-top:13px;padding:10px 10px 0}.project-agent-execution-summary .project-agent-section-heading[data-v-9416bcaa]{gap:8px}.project-agent-execution-summary h5[data-v-9416bcaa]{color:#65736a;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-agent-execution-summary-table-wrap[data-v-9416bcaa]{box-sizing:border-box;overscroll-behavior-inline:contain;background:#fff;border:1px solid #dce3de;border-radius:8px;width:100%;max-width:100%;margin-top:7px;overflow-x:auto}.project-agent-execution-summary-table-wrap[data-v-9416bcaa]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-execution-summary-table[data-v-9416bcaa]{border-collapse:collapse;table-layout:fixed;color:#4f5e54;width:100%;min-width:1040px;font-size:12px;line-height:1.5}.project-agent-execution-summary-table th[data-v-9416bcaa],.project-agent-execution-summary-table td[data-v-9416bcaa]{overflow-wrap:anywhere;text-align:left;vertical-align:top;border-bottom:1px solid #e6ebe7;border-right:1px solid #e6ebe7;min-width:0;padding:8px 9px}.project-agent-execution-summary-table tr[data-v-9416bcaa]>:last-child{border-right:0}.project-agent-execution-summary-table tbody tr[data-v-9416bcaa]:last-child>*{border-bottom:0}.project-agent-execution-summary-table thead th[data-v-9416bcaa]{color:#65736a;letter-spacing:.04em;text-transform:uppercase;background:#f3f6f4;font-size:11px;font-weight:750}.project-agent-execution-summary-table thead th[data-v-9416bcaa]:first-child{width:14%}.project-agent-execution-summary-table thead th[data-v-9416bcaa]:nth-child(2){width:20%}.project-agent-execution-summary-table thead th[data-v-9416bcaa]:nth-child(3){width:13%}.project-agent-execution-summary-table thead th[data-v-9416bcaa]:nth-child(4),.project-agent-execution-summary-table thead th[data-v-9416bcaa]:nth-child(5){width:15%}.project-agent-execution-summary-table thead th[data-v-9416bcaa]:nth-child(6){width:12%}.project-agent-execution-summary-table tbody tr[data-v-9416bcaa]:hover{background:#fafcfb}.project-agent-execution-summary-table tbody th[data-v-9416bcaa]{color:#3f5647;font-weight:700}.project-agent-execution-summary-table tbody strong[data-v-9416bcaa],.project-agent-execution-summary-table tbody span[data-v-9416bcaa],.project-agent-execution-summary-table tbody small[data-v-9416bcaa],.project-agent-execution-summary-table tbody a[data-v-9416bcaa]{display:block}.project-agent-execution-summary-table tbody small[data-v-9416bcaa]{color:#647168;margin-top:3px;font-size:11px;font-weight:500}.project-agent-execution-summary-table tbody .project-agent-reporter-label[data-v-9416bcaa]{margin-top:8px}.project-agent-execution-summary-table tbody a[data-v-9416bcaa]{color:#386c50;text-underline-offset:2px;margin-top:3px;text-decoration-thickness:1px}.project-agent-execution-summary-table tbody a[data-v-9416bcaa]:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #91a398}.project-agent-execution-worker[data-v-9416bcaa]{align-items:center;gap:4px;display:flex!important}.project-agent-execution-summary-row i[data-v-9416bcaa]{color:#66716a;background:#e6eae7;border-radius:999px;padding:2px 6px;font-size:11px;font-style:normal;font-weight:700;display:inline-flex}.project-agent-execution-summary-row i.is-completed[data-v-9416bcaa]{color:#2f6947;background:#e1eee6}.project-agent-execution-summary-row i.is-failed[data-v-9416bcaa]{color:#8c4f49;background:#f7e9e6}.project-agent-execution-summary-row i.is-cancelled[data-v-9416bcaa]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-list[data-v-9416bcaa]{margin:7px 0 0;padding:0;list-style:none;display:grid}.project-agent-worker-event-row[data-v-9416bcaa]{border-top:1px solid #e6ebe7;min-width:0;padding:10px 0}.project-agent-worker-event-row[data-v-9416bcaa]:first-child{border-top:0}.project-agent-worker-event-row header[data-v-9416bcaa]{align-items:flex-start}.project-agent-worker-event-row header strong[data-v-9416bcaa]{overflow-wrap:anywhere;color:#3f5647;align-items:center;gap:5px;min-width:0;font-size:10px;display:flex}.project-agent-worker-event-row header strong small[data-v-9416bcaa]{color:#89948c;margin:0;font-size:8px;font-weight:500;display:inline}.project-agent-worker-event-row header i[data-v-9416bcaa]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700}.project-agent-worker-event-row header i.is-completed[data-v-9416bcaa]{color:#2f6947;background:#e1eee6}.project-agent-worker-event-row header i.is-failed[data-v-9416bcaa]{color:#8c4f49;background:#f7e9e6}.project-agent-worker-event-row header i.is-cancelled[data-v-9416bcaa]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-meta[data-v-9416bcaa]{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:8px 0 0;display:grid}.project-agent-execution-summary-meta div[data-v-9416bcaa]{min-width:0}.project-agent-execution-summary-meta dt[data-v-9416bcaa]{color:#89948c;letter-spacing:.04em;text-transform:uppercase;font-size:8px;font-weight:700}.project-agent-execution-summary-meta dd[data-v-9416bcaa]{overflow-wrap:anywhere;color:#4f5e54;margin:2px 0 0;font-size:9px;line-height:1.45}.project-agent-execution-summary-meta dd small[data-v-9416bcaa]{color:#89948c;margin-top:2px;font-size:8px;display:block}.project-agent-assignment-card[data-v-9416bcaa],.project-agent-task-card[data-v-9416bcaa],.project-agent-learning-card[data-v-9416bcaa]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;min-width:0;padding:11px 12px}.project-agent-recruitment-card[data-v-9416bcaa]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;padding:11px 12px}.project-agent-assignment-card header strong[data-v-9416bcaa],.project-agent-task-card header strong[data-v-9416bcaa],.project-agent-learning-card header strong[data-v-9416bcaa]{color:#33483a;font-size:11px}.project-agent-card-actions[data-v-9416bcaa]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.project-agent-assignment-card p[data-v-9416bcaa],.project-agent-task-card p[data-v-9416bcaa],.project-agent-learning-card p[data-v-9416bcaa]{margin:7px 0 0}.project-agent-assignment-card small[data-v-9416bcaa],.project-agent-task-card small[data-v-9416bcaa],.project-agent-learning-card small[data-v-9416bcaa]{color:#818a84;margin-top:6px;font-size:9px;line-height:1.5;display:block}.project-agent-assignment-card header i.is-ended[data-v-9416bcaa],.project-agent-assignment-card header i.is-replaced[data-v-9416bcaa]{color:#75695d;background:#eeeae5}.project-agent-strategy-note[data-v-9416bcaa],.project-agent-execution-line[data-v-9416bcaa]{color:#7a847d;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:8px;font-size:9px;display:flex}.project-agent-strategy-note strong[data-v-9416bcaa],.project-agent-execution-line strong[data-v-9416bcaa]{color:#53685a;font-size:10px}.project-agent-strategy-note small[data-v-9416bcaa]{color:#8c5d54;flex-basis:100%}.project-agent-routing-decision[data-v-9416bcaa]{color:#65736a;background:#f3f7f3;border:1px solid #dce5de;border-radius:7px;gap:5px;margin-top:10px;padding:9px 10px;font-size:9px;display:grid}.project-agent-routing-decision .project-agent-section-heading[data-v-9416bcaa]{align-items:baseline;gap:8px}.project-agent-routing-decision .project-agent-section-heading strong[data-v-9416bcaa]{color:#3f604b;font-size:10px}.project-agent-routing-decision small[data-v-9416bcaa]{color:#65736a;line-height:1.45}.project-agent-blocked[data-v-9416bcaa]{color:#8c5d54!important}.project-agent-task-card header[data-v-9416bcaa]{align-items:flex-start}.project-agent-task-card header small[data-v-9416bcaa]{margin-top:3px}.project-agent-task-card header i[data-v-9416bcaa]{color:#53647b;background:#eef2f7}.project-agent-task-card header i.is-completed[data-v-9416bcaa]{color:#2f6947;background:#e1eee6}.project-agent-task-card header i.is-failed[data-v-9416bcaa]{color:#8c4f49;background:#f7e9e6}.project-agent-task-card header i.is-cancelled[data-v-9416bcaa]{color:#75695d;background:#eeeae5}.project-agent-heatmap-viewport[data-v-9416bcaa]{contain:layout inline-size paint;min-width:0;max-width:100%;overflow-x:clip}.project-agent-heatmap[data-v-9416bcaa]{grid-template-rows:repeat(7,minmax(10px,1fr));grid-auto-columns:minmax(10px,1fr);grid-auto-flow:column;gap:3px;width:100%;max-width:100%;margin-top:9px;padding:0;display:grid;overflow-x:auto}.project-agent-heat-cell[data-v-9416bcaa]{appearance:none;box-sizing:border-box;aspect-ratio:1;background:#f2f4f2;border:1px solid #dfe6e0;border-radius:3px;min-width:9px;margin:0;padding:0}.project-agent-heat-cell.intensity-1[data-v-9416bcaa]{background:#dce9df}.project-agent-heat-cell.intensity-2[data-v-9416bcaa]{background:#b9d3bf}.project-agent-heat-cell.intensity-3[data-v-9416bcaa]{background:#87b493}.project-agent-heat-cell.intensity-4[data-v-9416bcaa]{background:#548466}.project-agent-heat-cell[data-v-9416bcaa]:focus-visible,.project-agent-heat-cell.selected[data-v-9416bcaa]{box-shadow:none;border:2px solid #2f5740;outline:none}.project-agent-day-detail[data-v-9416bcaa]{background:#f6f8f6;border-radius:8px;margin-top:10px;padding:10px}.project-agent-day-detail ul[data-v-9416bcaa]{margin:8px 0 0;padding-left:17px}.project-agent-day-detail li[data-v-9416bcaa]{margin-top:6px}.project-agent-day-detail li strong[data-v-9416bcaa],.project-agent-day-detail li span[data-v-9416bcaa],.project-agent-day-detail li small[data-v-9416bcaa]{display:block}.project-agent-day-detail li span[data-v-9416bcaa]{color:#66736b;font-size:9px}.project-agent-day-detail li small[data-v-9416bcaa]{color:#7e8981;font-size:9px}.project-agent-client-list[data-v-9416bcaa],.project-agent-rule-list[data-v-9416bcaa]{gap:5px;margin-top:9px;display:grid}.project-agent-client-row[data-v-9416bcaa],.project-agent-rule-row[data-v-9416bcaa]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-client-row strong[data-v-9416bcaa],.project-agent-rule-row strong[data-v-9416bcaa]{color:#43584a;font-size:10px}.project-agent-client-row small[data-v-9416bcaa]{color:#8a938d;grid-column:1/-1}.project-agent-executor-list[data-v-9416bcaa]{gap:5px;margin-top:9px;display:grid}.project-agent-executor-row[data-v-9416bcaa]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-executor-row strong[data-v-9416bcaa]{color:#43584a;font-size:10px}.project-agent-executor-row small[data-v-9416bcaa]{color:#8a938d;grid-column:1/-1}.project-agent-learning-card header i[data-v-9416bcaa]{color:#6c776f;background:#f1f3f1}.project-agent-evidence-list[data-v-9416bcaa]{margin:8px 0 0;padding-left:17px}.project-agent-evidence-list li[data-v-9416bcaa]{color:#768179;font-size:9px}.project-agent-learning-actions[data-v-9416bcaa]{gap:6px;margin-top:8px;display:flex}.project-agent-note[data-v-9416bcaa]{color:#818a84;margin-top:9px;font-size:9px;line-height:1.5;display:block}.sr-only[data-v-9416bcaa]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1180px){.project-agents-toolbar[data-v-9416bcaa]{grid-template-columns:minmax(220px,280px) 1fr}.project-agents-status-filter[data-v-9416bcaa]{grid-column:1/-1;justify-self:start}.project-agents-directory[data-v-9416bcaa]{grid-template-columns:minmax(320px,.9fr) minmax(330px,1fr)}.project-agent-detail-meta[data-v-9416bcaa],.project-agent-compact-meta[data-v-9416bcaa]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=420px){.project-agent-detail>header[data-v-9416bcaa]{grid-template-columns:minmax(0,1fr)}.project-agent-detail-actions[data-v-9416bcaa]{justify-content:start}}@media (width<=760px){.project-agents-view[data-v-9416bcaa]{padding:14px 16px 18px;overflow:auto}.project-agents-header[data-v-9416bcaa],.project-agents-summary[data-v-9416bcaa],.project-agent-section-heading[data-v-9416bcaa],.project-agent-assignment-card header[data-v-9416bcaa]{flex-wrap:wrap;align-items:flex-start}.project-agents-toolbar[data-v-9416bcaa]{grid-template-columns:minmax(0,1fr)}.project-agents-project-filter[data-v-9416bcaa],.project-agents-search[data-v-9416bcaa],.project-agents-status-filter[data-v-9416bcaa]{grid-column:1}.project-agents-status-filter[data-v-9416bcaa]{flex-wrap:wrap;justify-self:stretch;width:100%}.project-agents-directory[data-v-9416bcaa]{flex:none;grid-template-columns:minmax(0,1fr);overflow:visible}.project-agent-list[data-v-9416bcaa]{border-bottom:1px solid #dfe4e0;border-right:0;max-height:340px}.project-agent-detail[data-v-9416bcaa]{min-height:520px;padding:16px}.project-agent-client-row[data-v-9416bcaa],.project-agent-rule-row[data-v-9416bcaa],.project-agent-executor-row[data-v-9416bcaa]{grid-template-columns:minmax(0,1fr);align-items:start}.project-agent-client-row small[data-v-9416bcaa],.project-agent-executor-row small[data-v-9416bcaa]{grid-column:1}.project-agent-execution-summary-meta[data-v-9416bcaa]{grid-template-columns:minmax(0,1fr)}.project-agent-worker-event-row header[data-v-9416bcaa]{gap:8px}}
@@ -1,12 +0,0 @@
1
- import{A as e,C as t,F as n,H as r,I as i,M as a,N as o,T as s,V as c,Z as l,_ as u,a as d,at as f,b as p,c as m,d as h,f as g,h as _,k as v,m as y,n as b,nt as x,rt as S,u as C,v as w,w as T,x as E,y as D,z as O}from"./i18n-CVFADb_M.js";import{t as k}from"./console-BAIVNC-N.js";import{t as A}from"./GrowthLoading-WXCj8b0r.js";import{t as j}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as M}from"./useApi-CROJJdhE-CuJ16v2S.js";import{t as N}from"./vue-router-C8KuEZ6a.js";import{a as P,i as F,n as I,r as L,t as R}from"./client-Bl4oiW3E.js";import{c as z,d as ee,l as te,t as B}from"./AgentHand-BfLYPGjg.js";import{t as V}from"./useModalDialog-Ddv2XJQi.js";import{t as H}from"./SearchableSelect-214TvfYg.js";import{t as ne}from"./ProjectScopePicker-Cu5PdxF6.js";import{t as re}from"./EmployeeRecruitDialog-D-W043v4.js";function U(e){return e&&typeof e==`object`?e:{}}function W(e,t,n){return e[t]??e[n]}function G(e,t,n){let r=W(e,t,n);return typeof r==`string`?r:null}function K(e,t,n){let r=W(e,t,n);return Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:null}function q(e,t,n){let r=W(e,t,n);return typeof r==`number`&&Number.isInteger(r)&&r>=0?r:null}function ie(e){if(!e||typeof e!=`object`)return null;let t=U(e),n=G(t,`source`,`source`),r=q(t,`totalTokens`,`total_tokens`);return![`executor`,`host`,`dingdong`].includes(n??``)||r===null?null:{source:n,totalTokens:r,inputTokens:q(t,`inputTokens`,`input_tokens`),outputTokens:q(t,`outputTokens`,`output_tokens`),cachedInputTokens:q(t,`cachedInputTokens`,`cached_input_tokens`),cacheWriteInputTokens:q(t,`cacheWriteInputTokens`,`cache_write_input_tokens`),reasoningOutputTokens:q(t,`reasoningOutputTokens`,`reasoning_output_tokens`)}}function ae(e){if(!e||typeof e!=`object`)return null;let t=U(e),n=G(t,`application`,`application`);return[`codex`,`claude`,`claude_code`,`cursor`,`kiro`,`other`].includes(n??``)?{application:n,sessionId:G(t,`sessionId`,`session_id`),sessionUrl:G(t,`sessionUrl`,`session_url`)}:null}function J(e){return Array.isArray(e)?e:[]}function oe(e){let t=U(e);return Array.isArray(e)?e:J(t.agents??t.items)}function se(e){if(!e||typeof e!=`object`)return null;let t=U(e);return{mode:G(t,`mode`,`mode`)??null,reasoningEffort:G(t,`reasoningEffort`,`reasoning_effort`)??null,capabilityHints:J(W(t,`capabilityHints`,`capability_hints`)).filter(e=>typeof e==`string`)}}function ce(e){if(!e||typeof e!=`object`)return null;let t=U(e);return{enabled:typeof t.enabled==`boolean`?t.enabled:null,independentVerification:typeof W(t,`independentVerification`,`independent_verification`)==`boolean`?W(t,`independentVerification`,`independent_verification`):null,conflictFreeScopes:typeof W(t,`conflictFreeScopes`,`conflict_free_scopes`)==`boolean`?W(t,`conflictFreeScopes`,`conflict_free_scopes`):null,reason:G(t,`reason`,`reason`),workstreamBoundaries:J(W(t,`workstreamBoundaries`,`workstream_boundaries`)).filter(e=>typeof e==`string`)}}function le(e){if(!e||typeof e!=`object`)return null;let t=U(e),n=J(W(t,`allowList`,`allow_list`)).map(e=>{if(typeof e==`string`)return{executorId:e};let t=U(e);return{executorId:G(t,`executorId`,`executor_id`)??``,label:G(t,`label`,`label`),provider:G(t,`provider`,`provider`),model:G(t,`model`,`model`),client:G(t,`client`,`client`)}}).filter(({executorId:e})=>e),r=J(W(t,`lockedExecutorIds`,`locked_executor_ids`)).filter(e=>typeof e==`string`),i=J(W(t,`preferredExecutorIds`,`preferred_executor_ids`)).filter(e=>typeof e==`string`);return{mode:G(t,`mode`,`mode`)??`flexible`,allowList:n,lockedExecutorIds:r,preferredExecutorIds:i}}function Y(e){if(!e||typeof e!=`object`)return null;let t=U(e),n={executor:G(t,`executor`,`executor`),provider:G(t,`provider`,`provider`)??G(t,`actualModelProvider`,`actual_model_provider`),model:G(t,`model`,`model`)??G(t,`actualModel`,`actual_model`),client:G(t,`client`,`client`)??G(t,`sourceApplication`,`source_application`),rule:G(t,`rule`,`rule`),fallback:G(t,`fallback`,`fallback`),reportedAt:G(t,`reportedAt`,`reported_at`)};return[n.executor,n.provider,n.model,n.rule,n.fallback].some(Boolean)?n:null}function ue(e,t){let n=U(e),r=G(n,`personalProjectId`,`personal_project_id`),i=G(n,`assignmentId`,`assignment_id`);return!r||!i?null:{assignmentId:i,personalSpaceId:G(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,personalProjectId:r,agentId:G(n,`agentId`,`agent_id`)??t.agentId,responsibility:G(n,`responsibility`,`responsibility`)??t.profile.responsibility,scope:G(n,`scope`,`scope`),workKinds:J(W(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),capabilities:J(n.capabilities).filter(e=>typeof e==`string`),modelStrategyOverride:se(W(n,`modelStrategyOverride`,`model_strategy_override`)),executorPolicyOverride:le(W(n,`executorPolicyOverride`,`executor_policy_override`)),reason:G(n,`reason`,`reason`),status:G(n,`status`,`status`)??`active`,revision:typeof n.revision==`number`?n.revision:void 0,sourceApplication:G(n,`sourceApplication`,`source_application`),sourceSessionId:G(n,`sourceSessionId`,`source_session_id`),assignedAt:G(n,`assignedAt`,`assigned_at`)??t.createdAt,updatedAt:G(n,`updatedAt`,`updated_at`)??t.updatedAt,endedAt:G(n,`endedAt`,`ended_at`),endReason:G(n,`endReason`,`end_reason`),replacedByAssignmentId:G(n,`replacedByAssignmentId`,`replaced_by_assignment_id`)}}function de(e){let t=U(e);return{agentId:G(t,`agentId`,`agent_id`)??``,assignmentId:G(t,`assignmentId`,`assignment_id`),role:G(t,`role`,`role`)??`collaborator`,status:G(t,`status`,`status`),assignmentSummary:G(t,`assignmentSummary`,`assignment_summary`),joinedAt:G(t,`joinedAt`,`joined_at`),updatedAt:G(t,`updatedAt`,`updated_at`),endedAt:G(t,`endedAt`,`ended_at`)}}function fe(e){if(Array.isArray(e))return e.map(e=>{let t=U(e);return{agentId:G(t,`agentId`,`agent_id`),agentName:G(t,`agentName`,`agent_name`),occupationEmoji:G(t,`occupationEmoji`,`occupation_emoji`),workerId:G(t,`workerId`,`worker_id`),workerLabel:G(t,`workerLabel`,`worker_label`),workerOccupationEmoji:G(t,`workerOccupationEmoji`,`worker_occupation_emoji`),participantRole:G(t,`participantRole`,`participant_role`),executor:G(t,`executor`,`executor`),executorId:G(t,`executorId`,`executor_id`),sourceApplication:G(t,`sourceApplication`,`source_application`),sourceSessionId:G(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:G(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ae(W(t,`workerRuntime`,`worker_runtime`)),toolsUsed:K(t,`toolsUsed`,`tools_used`),actualModelProvider:G(t,`actualModelProvider`,`actual_model_provider`),actualModel:G(t,`actualModel`,`actual_model`),tokenUsage:ie(W(t,`tokenUsage`,`token_usage`)),workSummary:G(t,`workSummary`,`work_summary`),status:G(t,`status`,`status`)}})}function pe(e){let t=U(e),n=G(t,`eventId`,`event_id`),r=G(t,`taskId`,`task_id`);if(!n||!r)return null;let i=Y(W(t,`actualExecution`,`actual_execution`))??Y({executor:G(t,`actualExecutor`,`actual_executor`),provider:G(t,`actualModelProvider`,`actual_model_provider`),model:G(t,`actualModel`,`actual_model`),client:G(t,`sourceApplication`,`source_application`),rule:G(t,`routingRuleId`,`routing_rule_id`)??G(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:G(t,`fallbackReason`,`fallback_reason`)??G(t,`executorFallbackReason`,`executor_fallback_reason`),reportedAt:G(t,`createdAt`,`created_at`)});return{eventId:n,taskId:r,agentId:G(t,`agentId`,`agent_id`),status:G(t,`status`,`status`),actorKind:G(t,`actorKind`,`actor_kind`)??void 0,summary:G(t,`summary`,`summary`)??``,sourceApplication:G(t,`sourceApplication`,`source_application`),sourceSessionId:G(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:G(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ae(W(t,`workerRuntime`,`worker_runtime`)),toolsUsed:K(t,`toolsUsed`,`tools_used`),tokenUsage:ie(W(t,`tokenUsage`,`token_usage`)),actualExecution:i,actualModelProvider:G(t,`actualModelProvider`,`actual_model_provider`),actualModel:G(t,`actualModel`,`actual_model`),workerId:G(t,`workerId`,`worker_id`),workerLabel:G(t,`workerLabel`,`worker_label`),workerOccupationEmoji:G(t,`workerOccupationEmoji`,`worker_occupation_emoji`),workerStatus:G(t,`workerStatus`,`worker_status`),createdAt:G(t,`createdAt`,`created_at`)??``}}function me(e){if(!e||typeof e!=`object`)return null;let t=U(e);return{decisionId:G(t,`decisionId`,`decision_id`)??void 0,taskId:G(t,`taskId`,`task_id`)??void 0,coordinatorAgentId:G(t,`coordinatorAgentId`,`coordinator_agent_id`),complexity:(()=>{let e=W(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:J(W(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),outcome:G(t,`outcome`,`outcome`)??G(t,`routingOutcome`,`routing_outcome`),reason:G(t,`reason`,`reason`)??G(t,`routingReason`,`routing_reason`),matchBasis:J(W(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),candidateAgentIds:J(W(t,`candidateAgentIds`,`candidate_agent_ids`)).filter(e=>typeof e==`string`),optimizationPriority:J(W(t,`optimizationPriority`,`optimization_priority`)).filter(e=>typeof e==`string`),parallelPlan:ce(W(t,`parallelPlan`,`parallel_plan`)),selectedModelStrategy:se(W(t,`selectedModelStrategy`,`selected_model_strategy`)),modelStrategySource:G(t,`modelStrategySource`,`model_strategy_source`)??void 0,ruleId:G(t,`ruleId`,`rule_id`)??G(t,`matchedExecutorRuleId`,`matched_executor_rule_id`)??G(t,`executorRuleId`,`executor_rule_id`),fallback:G(t,`fallback`,`fallback`)??G(t,`fallbackReason`,`fallback_reason`)??G(t,`executorFallbackReason`,`executor_fallback_reason`)}}function he(e){return e!=null&&(typeof e!=`string`||e.length>0)&&(!Array.isArray(e)||e.length>0)}function ge(e){return[`staffingIntent`,`staffing_intent`,`routingOutcome`,`routing_outcome`,`routingReason`,`routing_reason`,`routingExplanation`,`routing_explanation`,`coordinatorAgentId`,`coordinator_agent_id`,`complexity`,`complexityBasis`,`complexity_basis`,`matchBasis`,`match_basis`,`candidateAgentIds`,`candidate_agent_ids`].some(t=>he(e[t]))?me({outcome:W(e,`routingOutcome`,`routing_outcome`),reason:W(e,`routingReason`,`routing_reason`),matchBasis:W(e,`matchBasis`,`match_basis`),coordinatorAgentId:W(e,`coordinatorAgentId`,`coordinator_agent_id`),complexity:W(e,`complexity`,`complexity`),complexityBasis:W(e,`complexityBasis`,`complexity_basis`),candidateAgentIds:W(e,`candidateAgentIds`,`candidate_agent_ids`)}):null}function _e(e){let t=U(e),n=G(t,`taskId`,`task_id`);if(!n)return null;let r=Y(W(t,`actualExecution`,`actual_execution`))??Y({executor:G(t,`actualExecutor`,`actual_executor`),provider:G(t,`actualModelProvider`,`actual_model_provider`),model:G(t,`actualModel`,`actual_model`),client:G(t,`sourceApplication`,`source_application`),rule:G(t,`routingRuleId`,`routing_rule_id`)??G(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:G(t,`fallbackReason`,`fallback_reason`)??G(t,`executorFallbackReason`,`executor_fallback_reason`)}),i=me(W(t,`routingDecision`,`routing_decision`))??ge(t);return{taskId:n,personalSpaceId:G(t,`personalSpaceId`,`personal_space_id`)??void 0,personalProjectId:G(t,`personalProjectId`,`personal_project_id`),title:G(t,`title`,`title`)??n,objective:G(t,`objective`,`objective`),workKind:G(t,`workKind`,`work_kind`),status:G(t,`status`,`status`),runId:G(t,`runId`,`run_id`),executionId:G(t,`executionId`,`execution_id`),ownerAgentId:G(t,`ownerAgentId`,`owner_agent_id`),leadAgentId:G(t,`leadAgentId`,`lead_agent_id`),coordinatorAgentId:G(t,`coordinatorAgentId`,`coordinator_agent_id`),hrAgentId:G(t,`hrAgentId`,`hr_agent_id`),recruitmentId:G(t,`recruitmentId`,`recruitment_id`),participants:J(t.participants).map(de),sourceApplication:G(t,`sourceApplication`,`source_application`),sourceSessionId:G(t,`sourceSessionId`,`source_session_id`),resultSummary:G(t,`resultSummary`,`result_summary`),failureReason:G(t,`failureReason`,`failure_reason`),createdAt:G(t,`createdAt`,`created_at`),updatedAt:G(t,`updatedAt`,`updated_at`),completedAt:G(t,`completedAt`,`completed_at`),effectiveModelStrategy:se(W(t,`effectiveModelStrategy`,`effective_model_strategy`)),effectiveExecutorPolicy:le(W(t,`effectiveExecutorPolicy`,`effective_executor_policy`)??W(t,`executorPolicy`,`executor_policy`)),staffingIntent:G(t,`staffingIntent`,`staffing_intent`),requiredCapabilities:J(W(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),executorCapabilityHints:J(W(t,`executorCapabilityHints`,`executor_capability_hints`)).filter(e=>typeof e==`string`),routingOutcome:G(t,`routingOutcome`,`routing_outcome`),routingReason:G(t,`routingReason`,`routing_reason`),routingExplanation:G(t,`routingExplanation`,`routing_explanation`),matchBasis:J(W(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),complexity:(()=>{let e=W(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:J(W(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),modelStrategySource:G(t,`modelStrategySource`,`model_strategy_source`)??void 0,actualExecution:r,executionSummary:fe(W(t,`executionSummary`,`execution_summary`)),routingDecision:i,events:J(t.events).map(pe).filter(Boolean)}}function ve(e){return e.executionSummary===void 0?(e.events??[]).filter(e=>!!(e.workerId||e.workerLabel||e.workerOccupationEmoji||e.workerStatus)):[]}function ye(e){return!!(e&&(e.enabled||e.independentVerification||e.conflictFreeScopes||e.reason||e.workstreamBoundaries?.length))}function be(e){return e.actualExecution??{provider:e.actualModelProvider??null,model:e.actualModel??null,client:e.sourceApplication??null,reportedAt:e.createdAt}}function xe(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:Se(t),toDate:Se(e)}}function Se(e){return e.toISOString().slice(0,10)}function Ce(e,t){let n=U(e),r=J(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=U(e);return{date:G(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:J(t.tasks).map(Te).filter(e=>!!e)}}).filter(({date:e})=>e),a=G(n,`fromDate`,`from_date`),o=G(n,`toDate`,`to_date`),s=i.some(({total:e,tasks:t})=>e>0||!!t?.length),c=a??(i.length?i.map(({date:e})=>e).sort()[0]:void 0),l=o??(i.length?i.map(({date:e})=>e).sort().at(-1):void 0),u=s&&c&&l?we(i,c,l):[];return{agentId:G(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:G(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function we(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=Se(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function Te(e){let t=U(e),n=G(t,`taskId`,`task_id`);if(!n)return null;let r=Y(W(t,`actualExecution`,`actual_execution`))??Y({executor:G(t,`actualExecutor`,`actual_executor`),provider:G(t,`actualModelProvider`,`actual_model_provider`),model:G(t,`actualModel`,`actual_model`),client:G(t,`sourceApplication`,`source_application`)});return{taskId:n,title:G(t,`title`,`title`)??n,status:G(t,`status`,`status`),summary:G(t,`summary`,`summary`)??``,occurredAt:G(t,`occurredAt`,`occurred_at`)??``,personalProjectId:G(t,`personalProjectId`,`personal_project_id`),assignmentId:G(t,`assignmentId`,`assignment_id`),collaborators:J(t.collaborators).map(de),sourceApplication:G(t,`sourceApplication`,`source_application`),sourceSessionId:G(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:G(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ae(W(t,`workerRuntime`,`worker_runtime`)),toolsUsed:K(t,`toolsUsed`,`tools_used`),tokenUsage:ie(W(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:G(t,`actualModelProvider`,`actual_model_provider`),actualModel:G(t,`actualModel`,`actual_model`)}}var Ee={class:`project-agent-assignment-dialog-header`},X={id:`project-agent-assignment-dialog-title`},De=[`disabled`],Oe={class:`project-agent-assignment-dialog-fields`},ke={key:0},Ae={key:1},je=[`value`],Me={key:2},Ne={key:3,class:`project-agent-assignment-wide-field`},Pe=[`disabled`],Fe={key:4},Ie=[`disabled`],Le={key:5},Re=[`disabled`,`placeholder`],ze={class:`project-agent-assignment-wide-field`},Z=[`disabled`,`placeholder`],Be={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},Ve={class:`project-agent-assignment-dialog-actions`},He=[`disabled`],Ue=[`disabled`],We={key:1},Ge=j(s({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:t}){let n=e,i=t,a=l(``),s=l(``),c=l(``),m=l(``),g=l(``),_=l(``),v=l(!1),b=l(``),{dialogRef:S,initialFocusRef:C,onCancel:k,onKeydown:j}=V(()=>n.open,()=>i(`close`)),M=u(()=>n.action!==`assign`),N=u(()=>n.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),P=u(()=>n.availableAgents.filter(e=>e.agentId!==n.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.displayName||e.profile.name,meta:e.profile.name})));O(()=>[n.open,n.agent,n.assignment,n.action,n.defaultProjectId],()=>{n.open&&(a.value=n.assignment?.personalProjectId??n.defaultProjectId??n.projects[0]?.project_id??``,s.value=``,c.value=n.assignment?.responsibility??n.agent?.profile.responsibility??``,m.value=n.assignment?.scope??``,g.value=n.assignment?.workKinds?.join(`
2
- `)??``,_.value=``,b.value=``)},{immediate:!0});async function I(){if(!n.agent)return;b.value=``;let e=_.value.trim(),t=c.value.trim();if(!e||n.action===`assign`&&!t){b.value=d(`projectAgents.assignmentDialog.required`);return}if(n.action===`replace`&&!s.value){b.value=d(`projectAgents.assignmentDialog.replacementRequired`);return}v.value=!0;try{if(n.action===`assign`){let r=await F(`/api/project-agent-assignments`,{personalSpaceId:n.agent.personalSpaceId,personalProjectId:a.value,agentId:n.agent.agentId,idempotencyKey:R(),responsibility:t,workKinds:L(g.value),capabilities:[],reason:e});i(`saved`,r)}else{if(!n.assignment)return;await F(`/api/project-agent-assignments/${encodeURIComponent(n.assignment.assignmentId)}/${n.action}`,n.action===`replace`?{personalSpaceId:n.agent.personalSpaceId,personalProjectId:n.assignment.personalProjectId,assignmentId:n.assignment.assignmentId,expectedRevision:n.assignment.revision??0,replacementAgentId:s.value,idempotencyKey:R(),responsibility:t||n.assignment.responsibility,workKinds:L(g.value),capabilities:n.assignment.capabilities??[],reason:e}:{personalSpaceId:n.agent.personalSpaceId,personalProjectId:n.assignment.personalProjectId,assignmentId:n.assignment.assignmentId,expectedRevision:n.assignment.revision??0,reason:e}),i(`changed`)}i(`close`)}catch(e){b.value=e instanceof Error?e.message:d(`projectAgents.assignmentDialog.saveFailed`)}finally{v.value=!1}}function L(e){return[...new Set(e.split(`
3
- `).map(e=>e.trim()).filter(Boolean))]}function R(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(t,l)=>e.open?(o(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:S,class:`project-agent-assignment-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-assignment-dialog-title`,onCancel:l[8]||=(...e)=>x(k)&&x(k)(...e),onKeydown:l[9]||=(...e)=>x(j)&&x(j)(...e)},[w(`form`,{class:`project-agent-assignment-dialog-shell`,onSubmit:y(I,[`prevent`])},[w(`header`,Ee,[w(`h3`,X,f(x(d)(`projectAgents.assignmentDialog.${M.value?e.action:`assign`}Title`)),1),w(`button`,{ref_key:`initialFocusRef`,ref:C,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:v.value,onClick:l[0]||=e=>i(`close`)},f(x(d)(`common.actions.close`)),9,De)]),w(`div`,Oe,[M.value?(o(),E(`label`,Ae,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),w(`input`,{value:n.assignment?n.assignment.personalProjectId:``,disabled:``},null,8,je)])):(o(),E(`label`,ke,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),T(H,{modelValue:a.value,"onUpdate:modelValue":l[1]||=e=>a.value=e,"control-id":`project-agent-assignment-project`,options:N.value,label:x(d)(`projectAgents.fields.project`),placeholder:x(d)(`projectAgents.dialog.projectPlaceholder`),disabled:v.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])),M.value&&e.action===`replace`?(o(),E(`label`,Me,[w(`span`,null,f(x(d)(`projectAgents.assignmentDialog.replacement`)),1),T(H,{modelValue:s.value,"onUpdate:modelValue":l[2]||=e=>s.value=e,"control-id":`project-agent-assignment-replacement`,options:P.value,label:x(d)(`projectAgents.assignmentDialog.replacement`),placeholder:x(d)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:v.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])):p(``,!0),M.value?p(``,!0):(o(),E(`label`,Ne,[w(`span`,null,f(x(d)(`projectAgents.fields.responsibility`)),1),r(w(`textarea`,{"onUpdate:modelValue":l[3]||=e=>c.value=e,rows:`3`,maxlength:`4096`,disabled:v.value,required:``},null,8,Pe),[[h,c.value]])])),M.value?p(``,!0):(o(),E(`label`,Fe,[w(`span`,null,f(x(d)(`projectAgents.fields.scope`)),1),r(w(`input`,{"onUpdate:modelValue":l[4]||=e=>m.value=e,maxlength:`4096`,disabled:v.value},null,8,Ie),[[h,m.value]])])),M.value?p(``,!0):(o(),E(`label`,Le,[w(`span`,null,f(x(d)(`projectAgents.assignmentDialog.workKinds`)),1),r(w(`textarea`,{"onUpdate:modelValue":l[5]||=e=>g.value=e,rows:`3`,disabled:v.value,placeholder:x(d)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,Re),[[h,g.value]])])),w(`label`,ze,[w(`span`,null,f(x(d)(`projectAgents.fields.reason`)),1),r(w(`textarea`,{"onUpdate:modelValue":l[6]||=e=>_.value=e,rows:`3`,maxlength:`2048`,disabled:v.value,placeholder:x(d)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Z),[[h,_.value]])])]),b.value?(o(),E(`p`,Be,f(b.value),1)):p(``,!0),w(`footer`,Ve,[w(`button`,{class:`quiet-button`,type:`button`,disabled:v.value,onClick:l[7]||=e=>i(`close`)},f(x(d)(`common.actions.cancel`)),9,He),w(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:v.value},[v.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.assignmentDialog.saving`)},null,8,[`label`])):(o(),E(`span`,We,f(x(d)(`projectAgents.assignmentDialog.${M.value?`saveChange`:`saveAssign`}`)),1))],8,Ue)])],32)],544)):p(``,!0)}}),[[`__scopeId`,`data-v-ee37776b`]]),Ke={class:`project-agent-dialog-header`},qe={id:`executor-routing-dialog-title`},Je=[`disabled`],Ye={class:`project-agent-dialog-fields`},Q=[`disabled`],Xe=[`disabled`],Ze=[`disabled`],Qe=[`disabled`],$e={class:`project-agent-wide-field`},et=[`disabled`],tt={class:`project-agent-dialog-check`},nt=[`disabled`],rt={class:`project-agent-dialog-note project-agent-wide-field`},it=[`disabled`],at=[`disabled`],ot={key:0},st={key:1},$=[`disabled`],ct=[`disabled`],lt={class:`project-agent-wide-field`},ut=[`placeholder`,`disabled`],dt={class:`project-agent-wide-field`},ft=[`disabled`],pt={class:`project-agent-wide-field`},mt=[`disabled`],ht={class:`project-agent-dialog-note project-agent-wide-field`},gt={key:0,class:`project-agent-dialog-error`,role:`alert`},_t={class:`project-agent-dialog-actions`},vt=[`disabled`],yt=[`disabled`],bt={key:1},xt=j(s({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(e,{emit:n}){let i=e,a=n,s=l(``),c=l(``),g=l(`external`),v=l(``),b=l(100),S=l(!1),k=l(`space`),j=l(``),M=l(``),N=l(``),F=l(``),I=l(``),L=l(``),R=l(!1),z=l(``),{dialogRef:ee,initialFocusRef:te,onCancel:B,onKeydown:ne}=V(()=>i.open,()=>a(`close`)),re=u(()=>!!i.executor),U=u(()=>i.mode===`executor`?re.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),W=u(()=>i.mode===`executor`?d(`projectAgents.routing.editor.savingExecutor`):d(`projectAgents.routing.editor.savingRule`)),G=u(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));O(()=>[i.open,i.mode,i.executor,i.rule],([e])=>{if(!e)return;let t=i.executor,n=i.rule;s.value=t?.executorId??``,c.value=t?.displayName??t?.label??``,g.value=t?.executorKind??`external`,v.value=t?.capabilities?.join(`
4
- `)??``,b.value=t?.globalPriority??n?.priority??100,S.value=t?.healthRequired===!0,k.value=n?.scope??`space`,j.value=n?.personalProjectId??``,M.value=n?.taskId??``,N.value=n?.workKind??``,F.value=n?.requiredCapabilities?.join(`
5
- `)??``,I.value=n?.executorIds?.join(`
6
- `)??``,L.value=``,z.value=``},{immediate:!0});function K(e){return[...new Set(e.split(`
7
- `).map(e=>e.trim()).filter(Boolean))]}function q(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function ie(){if(R.value)return;let e=K(v.value),t=L.value.trim();if(i.mode===`executor`){if(!s.value.trim()||!c.value.trim()||b.value<1){z.value=d(`projectAgents.routing.editor.executorRequired`);return}}else if(!N.value.trim()||!K(I.value).length||!t){z.value=d(`projectAgents.routing.editor.ruleRequired`);return}R.value=!0,z.value=``;try{if(i.mode===`executor`){let t=await P(`/api/executors`,{personalSpaceId:i.personalSpaceId,executorId:s.value.trim(),displayName:c.value.trim(),executorKind:g.value.trim()||`external`,capabilities:e,advertisedModels:i.executor?.advertisedModels??i.executor?.availableModels??[],globalPriority:b.value,healthRequired:S.value,expectedRevision:i.executor?.revision,idempotencyKey:q(`executor-directory`)});a(`saved`,t)}else{let e=await P(`/api/executor-routing-rules`,{personalSpaceId:k.value===`global`?void 0:i.personalSpaceId,scope:k.value,personalProjectId:(k.value===`project`||k.value===`task`)&&j.value||void 0,taskId:k.value===`task`&&M.value||void 0,workKind:N.value.trim(),requiredCapabilities:K(F.value),executorIds:K(I.value),priority:b.value,reason:t,idempotencyKey:q(`executor-rule`)});a(`saved`,e)}a(`close`)}catch(e){z.value=e instanceof Error?e.message:d(`projectAgents.routing.editor.saveFailed`)}finally{R.value=!1}}return(n,i)=>e.open?(o(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:ee,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`executor-routing-dialog-title`,onCancel:i[16]||=(...e)=>x(B)&&x(B)(...e),onKeydown:i[17]||=(...e)=>x(ne)&&x(ne)(...e)},[w(`form`,{class:`project-agent-dialog-shell`,onSubmit:y(ie,[`prevent`])},[w(`header`,Ke,[w(`h3`,qe,f(x(d)(`projectAgents.routing.editor.${U.value}`)),1),w(`button`,{ref_key:`initialFocusRef`,ref:te,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:R.value,onClick:i[0]||=e=>a(`close`)},f(x(d)(`common.actions.close`)),9,Je)]),w(`div`,Ye,[e.mode===`executor`?(o(),E(_,{key:0},[w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.executorId`)),1),r(w(`input`,{"onUpdate:modelValue":i[1]||=e=>s.value=e,maxlength:`128`,disabled:re.value||R.value,required:``},null,8,Q),[[h,s.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.displayName`)),1),r(w(`input`,{"onUpdate:modelValue":i[2]||=e=>c.value=e,maxlength:`160`,disabled:R.value,required:``},null,8,Xe),[[h,c.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.executorKind`)),1),r(w(`input`,{"onUpdate:modelValue":i[3]||=e=>g.value=e,maxlength:`128`,disabled:R.value},null,8,Ze),[[h,g.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.priority`)),1),r(w(`input`,{"onUpdate:modelValue":i[4]||=e=>b.value=e,type:`number`,min:`1`,max:`1000000`,disabled:R.value,required:``},null,8,Qe),[[h,b.value,void 0,{number:!0}]])]),w(`label`,$e,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.capabilities`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[5]||=e=>v.value=e,rows:`3`,disabled:R.value},null,8,et),[[h,v.value]])]),w(`label`,tt,[r(w(`input`,{"onUpdate:modelValue":i[6]||=e=>S.value=e,type:`checkbox`,disabled:R.value},null,8,nt),[[m,S.value]]),i[18]||=t(),w(`span`,null,f(x(d)(`projectAgents.routing.editor.healthRequired`)),1)]),w(`p`,rt,f(x(d)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(o(),E(_,{key:1},[w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.scope`)),1),r(w(`select`,{"onUpdate:modelValue":i[7]||=e=>k.value=e,disabled:R.value},[...i[19]||=[w(`option`,{value:`space`},`space`,-1),w(`option`,{value:`project`},`project`,-1),w(`option`,{value:`task`},`task`,-1)]],8,it),[[C,k.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.priority`)),1),r(w(`input`,{"onUpdate:modelValue":i[8]||=e=>b.value=e,type:`number`,min:`1`,max:`1000000`,disabled:R.value,required:``},null,8,at),[[h,b.value,void 0,{number:!0}]])]),k.value===`project`||k.value===`task`?(o(),E(`label`,ot,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),T(H,{modelValue:j.value,"onUpdate:modelValue":i[9]||=e=>j.value=e,"control-id":`executor-rule-project`,options:G.value,label:x(d)(`projectAgents.fields.project`),disabled:R.value},null,8,[`modelValue`,`options`,`label`,`disabled`])])):p(``,!0),k.value===`task`?(o(),E(`label`,st,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.taskId`)),1),r(w(`input`,{"onUpdate:modelValue":i[10]||=e=>M.value=e,maxlength:`128`,disabled:R.value},null,8,$),[[h,M.value]])])):p(``,!0),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.workKind`)),1),r(w(`input`,{"onUpdate:modelValue":i[11]||=e=>N.value=e,maxlength:`128`,disabled:R.value,required:``},null,8,ct),[[h,N.value]])]),w(`label`,lt,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.executorIds`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[12]||=e=>I.value=e,rows:`3`,placeholder:x(d)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:R.value,required:``},null,8,ut),[[h,I.value]])]),w(`label`,dt,[w(`span`,null,f(x(d)(`projectAgents.routing.editor.requiredCapabilities`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[13]||=e=>F.value=e,rows:`3`,disabled:R.value},null,8,ft),[[h,F.value]])]),w(`label`,pt,[w(`span`,null,f(x(d)(`projectAgents.fields.reason`)),1),r(w(`textarea`,{"onUpdate:modelValue":i[14]||=e=>L.value=e,rows:`3`,disabled:R.value,required:``},null,8,mt),[[h,L.value]])]),w(`p`,ht,f(x(d)(`projectAgents.routing.editor.ruleNote`)),1)],64))]),z.value?(o(),E(`p`,gt,f(z.value),1)):p(``,!0),w(`footer`,_t,[w(`button`,{class:`quiet-button`,type:`button`,disabled:R.value,onClick:i[15]||=e=>a(`close`)},f(x(d)(`common.actions.cancel`)),9,vt),w(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:R.value},[R.value?(o(),D(A,{key:0,variant:`inline`,label:W.value},null,8,[`label`])):(o(),E(`span`,bt,f(x(d)(`projectAgents.routing.editor.save`)),1))],8,yt)])],32)],544)):p(``,!0)}}),[[`__scopeId`,`data-v-4d36bcaf`]]),St=[`aria-label`,`aria-busy`],Ct={key:1,class:`project-agent-policy-options`},wt=[`checked`,`disabled`],Tt=[`checked`,`disabled`],Et=[`checked`,`disabled`],Dt={key:2,class:`project-team`},Ot={class:`project-team-peers`},kt={key:1},At={key:2},jt={class:`project-team-summary`},Mt={key:0,class:`project-team-members`},Nt=[`onClick`],Pt={class:`team-lead-field`},Ft=[`disabled`],It={value:``},Lt=[`value`],Rt=[`disabled`],zt=[`onChange`],Bt=[`value`],Vt=[`disabled`],Ht={class:`project-agent-policy-feedback`,"aria-live":`polite`},Ut={key:0,role:`alert`},Wt=[`disabled`],Gt={key:2,role:`status`},Kt=j(s({__name:`ProjectAgentAutomationPolicyPanel`,props:{personalSpaceId:{},personalProjectId:{},projectName:{},agents:{}},emits:[`select`],setup(e,{emit:i}){let a=e,s=i,c=l(U()),h=l(!1),g=l(!1),v=l(``),y=l(``),b=l(!1),S=l(``),T=l([]),k=0,j=u(()=>h.value||g.value),M=u(()=>(a.agents??[]).filter(e=>e.profile.status===`active`&&(e.profile.agentType??`durable`)===`durable`&&!e.agentId.startsWith(`employee.`)&&!e.profile.capabilities.some(e=>e.startsWith(`fuli.employee:`))&&e.assignments?.some(e=>e.status===`active`&&e.personalProjectId===a.personalProjectId))),N=M,P=u(()=>M.value.filter(e=>e.agentId!==S.value)),F=u(()=>T.value.filter(e=>!P.value.some(t=>t.agentId===e)).map(e=>({id:e,name:(a.agents??[]).find(t=>t.agentId===e)?.profile.displayName||(a.agents??[]).find(t=>t.agentId===e)?.profile.name||d(`projectAgents.team.unavailableMember`)}))),R=u(()=>M.value.find(e=>e.agentId===c.value.teamLeadAgentId)),z=u(()=>M.value.filter(e=>c.value.teamMemberAgentIds?.includes(e.agentId))),ee=u(()=>S.value!==(c.value.teamLeadAgentId??``)||JSON.stringify([...T.value].sort())!==JSON.stringify([...c.value.teamMemberAgentIds??[]].sort()));O(S,e=>{T.value=e?T.value.filter(t=>t!==e):[]});function te(e){return e.profile.displayName||e.profile.name}function B(){S.value=c.value.teamLeadAgentId??``,T.value=[...c.value.teamMemberAgentIds??[]]}O(()=>[a.personalSpaceId,a.personalProjectId],()=>void V(),{immediate:!0});async function V(){let e=++k;if(c.value=U(),B(),g.value=!1,h.value=!1,b.value=!1,y.value=``,!(!a.personalSpaceId||!a.personalProjectId)){h.value=!0,v.value=``;try{let t=await I(`/api/project-agent-coordination-policy?${new URLSearchParams({personalSpaceId:a.personalSpaceId,personalProjectId:a.personalProjectId})}`);e===k&&(c.value=W(t),B())}catch(t){e===k&&(v.value=t instanceof Error?t.message:d(`projectAgents.coordination.loadFailed`))}finally{e===k&&(h.value=!1)}}}async function H(e,t){if(j.value||v.value)return;let n={...c.value},r=t.currentTarget.checked;c.value={...c.value,[e]:r},await re(n)}async function ne(){j.value||v.value||!ee.value||await re({...c.value},{teamLeadAgentId:S.value||null,teamMemberAgentIds:[...T.value]})}async function re(e,t){let n=k;g.value=!0,b.value=!1,y.value=``;try{let r=await L(`/api/project-agent-coordination-policy`,{personalSpaceId:a.personalSpaceId,personalProjectId:a.personalProjectId,askBeforeRecruitment:c.value.askBeforeRecruitment,autoReusePreviousAgent:c.value.autoReusePreviousAgent,autoGrowTeam:c.value.autoGrowTeam??!0,expectedUpdatedAt:e.updatedAt,...t});if(n!==k)return;c.value=W(r),t&&B(),b.value=!0}catch(t){if(n!==k)return;c.value=e,y.value=t instanceof Error?t.message:d(`projectAgents.coordination.saveFailed`)}finally{n===k&&(g.value=!1)}}function U(){return{personalSpaceId:a.personalSpaceId,personalProjectId:a.personalProjectId,askBeforeRecruitment:!0,autoReusePreviousAgent:!0,autoGrowTeam:!0,updatedAt:null,teamLeadAgentId:null,teamMemberAgentIds:[]}}function W(e){let t=e&&typeof e==`object`?e:{};return{personalSpaceId:K(t.personalSpaceId??t.personal_space_id)||a.personalSpaceId,personalProjectId:K(t.personalProjectId??t.personal_project_id)||a.personalProjectId,askBeforeRecruitment:G(t.askBeforeRecruitment??t.ask_before_recruitment,!0),autoReusePreviousAgent:G(t.autoReusePreviousAgent??t.auto_reuse_previous_agent,!0),updatedAt:K(t.updatedAt??t.updated_at),autoGrowTeam:G(t.autoGrowTeam??t.auto_grow_team,!0),teamLeadAgentId:K(t.teamLeadAgentId??t.team_lead_agent_id),teamMemberAgentIds:Array.isArray(t.teamMemberAgentIds??t.team_member_agent_ids)?t.teamMemberAgentIds??t.team_member_agent_ids:[]}}function G(e,t){return typeof e==`boolean`?e:t}function K(e){return typeof e==`string`&&e?e:null}return(i,a)=>(o(),E(`section`,{class:`project-agent-automation-policy`,"aria-label":x(d)(`projectAgents.coordination.aria`,{project:e.projectName}),"aria-busy":j.value},[w(`header`,null,[w(`h3`,null,f(x(d)(`projectAgents.coordination.title`)),1),w(`span`,null,f(e.projectName),1)]),h.value?(o(),D(A,{key:0,variant:`compact`,label:x(d)(`projectAgents.coordination.loading`)},null,8,[`label`])):(o(),E(`div`,Ct,[w(`label`,null,[w(`span`,null,[w(`strong`,null,f(x(d)(`projectAgents.coordination.autoReuse`)),1),w(`small`,null,f(x(d)(`projectAgents.coordination.autoReuseMeta`)),1)]),w(`input`,{checked:c.value.autoReusePreviousAgent,disabled:j.value||!!v.value,type:`checkbox`,role:`switch`,onChange:a[0]||=e=>H(`autoReusePreviousAgent`,e)},null,40,wt)]),w(`label`,null,[w(`span`,null,[w(`strong`,null,f(x(d)(`projectAgents.coordination.askBeforeRecruitment`)),1),w(`small`,null,f(x(d)(`projectAgents.coordination.askBeforeRecruitmentMeta`)),1)]),w(`input`,{checked:c.value.askBeforeRecruitment,disabled:j.value||!!v.value,type:`checkbox`,role:`switch`,onChange:a[1]||=e=>H(`askBeforeRecruitment`,e)},null,40,Tt)]),w(`label`,null,[w(`span`,null,[w(`strong`,null,f(x(d)(`projectAgents.team.autoGrow`)),1),w(`small`,null,f(x(d)(`projectAgents.team.autoGrowMeta`)),1)]),w(`input`,{checked:c.value.autoGrowTeam,disabled:j.value||!!v.value,type:`checkbox`,role:`switch`,onChange:a[2]||=e=>H(`autoGrowTeam`,e)},null,40,Et)])])),e.agents&&!h.value&&!v.value?(o(),E(`div`,Dt,[w(`div`,Ot,[w(`span`,null,f(x(d)(`projectAgents.team.hr`)),1),w(`span`,null,f(x(d)(`projectAgents.team.manager`)),1),R.value?(o(),E(`button`,{key:0,type:`button`,onClick:a[3]||=e=>s(`select`,R.value.agentId)},f(x(d)(`projectAgents.team.lead`))+` · `+f(te(R.value)),1)):c.value.teamLeadAgentId?(o(),E(`span`,kt,f(x(d)(`projectAgents.team.unavailable`)),1)):(o(),E(`span`,At,f(x(d)(`projectAgents.team.noLead`)),1))]),w(`p`,jt,f(x(d)(`projectAgents.team.summary`)),1),z.value.length?(o(),E(`ul`,Mt,[(o(!0),E(_,null,n(z.value,e=>(o(),E(`li`,{key:e.agentId},[w(`button`,{type:`button`,onClick:t=>s(`select`,e.agentId)},[w(`strong`,null,f(te(e)),1),w(`span`,null,f(e.profile.responsibility),1)],8,Nt)]))),128))])):p(``,!0),w(`details`,null,[w(`summary`,null,f(x(d)(`projectAgents.team.edit`)),1),w(`label`,Pt,[t(f(x(d)(`projectAgents.team.lead`))+` `,1),r(w(`select`,{"onUpdate:modelValue":a[4]||=e=>S.value=e,disabled:j.value},[w(`option`,It,f(x(d)(`projectAgents.team.noLead`)),1),(o(!0),E(_,null,n(x(N),e=>(o(),E(`option`,{key:e.agentId,value:e.agentId},f(te(e)),9,Lt))),128))],8,Ft),[[C,S.value]])]),w(`fieldset`,{disabled:j.value||!S.value},[w(`legend`,null,f(x(d)(`projectAgents.team.members`)),1),(o(!0),E(_,null,n(F.value,e=>(o(),E(`label`,{key:e.id,class:`unavailable-team-member`},[w(`input`,{type:`checkbox`,checked:``,onChange:t=>T.value=T.value.filter(t=>t!==e.id)},null,40,zt),t(` `+f(e.name)+` · `+f(x(d)(`projectAgents.team.removeUnavailable`)),1)]))),128)),(o(!0),E(_,null,n(P.value,e=>(o(),E(`label`,{key:e.agentId},[r(w(`input`,{"onUpdate:modelValue":a[5]||=e=>T.value=e,type:`checkbox`,value:e.agentId},null,8,Bt),[[m,T.value]]),t(f(te(e)),1)]))),128))],8,Rt),w(`button`,{type:`button`,disabled:j.value||!ee.value,onClick:ne},f(x(d)(`projectAgents.team.save`)),9,Vt)])])):p(``,!0),w(`div`,Ht,[v.value||y.value?(o(),E(`p`,Ut,[t(f(v.value||y.value)+` `,1),v.value?(o(),E(`button`,{key:0,type:`button`,disabled:j.value,onClick:V},f(x(d)(`projectAgents.retry`)),9,Wt)):p(``,!0)])):g.value?(o(),D(A,{key:1,variant:`compact`,label:x(d)(`projectAgents.coordination.saving`)},null,8,[`label`])):b.value?(o(),E(`p`,Gt,f(x(d)(`projectAgents.coordination.saved`)),1)):p(``,!0)])],8,St))}}),[[`__scopeId`,`data-v-077ab7fe`]]),qt={key:0,class:`project-agent-source-state`,role:`status`},Jt={key:1,class:`project-agent-source-state`},Yt={key:2,class:`project-agent-source-state is-error`,role:`alert`},Xt=j(s({__name:`ProjectAgentDetailState`,props:{status:{},error:{},label:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(o(),E(`div`,qt,f(x(d)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(o(),E(`div`,Jt,[T(A,{variant:`inline`,label:e.label},null,8,[`label`])])):e.status===`error`?(o(),E(`div`,Yt,[w(`span`,null,f(e.error||x(d)(`projectAgents.detail.sectionUnavailable`)),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},f(x(d)(`projectAgents.retry`)),1)])):i(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-ca9a5880`]]),Zt={key:0},Qt=[`value`],$t={key:2,role:`alert`},en={key:3},tn={class:`work-record-meta`},nn=[`datetime`],rn={key:4},an=j(s({__name:`EmployeeWorkHistory`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(e){let i=e,a=l(``),s=l(!1),c=l(!1),u=l(``),m=l([]),h=0;O(()=>[i.agentId,i.personalSpaceId,i.projects.map(e=>e.id).join(`
8
- `)],()=>{let e=i.projects.some(e=>e.id===a.value)?a.value:i.projects[0]?.id??``;e===a.value?g():a.value=e},{immediate:!0}),O(a,()=>void g());async function g(){let e=++h;if(m.value=[],u.value=``,c.value=!1,!(!s.value||!a.value)){c.value=!0;try{let t=new URLSearchParams({personalSpaceId:i.personalSpaceId,personalProjectId:a.value}),n=await I(`/api/project-agents/${encodeURIComponent(i.agentId)}/memory?${t}`);e===h&&(m.value=n.workLog??[])}catch(t){e===h&&(u.value=t instanceof Error?t.message:d(`projectAgents.workHistory.loadFailed`))}finally{e===h&&(c.value=!1)}}}function v(e){let t=e.target.open;t!==s.value&&(s.value=t,s.value?g():++h)}function y(e){let t=new Date(e);return Number.isNaN(t.getTime())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(b(),{dateStyle:`short`,timeStyle:`short`}).format(t)}function S(e){return d(`projectAgents.workHistory.${[`reported`,`completed`,`incomplete`,`failed`,`no_change`,`unreported`,`running`].includes(e)?e:`unreported`}`)}return(i,s)=>(o(),E(`details`,{class:`employee-work-history`,onToggle:v},[w(`summary`,null,f(x(d)(`projectAgents.workHistory.title`)),1),e.projects.length?(o(),E(`label`,Zt,[t(f(x(d)(`projectAgents.fields.project`))+` `,1),r(w(`select`,{"onUpdate:modelValue":s[0]||=e=>a.value=e},[(o(!0),E(_,null,n(e.projects,e=>(o(),E(`option`,{key:e.id,value:e.id},f(e.name),9,Qt))),128))],512),[[C,a.value]])])):p(``,!0),c.value?(o(),D(A,{key:1,variant:`compact`,label:x(d)(`projectAgents.workHistory.loading`)},null,8,[`label`])):u.value?(o(),E(`div`,$t,[w(`p`,null,f(u.value),1),w(`button`,{type:`button`,class:`quiet-button`,onClick:g},f(x(d)(`projectAgents.retry`)),1)])):m.value.length?(o(),E(`ol`,en,[(o(!0),E(_,null,n(m.value,e=>(o(),E(`li`,{key:e.taskContextToken},[w(`div`,tn,[w(`strong`,null,f(S(e.status)),1),w(`span`,null,f(e.sourceApplication),1),w(`time`,{datetime:e.createdAt},f(y(e.createdAt)),9,nn)]),w(`p`,null,f(e.summary),1)]))),128))])):(o(),E(`p`,rn,f(x(d)(`projectAgents.workHistory.empty`)),1))],32))}}),[[`__scopeId`,`data-v-bf7d05b1`]]),on={class:`project-agent-dialog-header`},sn={id:`project-agent-dialog-title`},cn=[`disabled`],ln={class:`project-agent-dialog-fields`},un=[`disabled`],dn={value:`active`},fn={value:`inactive`},pn={value:`archived`},mn=[`disabled`],hn={value:`durable`},gn={value:`hr`},_n={key:0,value:`temporary`,disabled:``},vn={key:1,value:`coordinator`,disabled:``},yn=[`disabled`,`placeholder`],bn=[`disabled`,`placeholder`],xn=[`disabled`],Sn=[`disabled`,`placeholder`],Cn={key:0,class:`project-agent-id-note`},wn={class:`project-agent-wide-field`},Tn=[`disabled`,`placeholder`],En={class:`project-agent-wide-field`},Dn=[`disabled`,`placeholder`],On={class:`project-agent-wide-field`},kn=[`disabled`,`placeholder`],An={class:`project-agent-wide-field project-agent-strategy-fields`},jn=[`disabled`],Mn={value:`flexible`},Nn={value:`locked`},Pn=[`disabled`],Fn={class:`project-agent-wide-field`},In=[`disabled`,`placeholder`],Ln={key:0,class:`project-agent-dialog-error`,role:`alert`},Rn={class:`project-agent-dialog-actions`},zn=[`disabled`],Bn=[`disabled`],Vn={key:1},Hn=j(s({__name:`ProjectAgentDialog`,props:{open:{type:Boolean},agent:{},projects:{},defaultProjectId:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(e,{emit:t}){let n=e,i=t,a=l(``),s=l(``),c=l(``),m=l(``),g=l(``),_=l(``),v=l(``),b=l(``),S=l(`active`),k=l(`durable`),j=l(`adaptive`),M=l(`flexible`),N=l(``),I=l(!1),L=l(``),{dialogRef:R,initialFocusRef:z,onCancel:ee,onKeydown:te}=V(()=>n.open,()=>i(`close`)),B=u(()=>!!n.agent),ne=u(()=>n.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));O(()=>[n.open,n.agent,n.defaultProjectId],([e,t,r])=>{if(!e)return;a.value=t?.personalProjectId??r??n.projects[0]?.project_id??``,s.value=t?.agentId??``,c.value=t?.profile.name??``,m.value=t?.profile.displayName??``,g.value=t?.profile.occupationEmoji??``,_.value=t?.profile.responsibility??``,v.value=(t?.profile.capabilities??[]).join(`
9
- `),b.value=(t?.profile.initialPreferences??[]).join(`
10
- `),S.value=t?.profile.status??`active`,k.value=t?.profile.agentType??`durable`,j.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,M.value=t?.profile.executorPolicy?.mode??`flexible`;let i=t?.profile.executorPolicy,o=i?.mode===`locked`?i.lockedExecutorIds:i?.preferredExecutorIds;N.value=(o?.length?o:i?.allowList?.map(({executorId:e})=>e)??[]).join(`
11
- `),L.value=``},{immediate:!0});function re(e){let t=e.split(`
12
- `).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function U(){if(I.value)return;let e=a.value.trim(),t=s.value.trim(),r=c.value.trim(),o=g.value.trim(),l=_.value.trim();if(!t||!r||!l){L.value=d(`projectAgents.dialog.required`);return}let u=n.projects.find(({project_id:t})=>t===e);if(e&&!u){L.value=d(`projectAgents.dialog.projectUnavailable`);return}if(o&&!W(o)){L.value=d(`projectAgents.dialog.occupationEmojiInvalid`);return}let f=u?.personal_space_id??n.personalSpaceId??n.agent?.personalSpaceId;if(!f){L.value=d(`projectAgents.dialog.spaceUnavailable`);return}let p=re(v.value),h=re(b.value);if(!p||!h){L.value=d(`projectAgents.dialog.duplicate`);return}let y=re(N.value);if(!y||M.value===`locked`&&!y.length){L.value=d(`projectAgents.dialog.duplicate`);return}I.value=!0,L.value=``;try{let a={...n.agent?.profile,name:r,responsibility:l,capabilities:p,initialPreferences:h,status:S.value};m.value.trim()&&(a.displayName=m.value.trim()),o&&(a.occupationEmoji=o),k.value!==`durable`&&(a.agentType=k.value),j.value!==`adaptive`&&(a.defaultModelStrategy={mode:j.value}),(M.value!==`flexible`||y.length)&&(a.executorPolicy={mode:M.value,lockedExecutorIds:M.value===`locked`?y:[],preferredExecutorIds:M.value===`flexible`?y:[]});let s=await P(`/api/project-agents`,{personalSpaceId:f,personalProjectId:null,agentId:t,profile:a}),c=s;if(e&&!B.value){let n=await F(`/api/project-agent-assignments`,{personalSpaceId:f,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:l,capabilities:p,reason:d(`projectAgents.dialog.initialAssignmentReason`)});c={...s,personalProjectId:e,assignments:[n]}}i(`saved`,c),i(`close`)}catch(e){L.value=e instanceof Error?e.message:d(`projectAgents.dialog.saveFailed`)}finally{I.value=!1}}function W(e){return Array.from(e).length>32||/\s/u.test(e)||Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)).length!==1?!1:/\p{Extended_Pictographic}|\p{Regional_Indicator}{2}|[#*0-9]\uFE0F?\u20E3/u.test(e)&&/^[\p{Extended_Pictographic}\p{Emoji_Component}\uFE0E\uFE0F\u200D\u{E0020}-\u{E007F}#*0-9]+$/u.test(e)}return(t,n)=>e.open?(o(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:R,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:n[15]||=(...e)=>x(ee)&&x(ee)(...e),onKeydown:n[16]||=(...e)=>x(te)&&x(te)(...e)},[w(`form`,{class:`project-agent-dialog-shell`,onSubmit:y(U,[`prevent`])},[w(`header`,on,[w(`h3`,sn,f(B.value?x(d)(`projectAgents.dialog.editTitle`):x(d)(`projectAgents.dialog.createTitle`)),1),w(`button`,{ref_key:`initialFocusRef`,ref:z,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:I.value,onClick:n[0]||=e=>i(`close`)},f(x(d)(`common.actions.close`)),9,cn)]),w(`div`,ln,[w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.project`)),1),T(H,{modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,"control-id":`project-agent-project`,options:ne.value,label:x(d)(`projectAgents.fields.project`),placeholder:x(d)(`projectAgents.dialog.projectPlaceholder`),disabled:B.value||I.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.status`)),1),r(w(`select`,{"onUpdate:modelValue":n[2]||=e=>S.value=e,name:`project-agent-status`,disabled:I.value},[w(`option`,dn,f(x(d)(`projectAgents.status.active`)),1),w(`option`,fn,f(x(d)(`projectAgents.status.inactive`)),1),w(`option`,pn,f(x(d)(`projectAgents.status.archived`)),1)],8,un),[[C,S.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.agentType`)),1),r(w(`select`,{"onUpdate:modelValue":n[3]||=e=>k.value=e,name:`project-agent-type`,disabled:I.value},[w(`option`,hn,f(x(d)(`projectAgents.agentType.durable`)),1),w(`option`,gn,f(x(d)(`projectAgents.agentType.hr`)),1),B.value&&k.value===`temporary`?(o(),E(`option`,_n,f(x(d)(`projectAgents.agentType.temporary`)),1)):p(``,!0),B.value&&k.value===`coordinator`?(o(),E(`option`,vn,f(x(d)(`projectAgents.agentType.coordinator`)),1)):p(``,!0)],8,mn),[[C,k.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.agentId`)),1),r(w(`input`,{"onUpdate:modelValue":n[4]||=e=>s.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:B.value||I.value,placeholder:x(d)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,yn),[[h,s.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`attention.roleName`)),1),r(w(`input`,{"onUpdate:modelValue":n[5]||=e=>c.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:I.value,placeholder:x(d)(`projectAgents.dialog.namePlaceholder`)},null,8,bn),[[h,c.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`attention.displayName`)),1),r(w(`input`,{"onUpdate:modelValue":n[6]||=e=>m.value=e,name:`project-agent-display-name`,maxlength:`160`,disabled:I.value},null,8,xn),[[h,m.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.occupationEmoji`)),1),r(w(`input`,{"onUpdate:modelValue":n[7]||=e=>g.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:I.value,placeholder:x(d)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Sn),[[h,g.value]])]),B.value?(o(),E(`small`,Cn,f(x(d)(`projectAgents.dialog.idLocked`)),1)):p(``,!0),w(`label`,wn,[w(`span`,null,f(x(d)(`projectAgents.fields.responsibility`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[8]||=e=>_.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:I.value,placeholder:x(d)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,Tn),[[h,_.value]])]),w(`label`,En,[w(`span`,null,f(x(d)(`projectAgents.fields.capabilities`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[9]||=e=>v.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:I.value,placeholder:x(d)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Dn),[[h,v.value]])]),w(`label`,On,[w(`span`,null,f(x(d)(`projectAgents.fields.initialPreferences`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[10]||=e=>b.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:I.value,placeholder:x(d)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,kn),[[h,b.value]])]),w(`fieldset`,An,[w(`legend`,null,f(x(d)(`projectAgents.fields.defaultModelStrategy`)),1),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.executorPolicy`)),1),r(w(`select`,{"onUpdate:modelValue":n[11]||=e=>M.value=e,name:`project-agent-selection-mode`,disabled:I.value},[w(`option`,Mn,f(x(d)(`projectAgents.strategy.flexible`)),1),w(`option`,Nn,f(x(d)(`projectAgents.strategy.locked`)),1)],8,jn),[[C,M.value]])]),w(`label`,null,[w(`span`,null,f(x(d)(`projectAgents.fields.modelIntent`)),1),r(w(`select`,{"onUpdate:modelValue":n[12]||=e=>j.value=e,name:`project-agent-model-mode`,disabled:I.value},[...n[17]||=[w(`option`,{value:`adaptive`},`adaptive`,-1),w(`option`,{value:`fast`},`fast`,-1),w(`option`,{value:`balanced`},`balanced`,-1),w(`option`,{value:`deep`},`deep`,-1)]],8,Pn),[[C,j.value]])]),w(`label`,Fn,[w(`span`,null,f(x(d)(`projectAgents.fields.allowList`)),1),r(w(`textarea`,{"onUpdate:modelValue":n[13]||=e=>N.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:I.value,placeholder:x(d)(`projectAgents.dialog.allowListPlaceholder`)},null,8,In),[[h,N.value]])]),w(`small`,null,f(M.value===`locked`?x(d)(`projectAgents.strategy.lockedUnavailable`):x(d)(`projectAgents.strategy.providerNeutral`)),1)])]),L.value?(o(),E(`p`,Ln,f(L.value),1)):p(``,!0),w(`footer`,Rn,[w(`button`,{class:`quiet-button`,type:`button`,disabled:I.value,onClick:n[14]||=e=>i(`close`)},f(x(d)(`common.actions.cancel`)),9,zn),w(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:I.value},[I.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.dialog.saving`)},null,8,[`label`])):(o(),E(`span`,Vn,f(B.value?x(d)(`projectAgents.dialog.saveEdit`):x(d)(`projectAgents.dialog.saveCreate`)),1))],8,Bn)])],32)],544)):p(``,!0)}}),[[`__scopeId`,`data-v-95db0a3d`]]),Un=[`aria-label`],Wn={class:`project-agents-header`},Gn={key:0,class:`project-agents-header-meta`},Kn={class:`project-agent-header-actions`},qn=[`disabled`],Jn=[`disabled`],Yn={key:0,class:`project-agents-summary`,"aria-live":`polite`},Xn={class:`project-agents-toolbar`},Zn={class:`project-agents-search`},Qn={class:`sr-only`},$n=[`placeholder`],er=[`aria-label`],tr=[`aria-pressed`,`onClick`],nr={key:3,class:`project-agents-state is-error`,role:`alert`},rr={key:4,class:`project-agents-state`},ir=[`disabled`],ar={key:5,class:`project-agents-state`},or={key:6,class:`project-agents-directory`},sr=[`aria-label`],cr=[`aria-current`,`onClick`],lr={class:`project-agent-row-heading`},ur=[`aria-label`],dr={class:`project-agent-kind`},fr={class:`project-agent-row-projects`},pr={key:0},mr={key:1},hr={class:`project-agent-row-responsibility`},gr={class:`project-agent-row-work`},_r={class:`project-agent-row-capabilities`},vr=[`aria-label`],yr={class:`project-agent-detail-heading`},br=[`aria-label`],xr={key:0},Sr={key:0},Cr={class:`project-agent-detail-actions`},wr=[`disabled`],Tr=[`disabled`],Er={key:1},Dr={key:0,class:`project-agent-detail-notice`,role:`status`},Or={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},kr={class:`employee-project-overview-heading`},Ar={id:`employee-project-overview-title`},jr={key:0,class:`employee-assigned-projects`},Mr={key:1,class:`employee-project-overview-hint`},Nr={class:`project-agent-detail-meta`},Pr={key:0},Fr={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},Ir={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},Lr={class:`project-agent-section-heading`},Rr={id:`project-agent-recruitment-heading`},zr={key:0,class:`project-agent-recruitment-list`},Br={class:`project-agent-card-actions`},Vr=[`disabled`,`onClick`],Hr={key:1},Ur=[`disabled`,`onClick`],Wr={key:1},Gr={class:`project-agent-compact-meta`},Kr={key:1,class:`project-agent-muted`},qr={class:`project-agent-detail-section is-responsibility`},Jr={key:0,class:`project-agent-tags`},Yr={class:`project-agent-detail-source`,"data-detail-section":`assignments`},Xr={class:`project-agent-detail-section`},Zr={class:`project-agent-section-heading`},Qr={class:`project-agent-section-tools`},$r={key:0,class:`project-agent-assignment-list`},ei={class:`project-agent-card-actions`},ti=[`onClick`],ni=[`onClick`],ri={key:0},ii={key:1,class:`project-agent-inline-list`},ai={class:`project-agent-strategy-note`},oi={key:0},si={key:2,class:`project-agent-tags`},ci={key:3},li={key:1,class:`project-agent-muted`},ui={class:`project-agent-detail-source`,"data-detail-section":`executors`},di={class:`project-agent-detail-section`},fi={class:`project-agent-section-heading`},pi={class:`project-agent-muted`},mi={key:0,class:`project-agent-tags`},hi={key:1,class:`project-agent-blocked`},gi={key:2,class:`project-agent-muted`},_i={class:`project-agent-section-tools`},vi={key:3,class:`project-agent-executor-list`},yi=[`onClick`],bi=[`disabled`,`onClick`],xi={key:1},Si=[`disabled`,`onClick`],Ci={key:1},wi={class:`project-agent-detail-source`,"data-detail-section":`tasks`},Ti={class:`project-agent-detail-section`},Ei={class:`project-agent-section-heading`},Di={key:0,class:`project-agent-task-list`},Oi=[`id`],ki={key:0},Ai={key:1,class:`project-agent-inline-list`},ji=[`aria-label`],Mi={class:`project-agent-section-heading`},Ni=[`aria-label`],Pi={class:`project-agent-execution-summary-table`},Fi={class:`sr-only`},Ii={scope:`col`},Li={scope:`col`},Ri={scope:`col`},zi={scope:`col`},Bi={scope:`col`},Vi={scope:`col`},Hi={scope:`col`},Ui={scope:`row`},Wi={class:`project-agent-execution-worker`},Gi=[`aria-label`],Ki={key:0},qi=[`data-label`],Ji=[`data-label`],Yi=[`data-label`],Xi={key:0},Zi={key:1},Qi=[`data-label`],$i=[`href`],ea={key:1},ta={class:`project-agent-reporter-label`},na=[`href`],ra={key:1},ia=[`data-label`],aa=[`data-label`],oa={key:1},sa={key:1,class:`project-agent-muted`},ca=[`aria-label`],la={class:`project-agent-section-heading`},ua={class:`project-agent-execution-summary-list`},da=[`aria-label`],fa={key:1},pa={class:`project-agent-execution-summary-meta`},ma={key:0},ha={key:0},ga={key:1},_a={key:2},va={key:4},ya={key:5,class:`project-agent-routing-decision`},ba={class:`project-agent-section-heading`},xa={key:0},Sa={key:1},Ca={key:2},wa={key:0},Ta={key:3},Ea={key:0},Da={key:4},Oa={class:`project-agent-execution-line`},ka={key:0},Aa={key:1},ja={key:2},Ma={key:6},Na={key:7},Pa={key:1,class:`project-agent-muted`},Fa={class:`project-agent-detail-source`,"data-detail-section":`activity`},Ia={class:`project-agent-detail-section`},La={class:`project-agent-section-heading`},Ra={key:0},za={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},Ba=[`aria-label`],Va=[`aria-label`,`aria-pressed`,`onClick`],Ha={class:`sr-only`},Ua={key:0,class:`project-agent-day-detail`},Wa={key:0,class:`project-agent-muted`},Ga={key:1},Ka={key:1,class:`project-agent-muted`},qa={class:`project-agent-detail-source`,"data-detail-section":`clients`},Ja={class:`project-agent-detail-section`},Ya={class:`project-agent-section-heading`},Xa={key:0,class:`project-agent-client-list`},Za={key:0},Qa={key:1},$a={key:2},eo={key:1,class:`project-agent-muted`},to={class:`project-agent-detail-source`,"data-detail-section":`routing`},no={class:`project-agent-detail-section`},ro={class:`project-agent-section-heading`},io={class:`project-agent-section-tools`},ao={key:0,class:`project-agent-rule-list`},oo=[`disabled`,`onClick`],so={key:1},co={key:1,class:`project-agent-muted`},lo={class:`project-agent-note`},uo={class:`project-agent-detail-source`,"data-detail-section":`learning`},fo={class:`project-agent-detail-section`},po={class:`project-agent-section-heading`},mo={key:0,class:`project-agent-learning-list`},ho={key:0},go={key:1,class:`project-agent-inline-list`},_o={key:0},vo={key:2,class:`project-agent-evidence-list`},yo=[`disabled`,`onClick`],bo={key:1},xo={key:3,class:`project-agent-learning-actions`},So=[`disabled`,`onClick`],Co={key:1},wo={key:1,class:`project-agent-muted`},To={class:`project-agent-note`},Eo={key:1,class:`project-agent-detail-placeholder`},Do=j(s({__name:`ProjectAgentsPage`,setup(i){let s=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],m=k(),y=M(),C=l([]),j=l(!1),P=l(``),V=l(null),H=l(`all`),K=l(``),q=l(``);O(()=>y.query.agent,e=>{typeof e==`string`&&(q.value=e)},{immediate:!0});let ie=l(!1),ae=l(!1),ce=l(``),Y=l(null),de=l(!1),fe=l(`assign`),pe=l(null),me=l(!1),he=l({}),ge=l(``),Se=l(``),we=l(!1),Te=l(``),Ee=l(``),X=l(``),De=l(``),Oe=l(``),ke=l(``),Ae=l(!1),je=l(`executor`),Me=l(null),Ne=l(null),Pe=0,Fe=0,Ie=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function Le(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let Re=u(()=>m.state?.personalProjects??[]);async function ze(e){await st(),Ye.value.some(t=>t.agentId===e.agent.agentId)||(V.value=null,H.value=`all`,K.value=``);let t=q.value===e.agent.agentId;q.value=e.agent.agentId,t&&$()}let Z=u(()=>m.activePersonalSpace?.id??``),Be=u(()=>j.value||!m.state&&(m.runtimeStatus===`idle`||m.runtimeStatus===`loading`)),Ve=u(()=>P.value||(!m.state&&m.runtimeStatus===`error`?m.feedback?.message||d(`projectAgents.loadError`):``));function He(){m.state?st():m.refresh()}let Ue=u(()=>new Map(Re.value.map(e=>[e.project_id,e]))),We=u(()=>Re.value.map(e=>({id:e.project_id,name:e.profile.name}))),Ke=u({get:()=>V.value??We.value.map(e=>e.id),set:e=>{let t=We.value.filter(t=>e.includes(t.id)).map(e=>e.id);V.value=t.length===We.value.length?null:t}}),qe=u(()=>V.value?.length===1?V.value[0]:``);O([()=>y.query.project,We],([e,t])=>{typeof e==`string`&&t.some(t=>t.id===e)&&(V.value=[e])},{immediate:!0});let Je=u(()=>[{value:`all`,label:d(`projectAgents.status.all`)},{value:`active`,label:d(`projectAgents.status.active`)},{value:`inactive`,label:d(`projectAgents.status.inactive`)},{value:`archived`,label:d(`projectAgents.status.archived`)}]),Ye=u(()=>{let e=K.value.trim().toLocaleLowerCase(b());return C.value.filter(e=>V.value===null||Pt(e).some(({id:e})=>V.value.includes(e))).filter(e=>H.value===`all`||e.profile.status===H.value).filter(t=>!e||It(t).toLocaleLowerCase(b()).includes(e)).sort(At)}),Q=u(()=>Ye.value.find(e=>e.agentId===q.value)??null),Xe=u(()=>Q.value?z(Q.value):null),Ze=u(()=>te.value.find(e=>e.id===Xe.value)),Qe=u(()=>Q.value?Pt(Q.value).filter(e=>Ue.value.get(e.id)?.profile.lifecycle!==`archived`):[]),$e=u(()=>C.value.filter(({profile:e})=>e.status===`active`).length),et=u(()=>C.value.reduce((e,t)=>e+Nt(t).length,0)),tt=u(()=>new Set(C.value.flatMap(e=>Nt(e).map(({personalProjectId:e})=>e))).size),nt=u(()=>qe.value?qe.value:Q.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Q.value?.personalProjectId??Re.value[0]?.project_id??null),rt=u(()=>Q.value?.activity??null),it=u(()=>rt.value?.days.find(({date:e})=>e===Se.value)??null),at=u(()=>Object.entries(Q.value?.learningEvidence??{})),ot=u(()=>Q.value?.recruitments??[]);a(()=>{m.runtimeStatus===`idle`&&m.refresh()}),O(Z,e=>{++Pe,++Fe,he.value={},q.value=``,C.value=[],V.value=typeof y.query.project==`string`&&We.value.some(e=>e.id===y.query.project)?[y.query.project]:null,P.value=``,e?st(e):j.value=!1},{immediate:!0}),O(Ye,e=>{if(!e.some(e=>e.agentId===q.value)){let t=e.find(e=>e.agentId===y.query.agent||typeof y.query.agent==`string`&&e.legacyAgentIds?.includes(y.query.agent));q.value=t?.agentId??e[0]?.agentId??``}e.some(e=>e.activity?.days.some(({date:e})=>e===Se.value))||(Se.value=``)},{immediate:!0}),O([q,Z],([e,t])=>{Se.value=``,e&&t&&$(e,t)},{immediate:!0});async function st(e=Z.value){if(!e)return;let t=++Pe;j.value=!0,P.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([I(`/api/project-agents?${n}`),I(`/api/project-agent-tasks?${n}`)]);if(t!==Pe)return;if(ee(e),r.status===`rejected`)throw r.reason;if(t===Pe){let e=ko(oe(r.value)),t=i.status===`fulfilled`?Ln(i.value).filter(e=>Ie.has(e.status)):[];C.value=kn(e,t)}}catch(e){t===Pe&&(P.value=e instanceof Error?e.message:d(`projectAgents.loadError`))}finally{t===Pe&&(j.value=!1)}}async function $(e=q.value,t=Z.value){let n=C.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++Fe;me.value=!0,ge.value=``,ut(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=xe(),o=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),c={assignments:I(`/api/project-agent-assignments?${i}`),tasks:ct(i),activity:I(`/api/project-agent-activity?${o}`),recruitments:I(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:I(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:I(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:I(`/api/project-agent-routing-learning?${i}`)};await Promise.all(s.map(async i=>{try{let a=await c[i];if(!mt(r,e,t))return;ht(n,i,a),dt(e,i,{status:`ready`,error:``})}catch(n){if(!mt(r,e,t))return;dt(e,i,{status:`error`,error:n instanceof Error?n.message:d(`projectAgents.detail.sectionUnavailable`)})}})),mt(r,e,t)&&(me.value=!1)}async function ct(e){let t=typeof y.query.project==`string`?y.query.project:``,n=typeof y.query.task==`string`?y.query.task:``;t&&(e=new URLSearchParams([...e,[`personalProjectId`,t]]));let r=await I(`/api/project-agent-tasks?${e}`);if(!n||!t)return r;let i=Ln(r);if(!i.some(e=>e.taskId===n)){let r=_e(await I(`/api/project-agent-tasks/${encodeURIComponent(n)}?${e}`));r&&r.personalProjectId===t&&r.participants.some(t=>t.agentId===e.get(`agentId`))&&i.unshift(r)}return i}O([()=>y.query.task,me],async([t,n])=>{n||typeof t!=`string`||(await e(),document.getElementById(`task-${t}`)?.scrollIntoView?.({block:`nearest`}))});function lt(e=`idle`){return Object.fromEntries(s.map(t=>[t,{status:e,error:``}]))}function ut(e,t){he.value={...he.value,[e]:lt(t)}}function dt(e,t,n){he.value={...he.value,[e]:{...he.value[e]??lt(),[t]:n}}}function ft(e){let t=(Array.isArray(e)?e:[e]).map(e=>he.value[q.value]?.[e]??{status:`idle`,error:``});return t.find(({status:e})=>e===`error`)??t.find(({status:e})=>e===`loading`)??t.find(({status:e})=>e===`idle`)??{status:`ready`,error:``}}function pt(e){return d(`projectAgents.detail.loading.`+e)}function mt(e,t,n){return e===Fe&&t===q.value&&n===Z.value}function ht(e,t,n){let r;switch(t){case`assignments`:gt(n,[`assignments`,`items`]),r={assignments:Mn(n,e)};break;case`tasks`:gt(n,[`tasks`,`items`]),r={tasks:Ln(n)};break;case`activity`:{let e=Ce(n,{agentId:q.value,personalSpaceId:Z.value});if(!e)throw Error(d(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:gt(n,[`recruitments`,`items`]),r={recruitments:zn(n).filter(t=>Bn(t,e))};break;case`executors`:gt(n,[`executors`,`items`]),r={executorDirectory:Pn(n),clientEvidence:Vn(n)};break;case`routingRules`:gt(n,[`rules`,`items`]),r={routingRules:Do(n)};break;case`learning`:gt(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:Oo(n)};break}C.value=C.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function gt(e,t,n=!1){if(Array.isArray(e))return;let r=U(e);if(!t.some(e=>Array.isArray(r[e])||n&&_t(r[e])))throw Error(d(`projectAgents.detail.sectionUnavailable`))}function _t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function vt(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=Q.value;if(!(!r||!i||!Z.value||Te.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){ge.value=d(`projectAgents.learning.resetUnavailable`);return}Te.value=r,Ee.value=t;try{await L(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:Z.value,personalProjectId:e.personalProjectId,agentId:i.agentId,workKind:e.workKind,executorId:e.executor,modelStrategy:e.modelStrategy,modelStrategyKey:e.modelStrategyKey,resetAt:t===`reset`?new Date().toISOString():void 0,idempotencyKey:t===`ignore`?`console-learning:${r}:ignore`:Le(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await $()}catch(e){ge.value=e instanceof Error?e.message:d(`projectAgents.learning.updateFailed`)}finally{Te.value=``,Ee.value=``}}}async function yt(e,t){if(!(!Z.value||X.value)){X.value=e.recruitmentId,De.value=t;try{await F(`/api/project-agent-recruitments/decision`,{personalSpaceId:Z.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:d(`projectAgents.recruitment.${t}Reason`)}),await $()}catch(e){ge.value=e instanceof Error?e.message:d(`projectAgents.recruitment.decisionFailed`)}finally{X.value=``,De.value=``}}}async function bt(e,t){if(!(!Z.value||Oe.value)){Oe.value=e.executorId,ke.value=t===`authorized`?`authorize`:`revoke`;try{await F(`/api/executors/authorization`,{personalSpaceId:Z.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:Le(`console-executor:${e.executorId}:${t}`),reason:d(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await $()}catch(e){ge.value=e instanceof Error?e.message:d(`projectAgents.routing.authorizationFailed`)}finally{Oe.value=``,ke.value=``}}}function St(e=null){je.value=`executor`,Me.value=e,Ne.value=null,Ae.value=!0}function Ct(e=null){je.value=`rule`,Ne.value=e,Me.value=null,Ae.value=!0}function wt(){Ae.value=!1,Me.value=null,Ne.value=null}function Tt(e){Q.value&&(C.value=C.value.map(t=>t.agentId===Q.value?.agentId?{...t,executorDirectory:Ao([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),wt())}function Et(e){Q.value&&(C.value=C.value.map(t=>t.agentId===Q.value?.agentId?{...t,routingRules:Ao([...t.routingRules??[],e],({ruleId:e})=>e)}:t),wt())}function Dt(e){je.value===`executor`?Tt(e):Et(e)}async function Ot(e){if(!(!Z.value||!e.ruleId||X.value)){X.value=`rule:${e.ruleId}`,De.value=`disable`;try{await L(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:Z.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await $()}catch(e){ge.value=e instanceof Error?e.message:d(`projectAgents.routing.updateFailed`)}finally{X.value=``,De.value=``}}}async function kt(e){if(e.profile.cleanupEligible){we.value=!0,me.value=!0;try{await R(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await st()}catch(e){ge.value=e instanceof Error?e.message:d(`projectAgents.source.cleanupFailed`)}finally{we.value=!1,me.value=!1}}}function At(e,t){let n={active:0,inactive:1,archived:2};return n[e.profile.status]-n[t.profile.status]||e.profile.name.localeCompare(t.profile.name,b())||e.agentId.localeCompare(t.agentId,b())}function jt(e){return e?Ue.value.get(e)?.profile.name??e:d(`projectAgents.notReported`)}function Mt(e){return e.assignments??(e.personalProjectId?[Ft(e)]:[])}function Nt(e){return[...new Map(Mt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function Pt(e){let t=z(e);return(t?te.value.find(e=>e.id===t):void 0)?.managedProjects??Nt(e).map(e=>({id:e.personalProjectId,name:jt(e.personalProjectId)}))}function Ft(e){return{assignmentId:`legacy:${e.agentId}:${e.personalProjectId}`,personalSpaceId:e.personalSpaceId,personalProjectId:e.personalProjectId??``,agentId:e.agentId,responsibility:e.profile.responsibility,capabilities:e.profile.capabilities,status:e.profile.status===`active`?`active`:`ended`,assignedAt:e.createdAt,updatedAt:e.updatedAt,reason:null}}function It(e){return[e.agentId,e.profile.name,e.profile.displayName??``,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Mt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function Lt(){Y.value=null,ie.value=!0}function Rt(e=``){ce.value=e,ae.value=!0}function zt(e){Y.value=e,ie.value=!0}function Bt(){ie.value=!1,Y.value=null}function Vt(e,t=null,n=`assign`){let r=z(e);if(n===`assign`&&r){Rt(r);return}Y.value=e,pe.value=t,fe.value=n,de.value=!0}function Ht(){de.value=!1,pe.value=null,fe.value=`assign`}function Ut(e){Y.value&&(C.value=C.value.map(t=>t.agentId===Y.value?.agentId?{...t,assignments:Ao([...t.assignments??[],e],({assignmentId:e})=>e)}:t),q.value=Y.value.agentId,Ht())}function Wt(){Ht(),$()}function Gt(e){let t=An(e),n=C.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));C.value=ko([...n,t]),t.personalProjectId&&(V.value=[t.personalProjectId]),H.value=`all`,K.value=``,q.value=t.agentId,m.notify(d(`projectAgents.saved`))}function qt(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?d(`projectAgents.notReported`):new Intl.DateTimeFormat(b(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function Jt(e){if(!e)return d(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(b(),{month:`short`,day:`numeric`}).format(t)}function Yt(e){return e?.mode??`adaptive`}function Zt(e){return e?.mode??`flexible`}function Qt(e){return e?.mode===`locked`}function $t(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function en(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?be(t):null}function tn(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||d(`projectAgents.notReported`)}function nn(e){return e.workerOccupationEmoji||``}function rn(e){return cn(e.workerStatus||e.status)}function on(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||d(`projectAgents.notReported`)}function sn(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function cn(e){return e?gn(e):d(`projectAgents.notReported`)}function ln(e){if(!e)return d(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=d(t);return n===t?e:n}function un(e){return d(`projectAgents.tokenSources.${e}`)}function dn(e){return e?`${new Intl.NumberFormat(b()).format(e.totalTokens)} Token · ${un(e.source)}`:d(`projectAgents.notReported`)}function fn(e){return pn(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function pn(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if(e.username||e.password||e.search||e.hash)return null;if(e.protocol===`https:`||e.protocol===`http:`&&[`127.0.0.1`,`localhost`,`[::1]`].includes(e.hostname)||e.protocol===`codex:`&&e.hostname===`threads`&&e.pathname!==`/`)return t}catch{return null}return null}function mn(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function hn(e){return(e.tasks??[]).find(e=>Ie.has(e.status))??null}function gn(e){let t=`projectAgents.taskStatus.${e}`,n=d(t);return n===t?e:n}function _n(e){return d(`projectAgents.agentType.${e??`durable`}`)}function vn(e){return d(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function yn(e){return jo([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function bn(e,t){return e.clientEvidence?.find(e=>e.client===t)}function xn(e,t){return bn(e,t)?.actualUse?.count??0}function Sn(e){return e.neutral!==!1||e.sampleCount<=0}function Cn(e){return Sn(e)?d(`projectAgents.learning.neutral`):d(`projectAgents.learning.recorded`)}function wn(e){return e.recentWeightedSamples??d(`projectAgents.notReported`)}function Tn(e){return e.score??``}function En(e,t){let n=Math.max(...t.days.map(({total:e})=>e),0);return!n||!e.total?0:Math.min(4,Math.ceil(e.total/n*4))}function Dn(e){Se.value=e.date}function On(e,t){return t.ownerAgentId===e.agentId||t.leadAgentId===e.agentId||t.coordinatorAgentId===e.agentId||t.participants.some(t=>t.agentId===e.agentId)}function kn(e,t){return e.map(e=>{let n=t.filter(t=>On(e,t));return n.length?{...e,tasks:Ao([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function An(e){let t=U(e),n=U(t.profile),r=G(t,`agentId`,`agent_id`)??``,i=G(t,`createdAt`,`created_at`)??``,a=G(t,`updatedAt`,`updated_at`)??i,o={name:G(n,`name`,`name`)??r,displayName:G(n,`displayName`,`display_name`),responsibility:G(n,`responsibility`,`responsibility`)??``,capabilities:J(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:J(W(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:G(n,`status`,`status`)??`active`,occupationEmoji:G(n,`occupationEmoji`,`occupation_emoji`),agentType:G(n,`agentType`,`agent_type`),workKinds:J(W(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:se(W(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:le(W(n,`executorPolicy`,`executor_policy`)),allowedClients:J(W(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),testSource:G(n,`testSource`,`test_source`),cleanupEligible:W(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:G(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:G(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:G(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>ue(e,s)).filter(Boolean):void 0,legacyAgentIds:J(t.legacyAgentIds??t.legacy_agent_ids).filter(e=>typeof e==`string`),recruitments:zn(t.recruitments??t.recruitmentHistory).filter(e=>Bn(e,s)),recruitmentId:G(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:G(t,`temporaryTaskId`,`temporary_task_id`),workStatus:G(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:G(t,`currentTaskId`,`current_task_id`),observedClients:J(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:G(t,`recruitedAt`,`recruited_at`),recruitmentReason:G(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:G(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:J(t.tasks??t.taskHistory).map(_e).filter(Boolean),activity:Ce(t.activity,{agentId:q.value,personalSpaceId:Z.value}),clientEvidence:Vn(t.clientEvidence??t.client_evidence),routingRules:Do(t.routingRules??t.routing_rules),learningEvidence:In(t.learningEvidence??t.learning_evidence)}}function jn(e){let t=U(e),n=G(t,`client`,`client`);if(!n)return null;let r=U(W(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:G(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:G(r,`lastUsedAt`,`last_used_at`)}:null}}function Mn(e,t){let n=U(e);return J(Array.isArray(e)?e:n.assignments??n.items).map(e=>ue(e,t)).filter(e=>!!e)}function Nn(e){let t=U(e),n=G(t,`provider`,`provider`),r=G(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:J(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:J(W(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:J(W(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:G(t,`observedAt`,`observed_at`),unavailableReason:G(t,`unavailableReason`,`unavailable_reason`)}}function Pn(e){let t=U(e);return J(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=U(e),n=G(t,`executorId`,`executor_id`);if(!n)return null;let r=U(W(t,`actualUse`,`actual_use`));return{executorId:n,label:G(t,`label`,`label`),provider:G(t,`provider`,`provider`),model:G(t,`model`,`model`),client:G(t,`client`,`client`),availabilityStatus:G(t,`availabilityStatus`,`availability_status`),personalSpaceId:G(t,`personalSpaceId`,`personal_space_id`),displayName:G(t,`displayName`,`display_name`),executorKind:G(t,`executorKind`,`executor_kind`),capabilities:J(W(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof W(t,`globalPriority`,`global_priority`)==`number`?W(t,`globalPriority`,`global_priority`):null,healthRequired:W(t,`healthRequired`,`health_required`)===!0,registrationStatus:G(t,`registrationStatus`,`registration_status`),permissionStatus:G(t,`permissionStatus`,`permission_status`),preflightStatus:G(t,`preflightStatus`,`preflight_status`),healthStatus:G(t,`healthStatus`,`health_status`),workspacePermission:typeof W(t,`workspacePermission`,`workspace_permission`)==`boolean`?W(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof W(t,`permissionRevision`,`permission_revision`)==`number`?W(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:G(t,`registeredAt`,`registered_at`),updatedAt:G(t,`updatedAt`,`updated_at`),testSource:G(t,`testSource`,`test_source`),cleanupEligible:W(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:J(W(t,`advertisedModels`,`advertised_models`)).map(Nn).filter(e=>e!==null),availableModels:J(W(t,`availableModels`,`available_models`)).map(Nn).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:G(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Fn(e){let t=U(e),n=G(t,`ruleId`,`rule_id`);if(!n)return null;let r=G(t,`status`,`status`);return{ruleId:n,scope:G(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:G(t,`personalProjectId`,`personal_project_id`),taskId:G(t,`taskId`,`task_id`),workKind:G(t,`workKind`,`work_kind`),agentId:G(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:J(W(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:J(W(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:se(W(t,`modelStrategy`,`model_strategy`)),reason:G(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:G(t,`createdAt`,`created_at`),updatedAt:G(t,`updatedAt`,`updated_at`)}}function In(e){let t=U(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(U(n))).map((e,t)=>{let n=U(e),r=G(n,`personalProjectId`,`personal_project_id`),i=G(n,`workKind`,`work_kind`),a=G(n,`executorId`,`executor_id`)??G(n,`executor`,`executor`),o=se(W(n,`modelStrategy`,`model_strategy`)),s=G(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=J(W(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=U(e),n=G(t,`signal`,`signal`),r=G(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof W(t,`decayWeight`,`decay_weight`)==`number`?W(t,`decayWeight`,`decay_weight`):null;return{evidenceId:G(t,`evidenceId`,`evidence_id`)??void 0,kind:r,count:typeof t.value==`number`?t.value:void 0,summary:n?`${n}${i===null?``:` · ${i.toFixed(3)}`}`:null,occurredAt:G(t,`occurredAt`,`occurred_at`)}}),u=typeof W(n,`weightedSuccess`,`weighted_success`)==`number`?W(n,`weightedSuccess`,`weighted_success`):0,d=typeof W(n,`weightedFailure`,`weighted_failure`)==`number`?W(n,`weightedFailure`,`weighted_failure`):0,f=W(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof W(n,`sampleCount`,`sample_count`)==`number`?W(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof W(n,`recentCount`,`recent_count`)==`number`?W(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:G(n,`asOf`,`as_of`)??G(n,`updatedAt`,`updated_at`),outcomes:{success:typeof W(n,`successCount`,`success_count`)==`number`?W(n,`successCount`,`success_count`):void 0,rework:typeof W(n,`reworkCount`,`rework_count`)==`number`?W(n,`reworkCount`,`rework_count`):void 0,failure:typeof W(n,`failureCount`,`failure_count`)==`number`?W(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof W(n,`ratingCount`,`rating_count`)==`number`?W(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:W(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function Ln(e){let t=U(e);return J(Array.isArray(e)?e:t.tasks??t.items).map(_e).filter(Boolean)}function Rn(e){let t=U(e),n=G(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:G(t,`personalSpaceId`,`personal_space_id`)??Z.value,personalProjectId:G(t,`personalProjectId`,`personal_project_id`)??``,taskId:G(t,`taskId`,`task_id`)??``,coordinatorAgentId:G(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:G(t,`hrAgentId`,`hr_agent_id`),positionKind:G(t,`positionKind`,`position_kind`)??`durable`,workKind:G(t,`workKind`,`work_kind`)??``,requiredCapabilities:J(W(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:G(t,`reasonCode`,`reason_code`)??``,reason:G(t,`reason`,`reason`)??``,status:G(t,`status`,`status`)??`unknown`,confirmationMode:G(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:G(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:G(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:G(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:G(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:G(t,`testSource`,`test_source`),cleanupEligible:W(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:G(t,`createdAt`,`created_at`)??``,updatedAt:G(t,`updatedAt`,`updated_at`)??``,fulfilledAt:G(t,`fulfilledAt`,`fulfilled_at`)}:null}function zn(e){let t=U(e);return J(Array.isArray(e)?e:t.recruitments??t.items).map(Rn).filter(e=>!!e)}function Bn(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function Vn(e){let t=U(e);return J(Array.isArray(e)?e:t.clients??t.executors??t.items).map(jn).filter(Boolean)}function Do(e){let t=U(e);return J(Array.isArray(e)?e:t.rules??t.items).map(Fn).filter(Boolean)}function Oo(e){let t=U(e);return In(t.learningEvidence??t.learning_evidence??e)}function ko(e){let t=new Map;return e.map(An).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Mt(n),...Mt(e)],i=[...n.tasks??[],...e.tasks??[]];t.set(e.agentId,{...n,personalProjectId:n.personalProjectId??e.personalProjectId,profile:{...n.profile,occupationEmoji:n.profile.occupationEmoji??e.profile.occupationEmoji,capabilities:jo([...n.profile.capabilities,...e.profile.capabilities]),workKinds:jo([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:jo([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:Ao(r,({assignmentId:e})=>e),recruitments:Ao([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:Ao(i,({taskId:e})=>e),activity:n.activity??e.activity,clientEvidence:n.clientEvidence?.length?n.clientEvidence:e.clientEvidence,routingRules:n.routingRules?.length?n.routingRules:e.routingRules,learningEvidence:{...e.learningEvidence??{},...n.learningEvidence??{}},observedClients:jo([...n.observedClients??[],...e.observedClients??[]]),openTaskCount:Math.max(n.openTaskCount??0,e.openTaskCount??0)||void 0,currentTaskId:n.currentTaskId??e.currentTaskId,workStatus:n.workStatus??e.workStatus})}),[...t.values()]}function Ao(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function jo(e){return[...new Set(e)]}return(e,i)=>(o(),E(`section`,{class:`view project-agents-view`,"aria-label":x(d)(`projectAgents.aria`)},[w(`header`,Wn,[w(`div`,null,[w(`h2`,null,f(x(d)(`projectAgents.title`)),1),!Be.value&&!Ve.value?(o(),E(`p`,Gn,f(x(d)(`projectAgents.stats.total`,{count:C.value.length}))+` · `+f(x(d)(`projectAgents.stats.assignments`,{count:et.value}))+` · `+f(x(d)(`projectAgents.stats.projects`,{count:tt.value})),1)):p(``,!0)]),w(`div`,Kn,[w(`button`,{class:`quiet-button`,type:`button`,disabled:!Z.value,onClick:Lt},f(x(d)(`projectAgents.add`)),9,qn),w(`button`,{class:`project-agent-add`,type:`button`,disabled:!Z.value,onClick:i[0]||=e=>Rt()},f(x(d)(`employees.recruit`)),9,Jn)])]),T(re,{open:ae.value,"personal-space-id":Z.value,projects:Re.value,"template-id":ce.value,"default-project-ids":V.value??[],onClose:i[1]||=e=>ae.value=!1,onRecruited:ze},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),!Be.value&&!Ve.value?(o(),E(`div`,Yn,[w(`span`,null,f(x(d)(`projectAgents.stats.active`,{count:$e.value})),1),w(`span`,null,f(x(d)(`projectAgents.stats.noOnlineClaim`)),1)])):p(``,!0),w(`div`,Xn,[T(ne,{modelValue:Ke.value,"onUpdate:modelValue":i[2]||=e=>Ke.value=e,class:`project-agents-project-filter`,compact:``,projects:We.value,label:x(d)(`employees.filterLabel`),hint:x(d)(`employees.filterHint`),"empty-label":x(d)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),w(`label`,Zn,[w(`span`,Qn,f(x(d)(`projectAgents.searchLabel`)),1),r(w(`input`,{"onUpdate:modelValue":i[3]||=e=>K.value=e,type:`search`,placeholder:x(d)(`projectAgents.searchPlaceholder`)},null,8,$n),[[h,K.value]])]),w(`div`,{class:`project-agents-status-filter`,"aria-label":x(d)(`projectAgents.fields.status`)},[(o(!0),E(_,null,n(Je.value,e=>(o(),E(`button`,{key:e.value,type:`button`,"aria-pressed":H.value===e.value,onClick:t=>H.value=e.value},f(e.label),9,tr))),128))],8,er)]),qe.value?(o(),D(Kt,{key:qe.value,"personal-space-id":Z.value,"personal-project-id":qe.value,"project-name":jt(qe.value),agents:C.value,onSelect:i[4]||=e=>q.value=e},null,8,[`personal-space-id`,`personal-project-id`,`project-name`,`agents`])):p(``,!0),Be.value?(o(),D(A,{key:2,label:x(m).state?x(d)(`projectAgents.loading`):x(d)(`common.status.loadingConsole`)},null,8,[`label`])):Ve.value?(o(),E(`div`,nr,[w(`p`,null,f(Ve.value),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:He},f(x(d)(`projectAgents.retry`)),1)])):C.value.length?Ye.value.length?(o(),E(`div`,or,[w(`div`,{class:`project-agent-list`,role:`list`,"aria-label":x(d)(`projectAgents.listLabel`)},[(o(!0),E(_,null,n(Ye.value,e=>(o(),E(`div`,{key:e.agentId,class:`project-agent-row-shell`},[w(`button`,{type:`button`,class:S([`project-agent-row`,{selected:q.value===e.agentId}]),"aria-current":q.value===e.agentId?`true`:void 0,onClick:t=>q.value=e.agentId},[w(`span`,lr,[e.profile.occupationEmoji?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${x(d)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},f(e.profile.occupationEmoji),9,ur)):p(``,!0),w(`strong`,null,f(e.profile.displayName||e.profile.name),1),w(`i`,dr,f(_n(e.profile.agentType)),1),w(`i`,{class:S(`is-${e.profile.status}`)},f(x(d)(`projectAgents.status.${e.profile.status}`)),3)]),w(`span`,fr,[(o(!0),E(_,null,n(Pt(e).slice(0,3),e=>(o(),E(`b`,{key:e.id},f(e.name),1))),128)),Pt(e).length>3?(o(),E(`b`,pr,`+`+f(Pt(e).length-3),1)):p(``,!0),Pt(e).length?p(``,!0):(o(),E(`em`,mr,f(x(d)(`employees.noAssignedProjects`)),1))]),w(`span`,hr,f(e.profile.responsibility||x(d)(`projectAgents.notReported`)),1),w(`span`,gr,[hn(e)?(o(),E(_,{key:0},[w(`i`,{class:S([`project-agent-work-dot`,{"is-live":hn(e).status===`running`}]),"aria-hidden":`true`},null,2),t(f(gn(hn(e).status))+` · `+f(hn(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(o(),E(_,{key:1},[t(f(gn(e.workStatus))+` · `+f(x(d)(`projectAgents.detail.stateReported`)),1)],64)):(o(),E(_,{key:2},[t(f(x(d)(`projectAgents.detail.noRun`)),1)],64))]),w(`span`,_r,[(o(!0),E(_,null,n(e.profile.capabilities.slice(0,3),e=>(o(),E(`b`,{key:e},f(e),1))),128))])],10,cr),T(B,{"agent-id":e.agentId},null,8,[`agent-id`])]))),128))],8,sr),Q.value?(o(),E(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Q.value.profile.displayName||Q.value.profile.name},[w(`header`,null,[w(`div`,yr,[w(`h3`,null,[Q.value.profile.occupationEmoji?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${x(d)(`projectAgents.fields.occupationEmoji`)}: ${Q.value.profile.occupationEmoji}`},f(Q.value.profile.occupationEmoji),9,br)):p(``,!0),t(f(Q.value.profile.displayName||Q.value.profile.name)+` `,1),T(B,{"agent-id":Q.value.agentId},null,8,[`agent-id`])]),w(`p`,null,[t(f(Q.value.agentId)+` · `+f(_n(Q.value.profile.agentType)),1),Q.value.isTestRole?(o(),E(`span`,xr,[t(` · `+f(x(d)(`projectAgents.source.testRole`)),1),Q.value.profile.testSource?(o(),E(`span`,Sr,` · `+f(Q.value.profile.testSource),1)):p(``,!0)])):p(``,!0)])]),w(`div`,Cr,[w(`button`,{class:`quiet-button`,type:`button`,disabled:me.value,onClick:i[5]||=e=>$()},f(x(d)(`projectAgents.detail.refresh`)),9,wr),w(`button`,{class:`quiet-button`,type:`button`,onClick:i[6]||=e=>zt(Q.value)},f(x(d)(`projectAgents.edit`)),1),Q.value.profile.cleanupEligible?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:me.value,onClick:i[7]||=e=>kt(Q.value)},[we.value?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.source.cleanupLoading`)},null,8,[`label`])):(o(),E(`span`,Er,f(x(d)(`projectAgents.source.cleanup`)),1))],8,Tr)):p(``,!0)])]),ge.value?(o(),E(`p`,Dr,f(ge.value),1)):p(``,!0),Xe.value?(o(),E(`section`,Or,[w(`div`,kr,[w(`div`,null,[w(`h4`,Ar,f(Ze.value?.management?.mode===`all`?x(d)(`employees.scope.continuousAll`):x(d)(`employees.scope.label`)),1),w(`p`,null,f(x(d)(`employees.assignedCount`,{count:Qe.value.length})),1)]),w(`button`,{class:`project-agent-add`,type:`button`,onClick:i[8]||=e=>Rt(Xe.value)},f(x(d)(`employees.manageProjects`)),1)]),Qe.value.length?(o(),E(`div`,jr,[(o(!0),E(_,null,n(Qe.value,e=>(o(),D(x(N),{key:e.id,to:`/employees/${encodeURIComponent(Xe.value)}?project=${encodeURIComponent(e.id)}`},{default:c(()=>[w(`span`,null,f(e.name),1),i[12]||=w(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[w(`path`,{d:`M4 10h12m-5-5 5 5-5 5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]),_:2},1032,[`to`]))),128))])):(o(),E(`p`,Mr,f(x(d)(`employees.manageHint`)),1))])):p(``,!0),w(`dl`,Nr,[w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.assignments`)),1),w(`dd`,null,f(Nt(Q.value).length),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.memoryScope`)),1),w(`dd`,null,f(Q.value.memoryScope??x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.status`)),1),w(`dd`,null,f(x(d)(`projectAgents.status.${Q.value.profile.status}`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.recruitment`)),1),w(`dd`,null,[t(f(vn(Q.value.recruitmentSourceApplication)),1),Q.value.recruitmentReason?(o(),E(`small`,Pr,f(Q.value.recruitmentReason),1)):p(``,!0)])]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.updatedAt`)),1),w(`dd`,null,f(qt(Q.value.updatedAt)),1)])]),w(`div`,Fr,[T(Xt,v(ft(`recruitments`),{label:pt(`recruitments`),onRetry:$}),{default:c(()=>[w(`section`,Ir,[w(`div`,Lr,[w(`h4`,Rr,f(x(d)(`projectAgents.sections.recruitment`)),1),w(`span`,null,f(ot.value.length),1)]),ot.value.length?(o(),E(`div`,zr,[(o(!0),E(_,null,n(ot.value,e=>(o(),E(`article`,{key:e.recruitmentId,class:`project-agent-recruitment-card`},[w(`header`,null,[w(`strong`,null,f(e.positionKind)+` · `+f(e.workKind||x(d)(`projectAgents.notReported`)),1),w(`div`,Br,[w(`i`,null,f(e.status),1),e.status===`awaiting_confirmation`?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>yt(e,`approve`)},[X.value===e.recruitmentId&&De.value===`approve`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.recruitment.approving`)},null,8,[`label`])):(o(),E(`span`,Hr,f(x(d)(`projectAgents.recruitment.approve`)),1))],8,Vr)):p(``,!0),e.status===`awaiting_confirmation`?(o(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>yt(e,`cancel`)},[X.value===e.recruitmentId&&De.value===`cancel`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.recruitment.cancelling`)},null,8,[`label`])):(o(),E(`span`,Wr,f(x(d)(`projectAgents.recruitment.cancel`)),1))],8,Ur)):p(``,!0)])]),w(`dl`,Gr,[w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.hr`)),1),w(`dd`,null,f(e.hrAgentId||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.trigger`)),1),w(`dd`,null,f(vn(e.triggerSourceApplication)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.reason`)),1),w(`dd`,null,f(e.reason||e.reasonCode||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.recruitment.time`)),1),w(`dd`,null,f(qt(e.fulfilledAt||e.createdAt)),1)])]),w(`small`,null,f(x(d)(`projectAgents.recruitment.testSource`))+` · `+f(e.testSource||x(d)(`projectAgents.notReported`)),1)]))),128))])):(o(),E(`p`,Kr,f(x(d)(`projectAgents.recruitment.empty`)),1))])]),_:1},16,[`label`])]),w(`section`,qr,[w(`h4`,null,f(x(d)(`projectAgents.fields.responsibility`)),1),w(`p`,null,f(Q.value.profile.responsibility||x(d)(`projectAgents.notReported`)),1),Q.value.profile.capabilities.length?(o(),E(`div`,Jr,[(o(!0),E(_,null,n(Q.value.profile.capabilities,e=>(o(),E(`span`,{key:e},f(e),1))),128))])):p(``,!0)]),w(`div`,Yr,[T(Xt,v(ft(`assignments`),{label:pt(`assignments`),onRetry:$}),{default:c(()=>[w(`section`,Xr,[w(`div`,Zr,[w(`h4`,null,f(x(d)(`projectAgents.sections.assignments`)),1),w(`div`,Qr,[w(`span`,null,f(Mt(Q.value).length),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:i[9]||=e=>Vt(Q.value)},f(x(d)(`projectAgents.assignmentDialog.assign`)),1)])]),Mt(Q.value).length?(o(),E(`div`,$r,[(o(!0),E(_,null,n(Mt(Q.value),e=>(o(),E(`article`,{key:e.assignmentId,class:`project-agent-assignment-card`},[w(`header`,null,[w(`strong`,null,f(jt(e.personalProjectId)),1),w(`div`,ei,[w(`i`,{class:S(`is-${e.status}`)},f(x(d)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>Vt(Q.value,e,`end`)},f(x(d)(`projectAgents.assignmentDialog.end`)),9,ti)):p(``,!0),e.status===`active`?(o(),E(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>Vt(Q.value,e,`replace`)},f(x(d)(`projectAgents.assignmentDialog.replace`)),9,ni)):p(``,!0)])]),w(`p`,null,f(e.responsibility||x(d)(`projectAgents.notReported`)),1),e.scope?(o(),E(`small`,ri,f(x(d)(`projectAgents.fields.scope`))+` · `+f(e.scope),1)):p(``,!0),w(`small`,null,f(qt(e.assignedAt))+` → `+f(e.endedAt?qt(e.endedAt):x(d)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(o(),E(`div`,ii,[(o(!0),E(_,null,n(e.workKinds,e=>(o(),E(`span`,{key:e},f(e),1))),128))])):p(``,!0),w(`div`,ai,[w(`span`,null,f(x(d)(`projectAgents.fields.assignmentModel`)),1),w(`strong`,null,f(Yt(e.modelStrategyOverride))+` · `+f(Zt(e.executorPolicyOverride)),1),Qt(e.executorPolicyOverride)&&!$t(e.executorPolicyOverride).length?(o(),E(`small`,oi,f(x(d)(`projectAgents.strategy.lockedUnavailable`)),1)):p(``,!0)]),$t(e.executorPolicyOverride).length?(o(),E(`div`,si,[(o(!0),E(_,null,n($t(e.executorPolicyOverride),e=>(o(),E(`span`,{key:e.executorId},f(e.label||e.executorId),1))),128))])):p(``,!0),e.reason?(o(),E(`small`,ci,f(x(d)(`projectAgents.fields.reason`))+` · `+f(e.reason),1)):p(``,!0)]))),128))])):(o(),E(`p`,li,f(x(d)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16,[`label`])]),w(`div`,ui,[T(Xt,v(ft(`executors`),{label:pt(`executors`),onRetry:$}),{default:c(()=>[w(`section`,di,[w(`div`,fi,[w(`h4`,null,f(x(d)(`projectAgents.sections.strategy`)),1),w(`span`,null,f(Yt(Q.value.profile.defaultModelStrategy))+` · `+f(Zt(Q.value.profile.executorPolicy)),1)]),w(`p`,pi,f(x(d)(`projectAgents.strategy.providerNeutral`)),1),$t(Q.value.profile.executorPolicy).length?(o(),E(`div`,mi,[(o(!0),E(_,null,n($t(Q.value.profile.executorPolicy),e=>(o(),E(`span`,{key:e.executorId},f(e.label||e.executorId),1))),128))])):Qt(Q.value.profile.executorPolicy)?(o(),E(`p`,hi,f(x(d)(`projectAgents.strategy.lockedUnavailable`)),1)):(o(),E(`p`,gi,f(x(d)(`projectAgents.strategy.noAllowList`)),1)),w(`div`,_i,[w(`button`,{class:`quiet-button`,type:`button`,onClick:i[10]||=e=>St()},f(x(d)(`projectAgents.routing.addExecutor`)),1)]),Q.value.executorDirectory?.length?(o(),E(`div`,vi,[(o(!0),E(_,null,n(Q.value.executorDirectory,e=>(o(),E(`div`,{key:e.executorId,class:`project-agent-executor-row`},[w(`strong`,null,f(e.displayName||e.label||e.executorId),1),w(`span`,null,f(e.provider||x(d)(`projectAgents.notReported`))+` / `+f(e.model||x(d)(`projectAgents.notReported`)),1),w(`span`,null,f(e.globalPriority??x(d)(`projectAgents.notReported`)),1),w(`small`,null,f(e.registrationStatus||x(d)(`projectAgents.notReported`))+` · `+f(e.permissionStatus||x(d)(`projectAgents.notReported`))+` · `+f(e.preflightStatus||x(d)(`projectAgents.strategy.availabilityUnreported`))+` · `+f(e.healthStatus||x(d)(`projectAgents.notReported`)),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:t=>St(e)},f(x(d)(`projectAgents.routing.editExecutor`)),9,yi),e.permissionStatus===`authorized`?(o(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Oe.value,onClick:t=>bt(e,`revoked`)},[Oe.value===e.executorId&&ke.value===`revoke`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.routing.revoking`)},null,8,[`label`])):(o(),E(`span`,Ci,f(x(d)(`projectAgents.routing.revoke`)),1))],8,Si)):(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Oe.value,onClick:t=>bt(e,`authorized`)},[Oe.value===e.executorId&&ke.value===`authorize`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.routing.authorizing`)},null,8,[`label`])):(o(),E(`span`,xi,f(x(d)(`projectAgents.routing.authorize`)),1))],8,bi))]))),128))])):p(``,!0)])]),_:1},16,[`label`])]),w(`div`,wi,[T(Xt,v(ft(`tasks`),{label:pt(`tasks`),onRetry:$}),{default:c(()=>[w(`section`,Ti,[w(`div`,Ei,[w(`h4`,null,f(x(d)(`projectAgents.sections.tasks`)),1),w(`span`,null,f(Q.value.tasks?.length??0),1)]),Q.value.tasks?.length?(o(),E(`div`,Di,[(o(!0),E(_,null,n(Q.value.tasks,e=>(o(),E(`article`,{id:`task-${e.taskId}`,key:e.taskId,class:S([`project-agent-task-card`,{"is-linked":e.taskId===x(y).query.task}])},[w(`header`,null,[w(`div`,null,[w(`strong`,null,f(e.title),1),w(`small`,null,f(e.taskId)+` · `+f(jt(e.personalProjectId)),1)]),w(`i`,{class:S(`is-${e.status}`)},f(gn(e.status)),3)]),e.resultSummary||e.failureReason?(o(),E(`p`,ki,f(e.resultSummary||e.failureReason),1)):p(``,!0),w(`small`,null,f(x(d)(`projectAgents.fields.collaborators`))+` · `+f(e.participants.length),1),e.participants.length?(o(),E(`div`,Ai,[(o(!0),E(_,null,n(e.participants,t=>(o(),E(`span`,{key:`${e.taskId}:${t.agentId}`},f(t.agentId)+` · `+f(t.role),1))),128))])):p(``,!0),e.executionSummary===void 0?p(``,!0):(o(),E(`section`,{key:2,class:`project-agent-execution-summary`,"aria-label":x(d)(`projectAgents.fields.executionSummary`)},[w(`div`,Mi,[w(`h5`,null,f(x(d)(`projectAgents.fields.executionSummary`)),1),w(`span`,null,f(e.executionSummary.length),1)]),e.executionSummary.length?(o(),E(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":x(d)(`projectAgents.fields.executionSummary`)},[w(`table`,Pi,[w(`caption`,Fi,f(x(d)(`projectAgents.fields.executionSummary`)),1),w(`thead`,null,[w(`tr`,null,[w(`th`,Ii,f(x(d)(`projectAgents.fields.worker`)),1),w(`th`,Li,f(x(d)(`projectAgents.fields.workSummary`)),1),w(`th`,Ri,f(x(d)(`projectAgents.fields.toolsUsed`)),1),w(`th`,zi,f(x(d)(`projectAgents.fields.executionEnvironment`)),1),w(`th`,Bi,f(x(d)(`projectAgents.fields.sourceSession`)),1),w(`th`,Vi,f(x(d)(`projectAgents.fields.tokenUsage`)),1),w(`th`,Hi,f(x(d)(`projectAgents.fields.terminalStatus`)),1)])]),w(`tbody`,null,[(o(!0),E(_,null,n(e.executionSummary,(n,r)=>(o(),E(`tr`,{key:e.taskId+`:execution:`+(n.workerId||n.agentId||r),class:`project-agent-execution-summary-row`},[w(`th`,Ui,[w(`span`,Wi,[sn(n)?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":x(d)(`projectAgents.fields.occupationEmoji`)+`: `+sn(n)},f(sn(n)),9,Gi)):p(``,!0),t(` `+f(on(n)),1)]),n.agentId||n.workerId?(o(),E(`small`,Ki,f(n.workerId||n.agentId),1)):p(``,!0),w(`small`,null,f(ln(n.participantRole)),1)]),w(`td`,{"data-label":x(d)(`projectAgents.fields.workSummary`)},f(n.workSummary||x(d)(`projectAgents.notReported`)),9,qi),w(`td`,{"data-label":x(d)(`projectAgents.fields.toolsUsed`)},f(n.toolsUsed?n.toolsUsed.join(` · `)||x(d)(`projectAgents.noToolsUsed`):x(d)(`projectAgents.notReported`)),9,Ji),w(`td`,{"data-label":x(d)(`projectAgents.fields.executionEnvironment`)},[w(`strong`,null,f(n.executor||x(d)(`projectAgents.notReported`)),1),n.executorId&&n.executorId!==n.executor?(o(),E(`small`,Xi,f(n.executorId),1)):p(``,!0),n.actualModelProvider||n.actualModel?(o(),E(`small`,Zi,f([n.actualModelProvider,n.actualModel].filter(Boolean).join(` · `)),1)):p(``,!0)],8,Yi),w(`td`,{"data-label":x(d)(`projectAgents.fields.sourceSession`)},[w(`span`,null,[n.workerRuntime?(o(),E(_,{key:0},[t(f(x(d)(`projectAgents.fields.workerSession`))+` · `,1)],64)):p(``,!0),t(f(vn(n.workerRuntime?.application||n.sourceApplication)),1)]),fn(n)?(o(),E(`a`,{key:0,href:fn(n)||void 0,target:`_blank`,rel:`noreferrer`},f(mn(n)||fn(n)),9,$i)):(o(),E(`small`,ea,f(mn(n)||x(d)(`projectAgents.notReported`)),1)),n.workerRuntime?(o(),E(_,{key:2},[w(`small`,ta,f(x(d)(`projectAgents.fields.reporterSession`))+` · `+f(vn(n.sourceApplication)),1),pn(n.sourceSessionUrl)?(o(),E(`a`,{key:0,href:pn(n.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},f(n.sourceSessionId||n.sourceSessionUrl),9,na)):(o(),E(`small`,ra,f(n.sourceSessionId||x(d)(`projectAgents.notReported`)),1))],64)):p(``,!0)],8,Qi),w(`td`,{"data-label":x(d)(`projectAgents.fields.tokenUsage`)},f(dn(n.tokenUsage)),9,ia),w(`td`,{"data-label":x(d)(`projectAgents.fields.terminalStatus`)},[n.status?(o(),E(`i`,{key:0,class:S(`is-`+n.status)},f(cn(n.status)),3)):(o(),E(`span`,oa,f(x(d)(`projectAgents.notReported`)),1))],8,aa)]))),128))])])],8,Ni)):(o(),E(`p`,sa,f(x(d)(`projectAgents.detail.noExecutionSummary`)),1))],8,ji)),x(ve)(e).length?(o(),E(`section`,{key:3,class:`project-agent-worker-event-evidence`,"aria-label":x(d)(`projectAgents.fields.workerEventEvidence`)},[w(`div`,la,[w(`h5`,null,f(x(d)(`projectAgents.fields.workerEventEvidence`)),1),w(`span`,null,f(x(ve)(e).length),1)]),w(`ul`,ua,[(o(!0),E(_,null,n(x(ve)(e),n=>(o(),E(`li`,{key:`${e.taskId}:worker-event:${n.eventId}`,class:`project-agent-worker-event-row`},[w(`header`,null,[w(`strong`,null,[nn(n)?(o(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${x(d)(`projectAgents.fields.occupationEmoji`)}: ${nn(n)}`},f(nn(n)),9,da)):p(``,!0),t(f(tn(n)),1),n.agentId?(o(),E(`small`,fa,f(x(d)(`projectAgents.fields.agentId`))+` · `+f(n.agentId),1)):p(``,!0)]),w(`i`,{class:S(`is-${n.workerStatus||n.status}`)},f(rn(n)),3)]),w(`dl`,pa,[w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.workSummary`)),1),w(`dd`,null,f(n.summary||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.sourceApplication`)),1),w(`dd`,null,f(vn(n.sourceApplication)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.sourceSession`)),1),w(`dd`,null,f(n.sourceSessionId||x(d)(`projectAgents.notReported`)),1)]),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.tokenUsage`)),1),w(`dd`,null,f(dn(n.tokenUsage)),1)]),n.actualModelProvider||n.actualModel?(o(),E(`div`,ma,[w(`dt`,null,f(x(d)(`projectAgents.fields.actualModel`)),1),w(`dd`,null,[n.actualModelProvider?(o(),E(`span`,ha,f(n.actualModelProvider),1)):p(``,!0),n.actualModelProvider&&n.actualModel?(o(),E(`span`,ga,` · `)):p(``,!0),n.actualModel?(o(),E(`span`,_a,f(n.actualModel),1)):p(``,!0)])])):p(``,!0),w(`div`,null,[w(`dt`,null,f(x(d)(`projectAgents.fields.reportedAt`)),1),w(`dd`,null,f(qt(n.createdAt)),1)])])]))),128))])],8,ca)):p(``,!0),e.effectiveModelStrategy?(o(),E(`small`,va,f(x(d)(`projectAgents.fields.strategySource`))+` · `+f(e.modelStrategySource||x(d)(`projectAgents.notReported`))+` · `+f(Yt(e.effectiveModelStrategy))+` · `+f(Zt(e.effectiveExecutorPolicy)),1)):p(``,!0),e.routingDecision?(o(),E(`div`,ya,[w(`div`,ba,[w(`span`,null,f(x(d)(`projectAgents.fields.reportedStaffingDecision`)),1),w(`strong`,null,f(e.routingDecision.outcome||x(d)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(o(),E(`small`,xa,f(x(d)(`projectAgents.fields.coordinator`))+` · `+f(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):p(``,!0),w(`small`,null,f(x(d)(`projectAgents.fields.matchBasis`))+` · `+f(e.routingDecision.matchBasis?.join(` · `)||x(d)(`projectAgents.notReported`))+` · `+f(e.routingDecision.reason||x(d)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(o(),E(`small`,Sa,f(x(d)(`projectAgents.fields.candidateAgents`))+` · `+f(e.routingDecision.candidateAgentIds.join(` · `)),1)):p(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(o(),E(`small`,Ca,[t(f(x(d)(`projectAgents.fields.complexity`))+` · `+f(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(o(),E(`span`,wa,` · `+f(e.routingDecision.complexityBasis.join(` · `)),1)):p(``,!0)])):p(``,!0),x(ye)(e.routingDecision.parallelPlan)?(o(),E(`small`,Ta,[t(f(x(d)(`projectAgents.fields.parallelPlan`))+` · `+f(e.routingDecision.parallelPlan?.reason||x(d)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(o(),E(`span`,Ea,` · `+f(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):p(``,!0)])):p(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(o(),E(`small`,Da,f(e.routingDecision.ruleId||x(d)(`projectAgents.notReported`))+` · `+f(e.routingDecision.fallback||x(d)(`projectAgents.notReported`)),1)):p(``,!0)])):p(``,!0),w(`div`,Oa,[w(`span`,null,f(x(d)(`projectAgents.fields.actualExecution`)),1),en(e)?(o(),E(`strong`,ka,f(en(e)?.executor||en(e)?.provider||x(d)(`projectAgents.notReported`))+` / `+f(en(e)?.model||x(d)(`projectAgents.notReported`))+` / `+f(vn(en(e)?.client)),1)):(o(),E(`span`,Aa,f(x(d)(`projectAgents.detail.notReportedActualExecution`)),1)),en(e)?.rule||en(e)?.fallback?(o(),E(`small`,ja,f(en(e)?.rule||x(d)(`projectAgents.notReported`))+` · `+f(en(e)?.fallback||x(d)(`projectAgents.notReported`)),1)):p(``,!0)]),e.runId?(o(),E(`small`,Ma,f(x(d)(`projectAgents.fields.run`))+` · `+f(e.runId),1)):(o(),E(`small`,Na,f(x(d)(`projectAgents.detail.noRun`)),1))],10,Oi))),128))])):(o(),E(`p`,Pa,f(x(d)(`projectAgents.detail.noTasks`)),1))])]),_:1},16,[`label`])]),w(`div`,Fa,[T(Xt,v(ft(`activity`),{label:pt(`activity`),onRetry:$}),{default:c(()=>[w(`section`,Ia,[w(`div`,La,[w(`h4`,null,f(x(d)(`projectAgents.sections.activity`)),1),rt.value?(o(),E(`span`,Ra,f(rt.value.days.length),1)):p(``,!0)]),rt.value?.days.length?(o(),E(`div`,za,[w(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":x(d)(`projectAgents.activity.aria`)},[(o(!0),E(_,null,n(rt.value.days,e=>(o(),E(`button`,{key:e.date,type:`button`,role:`listitem`,class:S([`project-agent-heat-cell`,`intensity-${En(e,rt.value)}`,{selected:Se.value===e.date}]),"aria-label":`${Jt(e.date)} · ${e.total}`,"aria-pressed":Se.value===e.date,onClick:t=>Dn(e)},[w(`span`,Ha,f(Jt(e.date))+` · `+f(e.total),1)],10,Va))),128))],8,Ba),it.value?(o(),E(`article`,Ua,[w(`header`,null,[w(`strong`,null,f(Jt(it.value.date)),1),w(`span`,null,f(it.value.total),1)]),it.value.tasks?.length?(o(),E(`ul`,Ga,[(o(!0),E(_,null,n(it.value.tasks,e=>(o(),E(`li`,{key:e.taskId},[w(`strong`,null,f(e.title),1),w(`span`,null,f(gn(e.status))+` · `+f(jt(e.personalProjectId)),1),w(`small`,null,f(e.summary||x(d)(`projectAgents.notReported`)),1)]))),128))])):(o(),E(`p`,Wa,f(x(d)(`projectAgents.activity.noTasks`)),1))])):p(``,!0)])):(o(),E(`p`,Ka,f(x(d)(`projectAgents.activity.empty`)),1))])]),_:1},16,[`label`])]),w(`div`,qa,[T(Xt,v(ft(`executors`),{label:pt(`executors`),onRetry:$}),{default:c(()=>[w(`section`,Ja,[w(`div`,Ya,[w(`h4`,null,f(x(d)(`projectAgents.sections.clients`)),1),w(`span`,null,f(yn(Q.value).length),1)]),yn(Q.value).length?(o(),E(`div`,Xa,[(o(!0),E(_,null,n(yn(Q.value),e=>(o(),E(`div`,{key:e,class:`project-agent-client-row`},[w(`strong`,null,f(vn(e)),1),w(`span`,null,f(bn(Q.value,e)?.allowed||Q.value.profile.allowedClients?.includes(e)?x(d)(`projectAgents.clients.allowed`):x(d)(`projectAgents.clients.notAllowed`)),1),xn(Q.value,e)?(o(),E(`span`,Za,f(x(d)(`projectAgents.clients.observed`,{count:xn(Q.value,e)})),1)):Q.value.observedClients?.includes(e)?(o(),E(`span`,Qa,f(x(d)(`projectAgents.clients.observedAny`)),1)):(o(),E(`span`,$a,f(x(d)(`projectAgents.clients.unreported`)),1)),w(`small`,null,f(bn(Q.value,e)?.integrationStatus||x(d)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(o(),E(`p`,eo,f(x(d)(`projectAgents.clients.empty`)),1))])]),_:1},16,[`label`])]),w(`div`,to,[T(Xt,v(ft(`routingRules`),{label:pt(`routingRules`),onRetry:$}),{default:c(()=>[w(`section`,no,[w(`div`,ro,[w(`h4`,null,f(x(d)(`projectAgents.sections.routing`)),1),w(`div`,io,[w(`span`,null,f(Q.value.routingRules?.length??0),1),w(`button`,{class:`quiet-button`,type:`button`,onClick:i[11]||=e=>Ct()},f(x(d)(`projectAgents.routing.addRule`)),1)])]),Q.value.routingRules?.length?(o(),E(`div`,ao,[(o(!0),E(_,null,n(Q.value.routingRules,e=>(o(),E(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[w(`strong`,null,f(e.scope)+` · `+f(e.priority),1),w(`span`,null,f(e.workKind||e.reason||x(d)(`projectAgents.notReported`))+` · `+f(e.executorIds?.join(`, `)||x(d)(`projectAgents.notReported`)),1),e.enabled?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!X.value,onClick:t=>Ot(e)},[X.value===`rule:${e.ruleId}`&&De.value===`disable`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.routing.disabling`)},null,8,[`label`])):(o(),E(`span`,so,f(x(d)(`projectAgents.routing.disable`)),1))],8,oo)):p(``,!0)]))),128))])):(o(),E(`p`,co,f(x(d)(`projectAgents.routing.empty`)),1)),w(`small`,lo,f(x(d)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16,[`label`])]),w(`div`,uo,[T(Xt,v(ft(`learning`),{label:pt(`learning`),onRetry:$}),{default:c(()=>[w(`section`,fo,[w(`div`,po,[w(`h4`,null,f(x(d)(`projectAgents.sections.learning`)),1),w(`span`,null,f(at.value.length),1)]),at.value.length?(o(),E(`div`,mo,[(o(!0),E(_,null,n(at.value,([e,t])=>(o(),E(`article`,{key:e,class:`project-agent-learning-card`},[w(`header`,null,[w(`strong`,null,f(e),1),w(`i`,null,f(Cn(t)),1)]),t.personalProjectId||t.workKind||t.executor||t.modelStrategy?(o(),E(`small`,ho,f(jt(t.personalProjectId))+` · `+f(t.workKind||x(d)(`projectAgents.notReported`))+` · `+f(t.executor||x(d)(`projectAgents.notReported`))+` / `+f(t.modelStrategy?Yt(t.modelStrategy):x(d)(`projectAgents.notReported`)),1)):p(``,!0),w(`p`,null,f(x(d)(`projectAgents.learning.samples`,{count:t.sampleCount}))+` · `+f(x(d)(`projectAgents.learning.recent`,{count:wn(t)})),1),w(`small`,null,f(t.decayBasis||x(d)(`projectAgents.learning.decayUnreported`))+` · `+f(qt(t.updatedAt)),1),t.outcomes?(o(),E(`div`,go,[(o(!0),E(_,null,n(t.outcomes,(e,t)=>r((o(),E(`span`,{key:t},f(t)+` · `+f(e??x(d)(`projectAgents.notReported`)),1)),[[g,e!==void 0]])),128)),t.score!==null&&t.score!==void 0?(o(),E(`span`,_o,f(x(d)(`projectAgents.learning.score`,{score:Tn(t)})),1)):p(``,!0)])):p(``,!0),t.evidence?.length?(o(),E(`ul`,vo,[(o(!0),E(_,null,n(t.evidence,e=>(o(),E(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[w(`span`,null,f(e.kind)+` · `+f(e.count??0)+` · `+f(e.summary||x(d)(`projectAgents.notReported`)),1),e.evidenceId?(o(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Te.value,onClick:n=>vt(t,`ignore`,e.evidenceId)},[Te.value===e.evidenceId&&Ee.value===`ignore`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.learning.ignoring`)},null,8,[`label`])):(o(),E(`span`,bo,f(x(d)(`projectAgents.learning.ignore`)),1))],8,yo)):p(``,!0)]))),128))])):p(``,!0),t.learningKey?(o(),E(`div`,xo,[w(`button`,{class:`quiet-button`,type:`button`,disabled:!!Te.value||!t.personalProjectId||!t.workKind||!t.executor,onClick:e=>vt(t,`reset`)},[Te.value===t.learningKey&&Ee.value===`reset`?(o(),D(A,{key:0,variant:`inline`,label:x(d)(`projectAgents.learning.resetting`)},null,8,[`label`])):(o(),E(`span`,Co,f(x(d)(`projectAgents.learning.reset`)),1))],8,So)])):p(``,!0)]))),128))])):(o(),E(`p`,wo,f(x(d)(`projectAgents.learning.empty`)),1)),w(`small`,To,f(x(d)(`projectAgents.learning.note`)),1)])]),_:1},16,[`label`])]),Q.value.memoryScope===`reviewed_agent`?(o(),D(an,{key:2,"personal-space-id":Z.value,"agent-id":Q.value.agentId,projects:Qe.value},null,8,[`personal-space-id`,`agent-id`,`projects`])):p(``,!0)],8,vr)):(o(),E(`div`,Eo,f(x(d)(`projectAgents.detail.choose`)),1))])):(o(),E(`div`,ar,[w(`strong`,null,f(x(d)(`projectAgents.noMatchTitle`)),1),w(`p`,null,f(x(d)(`projectAgents.noMatchCopy`)),1)])):(o(),E(`div`,rr,[w(`strong`,null,f(x(d)(`projectAgents.emptyTitle`)),1),w(`p`,null,f(x(d)(`projectAgents.emptyCopy`)),1),w(`button`,{class:`project-agent-add`,type:`button`,disabled:!Z.value,onClick:Lt},f(x(d)(`projectAgents.add`)),9,ir)])),T(Hn,{open:ie.value,agent:Y.value,projects:Re.value,"default-project-id":nt.value,"personal-space-id":Z.value,onClose:Bt,onSaved:Gt},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),T(Ge,{open:de.value,agent:Y.value,assignment:pe.value,action:fe.value,projects:Re.value,"available-agents":C.value,"default-project-id":nt.value,onClose:Ht,onSaved:Ut,onChanged:Wt},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),T(xt,{open:Ae.value,mode:je.value,"personal-space-id":Z.value,executor:Me.value,rule:Ne.value,projects:Re.value,"available-executors":Q.value?.executorDirectory??[],onClose:wt,onSaved:Dt},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,Un))}}),[[`__scopeId`,`data-v-9416bcaa`]]);export{Do as default};