fuli-context 0.12.3 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.zh-CN.md +1 -1
  2. package/dist/web/assets/{AboutPage-Dized8Uz.js → AboutPage-DKsgqteA.js} +1 -1
  3. package/dist/web/assets/{AgentConversations-Ccy41mEA.js → AgentConversations-BnFsfRj3.js} +1 -1
  4. package/dist/web/assets/{AgentHand-UzVhbKUC.js → AgentHand-B5lezlek.js} +1 -1
  5. package/dist/web/assets/{AgentName-DJpvkub2.js → AgentName-C-V41xs0.js} +1 -1
  6. package/dist/web/assets/AgentProfilePage-DjgqtOdz.js +1 -0
  7. package/dist/web/assets/AgentsDirectoryPage-IgN5QEdW.js +1 -0
  8. package/dist/web/assets/{AgentsDirectoryPage-Cv-vxw2C.css → AgentsDirectoryPage-kc3EgeGO.css} +1 -1
  9. package/dist/web/assets/{ConnectionsPage-uXcabab_.js → ConnectionsPage-CXtNiTEF.js} +1 -1
  10. package/dist/web/assets/EmployeeRecruitDialog-o6eyMw2g.js +1 -0
  11. package/dist/web/assets/EmployeeWorkbenchPage-4EnGLauW.js +3 -0
  12. package/dist/web/assets/{KnowledgeEditDialog-HmiqLC-Y.js → KnowledgeEditDialog-BlBd6Xql.js} +1 -1
  13. package/dist/web/assets/{KnowledgeInspector-Cj2yK4Qh.js → KnowledgeInspector-Dl7SAgaY.js} +1 -1
  14. package/dist/web/assets/{KnowledgeOrganizerPage-DT3BROZm.js → KnowledgeOrganizerPage-CpH4x6UA.js} +1 -1
  15. package/dist/web/assets/KnowledgePage-C-gFr7ln.js +1 -0
  16. package/dist/web/assets/{KnowledgeWorkspace-DA_dqVRG.js → KnowledgeWorkspace-4q_HfXas.js} +1 -1
  17. package/dist/web/assets/{NotFoundPage-x_Yd59mm.js → NotFoundPage-DtmfJSGx.js} +1 -1
  18. package/dist/web/assets/{OverviewPage-3eZjQ26v.js → OverviewPage-C1zw_8_6.js} +1 -1
  19. package/dist/web/assets/PersonalProfilePage-B0_zIINs.css +1 -0
  20. package/dist/web/assets/{PersonalProfilePage-CDQk096L.js → PersonalProfilePage-tQyS7qsa.js} +1 -1
  21. package/dist/web/assets/PersonalProjectsPage-Cgd_bjeK.js +1 -0
  22. package/dist/web/assets/{ProjectAgentFirstTask-BkRJ0zwO.js → ProjectAgentFirstTask-Caf7c6F_.js} +1 -1
  23. package/dist/web/assets/{ProjectAgentsPage-BuNNqSEy.js → ProjectAgentsPage-BOGkN5ZN.js} +1 -1
  24. package/dist/web/assets/{ProjectScopePicker-CiDxM2Yx.js → ProjectScopePicker-NyqcG6Iz.js} +1 -1
  25. package/dist/web/assets/{PublicProjectsPage-ByOT559r.js → PublicProjectsPage-CYwQLZmy.js} +1 -1
  26. package/dist/web/assets/{ReviewPage-C0Vdr9uq.js → ReviewPage-EyuAtIOq.js} +1 -1
  27. package/dist/web/assets/{RoundtablesPage-L3ShEWS3.js → RoundtablesPage-JVBXsJrs.js} +1 -1
  28. package/dist/web/assets/SettingsPage-BARo0Ds0.css +1 -0
  29. package/dist/web/assets/SettingsPage-Dfi7kl9c.js +1 -0
  30. package/dist/web/assets/{SharedJefaReportPage-Bg6lIk3E.js → SharedJefaReportPage-DFy5Ty7o.js} +1 -1
  31. package/dist/web/assets/{UiButton-x8hiHNRM.js → UiButton-neeym_gA.js} +1 -1
  32. package/dist/web/assets/{UiDialog-mjletK0y.js → UiDialog-BFVoqFnc.js} +1 -1
  33. package/dist/web/assets/{UiDisclosure-_IxeiexW.js → UiDisclosure-B-T7BmB5.js} +1 -1
  34. package/dist/web/assets/{UiSegmented-WFfz9Evl.js → UiSegmented-D_kyRKDw.js} +1 -1
  35. package/dist/web/assets/{UiSelect-K29jnV-1.js → UiSelect-DDyct4mf.js} +1 -1
  36. package/dist/web/assets/{WritingTastePage-DCULB-d2.js → WritingTastePage-BPRq6kJ6.js} +1 -1
  37. package/dist/web/assets/{agent-pins-DS4mNsNt.js → agent-pins-6LRHTMF6.js} +1 -1
  38. package/dist/web/assets/agent-profile-UgNiXgpU.css +1 -0
  39. package/dist/web/assets/{attention-store-CA5y8j1R.js → attention-store-BGHyzWfv.js} +1 -1
  40. package/dist/web/assets/avatars-z6ANYG_r.js +1 -0
  41. package/dist/web/assets/{catalog-D0VEfOAV.js → catalog-kb-cA8t6.js} +1 -1
  42. package/dist/web/assets/{client-DnwnUBQV.js → client-DodUFQDp.js} +1 -1
  43. package/dist/web/assets/{console-Cw7TzOSC.js → console-C2Lfifq-.js} +1 -1
  44. package/dist/web/assets/{conversation-launcher-settings-Yc13viwr.js → conversation-launcher-settings-CowfVz7l.js} +1 -1
  45. package/dist/web/assets/{i18n-oJFlt8hW.js → i18n-B4Fp9Oa5.js} +1 -1
  46. package/dist/web/assets/{identity-DSGS4CZc.js → identity-DG_za-J7.js} +1 -1
  47. package/dist/web/assets/index-DsExj49_.css +1 -0
  48. package/dist/web/assets/index-RxlM8aQV.js +5 -0
  49. package/dist/web/assets/{judgment-types-DR931cZ7.js → judgment-types-DRqrjStd.js} +1 -1
  50. package/dist/web/assets/{model-BJ-UF4cs.js → model-C0eHDNsF.js} +1 -1
  51. package/dist/web/assets/{personal-profile-graph-SOK0BR0w.js → personal-profile-graph-CHY3WYhi.js} +1 -1
  52. package/dist/web/assets/project-team-api-Dfm8C4B8.js +1 -0
  53. package/dist/web/assets/{shared-report-CiX64ZiD.js → shared-report-8JFvD9TZ.js} +1 -1
  54. package/dist/web/assets/tonborg-avatar-DyxAdTD6.webp +0 -0
  55. package/dist/web/assets/{useAgentRoster-B84mzZIg.js → useAgentRoster-QDbOwtLj.js} +1 -1
  56. package/dist/web/assets/{useApi-CROJJdhE-7gt0QyQ5.js → useApi-CROJJdhE-IuC5qwny.js} +1 -1
  57. package/dist/web/assets/{vue-router-CCvPGaLD.js → vue-router-nZMhR3dI.js} +1 -1
  58. package/dist/web/index.html +16 -15
  59. package/graph-provider/fuli_graph/system_agents.py +27 -3
  60. package/graph-provider/pyproject.toml +1 -1
  61. package/npm-shrinkwrap.json +2 -2
  62. package/package.json +1 -1
  63. package/src/employees/catalog/tonborg.json +1 -1
  64. package/src/http/api-router.js +28 -1
  65. package/src/local-runtime/lifecycle.js +1 -0
  66. package/src/setup/graph-runtime.js +1 -1
  67. package/src/system/settings-apply-worker.js +6 -0
  68. package/src/system/settings-apply.js +116 -0
  69. package/src/system/system-service.js +25 -5
  70. package/dist/web/assets/AgentProfilePage-CFViQ8kj.js +0 -1
  71. package/dist/web/assets/AgentsDirectoryPage-CBFTg_IE.js +0 -1
  72. package/dist/web/assets/EmployeeRecruitDialog-D8Hvhc-M.js +0 -1
  73. package/dist/web/assets/EmployeeWorkbenchPage-TBl_HNj6.js +0 -3
  74. package/dist/web/assets/KnowledgePage-C4J4VueL.js +0 -1
  75. package/dist/web/assets/PersonalProfilePage-DrMDAAdy.css +0 -1
  76. package/dist/web/assets/PersonalProjectsPage-CJxp4Wyz.js +0 -1
  77. package/dist/web/assets/SettingsPage-BE8pWbI6.css +0 -1
  78. package/dist/web/assets/SettingsPage-McYuinGz.js +0 -1
  79. package/dist/web/assets/agent-profile-Bh3MJGvb.css +0 -1
  80. package/dist/web/assets/index-BfHCcUL2.css +0 -1
  81. package/dist/web/assets/index-DuxXKFrR.js +0 -5
  82. package/dist/web/assets/project-team-api-C_0qJk_B.js +0 -1
package/README.zh-CN.md CHANGED
@@ -562,7 +562,7 @@ start 和 restart 会继续沿用。
562
562
  Kubernetes 或整台容器虚拟机;原生模式会直接停止对应 Provider 和 Neo4j 进程,因此空闲时
563
563
  不再保留共享虚拟机开销。
564
564
 
565
- Jefa(项目经理)、Bole(AR,Agent Resources)和 Tonborg(判断者)是每个空间自带的角色,
565
+ Jefa(项目经理)、Bole(AR,Agent Resources)和 Tonborg(决策员)是每个空间自带的角色,
566
566
  不需要招募。Bole 的工作台可查看人员安排、当前工作与招募历史;Tonborg 的工作台可查看判断与反馈。
567
567
  “Agents → 聘请 Agent”提供其他可复用的员工模板。招募复用持久身份,
568
568
  按项目单独任职;安装员工包后,侧栏工作台与 API/A2A 共用 FULI 端口,已有 FULI MCP 可发现和调用员工工具。
@@ -1 +1 @@
1
- import{E as e,I as t,P as n,S as r,T as i,a,g as o,ot as s,rt as c,v as l,w as u,y as d}from"./i18n-oJFlt8hW.js";import{t as f}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as p}from"./fuli-logo-Bu9WBuQe.js";var m=[`aria-label`],ee={class:`label-dimension-strip`},h=[`data-dimension`],g={class:`label-guide-sheet`},_={class:`label-guide-section profile-guide`},v={class:`label-definition-list`},y=[`data-kind`],b={class:`label-guide-section quadrant-guide`},x={class:`quadrant-explainer`},S={class:`quadrant-y-axis`,"aria-hidden":`true`},C=[`aria-label`],w=[`data-quadrant`],T={class:`quadrant-x-axis`,"aria-hidden":`true`},E={class:`quadrant-notes`},D={class:`label-guide-section confirmation-guide`},O={class:`status-table-wrap`},k={class:`status-definition-table`},A={scope:`col`},j={scope:`col`},M={scope:`col`},N={scope:`row`},P=[`data-status`],F=[`data-label`],I=[`data-label`],L={class:`status-boundaries`},R={class:`label-example`},z={class:`label-example-tags`,"aria-hidden":`true`},B={class:`label-token profile-token`,"data-kind":`taste`},V={class:`label-token origin-token`},H={class:`label-token status-token`,"data-status":`confirmed`},U={class:`label-all-note`},W=f(e({__name:`LabelGuide`,setup(e){let i=l(()=>[{key:`profile`,title:a(`about.dimensions.profile.title`),question:a(`about.dimensions.profile.question`),timing:a(`about.dimensions.profile.timing`)},{key:`origin`,title:a(`about.dimensions.origin.title`),question:a(`about.dimensions.origin.question`),timing:a(`about.dimensions.origin.timing`)},{key:`confirmation`,title:a(`about.dimensions.confirmation.title`),question:a(`about.dimensions.confirmation.question`),timing:a(`about.dimensions.confirmation.timing`)}]),f=l(()=>[{key:`taste`,label:a(`about.profiles.taste.label`),short:a(`about.profiles.taste.short`),description:a(`about.profiles.taste.description`)},{key:`personality`,label:a(`about.profiles.personality.label`),short:a(`about.profiles.personality.short`),description:a(`about.profiles.personality.description`)},{key:`judgment`,label:a(`about.profiles.judgment.label`),short:a(`about.profiles.judgment.short`),description:a(`about.profiles.judgment.description`)}]),p=l(()=>[{key:`known-unknown`,label:a(`about.quadrants.knownUnknown.label`),coordinate:a(`about.quadrants.knownUnknown.coordinate`),description:a(`about.quadrants.knownUnknown.description`)},{key:`known-known`,label:a(`about.quadrants.knownKnown.label`),coordinate:a(`about.quadrants.knownKnown.coordinate`),description:a(`about.quadrants.knownKnown.description`)},{key:`unknown-unknown`,label:a(`about.quadrants.unknownUnknown.label`),coordinate:a(`about.quadrants.unknownUnknown.coordinate`),description:a(`about.quadrants.unknownUnknown.description`)},{key:`unknown-known`,label:a(`about.quadrants.unknownKnown.label`),coordinate:a(`about.quadrants.unknownKnown.coordinate`),description:a(`about.quadrants.unknownKnown.description`)}]),W=l(()=>[{key:`pending`,label:a(`about.statuses.pending.label`),description:a(`about.statuses.pending.description`),rule:a(`about.statuses.pending.rule`)},{key:`agent-confirmed`,label:a(`about.statuses.agentConfirmed.label`),description:a(`about.statuses.agentConfirmed.description`),rule:a(`about.statuses.agentConfirmed.rule`)},{key:`confirmed`,label:a(`about.statuses.confirmed.label`),description:a(`about.statuses.confirmed.description`),rule:a(`about.statuses.confirmed.rule`)}]);return(e,l)=>(n(),r(`section`,{class:`label-guide`,"aria-label":c(a)(`about.labelsAria`)},[d(`div`,ee,[(n(!0),r(o,null,t(i.value,e=>(n(),r(`article`,{key:e.key,"data-dimension":e.key},[l[0]||=d(`i`,{"aria-hidden":`true`},null,-1),d(`dl`,null,[d(`dt`,null,s(e.title),1),d(`dd`,null,[u(s(e.question)+` `,1),d(`small`,null,s(e.timing),1)])])],8,h))),128))]),d(`div`,g,[d(`section`,_,[d(`header`,null,[d(`span`,null,s(c(a)(`about.sections.profile.index`)),1),d(`div`,null,[d(`h3`,null,s(c(a)(`about.sections.profile.title`)),1),d(`p`,null,s(c(a)(`about.sections.profile.meta`)),1)])]),d(`dl`,v,[(n(!0),r(o,null,t(f.value,e=>(n(),r(`div`,{key:e.key,class:`label-definition-row`},[d(`dt`,null,[d(`span`,{class:`label-token profile-token`,"data-kind":e.key},s(e.label),9,y)]),d(`dd`,null,[d(`strong`,null,s(e.short),1),d(`p`,null,s(e.description),1)])]))),128))])]),d(`section`,b,[d(`header`,null,[d(`span`,null,s(c(a)(`about.sections.origin.index`)),1),d(`div`,null,[d(`h3`,null,s(c(a)(`about.sections.origin.title`)),1),d(`p`,null,s(c(a)(`about.sections.origin.meta`)),1)])]),d(`div`,x,[d(`div`,S,[d(`span`,null,s(c(a)(`about.quadrants.aware`)),1),d(`strong`,null,s(c(a)(`about.quadrants.awareness`)),1),d(`span`,null,s(c(a)(`about.quadrants.unaware`)),1)]),d(`div`,{class:`quadrant-grid`,role:`group`,"aria-label":c(a)(`about.sections.origin.title`)},[(n(!0),r(o,null,t(p.value,e=>(n(),r(`article`,{key:e.key,"data-quadrant":e.key},[d(`span`,null,s(e.coordinate),1),d(`strong`,null,s(e.label),1),d(`p`,null,s(e.description),1)],8,w))),128))],8,C),d(`div`,T,[d(`span`,null,s(c(a)(`about.quadrants.unmastered`)),1),d(`strong`,null,s(c(a)(`about.quadrants.mastery`)),1),d(`span`,null,s(c(a)(`about.quadrants.mastered`)),1)]),d(`div`,E,[d(`p`,null,s(c(a)(`about.quadrants.immutable`)),1),d(`p`,null,s(c(a)(`about.quadrants.unclassified`)),1)])])]),d(`section`,D,[d(`header`,null,[d(`span`,null,s(c(a)(`about.sections.confirmation.index`)),1),d(`div`,null,[d(`h3`,null,s(c(a)(`about.sections.confirmation.title`)),1),d(`p`,null,s(c(a)(`about.sections.confirmation.meta`)),1)])]),d(`div`,O,[d(`table`,k,[d(`thead`,null,[d(`tr`,null,[d(`th`,A,s(c(a)(`about.sections.confirmation.title`)),1),d(`th`,j,s(c(a)(`about.statuses.descriptionHeader`)),1),d(`th`,M,s(c(a)(`about.statuses.entryCondition`)),1)])]),d(`tbody`,null,[(n(!0),r(o,null,t(W.value,e=>(n(),r(`tr`,{key:e.key,class:`status-definition-row`},[d(`th`,N,[d(`span`,{class:`label-token status-token`,"data-status":e.key},s(e.label),9,P)]),d(`td`,{"data-label":c(a)(`about.statuses.descriptionHeader`)},s(e.description),9,F),d(`td`,{"data-label":c(a)(`about.statuses.entryCondition`)},[d(`strong`,null,s(e.rule),1)],8,I)]))),128))])]),d(`div`,L,[d(`p`,null,s(c(a)(`about.statuses.usageBoundary`)),1),d(`p`,null,s(c(a)(`about.statuses.resetBoundary`)),1)])])]),d(`section`,R,[d(`div`,null,[d(`span`,null,s(c(a)(`about.example.title`)),1),d(`strong`,null,s(c(a)(`about.example.item`)),1)]),d(`div`,z,[d(`span`,B,s(c(a)(`about.example.profile`)),1),d(`span`,V,s(c(a)(`about.example.origin`)),1),d(`span`,H,s(c(a)(`about.example.status`)),1)]),d(`p`,null,s(c(a)(`about.example.description`)),1)]),d(`p`,U,s(c(a)(`about.allFilter`)),1)])],8,m))}}),[[`__scopeId`,`data-v-234eb38f`]]),G={class:`open-source-credits`,"aria-labelledby":`credits-title`},K={class:`credits-heading`},q={id:`credits-title`},J={class:`credit-list`},Y=[`href`],X={class:`credit-role`},te={class:`credit-name`},Z={class:`credit-source-note`},Q={class:`fuli-finale`},ne={class:`finale-logo-plate`},re=[`src`],ie={class:`finale-brand`},ae={class:`finale-site-link`,"data-testid":`about-website-link`,href:`https://xn--8ovp9s.xn--m8txu.com/fuli/`,target:`_blank`,rel:`noreferrer`},oe=f(e({__name:`OpenSourceCredits`,setup(e){let i=l(()=>[{name:`Vue.js`,role:a(`about.credits.roles.vue`),url:`https://vuejs.org/`},{name:`Vite`,role:a(`about.credits.roles.vite`),url:`https://vite.dev/`},{name:`Pinia`,role:a(`about.credits.roles.pinia`),url:`https://pinia.vuejs.org/`},{name:`D3.js`,role:a(`about.credits.roles.d3`),url:`https://d3js.org/`},{name:`Vitest`,role:a(`about.credits.roles.vitest`),url:`https://vitest.dev/`},{name:`Hono`,role:a(`about.credits.roles.hono`),url:`https://hono.dev/`},{name:`Neo4j`,role:a(`about.credits.roles.neo4j`),url:`https://neo4j.com/`},{name:`Zod`,role:a(`about.credits.roles.zod`),url:`https://zod.dev/`},{name:`FastAPI`,role:a(`about.credits.roles.fastapi`),url:`https://fastapi.tiangolo.com/`},{name:`Graphiti`,role:a(`about.credits.roles.graphiti`),url:`https://github.com/getzep/graphiti`},{name:`Model Context Protocol`,role:a(`about.credits.roles.mcp`),url:`https://modelcontextprotocol.io/`}]);return(e,l)=>(n(),r(`section`,G,[d(`header`,K,[l[0]||=d(`span`,{class:`credits-index`,"aria-hidden":`true`},`03`,-1),d(`div`,null,[d(`h2`,q,s(c(a)(`about.credits.title`)),1),d(`p`,null,s(c(a)(`about.credits.description`)),1)])]),d(`ul`,J,[(n(!0),r(o,null,t(i.value,e=>(n(),r(`li`,{key:e.name,class:`credit-item`},[d(`a`,{class:`credit-row`,href:e.url,target:`_blank`,rel:`noreferrer`},[d(`span`,X,s(e.role),1),d(`span`,te,[d(`strong`,null,s(e.name),1),l[1]||=d(`span`,{class:`credit-arrow`,"aria-hidden":`true`},`↗`,-1)])],8,Y)]))),128))]),d(`p`,Z,s(c(a)(`about.credits.sourceNote`)),1),d(`footer`,Q,[d(`span`,ne,[d(`img`,{src:c(p),alt:``,"aria-hidden":`true`},null,8,re)]),d(`div`,ie,[d(`strong`,null,s(c(a)(`common.brand`)),1),l[2]||=d(`span`,null,`Context Graph`,-1)]),d(`p`,null,s(c(a)(`about.credits.finale`)),1),d(`a`,ae,s(c(a)(`about.credits.website`)),1)])]))}}),[[`__scopeId`,`data-v-6191d078`]]),se={class:`product-principles`,"aria-labelledby":`principles-title`},ce={class:`principles-heading`},le={id:`principles-title`},ue={class:`principle-sequence`},de={class:`principle-boundaries`},fe=[`data-boundary`],pe=f(e({__name:`ProductPrinciples`,setup(e){let i=l(()=>[{key:`capture`,index:a(`about.philosophy.capture.index`),title:a(`about.philosophy.capture.title`),description:a(`about.philosophy.capture.description`)},{key:`project`,index:a(`about.philosophy.project.index`),title:a(`about.philosophy.project.title`),description:a(`about.philosophy.project.description`)},{key:`review`,index:a(`about.philosophy.review.index`),title:a(`about.philosophy.review.title`),description:a(`about.philosophy.review.description`)},{key:`reuse`,index:a(`about.philosophy.reuse.index`),title:a(`about.philosophy.reuse.title`),description:a(`about.philosophy.reuse.description`)}]),u=l(()=>[{key:`local`,title:a(`about.philosophy.local.title`),description:a(`about.philosophy.local.description`)},{key:`authority`,title:a(`about.philosophy.authority.title`),description:a(`about.philosophy.authority.description`)},{key:`scope`,title:a(`about.philosophy.scope.title`),description:a(`about.philosophy.scope.description`)}]);return(e,l)=>(n(),r(`section`,se,[d(`header`,ce,[l[0]||=d(`span`,{class:`principles-index`,"aria-hidden":`true`},`01`,-1),d(`div`,null,[d(`h2`,le,s(c(a)(`about.philosophy.sectionTitle`)),1),d(`p`,null,s(c(a)(`about.philosophy.support`)),1)])]),d(`div`,ue,[(n(!0),r(o,null,t(i.value,e=>(n(),r(`article`,{key:e.key},[d(`span`,null,s(e.index),1),d(`div`,null,[d(`h3`,null,s(e.title),1),d(`p`,null,s(e.description),1)])]))),128))]),d(`div`,de,[d(`h3`,null,s(c(a)(`about.philosophy.boundariesTitle`)),1),d(`div`,null,[(n(!0),r(o,null,t(u.value,e=>(n(),r(`article`,{key:e.key},[d(`i`,{"data-boundary":e.key,"aria-hidden":`true`},null,8,fe),d(`h4`,null,s(e.title),1),d(`p`,null,s(e.description),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-6089df60`]]),me=[`aria-label`],he={class:`about-content`},ge={class:`about-opening`},_e={class:`about-brand-lockup`},ve={class:`about-logo-plate`},ye=[`src`],be={class:`about-brand-name`},$={class:`about-opening-claim`},xe={class:`about-opening-copy`},Se={class:`about-labels-section`,"aria-labelledby":`about-labels-title`},Ce={class:`about-section-heading`},we={id:`about-labels-title`},Te=f(e({__name:`AboutPage`,setup(e){return(e,t)=>(n(),r(`section`,{class:`view about-view`,"aria-label":c(a)(`about.aria`)},[d(`div`,he,[d(`header`,ge,[d(`div`,_e,[d(`span`,ve,[d(`img`,{"data-testid":`about-opening-logo`,src:c(p),alt:``,"aria-hidden":`true`},null,8,ye)]),d(`span`,be,s(c(a)(`common.brand`)),1)]),d(`p`,$,s(c(a)(`about.philosophy.title`)),1),d(`p`,xe,s(c(a)(`about.philosophy.intro`)),1)]),i(pe),d(`section`,Se,[d(`header`,Ce,[t[0]||=d(`span`,{class:`about-section-index`,"aria-hidden":`true`},`02`,-1),d(`div`,null,[d(`h2`,we,s(c(a)(`about.labelsIntro.title`)),1),d(`p`,null,s(c(a)(`about.labelsIntro.description`)),1)])]),i(W)]),i(oe)])],8,me))}}),[[`__scopeId`,`data-v-a41cabd8`]]);export{Te as default};
1
+ import{E as e,I as t,P as n,S as r,T as i,a,g as o,ot as s,rt as c,v as l,w as u,y as d}from"./i18n-B4Fp9Oa5.js";import{t as f}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as p}from"./fuli-logo-Bu9WBuQe.js";var m=[`aria-label`],ee={class:`label-dimension-strip`},h=[`data-dimension`],g={class:`label-guide-sheet`},_={class:`label-guide-section profile-guide`},v={class:`label-definition-list`},y=[`data-kind`],b={class:`label-guide-section quadrant-guide`},x={class:`quadrant-explainer`},S={class:`quadrant-y-axis`,"aria-hidden":`true`},C=[`aria-label`],w=[`data-quadrant`],T={class:`quadrant-x-axis`,"aria-hidden":`true`},E={class:`quadrant-notes`},D={class:`label-guide-section confirmation-guide`},O={class:`status-table-wrap`},k={class:`status-definition-table`},A={scope:`col`},j={scope:`col`},M={scope:`col`},N={scope:`row`},P=[`data-status`],F=[`data-label`],I=[`data-label`],L={class:`status-boundaries`},R={class:`label-example`},z={class:`label-example-tags`,"aria-hidden":`true`},B={class:`label-token profile-token`,"data-kind":`taste`},V={class:`label-token origin-token`},H={class:`label-token status-token`,"data-status":`confirmed`},U={class:`label-all-note`},W=f(e({__name:`LabelGuide`,setup(e){let i=l(()=>[{key:`profile`,title:a(`about.dimensions.profile.title`),question:a(`about.dimensions.profile.question`),timing:a(`about.dimensions.profile.timing`)},{key:`origin`,title:a(`about.dimensions.origin.title`),question:a(`about.dimensions.origin.question`),timing:a(`about.dimensions.origin.timing`)},{key:`confirmation`,title:a(`about.dimensions.confirmation.title`),question:a(`about.dimensions.confirmation.question`),timing:a(`about.dimensions.confirmation.timing`)}]),f=l(()=>[{key:`taste`,label:a(`about.profiles.taste.label`),short:a(`about.profiles.taste.short`),description:a(`about.profiles.taste.description`)},{key:`personality`,label:a(`about.profiles.personality.label`),short:a(`about.profiles.personality.short`),description:a(`about.profiles.personality.description`)},{key:`judgment`,label:a(`about.profiles.judgment.label`),short:a(`about.profiles.judgment.short`),description:a(`about.profiles.judgment.description`)}]),p=l(()=>[{key:`known-unknown`,label:a(`about.quadrants.knownUnknown.label`),coordinate:a(`about.quadrants.knownUnknown.coordinate`),description:a(`about.quadrants.knownUnknown.description`)},{key:`known-known`,label:a(`about.quadrants.knownKnown.label`),coordinate:a(`about.quadrants.knownKnown.coordinate`),description:a(`about.quadrants.knownKnown.description`)},{key:`unknown-unknown`,label:a(`about.quadrants.unknownUnknown.label`),coordinate:a(`about.quadrants.unknownUnknown.coordinate`),description:a(`about.quadrants.unknownUnknown.description`)},{key:`unknown-known`,label:a(`about.quadrants.unknownKnown.label`),coordinate:a(`about.quadrants.unknownKnown.coordinate`),description:a(`about.quadrants.unknownKnown.description`)}]),W=l(()=>[{key:`pending`,label:a(`about.statuses.pending.label`),description:a(`about.statuses.pending.description`),rule:a(`about.statuses.pending.rule`)},{key:`agent-confirmed`,label:a(`about.statuses.agentConfirmed.label`),description:a(`about.statuses.agentConfirmed.description`),rule:a(`about.statuses.agentConfirmed.rule`)},{key:`confirmed`,label:a(`about.statuses.confirmed.label`),description:a(`about.statuses.confirmed.description`),rule:a(`about.statuses.confirmed.rule`)}]);return(e,l)=>(n(),r(`section`,{class:`label-guide`,"aria-label":c(a)(`about.labelsAria`)},[d(`div`,ee,[(n(!0),r(o,null,t(i.value,e=>(n(),r(`article`,{key:e.key,"data-dimension":e.key},[l[0]||=d(`i`,{"aria-hidden":`true`},null,-1),d(`dl`,null,[d(`dt`,null,s(e.title),1),d(`dd`,null,[u(s(e.question)+` `,1),d(`small`,null,s(e.timing),1)])])],8,h))),128))]),d(`div`,g,[d(`section`,_,[d(`header`,null,[d(`span`,null,s(c(a)(`about.sections.profile.index`)),1),d(`div`,null,[d(`h3`,null,s(c(a)(`about.sections.profile.title`)),1),d(`p`,null,s(c(a)(`about.sections.profile.meta`)),1)])]),d(`dl`,v,[(n(!0),r(o,null,t(f.value,e=>(n(),r(`div`,{key:e.key,class:`label-definition-row`},[d(`dt`,null,[d(`span`,{class:`label-token profile-token`,"data-kind":e.key},s(e.label),9,y)]),d(`dd`,null,[d(`strong`,null,s(e.short),1),d(`p`,null,s(e.description),1)])]))),128))])]),d(`section`,b,[d(`header`,null,[d(`span`,null,s(c(a)(`about.sections.origin.index`)),1),d(`div`,null,[d(`h3`,null,s(c(a)(`about.sections.origin.title`)),1),d(`p`,null,s(c(a)(`about.sections.origin.meta`)),1)])]),d(`div`,x,[d(`div`,S,[d(`span`,null,s(c(a)(`about.quadrants.aware`)),1),d(`strong`,null,s(c(a)(`about.quadrants.awareness`)),1),d(`span`,null,s(c(a)(`about.quadrants.unaware`)),1)]),d(`div`,{class:`quadrant-grid`,role:`group`,"aria-label":c(a)(`about.sections.origin.title`)},[(n(!0),r(o,null,t(p.value,e=>(n(),r(`article`,{key:e.key,"data-quadrant":e.key},[d(`span`,null,s(e.coordinate),1),d(`strong`,null,s(e.label),1),d(`p`,null,s(e.description),1)],8,w))),128))],8,C),d(`div`,T,[d(`span`,null,s(c(a)(`about.quadrants.unmastered`)),1),d(`strong`,null,s(c(a)(`about.quadrants.mastery`)),1),d(`span`,null,s(c(a)(`about.quadrants.mastered`)),1)]),d(`div`,E,[d(`p`,null,s(c(a)(`about.quadrants.immutable`)),1),d(`p`,null,s(c(a)(`about.quadrants.unclassified`)),1)])])]),d(`section`,D,[d(`header`,null,[d(`span`,null,s(c(a)(`about.sections.confirmation.index`)),1),d(`div`,null,[d(`h3`,null,s(c(a)(`about.sections.confirmation.title`)),1),d(`p`,null,s(c(a)(`about.sections.confirmation.meta`)),1)])]),d(`div`,O,[d(`table`,k,[d(`thead`,null,[d(`tr`,null,[d(`th`,A,s(c(a)(`about.sections.confirmation.title`)),1),d(`th`,j,s(c(a)(`about.statuses.descriptionHeader`)),1),d(`th`,M,s(c(a)(`about.statuses.entryCondition`)),1)])]),d(`tbody`,null,[(n(!0),r(o,null,t(W.value,e=>(n(),r(`tr`,{key:e.key,class:`status-definition-row`},[d(`th`,N,[d(`span`,{class:`label-token status-token`,"data-status":e.key},s(e.label),9,P)]),d(`td`,{"data-label":c(a)(`about.statuses.descriptionHeader`)},s(e.description),9,F),d(`td`,{"data-label":c(a)(`about.statuses.entryCondition`)},[d(`strong`,null,s(e.rule),1)],8,I)]))),128))])]),d(`div`,L,[d(`p`,null,s(c(a)(`about.statuses.usageBoundary`)),1),d(`p`,null,s(c(a)(`about.statuses.resetBoundary`)),1)])])]),d(`section`,R,[d(`div`,null,[d(`span`,null,s(c(a)(`about.example.title`)),1),d(`strong`,null,s(c(a)(`about.example.item`)),1)]),d(`div`,z,[d(`span`,B,s(c(a)(`about.example.profile`)),1),d(`span`,V,s(c(a)(`about.example.origin`)),1),d(`span`,H,s(c(a)(`about.example.status`)),1)]),d(`p`,null,s(c(a)(`about.example.description`)),1)]),d(`p`,U,s(c(a)(`about.allFilter`)),1)])],8,m))}}),[[`__scopeId`,`data-v-234eb38f`]]),G={class:`open-source-credits`,"aria-labelledby":`credits-title`},K={class:`credits-heading`},q={id:`credits-title`},J={class:`credit-list`},Y=[`href`],X={class:`credit-role`},te={class:`credit-name`},Z={class:`credit-source-note`},Q={class:`fuli-finale`},ne={class:`finale-logo-plate`},re=[`src`],ie={class:`finale-brand`},ae={class:`finale-site-link`,"data-testid":`about-website-link`,href:`https://xn--8ovp9s.xn--m8txu.com/fuli/`,target:`_blank`,rel:`noreferrer`},oe=f(e({__name:`OpenSourceCredits`,setup(e){let i=l(()=>[{name:`Vue.js`,role:a(`about.credits.roles.vue`),url:`https://vuejs.org/`},{name:`Vite`,role:a(`about.credits.roles.vite`),url:`https://vite.dev/`},{name:`Pinia`,role:a(`about.credits.roles.pinia`),url:`https://pinia.vuejs.org/`},{name:`D3.js`,role:a(`about.credits.roles.d3`),url:`https://d3js.org/`},{name:`Vitest`,role:a(`about.credits.roles.vitest`),url:`https://vitest.dev/`},{name:`Hono`,role:a(`about.credits.roles.hono`),url:`https://hono.dev/`},{name:`Neo4j`,role:a(`about.credits.roles.neo4j`),url:`https://neo4j.com/`},{name:`Zod`,role:a(`about.credits.roles.zod`),url:`https://zod.dev/`},{name:`FastAPI`,role:a(`about.credits.roles.fastapi`),url:`https://fastapi.tiangolo.com/`},{name:`Graphiti`,role:a(`about.credits.roles.graphiti`),url:`https://github.com/getzep/graphiti`},{name:`Model Context Protocol`,role:a(`about.credits.roles.mcp`),url:`https://modelcontextprotocol.io/`}]);return(e,l)=>(n(),r(`section`,G,[d(`header`,K,[l[0]||=d(`span`,{class:`credits-index`,"aria-hidden":`true`},`03`,-1),d(`div`,null,[d(`h2`,q,s(c(a)(`about.credits.title`)),1),d(`p`,null,s(c(a)(`about.credits.description`)),1)])]),d(`ul`,J,[(n(!0),r(o,null,t(i.value,e=>(n(),r(`li`,{key:e.name,class:`credit-item`},[d(`a`,{class:`credit-row`,href:e.url,target:`_blank`,rel:`noreferrer`},[d(`span`,X,s(e.role),1),d(`span`,te,[d(`strong`,null,s(e.name),1),l[1]||=d(`span`,{class:`credit-arrow`,"aria-hidden":`true`},`↗`,-1)])],8,Y)]))),128))]),d(`p`,Z,s(c(a)(`about.credits.sourceNote`)),1),d(`footer`,Q,[d(`span`,ne,[d(`img`,{src:c(p),alt:``,"aria-hidden":`true`},null,8,re)]),d(`div`,ie,[d(`strong`,null,s(c(a)(`common.brand`)),1),l[2]||=d(`span`,null,`Context Graph`,-1)]),d(`p`,null,s(c(a)(`about.credits.finale`)),1),d(`a`,ae,s(c(a)(`about.credits.website`)),1)])]))}}),[[`__scopeId`,`data-v-6191d078`]]),se={class:`product-principles`,"aria-labelledby":`principles-title`},ce={class:`principles-heading`},le={id:`principles-title`},ue={class:`principle-sequence`},de={class:`principle-boundaries`},fe=[`data-boundary`],pe=f(e({__name:`ProductPrinciples`,setup(e){let i=l(()=>[{key:`capture`,index:a(`about.philosophy.capture.index`),title:a(`about.philosophy.capture.title`),description:a(`about.philosophy.capture.description`)},{key:`project`,index:a(`about.philosophy.project.index`),title:a(`about.philosophy.project.title`),description:a(`about.philosophy.project.description`)},{key:`review`,index:a(`about.philosophy.review.index`),title:a(`about.philosophy.review.title`),description:a(`about.philosophy.review.description`)},{key:`reuse`,index:a(`about.philosophy.reuse.index`),title:a(`about.philosophy.reuse.title`),description:a(`about.philosophy.reuse.description`)}]),u=l(()=>[{key:`local`,title:a(`about.philosophy.local.title`),description:a(`about.philosophy.local.description`)},{key:`authority`,title:a(`about.philosophy.authority.title`),description:a(`about.philosophy.authority.description`)},{key:`scope`,title:a(`about.philosophy.scope.title`),description:a(`about.philosophy.scope.description`)}]);return(e,l)=>(n(),r(`section`,se,[d(`header`,ce,[l[0]||=d(`span`,{class:`principles-index`,"aria-hidden":`true`},`01`,-1),d(`div`,null,[d(`h2`,le,s(c(a)(`about.philosophy.sectionTitle`)),1),d(`p`,null,s(c(a)(`about.philosophy.support`)),1)])]),d(`div`,ue,[(n(!0),r(o,null,t(i.value,e=>(n(),r(`article`,{key:e.key},[d(`span`,null,s(e.index),1),d(`div`,null,[d(`h3`,null,s(e.title),1),d(`p`,null,s(e.description),1)])]))),128))]),d(`div`,de,[d(`h3`,null,s(c(a)(`about.philosophy.boundariesTitle`)),1),d(`div`,null,[(n(!0),r(o,null,t(u.value,e=>(n(),r(`article`,{key:e.key},[d(`i`,{"data-boundary":e.key,"aria-hidden":`true`},null,8,fe),d(`h4`,null,s(e.title),1),d(`p`,null,s(e.description),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-6089df60`]]),me=[`aria-label`],he={class:`about-content`},ge={class:`about-opening`},_e={class:`about-brand-lockup`},ve={class:`about-logo-plate`},ye=[`src`],be={class:`about-brand-name`},$={class:`about-opening-claim`},xe={class:`about-opening-copy`},Se={class:`about-labels-section`,"aria-labelledby":`about-labels-title`},Ce={class:`about-section-heading`},we={id:`about-labels-title`},Te=f(e({__name:`AboutPage`,setup(e){return(e,t)=>(n(),r(`section`,{class:`view about-view`,"aria-label":c(a)(`about.aria`)},[d(`div`,he,[d(`header`,ge,[d(`div`,_e,[d(`span`,ve,[d(`img`,{"data-testid":`about-opening-logo`,src:c(p),alt:``,"aria-hidden":`true`},null,8,ye)]),d(`span`,be,s(c(a)(`common.brand`)),1)]),d(`p`,$,s(c(a)(`about.philosophy.title`)),1),d(`p`,xe,s(c(a)(`about.philosophy.intro`)),1)]),i(pe),d(`section`,Se,[d(`header`,Ce,[t[0]||=d(`span`,{class:`about-section-index`,"aria-hidden":`true`},`02`,-1),d(`div`,null,[d(`h2`,we,s(c(a)(`about.labelsIntro.title`)),1),d(`p`,null,s(c(a)(`about.labelsIntro.description`)),1)])]),i(W)]),i(oe)])],8,me))}}),[[`__scopeId`,`data-v-a41cabd8`]]);export{Te as default};
@@ -1,2 +1,2 @@
1
- import{B as e,E as t,I as n,P as r,Q as i,S as a,U as o,a as s,b as c,f as l,g as u,h as d,l as ee,n as te,ot as f,rt as p,w as m,x as h,y as g}from"./i18n-oJFlt8hW.js";import{a as _,o as ne,s as v}from"./client-DnwnUBQV.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as b}from"./UiSelect-K29jnV-1.js";var re={class:`conversation-hint`},ie={key:2,role:`alert`},ae={key:3,class:`conversation-list`},oe=[`aria-pressed`,`disabled`,`onClick`],se=[`datetime`],ce=[`data-copy-continuation`,`onClick`],le={key:1,"data-continuation-feedback":``},ue={key:0,role:`status`,class:`conversation-hint`},de={role:`alert`,class:`conversation-hint`},fe=[`aria-label`,`value`],pe={key:2,class:`conversation-messages`},me={key:0,class:`conversation-hint`},x={key:2,role:`alert`},S=[`onClick`],he=[`onClick`],ge={key:4,class:`conversation-hint`},_e={key:4},ve=[`disabled`],ye={class:`capture-toggle`},be={class:`conversation-hint`},xe={class:`quiet-button`,type:`submit`},Se={key:1},Ce={key:2,role:`alert`},we={key:3,role:`status`},C=y(t({__name:`AgentConversations`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(t){let y=t,C=i(``),w=i(!1),T=i(!1),E=i([]),D=i(!1),O=i(``),k=i(``),A=i([]),j=i(!1),M=i(``),N=i(),P=i(!1),F=i(!1),I=i(!1),L=i(``),R=i(!1),z=i(!1),B=i(64),V=i(4e3),H=i(!0),U=i(),W=0,G=0,K=0,q=0;function J(){return{personalSpaceId:y.personalSpaceId,personalProjectId:C.value,agentId:y.agentId}}function Y(e){return e instanceof Error?e.message:s(`projectAgents.conversations.loadFailed`)}e(()=>[y.agentId,y.personalSpaceId,y.projects.map(e=>e.id).join(`
1
+ import{B as e,E as t,I as n,P as r,Q as i,S as a,U as o,a as s,b as c,f as l,g as u,h as d,l as ee,n as te,ot as f,rt as p,w as m,x as h,y as g}from"./i18n-B4Fp9Oa5.js";import{a as _,o as ne,s as v}from"./client-DodUFQDp.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as b}from"./UiSelect-DDyct4mf.js";var re={class:`conversation-hint`},ie={key:2,role:`alert`},ae={key:3,class:`conversation-list`},oe=[`aria-pressed`,`disabled`,`onClick`],se=[`datetime`],ce=[`data-copy-continuation`,`onClick`],le={key:1,"data-continuation-feedback":``},ue={key:0,role:`status`,class:`conversation-hint`},de={role:`alert`,class:`conversation-hint`},fe=[`aria-label`,`value`],pe={key:2,class:`conversation-messages`},me={key:0,class:`conversation-hint`},x={key:2,role:`alert`},S=[`onClick`],he=[`onClick`],ge={key:4,class:`conversation-hint`},_e={key:4},ve=[`disabled`],ye={class:`capture-toggle`},be={class:`conversation-hint`},xe={class:`quiet-button`,type:`submit`},Se={key:1},Ce={key:2,role:`alert`},we={key:3,role:`status`},C=y(t({__name:`AgentConversations`,props:{personalSpaceId:{},agentId:{},projects:{}},setup(t){let y=t,C=i(``),w=i(!1),T=i(!1),E=i([]),D=i(!1),O=i(``),k=i(``),A=i([]),j=i(!1),M=i(``),N=i(),P=i(!1),F=i(!1),I=i(!1),L=i(``),R=i(!1),z=i(!1),B=i(64),V=i(4e3),H=i(!0),U=i(),W=0,G=0,K=0,q=0;function J(){return{personalSpaceId:y.personalSpaceId,personalProjectId:C.value,agentId:y.agentId}}function Y(e){return e instanceof Error?e.message:s(`projectAgents.conversations.loadFailed`)}e(()=>[y.agentId,y.personalSpaceId,y.projects.map(e=>e.id).join(`
2
2
  `)],()=>{let e=y.projects.some(e=>e.id===C.value)?C.value:y.projects[0]?.id??``;e===C.value?X():C.value=e},{immediate:!0}),e(C,()=>void X());async function X(){let e=++W;if(++G,++K,++q,E.value=[],A.value=[],k.value=``,O.value=``,M.value=``,U.value=void 0,F.value=!1,I.value=!1,L.value=``,z.value=!1,R.value=!1,D.value=!1,j.value=!1,P.value=!1,!(!w.value||!C.value)){D.value=!0,T.value&&$();try{let t=await _(`/api/agent-conversations/query`,{...J(),mode:`list`,limit:20});e===W&&(E.value=t.conversations)}catch(t){e===W&&(O.value=Y(t))}finally{e===W&&(D.value=!1)}}}function Te(e){let t=e.target.open;t!==w.value&&(w.value=t,t?X():(++W,++G,++K,++q,U.value=void 0,T.value=!1))}async function Z(e,t=!1){if(j.value||!C.value)return;let n=++G;k.value=e,M.value=``,j.value=!0,t||(A.value=[],N.value=void 0,P.value=!1);try{let r=await _(`/api/agent-conversations/query`,{...J(),mode:`events`,conversationId:e,limit:20,...t&&N.value!==void 0?{after:N.value}:{}});if(n!==G)return;A.value=t?[...A.value,...r.events]:r.events,N.value=r.next_cursor,P.value=r.has_more===!0&&r.next_cursor!==void 0}catch(e){n===G&&(M.value=Y(e))}finally{n===G&&(j.value=!1)}}function Ee(e){T.value=e.target.open,T.value&&!F.value&&!I.value&&w.value&&$()}function Q(e){B.value=e.compact_after_kb,V.value=e.context_budget,H.value=e.enabled}async function $(){let e=++K;I.value=!0,L.value=``,z.value=!1;try{let t=await _(`/api/agent-conversations/query`,{...J(),mode:`policy`});e===K&&(Q(t),F.value=!0)}catch(t){e===K&&(L.value=Y(t))}finally{e===K&&(I.value=!1)}}async function De(){if(R.value||!F.value)return;if(z.value=!1,L.value=``,!Number.isInteger(B.value)||B.value<8||B.value>1024||!Number.isInteger(V.value)||V.value<512||V.value>16e3){L.value=s(`projectAgents.conversations.invalidPolicy`);return}let e=K;R.value=!0;try{let t=await ne(`/api/agent-conversations/policy`,{...J(),compactAfterKb:B.value,contextBudget:V.value,enabled:H.value});e===K&&(Q(t),z.value=!0)}catch(t){e===K&&(L.value=Y(t))}finally{e===K&&(R.value=!1)}}function Oe(e){let t=new Date(e);return Number.isNaN(t.getTime())?s(`projectAgents.notReported`):new Intl.DateTimeFormat(te(),{dateStyle:`short`,timeStyle:`short`}).format(t)}function ke(e){return[`user`,`assistant`,`tool`].includes(e)?s(`projectAgents.conversations.${e}`):e}function Ae(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}async function je(e){let t=e.continuation_prompt;if(!t)return;let n=++q,r=C.value;U.value=void 0;try{let i=globalThis.navigator?.clipboard;if(!i?.writeText)throw Error(`Clipboard unavailable`);await i.writeText(t),n===q&&r===C.value&&(U.value={conversationId:e.id,state:`copied`})}catch{n===q&&r===C.value&&(U.value={conversationId:e.id,state:`fallback`})}}function Me(e){e.target.select()}return(e,i)=>(r(),a(`details`,{class:`agent-conversations`,onToggle:Te},[g(`summary`,null,f(p(s)(`projectAgents.conversations.title`)),1),w.value?(r(),a(u,{key:0},[t.projects.length?(r(),c(b,{key:0,modelValue:C.value,"onUpdate:modelValue":i[0]||=e=>C.value=e,field:``,label:p(s)(`projectAgents.fields.project`),options:t.projects.map(e=>({value:e.id,label:e.name}))},null,8,[`modelValue`,`label`,`options`])):h(``,!0),g(`p`,re,f(p(s)(`projectAgents.conversations.hint`)),1),D.value?(r(),c(v,{key:1,variant:`compact`,label:p(s)(`projectAgents.conversations.loading`)},null,8,[`label`])):O.value?(r(),a(`div`,ie,[g(`p`,null,f(O.value),1),g(`button`,{"data-retry-list":``,class:`quiet-button`,type:`button`,onClick:X},f(p(s)(`projectAgents.retry`)),1)])):E.value.length?(r(),a(`ol`,ae,[(r(!0),a(u,null,n(E.value,e=>(r(),a(`li`,{key:e.id},[g(`button`,{"data-read-conversation":``,class:`conversation-link`,type:`button`,"aria-pressed":k.value===e.id,disabled:j.value,onClick:t=>Z(e.id)},[g(`strong`,null,f(e.summary||p(s)(`projectAgents.conversations.untitled`)),1),g(`span`,null,[m(f(e.compacted_through>0?p(s)(`projectAgents.conversations.compacted`):p(s)(`projectAgents.conversations.recent`))+` · `,1),g(`time`,{datetime:e.last_activity},f(Oe(e.last_activity)),9,se)])],8,oe),e.continuation_prompt?(r(),a(`button`,{key:0,"data-copy-continuation":e.id,class:`quiet-button continuation-copy`,type:`button`,onClick:t=>je(e)},f(p(s)(`projectAgents.conversations.copyContinuation`)),9,ce)):h(``,!0),U.value?.conversationId===e.id?(r(),a(`div`,le,[U.value.state===`copied`?(r(),a(`p`,ue,f(p(s)(`projectAgents.conversations.copiedContinuation`)),1)):(r(),a(u,{key:1},[g(`p`,de,f(p(s)(`projectAgents.conversations.copyContinuationFailed`)),1),g(`textarea`,{"data-continuation-fallback":``,readonly:``,rows:`3`,"aria-label":p(s)(`projectAgents.conversations.manualContinuation`),value:e.continuation_prompt,onFocus:Me},null,40,fe)],64))])):h(``,!0),k.value===e.id?(r(),a(`div`,pe,[e.raw_retained?(r(),a(`p`,me,f(p(s)(`projectAgents.conversations.rawRetained`)),1)):h(``,!0),g(`ol`,null,[(r(!0),a(u,null,n(A.value,e=>(r(),a(`li`,{key:e.sequence},[g(`strong`,null,f(ke(e.role)),1),g(`pre`,null,f(Ae(e.content)),1)]))),128))]),j.value?(r(),c(v,{key:1,variant:`compact`,label:p(s)(`projectAgents.conversations.loadingMessages`)},null,8,[`label`])):M.value?(r(),a(`div`,x,[g(`p`,null,f(M.value),1),g(`button`,{class:`quiet-button`,type:`button`,onClick:t=>Z(e.id,A.value.length>0)},f(p(s)(`projectAgents.retry`)),9,S)])):P.value?(r(),a(`button`,{key:3,"data-more-messages":``,class:`quiet-button`,type:`button`,onClick:t=>Z(e.id,!0)},f(p(s)(`projectAgents.conversations.more`)),9,he)):A.value.length?h(``,!0):(r(),a(`p`,ge,f(p(s)(`projectAgents.conversations.noMessages`)),1))])):h(``,!0)]))),128))])):(r(),a(`p`,_e,f(p(s)(`projectAgents.conversations.empty`)),1)),C.value?(r(),a(`details`,{key:5,"data-memory-settings":``,onToggle:d(Ee,[`stop`])},[g(`summary`,null,f(p(s)(`projectAgents.conversations.settings`)),1),I.value?(r(),c(v,{key:0,variant:`compact`,label:p(s)(`projectAgents.conversations.loadingPolicy`)},null,8,[`label`])):h(``,!0),F.value?(r(),a(`form`,{key:1,onSubmit:d(De,[`prevent`])},[g(`fieldset`,{disabled:R.value},[g(`label`,ye,[o(g(`input`,{"onUpdate:modelValue":i[1]||=e=>H.value=e,type:`checkbox`},null,512),[[ee,H.value]]),m(f(p(s)(`projectAgents.conversations.capture`)),1)]),g(`label`,null,[m(f(p(s)(`projectAgents.conversations.compactAfterKb`)),1),o(g(`input`,{"onUpdate:modelValue":i[2]||=e=>B.value=e,name:`compactAfterKb`,type:`number`,min:`8`,max:`1024`,required:``},null,512),[[l,B.value,void 0,{number:!0}]])]),g(`label`,null,[m(f(p(s)(`projectAgents.conversations.budget`)),1),o(g(`input`,{"onUpdate:modelValue":i[3]||=e=>V.value=e,name:`contextBudget`,type:`number`,min:`512`,max:`16000`,required:``},null,512),[[l,V.value,void 0,{number:!0}]])]),g(`p`,be,f(p(s)(`projectAgents.conversations.budgetHint`)),1),g(`button`,xe,[R.value?(r(),c(v,{key:0,variant:`inline`,label:p(s)(`projectAgents.conversations.saving`)},null,8,[`label`])):(r(),a(`span`,Se,f(p(s)(`projectAgents.conversations.save`)),1))])],8,ve)],32)):h(``,!0),L.value?(r(),a(`div`,Ce,[g(`p`,null,f(L.value),1),F.value?h(``,!0):(r(),a(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:$},f(p(s)(`projectAgents.retry`)),1))])):h(``,!0),z.value?(r(),a(`p`,we,f(p(s)(`projectAgents.conversations.saved`)),1)):h(``,!0)],32)):h(``,!0)],64)):h(``,!0)],32))}}),[[`__scopeId`,`data-v-d822789b`]]);export{C as t};
@@ -1 +1 @@
1
- import{E as e,H as t,P as n,R as r,S as i,a,b as o,ot as s,rt as c,v as l,x as u,y as d}from"./i18n-oJFlt8hW.js";import{t as f}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as p}from"./attention-store-CA5y8j1R.js";var m={key:0,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.7`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},h={"aria-hidden":`true`},g=f(e({__name:`AgentHand`,props:{agentId:{},passive:{type:Boolean},countOnly:{type:Boolean}},setup(e){let f=e,g=p(),_=l(()=>f.agentId?g.counts[f.agentId]??0:g.total);function v(e){f.passive||(e.preventDefault(),e.stopPropagation(),g.show(f.agentId))}return(l,f)=>_.value?(n(),o(r(e.passive?`span`:`button`),{key:0,type:e.passive?void 0:`button`,class:`agent-hand`,"aria-label":c(a)(`attention.count`,{count:_.value}),title:c(a)(`attention.count`,{count:_.value}),onClick:v},{default:t(()=>[e.countOnly?u(``,!0):(n(),i(`svg`,m,[...f[0]||=[d(`path`,{d:`M8 13V5a1.5 1.5 0 0 1 3 0v6-8a1.5 1.5 0 0 1 3 0v8-6a1.5 1.5 0 0 1 3 0v7-3a1.5 1.5 0 0 1 3 0v6c0 4-2 7-6 7h-1c-3 0-4-1-6-4l-3-4a1.6 1.6 0 0 1 2.5-2z`},null,-1)]])),d(`span`,h,s(_.value),1)]),_:1},8,[`type`,`aria-label`,`title`])):u(``,!0)}}),[[`__scopeId`,`data-v-5bcf651a`]]);export{g as t};
1
+ import{E as e,H as t,P as n,R as r,S as i,a,b as o,ot as s,rt as c,v as l,x as u,y as d}from"./i18n-B4Fp9Oa5.js";import{t as f}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as p}from"./attention-store-BGHyzWfv.js";var m={key:0,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.7`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},h={"aria-hidden":`true`},g=f(e({__name:`AgentHand`,props:{agentId:{},passive:{type:Boolean},countOnly:{type:Boolean}},setup(e){let f=e,g=p(),_=l(()=>f.agentId?g.counts[f.agentId]??0:g.total);function v(e){f.passive||(e.preventDefault(),e.stopPropagation(),g.show(f.agentId))}return(l,f)=>_.value?(n(),o(r(e.passive?`span`:`button`),{key:0,type:e.passive?void 0:`button`,class:`agent-hand`,"aria-label":c(a)(`attention.count`,{count:_.value}),title:c(a)(`attention.count`,{count:_.value}),onClick:v},{default:t(()=>[e.countOnly?u(``,!0):(n(),i(`svg`,m,[...f[0]||=[d(`path`,{d:`M8 13V5a1.5 1.5 0 0 1 3 0v6-8a1.5 1.5 0 0 1 3 0v8-6a1.5 1.5 0 0 1 3 0v7-3a1.5 1.5 0 0 1 3 0v6c0 4-2 7-6 7h-1c-3 0-4-1-6-4l-3-4a1.6 1.6 0 0 1 2.5-2z`},null,-1)]])),d(`span`,h,s(_.value),1)]),_:1},8,[`type`,`aria-label`,`title`])):u(``,!0)}}),[[`__scopeId`,`data-v-5bcf651a`]]);export{g as t};
@@ -1 +1 @@
1
- import{E as e,H as t,P as n,b as r,ot as i,rt as a,w as o}from"./i18n-oJFlt8hW.js";import{t as s}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as c}from"./vue-router-CCvPGaLD.js";import{n as l}from"./profile-model-BQO4zNs9.js";var u=s(e({__name:`AgentName`,props:{spaceId:{},agentId:{},name:{}},setup(e){return(s,u)=>(n(),r(a(c),{class:`agent-name-link`,to:a(l)(e.spaceId,e.agentId)},{default:t(()=>[o(i(e.name),1)]),_:1},8,[`to`]))}}),[[`__scopeId`,`data-v-4c868995`]]);export{u as t};
1
+ import{E as e,H as t,P as n,b as r,ot as i,rt as a,w as o}from"./i18n-B4Fp9Oa5.js";import{t as s}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as c}from"./vue-router-nZMhR3dI.js";import{n as l}from"./profile-model-BQO4zNs9.js";var u=s(e({__name:`AgentName`,props:{spaceId:{},agentId:{},name:{}},setup(e){return(s,u)=>(n(),r(a(c),{class:`agent-name-link`,to:a(l)(e.spaceId,e.agentId)},{default:t(()=>[o(i(e.name),1)]),_:1},8,[`to`]))}}),[[`__scopeId`,`data-v-4c868995`]]);export{u as t};
@@ -0,0 +1 @@
1
+ import{B as e,E as t,H as n,I as r,N as i,P as a,Q as o,S as s,T as c,U as l,a as u,b as d,f,g as p,h as m,it as ee,j as h,ot as g,p as _,rt as v,v as y,w as b,x,y as S}from"./i18n-B4Fp9Oa5.js";import{t as C}from"./console-C2Lfifq-.js";import{o as w,r as te,s as T}from"./client-DodUFQDp.js";import{m as E}from"./useApi-CROJJdhE-IuC5qwny.js";import{t as D}from"./vue-router-nZMhR3dI.js";import{t as O}from"./UiSelect-DDyct4mf.js";import{t as k}from"./UiDisclosure-B-T7BmB5.js";import{t as A}from"./avatars-z6ANYG_r.js";import{a as j,r as M,t as N}from"./profile-model-BQO4zNs9.js";import{a as ne,h as P,l as re,n as F}from"./task-evidence-DTiPCs7r.js";import{t as ie}from"./useAgentRoster-QDbOwtLj.js";import{n as ae}from"./paths-CDREouhi.js";import{t as oe}from"./AgentName-C-V41xs0.js";import{t as se}from"./AgentConversations-BnFsfRj3.js";import{i as ce,r as le,t as ue}from"./agent-work-summary-C-yW7x7A.js";import{a as de,s as fe}from"./catalog-kb-cA8t6.js";import{t as pe}from"./project-team-api-Dfm8C4B8.js";/* empty css */var I={key:1,class:`agent-locked-platforms`},L={key:2,class:`agent-platform-field`},me=[`disabled`,`placeholder`],R=[`onUpdate:modelValue`,`disabled`],he={key:3,role:`alert`},ge={key:4,role:`status`},z=[`disabled`],_e=t({__name:`AgentProfileSettings`,props:{agent:{}},emits:[`saved`],setup(t,{emit:n}){let i=t,ee=n,h=o([]),_=o(!1),C=o(!1),E=o(``),D=o(!1),k=``,A=o(``),j=o(``),M=o({judgment:``,taste:``,personality:``}),N=y(()=>i.agent.profile.executorPolicy?.mode===`locked`),ne=y(()=>{let e=i.agent.profile.executorPolicy;return(e?.lockedExecutorIds?.length?e.lockedExecutorIds:(e?.allowList??[]).map(e=>e.executorId)).map(e=>h.value.find(t=>t.executorId===e)?.displayName||e)}),P=y(()=>h.value.filter(e=>e.registrationStatus===`registered`&&e.permissionStatus===`authorized`&&e.preflightStatus===`passed`&&e.workspacePermission&&e.healthStatus!==`unhealthy`&&(!e.healthRequired||e.healthStatus===`healthy`))),re=y(()=>[{value:``,label:u(`agentProfiles.automatic`)},...A.value&&!P.value.some(e=>e.executorId===A.value)?[{value:A.value,label:u(`agentProfiles.platformUnavailable`),disabled:!0}]:[],...P.value.map(e=>({value:e.executorId,label:e.displayName||e.executorId}))]),F=0;e(()=>`${i.agent.personalSpaceId}/${i.agent.agentId}`,async()=>{let e=i.agent,t=++F;j.value=e.profile.expectations??``,M.value={judgment:``,taste:``,personality:``,...e.profile.character},A.value=e.profile.executorPolicy?.preferredExecutorIds?.[0]??``,k=A.value,E.value=``,D.value=!1,C.value=!1,_.value=!0,h.value=[];try{let n=await te(`/api/executors?${new URLSearchParams({personalSpaceId:e.personalSpaceId})}`);t===F&&(h.value=Array.isArray(n)?n:n.executors)}catch{t===F&&(E.value=u(`agentProfiles.platformUnavailable`))}finally{t===F&&(_.value=!1)}},{immediate:!0});async function ie(){if(C.value)return;let e=F,t=i.agent;C.value=!0,E.value=``,D.value=!1;let n=t.profile.executorPolicy;try{let r=await w(`/api/project-agents`,{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId??null,agentId:t.agentId,profile:{...t.profile,character:{...M.value},expectations:j.value,executorPolicy:N.value||A.value===k?n:{...n,mode:`flexible`,preferredExecutorIds:A.value?[A.value]:[]}}});e===F&&(k=A.value,ee(`saved`,r),D.value=!0)}catch(t){e===F&&(E.value=t instanceof Error?t.message:u(`agentProfiles.saveError`))}finally{e===F&&(C.value=!1)}}return(e,t)=>(a(),s(`form`,{class:`agent-simple-settings`,onSubmit:m(ie,[`prevent`])},[S(`h3`,null,g(v(u)(`agentProfiles.settings`)),1),_.value?(a(),d(T,{key:0,variant:`compact`,label:v(u)(`agentProfiles.settingsLoading`)},null,8,[`label`])):N.value?(a(),s(`div`,I,[S(`h4`,null,g(v(u)(`agentProfiles.platform`)),1),S(`p`,null,g(ne.value.join(` · `)||v(u)(`agentProfiles.platformUnavailable`)),1),S(`small`,null,g(v(u)(`agentProfiles.locked`)),1)])):(a(),s(`div`,L,[c(O,{modelValue:A.value,"onUpdate:modelValue":t[0]||=e=>A.value=e,field:``,label:v(u)(`agentProfiles.platform`),options:re.value,disabled:N.value||C.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),S(`small`,null,g(v(u)(N.value?`agentProfiles.locked`:`agentProfiles.platformHint`)),1)])),S(`label`,null,[b(g(v(u)(`agentProfiles.expectations`)),1),l(S(`textarea`,{"onUpdate:modelValue":t[1]||=e=>j.value=e,rows:`3`,maxlength:`4096`,disabled:C.value,placeholder:v(u)(`agentProfiles.expectationsPlaceholder`)},null,8,me),[[f,j.value]])]),S(`details`,null,[S(`summary`,null,g(v(u)(`agentProfiles.editCharacter`)),1),(a(),s(p,null,r([`judgment`,`taste`,`personality`],e=>S(`label`,{key:e},[b(g(v(u)(`agentProfiles.${e}`)),1),l(S(`textarea`,{"onUpdate:modelValue":t=>M.value[e]=t,rows:`2`,maxlength:`2048`,disabled:C.value},null,8,R),[[f,M.value[e]]])])),64))]),E.value?(a(),s(`p`,he,g(E.value),1)):x(``,!0),D.value?(a(),s(`p`,ge,g(v(u)(`agentProfiles.saved`)),1)):x(``,!0),S(`button`,{class:`primary-button`,disabled:C.value||_.value,type:`submit`},[C.value?(a(),d(T,{key:0,variant:`inline`,label:v(u)(`agentProfiles.saving`)},null,8,[`label`])):(a(),s(p,{key:1},[b(g(v(u)(`agentProfiles.save`)),1)],64))],8,z)],32))}}),ve=[`aria-label`],ye={key:1,class:`ui-card ui-empty agent-profile-empty`,role:`alert`},be={key:2,class:`ui-card ui-empty agent-profile-empty`},xe={class:`ui-card agent-resume-header`},Se={class:`agent-portrait`,"aria-hidden":`true`},Ce=[`src`],we={class:`agent-resume-intro`},Te={class:`agent-resume-name-row`},Ee={key:0,class:`ui-badge fla-employee-number`},De={class:`agent-resume-meta`},Oe={class:`agent-profile-actions`},ke=[`aria-expanded`],Ae={key:1,class:`agent-profile-refresh-status`,role:`status`},je=[`aria-label`],Me=[`id`,`aria-selected`,`aria-controls`,`tabindex`,`onClick`,`onKeydown`],Ne={key:4,class:`agent-profile-partial`,role:`status`},Pe=[`aria-hidden`],Fe={class:`agent-profile-primary-grid`},Ie={class:`ui-card agent-resume-section agent-current-work-section`},Le={class:`agent-section-heading`},Re={key:0},ze={key:0,class:`agent-current-work-list`},Be={class:`ui-badge`},Ve={key:1,class:`agent-muted`},He={key:2,class:`agent-muted`},Ue={class:`ui-card agent-resume-section agent-projects-section`},We={class:`agent-section-heading`},Ge={class:`agent-resume-list agent-current-project-list`},Ke={key:0,class:`agent-project-responsibility`},qe={class:`agent-resume-list`},Je={key:0,class:`agent-project-responsibility`},Ye={key:1,class:`agent-muted`},Xe=[`aria-hidden`],Ze={class:`ui-card agent-resume-section`},Qe={key:0,class:`ui-disclosure`,open:``},$e={class:`agent-resume-list`},et={key:1,class:`agent-muted`},tt={class:`ui-card agent-resume-section`},nt={class:`agent-muted`},rt={class:`agent-work-timeline`},it={class:`agent-section-heading`},at={key:0},ot={key:0},st={key:0},ct={key:0,class:`agent-muted`},lt=[`aria-hidden`],ut={class:`ui-card agent-resume-section`},dt={class:`agent-character`},ft={key:0,class:`agent-expectation`},pt={class:`agent-strengths`},mt={class:`agent-inline-skills`},ht={key:0},gt=[`aria-hidden`],_t={class:`ui-card agent-resume-section`},vt={class:`agent-section-heading`},yt={key:0,role:`status`},bt={key:0,class:`agent-org-lead-unavailable`,role:`status`},xt={key:1,class:`agent-org-lead`},St={key:2,class:`agent-org-reporting`},Ct={key:3,class:`agent-org-members`},wt={key:2,class:`agent-muted`},Tt={key:0,class:`agent-muted`},Et={class:`ui-card agent-resume-section`},Dt={class:`agent-collaborators`},Ot={key:0,class:`agent-muted`},kt=[`aria-hidden`],At={class:`ui-card agent-resume-section`},jt=[`aria-hidden`],Mt={class:`ui-card agent-resume-section agent-management-card`},Nt={class:`agent-muted`},Pt={class:`agent-profile-management-links`},Ft={class:`agent-profile-footer`},It=t({__name:`AgentProfilePage`,setup(t){let f=E(),m=C(),w=y(()=>m.activePersonalSpace?.id??``),{agents:O,loading:I,error:L,load:me}=ie(w),R=y(()=>f.params.spaceId===w.value?O.value.find(e=>e.personalSpaceId===w.value&&(e.agentId===f.params.agentId||e.legacyAgentIds?.includes(String(f.params.agentId)))):void 0),he=y(()=>(m.state?.personalProjects??[]).filter(e=>e.personal_space_id===w.value)),ge=y(()=>he.value.map(e=>({id:e.project_id,name:e.profile.name}))),z=e=>he.value.find(t=>t.project_id===e)?.profile.name||e,It=e=>{let t=O.value.find(t=>t.agentId===e);return t?N(t):e},B=o([]),V=o(void 0),H=o([]),U=o(!1),W=o(!1),G=o(!1),K=o(`overview`),q=y(()=>{let e=[{id:`overview`,label:u(`agentProfiles.working`)},{id:`history`,label:u(`agentProfiles.experience`)},{id:`style`,label:u(`agentProfiles.about`)},{id:`collaborators`,label:u(`agentProfiles.collaborators`)},{id:`management`,label:u(`agentProfiles.advanced`)}];return R.value?.memoryScope===`reviewed_agent`&&e.splice(4,0,{id:`conversations`,label:u(`projectAgents.conversations.title`)}),e}),Lt=y(()=>R.value?M(R.value.agentId,B.value):[]),J=y(()=>R.value?j({...R.value,assignments:V.value??R.value.assignments}):[]),Rt=y(()=>J.value.slice(0,4)),zt=y(()=>J.value.slice(4)),Bt=y(()=>(V.value??[]).filter(e=>e.status!==`active`)),Y=y(()=>B.value.filter(e=>ce.has(e.status)).slice(0,6)),X=y(()=>de.value.find(e=>e.agentId===R.value?.agentId)),Z=e=>e&&!Number.isNaN(Date.parse(e))?new Date(e).toLocaleDateString():u(`agentProfiles.timeUnknown`),Q=e=>{let t=V.value?.find(t=>t.personalProjectId===e&&t.status===`active`)?.responsibility?.trim(),n=R.value?.profile.responsibility.trim();return t&&t!==n?t:``},Vt=y(()=>{let e=`agentRedesign.projects.more`,t=u(e,{count:J.value.length});return t===e?`All projects (${J.value.length})`:t}),$=0;e(()=>R.value?`${R.value.personalSpaceId}/${R.value.agentId}`:``,async()=>{let e=R.value,t=++$;if(B.value=[],V.value=void 0,H.value=[],W.value=!1,U.value=!1,G.value=!1,K.value=`overview`,!e)return;fe(e.personalSpaceId),U.value=!0,V.value=e.assignments;let n=new URLSearchParams({personalSpaceId:e.personalSpaceId}),r=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),i=await Promise.allSettled([te(`/api/project-agent-tasks?${n}&limit=200`),te(`/api/project-agent-assignments?${r}`)]);if(t!==$)return;let[a,o]=i;if(a.status===`fulfilled`){let t=a.value,n=P(t);W.value=!ue(t),B.value=F(Array.isArray(t)?t:n.tasks??n.items).map(re).filter(t=>!!(t&&(!t.personalSpaceId||t.personalSpaceId===e.personalSpaceId)&&le(t,e.agentId))).sort((e,t)=>(t.updatedAt??t.createdAt??``).localeCompare(e.updatedAt??e.createdAt??``))}else W.value=!0;if(o.status===`fulfilled`){let t=o.value,n=P(t);V.value=F(Array.isArray(t)?t:n.assignments??n.items).map(t=>ne(t,e)).filter(t=>!!(t&&t.agentId===e.agentId&&t.personalSpaceId===e.personalSpaceId))}else W.value=!0;let s=j({...e,assignments:V.value??e.assignments}),c=await Promise.all(s.map(async t=>{try{return{projectId:t,view:await pe(e.personalSpaceId,t),error:!1}}catch{return{projectId:t,view:null,error:!0}}}));t===$&&(H.value=c,U.value=!1)},{immediate:!0});function Ht(e){let t=O.value.findIndex(t=>t.agentId===e.agentId);t>=0&&(O.value[t]={...O.value[t],...e})}function Ut(e){K.value=e}function Wt(e,t){let n=e.key;if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(n))return;let r=e.currentTarget;e.preventDefault();let i=q.value.length,a=n===`Home`?0:n===`End`?i-1:(t+(n===`ArrowRight`?1:-1)+i)%i,o=q.value[a];o&&(Ut(o.id),h(()=>{let e=(r?.closest(`[role="tablist"]`))?.querySelectorAll(`[role="tab"]`)[a];e?.focus(),e?.scrollIntoView?.({block:`nearest`,inline:`nearest`})}))}return i(()=>{m.runtimeStatus===`idle`&&m.refresh()}),(e,t)=>(a(),s(`section`,{class:`view agent-profile-page`,"aria-label":v(u)(`agentProfiles.profile`)},[c(v(D),{class:`agent-profile-back`,to:`/project-agents`},{default:n(()=>[b(` ← `+g(v(u)(`agentProfiles.back`)),1)]),_:1}),(v(I)||v(m).runtimeStatus===`loading`)&&!R.value?(a(),d(T,{key:0,label:v(u)(`agentProfiles.loading`)},null,8,[`label`])):(v(L)||v(m).runtimeStatus===`error`)&&!R.value?(a(),s(`div`,ye,[S(`p`,null,g(v(L)||v(u)(`agentProfiles.loadError`)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:t[0]||=e=>v(m).state?v(me)():v(m).refresh()},g(v(u)(`agentProfiles.retry`)),1)])):R.value?(a(),s(p,{key:3},[S(`header`,xe,[S(`span`,Se,[v(A)(R.value.agentId)?(a(),s(`img`,{key:0,src:v(A)(R.value.agentId),alt:``},null,8,Ce)):(a(),s(p,{key:1},[b(g(R.value.profile.occupationEmoji||v(N)(R.value).slice(0,1)),1)],64))]),S(`div`,we,[S(`div`,Te,[S(`h1`,null,g(v(N)(R.value)),1),R.value.employeeNumber?(a(),s(`span`,Ee,`FLA `+g(R.value.employeeNumber),1)):x(``,!0),S(`span`,{class:ee([`ui-badge agent-profile-membership`,`is-${R.value.profile.status}`])},g(v(u)(`projectAgents.status.${R.value.profile.status}`)),3)]),S(`p`,null,g(R.value.profile.responsibility),1),S(`div`,De,[S(`span`,null,g(v(u)(R.value.recruitedAt?`agentProfiles.joined`:`agentProfiles.created`))+` · `+g(Z(R.value.recruitedAt||R.value.createdAt)),1)])]),S(`div`,Oe,[X.value?(a(),d(v(D),{key:0,class:`quiet-button`,to:`/employees/${encodeURIComponent(X.value.id)}`},{default:n(()=>[b(g(v(u)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):x(``,!0),S(`button`,{class:`quiet-button`,type:`button`,"aria-expanded":G.value,onClick:t[1]||=e=>G.value=!G.value},g(v(u)(`agentProfiles.settings`)),9,ke),c(v(D),{class:`quiet-button`,to:{path:`/employees/bole`,query:{q:v(N)(R.value)}}},{default:n(()=>[b(g(v(u)(`agentProfiles.askHR`)),1)]),_:1},8,[`to`])])]),v(I)||v(m).runtimeStatus===`loading`?(a(),d(T,{key:0,variant:`compact`,label:v(u)(`agentProfiles.loading`)},null,8,[`label`])):x(``,!0),v(L)?(a(),s(`p`,Ae,g(v(L)),1)):x(``,!0),G.value?(a(),d(_e,{key:R.value.agentId,agent:R.value,onSaved:Ht},null,8,[`agent`])):x(``,!0),U.value?(a(),d(T,{key:3,variant:`compact`,label:v(u)(`agentProfiles.detailLoading`)},null,8,[`label`])):x(``,!0),S(`nav`,{class:`agent-profile-tabs`,role:`tablist`,"aria-label":v(u)(`agentProfiles.profile`)},[(a(!0),s(p,null,r(q.value,e=>(a(),s(`button`,{id:`agent-tab-${e.id}`,key:e.id,class:`agent-profile-tab`,type:`button`,role:`tab`,"aria-selected":K.value===e.id,"aria-controls":`agent-panel-${e.id}`,tabindex:K.value===e.id?0:-1,onClick:t=>Ut(e.id),onKeydown:t=>Wt(t,q.value.findIndex(t=>t.id===e.id))},g(e.label),41,Me))),128))],8,je),W.value?(a(),s(`p`,Ne,g(v(u)(`agentProfiles.partial`)),1)):x(``,!0),l(S(`section`,{id:`agent-panel-overview`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-overview`,"aria-hidden":K.value!==`overview`,tabindex:`0`},[S(`div`,Fe,[S(`section`,Ie,[S(`div`,Le,[S(`h2`,null,g(v(u)(`agentProfiles.working`)),1),Y.value.length?(a(),s(`span`,Re,g(Y.value.length),1)):x(``,!0)]),Y.value.length?(a(),s(`ul`,ze,[(a(!0),s(p,null,r(Y.value,e=>(a(),s(`li`,{key:e.taskId},[c(v(D),{to:{path:`/project-agents/manage`,query:{agent:R.value.agentId,task:e.taskId}}},{default:n(()=>[b(g(e.title),1)]),_:2},1032,[`to`]),S(`span`,Be,g(v(u)(`projectAgents.taskStatus.${e.status}`)),1)]))),128))])):!U.value&&!W.value?(a(),s(`p`,Ve,g(v(u)(`agentProfiles.idle`)),1)):U.value?x(``,!0):(a(),s(`p`,He,g(v(u)(`agentProfiles.partial`)),1))]),S(`section`,Ue,[S(`div`,We,[S(`h2`,null,g(v(u)(`agentProfiles.projects`)),1),S(`span`,null,g(J.value.length),1)]),S(`ul`,Ge,[(a(!0),s(p,null,r(Rt.value,e=>(a(),s(`li`,{key:e,class:`agent-project-item`},[S(`h3`,null,[c(v(D),{class:`agent-project-link`,to:v(ae)(w.value,`overview`,e)},{default:n(()=>[b(g(z(e)),1)]),_:2},1032,[`to`])]),Q(e)?(a(),s(`p`,Ke,g(Q(e)),1)):x(``,!0)]))),128))]),zt.value.length?(a(),d(k,{key:0,class:`agent-project-overflow`,title:Vt.value},{default:n(()=>[S(`ul`,qe,[(a(!0),s(p,null,r(zt.value,e=>(a(),s(`li`,{key:e,class:`agent-project-item`},[S(`h3`,null,[c(v(D),{class:`agent-project-link`,to:v(ae)(w.value,`overview`,e)},{default:n(()=>[b(g(z(e)),1)]),_:2},1032,[`to`])]),Q(e)?(a(),s(`p`,Je,g(Q(e)),1)):x(``,!0)]))),128))])]),_:1},8,[`title`])):x(``,!0),!U.value&&!J.value.length?(a(),s(`p`,Ye,g(v(u)(`agentProfiles.noProject`)),1)):x(``,!0)])])],8,Pe),[[_,K.value===`overview`]]),l(S(`section`,{id:`agent-panel-history`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-history`,"aria-hidden":K.value!==`history`,tabindex:`0`},[S(`section`,Ze,[S(`h2`,null,g(v(u)(`agentProfiles.projects`)),1),Bt.value.length?(a(),s(`details`,Qe,[S(`summary`,null,g(v(u)(`agentProfiles.projectHistory`)),1),S(`ul`,$e,[(a(!0),s(p,null,r(Bt.value,e=>(a(),s(`li`,{key:e.assignmentId},[S(`h3`,null,[c(v(D),{class:`agent-project-link`,to:v(ae)(w.value,`overview`,e.personalProjectId)},{default:n(()=>[b(g(z(e.personalProjectId)),1)]),_:2},1032,[`to`])]),S(`p`,null,g(e.responsibility),1),S(`small`,null,g(Z(e.assignedAt))+` – `+g(Z(e.endedAt)),1)]))),128))])])):U.value?x(``,!0):(a(),s(`p`,et,g(v(u)(`agentProfiles.noProject`)),1))]),S(`section`,tt,[S(`h2`,null,g(v(u)(`agentProfiles.experience`)),1),S(`p`,nt,g(v(u)(`agentProfiles.recent`)),1),S(`ol`,rt,[(a(!0),s(p,null,r(B.value.slice(0,12),e=>(a(),s(`li`,{key:e.taskId},[S(`div`,it,[c(v(D),{to:{path:`/project-agents/manage`,query:{agent:R.value.agentId,task:e.taskId}}},{default:n(()=>[b(g(e.title),1)]),_:2},1032,[`to`]),S(`span`,null,g(v(u)(`projectAgents.taskStatus.${e.status}`)),1)]),e.resultSummary?(a(),s(`p`,at,g(e.resultSummary),1)):x(``,!0),S(`small`,null,g(Z(e.completedAt||e.updatedAt||e.createdAt)),1)]))),128)),R.value.recruitedAt||R.value.recruitmentReason?(a(),s(`li`,ot,[S(`h3`,null,g(v(u)(`agentProfiles.recruitment`)),1),R.value.recruitmentReason?(a(),s(`p`,st,g(R.value.recruitmentReason),1)):x(``,!0),S(`small`,null,g(Z(R.value.recruitedAt)),1)])):x(``,!0)]),!U.value&&!B.value.length&&!R.value.recruitmentReason&&!R.value.recruitedAt?(a(),s(`p`,ct,g(v(u)(`agentProfiles.noExperience`)),1)):x(``,!0)])],8,Xe),[[_,K.value===`history`]]),l(S(`section`,{id:`agent-panel-style`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-style`,"aria-hidden":K.value!==`style`,tabindex:`0`},[S(`section`,ut,[S(`h2`,null,g(v(u)(`agentProfiles.about`)),1),S(`div`,dt,[(a(),s(p,null,r([`judgment`,`taste`,`personality`],e=>S(`div`,{key:e},[S(`h3`,null,g(v(u)(`agentProfiles.${e}`)),1),S(`p`,{class:ee({"agent-muted":!R.value.profile.character?.[e]})},g(R.value.profile.character?.[e]||v(u)(`agentProfiles.characterEmpty`)),3)])),64))]),R.value.profile.expectations?(a(),s(`p`,ft,[S(`strong`,null,g(v(u)(`agentProfiles.expectations`)),1),b(` `+g(R.value.profile.expectations),1)])):x(``,!0),S(`div`,pt,[S(`h3`,null,g(v(u)(`agentProfiles.strengths`)),1),S(`div`,mt,[(a(!0),s(p,null,r(R.value.profile.capabilities,e=>(a(),s(`span`,{key:e},g(e),1))),128)),R.value.profile.capabilities.length?x(``,!0):(a(),s(`span`,ht,g(v(u)(`agentProfiles.noSkills`)),1))])])])],8,lt),[[_,K.value===`style`]]),l(S(`section`,{id:`agent-panel-collaborators`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-collaborators`,"aria-hidden":K.value!==`collaborators`,tabindex:`0`},[S(`section`,_t,[S(`div`,vt,[S(`h2`,null,g(v(u)(`agentProfiles.organization`)),1),c(v(D),{to:{path:`/employees/bole`,query:{q:v(N)(R.value)}}},{default:n(()=>[b(g(v(u)(`agentProfiles.hr`)),1)]),_:1},8,[`to`])]),(a(!0),s(p,null,r(H.value,e=>(a(),s(`div`,{key:e.projectId,class:`agent-organization`},[S(`h3`,null,g(z(e.projectId)),1),e.error?(a(),s(`p`,yt,g(v(u)(`agentProfiles.teamUnavailable`)),1)):e.view&&(e.view.lead||e.view.unavailableLead||e.view.members.length)?(a(),s(p,{key:1},[e.view.unavailableLead?(a(),s(`p`,bt,g(e.view.unavailableLead.name?v(u)(`agentProfiles.leadUnavailable`,{name:e.view.unavailableLead.name}):v(u)(`agentProfiles.leadUnavailableUnnamed`)),1)):x(``,!0),e.view.lead?(a(),s(`div`,xt,[S(`span`,null,g(v(u)(`agentProfiles.lead`)),1),c(oe,{"space-id":w.value,"agent-id":e.view.lead.agentId,name:e.view.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):x(``,!0),e.view.lead?(a(),s(`p`,St,g(v(u)(`agentProfiles.reporting`)),1)):x(``,!0),e.view.members.length?(a(),s(`div`,Ct,[S(`span`,null,g(v(u)(`agentProfiles.teammates`)),1),S(`ul`,null,[(a(!0),s(p,null,r(e.view.members,e=>(a(),s(`li`,{key:e.agentId},[c(oe,{"space-id":w.value,"agent-id":e.agentId,name:e.name},null,8,[`space-id`,`agent-id`,`name`])]))),128))])])):x(``,!0)],64)):(a(),s(`p`,wt,g(v(u)(`agentProfiles.teamUnset`)),1))]))),128)),!U.value&&!H.value.length?(a(),s(`p`,Tt,g(v(u)(`agentProfiles.noProject`)),1)):x(``,!0)]),S(`section`,Et,[S(`h2`,null,g(v(u)(`agentProfiles.collaborators`)),1),S(`ul`,Dt,[(a(!0),s(p,null,r(Lt.value,e=>(a(),s(`li`,{key:e.agentId},[c(oe,{"space-id":w.value,"agent-id":e.agentId,name:It(e.agentId)},null,8,[`space-id`,`agent-id`,`name`]),S(`span`,null,g(v(u)(`agentProfiles.sharedTasks`,{count:e.count})),1)]))),128))]),!U.value&&!Lt.value.length?(a(),s(`p`,Ot,g(v(u)(`agentProfiles.noCollaborators`)),1)):x(``,!0)])],8,gt),[[_,K.value===`collaborators`]]),R.value.memoryScope===`reviewed_agent`?l((a(),s(`section`,{key:5,id:`agent-panel-conversations`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-conversations`,"aria-hidden":K.value!==`conversations`,tabindex:`0`},[S(`section`,At,[(a(),d(se,{key:R.value.agentId,"personal-space-id":w.value,"agent-id":R.value.agentId,projects:ge.value},null,8,[`personal-space-id`,`agent-id`,`projects`]))])],8,kt)),[[_,K.value===`conversations`]]):x(``,!0),l(S(`section`,{id:`agent-panel-management`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-management`,"aria-hidden":K.value!==`management`,tabindex:`0`},[S(`section`,Mt,[S(`h2`,null,g(v(u)(`agentProfiles.advanced`)),1),S(`p`,Nt,g(v(u)(`agentProfiles.locked`)),1),S(`div`,Pt,[X.value?(a(),d(v(D),{key:0,class:`quiet-button`,to:`/employees/${encodeURIComponent(X.value.id)}`},{default:n(()=>[b(g(v(u)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):x(``,!0),c(v(D),{class:`quiet-button`,to:{path:`/project-agents/manage`,query:{agent:R.value.agentId}}},{default:n(()=>[b(g(v(u)(`agentProfiles.advanced`)),1)]),_:1},8,[`to`])])])],8,jt),[[_,K.value===`management`]]),S(`footer`,Ft,[X.value?(a(),d(v(D),{key:0,to:`/employees/${encodeURIComponent(X.value.id)}`},{default:n(()=>[b(g(v(u)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):x(``,!0),c(v(D),{to:{path:`/project-agents/manage`,query:{agent:R.value.agentId}}},{default:n(()=>[b(g(v(u)(`agentProfiles.advanced`)),1)]),_:1},8,[`to`])])],64)):(a(),s(`p`,be,g(v(u)(`agentProfiles.unavailable`)),1))],8,ve))}});export{It as default};
@@ -0,0 +1 @@
1
+ import{B as e,E as t,H as n,I as r,N as i,P as a,Q as o,S as s,T as c,U as l,a as u,b as d,f,g as p,h as m,it as h,ot as g,p as _,rt as v,v as y,w as b,x,y as S}from"./i18n-B4Fp9Oa5.js";import{t as C}from"./console-C2Lfifq-.js";import{r as w,s as T}from"./client-DodUFQDp.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{h as D,m as O}from"./useApi-CROJJdhE-IuC5qwny.js";import{t as k}from"./vue-router-nZMhR3dI.js";import{t as A}from"./UiSelect-DDyct4mf.js";import{t as j}from"./AgentHand-B5lezlek.js";import{t as M}from"./avatars-z6ANYG_r.js";import{a as N,i as P,n as F,t as I}from"./profile-model-BQO4zNs9.js";import{a as L,o as ee,r as R}from"./agent-pins-6LRHTMF6.js";import{n as z,t as B}from"./agent-work-summary-C-yW7x7A.js";import{a as V,s as H}from"./catalog-kb-cA8t6.js";/* empty css */import{t as te}from"./ProjectAgentFirstTask-Caf7c6F_.js";import{t as ne}from"./EmployeeRecruitDialog-o6eyMw2g.js";var re={viewBox:`0 0 1024 1024`,width:`18`,height:`18`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`},ie=[`d`],U=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z`,ae=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z`,oe=t({__name:`PinIcon`,props:{filled:{type:Boolean,default:!1}},setup(e){return(t,n)=>(a(),s(`svg`,re,[S(`path`,{d:e.filled?ae:U},null,8,ie)]))}}),W={class:`ui-card agent-card`},G={class:`agent-card-topline`},K={class:`agent-portrait small`,"aria-hidden":`true`},q=[`src`],J={class:`agent-directory-name`},se={key:0,class:`ui-badge fla-employee-number`},ce={key:1,class:`ui-badge ui-badge--accent agent-card-role`},Y=[`data-membership-status`],X=[`data-work-status`,`aria-label`],Z=[`aria-label`,`aria-pressed`,`title`,`disabled`],le={class:`agent-card-responsibility`},Q={key:0,class:`agent-inline-skills`},$={class:`agent-card-meta`},ue={class:`agent-card-projects`},de={key:0,class:`agent-card-project-list`},fe=[`title`],pe={key:0,class:`ui-badge agent-card-project-count`},me={key:1,class:`ui-badge`},he={key:2,class:`agent-card-no-project`},ge=E(t({__name:`AgentCard`,props:{agent:{},spaceId:{},projectNames:{},managesAllProjects:{type:Boolean},workSummary:{},workState:{},pinned:{type:Boolean},pinPending:{type:Boolean}},emits:[`toggle-pin`],setup(e,{emit:t}){let i=e,o=t,l=y(()=>I(i.agent)),f=y(()=>N(i.agent)),_=y(()=>f.value.slice(0,2).map(e=>i.projectNames?.[e]||e)),C=y(()=>Math.max(f.value.length-2,0)),w=y(()=>i.agent.profile.capabilities.slice(0,3)),E=y(()=>`is-${i.agent.profile.status}`),D=y(()=>u(`projectAgents.status.${i.agent.profile.status}`)),O=y(()=>i.workSummary?i.workSummary.status:i.workState===`loading`?`loading`:i.workState===`error`?`unavailable`:i.workState===`incomplete`?`unreported`:`none`),A=y(()=>`is-${O.value}`),P=y(()=>({coordinator:u(`agentProfiles.roles.projectManager`),hr:u(`agentProfiles.roles.hr`)})[i.agent.profile.agentType]??``);function L(e,t,n){let r=u(e,n);return r===e?t:r}let ee=y(()=>L(`agentRedesign.membershipStatus`,`Member · ${D.value}`,{status:D.value})),z=y(()=>{let e={awaiting_recruitment:`Awaiting recruitment`,queued:`Queued`,running:`Running`,paused:`Paused`,awaiting_review:`Awaiting review`,blocked:`Blocked`,none:u(`agentProfiles.idle`),loading:`Loading work status`,unreported:`Partial status`,unavailable:`Unavailable`}[O.value];return L(`agentRedesign.workStatus.${O.value}`,e??`Work status unavailable`)}),B=y(()=>i.pinPending?R(`saving`,`Saving Agent pin…`):i.pinned?R(`unpin`,`Unpin Agent`):R(`pin`,`Pin Agent`));function V(){o(`toggle-pin`,!i.pinned)}return(t,i)=>(a(),s(`article`,W,[S(`div`,G,[S(`span`,K,[v(M)(e.agent.agentId)?(a(),s(`img`,{key:0,src:v(M)(e.agent.agentId),alt:``},null,8,q)):(a(),s(p,{key:1},[b(g(e.agent.profile.occupationEmoji||l.value.slice(0,1)),1)],64))]),S(`div`,J,[c(v(k),{to:v(F)(e.spaceId,e.agent.agentId),"aria-label":`${l.value} · ${v(u)(`agentProfiles.profile`)}`},{default:n(()=>[b(g(l.value),1)]),_:1},8,[`to`,`aria-label`]),e.agent.employeeNumber?(a(),s(`span`,se,`FLA `+g(e.agent.employeeNumber),1)):x(``,!0),P.value?(a(),s(`span`,ce,g(P.value),1)):x(``,!0),c(j,{"agent-id":e.agent.agentId},null,8,[`agent-id`])]),e.agent.profile.status===`active`?x(``,!0):(a(),s(`span`,{key:0,class:h([`ui-badge agent-card-status agent-card-membership-status`,E.value]),"data-membership-status":e.agent.profile.status},g(ee.value),11,Y)),e.agent.profile.status===`active`||![`none`,`loading`].includes(O.value)?(a(),s(`span`,{key:1,class:h([`agent-card-work-status`,A.value]),"data-work-status":O.value,"aria-label":`${v(u)(`agentRedesign.workStatus.label`)} · ${z.value}`},g(z.value),11,X)):x(``,!0),S(`button`,{class:`agent-card-pin quiet-button`,"data-agent-pin-toggle":``,type:`button`,"aria-label":`${B.value} · ${l.value}`,"aria-pressed":!!e.pinned,title:B.value,disabled:e.pinPending,onClick:m(V,[`stop`])},[e.pinPending?(a(),d(T,{key:0,variant:`inline`,label:B.value},null,8,[`label`])):(a(),d(oe,{key:1,filled:e.pinned},null,8,[`filled`]))],8,Z)]),S(`p`,le,g(e.agent.profile.responsibility),1),w.value.length?(a(),s(`div`,Q,[(a(!0),s(p,null,r(w.value,e=>(a(),s(`span`,{key:e},g(e),1))),128))])):x(``,!0),S(`div`,$,[S(`div`,ue,[_.value.length?(a(),s(`div`,de,[(a(!0),s(p,null,r(_.value,e=>(a(),s(`span`,{key:e,class:`ui-badge agent-card-project-badge`,title:e},g(e),9,fe))),128)),C.value?(a(),s(`span`,pe,` +`+g(C.value),1)):x(``,!0)])):e.managesAllProjects?(a(),s(`span`,me,g(v(u)(`agentProfiles.allProjects`)),1)):(a(),s(`span`,he,g(v(u)(`agentProfiles.noProject`)),1))]),c(v(k),{class:`agent-directory-open`,to:v(F)(e.spaceId,e.agent.agentId),"aria-label":`${l.value} · ${v(u)(`agentProfiles.profile`)}`},{default:n(()=>[b(g(v(u)(`agentProfiles.profile`))+` → `,1)]),_:1},8,[`to`,`aria-label`])])]))}}),[[`__scopeId`,`data-v-5a7e5736`]]);function _e(t){let n=o({}),r=o(!1),i=o(``),a=o(`idle`),s=new Map,c=0;async function l(){let e=++c,o=t.value;if(i.value=``,!o){n.value={},r.value=!1,a.value=`idle`;return}let l=s.get(o);l?n.value=l:Object.keys(n.value).length&&(n.value={}),r.value=!0,a.value=`loading`;try{let r=await w(`/api/project-agent-tasks?${new URLSearchParams({personalSpaceId:o,limit:`200`})}`);if(e!==c||t.value!==o)return;let i=z(r,o);s.set(o,i),n.value=i,a.value=B(r)?`ready`:`incomplete`}catch(n){if(e!==c||t.value!==o)return;i.value=n instanceof Error?n.message:u(`agentProfiles.loadError`),a.value=`error`}finally{e===c&&t.value===o&&(r.value=!1)}}return e(t,l,{immediate:!0}),{summaries:n,loading:r,error:i,state:a,load:l}}var ve=[`src`],ye=E(t({__name:`EmployeeWorkbenchLinks`,props:{personalSpaceId:{}},setup(t){let i=t;e(()=>i.personalSpaceId,e=>{H(e===`current`?``:e)},{immediate:!0});let o=y(()=>V.value.filter(e=>e.agentId&&e.agentStatus===`active`&&(e.runtime||e.workbench?.kind===`native`)));return(e,t)=>(a(!0),s(p,null,r(o.value,e=>(a(),d(v(k),{key:e.id,class:`ui-button employee-workbench-link`,to:`/employees/${encodeURIComponent(e.id)}`,title:v(u)(`agentProfiles.workbench`)},{default:n(()=>[v(M)(e.id)?(a(),s(`img`,{key:0,src:v(M)(e.id),alt:``,"aria-hidden":`true`},null,8,ve)):x(``,!0),b(` `+g(e.name)+` · `+g(e.role),1)]),_:2},1032,[`to`,`title`]))),128))}}),[[`__scopeId`,`data-v-4906fde1`]]),be=[`aria-label`],xe={class:`ui-toolbar agents-directory-heading`},Se={key:0,class:`agents-directory-count`},Ce={key:1,class:`agents-directory-count`,"aria-hidden":`true`},we={class:`agent-profile-actions`},Te=[`disabled`],Ee={key:0,class:`agent-directory-pin-error`,role:`alert`},De={key:2,class:`agent-directory-work-error`,role:`status`},Oe={class:`ui-toolbar agents-directory-filters`},ke={class:`agents-directory-search`},Ae={class:`sr-only`},je=[`placeholder`],Me={key:4,role:`alert`,class:`ui-card ui-empty agent-profile-empty`},Ne={key:5,class:`ui-card ui-empty agent-profile-empty`},Pe={key:6,class:`agents-directory-grid`},Fe=E(t({__name:`AgentsDirectoryPage`,setup(t){let n=C(),m=O(),h=D(),b=y(()=>n.activePersonalSpace?.id??``),{agents:w,loading:E,error:k,load:j}=ee(b),M=L(b),z=M.agentIds,B=M.savingAgentId,H=M.error,re=y(()=>R(`retry`,`Retry`)),{summaries:ie,loading:U,error:ae,state:oe,load:W}=_e(b),G=o(typeof m.query.q==`string`?m.query.q:``),K=o(`all`),q=o(typeof m.query.project==`string`?[m.query.project]:[]),J=o(!1),se=y(()=>V.value.some(e=>!e.fixed)),ce=e=>V.value.some(t=>t.agentId===e&&t.management?.mode===`all`),Y=y(()=>(n.state?.personalProjects??[]).filter(e=>e.personal_space_id===b.value)),X=y(()=>Y.value.map(e=>({value:e.project_id,label:e.profile.name}))),Z=y(()=>Object.fromEntries(X.value.map(e=>[e.value,e.label]))),le=y(()=>[{value:`all`,label:u(`agentProfiles.allStatus`)},...[`active`,`inactive`,`archived`].map(e=>({value:e,label:u(`projectAgents.status.${e}`)}))]),Q=y(()=>w.value.filter(e=>(K.value===`all`||e.profile.status===K.value)&&(!q.value.length||N(e).some(e=>q.value.includes(e)))&&P([I(e),e.employeeNumber?`FLA ${e.employeeNumber}`:``,e.profile.responsibility,...e.profile.capabilities,...N(e).map(e=>Z.value[e]||e)].join(` `),G.value)).sort((e,t)=>I(e).localeCompare(I(t)))),$=y(()=>E.value||U.value||n.runtimeStatus===`loading`),ue=e=>ie.value[e];async function de(e,t){await M.setPinned(e,t)}i(()=>{n.runtimeStatus===`idle`&&n.refresh()}),e([b,()=>m.query.agent],([e,t])=>{if(e&&typeof t==`string`){let{agent:n,...r}=m.query;h.replace({path:typeof m.query.task==`string`?`/project-agents/manage`:F(e,t),query:typeof m.query.task==`string`?m.query:r})}},{immediate:!0}),e(b,(e,t)=>{t&&(G.value=``,q.value=[],K.value=`all`)});async function fe(e){J.value=!1,await h.push(F(b.value,e.agent.agentId))}async function pe(){if(n.state){await Promise.allSettled([j(),W()]);return}await n.refresh(),await Promise.allSettled([j(),W()])}return(e,t)=>(a(),s(`section`,{class:`view agents-directory`,"aria-label":v(u)(`agentProfiles.title`)},[S(`header`,xe,[!$.value||v(w).length?(a(),s(`p`,Se,g(v(u)(`agentProfiles.members`,{count:v(w).length})),1)):(a(),s(`span`,Ce,`\xA0`)),S(`div`,we,[$.value&&v(w).length?(a(),d(T,{key:0,variant:`inline`,label:v(u)(`agentRedesign.refreshing`)},null,8,[`label`])):x(``,!0),c(ye,{"personal-space-id":b.value||`current`},null,8,[`personal-space-id`]),se.value?(a(),s(`button`,{key:1,type:`button`,class:`primary-button`,disabled:!b.value,onClick:t[0]||=e=>J.value=!0},g(v(u)(`employees.recruit`)),9,Te)):x(``,!0)])]),v(H)?(a(),s(`p`,Ee,[S(`span`,null,g(v(H)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:t[1]||=e=>v(M).load({force:!0})},g(re.value),1)])):x(``,!0),!$.value&&!v(k)&&v(n).runtimeStatus===`ready`&&!Y.value.length?(a(),d(te,{key:1,"personal-space-id":b.value},null,8,[`personal-space-id`])):x(``,!0),v(ae)?(a(),s(`p`,De,[S(`span`,null,g(v(u)(`agentRedesign.workStatus.refreshError`)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:t[2]||=(...e)=>v(W)&&v(W)(...e)},g(v(u)(`agentProfiles.retry`)),1)])):x(``,!0),S(`div`,Oe,[S(`label`,ke,[S(`span`,Ae,g(v(u)(`agentProfiles.search`)),1),l(S(`input`,{"onUpdate:modelValue":t[3]||=e=>G.value=e,type:`search`,maxlength:`160`,placeholder:v(u)(`agentProfiles.search`)},null,8,je),[[f,G.value]])]),c(A,{modelValue:q.value,"onUpdate:modelValue":t[4]||=e=>q.value=e,class:`agents-directory-select`,multiple:``,options:X.value,label:v(u)(`employees.filterLabel`),placeholder:v(u)(`employees.allProjectsFilter`)},null,8,[`modelValue`,`options`,`label`,`placeholder`]),c(A,{modelValue:K.value,"onUpdate:modelValue":t[5]||=e=>K.value=e,class:`agents-directory-select`,options:le.value,label:v(u)(`projectAgents.fields.status`)},null,8,[`modelValue`,`options`,`label`])]),$.value&&!v(w).length?(a(),d(T,{key:3,label:v(u)(`agentProfiles.loading`)},null,8,[`label`])):x(``,!0),v(k)||v(n).runtimeStatus===`error`?l((a(),s(`div`,Me,[S(`p`,null,g(v(k)||v(u)(`agentProfiles.loadError`)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:pe},g(v(u)(`agentProfiles.retry`)),1)],512)),[[_,!$.value||v(w).length===0]]):x(``,!0),!$.value&&!Q.value.length&&!v(k)&&v(n).runtimeStatus!==`error`?(a(),s(`p`,Ne,g(v(u)(v(w).length?`agentProfiles.noMatch`:`agentProfiles.noAgents`)),1)):x(``,!0),Q.value.length?(a(),s(`ul`,Pe,[(a(!0),s(p,null,r(Q.value,e=>(a(),s(`li`,{key:e.agentId},[c(ge,{agent:e,"space-id":b.value,"project-names":Z.value,"manages-all-projects":ce(e.agentId),"work-summary":ue(e.agentId),"work-state":v(oe),pinned:v(z).includes(e.agentId),"pin-pending":v(B)===e.agentId,onTogglePin:t=>de(e.agentId,t)},null,8,[`agent`,`space-id`,`project-names`,`manages-all-projects`,`work-summary`,`work-state`,`pinned`,`pin-pending`,`onTogglePin`])]))),128))])):x(``,!0),c(ne,{open:J.value,"personal-space-id":b.value,projects:Y.value,"default-project-ids":q.value??[],onClose:t[6]||=e=>J.value=!1,onRecruited:fe},null,8,[`open`,`personal-space-id`,`projects`,`default-project-ids`])],8,be))}}),[[`__scopeId`,`data-v-56bb6321`]]);export{Fe as default};
@@ -1 +1 @@
1
- .agent-card-pin[data-v-3cd2dc47]{width:var(--control-height-sm);min-height:var(--control-height-sm);color:var(--color-muted);flex:none;padding:0}.agent-card-pin[data-v-3cd2dc47]:hover:not(:disabled),.agent-card-pin[aria-pressed=true][data-v-3cd2dc47]{color:var(--color-accent)}.agent-card-pin[aria-pressed=true][data-v-3cd2dc47]{border-color:var(--color-accent-line);background:var(--color-accent-soft)}.agent-card-pin svg[data-v-3cd2dc47]{width:18px;height:18px}.agent-card-projects[data-v-3cd2dc47]{flex:1}.agent-card-project-list .agent-card-project-badge[data-v-3cd2dc47]{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;display:block;overflow:hidden}.agent-card-pin[data-v-3cd2dc47] .growth-loading--inline{justify-content:center;width:100%}.agent-card-pin[data-v-3cd2dc47] .growth-loading__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.employee-workbench-link img[data-v-4906fde1]{object-fit:cover;border-radius:5px;width:18px;height:18px}.agent-directory-pin-error[data-v-56bb6321]{justify-content:space-between;align-items:center;gap:var(--space-3,12px);margin:calc(var(--space-6,24px) * -1) 0 var(--space-4,16px);color:var(--color-danger);font-size:13px;display:flex}.agent-directory-pin-error .quiet-button[data-v-56bb6321]{min-height:var(--control-height-sm);padding:4px 9px;font-size:12px}
1
+ .agent-card-pin[data-v-5a7e5736]{width:var(--control-height-sm);min-height:var(--control-height-sm);color:var(--color-muted);flex:none;padding:0}.agent-card-pin[data-v-5a7e5736]:hover:not(:disabled),.agent-card-pin[aria-pressed=true][data-v-5a7e5736]{color:var(--color-accent)}.agent-card-pin[aria-pressed=true][data-v-5a7e5736]{border-color:var(--color-accent-line);background:var(--color-accent-soft)}.agent-card-pin svg[data-v-5a7e5736]{width:18px;height:18px}.agent-card-projects[data-v-5a7e5736]{flex:1}.agent-card-project-list .agent-card-project-badge[data-v-5a7e5736]{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;display:block;overflow:hidden}.agent-card-pin[data-v-5a7e5736] .growth-loading--inline{justify-content:center;width:100%}.agent-card-pin[data-v-5a7e5736] .growth-loading__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.employee-workbench-link img[data-v-4906fde1]{object-fit:cover;border-radius:5px;width:18px;height:18px}.agent-directory-pin-error[data-v-56bb6321]{justify-content:space-between;align-items:center;gap:var(--space-3,12px);margin:calc(var(--space-6,24px) * -1) 0 var(--space-4,16px);color:var(--color-danger);font-size:13px;display:flex}.agent-directory-pin-error .quiet-button[data-v-56bb6321]{min-height:var(--control-height-sm);padding:4px 9px;font-size:12px}
@@ -1 +1 @@
1
- import{A as e,B as t,E as n,H as r,I as i,M as ee,N as te,P as a,Q as o,S as s,T as c,X as ne,a as l,b as u,g as d,h as re,n as ie,ot as f,rt as p,v as m,w as ae,x as h,y as g}from"./i18n-oJFlt8hW.js";import{t as oe}from"./console-Cw7TzOSC.js";import{a as _,i as se,n as ce,r as v,s as y}from"./client-DnwnUBQV.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as x}from"./UiSelect-K29jnV-1.js";import{t as S}from"./UiDisclosure-_IxeiexW.js";import{r as le,t as ue}from"./identity-DSGS4CZc.js";var C={class:`text-field`},w=[`id`,`value`,`name`,`placeholder`,`disabled`,`required`,`rows`],T=[`id`,`value`,`name`,`type`,`placeholder`,`disabled`,`required`],E=b(n({inheritAttrs:!1,__name:`TextField`,props:{modelValue:{},label:{},controlId:{default:void 0},type:{default:`text`},placeholder:{default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},multiline:{type:Boolean,default:!1},rows:{default:3},name:{default:void 0}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=n;function i(e){r(`update:modelValue`,e.target.value)}return(n,r)=>(a(),s(`label`,C,[g(`span`,null,f(t.label),1),t.multiline?(a(),s(`textarea`,e({key:0},n.$attrs,{id:t.controlId,value:t.modelValue,name:t.name,placeholder:t.placeholder,disabled:t.disabled,required:t.required,rows:t.rows,onInput:i}),null,16,w)):(a(),s(`input`,e({key:1},n.$attrs,{id:t.controlId,value:t.modelValue,name:t.name,type:t.type,placeholder:t.placeholder,disabled:t.disabled,required:t.required,onInput:i}),null,16,T))]))}}),[[`__scopeId`,`data-v-8c90420d`]]),de={class:`view connections-view`},fe=[`aria-label`],pe=[`data-status`],me={class:`service-state`},he=[`data-status`],ge={class:`connection-title-row`},_e={class:`service-state`},ve={class:`external-knowledge-section`},ye={class:`section-title section-title-with-help`},be=[`href`,`aria-label`,`title`],xe={class:`external-binding-count`},Se={class:`external-binding-list`},Ce=[`data-status`],we={class:`external-binding-copy`},Te={class:`external-binding-targets`},Ee=[`data-status`],De={key:0},Oe={key:1},ke={class:`external-binding-actions`},Ae=[`disabled`,`onClick`],je=[`disabled`,`onClick`],Me=[`disabled`,`onClick`],Ne=[`disabled`,`onClick`],Pe={key:0,class:`external-binding-editor`},Fe={class:`external-target-mode-list`},Ie={class:`external-binding-editor-actions`},Le=[`disabled`],Re=[`disabled`,`onClick`],ze={key:0,class:`compact-empty`},Be={class:`wide-field`},Ve={class:`trusted-code-badge`},He=[`disabled`],Ue={class:`section-title section-title-with-help`},We=[`href`,`aria-label`,`title`],Ge={class:`conflict-policy-controls`},Ke={key:2,role:`alert`},qe={key:1,class:`connection-subscriptions`},Je={class:`section-title`},Ye={class:`subscription-list`},Xe=[`disabled`,`onClick`],Ze={key:0,class:`empty-state`},Qe=[`disabled`],D=n({__name:`ConnectionsPage`,setup(e){let n=oe(),b=o(``),C=o(!1),w=o(``),T=o([]),D=o([]),O=o(!1),k=o(!1),A=o(``),j=o(null),M=o([]),N=o({}),P=o(``),F=o(`ask_human`),I=o(!1),L=o(!1),R=o(!1),z=`ask_human`,B=0,V=null,H=ne({name:``,connectorType:`mcp`,mode:`hybrid`,personalProjectIds:[],mcpTransport:`http`,mcpUrl:``,mcpCommand:``,mcpArgs:``,mcpTokenEnv:``,mcpResourcePrefix:``,notionTokenEnv:``,notionPageIds:``,notionDataSourceIds:``,feishuTokenEnv:``,feishuRegion:`cn`,feishuSpaceId:``,feishuRootNodeToken:``,feishuNodeTokens:``,feishuWebBaseUrl:``,retrievalUrl:``,retrievalTokenEnv:``,retrievalKnowledgeIds:``,retrievalScoreThreshold:`0.5`,customModule:``,customEnvironmentNames:``,customSourceJson:`{}`}),$e=m(()=>n.state?.providers?.personal?.status===`ready`),et=m(()=>n.state?.providers?.workspaces??[]),tt=m(()=>et.value.filter(({status:e})=>e===`ready`).length),nt=m(()=>{let e=n.state?.capabilities,t=[e?.browsePublicProjects?l(`pages.connections.publicCapability.discovery`):null,e?.subscribeProject?l(`pages.connections.publicCapability.subscription`):null,e?.publishProject?l(`pages.connections.publicCapability.publishing`):null,e?.submitKnowledge?l(`pages.connections.publicCapability.contribution`):null,e?.reviewProposals?l(`pages.connections.publicCapability.review`):null].filter(e=>!!e);return t.length?new Intl.ListFormat(ie(),{style:`long`,type:`conjunction`}).format(t):l(`pages.connections.notAvailable`)}),U=m(()=>n.state?.subscriptions??[]),W=m(()=>n.state?.personalProjects??[]),rt=m(()=>Ft(`connect-external-knowledge`)),it=m(()=>Ft(`external-knowledge-conflict-policy`)),at=m(()=>new Set(U.value.map(({provider_url:e,project_id:t})=>`${e}::${t}`))),ot=m(()=>(n.state?.projects??[]).filter(e=>!at.value.has(K(e)))),st=m(()=>ot.value.map(e=>({value:K(e),label:e.name,meta:`#${ue(e.id,26)}`,search:le(e.id)}))),ct=m(()=>T.value.map(e=>({value:e.type,label:e.name,meta:e.description}))),G=m(()=>W.value.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${ue(e.project_id,26)}`,search:le(e.project_id)}))),lt=m(()=>[{value:`hybrid`,label:l(`pages.connections.mode.hybrid`),disabled:!Y(H.connectorType,`hybrid`)},{value:`mirror`,label:l(`pages.connections.mode.mirror`),disabled:!Y(H.connectorType,`mirror`)},{value:`live`,label:l(`pages.connections.mode.live`),disabled:!Y(H.connectorType,`live`)}]),ut=m(()=>[{value:`http`,label:`Streamable HTTP`},{value:`stdio`,label:`stdio`}]),dt=m(()=>[{value:`cn`,label:`Feishu`},{value:`global`,label:`Lark`}]),ft=m(()=>[{value:`ask_human`,label:l(`pages.connections.askHuman`)},{value:`agent_decide`,label:l(`pages.connections.agentDecide`)}]);t(W,e=>{let t=new Set(e.map(({project_id:e})=>e)),n=e[0]?.project_id??``;H.personalProjectIds=H.personalProjectIds.filter(e=>t.has(e)),!H.personalProjectIds.length&&n&&(H.personalProjectIds=[n]),M.value=M.value.filter(e=>t.has(e)),t.has(P.value)||(P.value=n)},{immediate:!0}),t(()=>[n.activePersonalSpace?.id,P.value],()=>void J(),{immediate:!0,flush:`sync`}),t(()=>H.connectorType,e=>{Y(e,H.mode)||(H.mode=Ot(e))}),te(()=>void q()),ee(()=>{B+=1,V?.abort()});function K(e){return`${e.providerUrl}::${e.id}`}async function pt(){let e=n.activePersonalSpace?.id,t=ot.value.find(e=>K(e)===b.value);if(!(!e||!t||C.value)){C.value=!0,w.value=`pages.connections.subscribing`;try{await _(`/api/subscriptions`,{personalSpaceId:e,projectId:t.id,providerUrl:t.providerUrl,projectName:t.name}),b.value=``,n.notify(l(`pages.connections.subscribed`,{name:t.name})),w.value=`pages.connections.loadingSubscriptions`,await n.refresh()}catch(e){n.reportError(e)}finally{C.value=!1}}}async function mt(e){let t=n.activePersonalSpace?.id;if(!(!t||C.value)){C.value=!0,w.value=`pages.connections.unsubscribing`;try{let r=new URLSearchParams({personalSpaceId:t,providerUrl:e.provider_url});await ce(`/api/subscriptions/${encodeURIComponent(e.project_id)}?${r}`),n.notify(l(`pages.connections.unsubscribed`,{name:e.project_name??e.project_id})),w.value=`pages.connections.loadingSubscriptions`,await n.refresh()}catch(e){n.reportError(e)}finally{C.value=!1}}}async function q(){k.value=!0;try{let[e,t]=await Promise.all([v(`/api/external-knowledge/connectors`),v(`/api/external-knowledge/bindings`)]);T.value=e,D.value=t}catch(e){n.reportError(e)}finally{k.value=!1}}async function ht(){let e=n.activePersonalSpace?.id;if(!(!e||!H.personalProjectIds.length||O.value)){O.value=!0,A.value=`pages.connections.creatingBinding`;try{let{connectorConfig:t,source:r}=gt();await _(`/api/external-knowledge/bindings`,{name:H.name.trim(),connectorType:H.connectorType,connectorConfig:t,source:r,targets:H.personalProjectIds.map(t=>({personalSpaceId:e,personalProjectId:t,mode:H.mode}))}),n.notify(l(`pages.connections.externalCreated`,{name:H.name.trim()})),H.name=``,await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}function gt(){if(H.connectorType===`notion`)return{connectorConfig:{tokenEnv:$(H.notionTokenEnv,`Notion token env`)},source:{pageIds:Z(H.notionPageIds),dataSourceIds:Z(H.notionDataSourceIds)}};if(H.connectorType===`feishu`)return{connectorConfig:{accessTokenEnv:$(H.feishuTokenEnv,`Feishu token env`),region:H.feishuRegion},source:Q({spaceId:H.feishuSpaceId.trim(),rootNodeToken:H.feishuRootNodeToken.trim(),nodeTokens:Z(H.feishuNodeTokens),webBaseUrl:H.feishuWebBaseUrl.trim()})};if(H.connectorType===`retrieval_api`){let e=Number(H.retrievalScoreThreshold);if(!Number.isFinite(e)||e<0||e>1)throw TypeError(l(`pages.connections.scoreThresholdInvalid`));return{connectorConfig:Q({url:$(H.retrievalUrl,`Retrieval API URL`),tokenEnv:H.retrievalTokenEnv.trim(),scoreThreshold:e}),source:{knowledgeIds:Pt(H.retrievalKnowledgeIds,`Knowledge IDs`)}}}if(H.connectorType===`custom`){let e=JSON.parse(H.customSourceJson);if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(l(`pages.connections.customSourceObject`));return{connectorConfig:{module:$(H.customModule,`Custom connector module`),environmentNames:Z(H.customEnvironmentNames)},source:e}}return{connectorConfig:H.mcpTransport===`stdio`?Q({transport:`stdio`,command:H.mcpCommand.trim(),args:Z(H.mcpArgs)}):Q({transport:`http`,url:$(H.mcpUrl,`MCP URL`),tokenEnv:H.mcpTokenEnv.trim()}),source:Q({resourceUriPrefix:H.mcpResourcePrefix.trim()})}}async function _t(e){await yt(e,`check`)}async function vt(e){await yt(e,`sync`)}async function yt(e,t){if(!O.value){O.value=!0,A.value=t===`sync`?`pages.connections.syncingBinding`:`pages.connections.checkingBinding`;try{let r=await _(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/${t}`,{});n.notify(l(t===`sync`&&r.skippedCredentials?`pages.connections.externalSyncedWithSkipped`:t===`sync`?`pages.connections.externalSynced`:`pages.connections.externalChecked`,{name:e.name,count:r.skippedCredentials??0})),await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}async function bt(e){if(!O.value){O.value=!0,A.value=`pages.connections.disconnectingBinding`;try{await ce(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}`),n.notify(l(`pages.connections.externalDeleted`,{name:e.name})),await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}function xt(e){let t=X(e);j.value=e.id,M.value=t.map(({personalProjectId:e})=>e),N.value=Object.fromEntries(t.map(({personalProjectId:e,mode:t})=>[e,t]))}function St(){j.value=null,M.value=[],N.value={}}function Ct(e){let t=D.value.find(({id:e})=>e===j.value);if(!t)return;let n=N.value,r=Ot(t.connectorType);N.value=Object.fromEntries(e.map(e=>[e,n[e]??t.mode??r]))}function wt(e,t){N.value={...N.value,[e]:t}}async function Tt(e){let t=n.activePersonalSpace?.id;if(!(!t||!M.value.length||O.value)){O.value=!0,A.value=`pages.connections.savingBindingTargets`;try{await se(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/targets`,{expectedTargetsVersion:e.targetsVersion,targets:M.value.map(n=>({personalSpaceId:t,personalProjectId:n,mode:N.value[n]??e.mode}))}),n.notify(l(`pages.connections.projectsUpdated`,{name:e.name})),St(),await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}async function J(){let e=++B;if(V?.abort(),V=null,F.value=`ask_human`,R.value=!1,L.value=!1,!n.activePersonalSpace?.id||!P.value)return;let t=new AbortController;V=t,L.value=!0;try{let n=await v(`/api/external-knowledge/conflict-policy?${new URLSearchParams({personalProjectId:P.value})}`,{signal:t.signal});if(e!==B)return;F.value=n.mode,z=n.mode}catch{if(e!==B)return;R.value=!0}finally{e===B&&(L.value=!1,V=null)}}async function Et(){let e=n.activePersonalSpace?.id;if(!e||!P.value||I.value||L.value||R.value)return;let t=B;I.value=!0;try{let r=await se(`/api/external-knowledge/conflict-policy?${new URLSearchParams({personalProjectId:P.value})}`,{personalSpaceId:e,personalProjectId:P.value,mode:F.value});if(t!==B)return;F.value=r.mode,z=r.mode,n.notify(l(`pages.connections.conflictSaved`))}catch(e){if(t!==B)return;F.value=z,n.reportError(e)}finally{I.value=!1}}function Dt(e){return T.value.find(t=>t.type===e)?.name??e}function Y(e,t){let n=T.value.find(t=>t.type===e)?.capabilities;return!n?.length||(t===`live`||t===`hybrid`?n.includes(`retrieve`):!0)&&(t===`mirror`||t===`hybrid`?n.includes(`sync`):!0)}function Ot(e){return[`hybrid`,`mirror`,`live`].find(t=>Y(e,t))??`live`}function kt(e){return[`hybrid`,`mirror`,`live`].map(t=>({value:t,label:l(`pages.connections.mode.${t}`),disabled:!Y(e,t)}))}function X(e){return e.targets?.length?e.targets:[{id:e.id,...e.target,mode:e.mode,status:e.status,sync:e.sync}]}function At(e){return X(e).some(({mode:e})=>e!==`live`)}function jt(e){return W.value.find(({project_id:t})=>t===e)?.profile.name??e}function Mt(e){return X(e).find(({sync:e})=>e?.error)?.sync?.error??e.sync?.error}function Nt(e){return X(e).reduce((e,t)=>e+(t.sync?.skippedCredentials??0),0)}function Z(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function Pt(e,t){let n=Z(e);if(!n.length)throw TypeError(`${t} is required`);return n}function Q(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==``&&(!Array.isArray(e)||e.length>0)))}function $(e,t){if(!e.trim())throw TypeError(`${t} is required`);return e.trim()}function Ft(e){return`https://github.com/JevonsCode/fuli/blob/main/${ie()===`zh-CN`?`README.zh-CN.md`:`README.md`}#${e}`}return(e,t)=>(a(),s(`section`,de,[g(`div`,{class:`service-connection-grid`,"aria-label":p(l)(`pages.connections.statusAria`)},[g(`article`,{class:`service-connection-card`,"data-status":$e.value?`ready`:`error`},[g(`header`,null,[t[30]||=g(`span`,{class:`service-connection-icon local`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-personal-project`})],-1),g(`div`,null,[g(`h3`,null,f(p(l)(`pages.connections.localGraphiti`)),1)]),g(`span`,me,f($e.value?p(l)(`common.status.connected`):p(l)(`common.status.connectionError`)),1)]),c(S,{title:p(l)(`ui.connectionDetails`)},{default:r(()=>[g(`dl`,null,[g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.storage`)),1),t[31]||=g(`dd`,null,`Neo4j`,-1)]),g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.purpose`)),1),g(`dd`,null,f(p(l)(`pages.connections.localPurpose`)),1)])])]),_:1},8,[`title`])],8,pe),g(`article`,{class:`service-connection-card`,"data-status":p(n).publicRuntimeStatus},[g(`header`,null,[t[33]||=g(`span`,{class:`service-connection-icon public`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-public-project`})],-1),g(`div`,ge,[g(`h3`,null,f(p(l)(`pages.connections.publicService`)),1),t[32]||=g(`span`,{class:`feature-badge beta`},`BETA`,-1)]),g(`span`,_e,f(p(n).publicRuntimeStatus===`ready`?p(l)(`common.status.connected`):p(n).publicRuntimeStatus===`error`?p(l)(`common.status.connectionError`):p(l)(`common.status.notConnected`)),1)]),g(`dl`,null,[g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.currentStatus`)),1),g(`dd`,null,f(p(n).publicRuntimeStatus===`ready`?p(l)(`pages.connections.sharedServicesReady`,{count:tt.value||et.value.length}):p(l)(`pages.connections.notAvailable`)),1)]),g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.purpose`)),1),g(`dd`,null,f(nt.value),1)])])],8,he)],8,fe),g(`section`,ve,[g(`div`,ye,[g(`h3`,null,f(p(l)(`pages.connections.externalTitle`)),1),g(`a`,{class:`section-help-link`,"data-testid":`external-knowledge-help`,href:rt.value,"aria-label":p(l)(`pages.connections.externalHelp`),title:p(l)(`pages.connections.externalHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,be),g(`span`,xe,f(p(l)(`pages.connections.bindingCount`,{count:D.value.length})),1)]),k.value||O.value?(a(),u(y,{key:0,variant:`compact`,label:p(l)(k.value?`pages.connections.loadingBindings`:A.value)},null,8,[`label`])):h(``,!0),g(`div`,Se,[(a(!0),s(d,null,i(D.value,e=>(a(),s(`article`,{key:e.id,class:`external-binding-row`,"data-status":e.status},[t[34]||=g(`i`,{"aria-hidden":`true`},null,-1),g(`div`,we,[g(`strong`,null,f(e.name),1),g(`span`,null,f(Dt(e.connectorType)),1),g(`div`,Te,[g(`b`,null,f(p(l)(`pages.connections.boundTo`)),1),(a(!0),s(d,null,i(X(e),e=>(a(),s(`span`,{key:e.id,class:`external-binding-target-chip`,"data-status":e.status},f(jt(e.personalProjectId))+` · `+f(p(l)(`pages.connections.mode.${e.mode}`)),9,Ee))),128))]),Mt(e)?(a(),s(`small`,De,f(Mt(e)),1)):Nt(e)?(a(),s(`small`,Oe,f(p(l)(`pages.connections.credentialsSkipped`,{count:Nt(e)})),1)):h(``,!0)]),g(`div`,ke,[g(`button`,{class:`quiet-button`,type:`button`,disabled:O.value,onClick:t=>_t(e)},f(p(l)(`pages.connections.check`)),9,Ae),g(`button`,{class:`quiet-button external-sync-action`,type:`button`,disabled:O.value||!At(e),onClick:t=>vt(e)},f(p(l)(`pages.connections.sync`)),9,je),g(`button`,{class:`quiet-button`,type:`button`,disabled:O.value,onClick:t=>xt(e)},f(p(l)(`pages.connections.manageProjects`)),9,Me),g(`button`,{class:`quiet-button danger`,type:`button`,disabled:O.value,onClick:t=>bt(e)},f(p(l)(`pages.connections.disconnect`)),9,Ne)]),j.value===e.id?(a(),s(`div`,Pe,[g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.targetProjects`)),1),c(x,{multiple:``,modelValue:M.value,"onUpdate:modelValue":t[0]||=e=>M.value=e,"control-id":`external-projects-${e.id}`,label:p(l)(`pages.connections.targetProjects`),options:G.value,disabled:O.value,required:``,searchable:``,onChange:Ct},null,8,[`modelValue`,`control-id`,`label`,`options`,`disabled`])]),g(`div`,Fe,[(a(!0),s(d,null,i(M.value,t=>(a(),s(`div`,{key:t,class:`external-target-mode-row`},[g(`span`,null,f(jt(t)),1),c(x,{"model-value":N.value[t]??e.mode,"control-id":`external-target-mode-${e.id}-${t}`,label:p(l)(`pages.connections.bindingMode`),options:kt(e.connectorType),disabled:O.value,"onUpdate:modelValue":e=>wt(t,e)},null,8,[`model-value`,`control-id`,`label`,`options`,`disabled`,`onUpdate:modelValue`])]))),128))]),g(`div`,Ie,[g(`button`,{class:`quiet-button`,type:`button`,disabled:O.value,onClick:St},f(p(l)(`common.actions.cancel`)),9,Le),g(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!M.value.length,onClick:t=>Tt(e)},f(p(l)(`pages.connections.saveProjects`)),9,Re)])])):h(``,!0)],8,Ce))),128)),!k.value&&!D.value.length?(a(),s(`div`,ze,f(p(l)(`pages.connections.noExternalBindings`)),1)):h(``,!0)]),c(S,{title:p(l)(`pages.connections.connect`),open:!D.value.length},{default:r(()=>[g(`form`,{class:`external-binding-form`,onSubmit:re(ht,[`prevent`])},[c(E,{modelValue:H.name,"onUpdate:modelValue":t[1]||=e=>H.name=e,label:p(l)(`pages.connections.bindingName`),"data-testid":`external-name`,required:``},null,8,[`modelValue`,`label`]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.connector`)),1),c(x,{modelValue:H.connectorType,"onUpdate:modelValue":t[2]||=e=>H.connectorType=e,"control-id":`external-connector`,label:p(l)(`pages.connections.connector`),options:ct.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.targetProjects`)),1),c(x,{multiple:``,modelValue:H.personalProjectIds,"onUpdate:modelValue":t[3]||=e=>H.personalProjectIds=e,"control-id":`external-projects`,label:p(l)(`pages.connections.targetProjects`),options:G.value,disabled:O.value,required:``,searchable:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.bindingMode`)),1),c(x,{modelValue:H.mode,"onUpdate:modelValue":t[4]||=e=>H.mode=e,"control-id":`external-binding-mode`,label:p(l)(`pages.connections.bindingMode`),options:lt.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),H.connectorType===`mcp`?(a(),s(d,{key:0},[g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.transport`)),1),c(x,{modelValue:H.mcpTransport,"onUpdate:modelValue":t[5]||=e=>H.mcpTransport=e,"control-id":`external-mcp-transport`,label:p(l)(`pages.connections.transport`),options:ut.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),H.mcpTransport===`http`?(a(),u(E,{key:0,modelValue:H.mcpUrl,"onUpdate:modelValue":t[6]||=e=>H.mcpUrl=e,label:`MCP URL`,"data-testid":`mcp-url`,type:`url`,required:``},null,8,[`modelValue`])):(a(),u(E,{key:1,modelValue:H.mcpCommand,"onUpdate:modelValue":t[7]||=e=>H.mcpCommand=e,label:p(l)(`pages.connections.command`),required:``},null,8,[`modelValue`,`label`])),H.mcpTransport===`stdio`?(a(),u(E,{key:2,modelValue:H.mcpArgs,"onUpdate:modelValue":t[8]||=e=>H.mcpArgs=e,label:p(l)(`pages.connections.arguments`)},null,8,[`modelValue`,`label`])):(a(),u(E,{key:3,modelValue:H.mcpTokenEnv,"onUpdate:modelValue":t[9]||=e=>H.mcpTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`),"data-testid":`mcp-token-env`},null,8,[`modelValue`,`label`])),c(E,{modelValue:H.mcpResourcePrefix,"onUpdate:modelValue":t[10]||=e=>H.mcpResourcePrefix=e,label:p(l)(`pages.connections.resourcePrefix`),"data-testid":`mcp-resource-prefix`},null,8,[`modelValue`,`label`])],64)):H.connectorType===`notion`?(a(),s(d,{key:1},[c(E,{modelValue:H.notionTokenEnv,"onUpdate:modelValue":t[11]||=e=>H.notionTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.notionPageIds,"onUpdate:modelValue":t[12]||=e=>H.notionPageIds=e,label:`Page IDs`},null,8,[`modelValue`]),c(E,{modelValue:H.notionDataSourceIds,"onUpdate:modelValue":t[13]||=e=>H.notionDataSourceIds=e,label:`Data Source IDs`},null,8,[`modelValue`])],64)):H.connectorType===`feishu`?(a(),s(d,{key:2},[c(E,{modelValue:H.feishuTokenEnv,"onUpdate:modelValue":t[14]||=e=>H.feishuTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.region`)),1),c(x,{modelValue:H.feishuRegion,"onUpdate:modelValue":t[15]||=e=>H.feishuRegion=e,"control-id":`external-feishu-region`,label:p(l)(`pages.connections.region`),options:dt.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),c(E,{modelValue:H.feishuSpaceId,"onUpdate:modelValue":t[16]||=e=>H.feishuSpaceId=e,label:`Space ID`},null,8,[`modelValue`]),c(E,{modelValue:H.feishuRootNodeToken,"onUpdate:modelValue":t[17]||=e=>H.feishuRootNodeToken=e,label:`Root Node Token`},null,8,[`modelValue`]),c(E,{modelValue:H.feishuNodeTokens,"onUpdate:modelValue":t[18]||=e=>H.feishuNodeTokens=e,label:`Node Tokens`},null,8,[`modelValue`]),c(E,{modelValue:H.feishuWebBaseUrl,"onUpdate:modelValue":t[19]||=e=>H.feishuWebBaseUrl=e,label:`Web URL`,type:`url`},null,8,[`modelValue`])],64)):H.connectorType===`retrieval_api`?(a(),s(d,{key:3},[c(E,{modelValue:H.retrievalUrl,"onUpdate:modelValue":t[20]||=e=>H.retrievalUrl=e,label:p(l)(`pages.connections.retrievalUrl`),type:`url`,required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.retrievalTokenEnv,"onUpdate:modelValue":t[21]||=e=>H.retrievalTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`)},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.retrievalKnowledgeIds,"onUpdate:modelValue":t[22]||=e=>H.retrievalKnowledgeIds=e,label:p(l)(`pages.connections.knowledgeIds`),required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.retrievalScoreThreshold,"onUpdate:modelValue":t[23]||=e=>H.retrievalScoreThreshold=e,label:p(l)(`pages.connections.scoreThreshold`),inputmode:`decimal`,required:``},null,8,[`modelValue`,`label`])],64)):(a(),s(d,{key:4},[c(E,{modelValue:H.customModule,"onUpdate:modelValue":t[24]||=e=>H.customModule=e,label:p(l)(`pages.connections.module`),required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.customEnvironmentNames,"onUpdate:modelValue":t[25]||=e=>H.customEnvironmentNames=e,label:p(l)(`pages.connections.environmentNames`)},null,8,[`modelValue`,`label`]),g(`div`,Be,[c(E,{modelValue:H.customSourceJson,"onUpdate:modelValue":t[26]||=e=>H.customSourceJson=e,label:p(l)(`pages.connections.sourceJson`),multiline:``,required:``},null,8,[`modelValue`,`label`])]),g(`span`,Ve,f(p(l)(`pages.connections.trustedCode`)),1)],64)),g(`button`,{class:`primary-action external-create-action`,type:`submit`,disabled:O.value||!W.value.length||!H.personalProjectIds.length},[t[35]||=g(`span`,{class:`external-create-action-icon`,"aria-hidden":`true`},null,-1),g(`span`,null,f(p(l)(`pages.connections.connect`)),1)],8,He)],32)]),_:1},8,[`title`,`open`])]),W.value.length?(a(),u(S,{key:0,class:`conflict-policy-section`,open:R.value,title:p(l)(`pages.connections.conflictTitle`)},{default:r(()=>[g(`div`,Ue,[g(`a`,{class:`section-help-link`,"data-testid":`conflict-policy-help`,href:it.value,"aria-label":p(l)(`pages.connections.conflictHelp`),title:p(l)(`pages.connections.conflictHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,We)]),g(`div`,Ge,[g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.targetProject`)),1),c(x,{modelValue:P.value,"onUpdate:modelValue":t[27]||=e=>P.value=e,"control-id":`external-conflict-project`,label:p(l)(`pages.connections.targetProject`),options:G.value,disabled:I.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.conflictAction`)),1),c(x,{modelValue:F.value,"onUpdate:modelValue":t[28]||=e=>F.value=e,"control-id":`external-conflict-mode`,label:p(l)(`pages.connections.conflictAction`),options:ft.value,disabled:I.value||L.value||R.value||!P.value,required:``,onChange:Et},null,8,[`modelValue`,`label`,`options`,`disabled`])])]),L.value?(a(),u(y,{key:0,variant:`compact`,label:p(l)(`pages.connections.loadingConflictPolicy`)},null,8,[`label`])):h(``,!0),I.value?(a(),u(y,{key:1,variant:`inline`,label:p(l)(`pages.connections.savingConflictPolicy`)},null,8,[`label`])):R.value?(a(),s(`div`,Ke,[g(`p`,null,f(p(l)(`common.errors.loadFailed`)),1),g(`button`,{class:`secondary-action`,type:`button`,onClick:J},f(p(l)(`common.actions.retry`)),1)])):h(``,!0)]),_:1},8,[`open`,`title`])):h(``,!0),p(n).state?.capabilities?.subscribeProject?(a(),s(`section`,qe,[g(`div`,Je,[g(`h3`,null,[ae(f(p(l)(`pages.connections.subscriptionsTitle`))+` `,1),t[36]||=g(`span`,{class:`feature-badge beta`},`BETA`,-1)])]),C.value?(a(),u(y,{key:0,variant:`inline`,label:p(l)(w.value)},null,8,[`label`])):h(``,!0),g(`div`,Ye,[(a(!0),s(d,null,i(U.value,e=>(a(),s(`div`,{key:`${e.provider_url}:${e.project_id}`,class:`subscription-row`},[t[37]||=g(`span`,null,`↗`,-1),g(`div`,null,[g(`strong`,null,f(e.project_name??e.project_id),1),g(`span`,null,f(p(l)(`pages.connections.sharedProject`)),1)]),g(`button`,{class:`secondary-action subscription-action`,type:`button`,disabled:C.value,onClick:t=>mt(e)},f(p(l)(`pages.connections.unsubscribe`)),9,Xe)]))),128)),U.value.length?h(``,!0):(a(),s(`div`,Ze,f(p(l)(`pages.connections.noSubscriptions`)),1))]),g(`form`,{class:`subscription-form`,onSubmit:re(pt,[`prevent`])},[c(x,{modelValue:b.value,"onUpdate:modelValue":t[29]||=e=>b.value=e,options:st.value,label:p(l)(`pages.connections.sharedProjectLabel`),placeholder:p(l)(`pages.connections.choosePublicProject`),searchable:``,required:``,disabled:C.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`]),g(`button`,{type:`submit`,disabled:C.value||!b.value||!p(n).activePersonalSpace},f(p(l)(`pages.connections.subscribe`)),9,Qe)],32)])):h(``,!0)]))}});export{D as default};
1
+ import{A as e,B as t,E as n,H as r,I as i,M as ee,N as te,P as a,Q as o,S as s,T as c,X as ne,a as l,b as u,g as d,h as re,n as ie,ot as f,rt as p,v as m,w as ae,x as h,y as g}from"./i18n-B4Fp9Oa5.js";import{t as oe}from"./console-C2Lfifq-.js";import{a as _,i as se,n as ce,r as v,s as y}from"./client-DodUFQDp.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as x}from"./UiSelect-DDyct4mf.js";import{t as S}from"./UiDisclosure-B-T7BmB5.js";import{r as le,t as ue}from"./identity-DG_za-J7.js";var C={class:`text-field`},w=[`id`,`value`,`name`,`placeholder`,`disabled`,`required`,`rows`],T=[`id`,`value`,`name`,`type`,`placeholder`,`disabled`,`required`],E=b(n({inheritAttrs:!1,__name:`TextField`,props:{modelValue:{},label:{},controlId:{default:void 0},type:{default:`text`},placeholder:{default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},multiline:{type:Boolean,default:!1},rows:{default:3},name:{default:void 0}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=n;function i(e){r(`update:modelValue`,e.target.value)}return(n,r)=>(a(),s(`label`,C,[g(`span`,null,f(t.label),1),t.multiline?(a(),s(`textarea`,e({key:0},n.$attrs,{id:t.controlId,value:t.modelValue,name:t.name,placeholder:t.placeholder,disabled:t.disabled,required:t.required,rows:t.rows,onInput:i}),null,16,w)):(a(),s(`input`,e({key:1},n.$attrs,{id:t.controlId,value:t.modelValue,name:t.name,type:t.type,placeholder:t.placeholder,disabled:t.disabled,required:t.required,onInput:i}),null,16,T))]))}}),[[`__scopeId`,`data-v-8c90420d`]]),de={class:`view connections-view`},fe=[`aria-label`],pe=[`data-status`],me={class:`service-state`},he=[`data-status`],ge={class:`connection-title-row`},_e={class:`service-state`},ve={class:`external-knowledge-section`},ye={class:`section-title section-title-with-help`},be=[`href`,`aria-label`,`title`],xe={class:`external-binding-count`},Se={class:`external-binding-list`},Ce=[`data-status`],we={class:`external-binding-copy`},Te={class:`external-binding-targets`},Ee=[`data-status`],De={key:0},Oe={key:1},ke={class:`external-binding-actions`},Ae=[`disabled`,`onClick`],je=[`disabled`,`onClick`],Me=[`disabled`,`onClick`],Ne=[`disabled`,`onClick`],Pe={key:0,class:`external-binding-editor`},Fe={class:`external-target-mode-list`},Ie={class:`external-binding-editor-actions`},Le=[`disabled`],Re=[`disabled`,`onClick`],ze={key:0,class:`compact-empty`},Be={class:`wide-field`},Ve={class:`trusted-code-badge`},He=[`disabled`],Ue={class:`section-title section-title-with-help`},We=[`href`,`aria-label`,`title`],Ge={class:`conflict-policy-controls`},Ke={key:2,role:`alert`},qe={key:1,class:`connection-subscriptions`},Je={class:`section-title`},Ye={class:`subscription-list`},Xe=[`disabled`,`onClick`],Ze={key:0,class:`empty-state`},Qe=[`disabled`],D=n({__name:`ConnectionsPage`,setup(e){let n=oe(),b=o(``),C=o(!1),w=o(``),T=o([]),D=o([]),O=o(!1),k=o(!1),A=o(``),j=o(null),M=o([]),N=o({}),P=o(``),F=o(`ask_human`),I=o(!1),L=o(!1),R=o(!1),z=`ask_human`,B=0,V=null,H=ne({name:``,connectorType:`mcp`,mode:`hybrid`,personalProjectIds:[],mcpTransport:`http`,mcpUrl:``,mcpCommand:``,mcpArgs:``,mcpTokenEnv:``,mcpResourcePrefix:``,notionTokenEnv:``,notionPageIds:``,notionDataSourceIds:``,feishuTokenEnv:``,feishuRegion:`cn`,feishuSpaceId:``,feishuRootNodeToken:``,feishuNodeTokens:``,feishuWebBaseUrl:``,retrievalUrl:``,retrievalTokenEnv:``,retrievalKnowledgeIds:``,retrievalScoreThreshold:`0.5`,customModule:``,customEnvironmentNames:``,customSourceJson:`{}`}),$e=m(()=>n.state?.providers?.personal?.status===`ready`),et=m(()=>n.state?.providers?.workspaces??[]),tt=m(()=>et.value.filter(({status:e})=>e===`ready`).length),nt=m(()=>{let e=n.state?.capabilities,t=[e?.browsePublicProjects?l(`pages.connections.publicCapability.discovery`):null,e?.subscribeProject?l(`pages.connections.publicCapability.subscription`):null,e?.publishProject?l(`pages.connections.publicCapability.publishing`):null,e?.submitKnowledge?l(`pages.connections.publicCapability.contribution`):null,e?.reviewProposals?l(`pages.connections.publicCapability.review`):null].filter(e=>!!e);return t.length?new Intl.ListFormat(ie(),{style:`long`,type:`conjunction`}).format(t):l(`pages.connections.notAvailable`)}),U=m(()=>n.state?.subscriptions??[]),W=m(()=>n.state?.personalProjects??[]),rt=m(()=>Ft(`connect-external-knowledge`)),it=m(()=>Ft(`external-knowledge-conflict-policy`)),at=m(()=>new Set(U.value.map(({provider_url:e,project_id:t})=>`${e}::${t}`))),ot=m(()=>(n.state?.projects??[]).filter(e=>!at.value.has(K(e)))),st=m(()=>ot.value.map(e=>({value:K(e),label:e.name,meta:`#${ue(e.id,26)}`,search:le(e.id)}))),ct=m(()=>T.value.map(e=>({value:e.type,label:e.name,meta:e.description}))),G=m(()=>W.value.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${ue(e.project_id,26)}`,search:le(e.project_id)}))),lt=m(()=>[{value:`hybrid`,label:l(`pages.connections.mode.hybrid`),disabled:!Y(H.connectorType,`hybrid`)},{value:`mirror`,label:l(`pages.connections.mode.mirror`),disabled:!Y(H.connectorType,`mirror`)},{value:`live`,label:l(`pages.connections.mode.live`),disabled:!Y(H.connectorType,`live`)}]),ut=m(()=>[{value:`http`,label:`Streamable HTTP`},{value:`stdio`,label:`stdio`}]),dt=m(()=>[{value:`cn`,label:`Feishu`},{value:`global`,label:`Lark`}]),ft=m(()=>[{value:`ask_human`,label:l(`pages.connections.askHuman`)},{value:`agent_decide`,label:l(`pages.connections.agentDecide`)}]);t(W,e=>{let t=new Set(e.map(({project_id:e})=>e)),n=e[0]?.project_id??``;H.personalProjectIds=H.personalProjectIds.filter(e=>t.has(e)),!H.personalProjectIds.length&&n&&(H.personalProjectIds=[n]),M.value=M.value.filter(e=>t.has(e)),t.has(P.value)||(P.value=n)},{immediate:!0}),t(()=>[n.activePersonalSpace?.id,P.value],()=>void J(),{immediate:!0,flush:`sync`}),t(()=>H.connectorType,e=>{Y(e,H.mode)||(H.mode=Ot(e))}),te(()=>void q()),ee(()=>{B+=1,V?.abort()});function K(e){return`${e.providerUrl}::${e.id}`}async function pt(){let e=n.activePersonalSpace?.id,t=ot.value.find(e=>K(e)===b.value);if(!(!e||!t||C.value)){C.value=!0,w.value=`pages.connections.subscribing`;try{await _(`/api/subscriptions`,{personalSpaceId:e,projectId:t.id,providerUrl:t.providerUrl,projectName:t.name}),b.value=``,n.notify(l(`pages.connections.subscribed`,{name:t.name})),w.value=`pages.connections.loadingSubscriptions`,await n.refresh()}catch(e){n.reportError(e)}finally{C.value=!1}}}async function mt(e){let t=n.activePersonalSpace?.id;if(!(!t||C.value)){C.value=!0,w.value=`pages.connections.unsubscribing`;try{let r=new URLSearchParams({personalSpaceId:t,providerUrl:e.provider_url});await ce(`/api/subscriptions/${encodeURIComponent(e.project_id)}?${r}`),n.notify(l(`pages.connections.unsubscribed`,{name:e.project_name??e.project_id})),w.value=`pages.connections.loadingSubscriptions`,await n.refresh()}catch(e){n.reportError(e)}finally{C.value=!1}}}async function q(){k.value=!0;try{let[e,t]=await Promise.all([v(`/api/external-knowledge/connectors`),v(`/api/external-knowledge/bindings`)]);T.value=e,D.value=t}catch(e){n.reportError(e)}finally{k.value=!1}}async function ht(){let e=n.activePersonalSpace?.id;if(!(!e||!H.personalProjectIds.length||O.value)){O.value=!0,A.value=`pages.connections.creatingBinding`;try{let{connectorConfig:t,source:r}=gt();await _(`/api/external-knowledge/bindings`,{name:H.name.trim(),connectorType:H.connectorType,connectorConfig:t,source:r,targets:H.personalProjectIds.map(t=>({personalSpaceId:e,personalProjectId:t,mode:H.mode}))}),n.notify(l(`pages.connections.externalCreated`,{name:H.name.trim()})),H.name=``,await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}function gt(){if(H.connectorType===`notion`)return{connectorConfig:{tokenEnv:$(H.notionTokenEnv,`Notion token env`)},source:{pageIds:Z(H.notionPageIds),dataSourceIds:Z(H.notionDataSourceIds)}};if(H.connectorType===`feishu`)return{connectorConfig:{accessTokenEnv:$(H.feishuTokenEnv,`Feishu token env`),region:H.feishuRegion},source:Q({spaceId:H.feishuSpaceId.trim(),rootNodeToken:H.feishuRootNodeToken.trim(),nodeTokens:Z(H.feishuNodeTokens),webBaseUrl:H.feishuWebBaseUrl.trim()})};if(H.connectorType===`retrieval_api`){let e=Number(H.retrievalScoreThreshold);if(!Number.isFinite(e)||e<0||e>1)throw TypeError(l(`pages.connections.scoreThresholdInvalid`));return{connectorConfig:Q({url:$(H.retrievalUrl,`Retrieval API URL`),tokenEnv:H.retrievalTokenEnv.trim(),scoreThreshold:e}),source:{knowledgeIds:Pt(H.retrievalKnowledgeIds,`Knowledge IDs`)}}}if(H.connectorType===`custom`){let e=JSON.parse(H.customSourceJson);if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(l(`pages.connections.customSourceObject`));return{connectorConfig:{module:$(H.customModule,`Custom connector module`),environmentNames:Z(H.customEnvironmentNames)},source:e}}return{connectorConfig:H.mcpTransport===`stdio`?Q({transport:`stdio`,command:H.mcpCommand.trim(),args:Z(H.mcpArgs)}):Q({transport:`http`,url:$(H.mcpUrl,`MCP URL`),tokenEnv:H.mcpTokenEnv.trim()}),source:Q({resourceUriPrefix:H.mcpResourcePrefix.trim()})}}async function _t(e){await yt(e,`check`)}async function vt(e){await yt(e,`sync`)}async function yt(e,t){if(!O.value){O.value=!0,A.value=t===`sync`?`pages.connections.syncingBinding`:`pages.connections.checkingBinding`;try{let r=await _(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/${t}`,{});n.notify(l(t===`sync`&&r.skippedCredentials?`pages.connections.externalSyncedWithSkipped`:t===`sync`?`pages.connections.externalSynced`:`pages.connections.externalChecked`,{name:e.name,count:r.skippedCredentials??0})),await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}async function bt(e){if(!O.value){O.value=!0,A.value=`pages.connections.disconnectingBinding`;try{await ce(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}`),n.notify(l(`pages.connections.externalDeleted`,{name:e.name})),await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}function xt(e){let t=X(e);j.value=e.id,M.value=t.map(({personalProjectId:e})=>e),N.value=Object.fromEntries(t.map(({personalProjectId:e,mode:t})=>[e,t]))}function St(){j.value=null,M.value=[],N.value={}}function Ct(e){let t=D.value.find(({id:e})=>e===j.value);if(!t)return;let n=N.value,r=Ot(t.connectorType);N.value=Object.fromEntries(e.map(e=>[e,n[e]??t.mode??r]))}function wt(e,t){N.value={...N.value,[e]:t}}async function Tt(e){let t=n.activePersonalSpace?.id;if(!(!t||!M.value.length||O.value)){O.value=!0,A.value=`pages.connections.savingBindingTargets`;try{await se(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/targets`,{expectedTargetsVersion:e.targetsVersion,targets:M.value.map(n=>({personalSpaceId:t,personalProjectId:n,mode:N.value[n]??e.mode}))}),n.notify(l(`pages.connections.projectsUpdated`,{name:e.name})),St(),await q()}catch(e){n.reportError(e)}finally{O.value=!1}}}async function J(){let e=++B;if(V?.abort(),V=null,F.value=`ask_human`,R.value=!1,L.value=!1,!n.activePersonalSpace?.id||!P.value)return;let t=new AbortController;V=t,L.value=!0;try{let n=await v(`/api/external-knowledge/conflict-policy?${new URLSearchParams({personalProjectId:P.value})}`,{signal:t.signal});if(e!==B)return;F.value=n.mode,z=n.mode}catch{if(e!==B)return;R.value=!0}finally{e===B&&(L.value=!1,V=null)}}async function Et(){let e=n.activePersonalSpace?.id;if(!e||!P.value||I.value||L.value||R.value)return;let t=B;I.value=!0;try{let r=await se(`/api/external-knowledge/conflict-policy?${new URLSearchParams({personalProjectId:P.value})}`,{personalSpaceId:e,personalProjectId:P.value,mode:F.value});if(t!==B)return;F.value=r.mode,z=r.mode,n.notify(l(`pages.connections.conflictSaved`))}catch(e){if(t!==B)return;F.value=z,n.reportError(e)}finally{I.value=!1}}function Dt(e){return T.value.find(t=>t.type===e)?.name??e}function Y(e,t){let n=T.value.find(t=>t.type===e)?.capabilities;return!n?.length||(t===`live`||t===`hybrid`?n.includes(`retrieve`):!0)&&(t===`mirror`||t===`hybrid`?n.includes(`sync`):!0)}function Ot(e){return[`hybrid`,`mirror`,`live`].find(t=>Y(e,t))??`live`}function kt(e){return[`hybrid`,`mirror`,`live`].map(t=>({value:t,label:l(`pages.connections.mode.${t}`),disabled:!Y(e,t)}))}function X(e){return e.targets?.length?e.targets:[{id:e.id,...e.target,mode:e.mode,status:e.status,sync:e.sync}]}function At(e){return X(e).some(({mode:e})=>e!==`live`)}function jt(e){return W.value.find(({project_id:t})=>t===e)?.profile.name??e}function Mt(e){return X(e).find(({sync:e})=>e?.error)?.sync?.error??e.sync?.error}function Nt(e){return X(e).reduce((e,t)=>e+(t.sync?.skippedCredentials??0),0)}function Z(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function Pt(e,t){let n=Z(e);if(!n.length)throw TypeError(`${t} is required`);return n}function Q(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==``&&(!Array.isArray(e)||e.length>0)))}function $(e,t){if(!e.trim())throw TypeError(`${t} is required`);return e.trim()}function Ft(e){return`https://github.com/JevonsCode/fuli/blob/main/${ie()===`zh-CN`?`README.zh-CN.md`:`README.md`}#${e}`}return(e,t)=>(a(),s(`section`,de,[g(`div`,{class:`service-connection-grid`,"aria-label":p(l)(`pages.connections.statusAria`)},[g(`article`,{class:`service-connection-card`,"data-status":$e.value?`ready`:`error`},[g(`header`,null,[t[30]||=g(`span`,{class:`service-connection-icon local`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-personal-project`})],-1),g(`div`,null,[g(`h3`,null,f(p(l)(`pages.connections.localGraphiti`)),1)]),g(`span`,me,f($e.value?p(l)(`common.status.connected`):p(l)(`common.status.connectionError`)),1)]),c(S,{title:p(l)(`ui.connectionDetails`)},{default:r(()=>[g(`dl`,null,[g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.storage`)),1),t[31]||=g(`dd`,null,`Neo4j`,-1)]),g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.purpose`)),1),g(`dd`,null,f(p(l)(`pages.connections.localPurpose`)),1)])])]),_:1},8,[`title`])],8,pe),g(`article`,{class:`service-connection-card`,"data-status":p(n).publicRuntimeStatus},[g(`header`,null,[t[33]||=g(`span`,{class:`service-connection-icon public`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-public-project`})],-1),g(`div`,ge,[g(`h3`,null,f(p(l)(`pages.connections.publicService`)),1),t[32]||=g(`span`,{class:`feature-badge beta`},`BETA`,-1)]),g(`span`,_e,f(p(n).publicRuntimeStatus===`ready`?p(l)(`common.status.connected`):p(n).publicRuntimeStatus===`error`?p(l)(`common.status.connectionError`):p(l)(`common.status.notConnected`)),1)]),g(`dl`,null,[g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.currentStatus`)),1),g(`dd`,null,f(p(n).publicRuntimeStatus===`ready`?p(l)(`pages.connections.sharedServicesReady`,{count:tt.value||et.value.length}):p(l)(`pages.connections.notAvailable`)),1)]),g(`div`,null,[g(`dt`,null,f(p(l)(`pages.connections.purpose`)),1),g(`dd`,null,f(nt.value),1)])])],8,he)],8,fe),g(`section`,ve,[g(`div`,ye,[g(`h3`,null,f(p(l)(`pages.connections.externalTitle`)),1),g(`a`,{class:`section-help-link`,"data-testid":`external-knowledge-help`,href:rt.value,"aria-label":p(l)(`pages.connections.externalHelp`),title:p(l)(`pages.connections.externalHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,be),g(`span`,xe,f(p(l)(`pages.connections.bindingCount`,{count:D.value.length})),1)]),k.value||O.value?(a(),u(y,{key:0,variant:`compact`,label:p(l)(k.value?`pages.connections.loadingBindings`:A.value)},null,8,[`label`])):h(``,!0),g(`div`,Se,[(a(!0),s(d,null,i(D.value,e=>(a(),s(`article`,{key:e.id,class:`external-binding-row`,"data-status":e.status},[t[34]||=g(`i`,{"aria-hidden":`true`},null,-1),g(`div`,we,[g(`strong`,null,f(e.name),1),g(`span`,null,f(Dt(e.connectorType)),1),g(`div`,Te,[g(`b`,null,f(p(l)(`pages.connections.boundTo`)),1),(a(!0),s(d,null,i(X(e),e=>(a(),s(`span`,{key:e.id,class:`external-binding-target-chip`,"data-status":e.status},f(jt(e.personalProjectId))+` · `+f(p(l)(`pages.connections.mode.${e.mode}`)),9,Ee))),128))]),Mt(e)?(a(),s(`small`,De,f(Mt(e)),1)):Nt(e)?(a(),s(`small`,Oe,f(p(l)(`pages.connections.credentialsSkipped`,{count:Nt(e)})),1)):h(``,!0)]),g(`div`,ke,[g(`button`,{class:`quiet-button`,type:`button`,disabled:O.value,onClick:t=>_t(e)},f(p(l)(`pages.connections.check`)),9,Ae),g(`button`,{class:`quiet-button external-sync-action`,type:`button`,disabled:O.value||!At(e),onClick:t=>vt(e)},f(p(l)(`pages.connections.sync`)),9,je),g(`button`,{class:`quiet-button`,type:`button`,disabled:O.value,onClick:t=>xt(e)},f(p(l)(`pages.connections.manageProjects`)),9,Me),g(`button`,{class:`quiet-button danger`,type:`button`,disabled:O.value,onClick:t=>bt(e)},f(p(l)(`pages.connections.disconnect`)),9,Ne)]),j.value===e.id?(a(),s(`div`,Pe,[g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.targetProjects`)),1),c(x,{multiple:``,modelValue:M.value,"onUpdate:modelValue":t[0]||=e=>M.value=e,"control-id":`external-projects-${e.id}`,label:p(l)(`pages.connections.targetProjects`),options:G.value,disabled:O.value,required:``,searchable:``,onChange:Ct},null,8,[`modelValue`,`control-id`,`label`,`options`,`disabled`])]),g(`div`,Fe,[(a(!0),s(d,null,i(M.value,t=>(a(),s(`div`,{key:t,class:`external-target-mode-row`},[g(`span`,null,f(jt(t)),1),c(x,{"model-value":N.value[t]??e.mode,"control-id":`external-target-mode-${e.id}-${t}`,label:p(l)(`pages.connections.bindingMode`),options:kt(e.connectorType),disabled:O.value,"onUpdate:modelValue":e=>wt(t,e)},null,8,[`model-value`,`control-id`,`label`,`options`,`disabled`,`onUpdate:modelValue`])]))),128))]),g(`div`,Ie,[g(`button`,{class:`quiet-button`,type:`button`,disabled:O.value,onClick:St},f(p(l)(`common.actions.cancel`)),9,Le),g(`button`,{class:`primary-action`,type:`button`,disabled:O.value||!M.value.length,onClick:t=>Tt(e)},f(p(l)(`pages.connections.saveProjects`)),9,Re)])])):h(``,!0)],8,Ce))),128)),!k.value&&!D.value.length?(a(),s(`div`,ze,f(p(l)(`pages.connections.noExternalBindings`)),1)):h(``,!0)]),c(S,{title:p(l)(`pages.connections.connect`),open:!D.value.length},{default:r(()=>[g(`form`,{class:`external-binding-form`,onSubmit:re(ht,[`prevent`])},[c(E,{modelValue:H.name,"onUpdate:modelValue":t[1]||=e=>H.name=e,label:p(l)(`pages.connections.bindingName`),"data-testid":`external-name`,required:``},null,8,[`modelValue`,`label`]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.connector`)),1),c(x,{modelValue:H.connectorType,"onUpdate:modelValue":t[2]||=e=>H.connectorType=e,"control-id":`external-connector`,label:p(l)(`pages.connections.connector`),options:ct.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.targetProjects`)),1),c(x,{multiple:``,modelValue:H.personalProjectIds,"onUpdate:modelValue":t[3]||=e=>H.personalProjectIds=e,"control-id":`external-projects`,label:p(l)(`pages.connections.targetProjects`),options:G.value,disabled:O.value,required:``,searchable:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.bindingMode`)),1),c(x,{modelValue:H.mode,"onUpdate:modelValue":t[4]||=e=>H.mode=e,"control-id":`external-binding-mode`,label:p(l)(`pages.connections.bindingMode`),options:lt.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),H.connectorType===`mcp`?(a(),s(d,{key:0},[g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.transport`)),1),c(x,{modelValue:H.mcpTransport,"onUpdate:modelValue":t[5]||=e=>H.mcpTransport=e,"control-id":`external-mcp-transport`,label:p(l)(`pages.connections.transport`),options:ut.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),H.mcpTransport===`http`?(a(),u(E,{key:0,modelValue:H.mcpUrl,"onUpdate:modelValue":t[6]||=e=>H.mcpUrl=e,label:`MCP URL`,"data-testid":`mcp-url`,type:`url`,required:``},null,8,[`modelValue`])):(a(),u(E,{key:1,modelValue:H.mcpCommand,"onUpdate:modelValue":t[7]||=e=>H.mcpCommand=e,label:p(l)(`pages.connections.command`),required:``},null,8,[`modelValue`,`label`])),H.mcpTransport===`stdio`?(a(),u(E,{key:2,modelValue:H.mcpArgs,"onUpdate:modelValue":t[8]||=e=>H.mcpArgs=e,label:p(l)(`pages.connections.arguments`)},null,8,[`modelValue`,`label`])):(a(),u(E,{key:3,modelValue:H.mcpTokenEnv,"onUpdate:modelValue":t[9]||=e=>H.mcpTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`),"data-testid":`mcp-token-env`},null,8,[`modelValue`,`label`])),c(E,{modelValue:H.mcpResourcePrefix,"onUpdate:modelValue":t[10]||=e=>H.mcpResourcePrefix=e,label:p(l)(`pages.connections.resourcePrefix`),"data-testid":`mcp-resource-prefix`},null,8,[`modelValue`,`label`])],64)):H.connectorType===`notion`?(a(),s(d,{key:1},[c(E,{modelValue:H.notionTokenEnv,"onUpdate:modelValue":t[11]||=e=>H.notionTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.notionPageIds,"onUpdate:modelValue":t[12]||=e=>H.notionPageIds=e,label:`Page IDs`},null,8,[`modelValue`]),c(E,{modelValue:H.notionDataSourceIds,"onUpdate:modelValue":t[13]||=e=>H.notionDataSourceIds=e,label:`Data Source IDs`},null,8,[`modelValue`])],64)):H.connectorType===`feishu`?(a(),s(d,{key:2},[c(E,{modelValue:H.feishuTokenEnv,"onUpdate:modelValue":t[14]||=e=>H.feishuTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.region`)),1),c(x,{modelValue:H.feishuRegion,"onUpdate:modelValue":t[15]||=e=>H.feishuRegion=e,"control-id":`external-feishu-region`,label:p(l)(`pages.connections.region`),options:dt.value,disabled:O.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),c(E,{modelValue:H.feishuSpaceId,"onUpdate:modelValue":t[16]||=e=>H.feishuSpaceId=e,label:`Space ID`},null,8,[`modelValue`]),c(E,{modelValue:H.feishuRootNodeToken,"onUpdate:modelValue":t[17]||=e=>H.feishuRootNodeToken=e,label:`Root Node Token`},null,8,[`modelValue`]),c(E,{modelValue:H.feishuNodeTokens,"onUpdate:modelValue":t[18]||=e=>H.feishuNodeTokens=e,label:`Node Tokens`},null,8,[`modelValue`]),c(E,{modelValue:H.feishuWebBaseUrl,"onUpdate:modelValue":t[19]||=e=>H.feishuWebBaseUrl=e,label:`Web URL`,type:`url`},null,8,[`modelValue`])],64)):H.connectorType===`retrieval_api`?(a(),s(d,{key:3},[c(E,{modelValue:H.retrievalUrl,"onUpdate:modelValue":t[20]||=e=>H.retrievalUrl=e,label:p(l)(`pages.connections.retrievalUrl`),type:`url`,required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.retrievalTokenEnv,"onUpdate:modelValue":t[21]||=e=>H.retrievalTokenEnv=e,label:p(l)(`pages.connections.tokenEnv`)},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.retrievalKnowledgeIds,"onUpdate:modelValue":t[22]||=e=>H.retrievalKnowledgeIds=e,label:p(l)(`pages.connections.knowledgeIds`),required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.retrievalScoreThreshold,"onUpdate:modelValue":t[23]||=e=>H.retrievalScoreThreshold=e,label:p(l)(`pages.connections.scoreThreshold`),inputmode:`decimal`,required:``},null,8,[`modelValue`,`label`])],64)):(a(),s(d,{key:4},[c(E,{modelValue:H.customModule,"onUpdate:modelValue":t[24]||=e=>H.customModule=e,label:p(l)(`pages.connections.module`),required:``},null,8,[`modelValue`,`label`]),c(E,{modelValue:H.customEnvironmentNames,"onUpdate:modelValue":t[25]||=e=>H.customEnvironmentNames=e,label:p(l)(`pages.connections.environmentNames`)},null,8,[`modelValue`,`label`]),g(`div`,Be,[c(E,{modelValue:H.customSourceJson,"onUpdate:modelValue":t[26]||=e=>H.customSourceJson=e,label:p(l)(`pages.connections.sourceJson`),multiline:``,required:``},null,8,[`modelValue`,`label`])]),g(`span`,Ve,f(p(l)(`pages.connections.trustedCode`)),1)],64)),g(`button`,{class:`primary-action external-create-action`,type:`submit`,disabled:O.value||!W.value.length||!H.personalProjectIds.length},[t[35]||=g(`span`,{class:`external-create-action-icon`,"aria-hidden":`true`},null,-1),g(`span`,null,f(p(l)(`pages.connections.connect`)),1)],8,He)],32)]),_:1},8,[`title`,`open`])]),W.value.length?(a(),u(S,{key:0,class:`conflict-policy-section`,open:R.value,title:p(l)(`pages.connections.conflictTitle`)},{default:r(()=>[g(`div`,Ue,[g(`a`,{class:`section-help-link`,"data-testid":`conflict-policy-help`,href:it.value,"aria-label":p(l)(`pages.connections.conflictHelp`),title:p(l)(`pages.connections.conflictHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,We)]),g(`div`,Ge,[g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.targetProject`)),1),c(x,{modelValue:P.value,"onUpdate:modelValue":t[27]||=e=>P.value=e,"control-id":`external-conflict-project`,label:p(l)(`pages.connections.targetProject`),options:G.value,disabled:I.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,f(p(l)(`pages.connections.conflictAction`)),1),c(x,{modelValue:F.value,"onUpdate:modelValue":t[28]||=e=>F.value=e,"control-id":`external-conflict-mode`,label:p(l)(`pages.connections.conflictAction`),options:ft.value,disabled:I.value||L.value||R.value||!P.value,required:``,onChange:Et},null,8,[`modelValue`,`label`,`options`,`disabled`])])]),L.value?(a(),u(y,{key:0,variant:`compact`,label:p(l)(`pages.connections.loadingConflictPolicy`)},null,8,[`label`])):h(``,!0),I.value?(a(),u(y,{key:1,variant:`inline`,label:p(l)(`pages.connections.savingConflictPolicy`)},null,8,[`label`])):R.value?(a(),s(`div`,Ke,[g(`p`,null,f(p(l)(`common.errors.loadFailed`)),1),g(`button`,{class:`secondary-action`,type:`button`,onClick:J},f(p(l)(`common.actions.retry`)),1)])):h(``,!0)]),_:1},8,[`open`,`title`])):h(``,!0),p(n).state?.capabilities?.subscribeProject?(a(),s(`section`,qe,[g(`div`,Je,[g(`h3`,null,[ae(f(p(l)(`pages.connections.subscriptionsTitle`))+` `,1),t[36]||=g(`span`,{class:`feature-badge beta`},`BETA`,-1)])]),C.value?(a(),u(y,{key:0,variant:`inline`,label:p(l)(w.value)},null,8,[`label`])):h(``,!0),g(`div`,Ye,[(a(!0),s(d,null,i(U.value,e=>(a(),s(`div`,{key:`${e.provider_url}:${e.project_id}`,class:`subscription-row`},[t[37]||=g(`span`,null,`↗`,-1),g(`div`,null,[g(`strong`,null,f(e.project_name??e.project_id),1),g(`span`,null,f(p(l)(`pages.connections.sharedProject`)),1)]),g(`button`,{class:`secondary-action subscription-action`,type:`button`,disabled:C.value,onClick:t=>mt(e)},f(p(l)(`pages.connections.unsubscribe`)),9,Xe)]))),128)),U.value.length?h(``,!0):(a(),s(`div`,Ze,f(p(l)(`pages.connections.noSubscriptions`)),1))]),g(`form`,{class:`subscription-form`,onSubmit:re(pt,[`prevent`])},[c(x,{modelValue:b.value,"onUpdate:modelValue":t[29]||=e=>b.value=e,options:st.value,label:p(l)(`pages.connections.sharedProjectLabel`),placeholder:p(l)(`pages.connections.choosePublicProject`),searchable:``,required:``,disabled:C.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`]),g(`button`,{type:`submit`,disabled:C.value||!b.value||!p(n).activePersonalSpace},f(p(l)(`pages.connections.subscribe`)),9,Qe)],32)])):h(``,!0)]))}});export{D as default};
@@ -0,0 +1 @@
1
+ import{B as e,C as t,E as n,H as r,I as i,P as a,Q as o,S as s,T as c,a as l,b as u,g as d,it as ee,ot as f,rt as p,v as m,w as h,x as g,y as _}from"./i18n-B4Fp9Oa5.js";import{a as te,s as v}from"./client-DodUFQDp.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as b}from"./UiButton-neeym_gA.js";import{t as x}from"./vue-router-nZMhR3dI.js";import{t as ne}from"./UiDialog-BFVoqFnc.js";import{t as S}from"./UiSelect-DDyct4mf.js";import{t as re}from"./avatars-z6ANYG_r.js";import{n as ie}from"./paths-CDREouhi.js";import{a as ae,o as oe,r as se,s as ce}from"./catalog-kb-cA8t6.js";import{t as le}from"./ProjectScopePicker-NyqcG6Iz.js";var ue={key:1,role:`alert`,class:`ui-dialog__error employee-message`},de={key:2,class:`ui-muted`},fe={class:`employee-profile`},pe={class:`employee-avatar`,"aria-hidden":`true`},me=[`src`],he={class:`ui-meta`},ge={key:2,class:`employee-scope`},_e=[`aria-label`],ve=[`data-scope`,`aria-checked`,`tabindex`,`disabled`,`onClick`],ye={class:`ui-meta`,role:`status`},be={key:3,class:`ui-meta`},xe={key:4,class:`ui-meta`},Se={key:5,class:`ui-meta`},Ce=[`aria-label`],we={class:`employee-title-controls`},Te={class:`ui-meta`},Ee={class:`employee-title-example`},De={class:`ui-meta`},Oe=[`aria-label`],ke={class:`ui-meta`},Ae={key:8,class:`ui-dialog__error`,role:`alert`},je={key:10,class:`employee-success`,role:`status`},C=y(n({__name:`EmployeeRecruitDialog`,props:{open:{type:Boolean},personalSpaceId:{},projects:{},defaultProjectId:{},defaultProjectIds:{},templateId:{}},emits:[`close`,`recruited`],setup(n,{emit:y}){let C=n,w=y,T=o([]),E=o([]),D=o(`selected`),O=o([]),k=o(`auto`),A=o(`emoji`),Me=o(``),j=o(``),M=o(!1),N=o(!1),P=o(``),F=o(!1),I=o(``),L=o(null),R=o([]),z=o(``),B=m(()=>C.templateId?R.value:R.value.filter(e=>!e.fixed)),V=m(()=>C.templateId?B.value.find(e=>e.id===C.templateId):B.value.find(e=>e.id===P.value)??B.value[0]),Ne=m({get:()=>V.value?.id??``,set:e=>{P.value=e}}),Pe=m(()=>V.value?.agentId?l(`employees.manageProjectsTitle`,{name:V.value.name}):l(`employees.recruit`)),H=m(()=>C.projects.filter(e=>e.profile.lifecycle!==`archived`).map(e=>({id:e.project_id,name:e.profile.name}))),U=m(()=>V.value?.management!==void 0),W=m({get:()=>D.value===`all`?H.value.filter(e=>!O.value.includes(e.id)).map(e=>e.id):T.value,set:e=>{if(D.value===`all`){let t=new Set(H.value.map(e=>e.id));O.value=[...O.value.filter(e=>!t.has(e)),...H.value.filter(t=>!e.includes(t.id)).map(e=>e.id)]}else T.value=e}}),G=m(()=>({mode:D.value,projectIds:D.value===`selected`?[...T.value].sort():[],excludedProjectIds:D.value===`all`?[...O.value].sort():[],titleMode:k.value,titleStyle:A.value})),Fe=m(()=>[`auto`,`suggest`,`off`].map(e=>({value:e,label:l(`employees.titles.${e}`)}))),Ie=m(()=>[`emoji`,`text`].map(e=>({value:e,label:l(`employees.titles.${e}`)}))),K=m(()=>new Set(E.value)),Le=m(()=>[...K.value].filter(e=>!W.value.includes(e))),Re=m(()=>!!(V.value?.agentStatus&&V.value.agentStatus!==`active`)),q=m(()=>V.value?.agentStatus===`active`&&(U.value?JSON.stringify(G.value)===Me.value&&(D.value===`all`||T.value.length===K.value.size&&T.value.every(e=>K.value.has(e))):T.value.length===K.value.size&&T.value.every(e=>K.value.has(e)))),ze=m(()=>F.value?l(`employees.recruiting`):Re.value?l(`employees.rehire`,{name:V.value?.name??``}):q.value||V.value?.agentId?l(`employees.assign`):l(`employees.recruitName`,{name:V.value?.name??``})),J=m(()=>V.value&&W.value.length?`/employees/${encodeURIComponent(V.value.id)}?project=${encodeURIComponent(W.value[0])}`:``),Y=0;e([()=>C.open,()=>C.personalSpaceId,()=>C.templateId],([e])=>{Y+=1,e&&Z(!0)},{immediate:!0}),e(P,()=>{C.open&&!M.value&&X(!0)}),e(G,()=>{I.value=N.value?I.value:``,L.value=null},{flush:`sync`});function X(e=!1){let t=new Set(H.value.map(e=>e.id));E.value=[...new Set((V.value?.assignments??[]).filter(e=>e.status===`active`&&t.has(e.personalProjectId)).map(e=>e.personalProjectId))];let n=e&&!V.value?.agentId?C.defaultProjectIds??(C.defaultProjectId?[C.defaultProjectId]:[]):[];T.value=[...new Set([...E.value,...n.filter(e=>t.has(e))])];let r=V.value?.management;D.value=r?.mode??`selected`,O.value=[...r?.excludedProjectIds??[]],k.value=r?.titleMode??`auto`,A.value=r?.titleStyle??`emoji`,r?.mode===`selected`&&V.value?.agentId&&(T.value=r.projectIds.filter(e=>t.has(e))),r?.mode===`all`&&V.value?.agentId&&(E.value=[...W.value]),Me.value=JSON.stringify(G.value),j.value=V.value?.assignmentsVersion??``,N.value=!1,I.value=``,L.value=null}async function Z(e=!1){let t=++Y;M.value=!0,R.value=[],z.value=``;try{let n=await oe(C.personalSpaceId);if(t!==Y||!C.open)return;R.value=n,X(e)}catch(e){t===Y&&C.open&&(R.value=[],z.value=se(e))}finally{t===Y&&(M.value=!1)}}function Q(){F.value||w(`close`)}async function Be(){if(!V.value||V.value.identityConflict||!C.personalSpaceId||F.value||M.value||N.value||!j.value||q.value)return;F.value=!0,I.value=``;let e=V.value.id;try{let t=await te(`/api/employee-templates/${encodeURIComponent(e)}/recruit`,{personalSpaceId:C.personalSpaceId,...U.value?{management:G.value}:{personalProjectIds:[...T.value]},replaceAssignments:!0,expectedAssignmentsVersion:j.value,...Re.value?{reactivate:!0}:{}});await ce(C.personalSpaceId),R.value=[...ae.value],X(),L.value=t,w(`recruited`,t)}catch(e){I.value=se(e);try{let t=JSON.parse(e instanceof Error?e.message:``);N.value=t.code===`assignment_scope_conflict`||t.code===`assignment_update_incomplete`}catch{}}finally{F.value=!1}}function $(e){e===`selected`&&(T.value=[...W.value]),D.value=e}function Ve(e){if(!(F.value||M.value||N.value)&&[`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key)){e.preventDefault();let t=e.key===`Home`?`all`:e.key===`End`||D.value===`all`?`selected`:`all`;$(t),e.currentTarget.querySelector(`[data-scope="${t}"]`)?.focus()}}return(e,o)=>(a(),u(ne,{open:n.open,class:`employee-recruit-dialog`,title:Pe.value,busy:F.value,form:``,onClose:Q,onSubmit:Be},t({default:r(()=>[M.value&&!B.value.length?(a(),u(v,{key:0,variant:`compact`,label:p(l)(`employees.loading`)},null,8,[`label`])):z.value?(a(),s(`div`,ue,[_(`p`,null,f(z.value),1),c(b,{size:`sm`,onClick:o[0]||=e=>Z(!0)},{default:r(()=>[h(f(p(l)(`employees.retry`)),1)]),_:1})])):V.value?(a(),s(d,{key:3},[B.value.length>1&&!C.templateId?(a(),u(S,{key:0,modelValue:Ne.value,"onUpdate:modelValue":o[1]||=e=>Ne.value=e,field:``,"control-id":`employee-template`,label:p(l)(`employees.choose`),options:B.value.map(e=>({value:e.id,label:e.name,meta:e.role})),disabled:F.value||M.value},null,8,[`modelValue`,`label`,`options`,`disabled`])):g(``,!0),_(`div`,fe,[_(`span`,pe,[p(re)(V.value.id)?(a(),s(`img`,{key:0,src:p(re)(V.value.id),alt:``},null,8,me)):(a(),s(d,{key:1},[h(f(V.value.name.slice(0,1)),1)],64))]),_(`div`,null,[_(`h3`,null,[h(f(V.value.name)+` `,1),_(`span`,null,f(V.value.role),1)]),_(`p`,null,f(V.value.description),1),_(`p`,he,f(V.value.capabilities.join(` · `)),1)])]),M.value?(a(),u(v,{key:1,variant:`compact`,label:p(l)(`employees.loadingScope`)},null,8,[`label`])):g(``,!0),U.value?(a(),s(`div`,ge,[_(`div`,{class:`ui-segmented`,role:`radiogroup`,"aria-label":p(l)(`employees.scope.rule`),onKeydown:Ve},[(a(),s(d,null,i([`all`,`selected`],e=>_(`button`,{key:e,type:`button`,role:`radio`,"data-scope":e,"aria-checked":D.value===e,tabindex:D.value===e?0:-1,disabled:F.value||M.value||N.value,onClick:t=>$(e)},f(p(l)(`employees.scope.${e===`all`?`continuousAll`:`onlySelected`}`)),9,ve)),64))],40,_e),_(`p`,ye,f(D.value===`all`?p(l)(`employees.scope.allHint`,{name:V.value.name}):p(l)(`employees.scope.selectedHint`)),1)])):g(``,!0),c(le,{modelValue:W.value,"onUpdate:modelValue":o[2]||=e=>W.value=e,projects:H.value,inline:``,hint:D.value===`all`?p(l)(`employees.scope.excludeHint`):void 0,disabled:F.value||M.value||N.value},null,8,[`modelValue`,`projects`,`hint`,`disabled`]),D.value===`all`&&O.value.length?(a(),s(`p`,be,f(p(l)(`employees.scope.excludedCount`,{count:O.value.length})),1)):g(``,!0),H.value.length?g(``,!0):(a(),s(`p`,xe,[h(f(p(l)(`employees.noProjects`))+` `,1),c(p(x),{to:p(ie)(n.personalSpaceId,`directory`),onClick:Q},{default:r(()=>[h(f(p(l)(`employees.createProject`)),1)]),_:1},8,[`to`])])),Le.value.length&&!L.value?(a(),s(`p`,Se,f(p(l)(`employees.scopeRemoved`,{count:Le.value.length})),1)):g(``,!0),U.value&&V.value.permissions.includes(`session.title`)?(a(),s(`section`,{key:6,class:`employee-title-settings`,"aria-label":p(l)(`employees.titles.heading`)},[_(`h3`,null,f(p(l)(`employees.titles.heading`)),1),_(`div`,we,[c(S,{modelValue:k.value,"onUpdate:modelValue":o[3]||=e=>k.value=e,field:``,"control-id":`employee-title-mode`,label:p(l)(`employees.titles.mode`),options:Fe.value,disabled:F.value||M.value||N.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),c(S,{modelValue:A.value,"onUpdate:modelValue":o[4]||=e=>A.value=e,field:``,"control-id":`employee-title-style`,label:p(l)(`employees.titles.style`),options:Ie.value,disabled:F.value||M.value||N.value||k.value===`off`},null,8,[`modelValue`,`label`,`options`,`disabled`])]),_(`p`,Te,[h(f(p(l)(`employees.titles.example`))+` `,1),_(`span`,Ee,`【P1|`+f(A.value===`emoji`?`🔧 `:``)+`FIX|`+f(p(l)(`employees.titles.exampleTask`))+`】`,1)]),_(`p`,De,f(p(l)(`employees.titles.boundary`)),1)],8,Ce)):g(``,!0),_(`section`,{class:`employee-permissions`,"aria-label":p(l)(`employees.permissions`)},[_(`strong`,null,f(p(l)(`employees.permissions`)),1),_(`ul`,null,[(a(!0),s(d,null,i(V.value.permissions,e=>(a(),s(`li`,{key:e},f(e===`board.read`?p(l)(`employees.boardRead`):e===`board.write`?p(l)(`employees.boardWrite`):e===`session.title`?p(l)(`employees.titles.heading`):e),1))),128))]),_(`p`,ke,f(p(l)(`employees.noExecutor`)),1)],8,Oe),V.value.runtime?(a(),s(`p`,{key:7,class:ee([`employee-runtime`,{"is-warning":V.value.runtimeStatus!==`ready`}])},f(V.value.runtimeStatus===`ready`?p(l)(`employees.hostReady`):p(l)(`employees.installRequired`)),3)):g(``,!0),I.value||V.value.identityConflict?(a(),s(`p`,Ae,f(I.value||p(l)(`employees.errors.identity_conflict`)),1)):g(``,!0),N.value?(a(),u(b,{key:9,size:`sm`,disabled:M.value,onClick:o[5]||=e=>Z()},{default:r(()=>[h(f(p(l)(`employees.reloadScope`)),1)]),_:1},8,[`disabled`])):g(``,!0),L.value?(a(),s(`div`,je,[_(`strong`,null,f(p(l)(`employees.scopeSaved`)),1),_(`p`,null,f(D.value===`all`?p(l)(`employees.scope.successAll`,{count:W.value.length}):W.value.length?p(l)(`employees.successMultiple`,{count:W.value.length}):p(l)(`employees.successUnassigned`)),1)])):g(``,!0)],64)):(a(),s(`p`,de,f(p(l)(`employees.noTemplates`)),1))]),_:2},[V.value&&!z.value?{name:`footer`,fn:r(()=>[c(b,{variant:`ghost`,disabled:F.value,onClick:Q},{default:r(()=>[h(f(p(l)(`employees.cancel`)),1)]),_:1},8,[`disabled`]),q.value&&J.value&&!F.value&&!M.value&&!N.value&&V.value.runtimeStatus===`ready`?(a(),u(p(x),{key:0,class:`ui-button ui-button--primary`,to:J.value,onClick:Q},{default:r(()=>[h(f(p(l)(`employees.open`)),1)]),_:1},8,[`to`])):(a(),u(b,{key:1,variant:`primary`,type:`submit`,busy:F.value,"busy-label":ze.value,disabled:M.value||N.value||!j.value||q.value||V.value.identityConflict||!n.personalSpaceId},{default:r(()=>[h(f(ze.value),1)]),_:1},8,[`busy`,`busy-label`,`disabled`]))]),key:`0`}:void 0]),1032,[`open`,`title`,`busy`]))}}),[[`__scopeId`,`data-v-4e6fb0a1`]]);export{C as t};
@@ -0,0 +1,3 @@
1
+ import{B as e,E as t,H as n,I as r,P as i,Q as a,S as o,T as s,U as c,a as l,b as u,f as d,g as f,h as p,it as m,m as h,ot as g,rt as _,v,w as y,x as b,y as x}from"./i18n-B4Fp9Oa5.js";import{t as S}from"./console-C2Lfifq-.js";import{a as C,i as w,r as T,s as E}from"./client-DodUFQDp.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as O}from"./UiButton-neeym_gA.js";import{h as k,m as A}from"./useApi-CROJJdhE-IuC5qwny.js";import{t as j}from"./vue-router-nZMhR3dI.js";import{t as M}from"./UiDialog-BFVoqFnc.js";import{t as N}from"./UiSelect-DDyct4mf.js";import{t as P}from"./AgentHand-B5lezlek.js";import{t as F}from"./avatars-z6ANYG_r.js";import{i as I,n as L}from"./profile-model-BQO4zNs9.js";import{t as R}from"./AgentName-C-V41xs0.js";import{a as ee,n as z,r as B,s as V,t as H}from"./catalog-kb-cA8t6.js";import{t as U}from"./ProjectScopePicker-NyqcG6Iz.js";import{t as te}from"./EmployeeRecruitDialog-o6eyMw2g.js";import{i as ne,r as re,t as W}from"./shared-report-8JFvD9TZ.js";import{t as ie}from"./UiSegmented-D_kyRKDw.js";import{l as ae,n as G,o as K,s as q,u as J}from"./judgment-types-DRqrjStd.js";var oe=[`aria-busy`],se={key:0,class:`bole-alert`,role:`alert`},Y={class:`bole-header`},X={class:`bole-heading`},ce={id:`bole-overview-title`},le=[`aria-label`],ue=[`aria-pressed`],de={"data-testid":`people-total`},Z=[`aria-pressed`],fe=[`aria-label`],pe={"data-testid":`people-working`},me=[`disabled`],he={class:`bole-controls`},ge={class:`bole-filters`},_e=[`aria-label`,`placeholder`],ve=[`aria-label`],ye=[`aria-pressed`],Q=[`aria-pressed`,`onClick`],be={key:1,class:`bole-result-count`,role:`status`},xe=[`aria-label`],Se={key:1,"aria-labelledby":`bole-work-title`},Ce={key:0,class:`bole-empty`,role:`status`},we={key:1,class:`ui-card bole-agent-list`},Te={class:`bole-table-heading`,"aria-hidden":`true`},Ee={class:`bole-agent-identity`},De={class:`bole-agent-mark`,"aria-hidden":`true`},Oe=[`src`],ke={class:`bole-agent-work`},Ae=[`data-status`],je={key:1,class:`is-idle`},Me={class:`bole-agent-projects`},Ne={key:0},Pe={key:1},Fe={key:2,class:`ui-empty bole-empty`},Ie={key:2,"aria-labelledby":`bole-history-title`},Le={key:0,class:`ui-card bole-timeline`},Re={class:`bole-recruitment-identity`},ze={class:`bole-recruitment-reason`},Be=[`datetime`],Ve={key:1,class:`ui-empty bole-empty`},He=`__bole_unassigned__`,Ue=200,We=D(t({__name:`BolePeoplePanel`,props:{personalSpaceId:{},projects:{}},setup(t){let n=t,p=A(),m=a([]),h=a([]),S=a([]),C=a(!1),w=a(!1),D=a(`people`),O=a(``),k=a(``),j=a(`all`),M=v(()=>[{value:`all`,label:l(`employees.bole.allWork`)},{value:`working`,label:l(`employees.bole.workingNow`)},{value:`idle`,label:l(`employees.bole.withoutTask`)}]),N=a(null),L=a(null),ee=v(()=>h.value.length>=Ue),z=0,B=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]),V=v(()=>new Map(n.projects.map(e=>[e.project_id,e.profile.name]))),H=v(()=>m.value.filter(e=>e.status===`active`)),te=v(()=>h.value.filter(e=>B.has(e.status))),ne=v(()=>new Set(ae.value.filter(e=>e.task).map(e=>e.id))),re=v(()=>new Set(H.value.flatMap(e=>e.projectIds).filter(Boolean))),W=v(()=>{let e=[`coordinator`,`durable`,`hr`,`temporary`],t=new Map;for(let e of H.value)t.set(e.type,(t.get(e.type)??0)+1);return[...t.entries()].sort(([t],[n])=>at(e,t)-at(e,n)).map(([e,t])=>({type:e,count:t,label:ot(e)}))}),ae=v(()=>H.value.map(e=>({...e,task:e.workStatus?B.has(e.workStatus)&&e.currentTaskId?h.value.find(t=>t.id===e.currentTaskId)??{id:e.currentTaskId,title:e.currentTaskId,status:e.workStatus,projectId:``,agentIds:[e.id],updatedAt:``}:void 0:te.value.filter(t=>t.agentIds.includes(e.id)).sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))[0]}))),G=v(()=>[...S.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt))),K=v(()=>[...new Set([...n.projects.map(e=>e.project_id),...m.value.flatMap(e=>e.projectIds),...h.value.map(e=>e.projectId),...S.value.map(e=>e.projectId)].filter(Boolean))].map(e=>({id:e,name:V.value.get(e)??e})).sort((e,t)=>e.name.localeCompare(t.name)).concat({id:He,name:l(`employees.bole.noProject`)})),q=v({get:()=>N.value??K.value.map(e=>e.id),set:e=>{N.value=e.length===K.value.length?null:e}}),J=v(()=>ae.value.filter(e=>{let t=[...e.projectIds,...e.task?.projectId?[e.task.projectId]:[]];return Ke(t)&&(!k.value||e.type===k.value)&&(j.value===`all`||(j.value===`working`?!!e.task:!e.task))&&qe([e.name,e.responsibility,...e.searchTerms,e.task?.title??``,...t.map(lt)])}).sort((e,t)=>Number(!!t.task)-Number(!!e.task)||e.name.localeCompare(t.name))),We=v(()=>G.value.filter(e=>Ke(e.projectId?[e.projectId]:[])&&(!k.value||e.positionKind===k.value)&&qe([...Je(e.agentId),e.reason,e.workKind,lt(e.projectId)]))),Ge=v(()=>O.value||k.value||N.value!==null||D.value===`people`&&j.value!==`all`);function Ke(e){return N.value===null||(e.length?e:[He]).some(e=>N.value?.includes(e))}function qe(e){return I(e.join(` `),O.value)}function Je(e){let t=m.value.find(t=>t.id===e);return t?[t.name,t.responsibility,...t.searchTerms]:[e]}function Ye(){O.value=``,k.value=``,j.value=`all`,N.value=null}function Xe(e){return F(e.replace(/^employee\./,``))}e([D,O,k,j,N],()=>{L.value&&(L.value.scrollTop=0)}),e([()=>n.personalSpaceId,()=>p.query.q],([e,t],[n])=>{e===n?O.value=typeof t==`string`?t:``:(Ye(),n===void 0&&(O.value=typeof t==`string`?t:``),Ze())},{immediate:!0});async function Ze(){let e=++z;if(m.value=[],h.value=[],S.value=[],w.value=!1,!n.personalSpaceId){C.value=!1;return}C.value=!0;let t=new URLSearchParams({personalSpaceId:n.personalSpaceId}),r=await Promise.allSettled([T(`/api/project-agents?${t}`),T(`/api/project-agent-tasks?${t}&limit=${Ue}`),T(`/api/project-agent-recruitments?${t}`)]);e===z&&(r[0].status===`fulfilled`&&(m.value=$e(r[0].value,`agents`).map(tt).filter(it)),r[1].status===`fulfilled`&&(h.value=$e(r[1].value,`tasks`).map(nt).filter(it)),r[2].status===`fulfilled`&&(S.value=$e(r[2].value,`recruitments`).map(rt).filter(it)),w.value=r.some(e=>e.status===`rejected`),C.value=!1)}function Qe(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function $e(e,t){if(Array.isArray(e))return e;let n=Qe(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 et(e){return Array.isArray(e)?e:[]}function tt(e){let t=Qe(e),n=Qe(t.profile),r=$(t,`agentId`,`agent_id`);if(!r)return null;let i=et(t.assignments).flatMap(e=>{let t=Qe(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`),searchTerms:[$(n,`name`),...et(n.capabilities),...et(n.workKinds??n.work_kinds)].filter(e=>typeof e==`string`),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 nt(e){let t=Qe(e),n=$(t,`taskId`,`task_id`);if(!n)return null;let r=[$(t,`ownerAgentId`,`owner_agent_id`),$(t,`leadAgentId`,`lead_agent_id`)],i=et(t.participants).flatMap(e=>{let t=Qe(e),n=$(t,`status`);return n&&!B.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 rt(e){let t=Qe(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 it(e){return e!==null}function at(e,t){let n=e.indexOf(t);return n<0?e.length:n}function ot(e){return[`coordinator`,`durable`,`hr`,`temporary`].includes(e)?l(`employees.bole.types.${e}`):l(`employees.bole.types.other`)}function st(e){return[`awaiting_recruitment`,`queued`,`running`,`paused`,`failed`,`awaiting_review`,`blocked`].includes(e)?l(`employees.bole.status.${e}`):e}function ct(e){return m.value.find(t=>t.id===e)?.name??e}function lt(e){return V.value.get(e)??l(`employees.bole.noProject`)}function ut(e){if(!e)return l(`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(e,n)=>(i(),o(`div`,{class:`bole-panel`,"aria-busy":C.value},[w.value?(i(),o(`div`,se,[x(`span`,null,g(_(l)(`employees.bole.partialError`)),1),x(`button`,{class:`quiet-button`,type:`button`,onClick:Ze},g(_(l)(`employees.retry`)),1)])):b(``,!0),x(`header`,Y,[x(`div`,X,[x(`h2`,ce,g(_(l)(`employees.bole.title`)),1),x(`nav`,{class:`bole-views`,"aria-label":_(l)(`employees.bole.viewLabel`)},[x(`button`,{id:`bole-work-title`,type:`button`,"aria-pressed":D.value===`people`,onClick:n[0]||=e=>D.value=`people`},[y(g(_(l)(`employees.bole.currentWork`))+` `,1),x(`span`,de,g(C.value?`—`:H.value.length),1)],8,ue),x(`button`,{id:`bole-history-title`,type:`button`,"aria-pressed":D.value===`history`,onClick:n[1]||=e=>D.value=`history`},[y(g(_(l)(`employees.bole.recruitmentHistory`))+` `,1),x(`span`,null,g(C.value?`—`:S.value.length),1)],8,Z)],8,le)]),x(`dl`,{class:`bole-summary`,"aria-label":_(l)(`employees.bole.overview`)},[x(`div`,pe,[x(`dt`,null,g(_(l)(`employees.bole.workingNow`)),1),x(`dd`,null,g(C.value?`—`:ne.value.size),1)]),x(`div`,null,[x(`dt`,null,g(_(l)(`employees.bole.coveredProjects`)),1),x(`dd`,null,g(C.value?`—`:re.value.size),1)])],8,fe),x(`button`,{class:`quiet-button bole-refresh`,type:`button`,disabled:C.value,onClick:Ze},g(_(l)(`common.actions.refresh`)),9,me)]),x(`div`,he,[x(`div`,ge,[c(x(`input`,{"onUpdate:modelValue":n[2]||=e=>O.value=e,type:`search`,class:`bole-search`,"aria-label":_(l)(`employees.bole.search`),placeholder:_(l)(`employees.bole.search`)},null,8,_e),[[d,O.value]]),s(U,{modelValue:q.value,"onUpdate:modelValue":n[3]||=e=>q.value=e,projects:K.value,label:_(l)(`employees.allProjects.projectFilter`),"all-label":_(l)(`employees.bole.allProjects`),"empty-label":_(l)(`employees.filterEmpty`),compact:``,hint:``},null,8,[`modelValue`,`projects`,`label`,`all-label`,`empty-label`]),D.value===`people`?(i(),u(ie,{key:0,modelValue:j.value,"onUpdate:modelValue":n[4]||=e=>j.value=e,label:_(l)(`employees.bole.workFilter`),options:M.value},null,8,[`modelValue`,`label`,`options`])):b(``,!0)]),x(`div`,{class:`bole-role-filters`,role:`group`,"aria-label":_(l)(`employees.bole.distribution`)},[x(`button`,{type:`button`,"aria-pressed":!k.value,onClick:n[5]||=e=>k.value=``},g(_(l)(`employees.bole.allRoles`)),9,ye),(i(!0),o(f,null,r(W.value,e=>(i(),o(`button`,{key:e.type,type:`button`,"aria-pressed":k.value===e.type,onClick:t=>k.value=k.value===e.type?``:e.type},[y(g(e.label)+` `,1),x(`span`,null,g(e.count),1)],8,Q))),128)),Ge.value?(i(),o(`button`,{key:0,class:`quiet-button bole-clear`,type:`button`,onClick:Ye},g(_(l)(`employees.bole.clearFilters`)),1)):b(``,!0),Ge.value&&!C.value?(i(),o(`span`,be,g(_(l)(`employees.bole.resultCount`,{count:D.value===`people`?J.value.length:We.value.length})),1)):b(``,!0)],8,ve)]),x(`div`,{ref_key:`scrollRegion`,ref:L,class:`bole-content`,tabindex:`0`,role:`region`,"aria-label":_(l)(D.value===`people`?`employees.bole.currentWork`:`employees.bole.recruitmentHistory`)},[C.value?(i(),u(E,{key:0,variant:`compact`,label:_(l)(`employees.bole.loading`)},null,8,[`label`])):D.value===`people`?(i(),o(`section`,Se,[ee.value?(i(),o(`p`,Ce,g(_(l)(`employees.bole.taskLimit`)),1)):b(``,!0),J.value.length?(i(),o(`div`,we,[x(`div`,Te,[x(`span`,null,g(_(l)(`projectAgents.title`)),1),x(`span`,null,g(_(l)(`employees.bole.taskColumn`)),1),x(`span`,null,g(_(l)(`employees.bole.projectsColumn`)),1)]),(i(!0),o(f,null,r(J.value,e=>(i(),o(`article`,{key:e.id,class:`bole-agent-row`},[x(`div`,Ee,[x(`span`,De,[Xe(e.id)?(i(),o(`img`,{key:0,src:Xe(e.id),alt:``},null,8,Oe)):(i(),o(f,{key:1},[y(g(e.emoji),1)],64))]),x(`div`,null,[x(`strong`,null,[s(R,{"space-id":t.personalSpaceId,"agent-id":e.id,name:e.name},null,8,[`space-id`,`agent-id`,`name`])]),s(P,{"agent-id":e.id},null,8,[`agent-id`]),x(`small`,null,g(e.responsibility||ot(e.type)),1)])]),x(`div`,ke,[e.task?(i(),o(f,{key:0},[x(`span`,{class:`ui-badge bole-status`,"data-status":e.task.status},g(st(e.task.status)),9,Ae),x(`p`,null,g(e.task.title),1)],64)):(i(),o(`p`,je,g(_(l)(`employees.bole.idle`)),1))]),x(`div`,Me,[e.projectIds.length?(i(),o(f,{key:0},[(i(!0),o(f,null,r(e.projectIds.slice(0,2),e=>(i(),o(`span`,{key:e},g(lt(e)),1))),128)),e.projectIds.length>2?(i(),o(`details`,Ne,[x(`summary`,null,g(_(l)(`employees.bole.moreProjects`,{count:e.projectIds.length-2})),1),(i(!0),o(f,null,r(e.projectIds.slice(2),e=>(i(),o(`span`,{key:e},g(lt(e)),1))),128))])):b(``,!0)],64)):(i(),o(`span`,Pe,g(e.task?.projectId?lt(e.task.projectId):_(l)(`employees.bole.noProject`)),1))])]))),128))])):(i(),o(`p`,Fe,g(_(l)(Ge.value?`employees.bole.noMatch`:`employees.bole.noAgents`)),1))])):(i(),o(`section`,Ie,[We.value.length?(i(),o(`ol`,Le,[(i(!0),o(f,null,r(We.value,e=>(i(),o(`li`,{key:e.id},[x(`div`,Re,[x(`strong`,null,[s(R,{"space-id":t.personalSpaceId,"agent-id":e.agentId,name:ct(e.agentId)},null,8,[`space-id`,`agent-id`,`name`])]),x(`small`,null,g(ot(e.positionKind))+` · `+g(lt(e.projectId)),1)]),x(`div`,ze,[x(`p`,null,g(e.reason),1),x(`small`,null,g(e.workKind||e.status),1)]),x(`time`,{datetime:e.createdAt},g(ut(e.createdAt)),9,Be)]))),128))])):(i(),o(`p`,Ve,g(_(l)(Ge.value?`employees.bole.noMatch`:`employees.bole.noRecruitments`)),1))]))],8,xe)],8,oe))}}),[[`__scopeId`,`data-v-5c62fca6`]]),Ge={key:1,class:`ui-dialog__error employee-dialog-error`,role:`alert`},Ke={class:`ui-field`},qe=[`readonly`,`disabled`],Je={key:0,class:`ui-meta`},Ye={class:`ui-field`},Xe=[`readonly`,`disabled`],Ze={class:`ui-field`},Qe=[`readonly`,`disabled`],$e={class:`ui-field`},$=[`readonly`,`disabled`],et=t({__name:`EmployeeTaskDialog`,props:{open:{type:Boolean},item:{},projects:{},defaultProjectId:{},personalSpaceId:{},canWrite:{type:Boolean}},emits:[`close`,`saved`],setup(t,{emit:r}){let p=t,m=r,h=a(!1),S=a(!1),w=a(``),T=a(null),D=a(``),k=a(``),A=a(``),j=a(`medium`),P=a(``),F=a(``),I=0,L={signature:``,id:``},R=v(()=>p.canWrite&&!S.value&&!w.value&&!!D.value&&k.value.trim().length>=2),ee=v(()=>p.projects.map(e=>({value:e.id,label:e.name}))),z=v(()=>[`critical`,`high`,`medium`,`low`].map(e=>({value:e,label:l(`employees.task.priorities.${e}`)})));e([()=>p.open,()=>p.item,()=>p.personalSpaceId],()=>{H()},{immediate:!0});async function V(e,t){return C(`/api/employee-templates/jefa/call`,{personalSpaceId:p.personalSpaceId,personalProjectId:D.value,tool:e,arguments:t})}async function H(){let e=++I;if(p.open&&(w.value=``,T.value=null,L={signature:``,id:``},D.value=p.item?.projectId??p.defaultProjectId??``,k.value=``,A.value=``,j.value=`medium`,P.value=``,F.value=``,S.value=!!p.item,p.item))try{let t=await V(`get_task`,{workItemId:p.item.id});if(e!==I)return;if(t.item.id!==p.item.id||t.item.projectId!==D.value||!t.item.updatedAt)throw Error(l(`employees.loadError`));T.value=t.item,k.value=t.item.title,A.value=t.item.summary??``,j.value=t.item.priority??`medium`,P.value=t.item.acceptanceCriteria?.join(`
2
+ `)??``,F.value=t.item.tags?.join(`, `)??``}catch(t){e===I&&(w.value=B(t))}finally{e===I&&(S.value=!1)}}async function U(){if(!R.value||h.value)return;h.value=!0;let e={title:k.value.trim(),summary:A.value.trim()||k.value.trim(),priority:j.value,acceptanceCriteria:P.value.split(`
3
+ `).map(e=>e.trim()).filter(Boolean),tags:F.value.split(/[,,]/).map(e=>e.trim()).filter(Boolean)},t=JSON.stringify([D.value,T.value?.updatedAt,e]);L.signature!==t&&(L={signature:t,id:`board-edit-${crypto.randomUUID()}`});try{T.value?await V(`update_tasks`,{requestId:L.id,updates:[{id:T.value.id,expectedUpdatedAt:T.value.updatedAt,...e}]}):await V(`create_tasks`,{messageId:L.id,tasks:[e]}),m(`saved`),m(`close`)}catch(e){w.value=B(e)}finally{h.value=!1}}function te(){h.value||m(`close`)}return(e,r)=>(i(),u(M,{open:t.open,class:`employee-dialog`,title:_(l)(t.item?`employees.task.detail`:`employees.task.create`),busy:h.value,form:``,onClose:te,onSubmit:U},{footer:n(()=>[s(O,{disabled:h.value,onClick:te},{default:n(()=>[y(g(_(l)(`employees.close`)),1)]),_:1},8,[`disabled`]),t.canWrite?(i(),u(O,{key:0,variant:`primary`,type:`submit`,disabled:!R.value,busy:h.value,"busy-label":_(l)(`employees.task.saving`)},{default:n(()=>[y(g(_(l)(`employees.task.save`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])):b(``,!0)]),default:n(()=>[S.value?(i(),u(E,{key:0,variant:`compact`,label:_(l)(`employees.loadingTask`)},null,8,[`label`])):b(``,!0),w.value?(i(),o(`div`,Ge,[x(`p`,null,g(w.value),1),s(O,{size:`sm`,disabled:h.value,onClick:H},{default:n(()=>[y(g(_(l)(`employees.task.reload`)),1)]),_:1},8,[`disabled`])])):b(``,!0),S.value?b(``,!0):(i(),o(f,{key:2},[s(N,{modelValue:D.value,"onUpdate:modelValue":r[0]||=e=>D.value=e,field:``,label:_(l)(`employees.task.project`),placeholder:_(l)(`employees.task.chooseProject`),options:ee.value,disabled:!!t.item||h.value||!t.canWrite,required:``},null,8,[`modelValue`,`label`,`placeholder`,`options`,`disabled`]),x(`label`,Ke,[y(g(_(l)(`employees.task.title`)),1),c(x(`input`,{"onUpdate:modelValue":r[1]||=e=>k.value=e,autofocus:``,minlength:`2`,maxlength:`180`,required:``,readonly:!t.canWrite,disabled:h.value},null,8,qe),[[d,k.value]])]),T.value?(i(),o(`p`,Je,g(_(l)(`employees.allProjects.status.${T.value.status}`)),1)):b(``,!0),x(`label`,Ye,[y(g(_(l)(`employees.task.summary`)),1),c(x(`textarea`,{"onUpdate:modelValue":r[2]||=e=>A.value=e,rows:`4`,maxlength:`2000`,readonly:!t.canWrite,disabled:h.value},null,8,Xe),[[d,A.value]])]),s(N,{modelValue:j.value,"onUpdate:modelValue":r[3]||=e=>j.value=e,field:``,label:_(l)(`employees.task.priority`),options:z.value,disabled:!t.canWrite||h.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),x(`label`,Ze,[y(g(_(l)(`employees.task.criteria`)),1),c(x(`textarea`,{"onUpdate:modelValue":r[4]||=e=>P.value=e,rows:`3`,readonly:!t.canWrite,disabled:h.value},null,8,Qe),[[d,P.value]])]),x(`label`,$e,[y(g(_(l)(`employees.task.tags`)),1),c(x(`input`,{"onUpdate:modelValue":r[5]||=e=>F.value=e,readonly:!t.canWrite,disabled:h.value},null,8,$),[[d,F.value]])])],64))]),_:1},8,[`open`,`title`,`busy`]))}}),tt=[`disabled`],nt={key:1,class:`employee-share-preview`,role:`status`},rt={key:2,class:`employee-share-empty`},it={key:3,class:`ui-dialog__error employee-dialog-error`,role:`alert`},at={key:4,class:`employee-share-result`},ot={class:`ui-field`},st=[`value`,`aria-label`],ct=[`href`],lt={key:5,class:`ui-meta`},ut={key:6,class:`employee-share-active`},dt={class:`employee-dialog-count`},ft=D(t({__name:`EmployeeShareDialog`,props:{open:{type:Boolean},projects:{}},emits:[`close`],setup(t,{emit:c}){let d=t,p=c,m=a([]),h=a({}),S=a({}),C=a(!1),D=a(!1),k=a(null),A=a(``),j=a(``),N=a(``),P=a(!1),F=0,I=v(()=>d.projects.filter(e=>h.value[e.id]?.publicShareEnabled)),L=v(()=>m.value.every(e=>S.value[e]!==void 0)?m.value.reduce((e,t)=>e+S.value[t],0):null),R=[`localhost`,`127.0.0.1`,`[::1]`].includes(window.location.hostname);e([()=>d.open,()=>JSON.stringify(d.projects.map(e=>e.id))],()=>{d.open?z():++F},{immediate:!0}),e(m,()=>{N.value=``,P.value=!1});function ee(e){return`/employee-workspaces/jefa/${encodeURIComponent(e)}/api`}async function z(e=!1){let t=++F;e||(m.value=[]),h.value={},S.value={},j.value=``,N.value=``,C.value=!0;let n=await Promise.allSettled(d.projects.map(async e=>{let t=(await T(`${ee(e.id)}/snapshot`)).snapshot.projects.find(t=>t.id===e.id);if(!t)throw Error(l(`employees.loadError`));let n=null,r=!1;if(t.publicShareEnabled&&t.publicShareSlug)try{n=(await W({id:e.id,slug:t.publicShareSlug})).items.length}catch{r=!0}return{state:t,count:n,previewFailed:r}}));if(t===F){for(let e of n)e.status===`fulfilled`&&(h.value[e.value.state.id]=e.value.state,e.value.count!==null&&(S.value[e.value.state.id]=e.value.count));n.some(e=>e.status===`rejected`||e.value.previewFailed)&&(j.value=l(`employees.share.loadFailed`)),C.value=!1}}async function V(){if(!m.value.length||D.value||C.value||L.value===0)return;D.value=!0,k.value=`generate`,A.value=``,j.value=``,N.value=``,P.value=!1;let e=F,t=m.value.filter(e=>d.projects.some(t=>t.id===e));try{let n=await Promise.allSettled(t.map(async t=>{if(!h.value[t])throw Error(l(`employees.share.loadFailed`));let n=h.value[t];if(!n.publicShareEnabled||!n.publicShareSlug){if(n=(await w(`/employee-workspaces/jefa/${encodeURIComponent(t)}/api/projects/${encodeURIComponent(t)}/sharing`,{publicShareEnabled:!0,acceptsPublicRequests:!1})).project,n.id!==t||!n.publicShareEnabled||!n.publicShareSlug)throw Error(l(`employees.loadError`));if(e!==F)throw Error(l(`employees.share.loadFailed`));h.value[t]=n}let r=(await W({id:t,slug:n.publicShareSlug})).items.length;if(e!==F)throw Error(l(`employees.share.loadFailed`));return S.value[t]=r,{id:t,slug:n.publicShareSlug}}));if(e!==F)return;if(n.some(e=>e.status===`rejected`))throw Error(l(`employees.share.partial`));if(t.every(e=>S.value[e]===0))throw Error(l(`employees.shareContent.emptySelection`));N.value=re(n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),window.location.origin)}catch(t){e===F&&(j.value=B(t))}finally{D.value=!1,k.value=null,A.value=``}}async function H(e){if(!D.value){D.value=!0,k.value=`revoke`,A.value=e,j.value=``,N.value=``,P.value=!1;try{let t=await w(`/employee-workspaces/jefa/${encodeURIComponent(e)}/api/projects/${encodeURIComponent(e)}/sharing`,{publicShareEnabled:!1,acceptsPublicRequests:!1});if(t.project.id!==e||t.project.publicShareEnabled)throw Error(l(`employees.loadError`));h.value[e]=t.project,delete S.value[e]}catch(e){j.value=B(e)}finally{D.value=!1,k.value=null,A.value=``}}}async function te(){try{await navigator.clipboard.writeText(N.value),P.value=!0}catch{j.value=l(`employees.share.copyFailed`)}}function ne(){D.value||p(`close`)}return(e,a)=>(i(),u(M,{open:t.open,class:`employee-dialog employee-share-dialog`,title:_(l)(`employees.share.title`),description:_(l)(`employees.share.disclosure`),busy:D.value,onClose:ne},{footer:n(()=>[x(`span`,dt,g(_(l)(`employees.scope.count`,{selected:m.value.length,total:t.projects.length})),1),s(O,{variant:`primary`,disabled:!m.value.length||D.value||C.value||L.value===0,busy:k.value===`generate`,"busy-label":_(l)(`employees.share.generating`),onClick:V},{default:n(()=>[y(g(_(l)(`employees.share.generate`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`])]),default:n(()=>[C.value?(i(),u(E,{key:0,variant:`compact`,label:_(l)(`employees.loadingShare`)},null,8,[`label`])):b(``,!0),x(`fieldset`,{disabled:D.value||C.value},[s(U,{modelValue:m.value,"onUpdate:modelValue":a[0]||=e=>m.value=e,projects:t.projects,disabled:D.value||C.value,inline:``,label:_(l)(`employees.share.projects`),hint:_(l)(`employees.share.scopeHint`)},null,8,[`modelValue`,`projects`,`disabled`,`label`,`hint`])],8,tt),m.value.length&&!C.value?(i(),o(`p`,nt,[y(g(L.value===null?_(l)(`employees.shareContent.verifyContent`):_(l)(`employees.shareContent.publicCount`,{count:L.value}))+` `,1),s(O,{size:`sm`,variant:`ghost`,disabled:D.value||C.value,onClick:a[1]||=e=>z(!0)},{default:n(()=>[y(g(_(l)(`common.actions.refresh`)),1)]),_:1},8,[`disabled`])])):b(``,!0),m.value.length&&!C.value&&L.value===0?(i(),o(`p`,rt,g(_(l)(`employees.shareContent.emptySelection`)),1)):b(``,!0),j.value?(i(),o(`div`,it,[x(`p`,null,g(j.value),1),D.value?b(``,!0):(i(),u(O,{key:0,size:`sm`,onClick:a[2]||=e=>z(!0)},{default:n(()=>[y(g(_(l)(`employees.retry`)),1)]),_:1}))])):b(``,!0),N.value?(i(),o(`div`,at,[x(`label`,ot,[y(g(_(l)(`employees.share.link`)),1),x(`input`,{value:N.value,readonly:``,"aria-label":_(l)(`employees.share.link`),onFocus:a[3]||=e=>e.target.select()},null,40,st)]),x(`div`,null,[s(O,{size:`sm`,onClick:te},{default:n(()=>[y(g(_(l)(P.value?`employees.share.copied`:`employees.share.copy`)),1)]),_:1}),x(`a`,{href:N.value,target:`_blank`,rel:`noreferrer`},g(_(l)(`employees.share.preview`)),9,ct)])])):b(``,!0),_(R)?(i(),o(`p`,lt,g(_(l)(`employees.share.local`)),1)):b(``,!0),I.value.length?(i(),o(`section`,ut,[x(`h3`,null,g(_(l)(`employees.share.active`)),1),(i(!0),o(f,null,r(I.value,e=>(i(),o(`div`,{key:e.id},[x(`span`,null,g(e.name),1),s(O,{size:`sm`,variant:`ghost`,disabled:D.value,busy:k.value===`revoke`&&A.value===e.id,"busy-label":_(l)(`employees.share.revoking`),onClick:t=>H(e.id)},{default:n(()=>[y(g(_(l)(`employees.share.revoke`)),1)]),_:1},8,[`disabled`,`busy`,`busy-label`,`onClick`])]))),128))])):b(``,!0)]),_:1},8,[`open`,`title`,`description`,`busy`]))}}),[[`__scopeId`,`data-v-50bf5065`]]);function pt(e){return`fuli:jefa:project-filter:v1:${encodeURIComponent(e)}`}function mt(t){let n=A(),r=k(),i=a(null),o=a(!1),s=a(!1),c=!1,l=``,u=!0;e([t.enabled,t.spaceId],([e,t])=>{let n=e?t:``;if(n!==l&&(u=!l||!n,l=n,i.value=null,c=!1,o.value=!1,s.value=!1,l))try{let e=localStorage.getItem(pt(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())&&(i.value=[...new Set(t.projectIds)],c=!0)}catch(e){s.value=!(e instanceof SyntaxError)}},{immediate:!0,flush:`sync`});function d(){if(l)try{let e=pt(l);i.value===null?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify({version:1,projectIds:i.value})),s.value=!1}catch{s.value=!0}}function f(){let e=n.query.project;return[...new Set((Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`&&!!e))]}function p(){return[n.query.empty].flat().includes(`1`)}function m(e){return!e.length&&!p()||e.length===1&&[`all`,`__all__`].includes(e[0])}let h=v(()=>t.projectIds.value.filter(e=>i.value===null||i.value.includes(e)));function g(){if(!t.enabled.value||!l||!t.ready.value||!c)return;let e=h.value,a=f(),o=i.value===null||e.length>0&&e.length===t.projectIds.value.length;o&&n.query.project===`all`&&n.query.empty===void 0||i.value!==null&&!m(a)&&a.length===e.length&&a.every(t=>e.includes(t))&&(e.length>0||n.query.empty===`1`)||r.replace({query:{...n.query,project:o?`all`:e.length?e:``,empty:o||e.length?void 0:`1`}})}e([t.enabled,t.spaceId,t.ready,t.projectIds,()=>n.query.project,()=>n.query.empty],()=>{if(!(!t.enabled.value||!l||!t.ready.value)){if(!c){let e=f(),n=!u||m(e);if(o.value=!n&&e.some(e=>!t.projectIds.value.includes(e)),o.value)return;i.value=n?null:[...new Set(e)],c=!0,n||d()}g()}},{immediate:!0});let _=v({get:()=>h.value,set:e=>{if(!t.enabled.value||!l||!t.ready.value)return;let n=i.value?.filter(e=>!t.projectIds.value.includes(e))??[];i.value=[...new Set([...n,...e.filter(e=>t.projectIds.value.includes(e))])],c=!0,o.value=!1,d(),g()}});function y(){i.value=null,c=!0,o.value=!1,d(),g()}return{selection:_,reset:y,invalidScope:o,storageUnavailable:s}}var ht=[`aria-label`],gt={class:`judgment-workbench-heading`},_t={class:`judgment-workbench-actions`},vt=[`disabled`],yt=[`disabled`],bt={key:2,class:`judgment-workbench-error`,role:`alert`},xt=[`disabled`],St={key:3,class:`judgment-workbench-error`,role:`alert`},Ct=[`aria-label`],wt=[`aria-pressed`],Tt=[`aria-pressed`],Et={key:4,class:`judgment-workbench-empty`},Dt={key:5,class:`judgment-record-list`},Ot={class:`judgment-record-heading`},kt={class:`judgment-record-kind`},At={class:`judgment-record-summary`},jt={class:`judgment-record-meta`},Mt={key:0},Nt={key:1},Pt={key:2},Ft={key:0,class:`judgment-record-evidence`},It={key:1,class:`judgment-record-details`,"data-judgment-details":``},Lt={class:`judgment-record-detail-list`},Rt={key:0},zt={key:1},Bt={key:0,class:`judgment-record-detail-block`},Vt={key:0},Ht={key:1,class:`judgment-record-detail-block`},Ut={key:2,class:`judgment-record-detail-block`},Wt=[`aria-label`],Gt={class:`judgment-feedback-editor`,"data-feedback-editor":``},Kt={"data-feedback-toggle":``},qt={class:`judgment-feedback-editor-row`},Jt=[`for`],Yt=[`id`,`onUpdate:modelValue`,`disabled`,`onInput`,`onKeydown`],Xt=[`aria-label`,`title`,`disabled`,`onClick`],Zt={class:`judgment-feedback-actions`},Qt=[`aria-label`,`aria-pressed`,`title`,`disabled`,`onClick`],$t={class:`visually-hidden`},en=[`aria-label`,`aria-pressed`,`title`,`disabled`,`onClick`],tn={class:`visually-hidden`},nn=D(t({__name:`JudgmentWorkbench`,props:{personalSpaceId:{}},setup(t){let n=t,s=a([]),l=a(!1),y=a(``),S=a(``),C=a(`human`),w=a(!1),T=a(null),D=a({}),O=a(new Set),k=0,A=0,j=0,M=0,N=v(()=>[...C.value===`human`?s.value.filter(G):s.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt))),P=v(()=>l.value||w.value);e(()=>n.personalSpaceId,e=>{k+=1,j+=1,M+=1,s.value=[],D.value={},O.value=new Set,y.value=``,S.value=``,w.value=!1,T.value=null,L(e)},{immediate:!0});function F(e,t){return n.personalSpaceId===e&&k===t}function I(e){let t={};for(let n of e)t[n.id]=O.value.has(n.id)?D.value[n.id]??``:n.feedback?.reason??``;s.value=e,D.value=t}async function L(e){let t=typeof e==`string`?e:n.personalSpaceId,r=k,i=++A;if(y.value=``,!t||!F(t,r)){l.value=!1;return}l.value=!0;try{let e=await K(t);F(t,r)&&i===A&&I(Array.isArray(e.records)?e.records:[])}catch(e){F(t,r)&&i===A&&(y.value=e instanceof Error?e.message:J(`workbench.loadError`))}finally{F(t,r)&&i===A&&(l.value=!1)}}async function R(){if(!n.personalSpaceId||w.value)return;let e=n.personalSpaceId,t=k,r=++j;w.value=!0,S.value=``;try{let n=await q(e,void 0,10);if(!F(e,t)||r!==j)return;let i=new Map(s.value.map(e=>[e.id,e]));for(let e of n.records??[])i.set(e.id,e);I([...i.values()])}catch(n){F(e,t)&&r===j&&(S.value=n instanceof Error?n.message:J(`workbench.reviewError`))}finally{F(e,t)&&r===j&&(w.value=!1)}}function ee(e){return e&&typeof e==`object`&&`status`in e&&typeof e.status==`number`?e.status:null}function z(e){return(D.value[e.id]??e.feedback?.reason??``).trim().slice(0,1e3)}function B(e){let t=new Set(O.value);t.add(e),O.value=t}function V(e){let t=s.value.findIndex(t=>t.id===e.id);t>=0&&s.value.splice(t,1,e);let n=new Set(O.value);n.delete(e.id),O.value=n,D.value={...D.value,[e.id]:e.feedback?.reason??``}}async function H(e,t){if(T.value)return;let r=n.personalSpaceId,i=k,a=++M;if(!(!r||!F(r,i))){T.value=e.id,y.value=``;try{let n=await ae(r,e.id,t,z(e),e.feedback.revision);F(r,i)&&a===M&&V(n)}catch(e){if(!F(r,i)||a!==M)return;ee(e)===409?(await L(r),F(r,i)&&(y.value=J(`workbench.feedbackConflict`))):y.value=e instanceof Error?e.message:J(`workbench.reviewError`)}finally{F(r,i)&&a===M&&(T.value=null)}}}function U(e,t){H(e,e.feedback.vote===t?null:t)}function te(e){H(e,e.feedback.vote)}function ne(e){return!e||Number.isNaN(Date.parse(e))?J(`workbench.timeUnknown`):new Date(e).toLocaleString()}function re(e){return J(`workbench.outcome.${e}`)}function W(e){return J(`workbench.executionStatus.${e}`)}function ie(e){return J(`workbench.kind.${e}`)}function oe(e){return e.policy?[e.policy.mode?J(`mode.${e.policy.mode}`):``,e.policy.quality?J(`quality.${e.policy.quality}`):``,e.policy.client?J(`client.${e.policy.client}`):``].filter(Boolean).join(` · `):`—`}function se(e){return e===`codex`||e===`claude_code`?J(`client.${e}`):e||``}function Y(e){return[se(e.client),e.model||``].filter(Boolean).join(` · `)}function X(e){return e.selection?[e.selection.executorId,e.selection.model,se(e.selection.client)].filter(Boolean).join(` · `):``}function ce(e,t=4e3){if(typeof e==`string`)return e.slice(0,t);if(e==null)return``;try{let n=JSON.stringify(e,null,2);return typeof n==`string`?n.slice(0,t):``}catch{return J(`workbench.detailsUnavailable`)}}function le(e){let t=e.execution?.receipt;if(!t||typeof t!=`object`)return``;let n=t.reason;return typeof n==`string`?n:``}function ue(e){return!!(e.sessionId||e.error||e.execution?.receipt||e.feedbackHistory?.length||e.executionHistory?.length)}return(e,t)=>(i(),o(`section`,{class:`judgment-workbench`,"aria-label":_(J)(`workbench.aria`)},[x(`header`,gt,[x(`div`,null,[x(`h2`,null,g(_(J)(`workbench.title`)),1),x(`p`,null,g(_(J)(`workbench.subtitle`)),1)]),x(`div`,_t,[w.value?(i(),u(E,{key:0,variant:`inline`,label:_(J)(`workbench.reviewing`)},null,8,[`label`])):b(``,!0),x(`button`,{class:`quiet-button`,type:`button`,disabled:P.value,onClick:L},g(_(J)(`workbench.refresh`)),9,vt),x(`button`,{class:`ui-button ui-button--primary`,type:`button`,"data-action":`review`,disabled:P.value||!n.personalSpaceId,onClick:R},g(_(J)(`workbench.review`)),9,yt)])]),l.value&&!s.value.length?(i(),u(E,{key:0,variant:`compact`,label:_(J)(`workbench.loading`)},null,8,[`label`])):l.value?(i(),u(E,{key:1,variant:`inline`,label:_(J)(`workbench.loading`)},null,8,[`label`])):b(``,!0),y.value?(i(),o(`div`,bt,[x(`span`,null,g(y.value),1),x(`button`,{class:`quiet-button`,type:`button`,disabled:P.value,onClick:L},g(_(J)(`workbench.retry`)),9,xt)])):b(``,!0),S.value?(i(),o(`div`,St,g(S.value),1)):b(``,!0),x(`div`,{class:`judgment-filter`,role:`group`,"aria-label":_(J)(`workbench.title`)},[x(`button`,{type:`button`,"data-filter":`human`,"aria-pressed":C.value===`human`,onClick:t[0]||=e=>C.value=`human`},g(_(J)(`workbench.human`)),9,wt),x(`button`,{type:`button`,"data-filter":`all`,"aria-pressed":C.value===`all`,onClick:t[1]||=e=>C.value=`all`},g(_(J)(`workbench.all`)),9,Tt)],8,Ct),!l.value&&!y.value&&!N.value.length?(i(),o(`div`,Et,g(_(J)(C.value===`human`?`workbench.emptyHuman`:`workbench.empty`)),1)):(i(),o(`div`,Dt,[(i(!0),o(f,null,r(N.value,e=>(i(),o(`article`,{key:e.id,"data-decision-card":``,class:m([`judgment-record-card`,{"is-human-needed":_(G)(e)}])},[x(`header`,Ot,[x(`div`,null,[x(`span`,kt,g(ie(e.kind)),1),x(`h3`,null,g(e.title||e.objective||ie(e.kind)),1)]),x(`span`,{class:m([`judgment-outcome`,`is-${e.outcome}`])},g(re(e.outcome)),3)]),x(`p`,At,g(e.summary),1),x(`dl`,jt,[x(`div`,null,[x(`dt`,null,g(_(J)(`workbench.execution`)),1),x(`dd`,null,g(W(e.execution.status)),1)]),x(`div`,null,[x(`dt`,null,g(_(J)(`workbench.policy`)),1),x(`dd`,null,g(oe(e)),1)]),e.client||e.model?(i(),o(`div`,Mt,[x(`dt`,null,g(_(J)(`workbench.source`)),1),x(`dd`,null,g(Y(e)),1)])):b(``,!0),e.disposition?(i(),o(`div`,Nt,[x(`dt`,null,g(_(J)(`workbench.disposition`)),1),x(`dd`,null,g(_(J)(`workbench.actions.${e.disposition}`)),1)])):b(``,!0),e.selection?(i(),o(`div`,Pt,[x(`dt`,null,g(_(J)(`workbench.selection`)),1),x(`dd`,null,g(X(e)),1)])):b(``,!0),x(`div`,null,[t[2]||=x(`dt`,null,null,-1),x(`dd`,null,g(ne(e.createdAt)),1)])]),e.evidence.length?(i(),o(`section`,Ft,[x(`h4`,null,g(_(J)(`workbench.evidence`)),1),x(`ul`,null,[(i(!0),o(f,null,r(e.evidence,e=>(i(),o(`li`,{key:e},g(e),1))),128))])])):b(``,!0),ue(e)?(i(),o(`details`,It,[x(`summary`,null,g(_(J)(`workbench.details`)),1),x(`dl`,Lt,[e.sessionId?(i(),o(`div`,Rt,[x(`dt`,null,g(_(J)(`workbench.session`)),1),x(`dd`,null,[x(`code`,null,g(e.sessionId),1)])])):b(``,!0),e.error?(i(),o(`div`,zt,[x(`dt`,null,g(_(J)(`workbench.recordError`)),1),x(`dd`,null,g(ce(e.error,1e3)),1)])):b(``,!0)]),e.execution.receipt?(i(),o(`section`,Bt,[x(`h4`,null,g(_(J)(`workbench.receipt`)),1),le(e)?(i(),o(`p`,Vt,g(le(e)),1)):b(``,!0),x(`pre`,null,g(ce(e.execution.receipt,3e3)),1)])):b(``,!0),e.feedbackHistory?.length?(i(),o(`section`,Ht,[x(`h4`,null,g(_(J)(`workbench.feedbackHistory`)),1),(i(!0),o(f,null,r(e.feedbackHistory.slice(-5),(e,t)=>(i(),o(`pre`,{key:`${t}-${ce(e,200)}`},g(ce(e,1200)),1))),128))])):b(``,!0),e.executionHistory?.length?(i(),o(`section`,Ut,[x(`h4`,null,g(_(J)(`workbench.executionHistory`)),1),(i(!0),o(f,null,r(e.executionHistory.slice(-5),(e,t)=>(i(),o(`pre`,{key:`${t}-${ce(e,200)}`},g(ce(e,1200)),1))),128))])):b(``,!0)])):b(``,!0),x(`section`,{class:`judgment-record-feedback`,"aria-label":_(J)(`workbench.feedback`)},[x(`details`,Gt,[x(`summary`,Kt,g(D.value[e.id]?_(J)(`workbench.feedbackReasonSaved`):_(J)(`workbench.feedbackReasonAdd`)),1),x(`div`,qt,[x(`label`,{class:`visually-hidden`,for:`judgment-feedback-${e.id}`},g(_(J)(`workbench.feedbackReason`)),9,Jt),c(x(`textarea`,{id:`judgment-feedback-${e.id}`,"onUpdate:modelValue":t=>D.value[e.id]=t,"data-feedback-reason":``,rows:`2`,maxlength:`1000`,disabled:T.value===e.id,onInput:t=>B(e.id),onKeydown:h(p(t=>te(e),[`exact`,`prevent`]),[`enter`])},null,40,Yt),[[d,D.value[e.id]]]),x(`button`,{class:`judgment-save-reason`,type:`button`,"data-save-reason":``,"aria-label":_(J)(`workbench.saveReason`),title:_(J)(`workbench.saveReason`),disabled:T.value===e.id,onClick:t=>te(e)},[...t[3]||=[x(`span`,{"aria-hidden":`true`},`✓`,-1)]],8,Xt)])]),x(`div`,Zt,[x(`button`,{type:`button`,"data-feedback":`up`,"aria-label":_(J)(`workbench.feedbackUp`),"aria-pressed":e.feedback.vote===`up`,title:_(J)(`workbench.feedbackUp`),disabled:T.value===e.id,onClick:t=>U(e,`up`)},[t[4]||=x(`span`,{"aria-hidden":`true`},`👍`,-1),x(`span`,$t,g(_(J)(`workbench.feedbackUp`)),1)],8,Qt),x(`button`,{type:`button`,"data-feedback":`down`,"aria-label":_(J)(`workbench.feedbackDown`),"aria-pressed":e.feedback.vote===`down`,title:_(J)(`workbench.feedbackDown`),disabled:T.value===e.id,onClick:t=>U(e,`down`)},[t[5]||=x(`span`,{"aria-hidden":`true`},`👎`,-1),x(`span`,tn,g(_(J)(`workbench.feedbackDown`)),1)],8,en),T.value===e.id?(i(),u(E,{key:0,"data-feedback-saving":``,variant:`inline`,label:_(J)(`workbench.feedbackSaving`)},null,8,[`label`])):b(``,!0)])],8,Wt)],2))),128))]))],8,ht))}}),[[`__scopeId`,`data-v-2cae6841`]]),rn=[`aria-label`],an={class:`employee-workbench-toolbar`},on={class:`employee-workbench-identity`},sn={class:`employee-workbench-mark`,"aria-hidden":`true`},cn=[`src`],ln=[`aria-label`,`title`],un={class:`employee-workbench-actions`},dn=[`disabled`],fn={key:4,class:`employee-workbench-state`,role:`alert`},pn={key:5,class:`employee-workbench-state`},mn={key:8,class:`employee-workbench-state`},hn={key:9,class:`employee-workbench-state`},gn={key:11,class:`employee-workbench-state`},_n=[`src`,`title`],vn=`all`,yn=D(t({__name:`EmployeeWorkbenchPage`,setup(t){let r=A(),c=k(),d=S(),p=a(``),m=a(null),h=a([]),D=a([]),O=a([]),M=a([]),N=a(``),P=a(``),I=a(!1),R=a(!1),U=a(!1),re=a(!1),W=a(!1),ie=a(!1),ae=a(null),G=v(()=>d.activePersonalSpace?.id??``),K=v(()=>String(r.params.templateId??``)),q=v(()=>ee.value.find(e=>e.id===K.value)),J=v(()=>{let e=q.value?.workbench;return e?.kind===`native`?e.view??null:null}),oe=v(()=>J.value===`people`),se=v(()=>J.value===`judgment`),Y=v(()=>oe.value||se.value),X=v(()=>K.value===`jefa`),ce=v(()=>!d.state&&(d.runtimeStatus===`idle`||d.runtimeStatus===`loading`)||!R.value||I.value),le=v(()=>d.state?z.value||!R.value?l(`employees.loading`):l(`employees.loadingBoard`):l(`common.status.loadingConsole`)),ue=v(()=>!d.state&&d.runtimeStatus===`error`?d.feedback?.message||l(`employees.loadError`):``),de=v(()=>ue.value||H.value||(X.value&&pe.invalidScope.value?l(`employees.invalidScope`):P.value)),Z=v(()=>q.value?.managedProjects===void 0?(q.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})):q.value.managedProjects.map(e=>({value:e.id,label:e.name}))),fe=v(()=>JSON.stringify([...new Set(Z.value.map(e=>e.value))].sort()));e(G,e=>{R.value=!1,V(e)},{immediate:!0});let pe=mt({enabled:X,spaceId:G,projectIds:v(()=>Z.value.map(e=>e.value)),ready:v(()=>!z.value&&!H.value&&!!q.value)}),me=v({get:()=>{if(X.value)return pe.selection.value;let e=new Set(O.value);return Z.value.filter(t=>!e.has(t.value)).map(e=>e.value)},set:e=>{if(X.value){pe.selection.value=e;return}let t=new Set(Z.value.map(e=>e.value)),n=new Set(e);O.value=[...O.value.filter(e=>!t.has(e)),...Z.value.filter(e=>!n.has(e.value)).map(e=>e.value)]}}),he=v(()=>{let e=new Set(me.value);return h.value.filter(t=>e.has(t.project.id))}),ge=v(()=>{let e=new Set(me.value);return D.value.filter(t=>e.has(t)).length}),_e=v(()=>q.value?.runtimeStatus===`ready`&&q.value.permissions.includes(`board.read`)&&Z.value.length>0),ve=v(()=>_e.value?[{value:vn,label:l(`employees.allProjects.option`),meta:l(`employees.allProjects.optionMeta`,{count:Z.value.length})},...Z.value]:Z.value),ye=0;e([K,G],()=>{O.value=[],ie.value=!1,W.value=!1,ae.value=null}),e([ve,()=>r.query.project,()=>r.query.empty,K,Y],()=>{if(Y.value){if(++ye,p.value=``,I.value=!1,P.value=``,r.query.project!==void 0){let{project:e,...t}=r.query;c.replace({query:t})}return}if(X.value){p.value=Z.value.length?vn:``;return}let e=typeof r.query.project==`string`?r.query.project:``,t=ve.value;p.value=e||(t.some(e=>e.value===p.value)?p.value:t[0]?.value??``),!e&&p.value&&c.replace({query:{...r.query,project:p.value}})},{immediate:!0}),e([K,p,G,_e,R],()=>{!Y.value&&R.value&&Q()},{immediate:!0}),e(z,e=>{if(!e){if(!R.value){R.value=!0;return}U.value&&(U.value=!1,Q())}},{immediate:!0}),e(pe.invalidScope,e=>{!e&&X.value&&R.value&&Q()}),e(fe,(e,t)=>{e===t||!R.value||Y.value||Q()});async function Q(){let e=++ye;if(m.value=null,h.value=[],D.value=[],N.value=``,P.value=``,Y.value||!q.value||!p.value||!G.value){I.value=!1;return}if(X.value&&!_e.value){I.value=!1;return}if(X.value&&pe.invalidScope.value){I.value=!1;return}if(z.value){U.value=!0,I.value=!0;return}U.value=!1;let t=K.value,n=p.value;I.value=!0;try{if(n===vn&&_e.value){let n=await Promise.all(Z.value.map(async e=>{try{let n=await C(`/api/employee-templates/${encodeURIComponent(t)}/call`,{personalSpaceId:G.value,personalProjectId:e.value,tool:`read_board`,arguments:{limit:100}}),r=Array.isArray(n.items)?n.items.filter(Te).filter(t=>t.projectId===e.value):[],i=n.truncated;if(t===`jefa`&&i)try{let t=await T(`/employee-workspaces/jefa/${encodeURIComponent(e.value)}/api/snapshot`);if(!Array.isArray(t.snapshot.workItems))throw Error(`Invalid board snapshot`);r=t.snapshot.workItems.filter(Te).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!==ye)return;h.value=n.filter(e=>e.ok).map(e=>e.board),D.value=n.flatMap(e=>e.ok?[]:[e.projectId]),!h.value.length&&D.value.length&&(P.value=B(n.find(e=>!e.ok)?.cause));return}let r=await T(`/api/employee-templates/${encodeURIComponent(t)}/workspace?${new URLSearchParams({personalSpaceId:G.value,personalProjectId:n})}`),i=`/employee-workspaces/${encodeURIComponent(t)}/${encodeURIComponent(n)}/`;if(r.workbenchUrl!==i)throw Error(l(`employees.loadError`));e===ye&&(m.value=r)}catch(t){e===ye&&(P.value=B(t))}finally{e===ye&&(I.value=!1)}}function be(e=null){ae.value=e,ie.value=!0}function xe(e){return`${e.projectId}:${e.id}`}function Se(e,t,n){h.value=h.value.map(r=>r.project.id===e?{...r,items:r.items.map(e=>e.id===t?n:e)}:r)}function Ce(){return`aggregate-board-move-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}`}async function we(e,t){if(e.status===t)return;let n=xe(e);if(M.value.includes(n))return;let r=`${K.value}:${G.value}`,i={...e,status:t};N.value=``,M.value=[...M.value,n],Se(e.projectId,e.id,i);try{let n;if(K.value===`jefa`&&t===`done`)n=(await w(`/employee-workspaces/${encodeURIComponent(K.value)}/${encodeURIComponent(e.projectId)}/api/work-items/${encodeURIComponent(e.id)}/status`,{status:t})).workItem;else{if(!e.updatedAt)throw Error(l(`employees.allProjects.refreshRequired`));n=(await C(`/api/employee-templates/${encodeURIComponent(K.value)}/call`,{personalSpaceId:G.value,personalProjectId:e.projectId,tool:`update_tasks`,arguments:{requestId:Ce(),updates:[{id:e.id,expectedUpdatedAt:e.updatedAt,status:t}]}})).updatedWorkItems?.find(t=>t.id===e.id)}if(`${K.value}:${G.value}`!==r)return;if(!n||!Te(n)||n.projectId!==e.projectId||n.id!==e.id||!n.updatedAt)throw Error(l(`employees.allProjects.refreshRequired`));Se(e.projectId,e.id,n)}catch(t){if(`${K.value}:${G.value}`!==r)return;Se(e.projectId,e.id,e),N.value=l(`employees.allProjects.moveFailed`,{error:B(t)})}finally{M.value=M.value.filter(e=>e!==n)}}function Te(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 Ee(){if(!d.state){await d.refresh();return}await V(G.value),H.value||await Q()}async function De(){if(X.value){await c.replace({query:{...r.query,project:vn,empty:void 0}}),await Q();return}let e=p.value===vn&&_e.value?vn:Z.value.find(e=>e.value===p.value)?.value??ve.value[0]?.value;await c.replace({query:e?{project:e}:{}}),await Q()}return(e,t)=>(i(),o(`section`,{class:`employee-workbench-view`,"aria-label":q.value?.name??_(l)(`employees.workbench`)},[x(`header`,an,[x(`div`,on,[x(`span`,sn,[_(F)(K.value)?(i(),o(`img`,{key:0,src:_(F)(K.value),alt:``},null,8,cn)):(i(),o(f,{key:1},[y(g(q.value?.name.slice(0,1)??`A`),1)],64))]),x(`h1`,null,[y(g(q.value?.name??_(l)(`employees.workbench`))+` `,1),x(`span`,null,g(q.value?.role),1)]),X.value&&_e.value?(i(),o(`button`,{key:0,class:`employee-share-button`,type:`button`,"aria-label":_(l)(`employees.share.title`),title:_(l)(`employees.share.title`),onClick:t[0]||=e=>W.value=!0},[...t[8]||=[x(`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`},[x(`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`}),x(`path`,{d:`M7 16v-3m4 3v-1`})],-1)]],8,ln)):b(``,!0)]),x(`div`,un,[Y.value&&q.value?.agentId&&G.value?(i(),u(_(j),{key:0,class:`employee-native-link`,to:_(L)(G.value,q.value.agentId),title:_(l)(`agentProfiles.profile`)},{default:n(()=>[y(g(_(l)(`agentProfiles.profile`)),1)]),_:1},8,[`to`,`title`])):b(``,!0),q.value&&!Y.value?(i(),o(`button`,{key:1,class:`employee-manage-projects`,type:`button`,disabled:!G.value,onClick:t[1]||=e=>re.value=!0},[t[9]||=x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"aria-hidden":`true`},[x(`path`,{d:`M4 7h9m4 0h3M4 17h3m4 0h9`}),x(`circle`,{cx:`15`,cy:`7`,r:`2`}),x(`circle`,{cx:`9`,cy:`17`,r:`2`})],-1),y(` `+g(_(l)(`employees.manageProjects`)),1)],8,dn)):b(``,!0)])]),Y.value?b(``,!0):(i(),u(te,{key:0,open:re.value,"personal-space-id":G.value,projects:_(d).state?.personalProjects??[],"template-id":K.value,onClose:t[2]||=e=>re.value=!1,onRecruited:De},null,8,[`open`,`personal-space-id`,`projects`,`template-id`])),X.value?(i(),u(et,{key:1,open:ie.value,item:ae.value,projects:Z.value.map(e=>({id:e.value,name:e.label})),"default-project-id":me.value.length===1?me.value[0]:void 0,"personal-space-id":G.value,"can-write":q.value?.permissions.includes(`board.write`)??!1,onClose:t[3]||=e=>ie.value=!1,onSaved:Q},null,8,[`open`,`item`,`projects`,`default-project-id`,`personal-space-id`,`can-write`])):b(``,!0),X.value?(i(),u(ft,{key:2,open:W.value,projects:Z.value.map(e=>({id:e.value,name:e.label})),onClose:t[4]||=e=>W.value=!1},null,8,[`open`,`projects`])):b(``,!0),ce.value?(i(),u(E,{key:3,label:le.value},null,8,[`label`])):de.value?(i(),o(`div`,fn,[x(`p`,null,g(de.value),1),x(`button`,{class:`quiet-button`,type:`button`,onClick:Ee},g(_(l)(`employees.retry`)),1)])):q.value?oe.value?(i(),u(We,{key:6,"personal-space-id":G.value,projects:_(d).state?.personalProjects??[]},null,8,[`personal-space-id`,`projects`])):se.value?(i(),u(nn,{key:7,"personal-space-id":G.value},null,8,[`personal-space-id`])):X.value&&q.value.runtimeStatus!==`ready`?(i(),o(`div`,mn,[x(`p`,null,g(_(l)(`employees.installRequired`)),1),x(`small`,null,g(_(l)(`employees.installHelp`)),1)])):p.value?p.value===vn&&_e.value?(i(),u(ne,{key:10,"visible-project-ids":me.value,"onUpdate:visibleProjectIds":t[6]||=e=>me.value=e,boards:he.value,projects:Z.value.map(e=>({id:e.value,name:e.label})),"failed-projects":ge.value,"can-move-tasks":q.value.permissions.includes(`board.write`),"moving-item-keys":M.value,"action-error":N.value,"resettable-filter":X.value,"filter-storage-unavailable":_(pe).storageUnavailable.value,onResetProjectFilter:_(pe).reset,onMoveTask:we,onSelectTask:be,onCreateTask:t[7]||=e=>be(),onRetry:Q},null,8,[`visible-project-ids`,`boards`,`projects`,`failed-projects`,`can-move-tasks`,`moving-item-keys`,`action-error`,`resettable-filter`,`filter-storage-unavailable`,`onResetProjectFilter`])):m.value&&m.value.runtimeStatus!==`ready`?(i(),o(`div`,gn,[x(`p`,null,g(_(l)(`employees.installRequired`)),1),x(`small`,null,g(_(l)(`employees.installHelp`)),1)])):m.value?(i(),o(`iframe`,{key:m.value.workbenchUrl,src:m.value.workbenchUrl,title:`${m.value.name} · ${m.value.project.name}`,class:`employee-workbench-frame`},null,8,_n)):b(``,!0):(i(),o(`div`,hn,[x(`h2`,null,g(_(l)(`employees.emptyWorkbench`)),1),x(`p`,null,g(_(l)(`employees.manageHint`)),1),x(`button`,{class:`quiet-button`,type:`button`,onClick:t[5]||=e=>re.value=!0},g(_(l)(`employees.manageProjects`)),1)])):(i(),o(`div`,pn,[x(`p`,null,g(_(l)(`employees.unavailable`)),1),s(_(j),{to:`/project-agents`},{default:n(()=>[y(g(_(l)(`employees.backToAgents`)),1)]),_:1})]))],8,rn))}}),[[`__scopeId`,`data-v-a8213486`]]);export{yn as default};