fuli-context 0.8.2 → 0.8.3

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 (65) hide show
  1. package/README.md +11 -7
  2. package/README.zh-CN.md +8 -7
  3. package/dist/web/assets/{AboutPage-fBq5VFoQ.js → AboutPage-HLhChD_Q.js} +1 -1
  4. package/dist/web/assets/{AgentHand-CMZk5GjY.js → AgentHand-BaLSbn08.js} +1 -1
  5. package/dist/web/assets/{AgentName-DRZHAIB2.js → AgentName-0PIU7MOX.js} +1 -1
  6. package/dist/web/assets/{AgentProfilePage-BPQEfMhB.js → AgentProfilePage-9cSsZHnk.js} +1 -1
  7. package/dist/web/assets/{AgentsDirectoryPage-CKZfrcuD.js → AgentsDirectoryPage-7G02Xm6C.js} +1 -1
  8. package/dist/web/assets/{ConnectionsPage-COb56qnk.js → ConnectionsPage-D0wPYbwd.js} +1 -1
  9. package/dist/web/assets/{EmployeeRecruitDialog-BLTpjCcK.js → EmployeeRecruitDialog-BrPH3e50.js} +1 -1
  10. package/dist/web/assets/{EmployeeWorkbenchPage-HUd-gne2.js → EmployeeWorkbenchPage-u-jw38PW.js} +1 -1
  11. package/dist/web/assets/{GrowthLoading-Bu_kH-I8.js → GrowthLoading-DFOy-mEl.js} +1 -1
  12. package/dist/web/assets/{KnowledgeEditDialog-BTwXXRCD.js → KnowledgeEditDialog-DBsjlkDr.js} +1 -1
  13. package/dist/web/assets/{KnowledgeInspector-Ct5hl2--.js → KnowledgeInspector-C79hbuOo.js} +1 -1
  14. package/dist/web/assets/{KnowledgeOrganizerPage-DMC8Hh43.js → KnowledgeOrganizerPage-Cz1BnAtz.js} +1 -1
  15. package/dist/web/assets/KnowledgePage-JyfFFUrg.js +1 -0
  16. package/dist/web/assets/{KnowledgeWorkspace-DmHIc0jb.js → KnowledgeWorkspace-B2vj12QG.js} +1 -1
  17. package/dist/web/assets/{NotFoundPage-C0yOR9T9.js → NotFoundPage-D340EQJP.js} +1 -1
  18. package/dist/web/assets/{OverviewPage-BreX_kb4.js → OverviewPage-BKiYudrC.js} +1 -1
  19. package/dist/web/assets/{PersonalProfilePage-CX1a6_E3.js → PersonalProfilePage-BIGTcem2.js} +1 -1
  20. package/dist/web/assets/PersonalProjectsPage-CzjDCIi0.js +1 -0
  21. package/dist/web/assets/{ProjectAgentsPage-CA04h1Uf.js → ProjectAgentsPage-C5F2WgwJ.js} +4 -4
  22. package/dist/web/assets/ProjectAgentsPage-C89ZEDgi.css +1 -0
  23. package/dist/web/assets/{ProjectScopePicker-DVHfXX1f.js → ProjectScopePicker-8hrgvmg-.js} +1 -1
  24. package/dist/web/assets/{PublicProjectsPage-CtctKml1.js → PublicProjectsPage-b5zx0dFS.js} +1 -1
  25. package/dist/web/assets/{ReviewPage-DUqaK-do.js → ReviewPage-BLdWYDmj.js} +1 -1
  26. package/dist/web/assets/{SearchableSelect-BZtyYmZN.js → SearchableSelect-vaoSDq1g.js} +1 -1
  27. package/dist/web/assets/{SettingsPage-CB4ymLr8.js → SettingsPage-Dxjrkq1g.js} +1 -1
  28. package/dist/web/assets/{SharedJefaReportPage-CbFtrDCY.js → SharedJefaReportPage-YG2xwQQy.js} +1 -1
  29. package/dist/web/assets/{WritingTastePage-B7lSzs2z.js → WritingTastePage-CPPduPb1.js} +1 -1
  30. package/dist/web/assets/{agent-profile.css_vue_type_style_index_0_src_true_lang-C22UdfU0.js → agent-profile.css_vue_type_style_index_0_src_true_lang-LTJ1ptv9.js} +1 -1
  31. package/dist/web/assets/{catalog-DU4Kfd-N.js → catalog-B9tlJAp9.js} +1 -1
  32. package/dist/web/assets/{client-CEHkJJ-5.js → client-InXscj8J.js} +1 -1
  33. package/dist/web/assets/{console--CZxc3PW.js → console-hUns2aD-.js} +1 -1
  34. package/dist/web/assets/{conversation-launcher-settings-Co1RlTFH.js → conversation-launcher-settings-DEtJ6pZg.js} +1 -1
  35. package/dist/web/assets/{i18n-BtOOoyJd.js → i18n-75woNt31.js} +2 -2
  36. package/dist/web/assets/{identity-CsowvtIm.js → identity-Wt2Xio_B.js} +1 -1
  37. package/dist/web/assets/index-pleRuLpw.js +2 -0
  38. package/dist/web/assets/{model-CGpllrds.js → model-C1GwBvd9.js} +1 -1
  39. package/dist/web/assets/{personal-profile-graph-BNTG4PSY.js → personal-profile-graph-BdV_3I1u.js} +1 -1
  40. package/dist/web/assets/{shared-report-BFUJqqQe.js → shared-report-tRQV1iJl.js} +1 -1
  41. package/dist/web/assets/{useApi-CROJJdhE-raNlHRDl.js → useApi-CROJJdhE-QfNm4ADP.js} +1 -1
  42. package/dist/web/assets/{useModalDialog-CroGk2Cs.js → useModalDialog-BopF-KHN.js} +1 -1
  43. package/dist/web/assets/{vue-router-JFYBLXB1.js → vue-router-COCNAJJn.js} +1 -1
  44. package/dist/web/index.html +10 -10
  45. package/docs/agent-conversations-and-collaboration.md +18 -1
  46. package/graph-provider/fuli_graph/store_project_agent_context.py +18 -1
  47. package/graph-provider/fuli_graph/store_project_agent_task_staffing.py +86 -11
  48. package/graph-provider/pyproject.toml +1 -1
  49. package/npm-shrinkwrap.json +2 -2
  50. package/package.json +2 -2
  51. package/skills/operating-fuli/SKILL.md +8 -0
  52. package/src/agents/identity-receipt.js +29 -0
  53. package/src/conversations/task-context-view.js +3 -1
  54. package/src/employees/service.js +9 -2
  55. package/src/employees/task-entry.js +5 -1
  56. package/src/graphiti/agent-conversations.js +15 -1
  57. package/src/graphiti/federated-application.js +6 -40
  58. package/src/graphiti/project-agent-mention.js +35 -0
  59. package/src/graphiti/project-agent-task-entry.js +22 -3
  60. package/src/graphiti/project-agent-workflows.js +3 -1
  61. package/src/graphiti/task-entry-preferences.js +50 -0
  62. package/dist/web/assets/KnowledgePage-uXW1Eovz.js +0 -1
  63. package/dist/web/assets/PersonalProjectsPage-Br1S8ETM.js +0 -1
  64. package/dist/web/assets/ProjectAgentsPage-CZWWV4Kw.css +0 -1
  65. package/dist/web/assets/index-7X3LGByg.js +0 -2
@@ -1 +1 @@
1
- import{a as e}from"./i18n-BtOOoyJd.js";var t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function n(n,r=18){let i=String(n??``).trim();if(!i)return e(`common.status.notRecorded`);if(i.length<=r)return i;if(t.test(i))return i.slice(0,8);let a=Math.max(7,Math.ceil((r-1)*.58)),o=Math.max(4,r-a-1);return`${i.slice(0,a)}…${i.slice(-o)}`}function r(e){let t=String(e??``).trim();return`${t} ${n(t)}`}function i(e){let t=e?.attributes?.projectId;return n(t||e?.id,t?26:18)}export{i as n,r,n as t};
1
+ import{a as e}from"./i18n-75woNt31.js";var t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function n(n,r=18){let i=String(n??``).trim();if(!i)return e(`common.status.notRecorded`);if(i.length<=r)return i;if(t.test(i))return i.slice(0,8);let a=Math.max(7,Math.ceil((r-1)*.58)),o=Math.max(4,r-a-1);return`${i.slice(0,a)}…${i.slice(-o)}`}function r(e){let t=String(e??``).trim();return`${t} ${n(t)}`}function i(e){let t=e?.attributes?.projectId;return n(t||e?.id,t?26:18)}export{i as n,r,n as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SharedJefaReportPage-YG2xwQQy.js","assets/i18n-75woNt31.js","assets/GrowthLoading-DFOy-mEl.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/GrowthLoading-B_Hh0CRS.css","assets/useApi-CROJJdhE-QfNm4ADP.js","assets/shared-report-tRQV1iJl.js","assets/client-InXscj8J.js","assets/ProjectScopePicker-8hrgvmg-.js","assets/ProjectScopePicker-BvaGTMFx.css","assets/shared-report-ezeb8dW4.css","assets/SharedJefaReportPage-DXbj_JhO.css","assets/OverviewPage-BKiYudrC.js","assets/console-hUns2aD-.js","assets/vue-router-COCNAJJn.js","assets/paths-CDREouhi.js","assets/PersonalProfilePage-BIGTcem2.js","assets/useModalDialog-BopF-KHN.js","assets/SearchableSelect-vaoSDq1g.js","assets/KnowledgeInspector-C79hbuOo.js","assets/model-C1GwBvd9.js","assets/conversation-launcher-settings-DEtJ6pZg.js","assets/KnowledgeInspector--1NujtXW.css","assets/KnowledgeEditDialog-DBsjlkDr.js","assets/identity-Wt2Xio_B.js","assets/KnowledgeEditDialog-D9NuRHvp.css","assets/personal-profile-graph-BdV_3I1u.js","assets/PersonalProfilePage-L8T5xMEC.css","assets/WritingTastePage-CPPduPb1.js","assets/WritingTastePage-Bzg6AvnB.css","assets/PersonalProjectsPage-CzjDCIi0.js","assets/KnowledgeWorkspace-B2vj12QG.js","assets/KnowledgeWorkspace-sb8OJ97I.css","assets/KnowledgeOrganizerPage-Cz1BnAtz.js","assets/KnowledgeOrganizerPage-h2iKvQpO.css","assets/AgentsDirectoryPage-7G02Xm6C.js","assets/AgentHand-BaLSbn08.js","assets/AgentHand-D9sQu2vc.css","assets/profile-model-BQO4zNs9.js","assets/AgentName-0PIU7MOX.js","assets/AgentName-Cydd0UI4.css","assets/agent-profile.css_vue_type_style_index_0_src_true_lang-LTJ1ptv9.js","assets/task-evidence-BUu7yYIn.js","assets/agent-profile-CdKOh5xw.css","assets/EmployeeRecruitDialog-BrPH3e50.js","assets/catalog-B9tlJAp9.js","assets/EmployeeRecruitDialog-B59X3rOi.css","assets/AgentProfilePage-9cSsZHnk.js","assets/ProjectAgentsPage-C5F2WgwJ.js","assets/ProjectAgentsPage-C89ZEDgi.css","assets/EmployeeWorkbenchPage-u-jw38PW.js","assets/EmployeeWorkbenchPage-CQwZnTA0.css","assets/employee-dialog-Bh5ccIbK.css","assets/PublicProjectsPage-b5zx0dFS.js","assets/KnowledgePage-JyfFFUrg.js","assets/ReviewPage-BLdWYDmj.js","assets/ConnectionsPage-D0wPYbwd.js","assets/ConnectionsPage-CBHAdZXT.css","assets/SettingsPage-Dxjrkq1g.js","assets/SettingsPage-Brl-SL33.css","assets/AboutPage-HLhChD_Q.js","assets/fuli-logo-Bu9WBuQe.js","assets/AboutPage-vYIBifKw.css","assets/NotFoundPage-D340EQJP.js"])))=>i.map(i=>d[i]);
2
+ import{$ as e,A as t,B as n,C as r,F as i,H as a,L as o,M as s,N as c,T as l,V as u,Z as d,_ as f,a as p,at as m,b as h,d as g,g as _,h as v,i as y,j as b,m as x,n as S,nt as C,p as w,r as T,rt as E,s as D,t as O,v as k,w as A,x as j,y as M,z as N}from"./i18n-75woNt31.js";import{n as P,t as F}from"./console-hUns2aD-.js";import{t as I}from"./GrowthLoading-DFOy-mEl.js";import{t as L}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as R}from"./useApi-CROJJdhE-QfNm4ADP.js";import{i as z,n as B,r as V,t as H}from"./vue-router-COCNAJJn.js";import{t as U}from"./fuli-logo-Bu9WBuQe.js";import{n as W}from"./client-InXscj8J.js";import{a as G,s as K}from"./catalog-B9tlJAp9.js";import{i as q,n as ee,r as te,t as J}from"./AgentHand-BaLSbn08.js";import{n as ne}from"./profile-model-BQO4zNs9.js";import{t as re}from"./useModalDialog-BopF-KHN.js";/* empty css */import{n as ie,t as ae}from"./paths-CDREouhi.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Y={name:`fuli-context`,version:`0.8.3`,description:`Local-first collaboration relationship graph for AI agents.`,type:`module`,files:[`README.zh-CN.md`,`npm-shrinkwrap.json`,`src/`,`dist/web/`,`docs/external-knowledge-architecture.md`,`docs/public-personal-architecture.md`,`docs/project-agent-memory.md`,`docs/agent-conversations-and-collaboration.md`,`docs/employee-agents.md`,`docs/agent-interface-architecture.md`,`examples/external-knowledge/markdown-folder.mjs`,`graph-provider/Dockerfile`,`graph-provider/pyproject.toml`,`graph-provider/fuli_graph/*.py`,`graph-provider/fuli_graph/**/*.py`,`skills/`,`compose.graphiti.yml`],bin:{fl:`src/cli.js`,fuli:`src/cli.js`},keywords:[`ai-agent`,`mcp`,`context`,`knowledge-graph`,`local-first`,`codex`,`claude-code`],scripts:{mcp:`node src/mcp-server.js`,dev:`run-p dev:server dev:web`,"dev:server":`node src/server.js`,"dev:web":`vite`,build:`run-s typecheck:web build:web`,"build:web":`vite build`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.app.json`,"test:node":`node --test`,"test:web":`vitest run --config vitest.config.ts`,"test:package":`node scripts/package-smoke.js`,"test:knowledge:live":`node acceptance/knowledge-live.js`,"test:external-knowledge:live":`node scripts/validate-external-knowledge-live.js`,start:`node src/server.js`,"graph:setup":`node src/graphiti/setup.js`,"graph:up":`docker compose -f compose.graphiti.yml up -d --build`,"graph:down":`docker compose -f compose.graphiti.yml down`,"test:structure":`node --test test/source-structure.test.js`,pretest:`npm run build:web`,test:`run-s typecheck:web test:node test:web`,prepack:`npm run build`,prepublishOnly:`npm test`},engines:{node:`>=24.12`},repository:{type:`git`,url:`git+https://github.com/JevonsCode/fuli.git`},homepage:`https://jevonscode.github.io/fuli/`,bugs:{url:`https://github.com/JevonsCode/fuli/issues`},publishConfig:{access:`public`},license:`Apache-2.0`,dependencies:{"@hono/node-server":`2.0.12`,"@modelcontextprotocol/sdk":`^1.29.0`,zod:`^4.4.3`},devDependencies:{"@types/d3":`^7.4.3`,"@types/node":`^24.13.3`,"@vitejs/plugin-vue":`^6.0.8`,"@vue/test-utils":`^2.4.11`,"brace-expansion":`5.0.12`,d3:`^7.9.0`,jsdom:`^29.1.1`,linkedom:`^0.18.12`,"npm-run-all2":`^9.0.2`,pinia:`^4.0.2`,typescript:`~6.0.0`,vite:`^8.1.5`,vitest:`^4.1.10`,vue:`^3.5.40`,"vue-i18n":`^11.4.8`,"vue-router":`^5.2.0`,"vue-tsc":`^3.3.8`},overrides:{"@modelcontextprotocol/sdk":{"@hono/node-server":`2.0.12`},"brace-expansion":`$brace-expansion`,"fast-uri":`3.1.8`,qs:`6.16.0`}}.version,oe=[`aria-label`],se={class:`brand-mark-wrap`},ce=[`src`],le={class:`brand-copy`},ue={class:`brand-title-row`},de={class:`brand-name`},fe=[`aria-label`,`aria-expanded`],pe={class:`brand-version`},me={key:1,class:`brand-version`},he={class:`brand-title-row`},ge={class:`brand-name`},_e={class:`brand-version`},ve=[`aria-label`],ye=[`href`],be=L(l({__name:`BrandEasterEgg`,setup(e){let n=d(null),r=d(null),i=d(0),a=d(!1),o=d(!1),l=d(!1),u=d(null),g=f(()=>u.value?.status===`ready`&&u.value.updateAvailable&&!!u.value.latestVersion),_=f(()=>u.value?.latestVersion??``),v=f(()=>u.value?.packageUrl??`https://www.npmjs.com/package/fuli-context`),y=new AbortController,S=!1;function w(){i.value+=1,a.value=!0}function T(){a.value=!1}function D(){g.value&&(l.value=!l.value)}function O(e){S=!1,o.value=!1,l.value&&!n.value?.contains(e.target)&&(l.value=!1)}function A(e){e.key===`Tab`&&(S=!0),e.key===`Escape`&&l.value&&(e.preventDefault(),l.value=!1,t(()=>r.value?.focus()))}function M(){o.value=S}function N(){o.value=!1}return s(()=>{window.addEventListener(`pointerdown`,O,!0),window.addEventListener(`keydown`,A,!0),W(`/api/system/version`,{signal:y.signal}).then(e=>{u.value=e}).catch(()=>{})}),b(()=>{y.abort(),window.removeEventListener(`pointerdown`,O,!0),window.removeEventListener(`keydown`,A,!0)}),(e,t)=>(c(),j(`div`,{ref_key:`root`,ref:n,class:E([`brand-block`,{"is-sparkling":a.value,"is-keyboard-focused":o.value}])},[k(`button`,{class:`brand-effect-button`,type:`button`,"aria-label":C(p)(`console.brandEffect.aria`),onClick:w,onFocus:M,onBlur:N},[k(`span`,se,[k(`img`,{class:`brand-mark`,src:C(U),alt:``,"aria-hidden":`true`},null,8,ce),a.value?(c(),j(`span`,{key:`orbit-${i.value}`,class:`brand-orbit`,"aria-hidden":`true`})):h(``,!0)])],40,oe),k(`span`,le,[k(`span`,ue,[k(`span`,de,m(C(p)(`common.brand`)),1),g.value?(c(),j(`button`,{key:0,ref_key:`versionButton`,ref:r,class:`brand-version-button`,type:`button`,"aria-label":C(p)(`console.update.aria`,{version:_.value}),"aria-expanded":l.value,"aria-controls":`brand-update-details`,onClick:D},[k(`span`,pe,`v`+m(C(Y)),1),t[0]||=k(`span`,{class:`brand-update-dot`,"aria-hidden":`true`},null,-1)],8,fe)):(c(),j(`span`,me,`v`+m(C(Y)),1))]),t[1]||=k(`span`,{class:`brand-subtitle`},`Context Graph`,-1),a.value?(c(),j(`span`,{key:`copy-reflection-${i.value}`,class:`brand-copy-reflection`,"aria-hidden":`true`,onAnimationend:x(T,[`self`])},[k(`span`,he,[k(`span`,ge,m(C(p)(`common.brand`)),1),k(`span`,_e,`v`+m(C(Y)),1)])],32)):h(``,!0)]),l.value?(c(),j(`div`,{key:0,id:`brand-update-details`,class:`brand-update-popover`,role:`dialog`,"aria-label":C(p)(`console.update.title`,{version:_.value})},[k(`strong`,null,m(C(p)(`console.update.title`,{version:_.value})),1),k(`p`,null,m(C(p)(`console.update.copy`)),1),t[2]||=k(`code`,null,`fuli update --yes`,-1),k(`a`,{href:v.value,target:`_blank`,rel:`noopener noreferrer`},m(C(p)(`console.update.npmLink`)),9,ye)],8,ve)):h(``,!0)],2))}}),[[`__scopeId`,`data-v-3ccab825`]]),xe=[`aria-label`],Se=[`lang`,`aria-label`,`aria-pressed`,`onClick`],Ce=l({__name:`LocaleSwitcher`,setup(e){let t=f(()=>S()),n={"zh-CN":`中`,"en-US":`EN`};function r(e){e!==t.value&&y(e)}return(e,a)=>(c(),j(`div`,{class:`locale-switcher`,role:`group`,"aria-label":C(p)(`common.language.label`)},[(c(!0),j(v,null,i(C(O),e=>(c(),j(`button`,{key:e,type:`button`,lang:e,"aria-label":C(p)(e===`zh-CN`?`common.language.chinese`:`common.language.english`),"aria-pressed":t.value===e,onClick:t=>r(e)},m(n[e]),9,Se))),128))],8,xe))}}),X=e(null);function we(e){let t=e.onError((t,n)=>{let r=e.resolve(n).href;!r.startsWith(`/`)||r.startsWith(`//`)||(X.value={href:r,resourceFailure:/dynamically imported module|module script|loading chunk|preload css|importing a module/i.test(String(t))})}),n=e.afterEach((e,t,n)=>{n||(X.value=null)});return()=>{t(),n()}}var Te={key:0,class:`navigation-recovery`,role:`alert`},Ee=[`href`],De=L(l({__name:`NavigationRecovery`,setup(e){return(e,t)=>C(X)?(c(),j(`div`,Te,[k(`div`,null,[k(`strong`,null,m(C(p)(`routes.loadFailure.title`)),1),k(`p`,null,m(C(p)(C(X).resourceFailure?`routes.loadFailure.resources`:`routes.loadFailure.message`)),1)]),k(`a`,{href:C(X).href,class:`quiet-button`},m(C(p)(`routes.loadFailure.reload`)),9,Ee),k(`button`,{type:`button`,class:`navigation-recovery-dismiss`,onClick:t[0]||=e=>X.value=null},m(C(p)(`routes.loadFailure.dismiss`)),1)])):h(``,!0)}}),[[`__scopeId`,`data-v-83dee1c5`]]),Oe={class:`nav-section-label`},ke={class:`employee-nav-mark`,"aria-hidden":`true`},Ae=[`src`],je={class:`nav-copy`},Me=L(l({__name:`EmployeeNavigation`,props:{personalSpaceId:{}},setup(e){let t=e;N(()=>t.personalSpaceId,e=>{K(e===`current`?``:e)},{immediate:!0});let n=f(()=>G.value.filter(e=>e.agentId&&e.agentStatus===`active`&&(e.runtime||e.workbench?.kind===`native`)));return(t,a)=>n.value.length?(c(),j(v,{key:0},[k(`p`,Oe,m(C(p)(`employees.directory`)),1),(c(!0),j(v,null,i(n.value,t=>(c(),j(`div`,{key:t.id,class:`employee-nav-row`},[A(C(H),{to:C(ne)(e.personalSpaceId,t.agentId),class:`space-nav-button employee-nav`,"active-class":`is-active`},{default:u(()=>[k(`span`,ke,[C(q)(t.id)?(c(),j(`img`,{key:0,src:C(q)(t.id),alt:``},null,8,Ae)):(c(),j(v,{key:1},[r(m(t.name.slice(0,1)),1)],64))]),k(`span`,je,[k(`strong`,null,m(t.name),1),k(`small`,null,m(t.role),1)])]),_:2},1032,[`to`]),A(C(H),{class:`employee-workbench-link`,to:`/employees/${encodeURIComponent(t.id)}`,"aria-label":`${t.name} · ${C(p)(`agentProfiles.workbench`)}`,title:C(p)(`agentProfiles.workbench`)},{default:u(()=>[...a[0]||=[k(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[k(`path`,{d:`M3 4h14v12H3zM3 8h14M8 8v8`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`})],-1)]]),_:1},8,[`to`,`aria-label`,`title`]),A(J,{"agent-id":t.agentId},null,8,[`agent-id`])]))),128))],64)):h(``,!0)}}),[[`__scopeId`,`data-v-8788995d`]]),Ne=[`title`],Pe={class:`employee-dialog-shell`},Fe={id:`attention-title`},Ie=[`disabled`,`aria-label`],Le={class:`employee-dialog-body`},Re={class:`attention-toolbar`},ze=[`disabled`],Be={key:0,role:`alert`,class:`employee-dialog-error`},Ve={key:1,role:`alert`,class:`employee-dialog-error`},He={key:4},Ue={class:`attention-meta`},We={class:`attention-action`},Ge=[`href`],Ke=[`onSubmit`],qe=[`for`],Je=[`id`,`onUpdate:modelValue`,`disabled`],Ye=[`disabled`],Xe={key:1},Ze=[`disabled`],Qe=L(l({__name:`AgentAttentionCenter`,props:{personalSpaceId:{},projects:{}},setup(e){let t=e,n=te(),r=d({}),o=d(!1),l=d({}),u=d(``),y=d(``),S=f(()=>new Map(t.projects.map(e=>[e.project_id,e.profile.name]))),{dialogRef:w,initialFocusRef:T,onCancel:E,onKeydown:D}=re(()=>n.open,()=>{u.value||(n.open=!1)});N(()=>t.personalSpaceId,e=>{r.value={},o.value=!1,l.value={},n.setSpace(e===`current`?``:e)},{immediate:!0}),N(()=>n.open,async e=>{if(!e)return;y.value=``;let t=n.spaceId;o.value=!0;try{let e=await W(`/api/project-agents?${new URLSearchParams({personalSpaceId:t})}`);t===n.spaceId&&(r.value=Object.fromEntries(e.map(e=>[e.agentId,e.profile.displayName||e.profile.name])))}catch{}finally{t===n.spaceId&&(o.value=!1)}});let O;function P(){document.visibilityState===`visible`&&!n.loading&&!n.open&&n.refresh()}s(()=>{O=setInterval(P,3e4),document.addEventListener(`visibilitychange`,P)}),b(()=>{clearInterval(O),document.removeEventListener(`visibilitychange`,P),n.setSpace(``)});async function F(e){if(!(u.value||!l.value[e.requestId]?.trim())){u.value=e.requestId,y.value=``;try{await n.respond(e,l.value[e.requestId].trim()),delete l.value[e.requestId]}catch(e){y.value=e instanceof Error?e.message:String(e),await n.refresh()}finally{u.value=``}}}return(e,t)=>(c(),j(v,null,[k(`button`,{class:`space-nav-button attention-nav`,type:`button`,onClick:t[0]||=e=>C(n).show()},[k(`span`,null,m(C(p)(`attention.title`)),1),A(J,{passive:``}),C(n).error?(c(),j(`span`,{key:0,title:C(p)(`attention.loadError`)},`!`,8,Ne)):h(``,!0)]),(c(),M(_,{to:`body`},[C(n).open?(c(),j(`dialog`,{key:0,ref_key:`dialogRef`,ref:w,class:`employee-dialog attention-dialog`,"aria-labelledby":`attention-title`,onCancel:t[6]||=(...e)=>C(E)&&C(E)(...e),onKeydown:t[7]||=(...e)=>C(D)&&C(D)(...e)},[k(`div`,Pe,[k(`header`,null,[k(`h2`,Fe,m(C(n).agentId&&r.value[C(n).agentId]||C(p)(`attention.title`)),1),k(`button`,{ref_key:`initialFocusRef`,ref:T,type:`button`,disabled:!!u.value,"aria-label":C(p)(`attention.close`),onClick:t[1]||=e=>C(n).open=!1},`×`,8,Ie)]),k(`div`,Le,[k(`div`,Re,[C(n).agentId?(c(),j(`button`,{key:0,type:`button`,onClick:t[2]||=e=>C(n).show()},m(C(p)(`attention.all`)),1)):h(``,!0),k(`button`,{type:`button`,disabled:C(n).loading||!!u.value,onClick:t[3]||=e=>C(n).refresh()},m(C(p)(`attention.refresh`)),9,ze)]),C(n).error?(c(),j(`p`,Be,m(C(p)(`attention.loadError`))+` · `+m(C(n).error),1)):h(``,!0),y.value?(c(),j(`p`,Ve,m(y.value),1)):h(``,!0),o.value?(c(),M(I,{key:2,variant:`inline`,label:C(p)(`attention.loadingAgents`)},null,8,[`label`])):h(``,!0),C(n).loading?(c(),M(I,{key:3,variant:`compact`,label:C(p)(`attention.loading`)},null,8,[`label`])):!C(n).items.length&&!C(n).error?(c(),j(`p`,He,m(C(p)(`attention.empty`)),1)):h(``,!0),(c(!0),j(v,null,i(C(n).items,e=>(c(),j(`article`,{key:e.requestId,class:`attention-item`},[k(`p`,Ue,m(r.value[e.agentId]||e.agentId)+` · `+m(S.value.get(e.personalProjectId)||e.personalProjectId)+` · `+m(C(p)(`attention.kinds.${e.kind}`)),1),k(`h3`,null,m(e.title),1),k(`p`,null,m(e.detail),1),k(`p`,We,m(e.requestedAction),1),e.taskId?(c(),j(`a`,{key:0,href:C(ee)(e),onClick:t[4]||=e=>C(n).open=!1},m(C(p)(`attention.task`)),9,Ge)):h(``,!0),k(`form`,{onSubmit:x(t=>F(e),[`prevent`])},[k(`label`,{for:`attention-${e.requestId}`},m(C(p)(`attention.response`)),9,qe),a(k(`textarea`,{id:`attention-${e.requestId}`,"onUpdate:modelValue":t=>l.value[e.requestId]=t,rows:`2`,maxlength:`4096`,required:``,disabled:!!u.value},null,8,Je),[[g,l.value[e.requestId]]]),k(`button`,{type:`submit`,class:`primary`,disabled:!!u.value||!l.value[e.requestId]?.trim()},[u.value===e.requestId?(c(),M(I,{key:0,variant:`inline`,label:C(p)(`attention.sending`)},null,8,[`label`])):(c(),j(`span`,Xe,m(C(p)(`attention.send`)),1))],8,Ye)],40,Ke)]))),128)),C(n).items.length<C(n).filteredTotal?(c(),j(`button`,{key:5,type:`button`,disabled:C(n).loading,onClick:t[5]||=e=>C(n).more()},m(C(p)(`attention.more`)),9,Ze)):h(``,!0)])])],544)):h(``,!0)]))],64))}}),[[`__scopeId`,`data-v-521df451`]]),$e=[`routes.`,`common.`,`employees.`,`agentProfiles.`];function et(e,t=``){let n=typeof e==`string`&&e?e:t;return $e.some(e=>n.startsWith(e))?p(n):n}function tt(e){if(typeof document>`u`)return;let t=et(e,`routes.overview.title`);document.title=`${t} · ${p(`common.brand`)}`}var nt={class:`app-shell`},rt=[`onKeydown`],it=[`aria-label`],at={class:`nav-section-label`},ot={class:`nav-label`},st={class:`nav-section-label nav-space-label`},ct={class:`nav-copy`},lt={class:`nav-copy`},ut={class:`nav-copy`},dt={class:`nav-copy`},ft={class:`nav-section-label nav-public-label`},pt={class:`nav-copy`},mt={class:`nav-section-label nav-tool-label`},ht={class:`nav-label`},gt={class:`nav-label`},_t={class:`nav-label`},vt={class:`nav-section-label nav-about-label`},yt={class:`nav-label`},bt={class:`nav-label`},xt={class:`sidebar-foot`},St=[`aria-label`],Ct={class:`runtime-status`},wt={class:`runtime-status`},Tt=[`aria-label`],Et=[`inert`],Dt=[`aria-expanded`],Ot={key:0,class:`workbench-host-label`},kt={key:1,class:`topbar-heading`},At={key:2,class:`topbar-actions`},jt={key:0,class:`mode-chip`},Mt=[`disabled`],Nt=[`disabled`],Pt={key:1},Ft=[`aria-label`],It=L(l({__name:`ConsoleLayout`,setup(e){let i=F(),a=R(),l=d(!1),g=d(null),_=d(null),y=f(()=>i.activePersonalSpace?.id??`current`),S=f(()=>ie(y.value,`graph`)),T=f(()=>ae(`personal`,y.value,`directory`)),D=f(()=>et(a.meta.title,`routes.overview.title`)),O=f(()=>a.meta.dedicatedWorkspace===!0),P=f(()=>i.publicRuntimeStatus===`ready`),L=f(()=>i.publicRuntimeStatus===`ready`?p(`console.services.publicReady`):i.publicRuntimeStatus===`error`?p(`console.services.publicError`):p(`console.services.publicOffline`)),z=f(()=>{if(i.publicRuntimeStatus===`ready`){let e=i.state?.capabilities;return e?.browsePublicProjects&&e?.subscribeProject&&!e?.publishProject&&!e?.submitKnowledge&&!e?.reviewProposals?p(`console.services.publicBrowseSubscribe`):p(`console.services.publicAvailable`)}return i.publicRuntimeStatus===`error`?p(`console.services.localUnaffected`):p(`console.services.localOnly`)}),V=f(()=>i.state?.capabilities?.browsePublicProjects!==!1),U=f(()=>{let e=i.state?.capabilities;return e?.submitKnowledge!==!1||e?.reviewProposals===!0});s(()=>{i.runtimeStatus===`idle`&&i.refresh(),window.addEventListener(`resize`,W)}),b(()=>window.removeEventListener(`resize`,W));function W(){window.innerWidth>920&&(l.value=!1)}function G(e){if(!l.value||e.key!==`Tab`)return;let t=[...e.currentTarget.querySelectorAll(`button:not(:disabled), a[href], input:not(:disabled), [tabindex="0"]`)].filter(e=>e.getClientRects().length>0),n=t[0],r=t.at(-1);e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n?.focus())}n(()=>{tt(a.meta.title)}),N(()=>a.fullPath,()=>{l.value=!1});async function K(){l.value=!0,await t(),_.value?.focus({preventScroll:!0})}async function q(){l.value=!1,await t(),g.value?.focus({preventScroll:!0})}return(e,t)=>(c(),j(`div`,nt,[k(`aside`,{id:`console-primary-sidebar`,class:E([`sidebar`,{"is-mobile-open":l.value}]),onKeydown:[w(x(q,[`stop`]),[`esc`]),G]},[k(`button`,{ref_key:`mobileNavCloseRef`,ref:_,class:`mobile-nav-close quiet-button`,type:`button`,onClick:q},m(C(p)(`console.navigation.closeMenu`)),513),A(be),k(`nav`,{class:`primary-nav`,"aria-label":C(p)(`console.navigation.aria`)},[k(`p`,at,m(C(p)(`console.navigation.workspace`)),1),A(C(H),{to:`/`,"exact-active-class":`is-active`},{default:u(()=>[t[2]||=k(`span`,{class:`nav-icon nav-icon-overview`,"aria-hidden":`true`},null,-1),k(`span`,ot,m(C(p)(`console.navigation.overview`)),1)]),_:1}),k(`p`,st,m(C(p)(`console.navigation.personalSpace`)),1),A(C(H),{class:`space-nav-button personal-profile-button`,to:`/preferences`,"active-class":`is-active`},{default:u(()=>[t[3]||=k(`span`,{class:`nav-icon nav-icon-personal-profile`,"aria-hidden":`true`},null,-1),k(`span`,ct,[k(`strong`,null,m(C(p)(`console.navigation.preferences`)),1),k(`small`,null,m(C(p)(`console.navigation.preferencesMeta`)),1)])]),_:1}),A(C(H),{class:`space-nav-button knowledge-organizer-button`,to:`/organize`,"active-class":`is-active`},{default:u(()=>[t[4]||=k(`span`,{class:`nav-icon nav-icon-knowledge-organizer`,"aria-hidden":`true`},null,-1),k(`span`,lt,[k(`strong`,null,m(C(p)(`console.navigation.organizer`)),1),k(`small`,null,m(C(p)(`console.navigation.organizerMeta`)),1)])]),_:1}),A(C(H),{class:`space-nav-button personal-space-button`,to:S.value,"active-class":`is-active`},{default:u(()=>[t[5]||=k(`span`,{class:`nav-icon nav-icon-personal-project`,"aria-hidden":`true`},null,-1),k(`span`,ut,[k(`strong`,null,m(C(p)(`console.navigation.personalProjects`)),1),k(`small`,null,m(C(p)(`console.navigation.personalProjectsMeta`)),1)])]),_:1},8,[`to`]),A(C(H),{class:`space-nav-button project-agents-button`,to:`/project-agents`,"active-class":`is-active`},{default:u(()=>[t[6]||=k(`span`,{class:`nav-icon nav-icon-project-agent`,"aria-hidden":`true`},null,-1),k(`span`,dt,[k(`strong`,null,m(C(p)(`console.navigation.projectAgents`)),1),k(`small`,null,m(C(p)(`console.navigation.projectAgentsMeta`)),1)])]),_:1}),V.value?(c(),j(v,{key:0},[k(`p`,ft,m(C(p)(`console.navigation.publicSpace`)),1),A(C(H),{class:`space-nav-button public-space-button`,to:`/public-projects`,"active-class":`is-active`},{default:u(()=>[t[7]||=k(`span`,{class:`nav-icon nav-icon-public-project`,"aria-hidden":`true`},null,-1),k(`span`,pt,[k(`strong`,null,m(C(p)(`console.navigation.publicProjects`)),1),k(`small`,null,m(C(p)(`console.navigation.publicProjectsMeta`)),1)])]),_:1})],64)):h(``,!0),A(Me,{"personal-space-id":y.value},null,8,[`personal-space-id`]),A(Qe,{"personal-space-id":y.value,projects:C(i).state?.personalProjects??[]},null,8,[`personal-space-id`,`projects`]),k(`p`,mt,m(C(p)(`console.navigation.governance`)),1),A(C(H),{to:T.value,"active-class":`is-active`},{default:u(()=>[t[8]||=k(`span`,{class:`nav-icon nav-icon-knowledge-graph`,"aria-hidden":`true`},null,-1),k(`span`,ht,m(C(p)(`console.navigation.knowledge`)),1)]),_:1},8,[`to`]),U.value?(c(),M(C(H),{key:1,to:`/review`,"active-class":`is-active`},{default:u(()=>[t[9]||=k(`span`,{class:`nav-icon nav-icon-review`,"aria-hidden":`true`},null,-1),k(`span`,gt,m(C(p)(`console.navigation.review`)),1)]),_:1})):h(``,!0),A(C(H),{to:`/connections`,"active-class":`is-active`},{default:u(()=>[t[10]||=k(`span`,{class:`nav-icon nav-icon-connections`,"aria-hidden":`true`},null,-1),k(`span`,_t,m(C(p)(`console.navigation.connections`)),1)]),_:1}),k(`p`,vt,m(C(p)(`console.navigation.aboutSection`)),1),A(C(H),{to:`/settings`,"active-class":`is-active`},{default:u(()=>[t[11]||=k(`span`,{class:`nav-icon nav-icon-settings`,"aria-hidden":`true`},null,-1),k(`span`,yt,m(C(p)(`console.navigation.settings`)),1)]),_:1}),A(C(H),{to:`/about`,"active-class":`is-active`},{default:u(()=>[t[12]||=k(`span`,{class:`nav-icon nav-icon-about`,"aria-hidden":`true`},null,-1),k(`span`,bt,m(C(p)(`console.navigation.about`)),1)]),_:1})],8,it),k(`div`,xt,[k(`div`,{class:`service-runtime-list`,"aria-label":C(p)(`console.services.aria`)},[k(`div`,Ct,[k(`span`,{class:E([`status-dot`,C(i).runtimeStatus])},null,2),k(`div`,null,[k(`strong`,null,m(C(i).runtimeStatus===`ready`?C(p)(`console.services.localReady`):C(i).runtimeStatus===`error`?C(p)(`console.services.localError`):C(p)(`console.services.localConnecting`)),1),t[13]||=k(`small`,null,`Graphiti / Neo4j`,-1)])]),k(`div`,wt,[k(`span`,{class:E([`status-dot`,C(i).publicRuntimeStatus])},null,2),k(`div`,null,[k(`strong`,null,m(L.value),1),k(`small`,null,m(z.value),1)])])],8,St)])],42,rt),l.value?(c(),j(`button`,{key:0,class:`mobile-nav-backdrop`,type:`button`,tabindex:`-1`,"aria-label":C(p)(`console.navigation.closeMenu`),onClick:q},null,8,Tt)):h(``,!0),k(`main`,{class:`workspace`,inert:l.value||void 0},[k(`header`,{class:E([`topbar`,{"topbar--workbench":O.value}])},[k(`button`,{ref_key:`mobileNavToggleRef`,ref:g,class:`mobile-nav-toggle quiet-button`,type:`button`,"aria-controls":`console-primary-sidebar`,"aria-expanded":l.value,onClick:K},[t[14]||=k(`span`,{class:`mobile-nav-icon`,"aria-hidden":`true`},null,-1),r(` `+m(C(p)(`console.navigation.openMenu`)),1)],8,Dt),O.value?(c(),j(`span`,Ot,`FULI`)):(c(),j(`div`,kt,[k(`h2`,null,m(D.value),1)])),O.value?h(``,!0):(c(),j(`div`,At,[P.value?(c(),j(`span`,jt,m(C(p)(`console.publicReady`)),1)):h(``,!0),C(a).name===`settings`?(c(),j(`button`,{key:1,class:`settings-save-button`,disabled:C(i).settingsSaving,form:`settings-form`,type:`submit`},m(C(p)(`settings.save`)),9,Mt)):h(``,!0),A(Ce),k(`button`,{class:`quiet-button`,type:`button`,disabled:C(i).runtimeStatus===`loading`,onClick:t[0]||=(...e)=>C(i).refresh&&C(i).refresh(...e)},[C(i).runtimeStatus===`loading`?(c(),M(I,{key:0,variant:`inline`,label:C(p)(`common.status.loadingConsole`)},null,8,[`label`])):(c(),j(`span`,Pt,m(C(p)(`common.actions.refresh`)),1))],8,Nt)]))],2),A(De),C(i).feedback?(c(),j(`div`,{key:0,class:E([`feedback feedback-message`,{success:C(i).feedback.tone===`success`}]),role:`status`,"aria-live":`polite`},[k(`span`,null,m(C(i).feedback.message),1),k(`button`,{class:`feedback-dismiss`,type:`button`,"aria-label":C(p)(`common.actions.close`),onClick:t[1]||=(...e)=>C(i).clearFeedback&&C(i).clearFeedback(...e)},`×`,8,Ft)],2)):h(``,!0),A(C(B),null,{default:u(({Component:e})=>[(c(),M(o(e)))]),_:1})],8,Et)]))}}),[[`__scopeId`,`data-v-9fe7a62f`]]),Lt=l({__name:`App`,setup(e){let t=R();return(e,n)=>C(t).meta.publicReport?(c(),M(C(B),{key:0})):(c(),M(It,{key:1}))}}),Rt=`modulepreload`,zt=function(e){return`/`+e},Bt={},Z=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=zt(t,n),t=s(t),t in Bt)return;Bt[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Rt,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Vt(e){let t=e.match(/^#\/knowledge\/([^/?#]+)\/([^/?#]+)\/(entity|relationship)\/([^/?#]+)(?:\?([^#]*))?$/);if(!t)return null;let[,n,r,i,a,o]=t;return`/knowledge/${n}/${r}/directory/${i}/${a}${o?`?${o}`:``}`}var Q=V({history:z(`/`),routes:[{path:`/reports/jefa`,name:`shared-jefa-report`,component:()=>Z(()=>import(`./SharedJefaReportPage-YG2xwQQy.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),meta:{publicReport:!0,title:`employees.share.title`}},{path:`/`,name:`overview`,component:()=>Z(()=>import(`./OverviewPage-BKiYudrC.js`),__vite__mapDeps([12,1,13,7,14,5,15])),meta:{eyebrow:``,title:`routes.overview.title`}},{path:`/preferences`,name:`personal-profile`,component:()=>Z(()=>import(`./PersonalProfilePage-BIGTcem2.js`),__vite__mapDeps([16,1,13,7,2,3,4,14,5,17,18,19,20,21,22,23,24,25,26,27])),meta:{eyebrow:`PERSONAL LENS`,title:`routes.preferences.title`,description:`routes.preferences.description`}},{path:`/preferences/writing`,name:`writing-taste`,component:()=>Z(()=>import(`./WritingTastePage-CPPduPb1.js`),__vite__mapDeps([28,1,13,7,2,3,4,14,5,23,17,18,24,20,25,26,29])),meta:{eyebrow:``,title:`routes.writingTaste.title`}},{path:`/personal/:spaceId/projects/:projectId/:mode/:itemKind/:itemId`,name:`personal-project-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-CzjDCIi0.js`),__vite__mapDeps([30,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/personal/:spaceId/projects/:mode/:itemKind/:itemId`,name:`personal-projects-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-CzjDCIi0.js`),__vite__mapDeps([30,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:mode`,name:`personal-projects`,component:()=>Z(()=>import(`./PersonalProjectsPage-CzjDCIi0.js`),__vite__mapDeps([30,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode`,name:`personal-project`,component:()=>Z(()=>import(`./PersonalProjectsPage-CzjDCIi0.js`),__vite__mapDeps([30,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/organize`,name:`knowledge-organizer`,component:()=>Z(()=>import(`./KnowledgeOrganizerPage-Cz1BnAtz.js`),__vite__mapDeps([33,1,13,7,2,3,4,17,18,24,19,20,21,22,23,25,34])),meta:{eyebrow:`KNOWLEDGE CLASSIFICATION`,title:`routes.organizer.title`}},{path:`/project-agents`,name:`project-agents`,component:()=>Z(()=>import(`./AgentsDirectoryPage-7G02Xm6C.js`),__vite__mapDeps([35,1,13,7,2,3,4,5,14,36,37,38,39,40,41,42,43,8,9,44,45,17,15,18,46])),meta:{eyebrow:``,title:`routes.projectAgents.title`}},{path:`/agents/:spaceId/:agentId`,name:`agent-profile`,component:()=>Z(()=>import(`./AgentProfilePage-9cSsZHnk.js`),__vite__mapDeps([47,1,13,7,2,3,4,5,14,45,38,39,40,42,41,43])),meta:{eyebrow:``,title:`agentProfiles.profile`}},{path:`/project-agents/manage`,name:`agent-management`,component:()=>Z(()=>import(`./ProjectAgentsPage-C5F2WgwJ.js`),__vite__mapDeps([48,1,13,7,2,3,4,5,14,45,36,37,17,42,8,9,18,44,15,46,49])),meta:{eyebrow:``,title:`agentProfiles.advanced`}},{path:`/employees/:templateId`,name:`employee-workbench`,component:()=>Z(()=>import(`./EmployeeWorkbenchPage-u-jw38PW.js`),__vite__mapDeps([50,1,13,7,2,3,4,5,14,45,36,37,38,17,39,40,8,9,44,15,18,46,6,10,51,52])),meta:{eyebrow:``,title:`routes.employeeWorkbench.title`,dedicatedWorkspace:!0}},{path:`/public-projects`,name:`public-projects`,component:()=>Z(()=>import(`./PublicProjectsPage-b5zx0dFS.js`),__vite__mapDeps([53,1,13,7,2,3,4,5,17,15,18,24])),meta:{eyebrow:`PUBLIC PROJECTS`,title:`routes.publicProjects.title`,description:`routes.publicProjects.description`}},{path:`/knowledge`,name:`knowledge-default`,component:()=>Z(()=>import(`./KnowledgePage-JyfFFUrg.js`),__vite__mapDeps([54,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode/:itemKind/:itemId`,name:`project-knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-JyfFFUrg.js`),__vite__mapDeps([54,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode/:itemKind/:itemId`,name:`knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-JyfFFUrg.js`),__vite__mapDeps([54,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode`,name:`project-knowledge`,component:()=>Z(()=>import(`./KnowledgePage-JyfFFUrg.js`),__vite__mapDeps([54,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode`,name:`knowledge`,component:()=>Z(()=>import(`./KnowledgePage-JyfFFUrg.js`),__vite__mapDeps([54,1,31,13,7,2,3,4,5,14,17,15,18,24,19,20,21,22,23,25,32])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/review`,name:`review`,component:()=>Z(()=>import(`./ReviewPage-BLdWYDmj.js`),__vite__mapDeps([55,1,13,7,2,3,4,18,24,20])),meta:{eyebrow:`REVIEW WORKSPACE`,title:`routes.review.title`,description:`routes.review.description`}},{path:`/connections`,name:`connections`,component:()=>Z(()=>import(`./ConnectionsPage-D0wPYbwd.js`),__vite__mapDeps([56,1,13,7,2,3,4,18,24,57])),meta:{eyebrow:`SERVICE CONNECTIONS`,title:`routes.connections.title`,description:`routes.connections.description`}},{path:`/settings`,name:`settings`,component:()=>Z(()=>import(`./SettingsPage-Dxjrkq1g.js`),__vite__mapDeps([58,1,13,7,2,3,4,18,21,59])),meta:{eyebrow:``,title:`routes.settings.title`}},{path:`/about`,name:`about`,component:()=>Z(()=>import(`./AboutPage-HLhChD_Q.js`),__vite__mapDeps([60,1,3,61,62])),meta:{eyebrow:`FULI`,title:`routes.about.title`}},{path:`/:pathMatch(.*)*`,name:`not-found`,component:()=>Z(()=>import(`./NotFoundPage-D340EQJP.js`),__vite__mapDeps([63,1,14,5])),meta:{title:`common.errors.pageNotFound`}}],scrollBehavior:(e,t,n)=>n??(e.path!==t.path&&{top:0})});we(Q),Q.beforeEach(e=>e.path!==`/`||typeof window>`u`?!0:Vt(window.location.hash)??!0),Q.afterEach(e=>{tt(e.meta.title)});var $=D(Lt);$.use(P()),$.use(T),$.use(Q),await Q.isReady().catch(()=>void 0),$.mount(`#app`);
@@ -1 +1 @@
1
- import{a as e,n as t}from"./i18n-BtOOoyJd.js";var n=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),r=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`TechnicalSummary`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),i=new Set([`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`,`unclassified`]),a=new Set([`taste`,`personality`,`judgment_preference`]),o=new Set([`confirm`,`update`,`invalidate`,`link_replacement`,`restore`,`scope_change`,`batch_confirm`]),s=new Set([`human_change`,`agent_view`,`agent_review`,`knowledge_used`]),c=new Set([`user`,`agent`,`authoritative_source`,`import`]);function l(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.${n}`):n}function u(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.descriptions.${n}`):e(`knowledge.domain.quadrants.customDescription`)}function d(t){let n=t??``;return a.has(n)?e(`knowledge.domain.profiles.${n}`):n}function f(t){let n=t??``;return o.has(n)?e(`knowledge.domain.revisions.${n}`):n||e(`knowledge.domain.revisions.fallback`)}function p(t){return e(`knowledge.domain.humanChanges.${t??`none`}`)}function m(t){let n=t??``;return s.has(n)?e(`knowledge.domain.auditActions.${n}`):n||e(`knowledge.domain.auditActions.fallback`)}function h(t){return t?t.label||(c.has(t.kind)?e(`knowledge.domain.actors.${t.kind}`):t.kind):e(`knowledge.domain.actors.notRecorded`)}function g(e){return typeof e==`object`&&e?e.id:e}function _(e){let t=e.nodes.filter(e=>!e.invalid_at),n=new Set(t.map(({id:e})=>e)),r=e.edges.filter(e=>!e.invalid_at&&n.has(g(e.source))&&n.has(g(e.target)));return{...e,nodes:t,edges:r}}function v(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(e=>!T(e)).map(e=>b(e)),r=e.edges.filter(e=>!E(e)).map(e=>x(e,t));return[...n,...r].sort((e,t)=>q(t)-q(e))}function y(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(T).map(e=>b(e)),r=e.edges.filter(E).map(e=>x(e,t));return[...n,...r]}function b(t){return{id:t.id,itemKind:`entity`,title:t.name,body:t.summary||e(`common.status.noDescription`),type:t.type,...W(t),raw:t}}function x(t,n){let r=n.get(g(t.source))??t.source_name,i=n.get(g(t.target))??t.target_name;return{id:t.id,itemKind:`relationship`,title:`${r??e(`knowledge.domain.items.unknownEntity`)} → ${i??e(`knowledge.domain.items.unknownEntity`)}`,body:t.fact||e(`knowledge.domain.items.noRelationDescription`),type:e(`knowledge.domain.items.relationshipType`,{type:t.type}),...W(t),raw:t}}function S(e){return e?n.has(e.type)||D(e.id):!1}function C(t){return t.itemKind===`relationship`?e(`knowledge.domain.materialTypes.relationship`):r.has(t.type)?e(`knowledge.domain.materialTypes.${t.type}`):t.type}function w(e){if(!e||e.itemKind!==`entity`)return null;let t=e.raw.attributes?.projectId;return typeof t==`string`&&t?t:null}function T(e){return n.has(e.type)||D(e.id)}function E(e){return D(e.id)}function D(e){return String(e).startsWith(`project-profile:`)||String(e).startsWith(`project-profile-edge:`)||String(e).startsWith(`space-edge:`)||String(e).startsWith(`personal-project-relation:`)||String(e).startsWith(`external-knowledge-binding:`)}function O(e,t){let n=t.query?.trim().toLocaleLowerCase()??``;return e.filter(e=>t.type&&t.type!==`all`&&e.type!==t.type||t.quadrant&&t.quadrant!==`all`&&e.originQuadrant!==t.quadrant||t.profile===`profile`&&!e.profileAspect||t.profile===`regular`&&e.profileAspect||t.status===`current`&&e.invalidAt||t.status===`historical`&&!e.invalidAt||t.humanChange===`human_changed`&&!e.humanEdited||t.humanChange&&![`all`,`human_changed`].includes(t.humanChange)&&e.humanChangeStatus!==t.humanChange?!1:!n||K(e).toLocaleLowerCase().includes(n))}function k(e){let t=v(e).filter(({profileAspect:e})=>e),n=new Set(t.filter(({itemKind:e})=>e===`relationship`).flatMap(({raw:e})=>{let t=e;return[g(t.source),g(t.target)]}));return t.filter(({id:e,itemKind:t})=>t===`relationship`||!n.has(e))}function A(e){let t=e.filter(e=>!!e);return{...t[0]??{space_id:null},nodes:J(t.flatMap(e=>e.nodes)),edges:J(t.flatMap(e=>e.edges)),truncated:t.some(({truncated:e})=>e)}}function j(e,t){let n=A([e,t]);return{...n,space_id:t.space_id??n.space_id,truncated:t.truncated,next_offset:t.next_offset??null}}function M(e){return e.revisions.at(0)?.created_at??e.createdAt??e.evidence.at(0)?.created_at??e.evidence.at(0)?.reference_time??null}function N(n){if(!n)return e(`knowledge.domain.items.notRecorded`);let r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString(t())}function P(e){let t=e.confirmationBasis;return!e.confirmationExplicit||!t?.confirmed_by||!t.confirmed_at?`pending`:e.confirmationStatus===`confirmed`&&[`user`,`authoritative_source`].includes(t.confirmed_by.kind)?`confirmed`:e.confirmationStatus===`agent_confirmed`&&t.confirmed_by.kind===`agent`&&t.agent_policy_version?`agent_confirmed`:`pending`}function F(t){return e(`knowledge.domain.reviewStates.${P(t)}`)}function I(n){let r=new Map,i=n.filter(e=>!e.invalidAt&&e.classificationExplicit&&P(e)!==`confirmed`);for(let t of i)for(let n of t.evidence)n.id&&R(r,{kind:`source`,value:n.id,label:z(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSource`)},t),n.session_id&&R(r,{kind:`session`,value:n.session_id,label:B(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSession`)},t);return[...r.values()].filter(({items:e})=>e.length>=2).sort((e,n)=>n.items.length-e.items.length||e.label.localeCompare(n.label,t()))}function L(t,n){let r=t.evidence.find(e=>n.kind===`source`?e.id===n.value:e.session_id===n.value),i=t.confirmationBasis;return{existenceReason:i?.existence_reason||r?.source_description||r?.summary||e(`knowledge.domain.confirmation.sourceSupports`,{label:n.label}),quadrantReason:i?.quadrant_reason||t.reasoningSummary||e(`knowledge.domain.confirmation.quadrantReason`,{quadrant:l(t.originQuadrant),description:u(t.originQuadrant)}),proposedBy:i?.proposed_by||V(r)}}function R(e,t,n){let r=`${t.kind}:${t.value}`,i=e.get(r)??{key:r,...t,items:[]},a=`${n.itemKind}:${n.id}`;i.items.some(e=>`${e.itemKind}:${e.id}`===a)||i.items.push(n),e.set(r,i)}function z(t){return t.name||t.source_description||t.summary||e(`knowledge.domain.confirmation.sourceRecord`)}function B(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.confirmation.otherSource`)}[t.source_application??``];return n?`${n} · ${t.name||t.source_kind||e(`knowledge.domain.confirmation.session`)}`:t.name||t.source_kind||e(`knowledge.domain.confirmation.sourceSession`)}function V(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.actors.otherAgent`)}[t?.source_application??``];return n?{kind:`agent`,label:n}:{kind:`import`,label:e(`knowledge.domain.actors.historicalRecord`)}}function H(t){if(!t.classificationExplicit)return e(`knowledge.domain.confirmation.legacyUnclassified`);let n=t.confirmationBasis;return P(t)===`confirmed`&&n?e(`knowledge.domain.confirmation.confirmed`,{actor:h(n.confirmed_by),time:N(n.confirmed_at)}):P(t)===`agent_confirmed`&&n?e(`knowledge.domain.confirmation.agentConfirmed`,{time:N(n.confirmed_at)}):n?e(`knowledge.domain.confirmation.pending`,{actor:h(n.proposed_by)}):e(`knowledge.domain.confirmation.legacyPending`)}function U(t){let n=t.confirmationBasis;return n?P(t)===`confirmed`?`${h(n.confirmed_by)} · ${N(n.confirmed_at)}`:P(t)===`agent_confirmed`?e(`knowledge.domain.confirmation.agentPolicy`,{time:N(n.confirmed_at)}):e(`knowledge.domain.confirmation.proposed`,{actor:h(n.proposed_by),reason:n.existence_reason}):e(`knowledge.domain.confirmation.legacyBasisMissing`)}function W(e){let t=e.epistemic_state_explicit===!0,n=e.confirmation_state_explicit===!0;return{originQuadrant:t?e.origin_quadrant??`known_known`:`unclassified`,currentQuadrant:t?e.current_quadrant??`known_known`:`unclassified`,epistemicStatus:t?e.epistemic_status??`confirmed`:`unreviewed`,classificationExplicit:t,confirmationStatus:G(e.confirmation_status),confirmationExplicit:n,confirmationBasis:e.confirmation_basis??null,reasoningSummary:e.reasoning_summary??``,profileAspect:e.profile_aspect??null,preferenceScope:e.preference_scope??(e.profile_aspect?`global`:null),preferenceProjectId:e.preference_project_id??null,inheritanceMode:e.inheritance_mode??`local_only`,inheritedProjectIds:e.inherited_project_ids??[],humanEdited:e.human_edited===!0,humanChangeStatus:e.human_change_status??`none`,humanChangeVersion:e.human_change_version??0,lastHumanChangedAt:e.last_human_changed_at??null,lastAgentViewedAt:e.last_agent_viewed_at??null,lastAgentReviewedAt:e.last_agent_reviewed_at??null,utilityScore:e.utility_score??0,confidenceScore:e.confidence_score??.5,qualifiedUseCount:e.qualified_use_count??0,distinctTaskCount:e.distinct_task_count??0,lastUsedAt:e.last_used_at??null,usageGeneration:e.usage_generation??1,invalidAt:e.invalid_at,replacedByItemId:e.replaced_by_item_id??null,replacedByItemKind:e.replaced_by_item_kind??null,createdAt:e.created_at,evidence:e.evidence??[],revisions:e.revisions??[],assignments:e.assignments??[],projectReferences:e.project_references??[],conflicts:e.conflicts??[],auditEvents:e.audit_events??[]}}function G(e){return e===`confirmed`||e===`agent_confirmed`?e:`pending`}function K(e){return[e.id,e.title,e.body,e.type,l(e.originQuadrant),d(e.profileAspect),e.reasoningSummary,e.confirmationBasis?.existence_reason,e.confirmationBasis?.quadrant_reason,h(e.confirmationBasis?.proposed_by),h(e.confirmationBasis?.confirmed_by),p(e.humanChangeStatus),...e.auditEvents.flatMap(e=>[m(e.action),e.reason,e.tool_name,e.conflict_check,e.classification_check,e.outcome]),...e.evidence.flatMap(e=>[e.name,e.summary,e.source_description,e.session_id,e.source_excerpt])].filter(Boolean).join(` `)}function q(e){let t=M(e),n=t?new Date(t).getTime():0;return Number.isNaN(n)?0:n}function J(e){let t=new Map;for(let n of e){let e=t.get(n.id);t.set(n.id,e?Y(e,n):n)}return[...t.values()]}function Y(e,t){let n={...e,...t};for(let r of[`evidence`,`revisions`,`assignments`,`project_references`,`conflicts`,`audit_events`,`episodes`]){let i=e[r],a=t[r];!i&&!a||(n[r]=X([...i??[],...a??[]]))}return n}function X(e){let t=new Set;return e.filter(e=>{let n=typeof e==`object`&&e?e.id??JSON.stringify(e):e;return t.has(n)?!1:(t.add(n),!0)})}export{d as C,F as D,l as E,f as O,w as S,u as T,P as _,h as a,A as b,g as c,p as d,S as f,v as g,b as h,H as i,O as l,x as m,L as n,U as o,m as p,I as r,_ as s,j as t,N as u,M as v,C as w,k as x,y};
1
+ import{a as e,n as t}from"./i18n-75woNt31.js";var n=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),r=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`TechnicalSummary`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),i=new Set([`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`,`unclassified`]),a=new Set([`taste`,`personality`,`judgment_preference`]),o=new Set([`confirm`,`update`,`invalidate`,`link_replacement`,`restore`,`scope_change`,`batch_confirm`]),s=new Set([`human_change`,`agent_view`,`agent_review`,`knowledge_used`]),c=new Set([`user`,`agent`,`authoritative_source`,`import`]);function l(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.${n}`):n}function u(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.descriptions.${n}`):e(`knowledge.domain.quadrants.customDescription`)}function d(t){let n=t??``;return a.has(n)?e(`knowledge.domain.profiles.${n}`):n}function f(t){let n=t??``;return o.has(n)?e(`knowledge.domain.revisions.${n}`):n||e(`knowledge.domain.revisions.fallback`)}function p(t){return e(`knowledge.domain.humanChanges.${t??`none`}`)}function m(t){let n=t??``;return s.has(n)?e(`knowledge.domain.auditActions.${n}`):n||e(`knowledge.domain.auditActions.fallback`)}function h(t){return t?t.label||(c.has(t.kind)?e(`knowledge.domain.actors.${t.kind}`):t.kind):e(`knowledge.domain.actors.notRecorded`)}function g(e){return typeof e==`object`&&e?e.id:e}function _(e){let t=e.nodes.filter(e=>!e.invalid_at),n=new Set(t.map(({id:e})=>e)),r=e.edges.filter(e=>!e.invalid_at&&n.has(g(e.source))&&n.has(g(e.target)));return{...e,nodes:t,edges:r}}function v(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(e=>!T(e)).map(e=>b(e)),r=e.edges.filter(e=>!E(e)).map(e=>x(e,t));return[...n,...r].sort((e,t)=>q(t)-q(e))}function y(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(T).map(e=>b(e)),r=e.edges.filter(E).map(e=>x(e,t));return[...n,...r]}function b(t){return{id:t.id,itemKind:`entity`,title:t.name,body:t.summary||e(`common.status.noDescription`),type:t.type,...W(t),raw:t}}function x(t,n){let r=n.get(g(t.source))??t.source_name,i=n.get(g(t.target))??t.target_name;return{id:t.id,itemKind:`relationship`,title:`${r??e(`knowledge.domain.items.unknownEntity`)} → ${i??e(`knowledge.domain.items.unknownEntity`)}`,body:t.fact||e(`knowledge.domain.items.noRelationDescription`),type:e(`knowledge.domain.items.relationshipType`,{type:t.type}),...W(t),raw:t}}function S(e){return e?n.has(e.type)||D(e.id):!1}function C(t){return t.itemKind===`relationship`?e(`knowledge.domain.materialTypes.relationship`):r.has(t.type)?e(`knowledge.domain.materialTypes.${t.type}`):t.type}function w(e){if(!e||e.itemKind!==`entity`)return null;let t=e.raw.attributes?.projectId;return typeof t==`string`&&t?t:null}function T(e){return n.has(e.type)||D(e.id)}function E(e){return D(e.id)}function D(e){return String(e).startsWith(`project-profile:`)||String(e).startsWith(`project-profile-edge:`)||String(e).startsWith(`space-edge:`)||String(e).startsWith(`personal-project-relation:`)||String(e).startsWith(`external-knowledge-binding:`)}function O(e,t){let n=t.query?.trim().toLocaleLowerCase()??``;return e.filter(e=>t.type&&t.type!==`all`&&e.type!==t.type||t.quadrant&&t.quadrant!==`all`&&e.originQuadrant!==t.quadrant||t.profile===`profile`&&!e.profileAspect||t.profile===`regular`&&e.profileAspect||t.status===`current`&&e.invalidAt||t.status===`historical`&&!e.invalidAt||t.humanChange===`human_changed`&&!e.humanEdited||t.humanChange&&![`all`,`human_changed`].includes(t.humanChange)&&e.humanChangeStatus!==t.humanChange?!1:!n||K(e).toLocaleLowerCase().includes(n))}function k(e){let t=v(e).filter(({profileAspect:e})=>e),n=new Set(t.filter(({itemKind:e})=>e===`relationship`).flatMap(({raw:e})=>{let t=e;return[g(t.source),g(t.target)]}));return t.filter(({id:e,itemKind:t})=>t===`relationship`||!n.has(e))}function A(e){let t=e.filter(e=>!!e);return{...t[0]??{space_id:null},nodes:J(t.flatMap(e=>e.nodes)),edges:J(t.flatMap(e=>e.edges)),truncated:t.some(({truncated:e})=>e)}}function j(e,t){let n=A([e,t]);return{...n,space_id:t.space_id??n.space_id,truncated:t.truncated,next_offset:t.next_offset??null}}function M(e){return e.revisions.at(0)?.created_at??e.createdAt??e.evidence.at(0)?.created_at??e.evidence.at(0)?.reference_time??null}function N(n){if(!n)return e(`knowledge.domain.items.notRecorded`);let r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString(t())}function P(e){let t=e.confirmationBasis;return!e.confirmationExplicit||!t?.confirmed_by||!t.confirmed_at?`pending`:e.confirmationStatus===`confirmed`&&[`user`,`authoritative_source`].includes(t.confirmed_by.kind)?`confirmed`:e.confirmationStatus===`agent_confirmed`&&t.confirmed_by.kind===`agent`&&t.agent_policy_version?`agent_confirmed`:`pending`}function F(t){return e(`knowledge.domain.reviewStates.${P(t)}`)}function I(n){let r=new Map,i=n.filter(e=>!e.invalidAt&&e.classificationExplicit&&P(e)!==`confirmed`);for(let t of i)for(let n of t.evidence)n.id&&R(r,{kind:`source`,value:n.id,label:z(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSource`)},t),n.session_id&&R(r,{kind:`session`,value:n.session_id,label:B(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSession`)},t);return[...r.values()].filter(({items:e})=>e.length>=2).sort((e,n)=>n.items.length-e.items.length||e.label.localeCompare(n.label,t()))}function L(t,n){let r=t.evidence.find(e=>n.kind===`source`?e.id===n.value:e.session_id===n.value),i=t.confirmationBasis;return{existenceReason:i?.existence_reason||r?.source_description||r?.summary||e(`knowledge.domain.confirmation.sourceSupports`,{label:n.label}),quadrantReason:i?.quadrant_reason||t.reasoningSummary||e(`knowledge.domain.confirmation.quadrantReason`,{quadrant:l(t.originQuadrant),description:u(t.originQuadrant)}),proposedBy:i?.proposed_by||V(r)}}function R(e,t,n){let r=`${t.kind}:${t.value}`,i=e.get(r)??{key:r,...t,items:[]},a=`${n.itemKind}:${n.id}`;i.items.some(e=>`${e.itemKind}:${e.id}`===a)||i.items.push(n),e.set(r,i)}function z(t){return t.name||t.source_description||t.summary||e(`knowledge.domain.confirmation.sourceRecord`)}function B(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.confirmation.otherSource`)}[t.source_application??``];return n?`${n} · ${t.name||t.source_kind||e(`knowledge.domain.confirmation.session`)}`:t.name||t.source_kind||e(`knowledge.domain.confirmation.sourceSession`)}function V(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.actors.otherAgent`)}[t?.source_application??``];return n?{kind:`agent`,label:n}:{kind:`import`,label:e(`knowledge.domain.actors.historicalRecord`)}}function H(t){if(!t.classificationExplicit)return e(`knowledge.domain.confirmation.legacyUnclassified`);let n=t.confirmationBasis;return P(t)===`confirmed`&&n?e(`knowledge.domain.confirmation.confirmed`,{actor:h(n.confirmed_by),time:N(n.confirmed_at)}):P(t)===`agent_confirmed`&&n?e(`knowledge.domain.confirmation.agentConfirmed`,{time:N(n.confirmed_at)}):n?e(`knowledge.domain.confirmation.pending`,{actor:h(n.proposed_by)}):e(`knowledge.domain.confirmation.legacyPending`)}function U(t){let n=t.confirmationBasis;return n?P(t)===`confirmed`?`${h(n.confirmed_by)} · ${N(n.confirmed_at)}`:P(t)===`agent_confirmed`?e(`knowledge.domain.confirmation.agentPolicy`,{time:N(n.confirmed_at)}):e(`knowledge.domain.confirmation.proposed`,{actor:h(n.proposed_by),reason:n.existence_reason}):e(`knowledge.domain.confirmation.legacyBasisMissing`)}function W(e){let t=e.epistemic_state_explicit===!0,n=e.confirmation_state_explicit===!0;return{originQuadrant:t?e.origin_quadrant??`known_known`:`unclassified`,currentQuadrant:t?e.current_quadrant??`known_known`:`unclassified`,epistemicStatus:t?e.epistemic_status??`confirmed`:`unreviewed`,classificationExplicit:t,confirmationStatus:G(e.confirmation_status),confirmationExplicit:n,confirmationBasis:e.confirmation_basis??null,reasoningSummary:e.reasoning_summary??``,profileAspect:e.profile_aspect??null,preferenceScope:e.preference_scope??(e.profile_aspect?`global`:null),preferenceProjectId:e.preference_project_id??null,inheritanceMode:e.inheritance_mode??`local_only`,inheritedProjectIds:e.inherited_project_ids??[],humanEdited:e.human_edited===!0,humanChangeStatus:e.human_change_status??`none`,humanChangeVersion:e.human_change_version??0,lastHumanChangedAt:e.last_human_changed_at??null,lastAgentViewedAt:e.last_agent_viewed_at??null,lastAgentReviewedAt:e.last_agent_reviewed_at??null,utilityScore:e.utility_score??0,confidenceScore:e.confidence_score??.5,qualifiedUseCount:e.qualified_use_count??0,distinctTaskCount:e.distinct_task_count??0,lastUsedAt:e.last_used_at??null,usageGeneration:e.usage_generation??1,invalidAt:e.invalid_at,replacedByItemId:e.replaced_by_item_id??null,replacedByItemKind:e.replaced_by_item_kind??null,createdAt:e.created_at,evidence:e.evidence??[],revisions:e.revisions??[],assignments:e.assignments??[],projectReferences:e.project_references??[],conflicts:e.conflicts??[],auditEvents:e.audit_events??[]}}function G(e){return e===`confirmed`||e===`agent_confirmed`?e:`pending`}function K(e){return[e.id,e.title,e.body,e.type,l(e.originQuadrant),d(e.profileAspect),e.reasoningSummary,e.confirmationBasis?.existence_reason,e.confirmationBasis?.quadrant_reason,h(e.confirmationBasis?.proposed_by),h(e.confirmationBasis?.confirmed_by),p(e.humanChangeStatus),...e.auditEvents.flatMap(e=>[m(e.action),e.reason,e.tool_name,e.conflict_check,e.classification_check,e.outcome]),...e.evidence.flatMap(e=>[e.name,e.summary,e.source_description,e.session_id,e.source_excerpt])].filter(Boolean).join(` `)}function q(e){let t=M(e),n=t?new Date(t).getTime():0;return Number.isNaN(n)?0:n}function J(e){let t=new Map;for(let n of e){let e=t.get(n.id);t.set(n.id,e?Y(e,n):n)}return[...t.values()]}function Y(e,t){let n={...e,...t};for(let r of[`evidence`,`revisions`,`assignments`,`project_references`,`conflicts`,`audit_events`,`episodes`]){let i=e[r],a=t[r];!i&&!a||(n[r]=X([...i??[],...a??[]]))}return n}function X(e){let t=new Set;return e.filter(e=>{let n=typeof e==`object`&&e?e.id??JSON.stringify(e):e;return t.has(n)?!1:(t.add(n),!0)})}export{d as C,F as D,l as E,f as O,w as S,u as T,P as _,h as a,A as b,g as c,p as d,S as f,v as g,b as h,H as i,O as l,x as m,L as n,U as o,m as p,I as r,_ as s,j as t,N as u,M as v,C as w,k as x,y};
@@ -1 +1 @@
1
- import{n as e}from"./client-CEHkJJ-5.js";import{t}from"./model-CGpllrds.js";async function n(n,r){let i=new URLSearchParams({spaceId:n,limit:`500`,offset:`0`}),a=null,o=new Set([0]);for(let n=0;n<20;n++){let n=await e(`/api/graph?${i}`,{signal:r});if(!Array.isArray(n?.nodes)||!Array.isArray(n?.edges))throw Error(`Invalid personal profile history`);if(a=t(a,n),!n.truncated)return a;let s=n.next_offset;if(!Number.isInteger(s)||s==null||s<0||o.has(s))break;o.add(s),i.set(`offset`,String(s))}throw Error(`Personal profile history is incomplete. Reload before reviewing preferences.`)}export{n as t};
1
+ import{n as e}from"./client-InXscj8J.js";import{t}from"./model-C1GwBvd9.js";async function n(n,r){let i=new URLSearchParams({spaceId:n,limit:`500`,offset:`0`}),a=null,o=new Set([0]);for(let n=0;n<20;n++){let n=await e(`/api/graph?${i}`,{signal:r});if(!Array.isArray(n?.nodes)||!Array.isArray(n?.edges))throw Error(`Invalid personal profile history`);if(a=t(a,n),!n.truncated)return a;let s=n.next_offset;if(!Number.isInteger(s)||s==null||s<0||o.has(s))break;o.add(s),i.set(`offset`,String(s))}throw Error(`Personal profile history is incomplete. Reload before reviewing preferences.`)}export{n as t};
@@ -1 +1 @@
1
- import{A as e,F as t,H as n,N as r,T as i,V as a,Z as o,_ as s,a as c,at as l,b as u,d as ee,g as te,h as d,it as ne,j as re,m as ie,nt as f,o as ae,rt as p,v as m,w as h,x as g,y as _}from"./i18n-BtOOoyJd.js";import{t as oe}from"./GrowthLoading-Bu_kH-I8.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as y}from"./client-CEHkJJ-5.js";import{t as se}from"./ProjectScopePicker-DVHfXX1f.js";var ce={class:`employee-all-projects`,"aria-labelledby":`employee-all-projects-title`},le={class:`employee-all-projects-header`},ue={class:`employee-all-projects-heading`},de={id:`employee-all-projects-title`},fe={class:`employee-all-projects-controls`},b={class:`employee-all-projects-search`},pe=[`placeholder`],me={key:0,class:`employee-all-projects-notice`,role:`status`},he={key:1,class:`employee-all-projects-notice`,role:`status`},ge={key:2,class:`employee-all-projects-notice`,role:`status`},_e={key:3,class:`employee-all-projects-notice is-error`,role:`alert`},ve={key:4,class:`employee-all-projects-empty`},ye={key:5,class:`employee-all-projects-empty`},be={key:6,class:`employee-all-projects-empty`},xe={key:7,class:`employee-all-projects-board-shell`},Se={key:0,id:`employee-drag-instructions`,class:`visually-hidden`},Ce={class:`visually-hidden`,"aria-live":`assertive`,"aria-atomic":`true`},we=[`aria-label`],Te=[`aria-label`],Ee=[`data-drag-placeholder`,`aria-hidden`],De=[`disabled`,`aria-label`,`onClick`],Oe={class:`employee-all-projects-project`},ke={key:0,class:`employee-all-projects-summary`},x={key:1,class:`employee-all-projects-tags`,"aria-hidden":`true`},S=[`disabled`,`aria-label`,`title`,`onPointerdown`,`onKeydown`],C={class:`employee-all-projects-project`},w={key:0,class:`employee-all-projects-summary`},T=v(i({__name:`EmployeeTaskBoard`,props:{boards:{},projects:{},visibleProjectIds:{},failedProjects:{},movingItemKeys:{},actionError:{},canMoveTasks:{type:Boolean},readOnly:{type:Boolean},resettableFilter:{type:Boolean},filterStorageUnavailable:{type:Boolean}},emits:[`select-task`,`create-task`,`update:visible-project-ids`,`move-task`,`retry`,`reset-project-filter`],setup(i,{emit:v}){let y=i,T=v,E=o(``),D=o(null),O=0,k={x:0,y:0},A=o(``),j=o(null),M=null,N=0,P=[{value:`planned`,labelKey:`employees.allProjects.status.planned`},{value:`active`,labelKey:`employees.allProjects.status.active`},{value:`blocked`,labelKey:`employees.allProjects.status.blocked`},{value:`review`,labelKey:`employees.allProjects.status.review`},{value:`done`,labelKey:`employees.allProjects.status.done`}],F=s(()=>new Map(y.boards.map(({project:e})=>[e.id,e.name]))),I=s(()=>y.boards.flatMap(({items:e})=>e)),L=s(()=>{let e=E.value.trim().toLocaleLowerCase();return e?I.value.filter(t=>[t.title,t.summary,F.value.get(t.projectId),...t.tags??[]].filter(Boolean).join(` `).toLocaleLowerCase().includes(e)):I.value}),R=s(()=>P.map(e=>({...e,items:L.value.filter(({status:t})=>t===e.value)}))),z=s(()=>y.boards.filter(({truncated:e})=>e).length),Ae=s(()=>y.visibleProjectIds.length>0),je=s(()=>I.value.length>0),Me=s(()=>L.value.length>0);function B(e){return F.value.get(e)??e}function Ne(){T(`update:visible-project-ids`,y.projects.map(e=>e.id))}function V(e){return`${e.projectId}:${e.id}`}function H(e){return y.movingItemKeys?.includes(V(e))??!1}function U(e){let t=R.value.find(t=>t.value===e)?.items??[],n=j.value;if(!n||n.keyboard)return t;let r=t.filter(e=>V(e)!==V(n.item));if(n.targetStatus!==e)return r;let i=[...r];return i.splice(Math.min(n.targetIndex,i.length),0,n.item),i}function W(e){return j.value!==null&&V(j.value.item)===V(e)}function G(e){let t=P.find(t=>t.value===e);return t?c(t.labelKey):e}function Pe(e,t,n){if(e.button!==0||H(t))return;let r=e.currentTarget.closest(`.employee-all-projects-task`);if(!r)return;let i=r.getBoundingClientRect();M={item:t,sourceIndex:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,offsetX:e.clientX-i.left,offsetY:e.clientY-i.top,rect:i},document.addEventListener(`pointermove`,K),document.addEventListener(`pointerup`,Y),document.addEventListener(`pointercancel`,X)}function Fe(e,t){j.value={item:t.item,sourceStatus:t.item.status,sourceIndex:t.sourceIndex,targetStatus:t.item.status,targetIndex:t.sourceIndex,left:e.clientX-t.offsetX,top:e.clientY-t.offsetY,width:t.rect.width,height:t.rect.height,offsetX:t.offsetX,offsetY:t.offsetY,phase:`dragging`,duration:0,keyboard:!1},A.value=c(`employees.allProjects.dragLifted`,{task:t.item.title,status:G(t.item.status)}),document.body.classList.add(`employee-task-is-dragging`)}function K(e){let t=M;if(!(!t||e.pointerId!==t.pointerId)){if(!j.value){if(Math.hypot(e.clientX-t.startX,e.clientY-t.startY)<5)return;Fe(e,t)}!j.value||j.value.phase!==`dragging`||(e.preventDefault(),j.value.left=e.clientX-j.value.offsetX,j.value.top=e.clientY-j.value.offsetY,k={x:e.clientX,y:e.clientY},O||=requestAnimationFrame(q),J(e.clientX,e.clientY))}}function q(){if(O=0,!j.value||j.value.phase!==`dragging`||j.value.keyboard)return;let e=D.value;if(!e)return;let t=e.getBoundingClientRect(),n=(e,t,n)=>e<t+48?-Math.min(16,(t+48-e)/3):e>n-48?Math.min(16,(e-n+48)/3):0;k.y>=t.top&&k.y<=t.bottom&&(e.scrollLeft+=n(k.x,t.left,t.right));let r=document.elementsFromPoint(k.x,k.y).map(e=>e.closest(`.employee-all-projects-list`)).find(t=>t&&e.contains(t));if(r){let e=r.getBoundingClientRect();r.scrollTop+=n(k.y,e.top,e.bottom)}J(k.x,k.y),O=requestAnimationFrame(q)}function J(e,t){let n=j.value;if(!n)return;let r=document.elementsFromPoint(e,t).map(e=>e.closest(`.employee-all-projects-list`)).find(Boolean);if(!r)return;let i=r.dataset.status;if(!i||!P.some(e=>e.value===i))return;let a=[...r.querySelectorAll(`.employee-all-projects-task:not(.is-placeholder)`)],o=a.findIndex(e=>t<e.getBoundingClientRect().top+e.getBoundingClientRect().height/2);n.targetStatus=i,n.targetIndex=o<0?a.length:o}function Y(e){!M||e.pointerId!==M.pointerId||(M=null,Z(),j.value&&Q(!0))}function X(){M=null,Z(),$()}function Z(){O&&cancelAnimationFrame(O),O=0,document.removeEventListener(`pointermove`,K),document.removeEventListener(`pointerup`,Y),document.removeEventListener(`pointercancel`,X)}function Ie(e,t,n){if(H(e))return;let r=n.closest(`.employee-all-projects-task`);if(!r)return;let i=r.getBoundingClientRect();j.value={item:e,sourceStatus:e.status,sourceIndex:t,targetStatus:e.status,targetIndex:t,left:i.left,top:i.top,width:i.width,height:i.height,offsetX:0,offsetY:0,phase:`dragging`,duration:0,keyboard:!0},A.value=c(`employees.allProjects.dragLifted`,{task:e.title,status:G(e.status)})}function Le(e,t,n){let r=j.value;if(!r){if(e.key!==` `&&e.key!==`Enter`)return;e.preventDefault(),Ie(t,n,e.currentTarget);return}if(!r.keyboard||V(r.item)!==V(t))return;if(e.key===`Escape`){e.preventDefault(),$(),A.value=c(`employees.allProjects.dragCancelled`);return}if(e.key===` `||e.key===`Enter`){e.preventDefault(),Q(!1);return}let i=P.findIndex(e=>e.value===r.targetStatus);if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-1:1,n=P[Math.max(0,Math.min(P.length-1,i+t))];n&&(r.targetStatus=n.value,r.targetIndex=U(n.value).length)}else if(e.key===`ArrowUp`||e.key===`ArrowDown`)e.preventDefault(),r.targetIndex=Math.max(0,r.targetIndex+(e.key===`ArrowUp`?-1:1));else return;A.value=c(`employees.allProjects.dragMoved`,{status:G(r.targetStatus)})}async function Q(t){let n=j.value;if(!n)return;if(n.targetStatus===n.sourceStatus){$(),A.value=c(`employees.allProjects.dragCancelled`);return}if(t){await e();let t=[...document.querySelectorAll(`[data-drag-placeholder="true"]`)][0]?.getBoundingClientRect();if(t){let e=Math.hypot(t.left-n.left,t.top-n.top);n.duration=Math.round(Math.min(360,Math.max(180,180+e*.16))),n.phase=`dropping`,n.left=t.left,n.top=t.top,await new Promise(e=>{N=window.setTimeout(e,n.duration)})}}let r=n.item,i=n.targetStatus;A.value=c(`employees.allProjects.dragDropped`,{task:r.title,status:G(i)}),T(`move-task`,r,i),j.value=null,document.body.classList.remove(`employee-task-is-dragging`)}function $(){N&&window.clearTimeout(N),N=0,j.value=null,document.body.classList.remove(`employee-task-is-dragging`)}return re(()=>{Z(),$()}),(e,o)=>(r(),g(`section`,ce,[m(`header`,le,[m(`div`,ue,[m(`h2`,de,l(f(c)(`employees.allProjects.title`)),1)]),m(`div`,fe,[i.canMoveTasks?(r(),g(`button`,{key:0,class:`employee-board-create`,type:`button`,onClick:o[0]||=e=>T(`create-task`)},`+ `+l(f(c)(`employees.task.create`)),1)):u(``,!0),h(se,{class:`employee-all-projects-filter`,"model-value":i.visibleProjectIds,projects:i.projects,compact:``,"show-count":``,resettable:i.resettableFilter,label:f(c)(`employees.allProjects.projectFilter`),hint:f(c)(`employees.allProjects.projectFilterHint`),"empty-label":f(c)(`employees.allProjects.noProjectsVisible`),"onUpdate:modelValue":o[1]||=e=>T(`update:visible-project-ids`,e),onReset:o[2]||=e=>T(`reset-project-filter`)},null,8,[`model-value`,`projects`,`resettable`,`label`,`hint`,`empty-label`]),m(`label`,b,[m(`span`,null,l(f(c)(`employees.allProjects.search`)),1),n(m(`input`,{"onUpdate:modelValue":o[3]||=e=>E.value=e,type:`search`,placeholder:f(c)(`employees.allProjects.searchPlaceholder`)},null,8,pe),[[ee,E.value]])])])]),i.filterStorageUnavailable?(r(),g(`div`,me,l(f(c)(`employees.scope.storageUnavailable`)),1)):u(``,!0),i.failedProjects?(r(),g(`div`,he,[m(`span`,null,l(f(c)(`employees.allProjects.partial`,{loaded:i.boards.length,total:i.visibleProjectIds.length,failed:i.failedProjects})),1),m(`button`,{type:`button`,onClick:o[4]||=e=>T(`retry`)},l(f(c)(`employees.retry`)),1)])):u(``,!0),z.value?(r(),g(`div`,ge,l(f(c)(`employees.allProjects.truncated`,{count:z.value})),1)):u(``,!0),i.actionError?(r(),g(`div`,_e,l(i.actionError),1)):u(``,!0),Ae.value?je.value?Me.value?(r(),g(`div`,xe,[i.canMoveTasks?(r(),g(`p`,Se,l(f(c)(`employees.allProjects.dragHint`)),1)):u(``,!0),m(`p`,Ce,l(A.value),1),m(`div`,{ref_key:`boardElement`,ref:D,class:p([`employee-all-projects-board`,{"is-dragging":j.value}]),"aria-label":f(c)(`employees.allProjects.boardLabel`)},[(r(!0),g(d,null,t(R.value,e=>(r(),g(`section`,{key:e.value,class:p([`employee-all-projects-column`,{"is-drop-target":j.value?.targetStatus===e.value}])},[m(`header`,null,[m(`h3`,null,l(f(c)(e.labelKey)),1),m(`span`,{"aria-label":f(c)(`employees.allProjects.taskCount`,{count:U(e.value).length})},l(U(e.value).length),9,Te)]),h(ae,{name:`employee-task-shift`,tag:`div`,class:`employee-all-projects-list`,"data-status":e.value},{default:a(()=>[(r(!0),g(d,null,t(U(e.value),(e,n)=>(r(),g(`article`,{key:V(e),class:p([`employee-all-projects-task`,{"is-placeholder":W(e),"is-saving":H(e)}]),"data-drag-placeholder":W(e)?`true`:void 0,"aria-hidden":W(e)?`true`:void 0},[m(`button`,{type:`button`,class:`employee-all-projects-task-open`,disabled:H(e)||i.readOnly,"aria-label":f(c)(`employees.allProjects.openTask`,{project:B(e.projectId),task:e.title}),onClick:t=>T(`select-task`,e)},[m(`span`,Oe,l(B(e.projectId)),1),m(`strong`,null,l(e.title),1),e.summary&&e.summary!==e.title?(r(),g(`span`,ke,l(e.summary),1)):u(``,!0),e.tags?.length?(r(),g(`span`,x,[(r(!0),g(d,null,t(e.tags.slice(0,3),e=>(r(),g(`span`,{key:e},l(e),1))),128))])):u(``,!0)],8,De),i.canMoveTasks?(r(),g(`button`,{key:0,type:`button`,class:`employee-all-projects-drag-handle`,disabled:H(e),"aria-label":f(c)(`employees.allProjects.dragTask`,{task:e.title}),title:f(c)(`employees.allProjects.dragTask`,{task:e.title}),"aria-describedby":`employee-drag-instructions`,onPointerdown:ie(t=>Pe(t,e,n),[`stop`,`prevent`]),onKeydown:t=>Le(t,e,n)},[...o[5]||=[m(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`},[m(`circle`,{cx:`5`,cy:`4`,r:`1`}),m(`circle`,{cx:`11`,cy:`4`,r:`1`}),m(`circle`,{cx:`5`,cy:`8`,r:`1`}),m(`circle`,{cx:`11`,cy:`8`,r:`1`}),m(`circle`,{cx:`5`,cy:`12`,r:`1`}),m(`circle`,{cx:`11`,cy:`12`,r:`1`})],-1)]],40,S)):u(``,!0),H(e)?(r(),_(oe,{key:1,class:`employee-all-projects-saving`,variant:`inline`,label:f(c)(`employees.allProjects.saving`)},null,8,[`label`])):u(``,!0)],10,Ee))),128)),U(e.value).length?u(``,!0):(r(),g(`p`,{key:`${e.value}-empty`,class:`employee-all-projects-column-empty`},l(f(c)(`employees.allProjects.columnEmpty`)),1))]),_:2},1032,[`data-status`])],2))),128))],10,we)])):(r(),g(`div`,be,[m(`h3`,null,l(f(c)(`employees.allProjects.noMatch`)),1),m(`p`,null,l(f(c)(`employees.allProjects.noMatchHint`)),1)])):(r(),g(`div`,ye,[m(`h3`,null,l(f(c)(`employees.allProjects.empty`)),1),m(`p`,null,l(f(c)(`employees.allProjects.emptyHint`)),1)])):(r(),g(`div`,ve,[m(`h3`,null,l(f(c)(`employees.allProjects.noProjectsVisible`)),1),m(`p`,null,l(f(c)(`employees.allProjects.noProjectsVisibleHint`)),1),m(`button`,{type:`button`,onClick:Ne},l(f(c)(`employees.allProjects.showAllProjects`)),1)])),(r(),_(te,{to:`body`},[j.value&&!j.value.keyboard?(r(),g(`article`,{key:0,class:p([`employee-all-projects-task employee-all-projects-drag-preview`,{"is-dropping":j.value.phase===`dropping`}]),style:ne({width:`${j.value.width}px`,height:`${j.value.height}px`,"--employee-drag-x":`${j.value.left}px`,"--employee-drag-y":`${j.value.top}px`,"--employee-drop-duration":`${j.value.duration}ms`}),"aria-hidden":`true`},[m(`span`,C,l(B(j.value.item.projectId)),1),m(`strong`,null,l(j.value.item.title),1),j.value.item.summary&&j.value.item.summary!==j.value.item.title?(r(),g(`span`,w,l(j.value.item.summary),1)):u(``,!0)],6)):u(``,!0)]))]))}}),[[`__scopeId`,`data-v-f884e0f4`]]);async function E(e){let t=await y(`/employee-workspaces/jefa/${encodeURIComponent(e.id)}/api/public/${encodeURIComponent(e.slug)}`);if(t?.project?.id!==e.id||typeof t.project.name!=`string`||!Array.isArray(t.items))throw Error(`Invalid public projection`);let n=t.items.filter(e=>e&&typeof e.id==`string`&&typeof e.title==`string`&&[`planned`,`active`,`blocked`,`review`,`done`].includes(e.status)).map(t=>({id:t.id,projectId:e.id,title:t.title,status:t.status,priority:t.priority}));return{project:{id:t.project.id,name:t.project.name},items:n,total:n.length,truncated:!1}}function D(e,t){let n=new URL(`/reports/jefa`,t);return n.hash=new URLSearchParams(e.map(e=>[`p`,JSON.stringify([e.id,e.slug])])).toString(),n.href}function O(e){let t=new URLSearchParams(e.replace(/^#/,``)).getAll(`p`);if(!t.length||t.length>100)throw Error(`Invalid report scope`);let n=new Set;return t.map(e=>{let t=JSON.parse(e);if(!Array.isArray(t)||t.length!==2||typeof t[0]!=`string`||!t[0]||t[0].length>160||typeof t[1]!=`string`||!/^share-[a-zA-Z0-9-]{16,100}$/.test(t[1])||n.has(t[0]))throw Error(`Invalid report scope`);return n.add(t[0]),{id:t[0],slug:t[1]}})}export{T as i,O as n,D as r,E as t};
1
+ import{A as e,F as t,H as n,N as r,T as i,V as a,Z as o,_ as s,a as c,at as l,b as u,d as ee,g as te,h as d,it as ne,j as re,m as ie,nt as f,o as ae,rt as p,v as m,w as h,x as g,y as _}from"./i18n-75woNt31.js";import{t as oe}from"./GrowthLoading-DFOy-mEl.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as y}from"./client-InXscj8J.js";import{t as se}from"./ProjectScopePicker-8hrgvmg-.js";var ce={class:`employee-all-projects`,"aria-labelledby":`employee-all-projects-title`},le={class:`employee-all-projects-header`},ue={class:`employee-all-projects-heading`},de={id:`employee-all-projects-title`},fe={class:`employee-all-projects-controls`},b={class:`employee-all-projects-search`},pe=[`placeholder`],me={key:0,class:`employee-all-projects-notice`,role:`status`},he={key:1,class:`employee-all-projects-notice`,role:`status`},ge={key:2,class:`employee-all-projects-notice`,role:`status`},_e={key:3,class:`employee-all-projects-notice is-error`,role:`alert`},ve={key:4,class:`employee-all-projects-empty`},ye={key:5,class:`employee-all-projects-empty`},be={key:6,class:`employee-all-projects-empty`},xe={key:7,class:`employee-all-projects-board-shell`},Se={key:0,id:`employee-drag-instructions`,class:`visually-hidden`},Ce={class:`visually-hidden`,"aria-live":`assertive`,"aria-atomic":`true`},we=[`aria-label`],Te=[`aria-label`],Ee=[`data-drag-placeholder`,`aria-hidden`],De=[`disabled`,`aria-label`,`onClick`],Oe={class:`employee-all-projects-project`},ke={key:0,class:`employee-all-projects-summary`},x={key:1,class:`employee-all-projects-tags`,"aria-hidden":`true`},S=[`disabled`,`aria-label`,`title`,`onPointerdown`,`onKeydown`],C={class:`employee-all-projects-project`},w={key:0,class:`employee-all-projects-summary`},T=v(i({__name:`EmployeeTaskBoard`,props:{boards:{},projects:{},visibleProjectIds:{},failedProjects:{},movingItemKeys:{},actionError:{},canMoveTasks:{type:Boolean},readOnly:{type:Boolean},resettableFilter:{type:Boolean},filterStorageUnavailable:{type:Boolean}},emits:[`select-task`,`create-task`,`update:visible-project-ids`,`move-task`,`retry`,`reset-project-filter`],setup(i,{emit:v}){let y=i,T=v,E=o(``),D=o(null),O=0,k={x:0,y:0},A=o(``),j=o(null),M=null,N=0,P=[{value:`planned`,labelKey:`employees.allProjects.status.planned`},{value:`active`,labelKey:`employees.allProjects.status.active`},{value:`blocked`,labelKey:`employees.allProjects.status.blocked`},{value:`review`,labelKey:`employees.allProjects.status.review`},{value:`done`,labelKey:`employees.allProjects.status.done`}],F=s(()=>new Map(y.boards.map(({project:e})=>[e.id,e.name]))),I=s(()=>y.boards.flatMap(({items:e})=>e)),L=s(()=>{let e=E.value.trim().toLocaleLowerCase();return e?I.value.filter(t=>[t.title,t.summary,F.value.get(t.projectId),...t.tags??[]].filter(Boolean).join(` `).toLocaleLowerCase().includes(e)):I.value}),R=s(()=>P.map(e=>({...e,items:L.value.filter(({status:t})=>t===e.value)}))),z=s(()=>y.boards.filter(({truncated:e})=>e).length),Ae=s(()=>y.visibleProjectIds.length>0),je=s(()=>I.value.length>0),Me=s(()=>L.value.length>0);function B(e){return F.value.get(e)??e}function Ne(){T(`update:visible-project-ids`,y.projects.map(e=>e.id))}function V(e){return`${e.projectId}:${e.id}`}function H(e){return y.movingItemKeys?.includes(V(e))??!1}function U(e){let t=R.value.find(t=>t.value===e)?.items??[],n=j.value;if(!n||n.keyboard)return t;let r=t.filter(e=>V(e)!==V(n.item));if(n.targetStatus!==e)return r;let i=[...r];return i.splice(Math.min(n.targetIndex,i.length),0,n.item),i}function W(e){return j.value!==null&&V(j.value.item)===V(e)}function G(e){let t=P.find(t=>t.value===e);return t?c(t.labelKey):e}function Pe(e,t,n){if(e.button!==0||H(t))return;let r=e.currentTarget.closest(`.employee-all-projects-task`);if(!r)return;let i=r.getBoundingClientRect();M={item:t,sourceIndex:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,offsetX:e.clientX-i.left,offsetY:e.clientY-i.top,rect:i},document.addEventListener(`pointermove`,K),document.addEventListener(`pointerup`,Y),document.addEventListener(`pointercancel`,X)}function Fe(e,t){j.value={item:t.item,sourceStatus:t.item.status,sourceIndex:t.sourceIndex,targetStatus:t.item.status,targetIndex:t.sourceIndex,left:e.clientX-t.offsetX,top:e.clientY-t.offsetY,width:t.rect.width,height:t.rect.height,offsetX:t.offsetX,offsetY:t.offsetY,phase:`dragging`,duration:0,keyboard:!1},A.value=c(`employees.allProjects.dragLifted`,{task:t.item.title,status:G(t.item.status)}),document.body.classList.add(`employee-task-is-dragging`)}function K(e){let t=M;if(!(!t||e.pointerId!==t.pointerId)){if(!j.value){if(Math.hypot(e.clientX-t.startX,e.clientY-t.startY)<5)return;Fe(e,t)}!j.value||j.value.phase!==`dragging`||(e.preventDefault(),j.value.left=e.clientX-j.value.offsetX,j.value.top=e.clientY-j.value.offsetY,k={x:e.clientX,y:e.clientY},O||=requestAnimationFrame(q),J(e.clientX,e.clientY))}}function q(){if(O=0,!j.value||j.value.phase!==`dragging`||j.value.keyboard)return;let e=D.value;if(!e)return;let t=e.getBoundingClientRect(),n=(e,t,n)=>e<t+48?-Math.min(16,(t+48-e)/3):e>n-48?Math.min(16,(e-n+48)/3):0;k.y>=t.top&&k.y<=t.bottom&&(e.scrollLeft+=n(k.x,t.left,t.right));let r=document.elementsFromPoint(k.x,k.y).map(e=>e.closest(`.employee-all-projects-list`)).find(t=>t&&e.contains(t));if(r){let e=r.getBoundingClientRect();r.scrollTop+=n(k.y,e.top,e.bottom)}J(k.x,k.y),O=requestAnimationFrame(q)}function J(e,t){let n=j.value;if(!n)return;let r=document.elementsFromPoint(e,t).map(e=>e.closest(`.employee-all-projects-list`)).find(Boolean);if(!r)return;let i=r.dataset.status;if(!i||!P.some(e=>e.value===i))return;let a=[...r.querySelectorAll(`.employee-all-projects-task:not(.is-placeholder)`)],o=a.findIndex(e=>t<e.getBoundingClientRect().top+e.getBoundingClientRect().height/2);n.targetStatus=i,n.targetIndex=o<0?a.length:o}function Y(e){!M||e.pointerId!==M.pointerId||(M=null,Z(),j.value&&Q(!0))}function X(){M=null,Z(),$()}function Z(){O&&cancelAnimationFrame(O),O=0,document.removeEventListener(`pointermove`,K),document.removeEventListener(`pointerup`,Y),document.removeEventListener(`pointercancel`,X)}function Ie(e,t,n){if(H(e))return;let r=n.closest(`.employee-all-projects-task`);if(!r)return;let i=r.getBoundingClientRect();j.value={item:e,sourceStatus:e.status,sourceIndex:t,targetStatus:e.status,targetIndex:t,left:i.left,top:i.top,width:i.width,height:i.height,offsetX:0,offsetY:0,phase:`dragging`,duration:0,keyboard:!0},A.value=c(`employees.allProjects.dragLifted`,{task:e.title,status:G(e.status)})}function Le(e,t,n){let r=j.value;if(!r){if(e.key!==` `&&e.key!==`Enter`)return;e.preventDefault(),Ie(t,n,e.currentTarget);return}if(!r.keyboard||V(r.item)!==V(t))return;if(e.key===`Escape`){e.preventDefault(),$(),A.value=c(`employees.allProjects.dragCancelled`);return}if(e.key===` `||e.key===`Enter`){e.preventDefault(),Q(!1);return}let i=P.findIndex(e=>e.value===r.targetStatus);if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-1:1,n=P[Math.max(0,Math.min(P.length-1,i+t))];n&&(r.targetStatus=n.value,r.targetIndex=U(n.value).length)}else if(e.key===`ArrowUp`||e.key===`ArrowDown`)e.preventDefault(),r.targetIndex=Math.max(0,r.targetIndex+(e.key===`ArrowUp`?-1:1));else return;A.value=c(`employees.allProjects.dragMoved`,{status:G(r.targetStatus)})}async function Q(t){let n=j.value;if(!n)return;if(n.targetStatus===n.sourceStatus){$(),A.value=c(`employees.allProjects.dragCancelled`);return}if(t){await e();let t=[...document.querySelectorAll(`[data-drag-placeholder="true"]`)][0]?.getBoundingClientRect();if(t){let e=Math.hypot(t.left-n.left,t.top-n.top);n.duration=Math.round(Math.min(360,Math.max(180,180+e*.16))),n.phase=`dropping`,n.left=t.left,n.top=t.top,await new Promise(e=>{N=window.setTimeout(e,n.duration)})}}let r=n.item,i=n.targetStatus;A.value=c(`employees.allProjects.dragDropped`,{task:r.title,status:G(i)}),T(`move-task`,r,i),j.value=null,document.body.classList.remove(`employee-task-is-dragging`)}function $(){N&&window.clearTimeout(N),N=0,j.value=null,document.body.classList.remove(`employee-task-is-dragging`)}return re(()=>{Z(),$()}),(e,o)=>(r(),g(`section`,ce,[m(`header`,le,[m(`div`,ue,[m(`h2`,de,l(f(c)(`employees.allProjects.title`)),1)]),m(`div`,fe,[i.canMoveTasks?(r(),g(`button`,{key:0,class:`employee-board-create`,type:`button`,onClick:o[0]||=e=>T(`create-task`)},`+ `+l(f(c)(`employees.task.create`)),1)):u(``,!0),h(se,{class:`employee-all-projects-filter`,"model-value":i.visibleProjectIds,projects:i.projects,compact:``,"show-count":``,resettable:i.resettableFilter,label:f(c)(`employees.allProjects.projectFilter`),hint:f(c)(`employees.allProjects.projectFilterHint`),"empty-label":f(c)(`employees.allProjects.noProjectsVisible`),"onUpdate:modelValue":o[1]||=e=>T(`update:visible-project-ids`,e),onReset:o[2]||=e=>T(`reset-project-filter`)},null,8,[`model-value`,`projects`,`resettable`,`label`,`hint`,`empty-label`]),m(`label`,b,[m(`span`,null,l(f(c)(`employees.allProjects.search`)),1),n(m(`input`,{"onUpdate:modelValue":o[3]||=e=>E.value=e,type:`search`,placeholder:f(c)(`employees.allProjects.searchPlaceholder`)},null,8,pe),[[ee,E.value]])])])]),i.filterStorageUnavailable?(r(),g(`div`,me,l(f(c)(`employees.scope.storageUnavailable`)),1)):u(``,!0),i.failedProjects?(r(),g(`div`,he,[m(`span`,null,l(f(c)(`employees.allProjects.partial`,{loaded:i.boards.length,total:i.visibleProjectIds.length,failed:i.failedProjects})),1),m(`button`,{type:`button`,onClick:o[4]||=e=>T(`retry`)},l(f(c)(`employees.retry`)),1)])):u(``,!0),z.value?(r(),g(`div`,ge,l(f(c)(`employees.allProjects.truncated`,{count:z.value})),1)):u(``,!0),i.actionError?(r(),g(`div`,_e,l(i.actionError),1)):u(``,!0),Ae.value?je.value?Me.value?(r(),g(`div`,xe,[i.canMoveTasks?(r(),g(`p`,Se,l(f(c)(`employees.allProjects.dragHint`)),1)):u(``,!0),m(`p`,Ce,l(A.value),1),m(`div`,{ref_key:`boardElement`,ref:D,class:p([`employee-all-projects-board`,{"is-dragging":j.value}]),"aria-label":f(c)(`employees.allProjects.boardLabel`)},[(r(!0),g(d,null,t(R.value,e=>(r(),g(`section`,{key:e.value,class:p([`employee-all-projects-column`,{"is-drop-target":j.value?.targetStatus===e.value}])},[m(`header`,null,[m(`h3`,null,l(f(c)(e.labelKey)),1),m(`span`,{"aria-label":f(c)(`employees.allProjects.taskCount`,{count:U(e.value).length})},l(U(e.value).length),9,Te)]),h(ae,{name:`employee-task-shift`,tag:`div`,class:`employee-all-projects-list`,"data-status":e.value},{default:a(()=>[(r(!0),g(d,null,t(U(e.value),(e,n)=>(r(),g(`article`,{key:V(e),class:p([`employee-all-projects-task`,{"is-placeholder":W(e),"is-saving":H(e)}]),"data-drag-placeholder":W(e)?`true`:void 0,"aria-hidden":W(e)?`true`:void 0},[m(`button`,{type:`button`,class:`employee-all-projects-task-open`,disabled:H(e)||i.readOnly,"aria-label":f(c)(`employees.allProjects.openTask`,{project:B(e.projectId),task:e.title}),onClick:t=>T(`select-task`,e)},[m(`span`,Oe,l(B(e.projectId)),1),m(`strong`,null,l(e.title),1),e.summary&&e.summary!==e.title?(r(),g(`span`,ke,l(e.summary),1)):u(``,!0),e.tags?.length?(r(),g(`span`,x,[(r(!0),g(d,null,t(e.tags.slice(0,3),e=>(r(),g(`span`,{key:e},l(e),1))),128))])):u(``,!0)],8,De),i.canMoveTasks?(r(),g(`button`,{key:0,type:`button`,class:`employee-all-projects-drag-handle`,disabled:H(e),"aria-label":f(c)(`employees.allProjects.dragTask`,{task:e.title}),title:f(c)(`employees.allProjects.dragTask`,{task:e.title}),"aria-describedby":`employee-drag-instructions`,onPointerdown:ie(t=>Pe(t,e,n),[`stop`,`prevent`]),onKeydown:t=>Le(t,e,n)},[...o[5]||=[m(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`},[m(`circle`,{cx:`5`,cy:`4`,r:`1`}),m(`circle`,{cx:`11`,cy:`4`,r:`1`}),m(`circle`,{cx:`5`,cy:`8`,r:`1`}),m(`circle`,{cx:`11`,cy:`8`,r:`1`}),m(`circle`,{cx:`5`,cy:`12`,r:`1`}),m(`circle`,{cx:`11`,cy:`12`,r:`1`})],-1)]],40,S)):u(``,!0),H(e)?(r(),_(oe,{key:1,class:`employee-all-projects-saving`,variant:`inline`,label:f(c)(`employees.allProjects.saving`)},null,8,[`label`])):u(``,!0)],10,Ee))),128)),U(e.value).length?u(``,!0):(r(),g(`p`,{key:`${e.value}-empty`,class:`employee-all-projects-column-empty`},l(f(c)(`employees.allProjects.columnEmpty`)),1))]),_:2},1032,[`data-status`])],2))),128))],10,we)])):(r(),g(`div`,be,[m(`h3`,null,l(f(c)(`employees.allProjects.noMatch`)),1),m(`p`,null,l(f(c)(`employees.allProjects.noMatchHint`)),1)])):(r(),g(`div`,ye,[m(`h3`,null,l(f(c)(`employees.allProjects.empty`)),1),m(`p`,null,l(f(c)(`employees.allProjects.emptyHint`)),1)])):(r(),g(`div`,ve,[m(`h3`,null,l(f(c)(`employees.allProjects.noProjectsVisible`)),1),m(`p`,null,l(f(c)(`employees.allProjects.noProjectsVisibleHint`)),1),m(`button`,{type:`button`,onClick:Ne},l(f(c)(`employees.allProjects.showAllProjects`)),1)])),(r(),_(te,{to:`body`},[j.value&&!j.value.keyboard?(r(),g(`article`,{key:0,class:p([`employee-all-projects-task employee-all-projects-drag-preview`,{"is-dropping":j.value.phase===`dropping`}]),style:ne({width:`${j.value.width}px`,height:`${j.value.height}px`,"--employee-drag-x":`${j.value.left}px`,"--employee-drag-y":`${j.value.top}px`,"--employee-drop-duration":`${j.value.duration}ms`}),"aria-hidden":`true`},[m(`span`,C,l(B(j.value.item.projectId)),1),m(`strong`,null,l(j.value.item.title),1),j.value.item.summary&&j.value.item.summary!==j.value.item.title?(r(),g(`span`,w,l(j.value.item.summary),1)):u(``,!0)],6)):u(``,!0)]))]))}}),[[`__scopeId`,`data-v-f884e0f4`]]);async function E(e){let t=await y(`/employee-workspaces/jefa/${encodeURIComponent(e.id)}/api/public/${encodeURIComponent(e.slug)}`);if(t?.project?.id!==e.id||typeof t.project.name!=`string`||!Array.isArray(t.items))throw Error(`Invalid public projection`);let n=t.items.filter(e=>e&&typeof e.id==`string`&&typeof e.title==`string`&&[`planned`,`active`,`blocked`,`review`,`done`].includes(e.status)).map(t=>({id:t.id,projectId:e.id,title:t.title,status:t.status,priority:t.priority}));return{project:{id:t.project.id,name:t.project.name},items:n,total:n.length,truncated:!1}}function D(e,t){let n=new URL(`/reports/jefa`,t);return n.hash=new URLSearchParams(e.map(e=>[`p`,JSON.stringify([e.id,e.slug])])).toString(),n.href}function O(e){let t=new URLSearchParams(e.replace(/^#/,``)).getAll(`p`);if(!t.length||t.length>100)throw Error(`Invalid report scope`);let n=new Set;return t.map(e=>{let t=JSON.parse(e);if(!Array.isArray(t)||t.length!==2||typeof t[0]!=`string`||!t[0]||t[0].length>160||typeof t[1]!=`string`||!/^share-[a-zA-Z0-9-]{16,100}$/.test(t[1])||n.has(t[0]))throw Error(`Invalid report scope`);return n.add(t[0]),{id:t[0],slug:t[1]}})}export{T as i,O as n,D as r,E as t};
@@ -1 +1 @@
1
- import{O as e}from"./i18n-BtOOoyJd.js";function t(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function n(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&t(e.default)}var r=Object.assign;function i(e,t){let n={};for(let r in t){let i=t[r];n[r]=o(i)?i.map(e):e(i)}return n}var a=()=>{},o=Array.isArray;function s(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var c=Symbol(``);function l(e,t){return r(Error(),{type:e,[c]:!0},t)}function u(e,t){return e instanceof Error&&c in e&&(t==null||!!(e.type&t))}var d=Symbol(``),f=Symbol(``),p=Symbol(``),m=Symbol(``),h=Symbol(``);function g(){return e(p)}function _(t){return e(m)}export{n as a,d as c,m as d,p as f,f as g,g as h,o as i,s as l,_ as m,r as n,u as o,h as p,l as r,t as s,i as t,a as u};
1
+ import{O as e}from"./i18n-75woNt31.js";function t(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function n(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&t(e.default)}var r=Object.assign;function i(e,t){let n={};for(let r in t){let i=t[r];n[r]=o(i)?i.map(e):e(i)}return n}var a=()=>{},o=Array.isArray;function s(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var c=Symbol(``);function l(e,t){return r(Error(),{type:e,[c]:!0},t)}function u(e,t){return e instanceof Error&&c in e&&(t==null||!!(e.type&t))}var d=Symbol(``),f=Symbol(``),p=Symbol(``),m=Symbol(``),h=Symbol(``);function g(){return e(p)}function _(t){return e(m)}export{n as a,d as c,m as d,p as f,f as g,g as h,o as i,s as l,_ as m,r as n,u as o,h as p,l as r,t as s,i as t,a as u};
@@ -1 +1 @@
1
- import{A as e,Z as t,j as n,z as r}from"./i18n-BtOOoyJd.js";var i=[`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`a[href]`,`[contenteditable="true"]`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function a(i,a){let s=t(null),c=t(null),l=null,u=0;r(i,t=>{let n=++u;if(t){l=document.activeElement instanceof HTMLElement?document.activeElement:null,e().then(()=>{if(n!==u||!i())return;let e=s.value;e&&(e.open||e.showModal(),(c.value??o(e)[0])?.focus({preventScroll:!0}))});return}let r=s.value;r?.open&&r.close(),d(n)},{immediate:!0}),n(()=>{u+=1;let e=s.value;e?.open&&e.close();let t=l;l=null,t?.isConnected&&t.focus({preventScroll:!0})});function d(t){let n=l;l=null,e().then(()=>{t!==u||!n?.isConnected||n.focus({preventScroll:!0})})}function f(e){e.preventDefault(),a()}function p(e){if(e.key!==`Tab`)return;let t=s.value;if(!t)return;let n=o(t);if(!n.length){e.preventDefault(),t.focus({preventScroll:!0});return}let r=n[0],i=n.at(-1)??r,a=document.activeElement;e.shiftKey&&(a===r||!t.contains(a))?(e.preventDefault(),i.focus({preventScroll:!0})):!e.shiftKey&&(a===i||!t.contains(a))&&(e.preventDefault(),r.focus({preventScroll:!0}))}return{dialogRef:s,initialFocusRef:c,onCancel:f,onKeydown:p}}function o(e){return[...e.querySelectorAll(i)].filter(e=>!e.hidden&&e.getAttribute(`aria-hidden`)!==`true`)}export{a as t};
1
+ import{A as e,Z as t,j as n,z as r}from"./i18n-75woNt31.js";var i=[`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`a[href]`,`[contenteditable="true"]`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function a(i,a){let s=t(null),c=t(null),l=null,u=0;r(i,t=>{let n=++u;if(t){l=document.activeElement instanceof HTMLElement?document.activeElement:null,e().then(()=>{if(n!==u||!i())return;let e=s.value;e&&(e.open||e.showModal(),(c.value??o(e)[0])?.focus({preventScroll:!0}))});return}let r=s.value;r?.open&&r.close(),d(n)},{immediate:!0}),n(()=>{u+=1;let e=s.value;e?.open&&e.close();let t=l;l=null,t?.isConnected&&t.focus({preventScroll:!0})});function d(t){let n=l;l=null,e().then(()=>{t!==u||!n?.isConnected||n.focus({preventScroll:!0})})}function f(e){e.preventDefault(),a()}function p(e){if(e.key!==`Tab`)return;let t=s.value;if(!t)return;let n=o(t);if(!n.length){e.preventDefault(),t.focus({preventScroll:!0});return}let r=n[0],i=n.at(-1)??r,a=document.activeElement;e.shiftKey&&(a===r||!t.contains(a))?(e.preventDefault(),i.focus({preventScroll:!0})):!e.shiftKey&&(a===i||!t.contains(a))&&(e.preventDefault(),r.focus({preventScroll:!0}))}return{dialogRef:s,initialFocusRef:c,onCancel:f,onKeydown:p}}function o(e){return[...e.querySelectorAll(i)].filter(e=>!e.hidden&&e.getAttribute(`aria-hidden`)!==`true`)}export{a as t};
@@ -1 +1 @@
1
- import{$ as e,A as t,E as n,O as r,P as i,Q as a,T as o,Y as s,Z as c,_ as l,nt as u,z as d}from"./i18n-BtOOoyJd.js";import{a as f,c as p,d as m,f as h,g,i as _,l as v,n as y,o as b,p as ee,r as x,s as S,t as C,u as w}from"./useApi-CROJJdhE-raNlHRDl.js";var T=typeof document<`u`,E=/#/g,te=/&/g,ne=/\//g,re=/=/g,D=/\?/g,O=/\+/g,ie=/%5B/g,k=/%5D/g,ae=/%5E/g,oe=/%60/g,A=/%7B/g,se=/%7C/g,j=/%7D/g,M=/%20/g;function N(e){return e==null?``:encodeURI(``+e).replace(se,`|`).replace(ie,`[`).replace(k,`]`)}function ce(e){return N(e).replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function P(e){return N(e).replace(O,`%2B`).replace(M,`+`).replace(E,`%23`).replace(te,`%26`).replace(oe,"`").replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function F(e){return P(e).replace(re,`%3D`)}function le(e){return N(e).replace(E,`%23`).replace(D,`%3F`)}function ue(e){return le(e).replace(ne,`%2F`)}function I(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var L=/\/$/,R=e=>e.replace(L,``);function z(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=G(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:I(o)}}function de(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function B(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function fe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&V(t.matched[r],n.matched[i])&&H(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function V(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function H(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!U(e[n],t[n]))return!1;return!0}function U(e,t){return _(e)?W(e,t):_(t)?W(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function W(e,t){return _(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function G(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function q(e){if(!e)if(T){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),R(e)}var J=/^[^#]+#/;function Y(e,t){return e.replace(J,`#`)+t}function X(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Z=()=>({left:window.scrollX,top:window.scrollY});function pe(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=X(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function me(e,t){return(history.state?history.state.position-t:-1)+e}var he=new Map;function ge(e,t){he.set(e,t)}function _e(e){let t=he.get(e);return he.delete(e),t}function ve(e){return typeof e==`string`||e&&typeof e==`object`}function ye(e){return typeof e==`string`||typeof e==`symbol`}function be(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(O,` `),i=r.indexOf(`=`),a=I(i<0?r:r.slice(0,i)),o=i<0?null:I(r.slice(i+1));if(a in t){let e=t[a];_(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function xe(e){let t=``;for(let n in e){let r=e[n];if(n=F(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(_(r)?r.map(e=>e&&P(e)):[r&&P(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Se(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=_(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function $(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(x(4,{from:n,to:t})):e instanceof Error?c(e):ve(e)?c(x(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Ce(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(S(s)){let c=(s.__vccOpts||s)[t];c&&a.push($(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=f(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&$(c,n,r,o,e,i)()}))}}return a}function we(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>V(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>V(e,s))||i.push(s))}return[n,r,i]}var Te=()=>location.protocol+`//`+location.host;function Ee(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),B(n,``)}return B(n,e)+r+i}function De(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ee(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(y({},e.state,{scroll:Z()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Oe(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Z():null}}function ke(e){let{history:t,location:n}=window,r={value:Ee(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Te()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,y({},t.state,Oe(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=y({},i.value,t.state,{forward:e,scroll:Z()});a(o.current,o,!0),a(e,y({},Oe(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ae(e){e=q(e);let t=ke(e),n=De(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=y({location:``,base:e,go:r,createHref:Y.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var je={type:0,value:``},Me=/[a-zA-Z0-9_]/;function Ne(e){if(!e)return[[]];if(e===`/`)return[[je]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:Me.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Pe=`[^/]+?`,Fe={sensitive:!1,strict:!1,start:!0,end:!0},Ie=/[.+*?^${}()[\]/\\]/g;function Le(e,t){let n=y({},Fe,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(Ie,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Pe;if(u!==Pe){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(_(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=_(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Re(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function ze(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Re(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Be(r))return 1;if(Be(i))return-1}return i.length-r.length}function Be(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ve={strict:!1,end:!0,sensitive:!1};function He(e,t,n){let r=y(Le(Ne(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ue(e,t){let n=[],r=new Map;t=v(Ve,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ge(e);s.aliasOf=r&&r.record;let l=v(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ge(y({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=He(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!qe(d)&&o(e.name)),Ze(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:w}function o(e){if(ye(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ye(e,n);n.splice(t,0,e),e.record.name&&!qe(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw x(1,{location:e});s=i.record.name,a=y(We(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&We(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw x(1,{location:e,currentLocation:t});s=i.record.name,a=y({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Je(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function We(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ge(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ke(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ke(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function qe(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Je(e){return e.reduce((e,t)=>y(e,t.meta),{})}function Ye(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ze(e,t[i])<0?r=i:n=i+1}let i=Xe(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Xe(e){let t=e;for(;t=t.parent;)if(Ze(t)&&ze(e,t)===0)return t}function Ze({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Qe(e){let t=r(h),n=r(m),i=l(()=>{let n=u(e.to);return t.resolve(n)}),a=l(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(V.bind(null,r));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(r)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),o=l(()=>a.value>-1&&nt(n.params,i.value.params)),s=l(()=>a.value>-1&&a.value===n.matched.length-1&&H(n.params,i.value.params));function c(n={}){if(tt(n)){let n=t[u(e.replace)?`replace`:`push`](u(e.to)).catch(w);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:l(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function $e(e){return e.length===1?e[0]:e}var et=o({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Qe,setup(e,{slots:t}){let i=s(Qe(e)),{options:a}=r(h),o=l(()=>({[it(e.activeClass,a.linkActiveClass,`router-link-active`)]:i.isActive,[it(e.exactActiveClass,a.linkExactActiveClass,`router-link-exact-active`)]:i.isExactActive}));return()=>{let r=t.default&&$e(t.default(i));return e.custom?r:n(`a`,{"aria-current":i.isExactActive?e.ariaCurrentValue:null,href:i.href,onClick:i.navigate,class:o.value},r)}}});function tt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!_(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function rt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var it=(e,t,n)=>e??t??n,at=o({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:a}){let o=r(ee),s=l(()=>e.route||o.value),f=r(g,0),m=l(()=>{let e=u(f),{matched:t}=s.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),h=l(()=>s.value.matched[m.value]);i(g,l(()=>m.value+1)),i(p,h),i(ee,s);let _=c();return d(()=>[_.value,h.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!V(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=s.value,i=e.name,o=h.value,c=o&&o.components[i];if(!c)return ot(a.default,{Component:c,route:r});let l=o.props[i],u=n(c,y({},l?l===!0?r.params:typeof l==`function`?l(r):l:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:_}));return ot(a.default,{Component:u,route:r})||u}}});function ot(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var st=at;function ct(n){let r=Ue(n.routes,n),i=n.parseQuery||be,o=n.stringifyQuery||xe,s=n.history,c=Q(),l=Q(),d=Q(),f=e(K),p=K;T&&n.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let g=C.bind(null,e=>``+e),v=C.bind(null,ue),S=C.bind(null,I);function E(e,t){let n,i;return ye(e)?(n=r.getRecordMatcher(e),i=t):i=e,r.addRoute(i,n)}function te(e){let t=r.getRecordMatcher(e);t&&r.removeRoute(t)}function ne(){return r.getRoutes().map(e=>e.record)}function re(e){return!!r.getRecordMatcher(e)}function D(e,t){if(t=y({},t||f.value),typeof e==`string`){let n=z(i,e,t.path),a=r.resolve({path:n.path},t),o=s.createHref(n.fullPath);return y(n,a,{params:S(a.params),redirectedFrom:void 0,href:o})}let n;if(e.path!=null)n=y({},e,{path:z(i,e.path,t.path).path});else{let r=y({},e.params);for(let e in r)r[e]??delete r[e];n=y({},e,{params:v(r)}),t.params=v(t.params)}let a=r.resolve(n,t),c=e.hash||``;a.params=g(S(a.params));let l=de(o,y({},e,{hash:ce(c),path:a.path})),u=s.createHref(l);return y({fullPath:l,hash:c,query:o===xe?Se(e.query):e.query||{}},a,{redirectedFrom:void 0,href:u})}function O(e){return typeof e==`string`?z(i,e,f.value.path):y({},e)}function ie(e,t){if(p!==e)return x(8,{from:t,to:e})}function k(e){return A(e)}function ae(e){return k(y(O(e),{replace:!0}))}function oe(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=O(i):{path:i},i.params={}),y({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function A(e,t){let n=p=D(e),r=f.value,i=e.state,a=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(y(O(c),{state:typeof c==`object`?y({},i,c.state):i,force:a,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!a&&fe(o,r,n)&&(u=x(16,{to:l,from:r}),W(r,r,!0,!1)),(u?Promise.resolve(u):M(l,r)).catch(e=>b(e)?b(e,2)?e:U(e):V(e,l,r)).then(e=>{if(e){if(b(e,2))return A(y({replace:s},O(e.to),{state:typeof e.to==`object`?y({},i,e.to.state):i,force:a}),t||l)}else e=P(l,r,!0,s,i);return N(l,r,e),e})}function se(e,t){let n=ie(e,t);return n?Promise.reject(n):Promise.resolve()}function j(e){let t=J.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function M(e,t){let n,[r,i,a]=we(e,t);n=Ce(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let o=se.bind(null,e,t);return n.push(o),X(n).then(()=>{n=[];for(let r of c.list())n.push($(r,e,t));return n.push(o),X(n)}).then(()=>{n=Ce(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(o),X(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(_(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(o),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(o),X(n))).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(o),X(n)}).catch(e=>b(e,8)?e:Promise.reject(e))}function N(e,t,n){d.list().forEach(r=>j(()=>r(e,t,n)))}function P(e,t,n,r,i){let a=ie(e,t);if(a)return a;let o=t===K,c=T?history.state:{};n&&(r||o?s.replace(e.fullPath,y({scroll:o&&c&&c.scroll},i)):s.push(e.fullPath,i)),f.value=e,W(e,t,n,o),U()}let F;function le(){F||=s.listen((e,t,n)=>{if(!Y.listening)return;let r=D(e),i=oe(r,Y.currentRoute.value);if(i){A(y(i,{replace:!0,force:!0}),r).catch(w);return}p=r;let a=f.value;T&&ge(me(a.fullPath,n.delta),Z()),M(r,a).catch(e=>b(e,12)?e:b(e,2)?(A(y(O(e.to),{force:!0}),r).then(e=>{b(e,20)&&!n.delta&&n.type===`pop`&&s.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&s.go(-n.delta,!1),V(e,r,a))).then(e=>{e||=P(r,a,!1),e&&(n.delta&&!b(e,8)?s.go(-n.delta,!1):n.type===`pop`&&b(e,20)&&s.go(-1,!1)),N(r,a,e)}).catch(w)})}let L=Q(),R=Q(),B;function V(e,t,n){U(e);let r=R.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function H(){return B&&f.value!==K?Promise.resolve():new Promise((e,t)=>{L.add([e,t])})}function U(e){return B||(B=!e,le(),L.list().forEach(([t,n])=>e?n(e):t()),L.reset()),e}function W(e,r,i,a){let{scrollBehavior:o}=n;if(!T||!o)return Promise.resolve();let s=!i&&_e(me(e.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return t().then(()=>o(e,r,s)).then(t=>e===f.value&&t&&pe(t)).catch(t=>e===f.value&&V(t,e,r))}let G=e=>s.go(e),q,J=new Set,Y={currentRoute:f,listening:!0,addRoute:E,removeRoute:te,clearRoutes:r.clearRoutes,hasRoute:re,getRoutes:ne,resolve:D,options:n,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:c.add,beforeResolve:l.add,afterEach:d.add,onError:R.add,isReady:H,install(e){e.component(`RouterLink`,et),e.component(`RouterView`,st),e.config.globalProperties.$router=Y,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>u(f)}),T&&!q&&f.value===K&&(q=!0,k(s.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>f.value[e],enumerable:!0});e.provide(h,Y),e.provide(m,a(t)),e.provide(ee,f);let n=e.unmount;J.add(e),e.unmount=function(){J.delete(e),J.size<1&&(p=K,F&&F(),F=null,f.value=K,q=!1,B=!1),n()}}};function X(e){return e.reduce((e,t)=>e.then(()=>j(t)),Promise.resolve())}return Y}export{Ae as i,st as n,ct as r,et as t};
1
+ import{$ as e,A as t,E as n,O as r,P as i,Q as a,T as o,Y as s,Z as c,_ as l,nt as u,z as d}from"./i18n-75woNt31.js";import{a as f,c as p,d as m,f as h,g,i as _,l as v,n as y,o as b,p as ee,r as x,s as S,t as C,u as w}from"./useApi-CROJJdhE-QfNm4ADP.js";var T=typeof document<`u`,E=/#/g,te=/&/g,ne=/\//g,re=/=/g,D=/\?/g,O=/\+/g,ie=/%5B/g,k=/%5D/g,ae=/%5E/g,oe=/%60/g,A=/%7B/g,se=/%7C/g,j=/%7D/g,M=/%20/g;function N(e){return e==null?``:encodeURI(``+e).replace(se,`|`).replace(ie,`[`).replace(k,`]`)}function ce(e){return N(e).replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function P(e){return N(e).replace(O,`%2B`).replace(M,`+`).replace(E,`%23`).replace(te,`%26`).replace(oe,"`").replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function F(e){return P(e).replace(re,`%3D`)}function le(e){return N(e).replace(E,`%23`).replace(D,`%3F`)}function ue(e){return le(e).replace(ne,`%2F`)}function I(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var L=/\/$/,R=e=>e.replace(L,``);function z(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=G(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:I(o)}}function de(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function B(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function fe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&V(t.matched[r],n.matched[i])&&H(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function V(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function H(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!U(e[n],t[n]))return!1;return!0}function U(e,t){return _(e)?W(e,t):_(t)?W(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function W(e,t){return _(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function G(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function q(e){if(!e)if(T){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),R(e)}var J=/^[^#]+#/;function Y(e,t){return e.replace(J,`#`)+t}function X(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Z=()=>({left:window.scrollX,top:window.scrollY});function pe(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=X(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function me(e,t){return(history.state?history.state.position-t:-1)+e}var he=new Map;function ge(e,t){he.set(e,t)}function _e(e){let t=he.get(e);return he.delete(e),t}function ve(e){return typeof e==`string`||e&&typeof e==`object`}function ye(e){return typeof e==`string`||typeof e==`symbol`}function be(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(O,` `),i=r.indexOf(`=`),a=I(i<0?r:r.slice(0,i)),o=i<0?null:I(r.slice(i+1));if(a in t){let e=t[a];_(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function xe(e){let t=``;for(let n in e){let r=e[n];if(n=F(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(_(r)?r.map(e=>e&&P(e)):[r&&P(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Se(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=_(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function $(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(x(4,{from:n,to:t})):e instanceof Error?c(e):ve(e)?c(x(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Ce(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(S(s)){let c=(s.__vccOpts||s)[t];c&&a.push($(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=f(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&$(c,n,r,o,e,i)()}))}}return a}function we(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>V(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>V(e,s))||i.push(s))}return[n,r,i]}var Te=()=>location.protocol+`//`+location.host;function Ee(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),B(n,``)}return B(n,e)+r+i}function De(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ee(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(y({},e.state,{scroll:Z()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Oe(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Z():null}}function ke(e){let{history:t,location:n}=window,r={value:Ee(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Te()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,y({},t.state,Oe(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=y({},i.value,t.state,{forward:e,scroll:Z()});a(o.current,o,!0),a(e,y({},Oe(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ae(e){e=q(e);let t=ke(e),n=De(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=y({location:``,base:e,go:r,createHref:Y.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var je={type:0,value:``},Me=/[a-zA-Z0-9_]/;function Ne(e){if(!e)return[[]];if(e===`/`)return[[je]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:Me.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Pe=`[^/]+?`,Fe={sensitive:!1,strict:!1,start:!0,end:!0},Ie=/[.+*?^${}()[\]/\\]/g;function Le(e,t){let n=y({},Fe,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(Ie,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Pe;if(u!==Pe){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(_(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=_(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Re(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function ze(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Re(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Be(r))return 1;if(Be(i))return-1}return i.length-r.length}function Be(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ve={strict:!1,end:!0,sensitive:!1};function He(e,t,n){let r=y(Le(Ne(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ue(e,t){let n=[],r=new Map;t=v(Ve,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ge(e);s.aliasOf=r&&r.record;let l=v(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ge(y({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=He(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!qe(d)&&o(e.name)),Ze(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:w}function o(e){if(ye(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ye(e,n);n.splice(t,0,e),e.record.name&&!qe(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw x(1,{location:e});s=i.record.name,a=y(We(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&We(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw x(1,{location:e,currentLocation:t});s=i.record.name,a=y({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Je(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function We(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ge(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ke(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ke(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function qe(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Je(e){return e.reduce((e,t)=>y(e,t.meta),{})}function Ye(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ze(e,t[i])<0?r=i:n=i+1}let i=Xe(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Xe(e){let t=e;for(;t=t.parent;)if(Ze(t)&&ze(e,t)===0)return t}function Ze({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Qe(e){let t=r(h),n=r(m),i=l(()=>{let n=u(e.to);return t.resolve(n)}),a=l(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(V.bind(null,r));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(r)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),o=l(()=>a.value>-1&&nt(n.params,i.value.params)),s=l(()=>a.value>-1&&a.value===n.matched.length-1&&H(n.params,i.value.params));function c(n={}){if(tt(n)){let n=t[u(e.replace)?`replace`:`push`](u(e.to)).catch(w);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:l(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function $e(e){return e.length===1?e[0]:e}var et=o({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Qe,setup(e,{slots:t}){let i=s(Qe(e)),{options:a}=r(h),o=l(()=>({[it(e.activeClass,a.linkActiveClass,`router-link-active`)]:i.isActive,[it(e.exactActiveClass,a.linkExactActiveClass,`router-link-exact-active`)]:i.isExactActive}));return()=>{let r=t.default&&$e(t.default(i));return e.custom?r:n(`a`,{"aria-current":i.isExactActive?e.ariaCurrentValue:null,href:i.href,onClick:i.navigate,class:o.value},r)}}});function tt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!_(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function rt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var it=(e,t,n)=>e??t??n,at=o({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:a}){let o=r(ee),s=l(()=>e.route||o.value),f=r(g,0),m=l(()=>{let e=u(f),{matched:t}=s.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),h=l(()=>s.value.matched[m.value]);i(g,l(()=>m.value+1)),i(p,h),i(ee,s);let _=c();return d(()=>[_.value,h.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!V(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=s.value,i=e.name,o=h.value,c=o&&o.components[i];if(!c)return ot(a.default,{Component:c,route:r});let l=o.props[i],u=n(c,y({},l?l===!0?r.params:typeof l==`function`?l(r):l:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:_}));return ot(a.default,{Component:u,route:r})||u}}});function ot(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var st=at;function ct(n){let r=Ue(n.routes,n),i=n.parseQuery||be,o=n.stringifyQuery||xe,s=n.history,c=Q(),l=Q(),d=Q(),f=e(K),p=K;T&&n.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let g=C.bind(null,e=>``+e),v=C.bind(null,ue),S=C.bind(null,I);function E(e,t){let n,i;return ye(e)?(n=r.getRecordMatcher(e),i=t):i=e,r.addRoute(i,n)}function te(e){let t=r.getRecordMatcher(e);t&&r.removeRoute(t)}function ne(){return r.getRoutes().map(e=>e.record)}function re(e){return!!r.getRecordMatcher(e)}function D(e,t){if(t=y({},t||f.value),typeof e==`string`){let n=z(i,e,t.path),a=r.resolve({path:n.path},t),o=s.createHref(n.fullPath);return y(n,a,{params:S(a.params),redirectedFrom:void 0,href:o})}let n;if(e.path!=null)n=y({},e,{path:z(i,e.path,t.path).path});else{let r=y({},e.params);for(let e in r)r[e]??delete r[e];n=y({},e,{params:v(r)}),t.params=v(t.params)}let a=r.resolve(n,t),c=e.hash||``;a.params=g(S(a.params));let l=de(o,y({},e,{hash:ce(c),path:a.path})),u=s.createHref(l);return y({fullPath:l,hash:c,query:o===xe?Se(e.query):e.query||{}},a,{redirectedFrom:void 0,href:u})}function O(e){return typeof e==`string`?z(i,e,f.value.path):y({},e)}function ie(e,t){if(p!==e)return x(8,{from:t,to:e})}function k(e){return A(e)}function ae(e){return k(y(O(e),{replace:!0}))}function oe(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=O(i):{path:i},i.params={}),y({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function A(e,t){let n=p=D(e),r=f.value,i=e.state,a=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(y(O(c),{state:typeof c==`object`?y({},i,c.state):i,force:a,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!a&&fe(o,r,n)&&(u=x(16,{to:l,from:r}),W(r,r,!0,!1)),(u?Promise.resolve(u):M(l,r)).catch(e=>b(e)?b(e,2)?e:U(e):V(e,l,r)).then(e=>{if(e){if(b(e,2))return A(y({replace:s},O(e.to),{state:typeof e.to==`object`?y({},i,e.to.state):i,force:a}),t||l)}else e=P(l,r,!0,s,i);return N(l,r,e),e})}function se(e,t){let n=ie(e,t);return n?Promise.reject(n):Promise.resolve()}function j(e){let t=J.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function M(e,t){let n,[r,i,a]=we(e,t);n=Ce(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let o=se.bind(null,e,t);return n.push(o),X(n).then(()=>{n=[];for(let r of c.list())n.push($(r,e,t));return n.push(o),X(n)}).then(()=>{n=Ce(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(o),X(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(_(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(o),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(o),X(n))).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(o),X(n)}).catch(e=>b(e,8)?e:Promise.reject(e))}function N(e,t,n){d.list().forEach(r=>j(()=>r(e,t,n)))}function P(e,t,n,r,i){let a=ie(e,t);if(a)return a;let o=t===K,c=T?history.state:{};n&&(r||o?s.replace(e.fullPath,y({scroll:o&&c&&c.scroll},i)):s.push(e.fullPath,i)),f.value=e,W(e,t,n,o),U()}let F;function le(){F||=s.listen((e,t,n)=>{if(!Y.listening)return;let r=D(e),i=oe(r,Y.currentRoute.value);if(i){A(y(i,{replace:!0,force:!0}),r).catch(w);return}p=r;let a=f.value;T&&ge(me(a.fullPath,n.delta),Z()),M(r,a).catch(e=>b(e,12)?e:b(e,2)?(A(y(O(e.to),{force:!0}),r).then(e=>{b(e,20)&&!n.delta&&n.type===`pop`&&s.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&s.go(-n.delta,!1),V(e,r,a))).then(e=>{e||=P(r,a,!1),e&&(n.delta&&!b(e,8)?s.go(-n.delta,!1):n.type===`pop`&&b(e,20)&&s.go(-1,!1)),N(r,a,e)}).catch(w)})}let L=Q(),R=Q(),B;function V(e,t,n){U(e);let r=R.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function H(){return B&&f.value!==K?Promise.resolve():new Promise((e,t)=>{L.add([e,t])})}function U(e){return B||(B=!e,le(),L.list().forEach(([t,n])=>e?n(e):t()),L.reset()),e}function W(e,r,i,a){let{scrollBehavior:o}=n;if(!T||!o)return Promise.resolve();let s=!i&&_e(me(e.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return t().then(()=>o(e,r,s)).then(t=>e===f.value&&t&&pe(t)).catch(t=>e===f.value&&V(t,e,r))}let G=e=>s.go(e),q,J=new Set,Y={currentRoute:f,listening:!0,addRoute:E,removeRoute:te,clearRoutes:r.clearRoutes,hasRoute:re,getRoutes:ne,resolve:D,options:n,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:c.add,beforeResolve:l.add,afterEach:d.add,onError:R.add,isReady:H,install(e){e.component(`RouterLink`,et),e.component(`RouterView`,st),e.config.globalProperties.$router=Y,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>u(f)}),T&&!q&&f.value===K&&(q=!0,k(s.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>f.value[e],enumerable:!0});e.provide(h,Y),e.provide(m,a(t)),e.provide(ee,f);let n=e.unmount;J.add(e),e.unmount=function(){J.delete(e),J.size<1&&(p=K,F&&F(),F=null,f.value=K,q=!1,B=!1),n()}}};function X(e){return e.reduce((e,t)=>e.then(()=>j(t)),Promise.resolve())}return Y}export{Ae as i,st as n,ct as r,et as t};
@@ -9,19 +9,19 @@
9
9
  />
10
10
  <link rel="icon" type="image/png" href="/assets/fuli-logo-ER1wQ8Kk.png" />
11
11
  <title>复利 · Context Graph</title>
12
- <script type="module" crossorigin src="/assets/index-7X3LGByg.js"></script>
13
- <link rel="modulepreload" crossorigin href="/assets/i18n-BtOOoyJd.js">
14
- <link rel="modulepreload" crossorigin href="/assets/client-CEHkJJ-5.js">
15
- <link rel="modulepreload" crossorigin href="/assets/console--CZxc3PW.js">
12
+ <script type="module" crossorigin src="/assets/index-pleRuLpw.js"></script>
13
+ <link rel="modulepreload" crossorigin href="/assets/i18n-75woNt31.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/client-InXscj8J.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/console-hUns2aD-.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BDNMzG2s.js">
17
- <link rel="modulepreload" crossorigin href="/assets/GrowthLoading-Bu_kH-I8.js">
18
- <link rel="modulepreload" crossorigin href="/assets/useApi-CROJJdhE-raNlHRDl.js">
19
- <link rel="modulepreload" crossorigin href="/assets/vue-router-JFYBLXB1.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/GrowthLoading-DFOy-mEl.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/useApi-CROJJdhE-QfNm4ADP.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/vue-router-COCNAJJn.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/fuli-logo-Bu9WBuQe.js">
21
- <link rel="modulepreload" crossorigin href="/assets/catalog-DU4Kfd-N.js">
22
- <link rel="modulepreload" crossorigin href="/assets/AgentHand-CMZk5GjY.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/catalog-B9tlJAp9.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/AgentHand-BaLSbn08.js">
23
23
  <link rel="modulepreload" crossorigin href="/assets/profile-model-BQO4zNs9.js">
24
- <link rel="modulepreload" crossorigin href="/assets/useModalDialog-CroGk2Cs.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/useModalDialog-BopF-KHN.js">
25
25
  <link rel="modulepreload" crossorigin href="/assets/paths-CDREouhi.js">
26
26
  <link rel="stylesheet" crossorigin href="/assets/GrowthLoading-B_Hh0CRS.css">
27
27
  <link rel="stylesheet" crossorigin href="/assets/AgentHand-D9sQu2vc.css">
@@ -23,15 +23,32 @@ Neo4j Provider 的独立日志中;工作记忆继续保存经过整理的决
23
23
 
24
24
  ## 从一个客户端继续到另一个
25
25
 
26
- 1. 任务结束返回 Agent、真实完成状态、`conversation_id` 及保存结果。
26
+ 1. 任务结束返回负责人姓名、主页链接、真实完成状态、`conversation_id` 及保存结果。
27
27
  2. 在另一个客户端选择同一项目、同一 Agent,取得当前 `taskContextToken`。
28
28
  3. 调用 `resume_agent_conversation`,传入该 token 和 `conversationId`。
29
29
  4. 从有预算的上下文继续;需要细节再调用 `read_agent_conversation`。
30
30
 
31
+ 在已接入 FULI 的客户端、对应项目目录中,可以把提示词写成 `@Alex Morgan 继续上次工作`。
32
+ 入口只匹配开头的完整姓名或 ID;同名、停用、项目不符或客户端无权限时不会换人兜底。
33
+ 普通正文或引用里的 @ 不会触发切换。Agent 个人页的对话列表提供“复制接续指令”,
34
+ 包含稳定 `@{agentId}`、项目 ID 和会话 ID;复制失败时可手动选中。生成的 ID 会编码特殊字符,
35
+ 改名不影响接续。这是 FULI 的提示词匹配,不表示 Cursor、Codex 的原生 @ 下拉列表已注册此人。
36
+
37
+ 开发者是持久负责人,Jefa/HR 是同级协作角色。只有管理员成员的项目不会把开发任务
38
+ 隐式记到管理员名下;需要先通过 HR 分配或招聘开发者。显式选中管理员及其本职任务仍可使用。
39
+ 收尾将实际员工工具返回的协作回执合并展示,例如“Alex 负责实现;Jefa 整理看板”。
40
+ 没有执行工具或 worker 的配置不能当成协作执行证据;不另起模型来生成这行回执。
41
+ 派工前分别核对每位成员的客户端与执行器锁,并与任务策略取交集;负责人的推荐平台
42
+ 不代表协作者也可使用。同一宿主中的原生子 Agent 同样受限制,不匹配时先换合适人选或平台。
43
+
31
44
  接续不会搬运客户端工具状态或文件系统。项目任职、客户端允许列表和个人空间授权
32
45
  始终生效。来自另一项目的员工仅获得目标项目的任务简报,不自动获得来源项目私有记忆。
33
46
  历史内容是上下文数据,不能覆盖当前用户指令。
34
47
 
48
+ 用户的品味、协作性格和判断偏好继续按确认状态和全局/项目/Agent 作用域读取;入口精简
49
+ 保留完整指令、画像分类和写作品味域。协作职责同时带上 Agent 自己的判断、品味、个性和期望。
50
+ 工作摘要、HR 配置的性格以及自动推断都不能伪装成人工确认的用户偏好。
51
+
35
52
  ## 采集与失败恢复
36
53
 
37
54
  Codex 和 Claude Code 的 `UserPromptSubmit`、`Stop` 命令适配器读取宿主提供的当前
@@ -38,11 +38,28 @@ class StoreProjectAgentContext:
38
38
  lead_agent_id=request.agent_id or owner, source_application=request.source_application,
39
39
  routing_reason='Read-only task-entry context recovery',
40
40
  )
41
+ if owner and not request.agent_id:
42
+ owner_rows = await self._assignment_candidates(
43
+ request.personal_space_id,
44
+ request.personal_project_id,
45
+ )
46
+ owner_row = next(
47
+ (row for row in owner_rows if row['agent_id'] == owner),
48
+ None,
49
+ )
50
+ if owner_row and not self._implicit_owner_allowed(owner_row, selection):
51
+ owner = None
52
+ selection = selection.model_copy(update={'lead_agent_id': None})
41
53
  selected, candidates, reason, basis = await self._select_agents(actor, space, selection)
42
54
  if not selected and reason == 'no_match' and not request.required_capabilities:
55
+ fallback_selection = selection.model_copy(update={'work_kind': 'project_context'})
43
56
  selected, candidates, reason, basis = await self._select_agents(
44
- actor, space, selection.model_copy(update={'work_kind': 'project_context'}),
57
+ actor, space, fallback_selection,
45
58
  )
59
+ if selected and not self._implicit_owner_allowed(selected[0], fallback_selection):
60
+ selected, reason, basis = [], 'no_match', [
61
+ 'management or HR peer cannot own unrelated project context implicitly',
62
+ ]
46
63
  if selected:
47
64
  reason = 'project_context_fallback'
48
65
  basis = [
@@ -8,6 +8,16 @@ from .project_agent_access import authorize_project_agent
8
8
  from .project_agent_models import ProjectAgentProfile
9
9
  from .project_agent_task_models import ProjectAgentParallelPlan
10
10
  from .store_project_agents import SYSTEM_HR_AGENT_ID
11
+ from .system_hr_identity import LEGACY_HR_AGENT_ID
12
+
13
+
14
+ IMPLICIT_PEER_AGENT_IDS = frozenset({
15
+ 'employee.jefa',
16
+ SYSTEM_HR_AGENT_ID.casefold(),
17
+ LEGACY_HR_AGENT_ID.casefold(),
18
+ })
19
+ IMPLICIT_PEER_CAPABILITIES = frozenset({'fuli.employee:jefa', 'fuli.employee:bole'})
20
+ IMPLICIT_PEER_AGENT_TYPES = frozenset({'hr'})
11
21
 
12
22
 
13
23
  class StoreProjectAgentTaskStaffing:
@@ -79,10 +89,14 @@ class StoreProjectAgentTaskStaffing:
79
89
  eligible = [row for row in rows if required.issubset({
80
90
  item.casefold() for item in row.get('capabilities', [])
81
91
  })]
82
- candidates, history = await self._rank_agent_candidates(eligible, request)
92
+ implicit_eligible = [
93
+ row for row in eligible
94
+ if self._implicit_owner_allowed(row, request)
95
+ ]
96
+ candidates, history = await self._rank_agent_candidates(implicit_eligible, request)
83
97
  # Continuity may break a tie between qualified specialists; it must
84
98
  # never override a capability requirement or a stronger work-kind fit.
85
- continuity_pool = eligible
99
+ continuity_pool = implicit_eligible
86
100
  if candidates:
87
101
  best_work_match = normalized_work_kind in {
88
102
  item.casefold() for item in candidates[0].get('work_kinds', [])
@@ -100,7 +114,10 @@ class StoreProjectAgentTaskStaffing:
100
114
  )
101
115
  if continuity:
102
116
  selected = continuity[0]
103
- remaining = [row for row in candidates or eligible if row['agent_id'] != selected['agent_id']]
117
+ remaining = [
118
+ row for row in candidates or implicit_eligible
119
+ if row['agent_id'] != selected['agent_id']
120
+ ]
104
121
  return [selected], [selected, *remaining], 'project_continuity', [
105
122
  self._project_history_match_basis(
106
123
  project_history.get(selected['agent_id']),
@@ -129,20 +146,20 @@ class StoreProjectAgentTaskStaffing:
129
146
  'matching Agent is unavailable to source client: '
130
147
  f'{request.source_application or "other"}',
131
148
  ]
132
- if len(eligible) == 1:
133
- return [eligible[0]], eligible, 'sole_active_assignment', [
149
+ if len(eligible) == 1 and len(implicit_eligible) == 1:
150
+ return [implicit_eligible[0]], implicit_eligible, 'sole_active_assignment', [
134
151
  'the project has one active Agent assignment',
135
- *self._automatic_selection_basis(eligible[0], request),
152
+ *self._automatic_selection_basis(implicit_eligible[0], request),
136
153
  ]
137
- if eligible and normalized_work_kind == 'project_context' and not required:
138
- eligible.sort(key=lambda row: (
154
+ if implicit_eligible and normalized_work_kind == 'project_context' and not required:
155
+ implicit_eligible.sort(key=lambda row: (
139
156
  self._metric_int(row.get('active_task_count')),
140
157
  -int(self._metric_int(row.get('memory_revision')) > 0),
141
158
  row['assigned_at'], row['agent_id'],
142
159
  ))
143
- return eligible[:1], eligible, 'project_default', [
144
- f'{len(eligible)} eligible project roles; working-memory continuity and stable tie-break',
145
- *self._automatic_selection_basis(eligible[0], request),
160
+ return implicit_eligible[:1], implicit_eligible, 'project_default', [
161
+ f'{len(implicit_eligible)} eligible project roles; working-memory continuity and stable tie-break',
162
+ *self._automatic_selection_basis(implicit_eligible[0], request),
146
163
  ]
147
164
  return [], rows, 'no_match', ['no active assignment matched exactly']
148
165
  selected = candidates[0]
@@ -166,6 +183,64 @@ class StoreProjectAgentTaskStaffing:
166
183
  if item not in match_basis)
167
184
  return [selected], candidates, reason, match_basis
168
185
 
186
+ @classmethod
187
+ def _implicit_owner_allowed(cls, row, request):
188
+ """Keep management peers out of unrelated automatic ownership paths."""
189
+
190
+ if not cls._is_implicit_peer(row):
191
+ return True
192
+ profile = row.get('profile')
193
+ work_kinds = {
194
+ str(item).casefold()
195
+ for item in row.get('work_kinds', [])
196
+ }
197
+ work_kinds.update(
198
+ str(item).casefold()
199
+ for item in (cls._profile_value(profile, 'work_kinds', []) or [])
200
+ )
201
+ capabilities = {
202
+ str(item).casefold()
203
+ for item in row.get('capabilities', [])
204
+ }
205
+ capabilities.update(
206
+ str(item).casefold()
207
+ for item in (cls._profile_value(profile, 'capabilities', []) or [])
208
+ )
209
+ required = {
210
+ str(item).casefold()
211
+ for item in request.required_capabilities
212
+ }
213
+ return request.work_kind.casefold() in work_kinds or (
214
+ bool(required) and required.issubset(capabilities)
215
+ )
216
+
217
+ @classmethod
218
+ def _is_implicit_peer(cls, row):
219
+ agent_id = str(row.get('agent_id') or '').casefold()
220
+ profile = row.get('profile')
221
+ agent_type = str(cls._profile_value(profile, 'agent_type', '')).casefold()
222
+ capabilities = {
223
+ str(item).casefold()
224
+ for item in (cls._profile_value(profile, 'capabilities', []) or [])
225
+ }
226
+ capabilities.update(
227
+ str(item).casefold()
228
+ for item in (row.get('capabilities', []) or [])
229
+ )
230
+ return (
231
+ agent_id in IMPLICIT_PEER_AGENT_IDS
232
+ or agent_type in IMPLICIT_PEER_AGENT_TYPES
233
+ or bool(capabilities & IMPLICIT_PEER_CAPABILITIES)
234
+ )
235
+
236
+ @staticmethod
237
+ def _profile_value(profile, field, default):
238
+ if profile is None:
239
+ return default
240
+ if isinstance(profile, dict):
241
+ return profile.get(field, default)
242
+ return getattr(profile, field, default)
243
+
169
244
  def _automatic_selection_basis(self, selected, request):
170
245
  work_kind = request.work_kind.casefold()
171
246
  if work_kind == 'project_context':
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fuli-graph-provider"
3
- version = "0.8.2"
3
+ version = "0.8.3"
4
4
  description = "Graphiti-backed personal and shared project provider for Fuli."
5
5
  requires-python = ">=3.12"
6
6
  dependencies = [