fuli-context 0.7.3 → 0.7.4-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +170 -18
  2. package/README.zh-CN.md +146 -12
  3. package/compose.graphiti.yml +2 -0
  4. package/dist/web/assets/{AboutPage-qeO_vm0T.js → AboutPage-CftRexSY.js} +1 -1
  5. package/dist/web/assets/{ConnectionsPage-DO0GR9Xg.js → ConnectionsPage-D5J91x6d.js} +1 -1
  6. package/dist/web/assets/{useMinimumLoadingDisplay-BpCyBeko.css → KnowledgeEditDialog-DWUV_NPp.css} +1 -1
  7. package/dist/web/assets/KnowledgeEditDialog-wotVahvr.js +1 -0
  8. package/dist/web/assets/{KnowledgeInspector-Bjhdu2mf.css → KnowledgeInspector--1NujtXW.css} +1 -1
  9. package/dist/web/assets/KnowledgeInspector-BzkW0mVs.js +1 -0
  10. package/dist/web/assets/KnowledgeOrganizerPage-BebUDiHt.js +1 -0
  11. package/dist/web/assets/KnowledgePage-OUT07aKH.js +1 -0
  12. package/dist/web/assets/KnowledgeWorkspace-1pHJ0MNZ.js +4 -0
  13. package/dist/web/assets/{OverviewPage-CmCcDCAs.js → OverviewPage-CHE6XhdS.js} +1 -1
  14. package/dist/web/assets/PersonalProfilePage-B7T09bow.css +1 -0
  15. package/dist/web/assets/PersonalProfilePage-CXXiabUy.js +1 -0
  16. package/dist/web/assets/PersonalProjectsPage-d2wYGW8n.js +1 -0
  17. package/dist/web/assets/PublicProjectsPage-hxLShtnZ.js +1 -0
  18. package/dist/web/assets/{ReviewPage-B3vnZ6gn.js → ReviewPage-DUeyu7E8.js} +1 -1
  19. package/dist/web/assets/{SearchableSelect-ih69qbcS.js → SearchableSelect-C5RiB5F8.js} +1 -1
  20. package/dist/web/assets/SettingsPage-BMuASSzQ.js +1 -0
  21. package/dist/web/assets/SettingsPage-CAfz4qiV.css +1 -0
  22. package/dist/web/assets/WritingTastePage-B9BCYIwQ.js +1 -0
  23. package/dist/web/assets/WritingTastePage-DSgvTH6x.css +1 -0
  24. package/dist/web/assets/{console-DE40hXGC.js → console-DMvHxKf9.js} +1 -1
  25. package/dist/web/assets/conversation-launcher-settings-Dnlcw7Rj.js +1 -0
  26. package/dist/web/assets/{i18n-CDxBs1sz.js → i18n-CWfd8Dtt.js} +1 -1
  27. package/dist/web/assets/{identity-BCxb1mcy.js → identity-C9mLdR8L.js} +1 -1
  28. package/dist/web/assets/{index-CCOGfZzE.css → index-X2j29j8i.css} +1 -1
  29. package/dist/web/assets/index-nP5p5OaY.js +2 -0
  30. package/dist/web/assets/{model-CCMdt10Q.js → model-CsYAR8O3.js} +1 -1
  31. package/dist/web/assets/paths-CDREouhi.js +1 -0
  32. package/dist/web/assets/useApi-CROJJdhE-BLQiPVw0.js +1 -0
  33. package/dist/web/assets/vue-router-DN8x6iY1.js +1 -0
  34. package/dist/web/index.html +7 -6
  35. package/graph-provider/fuli_graph/app.py +238 -2
  36. package/graph-provider/fuli_graph/auth.py +18 -0
  37. package/graph-provider/fuli_graph/collaboration_context.py +253 -17
  38. package/graph-provider/fuli_graph/common_knowledge.py +6 -2
  39. package/graph-provider/fuli_graph/config.py +5 -0
  40. package/graph-provider/fuli_graph/graph_models.py +6 -0
  41. package/graph-provider/fuli_graph/graph_projection.py +14 -0
  42. package/graph-provider/fuli_graph/graph_query.py +27 -3
  43. package/graph-provider/fuli_graph/knowledge_management.py +19 -1
  44. package/graph-provider/fuli_graph/knowledge_search.py +11 -0
  45. package/graph-provider/fuli_graph/models.py +15 -2
  46. package/graph-provider/fuli_graph/personal_global_preference_models.py +234 -0
  47. package/graph-provider/fuli_graph/personal_global_preferences.py +1247 -0
  48. package/graph-provider/fuli_graph/project_action_models.py +22 -0
  49. package/graph-provider/fuli_graph/project_knowledge.py +121 -2
  50. package/graph-provider/fuli_graph/provider_values.py +24 -0
  51. package/graph-provider/fuli_graph/runtime.py +78 -0
  52. package/graph-provider/fuli_graph/search_projection.py +14 -1
  53. package/graph-provider/fuli_graph/store_knowledge.py +116 -2
  54. package/graph-provider/fuli_graph/workflow_candidate_models.py +168 -0
  55. package/graph-provider/fuli_graph/workflow_candidates.py +996 -0
  56. package/graph-provider/fuli_graph/workflow_observation_models.py +30 -0
  57. package/graph-provider/fuli_graph/workflow_observations.py +84 -0
  58. package/graph-provider/pyproject.toml +1 -1
  59. package/npm-shrinkwrap.json +21 -21
  60. package/package.json +4 -4
  61. package/skills/capturing-session-knowledge/SKILL.md +32 -5
  62. package/skills/flreview/SKILL.md +4 -3
  63. package/src/agent-tools/graph-definitions.js +136 -20
  64. package/src/agent-tools/graph-handlers.js +10 -4
  65. package/src/cli/command-registry.js +1 -1
  66. package/src/cli/local-runtime-command.js +69 -2
  67. package/src/graphiti/agent-knowledge-workflows.js +497 -16
  68. package/src/graphiti/collaboration-preference-projection.js +162 -0
  69. package/src/graphiti/federated-application.js +155 -161
  70. package/src/graphiti/federated-search-support.js +102 -0
  71. package/src/graphiti/knowledge-provider-mapping.js +15 -0
  72. package/src/graphiti/provider-client.js +162 -10
  73. package/src/graphiti/related-project-suggestions.js +109 -0
  74. package/src/graphiti/runtime-config.js +14 -0
  75. package/src/graphiti/source-marker.js +2 -2
  76. package/src/graphiti/task-knowledge-recall.js +66 -15
  77. package/src/graphiti/user-taste-skill.js +241 -0
  78. package/src/graphiti/workflow-candidate-mapping.js +87 -0
  79. package/src/graphiti/workflow-observation.js +82 -0
  80. package/src/graphiti/writing-taste-profile-workflow.js +25 -0
  81. package/src/graphiti/writing-taste-profile.js +490 -0
  82. package/src/http/graph-api-router.js +15 -2
  83. package/src/mcp/context-resources.js +158 -0
  84. package/src/mcp/create-mcp-server.js +39 -5
  85. package/src/mcp/instructions.js +5 -7
  86. package/src/mcp/session-id.js +60 -0
  87. package/src/mcp/task-context-registry.js +15 -3
  88. package/src/mcp/tool-annotations.js +8 -1
  89. package/src/mcp/tool-result.js +28 -4
  90. package/src/server.js +0 -1
  91. package/src/setup/claude-code-config.js +17 -6
  92. package/src/setup/graph-runtime.js +20 -2
  93. package/src/system/runtime-settings.js +121 -2
  94. package/src/system/system-service.js +5 -1
  95. package/dist/web/assets/KnowledgeInspector-DEW5lA1m.js +0 -1
  96. package/dist/web/assets/KnowledgeOrganizerPage-BkM568Ld.js +0 -1
  97. package/dist/web/assets/KnowledgePage-BAT4aZIm.js +0 -1
  98. package/dist/web/assets/KnowledgeWorkspace-DyGtBz--.js +0 -4
  99. package/dist/web/assets/PersonalProfilePage-C42mwKN8.js +0 -1
  100. package/dist/web/assets/PersonalProfilePage-CdmEzyvZ.css +0 -1
  101. package/dist/web/assets/PersonalProjectsPage-BwaXR62K.js +0 -1
  102. package/dist/web/assets/PublicProjectsPage-egKBulOq.js +0 -1
  103. package/dist/web/assets/SettingsPage-C6ouU0sR.css +0 -1
  104. package/dist/web/assets/SettingsPage-oLE8mNs5.js +0 -1
  105. package/dist/web/assets/index-BzhNfzU_.js +0 -2
  106. package/dist/web/assets/paths-DwHeiGMT.js +0 -1
  107. package/dist/web/assets/useMinimumLoadingDisplay-HdI7XAmu.js +0 -1
  108. package/dist/web/assets/vue-router-Drfl1F8i.js +0 -1
@@ -1 +0,0 @@
1
- import{$ as e,Q as t,R as n,_ as r,a as i,b as a,d as ee,f as o,g as s,j as c,k as l,m as u,n as te,p as d,q as f,tt as p,u as ne,x as re,y as m}from"./i18n-CDxBs1sz.js";import{a as h,n as g,r as _,t as ie}from"./console-DE40hXGC.js";import{_ as ae,t as oe}from"./paths-DwHeiGMT.js";import{t as v}from"./SearchableSelect-ih69qbcS.js";import{r as y,t as b}from"./identity-BCxb1mcy.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=re({__name:`PublicProjectsPage`,setup(re){let M=ie(),Ve=ae(),N=f(null),P=f([]),F=f([]),I=f(!1),L=f(!1),R=f(``),z=f(``),B=f(`RELATED_TO`),V=f(null),H=f(``),U=f(!1),W=f(``),G=d(()=>M.state?.projects??[]),K=d(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=d(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=d(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=d(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=d(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=d(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=d(()=>G.value.find(({id:e})=>e===z.value)??null),J=d(()=>X.value.find(({value:e})=>e===B.value)?.label??i(`pages.publicProjects.relationLabels.relatedTo`)),Y=d(()=>!!(V.value&&H.value===V.value.name)),X=d(()=>[{value:`PART_OF`,label:i(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:i(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:i(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:i(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:i(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:i(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:i(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||i(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(i(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(i(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=i(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(i(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:i(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(i(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?i(`pages.publicProjects.parentRelationSubmitted`):i(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(te()):i(`pages.publicProjects.timeNotRecorded`)}return(te,d)=>(l(),r(`section`,se,[u(`div`,ce,[d[8]||=u(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[u(`span`,{class:`nav-icon nav-icon-public-project`})],-1),u(`div`,null,[u(`p`,null,p(t(i)(`pages.publicProjects.intro`)),1)]),u(`div`,{class:`public-space-stats`,"aria-label":t(i)(`pages.publicProjects.overviewAria`)},[u(`span`,null,[u(`strong`,null,p(G.value.length),1),m(p(t(i)(`pages.publicProjects.discoverable`)),1)]),u(`span`,null,[u(`strong`,null,p(t(M).state?.subscriptions.length??0),1),m(p(t(i)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),u(`div`,ue,[(l(!0),r(o,null,c(G.value,n=>(l(),r(`article`,{key:Z(n),class:`project-card`},[u(`div`,de,[u(`div`,null,[d[9]||=u(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),u(`h4`,null,p(n.name),1)]),u(`div`,fe,[n.can_manage?(l(),r(`button`,{key:0,class:`management-action`,type:`button`,onClick:e=>Xe(n)},p(t(i)(`pages.publicProjects.manage`)),9,pe)):s(``,!0),u(`div`,me,[u(`strong`,null,p(n.profile?.assessment?.score??`—`),1),u(`span`,null,p(n.profile?.assessment?t(i)(`pages.publicProjects.coverage`):t(i)(`pages.publicProjects.noSummary`)),1)])])]),u(`p`,he,p(Q(n)),1),u(`div`,ge,[(l(!0),r(o,null,c(n.profile?.sources??[],(e,n)=>(l(),r(`span`,{key:n,class:`status-chip`},p(e.kind??t(i)(`pages.publicProjects.material`)),1))),128)),n.profile?.sources?.length?s(``,!0):(l(),r(`span`,_e,p(t(i)(`pages.publicProjects.noSources`)),1))]),u(`div`,ve,[u(`span`,{class:e([`status-chip`,{owner:n.isOwner}])},p(n.isOwner?`Owner`:n.role??`Reader`),3),u(`span`,ye,p(n.isOwner?t(i)(`pages.publicProjects.publishedByYou`):t(i)(`pages.publicProjects.publiclyDiscoverable`)),1),n.current_release?(l(),r(`span`,be,[u(`strong`,null,p(n.current_release.version),1),u(`span`,null,p($(n.current_release.published_at)),1)])):s(``,!0)]),u(`footer`,xe,[u(`button`,{class:`secondary-action`,type:`button`,onClick:e=>qe(n)},p(K.value.has(Z(n))?t(i)(`pages.publicProjects.unsubscribe`):t(i)(`pages.publicProjects.subscribe`)),9,Se),u(`button`,{class:`primary-action`,type:`button`,onClick:e=>Je(n)},p(t(i)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?s(``,!0):(l(),r(`div`,S,p(t(i)(`pages.publicProjects.noProjects`)),1))]),u(`section`,C,[u(`div`,w,[u(`div`,null,[d[10]||=u(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),u(`h3`,null,p(t(i)(`pages.publicProjects.relationsTitle`)),1),u(`p`,null,p(t(i)(`pages.publicProjects.relationsCopy`)),1)]),u(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:d[0]||=e=>L.value=!L.value},p(t(i)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),r(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ee($e,[`prevent`])},[u(`label`,null,[m(p(t(i)(`pages.publicProjects.sourceProject`))+` `,1),a(v,{modelValue:R.value,"onUpdate:modelValue":d[1]||=e=>R.value=e,options:He.value,label:t(i)(`pages.publicProjects.sourceProjectLabel`),placeholder:t(i)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:d[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),u(`label`,null,[m(p(t(i)(`pages.publicProjects.relation`))+` `,1),a(v,{modelValue:B.value,"onUpdate:modelValue":d[3]||=e=>B.value=e,options:X.value,label:t(i)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),u(`label`,null,[m(p(t(i)(`pages.publicProjects.targetProject`))+` `,1),a(v,{modelValue:z.value,"onUpdate:modelValue":d[4]||=e=>z.value=e,options:We.value,label:t(i)(`pages.publicProjects.targetProjectLabel`),placeholder:t(i)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),u(`div`,E,[u(`span`,null,p(t(i)(`pages.publicProjects.preview`)),1),u(`strong`,null,p(Ge.value?.name||t(i)(`pages.publicProjects.sourceProject`))+` `+p(J.value)+` `+p(Ke.value?.name||t(i)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),r(`p`,D,p(t(i)(`pages.publicProjects.parentConfirmation`)),1)):(l(),r(`p`,O,p(t(i)(`pages.publicProjects.relationBoundary`)),1))]),u(`button`,k,p(t(i)(`pages.publicProjects.addRelation`)),1)],32)):s(``,!0)]),u(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),r(`div`,j,[u(`header`,Ce,[u(`div`,null,[d[11]||=u(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),u(`h3`,null,p(N.value.name),1),u(`p`,null,p(Q(N.value)),1)]),u(`button`,{class:`secondary-action`,type:`button`,onClick:d[5]||=e=>N.value=null},p(t(i)(`common.actions.close`)),1)]),u(`section`,we,[d[12]||=u(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),u(`h4`,null,p(t(i)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),r(`p`,Te,[u(`strong`,null,p(N.value.current_release.version),1),m(` · `+p($(N.value.current_release.published_at)),1)])):(l(),r(`p`,Ee,p(t(i)(`pages.publicProjects.noRelease`)),1))]),u(`div`,De,[u(`section`,null,[u(`h4`,null,p(t(i)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),r(`p`,Oe,p(t(i)(`pages.publicProjects.loading`)),1)):s(``,!0),(l(!0),r(o,null,c(P.value,e=>(l(),r(`article`,{key:e.version,class:`project-release-item`},[u(`strong`,null,p(e.version),1),u(`p`,null,p(e.update_summary),1),u(`small`,null,p($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),r(`p`,ke,p(t(i)(`pages.publicProjects.noReleaseHistory`)),1)):s(``,!0)]),u(`section`,null,[u(`h4`,null,p(t(i)(`pages.publicProjects.relationsTitle`)),1),(l(!0),r(o,null,c(F.value,e=>(l(),r(`article`,{key:e.id,class:`project-detail-relation`},[u(`strong`,null,p(e.relation_type),1),u(`small`,null,p(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),r(`p`,Ae,p(t(i)(`pages.publicProjects.noRelations`)),1)):s(``,!0)])]),u(`footer`,je,[u(`span`,null,p(t(i)(`pages.publicProjects.contentManagementSeparated`)),1),u(`button`,{class:`primary-action`,type:`button`,onClick:d[6]||=e=>Ye(N.value)},p(t(i)(`pages.publicProjects.viewGraph`)),1)])])):s(``,!0)],8,A),u(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),r(`div`,Ne,[u(`header`,Pe,[u(`div`,null,[d[13]||=u(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),u(`h3`,null,p(t(i)(`pages.publicProjects.deleteTitle`)),1),u(`p`,null,p(t(i)(`pages.publicProjects.deleteCopy`)),1)]),u(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},p(t(i)(`common.actions.close`)),9,Fe)]),u(`label`,Ie,[m(p(t(i)(`pages.publicProjects.enterFullName`))+` `,1),u(`strong`,null,p(V.value.name),1),n(u(`input`,{"onUpdate:modelValue":d[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[ne,H.value]])]),W.value?(l(),r(`p`,Re,p(W.value),1)):s(``,!0),u(`footer`,ze,[u(`span`,null,p(t(i)(`pages.publicProjects.deleteWarning`)),1),u(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},p(U.value?t(i)(`pages.publicProjects.deleting`):t(i)(`pages.publicProjects.deletePermanently`)),9,Be)])])):s(``,!0)],8,Me)]))}});export{M as default};
@@ -1 +0,0 @@
1
- .settings-view[data-v-f2c3482b]{background:#f7f8f6;padding-top:24px}.settings-content[data-v-f2c3482b]{gap:18px;width:min(1120px,100%);margin:0 auto;display:grid}.settings-form[data-v-f2c3482b]{gap:18px;display:grid}.settings-card[data-v-f2c3482b]{background:#fff;border:1px solid #d7ddd8;border-radius:12px;padding:26px;box-shadow:0 8px 30px #2b3b320a}.section-heading[data-v-f2c3482b]{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.settings-card h3[data-v-f2c3482b]{color:#2e3c34;font-size:19px}.section-heading p[data-v-f2c3482b]{color:#879089;margin-top:5px;font-size:11px}.resource-totals[data-v-f2c3482b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resource-totals article[data-v-f2c3482b]{background:#f7f9f7;border:1px solid #dce2dd;border-radius:10px;align-content:center;gap:7px;min-height:126px;padding:20px 22px;display:grid}.resource-totals span[data-v-f2c3482b]{color:#667169;font-size:12px}.resource-totals strong[data-v-f2c3482b]{color:#24332a;letter-spacing:-.04em;font-size:clamp(25px,3vw,34px)}.resource-totals small[data-v-f2c3482b]{color:#8a938d;font-size:11px}.resource-breakdowns[data-v-f2c3482b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;display:grid}.resource-group[data-v-f2c3482b]{gap:13px;display:grid}.resource-group h4[data-v-f2c3482b],.port-section h4[data-v-f2c3482b]{color:#536058;font-size:12px}.resource-row[data-v-f2c3482b]{gap:6px;display:grid}.resource-row>div[data-v-f2c3482b]{color:#67736b;justify-content:space-between;gap:12px;font-size:11px;display:flex}.resource-row strong[data-v-f2c3482b]{color:#36443b;font-weight:650}.resource-row i[data-v-f2c3482b]{background:#eef1ee;border-radius:999px;height:5px;overflow:hidden}.resource-row b[data-v-f2c3482b]{border-radius:inherit;background:#6f8f79;height:100%;display:block}.resource-group:last-child .resource-row b[data-v-f2c3482b]{background:#82958a}.resource-notes[data-v-f2c3482b]{color:#8a938d;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:10px;display:flex}.settings-skeleton[data-v-f2c3482b]{background:#f2f4f2;border-radius:9px;height:260px}.restart-chip[data-v-f2c3482b]{color:#8d5a18;background:#fff8ec;border:1px solid #d7aa68;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.port-section[data-v-f2c3482b]{gap:13px;display:grid}.port-section+.port-section[data-v-f2c3482b]{border-top:1px solid #edf0ed;margin-top:25px;padding-top:22px}.development-section>div[data-v-f2c3482b]{align-items:center;gap:9px;display:flex}.development-section>div>span[data-v-f2c3482b]{color:#78633a;background:#f6f0e4;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:700}.development-section>p[data-v-f2c3482b]{color:#8b948e;font-size:10px}.port-grid[data-v-f2c3482b]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.port-grid label[data-v-f2c3482b]{color:#59655e;gap:7px;font-size:11px;display:grid}.port-grid input[data-v-f2c3482b],.select-row[data-v-f2c3482b] .settings-select .searchable-select-trigger{color:#2f3d34;width:100%;min-height:40px;font:inherit;background:#fbfcfb;border:1px solid #ccd4ce;border-radius:8px;outline:none;padding:0 11px}.port-grid input[data-v-f2c3482b]:focus,.select-row[data-v-f2c3482b] .settings-select .searchable-select-trigger:focus-visible{border-color:#6f8f79;box-shadow:0 0 0 3px #6f8f791f}.port-grid small[data-v-f2c3482b]{color:#9aa29d;font-size:9px}.behavior-card>h3[data-v-f2c3482b]{margin-bottom:14px}.setting-list[data-v-f2c3482b]{display:grid}.setting-row[data-v-f2c3482b]{cursor:pointer;border-top:1px solid #edf0ed;justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.setting-row[data-v-f2c3482b]:first-child{border-top:0}.setting-row>span[data-v-f2c3482b]{gap:4px;display:grid}.setting-row strong[data-v-f2c3482b]{color:#354239;font-size:12px}.setting-row small[data-v-f2c3482b]{color:#8b948e;font-size:10px}.setting-row input[role=switch][data-v-f2c3482b]{appearance:none;cursor:pointer;background:#cbd2cd;border-radius:999px;width:38px;height:21px;transition:background .18s;position:relative}.setting-row input[role=switch][data-v-f2c3482b]:after{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .18s;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 0 4px #0000002e}.setting-row input[role=switch][data-v-f2c3482b]:checked{background:#688b73}.setting-row input[role=switch][data-v-f2c3482b]:checked:after{transform:translate(17px,-50%)}.select-row .settings-select[data-v-f2c3482b]{width:180px;min-width:0}.select-row[data-v-f2c3482b] .settings-select .searchable-select-trigger{background:#fbfcfb;border-radius:8px;padding:0 14px 0 11px}.select-row[data-v-f2c3482b] .settings-select .searchable-select-current{align-items:center}.select-row[data-v-f2c3482b] .settings-select .searchable-select-current-label{font-weight:500}.select-row[data-v-f2c3482b] .settings-select .searchable-select-arrow{border-width:1.5px;width:8px;height:8px;margin-right:1px}.select-row[data-v-f2c3482b] .settings-select .searchable-select-panel{width:100%;min-width:0}.settings-top-status[data-v-f2c3482b]{color:#7d8780;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:0 4px 2px;font-size:10px;display:flex}.settings-top-status strong[data-v-f2c3482b]{color:#477356;font-weight:700}.settings-error[data-v-f2c3482b]{color:#8c3934;background:#fff2f0;border-radius:8px;padding:11px 13px;font-size:11px}@media (width<=900px){.port-grid[data-v-f2c3482b]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.settings-card[data-v-f2c3482b]{padding:20px}.resource-totals[data-v-f2c3482b],.resource-breakdowns[data-v-f2c3482b],.port-grid[data-v-f2c3482b]{grid-template-columns:1fr}.select-row[data-v-f2c3482b]{flex-direction:column;align-items:flex-start;padding:14px 0}.select-row .settings-select[data-v-f2c3482b]{width:100%}}
@@ -1 +0,0 @@
1
- import{D as e,F as t,O as n,Q as r,R as i,_ as a,a as o,b as s,d as ee,et as c,f as l,g as u,i as d,j as f,k as p,m,n as te,p as h,q as g,s as ne,tt as _,u as re,x as ie}from"./i18n-CDxBs1sz.js";import{o as ae,r as v,t as oe}from"./console-DE40hXGC.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as b}from"./SearchableSelect-ih69qbcS.js";var se=[`aria-label`],ce={class:`settings-content`},le={key:0,class:`settings-top-status`,role:`status`},ue={key:0},de={key:1},fe={class:`settings-card resource-card`},pe={class:`section-heading`},me={key:0},he=[`disabled`],ge={key:0,class:`settings-error`,role:`alert`},_e={class:`resource-totals`},ve={class:`resource-breakdowns`},ye={class:`resource-group`},x={class:`resource-group`},S={class:`resource-notes`},C={key:0},w={key:1},T={key:2,class:`settings-skeleton`,"aria-hidden":`true`},E={class:`settings-card ports-card`},D={class:`section-heading`},O={key:0,class:`restart-chip`},k={class:`port-section`},A={class:`port-grid`},j=[`onUpdate:modelValue`],M={class:`port-section development-section`},N={class:`settings-card behavior-card`},P={class:`setting-list`},be={class:`setting-row`},xe=[`checked`],Se={class:`setting-row`},Ce=[`checked`],we={class:`setting-row`},Te={class:`setting-row select-row`},Ee={class:`setting-row select-row`},De={key:0,class:`settings-error`,role:`alert`},Oe={key:2,class:`settings-error`,role:`alert`},F=y(ie({__name:`SettingsPage`,setup(ie){let y=oe(),F=g(null),I=g(null),L=g(null),R=g(!0),z=g(!1),B=g(!1),V=g(``),H=g(``),U=g(!1),W=null,ke=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=h({get:()=>te(),set:e=>d(e)}),K=[5,10,30,60],Ae=h(()=>[{value:`zh-CN`,label:o(`settings.behavior.zh`)},{value:`en-US`,label:o(`settings.behavior.en`)}]),je=h(()=>K.map(e=>({value:String(e),label:o(`settings.resources.refreshUnit`,{seconds:e})}))),Me=h(()=>y.state?.capturePolicy?.enabled!==!1),Ne=h(()=>y.state?.agentAccessPolicy?.enabled!==!1),Pe=h(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),Fe=h(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1]));n(async()=>{y.runtimeStatus===`idle`&&y.refresh(),await Promise.all([Ie(),q()]),R.value=!1}),e(J),t(()=>I.value?.resourceRefreshSeconds,()=>Re());async function Ie(){try{let e=await v(`/api/system/settings`);F.value=e,I.value=structuredClone(e.configured),V.value=``}catch(e){V.value=e instanceof Error?e.message:o(`settings.loadError`)}}async function q(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await v(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:o(`settings.resources.unavailable`)}finally{B.value=!1}}}async function Le(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await ae(`/api/system/settings`,I.value);F.value=e,I.value=structuredClone(e.configured),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:o(`settings.saveError`)}finally{z.value=!1}}}function Re(){J();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void q(),e*1e3))}function J(){W&&clearInterval(W),W=null}function ze(e){y.updateCapturePolicy(e.currentTarget.checked)}function Be(e){y.updateAgentAccessPolicy(e.currentTarget.checked)}function Ve(e){(e===`zh-CN`||e===`en-US`)&&d(e)}function Y(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function He(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id}`,n=o(t);return n===t?e.label:n}function Z(e){if(!Number.isFinite(e))return`—`;let t=Number(e),n=[`B`,`KiB`,`MiB`,`GiB`,`TiB`],r=t,i=0;for(;r>=1024&&i<n.length-1;)r/=1024,i+=1;let a=i===0||r>=100?0:r>=10?1:2;return`${r.toFixed(a)} ${n[i]}`}function Q(e,t){return`${Math.max(3,Math.round(e/t*100))}%`}function $(e){return e?new Intl.DateTimeFormat(G.value,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(new Date(e)):`—`}return(e,t)=>(p(),a(`section`,{class:`view settings-view`,"aria-label":r(o)(`settings.aria`)},[m(`div`,ce,[U.value||F.value?.restartRequired?(p(),a(`div`,le,[U.value?(p(),a(`strong`,ue,_(r(o)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(p(),a(`span`,de,_(r(o)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),m(`section`,fe,[m(`header`,pe,[m(`div`,null,[m(`h3`,null,_(r(o)(`settings.resources.title`)),1),L.value?(p(),a(`p`,me,_(r(o)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),m(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:q},_(r(o)(`common.actions.refresh`)),9,he)]),H.value?(p(),a(`p`,ge,_(H.value),1)):L.value?(p(),a(l,{key:1},[m(`div`,_e,[m(`article`,null,[m(`span`,null,_(r(o)(`settings.resources.memory`)),1),m(`strong`,null,_(Z(L.value.memory.usedBytes)),1),m(`small`,null,_(r(o)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),m(`article`,null,[m(`span`,null,_(r(o)(`settings.resources.disk`)),1),m(`strong`,null,_(Z(L.value.disk.usedBytes)),1),m(`small`,null,_(r(o)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),m(`div`,ve,[m(`div`,ye,[m(`h4`,null,_(r(o)(`settings.resources.memory`)),1),(p(!0),a(l,null,f(L.value.memory.components,e=>(p(),a(`div`,{key:e.id,class:`resource-row`},[m(`div`,null,[m(`span`,null,_(X(e)),1),m(`strong`,null,_(Z(e.bytes)),1)]),m(`i`,null,[m(`b`,{style:c({width:Q(e.bytes,Pe.value)})},null,4)])]))),128))]),m(`div`,x,[m(`h4`,null,_(r(o)(`settings.resources.disk`)),1),(p(!0),a(l,null,f(L.value.disk.components,e=>(p(),a(`div`,{key:e.id,class:`resource-row`},[m(`div`,null,[m(`span`,null,_(X(e)),1),m(`strong`,null,_(Z(e.bytes)),1)]),m(`i`,null,[m(`b`,{style:c({width:Q(e.bytes,Fe.value)})},null,4)])]))),128))])]),m(`div`,S,[m(`span`,null,_(r(o)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(p(),a(`span`,C,_(r(o)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(p(),a(`span`,w,_(r(o)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):u(``,!0),m(`span`,null,_(r(o)(`settings.resources.exclusions`)),1)])],64)):(p(),a(`div`,T))]),I.value?(p(),a(`form`,{key:1,id:`settings-form`,class:`settings-form`,onSubmit:ee(Le,[`prevent`])},[m(`section`,E,[m(`header`,D,[m(`h3`,null,_(r(o)(`settings.ports.title`)),1),F.value?.restartRequired?(p(),a(`span`,O,_(r(o)(`settings.restartRequired`)),1)):u(``,!0)]),m(`div`,k,[m(`h4`,null,_(r(o)(`settings.ports.personal`)),1),m(`div`,A,[(p(),a(l,null,f(ke,e=>m(`label`,{key:e},[m(`span`,null,_(r(o)(`settings.ports.${e}`)),1),i(m(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,j),[[re,I.value.ports[e],void 0,{number:!0}]]),m(`small`,null,_(r(o)(`settings.ports.active`,{port:He(e)})),1)])),64))])]),m(`div`,M,[m(`div`,null,[m(`h4`,null,_(r(o)(`settings.ports.development`)),1),m(`span`,null,_(r(o)(`settings.ports.developing`)),1)]),m(`p`,null,_(r(o)(`settings.ports.developmentMeta`)),1)])]),m(`section`,N,[m(`h3`,null,_(r(o)(`settings.behavior.title`)),1),m(`div`,P,[m(`label`,be,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.capture`)),1),m(`small`,null,_(r(o)(`settings.behavior.captureMeta`)),1)]),m(`input`,{type:`checkbox`,role:`switch`,checked:Me.value,onChange:ze},null,40,xe)]),m(`label`,Se,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.agentAccess`)),1),m(`small`,null,_(r(o)(`settings.behavior.agentAccessMeta`)),1)]),m(`input`,{type:`checkbox`,role:`switch`,checked:Ne.value,onChange:Be},null,40,Ce)]),m(`label`,we,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.lanAccess`)),1),m(`small`,null,_(r(o)(`settings.behavior.lanAccessMeta`)),1)]),i(m(`input`,{"onUpdate:modelValue":t[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[ne,I.value.lanAccess]])]),m(`div`,Te,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.language`)),1)]),s(b,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ae.value,label:r(o)(`settings.behavior.language`),"onUpdate:modelValue":Ve},null,8,[`model-value`,`options`,`label`])]),m(`div`,Ee,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.resources.refresh`)),1)]),s(b,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:je.value,label:r(o)(`settings.resources.refresh`),"onUpdate:modelValue":Y},null,8,[`model-value`,`options`,`label`])])])]),V.value?(p(),a(`p`,De,_(V.value),1)):u(``,!0)],32)):R.value?u(``,!0):(p(),a(`p`,Oe,_(V.value||r(o)(`settings.loadError`)),1))])],8,se))}}),[[`__scopeId`,`data-v-f2c3482b`]]);export{F as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-CmCcDCAs.js","assets/i18n-CDxBs1sz.js","assets/console-DE40hXGC.js","assets/paths-DwHeiGMT.js","assets/vue-router-Drfl1F8i.js","assets/PersonalProfilePage-C42mwKN8.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/SearchableSelect-ih69qbcS.js","assets/KnowledgeInspector-DEW5lA1m.js","assets/identity-BCxb1mcy.js","assets/model-CCMdt10Q.js","assets/KnowledgeInspector-Bjhdu2mf.css","assets/PersonalProfilePage-CdmEzyvZ.css","assets/PersonalProjectsPage-BwaXR62K.js","assets/KnowledgeWorkspace-DyGtBz--.js","assets/useMinimumLoadingDisplay-HdI7XAmu.js","assets/useMinimumLoadingDisplay-BpCyBeko.css","assets/KnowledgeOrganizerPage-BkM568Ld.js","assets/KnowledgeOrganizerPage-Cx1w1jb2.css","assets/PublicProjectsPage-egKBulOq.js","assets/KnowledgePage-BAT4aZIm.js","assets/ReviewPage-B3vnZ6gn.js","assets/ConnectionsPage-DO0GR9Xg.js","assets/ConnectionsPage-CBHAdZXT.css","assets/SettingsPage-oLE8mNs5.js","assets/SettingsPage-C6ouU0sR.css","assets/AboutPage-qeO_vm0T.js","assets/fuli-logo-Bu9WBuQe.js","assets/AboutPage-DXh7Fwxt.css"])))=>i.map(i=>d[i]);
2
- import{$ as e,D as t,I as n,L as r,N as i,O as a,Q as o,_ as s,a as c,b as l,d as u,f as d,g as f,h as p,i as m,j as h,k as g,m as _,n as v,o as y,p as b,q as x,r as S,t as C,tt as w,x as T}from"./i18n-CDxBs1sz.js";import{s as E,t as ee}from"./console-DE40hXGC.js";import{g as D,n as te,t as ne}from"./paths-DwHeiGMT.js";import{i as O,n as k,r as A,t as j}from"./vue-router-Drfl1F8i.js";import{t as M}from"./fuli-logo-Bu9WBuQe.js";import{t as re}from"./_plugin-vue_export-helper-BDNMzG2s.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var N={name:`fuli-context`,version:`0.7.3`,description:`Local-first context graph for AI agents.`,type:`module`,files:[`README.zh-CN.md`,`npm-shrinkwrap.json`,`src/`,`dist/web/`,`docs/external-knowledge-architecture.md`,`examples/external-knowledge/markdown-folder.mjs`,`graph-provider/Dockerfile`,`graph-provider/pyproject.toml`,`graph-provider/fuli_graph/*.py`,`graph-provider/fuli_graph/**/*.py`,`skills/`,`compose.graphiti.yml`],bin:{fl:`src/cli.js`,fuli:`src/cli.js`},keywords:[`ai-agent`,`mcp`,`context`,`knowledge-graph`,`local-first`,`codex`,`claude-code`],scripts:{mcp:`node src/mcp-server.js`,dev:`run-p dev:server dev:web`,"dev:server":`node src/server.js`,"dev:web":`vite`,build:`run-s typecheck:web build:web`,"build:web":`vite build`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.app.json`,"test:node":`node --test`,"test:web":`vitest run --config vitest.config.ts`,"test:package":`node scripts/package-smoke.js`,"test:knowledge:live":`node acceptance/knowledge-live.js`,"test:external-knowledge:live":`node scripts/validate-external-knowledge-live.js`,start:`node src/server.js`,"graph:setup":`node src/graphiti/setup.js`,"graph:up":`docker compose -f compose.graphiti.yml up -d --build`,"graph:down":`docker compose -f compose.graphiti.yml down`,"test:structure":`node --test test/source-structure.test.js`,pretest:`npm run build:web`,test:`run-s typecheck:web test:node test:web`,prepack:`npm run build`,prepublishOnly:`npm test`},engines:{node:`>=24.12`},repository:{type:`git`,url:`git+https://github.com/JevonsCode/fuli.git`},homepage:`https://github.com/JevonsCode/fuli#readme`,bugs:{url:`https://github.com/JevonsCode/fuli/issues`},publishConfig:{access:`public`},license:`Apache-2.0`,dependencies:{"@hono/node-server":`2.0.12`,"@modelcontextprotocol/sdk":`^1.29.0`,zod:`^4.4.3`},devDependencies:{"@types/d3":`^7.4.3`,"@types/node":`^24.13.3`,"@vitejs/plugin-vue":`^6.0.8`,"@vue/test-utils":`^2.4.11`,"brace-expansion":`5.0.8`,d3:`^7.9.0`,gsap:`^3.15.0`,jsdom:`^29.1.1`,linkedom:`^0.18.12`,"npm-run-all2":`^9.0.2`,pinia:`^4.0.2`,typescript:`~6.0.0`,vite:`^8.1.5`,vitest:`^4.1.10`,vue:`^3.5.40`,"vue-i18n":`^11.4.8`,"vue-router":`^5.2.0`,"vue-tsc":`^3.3.8`},overrides:{"@modelcontextprotocol/sdk":{"@hono/node-server":`2.0.12`},"brace-expansion":`$brace-expansion`,"fast-uri":`3.1.4`}}.version,ie=[`aria-label`],ae={class:`brand-mark-wrap`},P=[`src`],F={class:`brand-copy`},I={class:`brand-title-row`},L={class:`brand-name`},R={class:`brand-version`},z={class:`brand-title-row`},B={class:`brand-name`},V={class:`brand-version`},H=re(T({__name:`BrandEasterEgg`,setup(n){let r=x(0),i=x(!1),l=x(!1),d=!1;function p(){r.value+=1,i.value=!0}function m(){i.value=!1}function h(){d=!1,l.value=!1}function v(e){e.key===`Tab`&&(d=!0)}function y(){l.value=d}function b(){l.value=!1}return a(()=>{window.addEventListener(`pointerdown`,h,!0),window.addEventListener(`keydown`,v,!0)}),t(()=>{window.removeEventListener(`pointerdown`,h,!0),window.removeEventListener(`keydown`,v,!0)}),(t,n)=>(g(),s(`button`,{class:e([`brand-block`,{"is-sparkling":i.value,"is-keyboard-focused":l.value}]),type:`button`,"aria-label":o(c)(`console.brandEffect.aria`),onClick:p,onFocus:y,onBlur:b},[_(`span`,ae,[_(`img`,{class:`brand-mark`,src:o(M),alt:``,"aria-hidden":`true`},null,8,P),i.value?(g(),s(`span`,{key:`orbit-${r.value}`,class:`brand-orbit`,"aria-hidden":`true`})):f(``,!0)]),_(`span`,F,[_(`span`,I,[_(`span`,L,w(o(c)(`common.brand`)),1),_(`span`,R,`v`+w(o(N)),1)]),n[0]||=_(`span`,{class:`brand-subtitle`},`Context Graph`,-1),i.value?(g(),s(`span`,{key:`copy-reflection-${r.value}`,class:`brand-copy-reflection`,"aria-hidden":`true`,onAnimationend:u(m,[`self`])},[_(`span`,z,[_(`span`,B,w(o(c)(`common.brand`)),1),_(`span`,V,`v`+w(o(N)),1)])],32)):f(``,!0)])],42,ie))}}),[[`__scopeId`,`data-v-efd904c7`]]),U=[`aria-label`],W=[`lang`,`aria-label`,`aria-pressed`,`onClick`],G=T({__name:`LocaleSwitcher`,setup(e){let t=b(()=>v()),n={"zh-CN":`中`,"en-US":`EN`};function r(e){e!==t.value&&m(e)}return(e,i)=>(g(),s(`div`,{class:`locale-switcher`,role:`group`,"aria-label":o(c)(`common.language.label`)},[(g(!0),s(d,null,h(o(C),e=>(g(),s(`button`,{key:e,type:`button`,lang:e,"aria-label":o(c)(e===`zh-CN`?`common.language.chinese`:`common.language.english`),"aria-pressed":t.value===e,onClick:t=>r(e)},w(n[e]),9,W))),128))],8,U))}}),K=[`routes.`,`common.`];function q(e,t=``){let n=typeof e==`string`&&e?e:t;return K.some(e=>n.startsWith(e))?c(n):n}function J(e){if(typeof document>`u`)return;let t=q(e,`routes.overview.title`);document.title=`${t} · ${c(`common.brand`)}`}var oe={class:`app-shell`},se={class:`sidebar`},ce=[`aria-label`],le={class:`nav-section-label`},ue={class:`nav-label`},de={class:`nav-section-label nav-space-label`},fe={class:`nav-copy`},pe={class:`nav-copy`},me={class:`nav-copy`},he={class:`nav-section-label nav-public-label`},ge={class:`nav-copy`},_e={class:`nav-section-label nav-tool-label`},ve={class:`nav-label`},ye={class:`nav-label`},be={class:`nav-label`},xe={class:`nav-section-label nav-about-label`},Se={class:`nav-label`},Ce={class:`nav-label`},we={class:`sidebar-foot`},Te=[`aria-label`],Ee={class:`runtime-status`},De={class:`runtime-status`},Oe={class:`workspace`},ke={class:`topbar`},Ae={class:`topbar-heading`},je={key:0,class:`eyebrow`},Y={key:1,class:`topbar-description`},Me={class:`topbar-actions`},Ne={key:0,class:`mode-chip`},Pe={key:1,class:`settings-save-button`,form:`settings-form`,type:`submit`},Fe=T({__name:`ConsoleLayout`,setup(t){let u=ee(),m=D(),h=b(()=>u.activePersonalSpace?.id??`current`),v=b(()=>te(h.value,`graph`)),y=b(()=>ne(`personal`,h.value,`directory`)),x=b(()=>q(m.meta.title,`routes.overview.title`)),S=b(()=>String(m.meta.eyebrow??`LOCAL + FEDERATED`)),C=b(()=>q(m.meta.description)),T=b(()=>u.publicRuntimeStatus===`ready`),E=b(()=>u.publicRuntimeStatus===`ready`?c(`console.services.publicReady`):u.publicRuntimeStatus===`error`?c(`console.services.publicError`):c(`console.services.publicOffline`)),O=b(()=>u.publicRuntimeStatus===`ready`?c(`console.services.publicAvailable`):u.publicRuntimeStatus===`error`?c(`console.services.localUnaffected`):c(`console.services.localOnly`)),A=b(()=>u.state?.capabilities?.browsePublicProjects!==!1),M=b(()=>{let e=u.state?.capabilities;return e?.submitKnowledge!==!1||e?.reviewProposals===!0});return a(()=>{u.runtimeStatus===`idle`&&u.refresh()}),n(()=>{J(m.meta.title)}),(t,n)=>(g(),s(`div`,oe,[_(`aside`,se,[l(H),_(`nav`,{class:`primary-nav`,"aria-label":o(c)(`console.navigation.aria`)},[_(`p`,le,w(o(c)(`console.navigation.workspace`)),1),l(o(j),{to:`/`,"exact-active-class":`is-active`},{default:r(()=>[n[2]||=_(`span`,{class:`nav-icon nav-icon-overview`,"aria-hidden":`true`},null,-1),_(`span`,ue,w(o(c)(`console.navigation.overview`)),1)]),_:1}),_(`p`,de,w(o(c)(`console.navigation.personalSpace`)),1),l(o(j),{class:`space-nav-button personal-profile-button`,to:`/preferences`,"active-class":`is-active`},{default:r(()=>[n[3]||=_(`span`,{class:`nav-icon nav-icon-personal-profile`,"aria-hidden":`true`},null,-1),_(`span`,fe,[_(`strong`,null,w(o(c)(`console.navigation.preferences`)),1),_(`small`,null,w(o(c)(`console.navigation.preferencesMeta`)),1)])]),_:1}),l(o(j),{class:`space-nav-button knowledge-organizer-button`,to:`/organize`,"active-class":`is-active`},{default:r(()=>[n[4]||=_(`span`,{class:`nav-icon nav-icon-knowledge-organizer`,"aria-hidden":`true`},null,-1),_(`span`,pe,[_(`strong`,null,w(o(c)(`console.navigation.organizer`)),1),_(`small`,null,w(o(c)(`console.navigation.organizerMeta`)),1)])]),_:1}),l(o(j),{class:`space-nav-button personal-space-button`,to:v.value,"active-class":`is-active`},{default:r(()=>[n[5]||=_(`span`,{class:`nav-icon nav-icon-personal-project`,"aria-hidden":`true`},null,-1),_(`span`,me,[_(`strong`,null,w(o(c)(`console.navigation.personalProjects`)),1),_(`small`,null,w(o(c)(`console.navigation.personalProjectsMeta`)),1)])]),_:1},8,[`to`]),A.value?(g(),s(d,{key:0},[_(`p`,he,w(o(c)(`console.navigation.publicSpace`)),1),l(o(j),{class:`space-nav-button public-space-button`,to:`/public-projects`,"active-class":`is-active`},{default:r(()=>[n[6]||=_(`span`,{class:`nav-icon nav-icon-public-project`,"aria-hidden":`true`},null,-1),_(`span`,ge,[_(`strong`,null,w(o(c)(`console.navigation.publicProjects`)),1),_(`small`,null,w(o(c)(`console.navigation.publicProjectsMeta`)),1)])]),_:1})],64)):f(``,!0),_(`p`,_e,w(o(c)(`console.navigation.governance`)),1),l(o(j),{to:y.value,"active-class":`is-active`},{default:r(()=>[n[7]||=_(`span`,{class:`nav-icon nav-icon-knowledge-graph`,"aria-hidden":`true`},null,-1),_(`span`,ve,w(o(c)(`console.navigation.knowledge`)),1)]),_:1},8,[`to`]),M.value?(g(),p(o(j),{key:1,to:`/review`,"active-class":`is-active`},{default:r(()=>[n[8]||=_(`span`,{class:`nav-icon nav-icon-review`,"aria-hidden":`true`},null,-1),_(`span`,ye,w(o(c)(`console.navigation.review`)),1)]),_:1})):f(``,!0),l(o(j),{to:`/connections`,"active-class":`is-active`},{default:r(()=>[n[9]||=_(`span`,{class:`nav-icon nav-icon-connections`,"aria-hidden":`true`},null,-1),_(`span`,be,w(o(c)(`console.navigation.connections`)),1)]),_:1}),_(`p`,xe,w(o(c)(`console.navigation.aboutSection`)),1),l(o(j),{to:`/settings`,"active-class":`is-active`},{default:r(()=>[n[10]||=_(`span`,{class:`nav-icon nav-icon-settings`,"aria-hidden":`true`},null,-1),_(`span`,Se,w(o(c)(`console.navigation.settings`)),1)]),_:1}),l(o(j),{to:`/about`,"active-class":`is-active`},{default:r(()=>[n[11]||=_(`span`,{class:`nav-icon nav-icon-about`,"aria-hidden":`true`},null,-1),_(`span`,Ce,w(o(c)(`console.navigation.about`)),1)]),_:1})],8,ce),_(`div`,we,[_(`div`,{class:`service-runtime-list`,"aria-label":o(c)(`console.services.aria`)},[_(`div`,Ee,[_(`span`,{class:e([`status-dot`,o(u).runtimeStatus])},null,2),_(`div`,null,[_(`strong`,null,w(o(u).runtimeStatus===`ready`?o(c)(`console.services.localReady`):o(u).runtimeStatus===`error`?o(c)(`console.services.localError`):o(c)(`console.services.localConnecting`)),1),n[12]||=_(`small`,null,`Graphiti / Neo4j`,-1)])]),_(`div`,De,[_(`span`,{class:e([`status-dot`,o(u).publicRuntimeStatus])},null,2),_(`div`,null,[_(`strong`,null,w(E.value),1),_(`small`,null,w(O.value),1)])])],8,Te)])]),_(`main`,Oe,[_(`header`,ke,[_(`div`,Ae,[S.value?(g(),s(`p`,je,w(S.value),1)):f(``,!0),_(`h2`,null,w(x.value),1),C.value?(g(),s(`p`,Y,w(C.value),1)):f(``,!0)]),_(`div`,Me,[T.value?(g(),s(`span`,Ne,w(o(c)(`console.publicReady`)),1)):f(``,!0),o(m).name===`settings`?(g(),s(`button`,Pe,w(o(c)(`settings.save`)),1)):f(``,!0),l(G),_(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=(...e)=>o(u).refresh&&o(u).refresh(...e)},w(o(c)(`common.actions.refresh`)),1)])]),o(u).feedback?(g(),s(`button`,{key:0,class:e([`feedback feedback-button`,{success:o(u).feedback.tone===`success`}]),type:`button`,"aria-live":`polite`,onClick:n[1]||=(...e)=>o(u).clearFeedback&&o(u).clearFeedback(...e)},w(o(u).feedback.message),3)):f(``,!0),l(o(k),null,{default:r(({Component:e})=>[(g(),p(i(e)))]),_:1})])]))}}),Ie=T({__name:`App`,setup(e){return(e,t)=>(g(),p(Fe))}}),Le=`modulepreload`,Re=function(e){return`/`+e},X={},Z=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Re(t,n),t=s(t),t in X)return;X[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Le,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Q=A({history:O(`/`),routes:[{path:`/`,name:`overview`,component:()=>Z(()=>import(`./OverviewPage-CmCcDCAs.js`),__vite__mapDeps([0,1,2,3,4])),meta:{eyebrow:``,title:`routes.overview.title`}},{path:`/preferences`,name:`personal-profile`,component:()=>Z(()=>import(`./PersonalProfilePage-C42mwKN8.js`),__vite__mapDeps([5,1,2,6,7,8,9,10,11,12])),meta:{eyebrow:`PERSONAL LENS`,title:`routes.preferences.title`,description:`routes.preferences.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode/:itemKind/:itemId`,name:`personal-project-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-BwaXR62K.js`),__vite__mapDeps([13,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/personal/:spaceId/projects/:mode/:itemKind/:itemId`,name:`personal-projects-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-BwaXR62K.js`),__vite__mapDeps([13,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:mode`,name:`personal-projects`,component:()=>Z(()=>import(`./PersonalProjectsPage-BwaXR62K.js`),__vite__mapDeps([13,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode`,name:`personal-project`,component:()=>Z(()=>import(`./PersonalProjectsPage-BwaXR62K.js`),__vite__mapDeps([13,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/organize`,name:`knowledge-organizer`,component:()=>Z(()=>import(`./KnowledgeOrganizerPage-BkM568Ld.js`),__vite__mapDeps([17,1,2,6,7,9,15,16,8,10,11,18])),meta:{eyebrow:`KNOWLEDGE CLASSIFICATION`,title:`routes.organizer.title`}},{path:`/public-projects`,name:`public-projects`,component:()=>Z(()=>import(`./PublicProjectsPage-egKBulOq.js`),__vite__mapDeps([19,1,2,3,7,9])),meta:{eyebrow:`PUBLIC PROJECTS`,title:`routes.publicProjects.title`,description:`routes.publicProjects.description`}},{path:`/knowledge`,name:`knowledge-default`,component:()=>Z(()=>import(`./KnowledgePage-BAT4aZIm.js`),__vite__mapDeps([20,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode/:itemKind/:itemId`,name:`project-knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-BAT4aZIm.js`),__vite__mapDeps([20,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode/:itemKind/:itemId`,name:`knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-BAT4aZIm.js`),__vite__mapDeps([20,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode`,name:`project-knowledge`,component:()=>Z(()=>import(`./KnowledgePage-BAT4aZIm.js`),__vite__mapDeps([20,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode`,name:`knowledge`,component:()=>Z(()=>import(`./KnowledgePage-BAT4aZIm.js`),__vite__mapDeps([20,1,14,2,3,4,7,9,15,6,16,8,10,11])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/review`,name:`review`,component:()=>Z(()=>import(`./ReviewPage-B3vnZ6gn.js`),__vite__mapDeps([21,1,2,7,9,10])),meta:{eyebrow:`REVIEW WORKSPACE`,title:`routes.review.title`,description:`routes.review.description`}},{path:`/connections`,name:`connections`,component:()=>Z(()=>import(`./ConnectionsPage-DO0GR9Xg.js`),__vite__mapDeps([22,1,2,6,7,9,23])),meta:{eyebrow:`SERVICE CONNECTIONS`,title:`routes.connections.title`,description:`routes.connections.description`}},{path:`/settings`,name:`settings`,component:()=>Z(()=>import(`./SettingsPage-oLE8mNs5.js`),__vite__mapDeps([24,1,2,6,7,25])),meta:{eyebrow:``,title:`routes.settings.title`}},{path:`/about`,name:`about`,component:()=>Z(()=>import(`./AboutPage-qeO_vm0T.js`),__vite__mapDeps([26,1,27,6,28])),meta:{eyebrow:`FULI`,title:`routes.about.title`}},{path:`/:pathMatch(.*)*`,redirect:`/`}],scrollBehavior:()=>({top:0})});Q.afterEach(e=>{J(e.meta.title)});var $=y(Ie);$.use(E()),$.use(S),$.use(Q),await Q.isReady(),$.mount(`#app`);
@@ -1 +0,0 @@
1
- import{w as e}from"./i18n-CDxBs1sz.js";function t(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function n(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&t(e.default)}var r=Object.assign;function i(e,t){let n={};for(let r in t){let i=t[r];n[r]=o(i)?i.map(e):e(i)}return n}var a=()=>{},o=Array.isArray;function s(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var c=Symbol(``);function l(e,t){return r(Error(),{type:e,[c]:!0},t)}function u(e,t){return e instanceof Error&&c in e&&(t==null||!!(e.type&t))}var d=Symbol(``),f=Symbol(``),p=Symbol(``),m=Symbol(``),h=Symbol(``);function g(){return e(p)}function _(t){return e(m)}function v(e){return encodeURIComponent(e)}function y(e,t=`graph`,n,r={}){return`${`/personal/${v(e)}/projects`}${n?`/${v(n)}`:``}/${t}${r.itemKind&&r.itemId?`/${r.itemKind}/${v(r.itemId)}`:``}`}function b(e,t,n=`directory`,r={}){return`${`/knowledge/${e}/${v(t)}`}${r.projectId?`/${v(r.projectId)}`:``}/${n}${r.itemKind&&r.itemId?`/${r.itemKind}/${v(r.itemId)}`:``}`}export{g as _,l as a,u as c,s as d,a as f,_ as g,h,r as i,t as l,p as m,y as n,o,m as p,i as r,n as s,b as t,d as u,f as v};
@@ -1 +0,0 @@
1
- import{D as e,F as t,K as n,_ as r,k as i,m as a,q as o,tt as s,v as c,x as l}from"./i18n-CDxBs1sz.js";import{t as u}from"./_plugin-vue_export-helper-BDNMzG2s.js";var d={class:`view-loading growth-loading`,role:`status`,"aria-live":`polite`,"aria-atomic":`true`},f={class:`growth-loading__content`},p={class:`growth-loading__label`},m=u(l({__name:`GrowthLoading`,props:{label:{}},setup(e){return(t,n)=>(i(),r(`div`,d,[a(`div`,f,[n[0]||=c(`<div class="growth-loading__chart" aria-hidden="true" data-v-f65da374><span class="growth-loading__bar growth-loading__bar--1" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--2" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--3" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--4" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--5" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__baseline" data-v-f65da374></span></div>`,1),a(`span`,p,s(e.label),1)])]))}}),[[`__scopeId`,`data-v-f65da374`]]),h=`testLoading`;function g(e=typeof window>`u`?``:window.location.search){return new URLSearchParams(e).get(h)===`1`}function _(r,i=500){let a=o(!1),s=0,c=null;function l(){c!==null&&(clearTimeout(c),c=null)}return t(r,e=>{if(l(),e){a.value||(s=Date.now()),a.value=!0;return}if(!a.value)return;let t=Math.max(0,i-(Date.now()-s));if(t===0){a.value=!1;return}c=setTimeout(()=>{c=null,a.value=!1},t)},{immediate:!0,flush:`sync`}),e(l),n(a)}export{_ as n,m as r,g as t};
@@ -1 +0,0 @@
1
- import{A as e,E as t,F as n,G as r,J as i,Q as a,S as o,Y as s,p as c,q as l,w as u,x as d}from"./i18n-CDxBs1sz.js";import{a as f,c as p,d as m,f as h,h as g,i as _,l as v,m as y,o as b,p as ee,r as x,s as te,u as S,v as C}from"./paths-DwHeiGMT.js";var w=typeof document<`u`,T=/#/g,ne=/&/g,re=/\//g,ie=/=/g,E=/\?/g,D=/\+/g,ae=/%5B/g,O=/%5D/g,oe=/%5E/g,k=/%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(ae,`[`).replace(O,`]`)}function ce(e){return N(e).replace(A,`{`).replace(j,`}`).replace(oe,`^`)}function P(e){return N(e).replace(D,`%2B`).replace(M,`+`).replace(T,`%23`).replace(ne,`%26`).replace(k,"`").replace(A,`{`).replace(j,`}`).replace(oe,`^`)}function F(e){return P(e).replace(ie,`%3D`)}function le(e){return N(e).replace(T,`%23`).replace(E,`%3F`)}function ue(e){return le(e).replace(re,`%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 b(e)?W(e,t):b(t)?W(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function W(e,t){return b(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(w){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(D,` `),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];b(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}(b(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]=b(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(f(4,{from:n,to:t})):e instanceof Error?c(e):ve(e)?c(f(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(v(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=te(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(_({},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,_({},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=_({},i.value,t.state,{forward:e,scroll:Z()});a(o.current,o,!0),a(e,_({},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=_({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=_({},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(b(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=b(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=_(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=m(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=m(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(_({},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)}:h}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 f(1,{location:e});s=i.record.name,a=_(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 f(1,{location:e,currentLocation:t});s=i.record.name,a=_({},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)=>_(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=u(y),n=u(ee),r=c(()=>{let n=a(e.to);return t.resolve(n)}),i=c(()=>{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}),o=c(()=>i.value>-1&&nt(n.params,r.value.params)),s=c(()=>i.value>-1&&i.value===n.matched.length-1&&H(n.params,r.value.params));function l(n={}){if(tt(n)){let n=t[a(e.replace)?`replace`:`push`](a(e.to)).catch(h);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:c(()=>r.value.href),isActive:o,isExactActive:s,navigate:l}}function $e(e){return e.length===1?e[0]:e}var et=d({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 n=r(Qe(e)),{options:i}=u(y),a=c(()=>({[it(e.activeClass,i.linkActiveClass,`router-link-active`)]:n.isActive,[it(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&$e(t.default(n));return e.custom?r:o(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},r)}}});function tt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!b(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=d({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(t,{attrs:r,slots:i}){let s=u(g),d=c(()=>t.route||s.value),f=u(C,0),p=c(()=>{let e=a(f),{matched:t}=d.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),m=c(()=>d.value.matched[p.value]);e(C,c(()=>p.value+1)),e(S,m),e(g,d);let h=l();return n(()=>[h.value,m.value,t.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 e=d.value,n=t.name,a=m.value,s=a&&a.components[n];if(!s)return ot(i.default,{Component:s,route:e});let c=a.props[n],l=o(s,_({},c?c===!0?e.params:typeof c==`function`?c(e):c:null,r,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[n]=null)},ref:h}));return ot(i.default,{Component:l,route:e})||l}}});function ot(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var st=at;function ct(e){let n=Ue(e.routes,e),r=e.parseQuery||be,o=e.stringifyQuery||xe,c=e.history,l=Q(),u=Q(),d=Q(),m=s(K),v=K;w&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let te=x.bind(null,e=>``+e),S=x.bind(null,ue),C=x.bind(null,I);function T(e,t){let r,i;return ye(e)?(r=n.getRecordMatcher(e),i=t):i=e,n.addRoute(i,r)}function ne(e){let t=n.getRecordMatcher(e);t&&n.removeRoute(t)}function re(){return n.getRoutes().map(e=>e.record)}function ie(e){return!!n.getRecordMatcher(e)}function E(e,t){if(t=_({},t||m.value),typeof e==`string`){let i=z(r,e,t.path),a=n.resolve({path:i.path},t),o=c.createHref(i.fullPath);return _(i,a,{params:C(a.params),redirectedFrom:void 0,href:o})}let i;if(e.path!=null)i=_({},e,{path:z(r,e.path,t.path).path});else{let n=_({},e.params);for(let e in n)n[e]??delete n[e];i=_({},e,{params:S(n)}),t.params=S(t.params)}let a=n.resolve(i,t),s=e.hash||``;a.params=te(C(a.params));let l=de(o,_({},e,{hash:ce(s),path:a.path})),u=c.createHref(l);return _({fullPath:l,hash:s,query:o===xe?Se(e.query):e.query||{}},a,{redirectedFrom:void 0,href:u})}function D(e){return typeof e==`string`?z(r,e,m.value.path):_({},e)}function ae(e,t){if(v!==e)return f(8,{from:t,to:e})}function O(e){return A(e)}function oe(e){return O(_(D(e),{replace:!0}))}function k(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=D(i):{path:i},i.params={}),_({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function A(e,t){let n=v=E(e),r=m.value,i=e.state,a=e.force,s=e.replace===!0,c=k(n,r);if(c)return A(_(D(c),{state:typeof c==`object`?_({},i,c.state):i,force:a,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!a&&fe(o,r,n)&&(u=f(16,{to:l,from:r}),W(r,r,!0,!1)),(u?Promise.resolve(u):M(l,r)).catch(e=>p(e)?p(e,2)?e:U(e):V(e,l,r)).then(e=>{if(e){if(p(e,2))return A(_({replace:s},D(e.to),{state:typeof e.to==`object`?_({},i,e.to.state):i,force:a}),t||l)}else e=P(l,r,!0,s,i);return N(l,r,e),e})}function se(e,t){let n=ae(e,t);return n?Promise.reject(n):Promise.resolve()}function j(e){let t=J.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function M(e,t){let n,[r,i,a]=we(e,t);n=Ce(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let o=se.bind(null,e,t);return n.push(o),X(n).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(o),X(n)}).then(()=>{n=Ce(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(o),X(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(b(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(o),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(o),X(n))).then(()=>{n=[];for(let r of u.list())n.push($(r,e,t));return n.push(o),X(n)}).catch(e=>p(e,8)?e:Promise.reject(e))}function N(e,t,n){d.list().forEach(r=>j(()=>r(e,t,n)))}function P(e,t,n,r,i){let a=ae(e,t);if(a)return a;let o=t===K,s=w?history.state:{};n&&(r||o?c.replace(e.fullPath,_({scroll:o&&s&&s.scroll},i)):c.push(e.fullPath,i)),m.value=e,W(e,t,n,o),U()}let F;function le(){F||=c.listen((e,t,n)=>{if(!Y.listening)return;let r=E(e),i=k(r,Y.currentRoute.value);if(i){A(_(i,{replace:!0,force:!0}),r).catch(h);return}v=r;let a=m.value;w&&ge(me(a.fullPath,n.delta),Z()),M(r,a).catch(e=>p(e,12)?e:p(e,2)?(A(_(D(e.to),{force:!0}),r).then(e=>{p(e,20)&&!n.delta&&n.type===`pop`&&c.go(-1,!1)}).catch(h),Promise.reject()):(n.delta&&c.go(-n.delta,!1),V(e,r,a))).then(e=>{e||=P(r,a,!1),e&&(n.delta&&!p(e,8)?c.go(-n.delta,!1):n.type===`pop`&&p(e,20)&&c.go(-1,!1)),N(r,a,e)}).catch(h)})}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&&m.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(n,r,i,a){let{scrollBehavior:o}=e;if(!w||!o)return Promise.resolve();let s=!i&&_e(me(n.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return t().then(()=>o(n,r,s)).then(e=>n===m.value&&e&&pe(e)).catch(e=>n===m.value&&V(e,n,r))}let G=e=>c.go(e),q,J=new Set,Y={currentRoute:m,listening:!0,addRoute:T,removeRoute:ne,clearRoutes:n.clearRoutes,hasRoute:ie,getRoutes:re,resolve:E,options:e,push:O,replace:oe,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:l.add,beforeResolve:u.add,afterEach:d.add,onError:R.add,isReady:H,install(e){e.component(`RouterLink`,et),e.component(`RouterView`,st),e.config.globalProperties.$router=Y,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>a(m)}),w&&!q&&m.value===K&&(q=!0,O(c.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>m.value[e],enumerable:!0});e.provide(y,Y),e.provide(ee,i(t)),e.provide(g,m);let n=e.unmount;J.add(e),e.unmount=function(){J.delete(e),J.size<1&&(v=K,F&&F(),F=null,m.value=K,q=!1,B=!1),n()}}};function X(e){return e.reduce((e,t)=>e.then(()=>j(t)),Promise.resolve())}return Y}export{Ae as i,st as n,ct as r,et as t};