fuli-context 0.12.3 → 0.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.zh-CN.md +1 -1
- package/dist/web/assets/{AboutPage-Dized8Uz.js → AboutPage-DKsgqteA.js} +1 -1
- package/dist/web/assets/{AgentConversations-Ccy41mEA.js → AgentConversations-BnFsfRj3.js} +1 -1
- package/dist/web/assets/{AgentHand-UzVhbKUC.js → AgentHand-B5lezlek.js} +1 -1
- package/dist/web/assets/{AgentName-DJpvkub2.js → AgentName-C-V41xs0.js} +1 -1
- package/dist/web/assets/AgentProfilePage-DjgqtOdz.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-IgN5QEdW.js +1 -0
- package/dist/web/assets/{AgentsDirectoryPage-Cv-vxw2C.css → AgentsDirectoryPage-kc3EgeGO.css} +1 -1
- package/dist/web/assets/{ConnectionsPage-uXcabab_.js → ConnectionsPage-CXtNiTEF.js} +1 -1
- package/dist/web/assets/EmployeeRecruitDialog-o6eyMw2g.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-4EnGLauW.js +3 -0
- package/dist/web/assets/{KnowledgeEditDialog-HmiqLC-Y.js → KnowledgeEditDialog-BlBd6Xql.js} +1 -1
- package/dist/web/assets/{KnowledgeInspector-Cj2yK4Qh.js → KnowledgeInspector-Dl7SAgaY.js} +1 -1
- package/dist/web/assets/{KnowledgeOrganizerPage-DT3BROZm.js → KnowledgeOrganizerPage-CpH4x6UA.js} +1 -1
- package/dist/web/assets/KnowledgePage-C-gFr7ln.js +1 -0
- package/dist/web/assets/{KnowledgeWorkspace-DA_dqVRG.js → KnowledgeWorkspace-4q_HfXas.js} +1 -1
- package/dist/web/assets/{NotFoundPage-x_Yd59mm.js → NotFoundPage-DtmfJSGx.js} +1 -1
- package/dist/web/assets/{OverviewPage-3eZjQ26v.js → OverviewPage-C1zw_8_6.js} +1 -1
- package/dist/web/assets/PersonalProfilePage-B0_zIINs.css +1 -0
- package/dist/web/assets/{PersonalProfilePage-CDQk096L.js → PersonalProfilePage-tQyS7qsa.js} +1 -1
- package/dist/web/assets/PersonalProjectsPage-Cgd_bjeK.js +1 -0
- package/dist/web/assets/{ProjectAgentFirstTask-BkRJ0zwO.js → ProjectAgentFirstTask-Caf7c6F_.js} +1 -1
- package/dist/web/assets/{ProjectAgentsPage-BuNNqSEy.js → ProjectAgentsPage-BOGkN5ZN.js} +1 -1
- package/dist/web/assets/{ProjectScopePicker-CiDxM2Yx.js → ProjectScopePicker-NyqcG6Iz.js} +1 -1
- package/dist/web/assets/{PublicProjectsPage-ByOT559r.js → PublicProjectsPage-CYwQLZmy.js} +1 -1
- package/dist/web/assets/{ReviewPage-C0Vdr9uq.js → ReviewPage-EyuAtIOq.js} +1 -1
- package/dist/web/assets/{RoundtablesPage-L3ShEWS3.js → RoundtablesPage-JVBXsJrs.js} +1 -1
- package/dist/web/assets/SettingsPage-BARo0Ds0.css +1 -0
- package/dist/web/assets/SettingsPage-Dfi7kl9c.js +1 -0
- package/dist/web/assets/{SharedJefaReportPage-Bg6lIk3E.js → SharedJefaReportPage-DFy5Ty7o.js} +1 -1
- package/dist/web/assets/{UiButton-x8hiHNRM.js → UiButton-neeym_gA.js} +1 -1
- package/dist/web/assets/{UiDialog-mjletK0y.js → UiDialog-BFVoqFnc.js} +1 -1
- package/dist/web/assets/{UiDisclosure-_IxeiexW.js → UiDisclosure-B-T7BmB5.js} +1 -1
- package/dist/web/assets/{UiSegmented-WFfz9Evl.js → UiSegmented-D_kyRKDw.js} +1 -1
- package/dist/web/assets/{UiSelect-K29jnV-1.js → UiSelect-DDyct4mf.js} +1 -1
- package/dist/web/assets/{WritingTastePage-DCULB-d2.js → WritingTastePage-BPRq6kJ6.js} +1 -1
- package/dist/web/assets/{agent-pins-DS4mNsNt.js → agent-pins-6LRHTMF6.js} +1 -1
- package/dist/web/assets/agent-profile-UgNiXgpU.css +1 -0
- package/dist/web/assets/{attention-store-CA5y8j1R.js → attention-store-BGHyzWfv.js} +1 -1
- package/dist/web/assets/avatars-z6ANYG_r.js +1 -0
- package/dist/web/assets/{catalog-D0VEfOAV.js → catalog-kb-cA8t6.js} +1 -1
- package/dist/web/assets/{client-DnwnUBQV.js → client-DodUFQDp.js} +1 -1
- package/dist/web/assets/{console-Cw7TzOSC.js → console-C2Lfifq-.js} +1 -1
- package/dist/web/assets/{conversation-launcher-settings-Yc13viwr.js → conversation-launcher-settings-CowfVz7l.js} +1 -1
- package/dist/web/assets/{i18n-oJFlt8hW.js → i18n-B4Fp9Oa5.js} +1 -1
- package/dist/web/assets/{identity-DSGS4CZc.js → identity-DG_za-J7.js} +1 -1
- package/dist/web/assets/index-DsExj49_.css +1 -0
- package/dist/web/assets/index-RxlM8aQV.js +5 -0
- package/dist/web/assets/{judgment-types-DR931cZ7.js → judgment-types-DRqrjStd.js} +1 -1
- package/dist/web/assets/{model-BJ-UF4cs.js → model-C0eHDNsF.js} +1 -1
- package/dist/web/assets/{personal-profile-graph-SOK0BR0w.js → personal-profile-graph-CHY3WYhi.js} +1 -1
- package/dist/web/assets/project-team-api-Dfm8C4B8.js +1 -0
- package/dist/web/assets/{shared-report-CiX64ZiD.js → shared-report-8JFvD9TZ.js} +1 -1
- package/dist/web/assets/tonborg-avatar-DyxAdTD6.webp +0 -0
- package/dist/web/assets/{useAgentRoster-B84mzZIg.js → useAgentRoster-QDbOwtLj.js} +1 -1
- package/dist/web/assets/{useApi-CROJJdhE-7gt0QyQ5.js → useApi-CROJJdhE-IuC5qwny.js} +1 -1
- package/dist/web/assets/{vue-router-CCvPGaLD.js → vue-router-nZMhR3dI.js} +1 -1
- package/dist/web/index.html +16 -15
- package/graph-provider/fuli_graph/system_agents.py +27 -3
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/src/employees/catalog/tonborg.json +1 -1
- package/src/http/api-router.js +28 -1
- package/src/local-runtime/lifecycle.js +1 -0
- package/src/setup/graph-runtime.js +1 -1
- package/src/system/settings-apply-worker.js +6 -0
- package/src/system/settings-apply.js +116 -0
- package/src/system/system-service.js +25 -5
- package/dist/web/assets/AgentProfilePage-CFViQ8kj.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage-CBFTg_IE.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-D8Hvhc-M.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-TBl_HNj6.js +0 -3
- package/dist/web/assets/KnowledgePage-C4J4VueL.js +0 -1
- package/dist/web/assets/PersonalProfilePage-DrMDAAdy.css +0 -1
- package/dist/web/assets/PersonalProjectsPage-CJxp4Wyz.js +0 -1
- package/dist/web/assets/SettingsPage-BE8pWbI6.css +0 -1
- package/dist/web/assets/SettingsPage-McYuinGz.js +0 -1
- package/dist/web/assets/agent-profile-Bh3MJGvb.css +0 -1
- package/dist/web/assets/index-BfHCcUL2.css +0 -1
- package/dist/web/assets/index-DuxXKFrR.js +0 -5
- package/dist/web/assets/project-team-api-C_0qJk_B.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,B as t,D as n,E as r,F as i,Q as a,X as o,et as s,j as c,k as l,rt as u,v as d}from"./i18n-oJFlt8hW.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-7gt0QyQ5.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=l(h),n=l(m),r=d(()=>{let n=u(e.to);return t.resolve(n)}),i=d(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(V.bind(null,i));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(i)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),a=d(()=>i.value>-1&&nt(n.params,r.value.params)),o=d(()=>i.value>-1&&i.value===n.matched.length-1&&H(n.params,r.value.params));function s(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:r,href:d(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function $e(e){return e.length===1?e[0]:e}var et=r({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 r=o(Qe(e)),{options:i}=l(h),a=d(()=>({[it(e.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[it(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let i=t.default&&$e(t.default(r));return e.custom?i:n(`a`,{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},i)}}});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=r({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:r,slots:o}){let s=l(ee),c=d(()=>e.route||s.value),f=l(g,0),m=d(()=>{let e=u(f),{matched:t}=c.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),h=d(()=>c.value.matched[m.value]);i(g,d(()=>m.value+1)),i(p,h),i(ee,c);let _=a();return t(()=>[_.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 t=c.value,i=e.name,a=h.value,s=a&&a.components[i];if(!s)return ot(o.default,{Component:s,route:t});let l=a.props[i],u=n(s,y({},l?l===!0?t.params:typeof l==`function`?l(t):l:null,r,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[i]=null)},ref:_}));return ot(o.default,{Component:u,route:t})||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(t){let n=Ue(t.routes,t),r=t.parseQuery||be,i=t.stringifyQuery||xe,a=t.history,o=Q(),l=Q(),d=Q(),f=s(K),p=K;T&&t.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 r,i;return ye(e)?(r=n.getRecordMatcher(e),i=t):i=e,n.addRoute(i,r)}function te(e){let t=n.getRecordMatcher(e);t&&n.removeRoute(t)}function ne(){return n.getRoutes().map(e=>e.record)}function re(e){return!!n.getRecordMatcher(e)}function D(e,t){if(t=y({},t||f.value),typeof e==`string`){let i=z(r,e,t.path),o=n.resolve({path:i.path},t),s=a.createHref(i.fullPath);return y(i,o,{params:S(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=y({},e,{path:z(r,e.path,t.path).path});else{let n=y({},e.params);for(let e in n)n[e]??delete n[e];o=y({},e,{params:v(n)}),t.params=v(t.params)}let s=n.resolve(o,t),c=e.hash||``;s.params=g(S(s.params));let l=de(i,y({},e,{hash:ce(c),path:s.path})),u=a.createHref(l);return y({fullPath:l,hash:c,query:i===xe?Se(e.query):e.query||{}},s,{redirectedFrom:void 0,href:u})}function O(e){return typeof e==`string`?z(r,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,a=e.state,o=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(y(O(c),{state:typeof c==`object`?y({},a,c.state):a,force:o,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!o&&fe(i,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({},a,e.to.state):a,force:o}),t||l)}else e=P(l,r,!0,s,a);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 s=se.bind(null,e,t);return n.push(s),X(n).then(()=>{n=[];for(let r of o.list())n.push($(r,e,t));return n.push(s),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(s),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(s),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(s),X(n))).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(s),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 o=ie(e,t);if(o)return o;let s=t===K,c=T?history.state:{};n&&(r||s?a.replace(e.fullPath,y({scroll:s&&c&&c.scroll},i)):a.push(e.fullPath,i)),f.value=e,W(e,t,n,s),U()}let F;function le(){F||=a.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 o=f.value;T&&ge(me(o.fullPath,n.delta),Z()),M(r,o).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`&&a.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&a.go(-n.delta,!1),V(e,r,o))).then(e=>{e||=P(r,o,!1),e&&(n.delta&&!b(e,8)?a.go(-n.delta,!1):n.type===`pop`&&b(e,20)&&a.go(-1,!1)),N(r,o,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,n,r,i){let{scrollBehavior:a}=t;if(!T||!a)return Promise.resolve();let o=!r&&_e(me(e.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return c().then(()=>a(e,n,o)).then(t=>e===f.value&&t&&pe(t)).catch(t=>e===f.value&&V(t,e,n))}let G=e=>a.go(e),q,J=new Set,Y={currentRoute:f,listening:!0,addRoute:E,removeRoute:te,clearRoutes:n.clearRoutes,hasRoute:re,getRoutes:ne,resolve:D,options:t,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:o.add,beforeResolve:l.add,afterEach:d.add,onError:R.add,isReady:H,install(t){t.component(`RouterLink`,et),t.component(`RouterView`,st),t.config.globalProperties.$router=Y,Object.defineProperty(t.config.globalProperties,"$route",{enumerable:!0,get:()=>u(f)}),T&&!q&&f.value===K&&(q=!0,k(a.location).catch(e=>{}));let n={};for(let e in K)Object.defineProperty(n,e,{get:()=>f.value[e],enumerable:!0});t.provide(h,Y),t.provide(m,e(n)),t.provide(ee,f);let r=t.unmount;J.add(t),t.unmount=function(){J.delete(t),J.size<1&&(p=K,F&&F(),F=null,f.value=K,q=!1,B=!1),r()}}};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,B as t,D as n,E as r,F as i,Q as a,X as o,et as s,j as c,k as l,rt as u,v as d}from"./i18n-B4Fp9Oa5.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-IuC5qwny.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=l(h),n=l(m),r=d(()=>{let n=u(e.to);return t.resolve(n)}),i=d(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(V.bind(null,i));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(i)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),a=d(()=>i.value>-1&&nt(n.params,r.value.params)),o=d(()=>i.value>-1&&i.value===n.matched.length-1&&H(n.params,r.value.params));function s(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:r,href:d(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function $e(e){return e.length===1?e[0]:e}var et=r({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 r=o(Qe(e)),{options:i}=l(h),a=d(()=>({[it(e.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[it(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let i=t.default&&$e(t.default(r));return e.custom?i:n(`a`,{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},i)}}});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=r({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:r,slots:o}){let s=l(ee),c=d(()=>e.route||s.value),f=l(g,0),m=d(()=>{let e=u(f),{matched:t}=c.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),h=d(()=>c.value.matched[m.value]);i(g,d(()=>m.value+1)),i(p,h),i(ee,c);let _=a();return t(()=>[_.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 t=c.value,i=e.name,a=h.value,s=a&&a.components[i];if(!s)return ot(o.default,{Component:s,route:t});let l=a.props[i],u=n(s,y({},l?l===!0?t.params:typeof l==`function`?l(t):l:null,r,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[i]=null)},ref:_}));return ot(o.default,{Component:u,route:t})||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(t){let n=Ue(t.routes,t),r=t.parseQuery||be,i=t.stringifyQuery||xe,a=t.history,o=Q(),l=Q(),d=Q(),f=s(K),p=K;T&&t.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 r,i;return ye(e)?(r=n.getRecordMatcher(e),i=t):i=e,n.addRoute(i,r)}function te(e){let t=n.getRecordMatcher(e);t&&n.removeRoute(t)}function ne(){return n.getRoutes().map(e=>e.record)}function re(e){return!!n.getRecordMatcher(e)}function D(e,t){if(t=y({},t||f.value),typeof e==`string`){let i=z(r,e,t.path),o=n.resolve({path:i.path},t),s=a.createHref(i.fullPath);return y(i,o,{params:S(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=y({},e,{path:z(r,e.path,t.path).path});else{let n=y({},e.params);for(let e in n)n[e]??delete n[e];o=y({},e,{params:v(n)}),t.params=v(t.params)}let s=n.resolve(o,t),c=e.hash||``;s.params=g(S(s.params));let l=de(i,y({},e,{hash:ce(c),path:s.path})),u=a.createHref(l);return y({fullPath:l,hash:c,query:i===xe?Se(e.query):e.query||{}},s,{redirectedFrom:void 0,href:u})}function O(e){return typeof e==`string`?z(r,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,a=e.state,o=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(y(O(c),{state:typeof c==`object`?y({},a,c.state):a,force:o,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!o&&fe(i,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({},a,e.to.state):a,force:o}),t||l)}else e=P(l,r,!0,s,a);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 s=se.bind(null,e,t);return n.push(s),X(n).then(()=>{n=[];for(let r of o.list())n.push($(r,e,t));return n.push(s),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(s),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(s),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(s),X(n))).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(s),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 o=ie(e,t);if(o)return o;let s=t===K,c=T?history.state:{};n&&(r||s?a.replace(e.fullPath,y({scroll:s&&c&&c.scroll},i)):a.push(e.fullPath,i)),f.value=e,W(e,t,n,s),U()}let F;function le(){F||=a.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 o=f.value;T&&ge(me(o.fullPath,n.delta),Z()),M(r,o).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`&&a.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&a.go(-n.delta,!1),V(e,r,o))).then(e=>{e||=P(r,o,!1),e&&(n.delta&&!b(e,8)?a.go(-n.delta,!1):n.type===`pop`&&b(e,20)&&a.go(-1,!1)),N(r,o,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,n,r,i){let{scrollBehavior:a}=t;if(!T||!a)return Promise.resolve();let o=!r&&_e(me(e.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return c().then(()=>a(e,n,o)).then(t=>e===f.value&&t&&pe(t)).catch(t=>e===f.value&&V(t,e,n))}let G=e=>a.go(e),q,J=new Set,Y={currentRoute:f,listening:!0,addRoute:E,removeRoute:te,clearRoutes:n.clearRoutes,hasRoute:re,getRoutes:ne,resolve:D,options:t,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:o.add,beforeResolve:l.add,afterEach:d.add,onError:R.add,isReady:H,install(t){t.component(`RouterLink`,et),t.component(`RouterView`,st),t.config.globalProperties.$router=Y,Object.defineProperty(t.config.globalProperties,"$route",{enumerable:!0,get:()=>u(f)}),T&&!q&&f.value===K&&(q=!0,k(a.location).catch(e=>{}));let n={};for(let e in K)Object.defineProperty(n,e,{get:()=>f.value[e],enumerable:!0});t.provide(h,Y),t.provide(m,e(n)),t.provide(ee,f);let r=t.unmount;J.add(t),t.unmount=function(){J.delete(t),J.size<1&&(p=K,F&&F(),F=null,f.value=K,q=!1,B=!1),r()}}};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};
|
package/dist/web/index.html
CHANGED
|
@@ -9,29 +9,30 @@
|
|
|
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-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/i18n-
|
|
12
|
+
<script type="module" crossorigin src="/assets/index-RxlM8aQV.js"></script>
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/i18n-B4Fp9Oa5.js">
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BDNMzG2s.js">
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/client-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/console-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/UiButton-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/useApi-CROJJdhE-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/vue-router-
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/client-DodUFQDp.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/console-C2Lfifq-.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/UiButton-neeym_gA.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/useApi-CROJJdhE-IuC5qwny.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/vue-router-nZMhR3dI.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/fuli-logo-Bu9WBuQe.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/UiDialog-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/UiSelect-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/attention-store-
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/AgentHand-
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/UiDisclosure-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/UiDialog-BFVoqFnc.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/UiSelect-DDyct4mf.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/attention-store-BGHyzWfv.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/AgentHand-B5lezlek.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/UiDisclosure-B-T7BmB5.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/avatars-z6ANYG_r.js">
|
|
26
27
|
<link rel="modulepreload" crossorigin href="/assets/profile-model-BQO4zNs9.js">
|
|
27
28
|
<link rel="modulepreload" crossorigin href="/assets/task-evidence-DTiPCs7r.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/useAgentRoster-
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/agent-pins-
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/useAgentRoster-QDbOwtLj.js">
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/agent-pins-6LRHTMF6.js">
|
|
30
31
|
<link rel="modulepreload" crossorigin href="/assets/paths-CDREouhi.js">
|
|
31
32
|
<link rel="stylesheet" crossorigin href="/assets/client-CIuQ1icy.css">
|
|
32
33
|
<link rel="stylesheet" crossorigin href="/assets/UiSelect-Bv6R0yr1.css">
|
|
33
34
|
<link rel="stylesheet" crossorigin href="/assets/AgentHand-Y83Oo36U.css">
|
|
34
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
35
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DsExj49_.css">
|
|
35
36
|
</head>
|
|
36
37
|
<body>
|
|
37
38
|
<div id="app"></div>
|
|
@@ -17,6 +17,7 @@ SYSTEM_HR_AGENT_ID = 'employee.bole'
|
|
|
17
17
|
SYSTEM_JUDGMENT_AGENT_ID = 'employee.tonborg'
|
|
18
18
|
# Upgrade only the former built-in copy; custom responsibilities are user data.
|
|
19
19
|
LEGACY_HR_RESPONSIBILITY = 'HR:维护 Agent 人员分布与工作状态,按需招募并保留招募记录。'
|
|
20
|
+
LEGACY_JUDGMENT_RESPONSIBILITY = '判断官:依照用户偏好审核日常事项、建议客户端和模型,保留判断依据与反馈。'
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
def coordinator_profile() -> ProjectAgentProfile:
|
|
@@ -55,7 +56,7 @@ def judgment_profile() -> ProjectAgentProfile:
|
|
|
55
56
|
return ProjectAgentProfile(
|
|
56
57
|
name='Tonborg',
|
|
57
58
|
occupation_emoji='⚖️',
|
|
58
|
-
responsibility='
|
|
59
|
+
responsibility='决策员:依照用户偏好审核日常事项、建议客户端和模型,保留判断依据与反馈。',
|
|
59
60
|
agent_type='durable',
|
|
60
61
|
work_kinds=['judgment', 'knowledge-review', 'executor-selection'],
|
|
61
62
|
capabilities=['判断审核', '执行器选择', '判断反馈', 'fuli.employee:tonborg'],
|
|
@@ -91,8 +92,12 @@ async def ensure_system_identity(driver, provider_id, space_id, agent_id):
|
|
|
91
92
|
upgrade_responsibility = False
|
|
92
93
|
if rows and rows[0]['profile_json']:
|
|
93
94
|
stored = json.loads(rows[0]['profile_json'])
|
|
94
|
-
upgrade_responsibility = (
|
|
95
|
-
|
|
95
|
+
upgrade_responsibility = (
|
|
96
|
+
(agent_id == SYSTEM_HR_AGENT_ID
|
|
97
|
+
and stored.get('responsibility') == LEGACY_HR_RESPONSIBILITY)
|
|
98
|
+
or (agent_id == SYSTEM_JUDGMENT_AGENT_ID
|
|
99
|
+
and stored.get('responsibility') == LEGACY_JUDGMENT_RESPONSIBILITY)
|
|
100
|
+
)
|
|
96
101
|
if upgrade_responsibility:
|
|
97
102
|
stored['responsibility'] = default.responsibility
|
|
98
103
|
profile = ProjectAgentProfile.model_validate(
|
|
@@ -134,6 +139,25 @@ async def ensure_system_identity(driver, provider_id, space_id, agent_id):
|
|
|
134
139
|
agent_type=profile.agent_type,
|
|
135
140
|
now=now,
|
|
136
141
|
)
|
|
142
|
+
if agent_id == SYSTEM_JUDGMENT_AGENT_ID:
|
|
143
|
+
# Active project duties may still contain the former built-in copy.
|
|
144
|
+
# Keep custom duties and ended assignments as the user recorded them.
|
|
145
|
+
await driver.execute_query(
|
|
146
|
+
'''
|
|
147
|
+
MATCH (:FuliSpace {id: $space_id, kind: 'personal'})-
|
|
148
|
+
[:CONTAINS_PROJECT]->(:FuliPersonalProject)-
|
|
149
|
+
[:HAS_PROJECT_AGENT_ASSIGNMENT]->(assignment:FuliProjectAgentAssignment)-
|
|
150
|
+
[:ASSIGNED_AGENT]->(:FuliProjectAgent {id: $id})
|
|
151
|
+
WHERE assignment.status = 'active'
|
|
152
|
+
AND assignment.responsibility = $legacy_responsibility
|
|
153
|
+
SET assignment.responsibility = $responsibility,
|
|
154
|
+
assignment.revision = coalesce(assignment.revision, 0) + 1,
|
|
155
|
+
assignment.updated_at = $now
|
|
156
|
+
''',
|
|
157
|
+
space_id=space_id, id=node_id,
|
|
158
|
+
legacy_responsibility=LEGACY_JUDGMENT_RESPONSIBILITY,
|
|
159
|
+
responsibility=default.responsibility, now=now,
|
|
160
|
+
)
|
|
137
161
|
|
|
138
162
|
|
|
139
163
|
async def retire_legacy_coordinator(driver, space_id):
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fuli-context",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "fuli-context",
|
|
9
|
-
"version": "0.12.
|
|
9
|
+
"version": "0.12.4",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@a2a-js/sdk": "1.3.0",
|
package/package.json
CHANGED
package/src/http/api-router.js
CHANGED
|
@@ -31,6 +31,7 @@ export async function handleApiRequest({
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
if (system && url.pathname === '/api/system/settings' && request.method === 'GET') {
|
|
34
|
+
response.setHeader('Cache-Control', 'no-store');
|
|
34
35
|
sendJson(response, 200, system.getSettings());
|
|
35
36
|
return true;
|
|
36
37
|
}
|
|
@@ -42,7 +43,33 @@ export async function handleApiRequest({
|
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
if (system && url.pathname === '/api/system/settings' && request.method === 'PUT') {
|
|
45
|
-
|
|
46
|
+
const result = await system.updateSettings(await readJson(request));
|
|
47
|
+
if (result.apply?.status === 'applying') {
|
|
48
|
+
// Flush the acknowledgement before the detached worker stops this server.
|
|
49
|
+
let started = false;
|
|
50
|
+
const start = () => {
|
|
51
|
+
if (started) return;
|
|
52
|
+
started = true;
|
|
53
|
+
system.startSettingsApply(result.apply.id);
|
|
54
|
+
};
|
|
55
|
+
response.once('finish', start);
|
|
56
|
+
response.once('close', start);
|
|
57
|
+
}
|
|
58
|
+
sendJson(response, 200, result);
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// An image load can confirm readiness across a console port change without
|
|
63
|
+
// granting another origin access to authenticated JSON or widening CORS.
|
|
64
|
+
if (system && url.pathname === '/api/system/settings/ready.svg' && request.method === 'GET') {
|
|
65
|
+
const apply = system.settingsApplyStatus?.();
|
|
66
|
+
response.setHeader('Cache-Control', 'no-store');
|
|
67
|
+
if (apply?.id !== url.searchParams.get('id') || apply.status !== 'applied') {
|
|
68
|
+
sendJson(response, 503, { error: 'Settings are not ready' });
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
response.writeHead(200, { 'content-type': 'image/svg+xml', 'x-content-type-options': 'nosniff' });
|
|
72
|
+
response.end('<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/>');
|
|
46
73
|
return true;
|
|
47
74
|
}
|
|
48
75
|
|
|
@@ -30,6 +30,7 @@ export async function startLocalRuntime(input, dependencies = {}) {
|
|
|
30
30
|
personalSpaceName: input.personalSpaceName,
|
|
31
31
|
port: input.port,
|
|
32
32
|
lan: input.lan === true,
|
|
33
|
+
lanAccessToken: input.lanAccessToken,
|
|
33
34
|
runtimeSettings,
|
|
34
35
|
previousRuntimeMode: input.previousRuntimeMode,
|
|
35
36
|
personalOnly: !managesDevelopmentWorkspace,
|
|
@@ -196,7 +196,7 @@ export async function ensureGraphRuntime(input, dependencies = {}) {
|
|
|
196
196
|
throw new Error('Fuli Graphiti console did not stop before restarting');
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
-
const lanAccessToken = lan ? deps.createLanAccessToken() : null;
|
|
199
|
+
const lanAccessToken = lan ? input.lanAccessToken || deps.createLanAccessToken() : null;
|
|
200
200
|
const child = deps.spawnWebRuntime({
|
|
201
201
|
paths: input.paths,
|
|
202
202
|
nodePath: process.execPath,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { resolveSetupPaths } from '../setup/paths.js';
|
|
2
|
+
import { runSettingsApply } from './settings-apply.js';
|
|
3
|
+
|
|
4
|
+
const [dataDir, id] = process.argv.slice(2);
|
|
5
|
+
if (!dataDir || !id) throw new TypeError('A settings operation is required.');
|
|
6
|
+
await runSettingsApply(resolveSetupPaths({ dataDir }), id);
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { chmodSync } from 'node:fs';
|
|
4
|
+
import { createServer } from 'node:net';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
|
|
8
|
+
import { readJsonFile, writeJsonFileAtomic } from '../storage/json-file.js';
|
|
9
|
+
import { restartLocalRuntime, startLocalRuntime } from '../local-runtime/lifecycle.js';
|
|
10
|
+
import { stopGraphProviders } from '../setup/graph-runtime.js';
|
|
11
|
+
import { writeRuntimeSettings } from './runtime-settings.js';
|
|
12
|
+
|
|
13
|
+
const operationPath = (paths) => join(paths.dataDir, 'settings-apply.json');
|
|
14
|
+
function saveOperation(paths, value) {
|
|
15
|
+
writeJsonFileAtomic(operationPath(paths), value);
|
|
16
|
+
chmodSync(operationPath(paths), 0o600);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function createSettingsApplier({ paths, checkPorts = checkChangedPorts,
|
|
20
|
+
spawnWorker = spawn, writeSettings = writeRuntimeSettings } = {}) {
|
|
21
|
+
let preparing = false;
|
|
22
|
+
function status() {
|
|
23
|
+
const job = readJsonFile(operationPath(paths), null);
|
|
24
|
+
if (!job) return null;
|
|
25
|
+
const interrupted = job.status === 'applying' && Date.now() - job.startedAt > 10000
|
|
26
|
+
&& !processAlive(job.workerPid);
|
|
27
|
+
return { id: job.id, status: interrupted ? 'failed' : job.status,
|
|
28
|
+
port: job.configured.ports.console,
|
|
29
|
+
error: interrupted ? 'Settings application was interrupted. Save again to retry.' : job.error,
|
|
30
|
+
rolledBack: job.rolledBack };
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
status,
|
|
34
|
+
async prepare(configured, previous) {
|
|
35
|
+
if (preparing || status()?.status === 'applying') {
|
|
36
|
+
throw new TypeError('Settings are already being applied. Please wait.');
|
|
37
|
+
}
|
|
38
|
+
preparing = true;
|
|
39
|
+
try {
|
|
40
|
+
await checkPorts(configured, previous);
|
|
41
|
+
saveOperation(paths, { id: randomUUID(), status: 'applying', startedAt: Date.now(), configured, previous });
|
|
42
|
+
try { writeSettings(paths.runtimeSettingsPath, configured); }
|
|
43
|
+
catch (error) {
|
|
44
|
+
const job = readJsonFile(operationPath(paths));
|
|
45
|
+
saveOperation(paths, { ...job, status: 'failed', error: 'Could not save settings.' });
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
return status();
|
|
49
|
+
} finally { preparing = false; }
|
|
50
|
+
},
|
|
51
|
+
start(id) {
|
|
52
|
+
const job = readJsonFile(operationPath(paths), null);
|
|
53
|
+
if (job?.id !== id || job.status !== 'applying' || job.workerPid) return;
|
|
54
|
+
const fail = () => {
|
|
55
|
+
writeSettings(paths.runtimeSettingsPath, job.previous);
|
|
56
|
+
saveOperation(paths, { ...job, status: 'failed', rolledBack: true,
|
|
57
|
+
error: 'Could not start settings application. Previous settings were restored.' });
|
|
58
|
+
};
|
|
59
|
+
try {
|
|
60
|
+
const child = spawnWorker(process.execPath, [
|
|
61
|
+
fileURLToPath(new URL('./settings-apply-worker.js', import.meta.url)), paths.dataDir, id,
|
|
62
|
+
], { detached: true, windowsHide: true, stdio: 'ignore' });
|
|
63
|
+
child.once('error', fail);
|
|
64
|
+
if (!Number.isInteger(child.pid)) { fail(); return; }
|
|
65
|
+
saveOperation(paths, { ...job, workerPid: child.pid });
|
|
66
|
+
child.unref();
|
|
67
|
+
} catch { fail(); }
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export async function runSettingsApply(paths, id, {
|
|
73
|
+
restart = restartLocalRuntime, start = startLocalRuntime, stop = stopGraphProviders,
|
|
74
|
+
} = {}) {
|
|
75
|
+
const job = readJsonFile(operationPath(paths), null);
|
|
76
|
+
if (job?.id !== id || job.status !== 'applying') return;
|
|
77
|
+
const previousConfig = readJsonFile(paths.graphRuntimeConfigPath, null);
|
|
78
|
+
const input = (runtimeSettings) => ({ paths, runtimeSettings,
|
|
79
|
+
port: runtimeSettings.ports.console, lan: runtimeSettings.lanAccess,
|
|
80
|
+
lanAccessToken: process.env.FULI_LAN_ACCESS_TOKEN, env: process.env });
|
|
81
|
+
try {
|
|
82
|
+
await restart(input(job.configured));
|
|
83
|
+
saveOperation(paths, { ...job, status: 'applied' });
|
|
84
|
+
} catch (error) {
|
|
85
|
+
let rolledBack = false;
|
|
86
|
+
try {
|
|
87
|
+
await stop(paths, paths.graphEnvPath, { runtimeMode: job.configured.graphRuntimeMode,
|
|
88
|
+
personalOnly: !(previousConfig?.workspaces ?? []).some(item => item.managedDevelopment) });
|
|
89
|
+
writeRuntimeSettings(paths.runtimeSettingsPath, job.previous);
|
|
90
|
+
if (previousConfig) {
|
|
91
|
+
writeJsonFileAtomic(paths.graphRuntimeConfigPath, previousConfig);
|
|
92
|
+
chmodSync(paths.graphRuntimeConfigPath, 0o600);
|
|
93
|
+
}
|
|
94
|
+
await start({ ...input(job.previous), previousRuntimeMode: job.previous.graphRuntimeMode });
|
|
95
|
+
rolledBack = true;
|
|
96
|
+
} catch { /* Keep the failed status; never report an unverified recovery. */ }
|
|
97
|
+
saveOperation(paths, { ...job, status: 'failed', rolledBack,
|
|
98
|
+
error: error instanceof Error ? error.message : 'Could not apply settings.' });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async function checkChangedPorts(configured, previous) {
|
|
103
|
+
for (const [key, port] of Object.entries(configured.ports)) {
|
|
104
|
+
if (port === previous.ports[key]) continue;
|
|
105
|
+
const server = createServer();
|
|
106
|
+
await new Promise((resolve, reject) => {
|
|
107
|
+
server.once('error', () => reject(new TypeError(`Port ${port} is unavailable or already in use.`)));
|
|
108
|
+
server.listen(port, configured.lanAccess ? '0.0.0.0' : '127.0.0.1', () => server.close(resolve));
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function processAlive(pid) {
|
|
114
|
+
if (!Number.isInteger(pid)) return false;
|
|
115
|
+
try { process.kill(pid, 0); return true; } catch { return false; }
|
|
116
|
+
}
|
|
@@ -11,6 +11,7 @@ import { createAdaptiveRuntimeBroker } from '../adaptive-runtime/runtime-broker.
|
|
|
11
11
|
import { readAdaptiveRuntimeSettings } from '../adaptive-runtime/settings.js';
|
|
12
12
|
import { createPackageVersionChecker } from './package-version-checker.js';
|
|
13
13
|
import { clientConnectionConfig } from '../setup/client-connection.js';
|
|
14
|
+
import { createSettingsApplier } from './settings-apply.js';
|
|
14
15
|
|
|
15
16
|
export function createSystemService({
|
|
16
17
|
paths,
|
|
@@ -21,6 +22,7 @@ export function createSystemService({
|
|
|
21
22
|
readJson = readJsonFile,
|
|
22
23
|
readSettings = readRuntimeSettings,
|
|
23
24
|
writeSettings = writeRuntimeSettings,
|
|
25
|
+
settingsApplier = createSettingsApplier({ paths, writeSettings }),
|
|
24
26
|
executorAdapters = new Map(),
|
|
25
27
|
versionChecker = createPackageVersionChecker(),
|
|
26
28
|
runtimeBroker = createAdaptiveRuntimeBroker({
|
|
@@ -51,17 +53,32 @@ export function createSystemService({
|
|
|
51
53
|
function getSettings() {
|
|
52
54
|
const active = activeSettings();
|
|
53
55
|
const configured = readSettings(paths.runtimeSettingsPath, { fallback: active });
|
|
54
|
-
return settingsResult(configured, active);
|
|
56
|
+
return { ...settingsResult(configured, active), apply: settingsApplier.status() };
|
|
55
57
|
}
|
|
56
58
|
|
|
57
|
-
function updateSettings(input) {
|
|
58
|
-
const configured =
|
|
59
|
-
|
|
59
|
+
async function updateSettings(input) {
|
|
60
|
+
const configured = normalizeRuntimeSettings(input, { strict: true });
|
|
61
|
+
const active = activeSettings();
|
|
62
|
+
const result = settingsResult(configured, active);
|
|
63
|
+
if (settingsApplier.status()?.status === 'applying') {
|
|
64
|
+
throw new TypeError('Settings are already being applied. Please wait.');
|
|
65
|
+
}
|
|
66
|
+
if (result.restartRequired) {
|
|
67
|
+
const previous = readSettings(paths.runtimeSettingsPath, { fallback: active });
|
|
68
|
+
result.apply = await settingsApplier.prepare(configured, {
|
|
69
|
+
...previous, ports: active.ports, lanAccess: active.lanAccess, graphRuntimeMode: active.graphRuntimeMode,
|
|
70
|
+
});
|
|
71
|
+
} else {
|
|
72
|
+
writeSettings(paths.runtimeSettingsPath, configured);
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
60
75
|
}
|
|
61
76
|
|
|
62
77
|
return {
|
|
63
78
|
getSettings,
|
|
64
79
|
updateSettings,
|
|
80
|
+
startSettingsApply: (id) => settingsApplier.start(id),
|
|
81
|
+
settingsApplyStatus: () => settingsApplier.status(),
|
|
65
82
|
clientConnection: () => Object.fromEntries(['standard', 'vscode', 'server'].map((format) => [
|
|
66
83
|
format, clientConnectionConfig({ mcpServerPath: paths.mcpServerPath, runtimeConfigPath }, format)
|
|
67
84
|
])),
|
|
@@ -103,7 +120,10 @@ export function settingsFromActiveRuntime({
|
|
|
103
120
|
const personalProvider = urlPort(graphConfig?.personal?.providerUrl);
|
|
104
121
|
if (personalProvider !== null) ports.personalProvider = personalProvider;
|
|
105
122
|
const managedWorkspace = (graphConfig?.workspaces ?? []).find((workspace) =>
|
|
106
|
-
workspace?.managedDevelopment === true ||
|
|
123
|
+
workspace?.managedDevelopment === true || (
|
|
124
|
+
isLoopbackProvider(workspace?.providerUrl)
|
|
125
|
+
&& [8788, settings.ports.workspaceProvider].includes(urlPort(workspace?.providerUrl))
|
|
126
|
+
)
|
|
107
127
|
);
|
|
108
128
|
const workspaceProvider = urlPort(managedWorkspace?.providerUrl);
|
|
109
129
|
if (workspaceProvider !== null) ports.workspaceProvider = workspaceProvider;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e,E as t,H as n,I as r,N as i,P as a,Q as o,S as s,T as c,U as l,a as u,b as d,f,g as p,h as m,it as h,j as g,ot as _,p as v,rt as y,v as b,w as x,x as S,y as C}from"./i18n-oJFlt8hW.js";import{t as w}from"./console-Cw7TzOSC.js";import{o as T,r as ee,s as E}from"./client-DnwnUBQV.js";import{m as D}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as O}from"./vue-router-CCvPGaLD.js";import{t as k}from"./UiSelect-K29jnV-1.js";import{t as A}from"./UiDisclosure-_IxeiexW.js";import{a as j,r as M,t as N}from"./profile-model-BQO4zNs9.js";import{a as P,h as te,l as ne,n as re}from"./task-evidence-DTiPCs7r.js";import{t as F}from"./useAgentRoster-B84mzZIg.js";import{n as I}from"./paths-CDREouhi.js";import{t as ie}from"./AgentName-DJpvkub2.js";import{t as ae}from"./AgentConversations-Ccy41mEA.js";import{i as oe,r as se,t as ce}from"./agent-work-summary-C-yW7x7A.js";import{a as le,s as ue}from"./catalog-D0VEfOAV.js";import{t as de}from"./project-team-api-C_0qJk_B.js";/* empty css */var L={key:1,class:`agent-locked-platforms`},R={key:2,class:`agent-platform-field`},fe=[`disabled`,`placeholder`],z=[`onUpdate:modelValue`,`disabled`],pe={key:3,role:`alert`},me={key:4,role:`status`},B=[`disabled`],he=t({__name:`AgentProfileSettings`,props:{agent:{}},emits:[`saved`],setup(t,{emit:n}){let i=t,h=n,g=o([]),v=o(!1),w=o(!1),D=o(``),O=o(!1),A=``,j=o(``),M=o(``),N=o({judgment:``,taste:``,personality:``}),P=b(()=>i.agent.profile.executorPolicy?.mode===`locked`),te=b(()=>{let e=i.agent.profile.executorPolicy;return(e?.lockedExecutorIds?.length?e.lockedExecutorIds:(e?.allowList??[]).map(e=>e.executorId)).map(e=>g.value.find(t=>t.executorId===e)?.displayName||e)}),ne=b(()=>g.value.filter(e=>e.registrationStatus===`registered`&&e.permissionStatus===`authorized`&&e.preflightStatus===`passed`&&e.workspacePermission&&e.healthStatus!==`unhealthy`&&(!e.healthRequired||e.healthStatus===`healthy`))),re=b(()=>[{value:``,label:u(`agentProfiles.automatic`)},...j.value&&!ne.value.some(e=>e.executorId===j.value)?[{value:j.value,label:u(`agentProfiles.platformUnavailable`),disabled:!0}]:[],...ne.value.map(e=>({value:e.executorId,label:e.displayName||e.executorId}))]),F=0;e(()=>`${i.agent.personalSpaceId}/${i.agent.agentId}`,async()=>{let e=i.agent,t=++F;M.value=e.profile.expectations??``,N.value={judgment:``,taste:``,personality:``,...e.profile.character},j.value=e.profile.executorPolicy?.preferredExecutorIds?.[0]??``,A=j.value,D.value=``,O.value=!1,w.value=!1,v.value=!0,g.value=[];try{let n=await ee(`/api/executors?${new URLSearchParams({personalSpaceId:e.personalSpaceId})}`);t===F&&(g.value=Array.isArray(n)?n:n.executors)}catch{t===F&&(D.value=u(`agentProfiles.platformUnavailable`))}finally{t===F&&(v.value=!1)}},{immediate:!0});async function I(){if(w.value)return;let e=F,t=i.agent;w.value=!0,D.value=``,O.value=!1;let n=t.profile.executorPolicy;try{let r=await T(`/api/project-agents`,{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId??null,agentId:t.agentId,profile:{...t.profile,character:{...N.value},expectations:M.value,executorPolicy:P.value||j.value===A?n:{...n,mode:`flexible`,preferredExecutorIds:j.value?[j.value]:[]}}});e===F&&(A=j.value,h(`saved`,r),O.value=!0)}catch(t){e===F&&(D.value=t instanceof Error?t.message:u(`agentProfiles.saveError`))}finally{e===F&&(w.value=!1)}}return(e,t)=>(a(),s(`form`,{class:`agent-simple-settings`,onSubmit:m(I,[`prevent`])},[C(`h3`,null,_(y(u)(`agentProfiles.settings`)),1),v.value?(a(),d(E,{key:0,variant:`compact`,label:y(u)(`agentProfiles.settingsLoading`)},null,8,[`label`])):P.value?(a(),s(`div`,L,[C(`h4`,null,_(y(u)(`agentProfiles.platform`)),1),C(`p`,null,_(te.value.join(` · `)||y(u)(`agentProfiles.platformUnavailable`)),1),C(`small`,null,_(y(u)(`agentProfiles.locked`)),1)])):(a(),s(`div`,R,[c(k,{modelValue:j.value,"onUpdate:modelValue":t[0]||=e=>j.value=e,field:``,label:y(u)(`agentProfiles.platform`),options:re.value,disabled:P.value||w.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),C(`small`,null,_(y(u)(P.value?`agentProfiles.locked`:`agentProfiles.platformHint`)),1)])),C(`label`,null,[x(_(y(u)(`agentProfiles.expectations`)),1),l(C(`textarea`,{"onUpdate:modelValue":t[1]||=e=>M.value=e,rows:`3`,maxlength:`4096`,disabled:w.value,placeholder:y(u)(`agentProfiles.expectationsPlaceholder`)},null,8,fe),[[f,M.value]])]),C(`details`,null,[C(`summary`,null,_(y(u)(`agentProfiles.editCharacter`)),1),(a(),s(p,null,r([`judgment`,`taste`,`personality`],e=>C(`label`,{key:e},[x(_(y(u)(`agentProfiles.${e}`)),1),l(C(`textarea`,{"onUpdate:modelValue":t=>N.value[e]=t,rows:`2`,maxlength:`2048`,disabled:w.value},null,8,z),[[f,N.value[e]]])])),64))]),D.value?(a(),s(`p`,pe,_(D.value),1)):S(``,!0),O.value?(a(),s(`p`,me,_(y(u)(`agentProfiles.saved`)),1)):S(``,!0),C(`button`,{class:`primary-button`,disabled:w.value||v.value,type:`submit`},[w.value?(a(),d(E,{key:0,variant:`inline`,label:y(u)(`agentProfiles.saving`)},null,8,[`label`])):(a(),s(p,{key:1},[x(_(y(u)(`agentProfiles.save`)),1)],64))],8,B)],32))}}),ge=[`aria-label`],_e={key:1,class:`ui-card ui-empty agent-profile-empty`,role:`alert`},ve={key:2,class:`ui-card ui-empty agent-profile-empty`},ye={class:`ui-card agent-resume-header`},be={class:`agent-portrait`,"aria-hidden":`true`},xe={class:`agent-resume-intro`},Se={class:`agent-resume-name-row`},Ce={key:0,class:`ui-badge fla-employee-number`},we={class:`agent-resume-meta`},Te={class:`agent-profile-actions`},Ee=[`aria-expanded`],De={key:1,class:`agent-profile-refresh-status`,role:`status`},Oe=[`aria-label`],ke=[`id`,`aria-selected`,`aria-controls`,`tabindex`,`onClick`,`onKeydown`],Ae={key:4,class:`agent-profile-partial`,role:`status`},je=[`aria-hidden`],Me={class:`agent-profile-primary-grid`},Ne={class:`ui-card agent-resume-section agent-current-work-section`},Pe={class:`agent-section-heading`},Fe={key:0},Ie={key:0,class:`agent-current-work-list`},Le={class:`ui-badge`},Re={key:1,class:`agent-muted`},ze={key:2,class:`agent-muted`},Be={class:`ui-card agent-resume-section agent-projects-section`},Ve={class:`agent-section-heading`},He={class:`agent-resume-list agent-current-project-list`},Ue={key:0,class:`agent-project-responsibility`},We={class:`agent-resume-list`},Ge={key:0,class:`agent-project-responsibility`},Ke={key:1,class:`agent-muted`},qe=[`aria-hidden`],Je={class:`ui-card agent-resume-section`},Ye={key:0,class:`ui-disclosure`,open:``},Xe={class:`agent-resume-list`},Ze={key:1,class:`agent-muted`},Qe={class:`ui-card agent-resume-section`},$e={class:`agent-muted`},et={class:`agent-work-timeline`},tt={class:`agent-section-heading`},nt={key:0},rt={key:0},it={key:0},at={key:0,class:`agent-muted`},ot=[`aria-hidden`],st={class:`ui-card agent-resume-section`},ct={class:`agent-character`},lt={key:0,class:`agent-expectation`},ut={class:`agent-strengths`},dt={class:`agent-inline-skills`},ft={key:0},pt=[`aria-hidden`],mt={class:`ui-card agent-resume-section`},ht={class:`agent-section-heading`},gt={key:0,role:`status`},_t={key:0,class:`agent-org-lead-unavailable`,role:`status`},vt={key:1,class:`agent-org-lead`},yt={key:2,class:`agent-org-reporting`},bt={key:3,class:`agent-org-members`},xt={key:2,class:`agent-muted`},St={key:0,class:`agent-muted`},Ct={class:`ui-card agent-resume-section`},wt={class:`agent-collaborators`},Tt={key:0,class:`agent-muted`},Et=[`aria-hidden`],Dt={class:`ui-card agent-resume-section`},Ot=[`aria-hidden`],kt={class:`ui-card agent-resume-section agent-management-card`},At={class:`agent-muted`},jt={class:`agent-profile-management-links`},Mt={class:`agent-profile-footer`},Nt=t({__name:`AgentProfilePage`,setup(t){let f=D(),m=w(),T=b(()=>m.activePersonalSpace?.id??``),{agents:k,loading:L,error:R,load:fe}=F(T),z=b(()=>f.params.spaceId===T.value?k.value.find(e=>e.personalSpaceId===T.value&&(e.agentId===f.params.agentId||e.legacyAgentIds?.includes(String(f.params.agentId)))):void 0),pe=b(()=>(m.state?.personalProjects??[]).filter(e=>e.personal_space_id===T.value)),me=b(()=>pe.value.map(e=>({id:e.project_id,name:e.profile.name}))),B=e=>pe.value.find(t=>t.project_id===e)?.profile.name||e,Nt=e=>{let t=k.value.find(t=>t.agentId===e);return t?N(t):e},V=o([]),H=o(void 0),U=o([]),W=o(!1),G=o(!1),K=o(!1),q=o(`overview`),J=b(()=>{let e=[{id:`overview`,label:u(`agentProfiles.working`)},{id:`history`,label:u(`agentProfiles.experience`)},{id:`style`,label:u(`agentProfiles.about`)},{id:`collaborators`,label:u(`agentProfiles.collaborators`)},{id:`management`,label:u(`agentProfiles.advanced`)}];return z.value?.memoryScope===`reviewed_agent`&&e.splice(4,0,{id:`conversations`,label:u(`projectAgents.conversations.title`)}),e}),Pt=b(()=>z.value?M(z.value.agentId,V.value):[]),Y=b(()=>z.value?j({...z.value,assignments:H.value??z.value.assignments}):[]),Ft=b(()=>Y.value.slice(0,4)),It=b(()=>Y.value.slice(4)),Lt=b(()=>(H.value??[]).filter(e=>e.status!==`active`)),X=b(()=>V.value.filter(e=>oe.has(e.status)).slice(0,6)),Z=b(()=>le.value.find(e=>e.agentId===z.value?.agentId)),Q=e=>e&&!Number.isNaN(Date.parse(e))?new Date(e).toLocaleDateString():u(`agentProfiles.timeUnknown`),$=e=>{let t=H.value?.find(t=>t.personalProjectId===e&&t.status===`active`)?.responsibility?.trim(),n=z.value?.profile.responsibility.trim();return t&&t!==n?t:``},Rt=b(()=>{let e=`agentRedesign.projects.more`,t=u(e,{count:Y.value.length});return t===e?`All projects (${Y.value.length})`:t}),zt=0;e(()=>z.value?`${z.value.personalSpaceId}/${z.value.agentId}`:``,async()=>{let e=z.value,t=++zt;if(V.value=[],H.value=void 0,U.value=[],G.value=!1,W.value=!1,K.value=!1,q.value=`overview`,!e)return;ue(e.personalSpaceId),W.value=!0,H.value=e.assignments;let n=new URLSearchParams({personalSpaceId:e.personalSpaceId}),r=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),i=await Promise.allSettled([ee(`/api/project-agent-tasks?${n}&limit=200`),ee(`/api/project-agent-assignments?${r}`)]);if(t!==zt)return;let[a,o]=i;if(a.status===`fulfilled`){let t=a.value,n=te(t);G.value=!ce(t),V.value=re(Array.isArray(t)?t:n.tasks??n.items).map(ne).filter(t=>!!(t&&(!t.personalSpaceId||t.personalSpaceId===e.personalSpaceId)&&se(t,e.agentId))).sort((e,t)=>(t.updatedAt??t.createdAt??``).localeCompare(e.updatedAt??e.createdAt??``))}else G.value=!0;if(o.status===`fulfilled`){let t=o.value,n=te(t);H.value=re(Array.isArray(t)?t:n.assignments??n.items).map(t=>P(t,e)).filter(t=>!!(t&&t.agentId===e.agentId&&t.personalSpaceId===e.personalSpaceId))}else G.value=!0;let s=j({...e,assignments:H.value??e.assignments}),c=await Promise.all(s.map(async t=>{try{return{projectId:t,view:await de(e.personalSpaceId,t),error:!1}}catch{return{projectId:t,view:null,error:!0}}}));t===zt&&(U.value=c,W.value=!1)},{immediate:!0});function Bt(e){let t=k.value.findIndex(t=>t.agentId===e.agentId);t>=0&&(k.value[t]={...k.value[t],...e})}function Vt(e){q.value=e}function Ht(e,t){let n=e.key;if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(n))return;let r=e.currentTarget;e.preventDefault();let i=J.value.length,a=n===`Home`?0:n===`End`?i-1:(t+(n===`ArrowRight`?1:-1)+i)%i,o=J.value[a];o&&(Vt(o.id),g(()=>{let e=(r?.closest(`[role="tablist"]`))?.querySelectorAll(`[role="tab"]`)[a];e?.focus(),e?.scrollIntoView?.({block:`nearest`,inline:`nearest`})}))}return i(()=>{m.runtimeStatus===`idle`&&m.refresh()}),(e,t)=>(a(),s(`section`,{class:`view agent-profile-page`,"aria-label":y(u)(`agentProfiles.profile`)},[c(y(O),{class:`agent-profile-back`,to:`/project-agents`},{default:n(()=>[x(` ← `+_(y(u)(`agentProfiles.back`)),1)]),_:1}),(y(L)||y(m).runtimeStatus===`loading`)&&!z.value?(a(),d(E,{key:0,label:y(u)(`agentProfiles.loading`)},null,8,[`label`])):(y(R)||y(m).runtimeStatus===`error`)&&!z.value?(a(),s(`div`,_e,[C(`p`,null,_(y(R)||y(u)(`agentProfiles.loadError`)),1),C(`button`,{class:`quiet-button`,type:`button`,onClick:t[0]||=e=>y(m).state?y(fe)():y(m).refresh()},_(y(u)(`agentProfiles.retry`)),1)])):z.value?(a(),s(p,{key:3},[C(`header`,ye,[C(`span`,be,_(z.value.profile.occupationEmoji||y(N)(z.value).slice(0,1)),1),C(`div`,xe,[C(`div`,Se,[C(`h1`,null,_(y(N)(z.value)),1),z.value.employeeNumber?(a(),s(`span`,Ce,`FLA `+_(z.value.employeeNumber),1)):S(``,!0),C(`span`,{class:h([`ui-badge agent-profile-membership`,`is-${z.value.profile.status}`])},_(y(u)(`projectAgents.status.${z.value.profile.status}`)),3)]),C(`p`,null,_(z.value.profile.responsibility),1),C(`div`,we,[C(`span`,null,_(y(u)(z.value.recruitedAt?`agentProfiles.joined`:`agentProfiles.created`))+` · `+_(Q(z.value.recruitedAt||z.value.createdAt)),1)])]),C(`div`,Te,[Z.value?(a(),d(y(O),{key:0,class:`quiet-button`,to:`/employees/${encodeURIComponent(Z.value.id)}`},{default:n(()=>[x(_(y(u)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):S(``,!0),C(`button`,{class:`quiet-button`,type:`button`,"aria-expanded":K.value,onClick:t[1]||=e=>K.value=!K.value},_(y(u)(`agentProfiles.settings`)),9,Ee),c(y(O),{class:`quiet-button`,to:{path:`/employees/bole`,query:{q:y(N)(z.value)}}},{default:n(()=>[x(_(y(u)(`agentProfiles.askHR`)),1)]),_:1},8,[`to`])])]),y(L)||y(m).runtimeStatus===`loading`?(a(),d(E,{key:0,variant:`compact`,label:y(u)(`agentProfiles.loading`)},null,8,[`label`])):S(``,!0),y(R)?(a(),s(`p`,De,_(y(R)),1)):S(``,!0),K.value?(a(),d(he,{key:z.value.agentId,agent:z.value,onSaved:Bt},null,8,[`agent`])):S(``,!0),W.value?(a(),d(E,{key:3,variant:`compact`,label:y(u)(`agentProfiles.detailLoading`)},null,8,[`label`])):S(``,!0),C(`nav`,{class:`agent-profile-tabs`,role:`tablist`,"aria-label":y(u)(`agentProfiles.profile`)},[(a(!0),s(p,null,r(J.value,e=>(a(),s(`button`,{id:`agent-tab-${e.id}`,key:e.id,class:`agent-profile-tab`,type:`button`,role:`tab`,"aria-selected":q.value===e.id,"aria-controls":`agent-panel-${e.id}`,tabindex:q.value===e.id?0:-1,onClick:t=>Vt(e.id),onKeydown:t=>Ht(t,J.value.findIndex(t=>t.id===e.id))},_(e.label),41,ke))),128))],8,Oe),G.value?(a(),s(`p`,Ae,_(y(u)(`agentProfiles.partial`)),1)):S(``,!0),l(C(`section`,{id:`agent-panel-overview`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-overview`,"aria-hidden":q.value!==`overview`,tabindex:`0`},[C(`div`,Me,[C(`section`,Ne,[C(`div`,Pe,[C(`h2`,null,_(y(u)(`agentProfiles.working`)),1),X.value.length?(a(),s(`span`,Fe,_(X.value.length),1)):S(``,!0)]),X.value.length?(a(),s(`ul`,Ie,[(a(!0),s(p,null,r(X.value,e=>(a(),s(`li`,{key:e.taskId},[c(y(O),{to:{path:`/project-agents/manage`,query:{agent:z.value.agentId,task:e.taskId}}},{default:n(()=>[x(_(e.title),1)]),_:2},1032,[`to`]),C(`span`,Le,_(y(u)(`projectAgents.taskStatus.${e.status}`)),1)]))),128))])):!W.value&&!G.value?(a(),s(`p`,Re,_(y(u)(`agentProfiles.idle`)),1)):W.value?S(``,!0):(a(),s(`p`,ze,_(y(u)(`agentProfiles.partial`)),1))]),C(`section`,Be,[C(`div`,Ve,[C(`h2`,null,_(y(u)(`agentProfiles.projects`)),1),C(`span`,null,_(Y.value.length),1)]),C(`ul`,He,[(a(!0),s(p,null,r(Ft.value,e=>(a(),s(`li`,{key:e,class:`agent-project-item`},[C(`h3`,null,[c(y(O),{class:`agent-project-link`,to:y(I)(T.value,`overview`,e)},{default:n(()=>[x(_(B(e)),1)]),_:2},1032,[`to`])]),$(e)?(a(),s(`p`,Ue,_($(e)),1)):S(``,!0)]))),128))]),It.value.length?(a(),d(A,{key:0,class:`agent-project-overflow`,title:Rt.value},{default:n(()=>[C(`ul`,We,[(a(!0),s(p,null,r(It.value,e=>(a(),s(`li`,{key:e,class:`agent-project-item`},[C(`h3`,null,[c(y(O),{class:`agent-project-link`,to:y(I)(T.value,`overview`,e)},{default:n(()=>[x(_(B(e)),1)]),_:2},1032,[`to`])]),$(e)?(a(),s(`p`,Ge,_($(e)),1)):S(``,!0)]))),128))])]),_:1},8,[`title`])):S(``,!0),!W.value&&!Y.value.length?(a(),s(`p`,Ke,_(y(u)(`agentProfiles.noProject`)),1)):S(``,!0)])])],8,je),[[v,q.value===`overview`]]),l(C(`section`,{id:`agent-panel-history`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-history`,"aria-hidden":q.value!==`history`,tabindex:`0`},[C(`section`,Je,[C(`h2`,null,_(y(u)(`agentProfiles.projects`)),1),Lt.value.length?(a(),s(`details`,Ye,[C(`summary`,null,_(y(u)(`agentProfiles.projectHistory`)),1),C(`ul`,Xe,[(a(!0),s(p,null,r(Lt.value,e=>(a(),s(`li`,{key:e.assignmentId},[C(`h3`,null,[c(y(O),{class:`agent-project-link`,to:y(I)(T.value,`overview`,e.personalProjectId)},{default:n(()=>[x(_(B(e.personalProjectId)),1)]),_:2},1032,[`to`])]),C(`p`,null,_(e.responsibility),1),C(`small`,null,_(Q(e.assignedAt))+` – `+_(Q(e.endedAt)),1)]))),128))])])):W.value?S(``,!0):(a(),s(`p`,Ze,_(y(u)(`agentProfiles.noProject`)),1))]),C(`section`,Qe,[C(`h2`,null,_(y(u)(`agentProfiles.experience`)),1),C(`p`,$e,_(y(u)(`agentProfiles.recent`)),1),C(`ol`,et,[(a(!0),s(p,null,r(V.value.slice(0,12),e=>(a(),s(`li`,{key:e.taskId},[C(`div`,tt,[c(y(O),{to:{path:`/project-agents/manage`,query:{agent:z.value.agentId,task:e.taskId}}},{default:n(()=>[x(_(e.title),1)]),_:2},1032,[`to`]),C(`span`,null,_(y(u)(`projectAgents.taskStatus.${e.status}`)),1)]),e.resultSummary?(a(),s(`p`,nt,_(e.resultSummary),1)):S(``,!0),C(`small`,null,_(Q(e.completedAt||e.updatedAt||e.createdAt)),1)]))),128)),z.value.recruitedAt||z.value.recruitmentReason?(a(),s(`li`,rt,[C(`h3`,null,_(y(u)(`agentProfiles.recruitment`)),1),z.value.recruitmentReason?(a(),s(`p`,it,_(z.value.recruitmentReason),1)):S(``,!0),C(`small`,null,_(Q(z.value.recruitedAt)),1)])):S(``,!0)]),!W.value&&!V.value.length&&!z.value.recruitmentReason&&!z.value.recruitedAt?(a(),s(`p`,at,_(y(u)(`agentProfiles.noExperience`)),1)):S(``,!0)])],8,qe),[[v,q.value===`history`]]),l(C(`section`,{id:`agent-panel-style`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-style`,"aria-hidden":q.value!==`style`,tabindex:`0`},[C(`section`,st,[C(`h2`,null,_(y(u)(`agentProfiles.about`)),1),C(`div`,ct,[(a(),s(p,null,r([`judgment`,`taste`,`personality`],e=>C(`div`,{key:e},[C(`h3`,null,_(y(u)(`agentProfiles.${e}`)),1),C(`p`,{class:h({"agent-muted":!z.value.profile.character?.[e]})},_(z.value.profile.character?.[e]||y(u)(`agentProfiles.characterEmpty`)),3)])),64))]),z.value.profile.expectations?(a(),s(`p`,lt,[C(`strong`,null,_(y(u)(`agentProfiles.expectations`)),1),x(` `+_(z.value.profile.expectations),1)])):S(``,!0),C(`div`,ut,[C(`h3`,null,_(y(u)(`agentProfiles.strengths`)),1),C(`div`,dt,[(a(!0),s(p,null,r(z.value.profile.capabilities,e=>(a(),s(`span`,{key:e},_(e),1))),128)),z.value.profile.capabilities.length?S(``,!0):(a(),s(`span`,ft,_(y(u)(`agentProfiles.noSkills`)),1))])])])],8,ot),[[v,q.value===`style`]]),l(C(`section`,{id:`agent-panel-collaborators`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-collaborators`,"aria-hidden":q.value!==`collaborators`,tabindex:`0`},[C(`section`,mt,[C(`div`,ht,[C(`h2`,null,_(y(u)(`agentProfiles.organization`)),1),c(y(O),{to:{path:`/employees/bole`,query:{q:y(N)(z.value)}}},{default:n(()=>[x(_(y(u)(`agentProfiles.hr`)),1)]),_:1},8,[`to`])]),(a(!0),s(p,null,r(U.value,e=>(a(),s(`div`,{key:e.projectId,class:`agent-organization`},[C(`h3`,null,_(B(e.projectId)),1),e.error?(a(),s(`p`,gt,_(y(u)(`agentProfiles.teamUnavailable`)),1)):e.view&&(e.view.lead||e.view.unavailableLead||e.view.members.length)?(a(),s(p,{key:1},[e.view.unavailableLead?(a(),s(`p`,_t,_(e.view.unavailableLead.name?y(u)(`agentProfiles.leadUnavailable`,{name:e.view.unavailableLead.name}):y(u)(`agentProfiles.leadUnavailableUnnamed`)),1)):S(``,!0),e.view.lead?(a(),s(`div`,vt,[C(`span`,null,_(y(u)(`agentProfiles.lead`)),1),c(ie,{"space-id":T.value,"agent-id":e.view.lead.agentId,name:e.view.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):S(``,!0),e.view.lead?(a(),s(`p`,yt,_(y(u)(`agentProfiles.reporting`)),1)):S(``,!0),e.view.members.length?(a(),s(`div`,bt,[C(`span`,null,_(y(u)(`agentProfiles.teammates`)),1),C(`ul`,null,[(a(!0),s(p,null,r(e.view.members,e=>(a(),s(`li`,{key:e.agentId},[c(ie,{"space-id":T.value,"agent-id":e.agentId,name:e.name},null,8,[`space-id`,`agent-id`,`name`])]))),128))])])):S(``,!0)],64)):(a(),s(`p`,xt,_(y(u)(`agentProfiles.teamUnset`)),1))]))),128)),!W.value&&!U.value.length?(a(),s(`p`,St,_(y(u)(`agentProfiles.noProject`)),1)):S(``,!0)]),C(`section`,Ct,[C(`h2`,null,_(y(u)(`agentProfiles.collaborators`)),1),C(`ul`,wt,[(a(!0),s(p,null,r(Pt.value,e=>(a(),s(`li`,{key:e.agentId},[c(ie,{"space-id":T.value,"agent-id":e.agentId,name:Nt(e.agentId)},null,8,[`space-id`,`agent-id`,`name`]),C(`span`,null,_(y(u)(`agentProfiles.sharedTasks`,{count:e.count})),1)]))),128))]),!W.value&&!Pt.value.length?(a(),s(`p`,Tt,_(y(u)(`agentProfiles.noCollaborators`)),1)):S(``,!0)])],8,pt),[[v,q.value===`collaborators`]]),z.value.memoryScope===`reviewed_agent`?l((a(),s(`section`,{key:5,id:`agent-panel-conversations`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-conversations`,"aria-hidden":q.value!==`conversations`,tabindex:`0`},[C(`section`,Dt,[(a(),d(ae,{key:z.value.agentId,"personal-space-id":T.value,"agent-id":z.value.agentId,projects:me.value},null,8,[`personal-space-id`,`agent-id`,`projects`]))])],8,Et)),[[v,q.value===`conversations`]]):S(``,!0),l(C(`section`,{id:`agent-panel-management`,class:`agent-profile-panel`,role:`tabpanel`,"aria-labelledby":`agent-tab-management`,"aria-hidden":q.value!==`management`,tabindex:`0`},[C(`section`,kt,[C(`h2`,null,_(y(u)(`agentProfiles.advanced`)),1),C(`p`,At,_(y(u)(`agentProfiles.locked`)),1),C(`div`,jt,[Z.value?(a(),d(y(O),{key:0,class:`quiet-button`,to:`/employees/${encodeURIComponent(Z.value.id)}`},{default:n(()=>[x(_(y(u)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):S(``,!0),c(y(O),{class:`quiet-button`,to:{path:`/project-agents/manage`,query:{agent:z.value.agentId}}},{default:n(()=>[x(_(y(u)(`agentProfiles.advanced`)),1)]),_:1},8,[`to`])])])],8,Ot),[[v,q.value===`management`]]),C(`footer`,Mt,[Z.value?(a(),d(y(O),{key:0,to:`/employees/${encodeURIComponent(Z.value.id)}`},{default:n(()=>[x(_(y(u)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])):S(``,!0),c(y(O),{to:{path:`/project-agents/manage`,query:{agent:z.value.agentId}}},{default:n(()=>[x(_(y(u)(`agentProfiles.advanced`)),1)]),_:1},8,[`to`])])],64)):(a(),s(`p`,ve,_(y(u)(`agentProfiles.unavailable`)),1))],8,ge))}});export{Nt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e,E as t,H as n,I as r,N as i,P as a,Q as o,S as s,T as c,U as l,a as u,b as d,f,g as p,h as m,it as h,ot as g,p as _,rt as v,v as y,w as b,x,y as S}from"./i18n-oJFlt8hW.js";import{t as C}from"./console-Cw7TzOSC.js";import{r as w,s as T}from"./client-DnwnUBQV.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{h as D,m as O}from"./useApi-CROJJdhE-7gt0QyQ5.js";import{t as k}from"./vue-router-CCvPGaLD.js";import{t as A}from"./UiSelect-K29jnV-1.js";import{t as j}from"./AgentHand-UzVhbKUC.js";import{a as M,i as N,n as P,t as F}from"./profile-model-BQO4zNs9.js";import{a as I,o as ee,r as L}from"./agent-pins-DS4mNsNt.js";import{n as R,t as z}from"./agent-work-summary-C-yW7x7A.js";import{a as B,s as te}from"./catalog-D0VEfOAV.js";/* empty css */import{t as ne}from"./ProjectAgentFirstTask-BkRJ0zwO.js";import{n as V,t as re}from"./EmployeeRecruitDialog-D8Hvhc-M.js";var ie={viewBox:`0 0 1024 1024`,width:`18`,height:`18`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`},H=[`d`],ae=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z`,oe=`M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z`,se=t({__name:`PinIcon`,props:{filled:{type:Boolean,default:!1}},setup(e){return(t,n)=>(a(),s(`svg`,ie,[S(`path`,{d:e.filled?oe:ae},null,8,H)]))}}),U={class:`ui-card agent-card`},W={class:`agent-card-topline`},G={class:`agent-portrait small`,"aria-hidden":`true`},K={class:`agent-directory-name`},q={key:0,class:`ui-badge fla-employee-number`},ce={key:1,class:`ui-badge ui-badge--accent agent-card-role`},le=[`data-membership-status`],J=[`data-work-status`,`aria-label`],Y=[`aria-label`,`aria-pressed`,`title`,`disabled`],X={class:`agent-card-responsibility`},ue={key:0,class:`agent-inline-skills`},Z={class:`agent-card-meta`},Q={class:`agent-card-projects`},de={key:0,class:`agent-card-project-list`},$=[`title`],fe={key:0,class:`ui-badge agent-card-project-count`},pe={key:1,class:`ui-badge`},me={key:2,class:`agent-card-no-project`},he=E(t({__name:`AgentCard`,props:{agent:{},spaceId:{},projectNames:{},managesAllProjects:{type:Boolean},workSummary:{},workState:{},pinned:{type:Boolean},pinPending:{type:Boolean}},emits:[`toggle-pin`],setup(e,{emit:t}){let i=e,o=t,l=y(()=>F(i.agent)),f=y(()=>M(i.agent)),_=y(()=>f.value.slice(0,2).map(e=>i.projectNames?.[e]||e)),C=y(()=>Math.max(f.value.length-2,0)),w=y(()=>i.agent.profile.capabilities.slice(0,3)),E=y(()=>`is-${i.agent.profile.status}`),D=y(()=>u(`projectAgents.status.${i.agent.profile.status}`)),O=y(()=>i.workSummary?i.workSummary.status:i.workState===`loading`?`loading`:i.workState===`error`?`unavailable`:i.workState===`incomplete`?`unreported`:`none`),A=y(()=>`is-${O.value}`),N=y(()=>({coordinator:u(`agentProfiles.roles.projectManager`),hr:u(`agentProfiles.roles.hr`)})[i.agent.profile.agentType]??``);function I(e,t,n){let r=u(e,n);return r===e?t:r}let ee=y(()=>I(`agentRedesign.membershipStatus`,`Member · ${D.value}`,{status:D.value})),R=y(()=>{let e={awaiting_recruitment:`Awaiting recruitment`,queued:`Queued`,running:`Running`,paused:`Paused`,awaiting_review:`Awaiting review`,blocked:`Blocked`,none:u(`agentProfiles.idle`),loading:`Loading work status`,unreported:`Partial status`,unavailable:`Unavailable`}[O.value];return I(`agentRedesign.workStatus.${O.value}`,e??`Work status unavailable`)}),z=y(()=>i.pinPending?L(`saving`,`Saving Agent pin…`):i.pinned?L(`unpin`,`Unpin Agent`):L(`pin`,`Pin Agent`));function B(){o(`toggle-pin`,!i.pinned)}return(t,i)=>(a(),s(`article`,U,[S(`div`,W,[S(`span`,G,g(e.agent.profile.occupationEmoji||l.value.slice(0,1)),1),S(`div`,K,[c(v(k),{to:v(P)(e.spaceId,e.agent.agentId),"aria-label":`${l.value} · ${v(u)(`agentProfiles.profile`)}`},{default:n(()=>[b(g(l.value),1)]),_:1},8,[`to`,`aria-label`]),e.agent.employeeNumber?(a(),s(`span`,q,`FLA `+g(e.agent.employeeNumber),1)):x(``,!0),N.value?(a(),s(`span`,ce,g(N.value),1)):x(``,!0),c(j,{"agent-id":e.agent.agentId},null,8,[`agent-id`])]),e.agent.profile.status===`active`?x(``,!0):(a(),s(`span`,{key:0,class:h([`ui-badge agent-card-status agent-card-membership-status`,E.value]),"data-membership-status":e.agent.profile.status},g(ee.value),11,le)),e.agent.profile.status===`active`||![`none`,`loading`].includes(O.value)?(a(),s(`span`,{key:1,class:h([`agent-card-work-status`,A.value]),"data-work-status":O.value,"aria-label":`${v(u)(`agentRedesign.workStatus.label`)} · ${R.value}`},g(R.value),11,J)):x(``,!0),S(`button`,{class:`agent-card-pin quiet-button`,"data-agent-pin-toggle":``,type:`button`,"aria-label":`${z.value} · ${l.value}`,"aria-pressed":!!e.pinned,title:z.value,disabled:e.pinPending,onClick:m(B,[`stop`])},[e.pinPending?(a(),d(T,{key:0,variant:`inline`,label:z.value},null,8,[`label`])):(a(),d(se,{key:1,filled:e.pinned},null,8,[`filled`]))],8,Y)]),S(`p`,X,g(e.agent.profile.responsibility),1),w.value.length?(a(),s(`div`,ue,[(a(!0),s(p,null,r(w.value,e=>(a(),s(`span`,{key:e},g(e),1))),128))])):x(``,!0),S(`div`,Z,[S(`div`,Q,[_.value.length?(a(),s(`div`,de,[(a(!0),s(p,null,r(_.value,e=>(a(),s(`span`,{key:e,class:`ui-badge agent-card-project-badge`,title:e},g(e),9,$))),128)),C.value?(a(),s(`span`,fe,` +`+g(C.value),1)):x(``,!0)])):e.managesAllProjects?(a(),s(`span`,pe,g(v(u)(`agentProfiles.allProjects`)),1)):(a(),s(`span`,me,g(v(u)(`agentProfiles.noProject`)),1))]),c(v(k),{class:`agent-directory-open`,to:v(P)(e.spaceId,e.agent.agentId),"aria-label":`${l.value} · ${v(u)(`agentProfiles.profile`)}`},{default:n(()=>[b(g(v(u)(`agentProfiles.profile`))+` → `,1)]),_:1},8,[`to`,`aria-label`])])]))}}),[[`__scopeId`,`data-v-3cd2dc47`]]);function ge(t){let n=o({}),r=o(!1),i=o(``),a=o(`idle`),s=new Map,c=0;async function l(){let e=++c,o=t.value;if(i.value=``,!o){n.value={},r.value=!1,a.value=`idle`;return}let l=s.get(o);l?n.value=l:Object.keys(n.value).length&&(n.value={}),r.value=!0,a.value=`loading`;try{let r=await w(`/api/project-agent-tasks?${new URLSearchParams({personalSpaceId:o,limit:`200`})}`);if(e!==c||t.value!==o)return;let i=R(r,o);s.set(o,i),n.value=i,a.value=z(r)?`ready`:`incomplete`}catch(n){if(e!==c||t.value!==o)return;i.value=n instanceof Error?n.message:u(`agentProfiles.loadError`),a.value=`error`}finally{e===c&&t.value===o&&(r.value=!1)}}return e(t,l,{immediate:!0}),{summaries:n,loading:r,error:i,state:a,load:l}}var _e=[`src`],ve=E(t({__name:`EmployeeWorkbenchLinks`,props:{personalSpaceId:{}},setup(t){let i=t;e(()=>i.personalSpaceId,e=>{te(e===`current`?``:e)},{immediate:!0});let o=y(()=>B.value.filter(e=>e.agentId&&e.agentStatus===`active`&&(e.runtime||e.workbench?.kind===`native`)));return(e,t)=>(a(!0),s(p,null,r(o.value,e=>(a(),d(v(k),{key:e.id,class:`ui-button employee-workbench-link`,to:`/employees/${encodeURIComponent(e.id)}`,title:v(u)(`agentProfiles.workbench`)},{default:n(()=>[v(V)(e.id)?(a(),s(`img`,{key:0,src:v(V)(e.id),alt:``,"aria-hidden":`true`},null,8,_e)):x(``,!0),b(` `+g(e.name)+` · `+g(e.role),1)]),_:2},1032,[`to`,`title`]))),128))}}),[[`__scopeId`,`data-v-4906fde1`]]),ye=[`aria-label`],be={class:`ui-toolbar agents-directory-heading`},xe={key:0,class:`agents-directory-count`},Se={key:1,class:`agents-directory-count`,"aria-hidden":`true`},Ce={class:`agent-profile-actions`},we=[`disabled`],Te={key:0,class:`agent-directory-pin-error`,role:`alert`},Ee={key:2,class:`agent-directory-work-error`,role:`status`},De={class:`ui-toolbar agents-directory-filters`},Oe={class:`agents-directory-search`},ke={class:`sr-only`},Ae=[`placeholder`],je={key:4,role:`alert`,class:`ui-card ui-empty agent-profile-empty`},Me={key:5,class:`ui-card ui-empty agent-profile-empty`},Ne={key:6,class:`agents-directory-grid`},Pe=E(t({__name:`AgentsDirectoryPage`,setup(t){let n=C(),m=O(),h=D(),b=y(()=>n.activePersonalSpace?.id??``),{agents:w,loading:E,error:k,load:j}=ee(b),R=I(b),z=R.agentIds,te=R.savingAgentId,V=R.error,ie=y(()=>L(`retry`,`Retry`)),{summaries:H,loading:ae,error:oe,state:se,load:U}=ge(b),W=o(typeof m.query.q==`string`?m.query.q:``),G=o(`all`),K=o(typeof m.query.project==`string`?[m.query.project]:[]),q=o(!1),ce=y(()=>B.value.some(e=>!e.fixed)),le=e=>B.value.some(t=>t.agentId===e&&t.management?.mode===`all`),J=y(()=>(n.state?.personalProjects??[]).filter(e=>e.personal_space_id===b.value)),Y=y(()=>J.value.map(e=>({value:e.project_id,label:e.profile.name}))),X=y(()=>Object.fromEntries(Y.value.map(e=>[e.value,e.label]))),ue=y(()=>[{value:`all`,label:u(`agentProfiles.allStatus`)},...[`active`,`inactive`,`archived`].map(e=>({value:e,label:u(`projectAgents.status.${e}`)}))]),Z=y(()=>w.value.filter(e=>(G.value===`all`||e.profile.status===G.value)&&(!K.value.length||M(e).some(e=>K.value.includes(e)))&&N([F(e),e.employeeNumber?`FLA ${e.employeeNumber}`:``,e.profile.responsibility,...e.profile.capabilities,...M(e).map(e=>X.value[e]||e)].join(` `),W.value)).sort((e,t)=>F(e).localeCompare(F(t)))),Q=y(()=>E.value||ae.value||n.runtimeStatus===`loading`),de=e=>H.value[e];async function $(e,t){await R.setPinned(e,t)}i(()=>{n.runtimeStatus===`idle`&&n.refresh()}),e([b,()=>m.query.agent],([e,t])=>{if(e&&typeof t==`string`){let{agent:n,...r}=m.query;h.replace({path:typeof m.query.task==`string`?`/project-agents/manage`:P(e,t),query:typeof m.query.task==`string`?m.query:r})}},{immediate:!0}),e(b,(e,t)=>{t&&(W.value=``,K.value=[],G.value=`all`)});async function fe(e){q.value=!1,await h.push(P(b.value,e.agent.agentId))}async function pe(){if(n.state){await Promise.allSettled([j(),U()]);return}await n.refresh(),await Promise.allSettled([j(),U()])}return(e,t)=>(a(),s(`section`,{class:`view agents-directory`,"aria-label":v(u)(`agentProfiles.title`)},[S(`header`,be,[!Q.value||v(w).length?(a(),s(`p`,xe,g(v(u)(`agentProfiles.members`,{count:v(w).length})),1)):(a(),s(`span`,Se,`\xA0`)),S(`div`,Ce,[Q.value&&v(w).length?(a(),d(T,{key:0,variant:`inline`,label:v(u)(`agentRedesign.refreshing`)},null,8,[`label`])):x(``,!0),c(ve,{"personal-space-id":b.value||`current`},null,8,[`personal-space-id`]),ce.value?(a(),s(`button`,{key:1,type:`button`,class:`primary-button`,disabled:!b.value,onClick:t[0]||=e=>q.value=!0},g(v(u)(`employees.recruit`)),9,we)):x(``,!0)])]),v(V)?(a(),s(`p`,Te,[S(`span`,null,g(v(V)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:t[1]||=e=>v(R).load({force:!0})},g(ie.value),1)])):x(``,!0),!Q.value&&!v(k)&&v(n).runtimeStatus===`ready`&&!J.value.length?(a(),d(ne,{key:1,"personal-space-id":b.value},null,8,[`personal-space-id`])):x(``,!0),v(oe)?(a(),s(`p`,Ee,[S(`span`,null,g(v(u)(`agentRedesign.workStatus.refreshError`)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:t[2]||=(...e)=>v(U)&&v(U)(...e)},g(v(u)(`agentProfiles.retry`)),1)])):x(``,!0),S(`div`,De,[S(`label`,Oe,[S(`span`,ke,g(v(u)(`agentProfiles.search`)),1),l(S(`input`,{"onUpdate:modelValue":t[3]||=e=>W.value=e,type:`search`,maxlength:`160`,placeholder:v(u)(`agentProfiles.search`)},null,8,Ae),[[f,W.value]])]),c(A,{modelValue:K.value,"onUpdate:modelValue":t[4]||=e=>K.value=e,class:`agents-directory-select`,multiple:``,options:Y.value,label:v(u)(`employees.filterLabel`),placeholder:v(u)(`employees.allProjectsFilter`)},null,8,[`modelValue`,`options`,`label`,`placeholder`]),c(A,{modelValue:G.value,"onUpdate:modelValue":t[5]||=e=>G.value=e,class:`agents-directory-select`,options:ue.value,label:v(u)(`projectAgents.fields.status`)},null,8,[`modelValue`,`options`,`label`])]),Q.value&&!v(w).length?(a(),d(T,{key:3,label:v(u)(`agentProfiles.loading`)},null,8,[`label`])):x(``,!0),v(k)||v(n).runtimeStatus===`error`?l((a(),s(`div`,je,[S(`p`,null,g(v(k)||v(u)(`agentProfiles.loadError`)),1),S(`button`,{class:`quiet-button`,type:`button`,onClick:pe},g(v(u)(`agentProfiles.retry`)),1)],512)),[[_,!Q.value||v(w).length===0]]):x(``,!0),!Q.value&&!Z.value.length&&!v(k)&&v(n).runtimeStatus!==`error`?(a(),s(`p`,Me,g(v(u)(v(w).length?`agentProfiles.noMatch`:`agentProfiles.noAgents`)),1)):x(``,!0),Z.value.length?(a(),s(`ul`,Ne,[(a(!0),s(p,null,r(Z.value,e=>(a(),s(`li`,{key:e.agentId},[c(he,{agent:e,"space-id":b.value,"project-names":X.value,"manages-all-projects":le(e.agentId),"work-summary":de(e.agentId),"work-state":v(se),pinned:v(z).includes(e.agentId),"pin-pending":v(te)===e.agentId,onTogglePin:t=>$(e.agentId,t)},null,8,[`agent`,`space-id`,`project-names`,`manages-all-projects`,`work-summary`,`work-state`,`pinned`,`pin-pending`,`onTogglePin`])]))),128))])):x(``,!0),c(re,{open:q.value,"personal-space-id":b.value,projects:J.value,"default-project-ids":K.value??[],onClose:t[6]||=e=>q.value=!1,onRecruited:fe},null,8,[`open`,`personal-space-id`,`projects`,`default-project-ids`])],8,ye))}}),[[`__scopeId`,`data-v-56bb6321`]]);export{Pe as default};
|