From 0fc66be491b01023428413ff71f58870b58dce39 Mon Sep 17 00:00:00 2001 From: sheepbox8646 Date: Sun, 15 Feb 2026 13:33:48 +0000 Subject: [PATCH] deploy: 299e9f2001aaa77e56c97e0fb9f6878c6a42ae56 --- 404.html | 4 +-- assets/{app.BCeoDn-v.js => app.GclA5Rgp.js} | 2 +- .../chunks/@localSearchIndexroot.CVEXjrNv.js | 1 - .../chunks/@localSearchIndexroot.DEoGPlWF.js | 1 + ...vgDWgJ.js => VPLocalSearchBox.xTrNHbjP.js} | 2 +- .../{theme.Bxi9Rr1a.js => theme.DcdcgJt5.js} | 4 +-- ...ncepts_identity-and-binding.md.Dqnt6wsW.js | 1 - ...s_identity-and-binding.md.Dqnt6wsW.lean.js | 1 - assets/concepts_index.md.CxGkiYqO.js | 1 - assets/concepts_index.md.CxGkiYqO.lean.js | 1 - assets/getting-started.md.B026JaLd.js | 1 + assets/getting-started.md.B026JaLd.lean.js | 1 + assets/getting-started.md.DF97X5A_.js | 1 - assets/getting-started.md.DF97X5A_.lean.js | 1 - ...-started_provider-and-model.md.Ix_AFx48.js | 1 + ...ted_provider-and-model.md.Ix_AFx48.lean.js | 1 + assets/index.md.BxPQTo9L.js | 1 + assets/index.md.BxPQTo9L.lean.js | 1 + assets/index.md.XthB7km1.js | 1 - assets/index.md.XthB7km1.lean.js | 1 - assets/style_terminology.md.zpSWt3dU.js | 1 - assets/style_terminology.md.zpSWt3dU.lean.js | 1 - cli/auth.html | 8 +++--- cli/bot.html | 8 +++--- cli/channel.html | 8 +++--- cli/chat.html | 10 +++---- cli/config.html | 8 +++--- cli/index.html | 10 +++---- cli/model.html | 8 +++--- cli/provider.html | 8 +++--- cli/schedule.html | 8 +++--- concepts/identity-and-binding.html | 26 ------------------ concepts/index.html | 26 ------------------ getting-started.html | 12 ++++---- getting-started/provider-and-model.html | 26 ++++++++++++++++++ getting-started/provider-model-01-sidebar.png | Bin 0 -> 43437 bytes .../provider-model-02-add-provider.png | Bin 0 -> 21878 bytes .../provider-model-03-provider-dialog.png | Bin 0 -> 52888 bytes .../provider-model-04-provider-selected.png | Bin 0 -> 67344 bytes hashmap.json | 2 +- index.html | 10 +++---- installation/config-toml.html | 10 +++---- installation/docker.html | 10 +++---- style/terminology.html | 26 ------------------ troubleshooting.html | 8 +++--- zh/concepts/identity-and-binding.html | 8 +++--- zh/concepts/index.html | 8 +++--- zh/index.html | 8 +++--- zh/style/terminology.html | 8 +++--- 49 files changed, 119 insertions(+), 175 deletions(-) rename assets/{app.BCeoDn-v.js => app.GclA5Rgp.js} (95%) delete mode 100644 assets/chunks/@localSearchIndexroot.CVEXjrNv.js create mode 100644 assets/chunks/@localSearchIndexroot.DEoGPlWF.js rename assets/chunks/{VPLocalSearchBox.CrvgDWgJ.js => VPLocalSearchBox.xTrNHbjP.js} (99%) rename assets/chunks/{theme.Bxi9Rr1a.js => theme.DcdcgJt5.js} (99%) delete mode 100644 assets/concepts_identity-and-binding.md.Dqnt6wsW.js delete mode 100644 assets/concepts_identity-and-binding.md.Dqnt6wsW.lean.js delete mode 100644 assets/concepts_index.md.CxGkiYqO.js delete mode 100644 assets/concepts_index.md.CxGkiYqO.lean.js create mode 100644 assets/getting-started.md.B026JaLd.js create mode 100644 assets/getting-started.md.B026JaLd.lean.js delete mode 100644 assets/getting-started.md.DF97X5A_.js delete mode 100644 assets/getting-started.md.DF97X5A_.lean.js create mode 100644 assets/getting-started_provider-and-model.md.Ix_AFx48.js create mode 100644 assets/getting-started_provider-and-model.md.Ix_AFx48.lean.js create mode 100644 assets/index.md.BxPQTo9L.js create mode 100644 assets/index.md.BxPQTo9L.lean.js delete mode 100644 assets/index.md.XthB7km1.js delete mode 100644 assets/index.md.XthB7km1.lean.js delete mode 100644 assets/style_terminology.md.zpSWt3dU.js delete mode 100644 assets/style_terminology.md.zpSWt3dU.lean.js delete mode 100644 concepts/identity-and-binding.html delete mode 100644 concepts/index.html create mode 100644 getting-started/provider-and-model.html create mode 100644 getting-started/provider-model-01-sidebar.png create mode 100644 getting-started/provider-model-02-add-provider.png create mode 100644 getting-started/provider-model-03-provider-dialog.png create mode 100644 getting-started/provider-model-04-provider-selected.png delete mode 100644 style/terminology.html diff --git a/404.html b/404.html index e424b8de..1fd85dfd 100644 --- a/404.html +++ b/404.html @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@
- + \ No newline at end of file diff --git a/assets/app.BCeoDn-v.js b/assets/app.GclA5Rgp.js similarity index 95% rename from assets/app.BCeoDn-v.js rename to assets/app.GclA5Rgp.js index 9181440b..beebf914 100644 --- a/assets/app.BCeoDn-v.js +++ b/assets/app.GclA5Rgp.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.Bxi9Rr1a.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.DEqXEGcv.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; +import{t as p}from"./chunks/theme.DcdcgJt5.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.DEqXEGcv.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/assets/chunks/@localSearchIndexroot.CVEXjrNv.js b/assets/chunks/@localSearchIndexroot.CVEXjrNv.js deleted file mode 100644 index 1feddaa6..00000000 --- a/assets/chunks/@localSearchIndexroot.CVEXjrNv.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":110,"nextId":110,"documentIds":{"0":"/cli/auth.html#auth-commands","1":"/cli/auth.html#login","2":"/cli/auth.html#logout","3":"/cli/auth.html#whoami","4":"/cli/bot.html#bot-commands","5":"/cli/bot.html#bot-list","6":"/cli/bot.html#bot-create","7":"/cli/bot.html#bot-update","8":"/cli/bot.html#bot-delete","9":"/cli/bot.html#bot-chat","10":"/cli/bot.html#bot-set-model","11":"/cli/channel.html#channel-commands","12":"/cli/channel.html#channel-list","13":"/cli/channel.html#channel-info","14":"/cli/channel.html#channel-config-get","15":"/cli/channel.html#channel-config-set","16":"/cli/channel.html#channel-bind-get","17":"/cli/channel.html#channel-bind-set","18":"/cli/chat.html#chat-commands","19":"/cli/chat.html#default-interactive-chat","20":"/cli/chat.html#tui","21":"/cli/chat.html#version","22":"/cli/config.html#config-commands","23":"/cli/config.html#config","24":"/cli/config.html#config-set","25":"/cli/#memoh-cli","26":"/cli/#installation","27":"/cli/#configuration","28":"/cli/#commands","29":"/cli/model.html#model-commands","30":"/cli/model.html#model-list","31":"/cli/model.html#model-create","32":"/cli/model.html#model-delete","33":"/cli/provider.html#provider-commands","34":"/cli/provider.html#provider-list","35":"/cli/provider.html#provider-create","36":"/cli/provider.html#provider-delete","37":"/cli/schedule.html#schedule-commands","38":"/cli/schedule.html#schedule-list","39":"/cli/schedule.html#schedule-get","40":"/cli/schedule.html#schedule-create","41":"/cli/schedule.html#schedule-update","42":"/cli/schedule.html#schedule-toggle","43":"/cli/schedule.html#schedule-delete","44":"/concepts/identity-and-binding.html#accounts-and-linking","45":"/concepts/identity-and-binding.html#account-model","46":"/concepts/identity-and-binding.html#access-platform-and-bot","47":"/concepts/identity-and-binding.html#why-linking-is-account-scoped","48":"/concepts/identity-and-binding.html#linking-flow-current-consensus","49":"/concepts/identity-and-binding.html#bot-type-semantics","50":"/concepts/#core-concepts","51":"/concepts/#concept-map","52":"/concepts/#why-this-matters","53":"/concepts/#in-this-chapter","54":"/#memoh-documentation","55":"/#documentation","56":"/#for-contributors","57":"/getting-started.html#getting-started","58":"/getting-started.html#what-is-memoh","59":"/getting-started.html#key-features","60":"/getting-started.html#multi-bot-management","61":"/getting-started.html#containerized-isolation","62":"/getting-started.html#memory-engineering","63":"/getting-started.html#multi-platform-support","64":"/getting-started.html#agent-capabilities","65":"/getting-started.html#multi-llm-provider-support","66":"/getting-started.html#mcp-protocol-support","67":"/getting-started.html#scheduled-tasks","68":"/getting-started.html#graphical-configuration","69":"/getting-started.html#cli-tool","70":"/getting-started.html#installation","71":"/installation/config-toml.html#config-toml-reference","72":"/installation/config-toml.html#full-example","73":"/installation/config-toml.html#section-reference","74":"/installation/config-toml.html#log","75":"/installation/config-toml.html#server","76":"/installation/config-toml.html#admin","77":"/installation/config-toml.html#auth","78":"/installation/config-toml.html#containerd","79":"/installation/config-toml.html#mcp","80":"/installation/config-toml.html#postgres","81":"/installation/config-toml.html#qdrant","82":"/installation/config-toml.html#agent-gateway","83":"/installation/config-toml.html#web","84":"/installation/config-toml.html#brave","85":"/style/terminology.html#terminology-rules","86":"/style/terminology.html#canonical-terms","87":"/style/terminology.html#preferred-wording","88":"/style/terminology.html#disallowed-or-discouraged-terms","89":"/style/terminology.html#example-sentences","90":"/style/terminology.html#contributor-checklist","91":"/installation/docker.html#docker-installation","92":"/installation/docker.html#prerequisites","93":"/installation/docker.html#one-click-install","94":"/installation/docker.html#manual-install","95":"/installation/docker.html#access-points","96":"/installation/docker.html#custom-configuration","97":"/installation/docker.html#common-commands","98":"/installation/docker.html#production-checklist","99":"/installation/docker.html#troubleshooting","100":"/installation/docker.html#security-warnings","101":"/troubleshooting.html#troubleshooting","102":"/troubleshooting.html#mcp-container-no-running-task-found-task-mcp-xxx-not-found","103":"/troubleshooting.html#symptom","104":"/troubleshooting.html#cause","105":"/troubleshooting.html#solution","106":"/troubleshooting.html#mcp-container-image-update-not-taking-effect-after-rebuild","107":"/troubleshooting.html#symptom-1","108":"/troubleshooting.html#cause-1","109":"/troubleshooting.html#solution-1"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,1],"1":[1,2,25],"2":[1,2,10],"3":[1,2,23],"4":[2,1,7],"5":[2,2,23],"6":[2,2,29],"7":[2,2,31],"8":[2,2,10],"9":[2,2,19],"10":[3,2,26],"11":[2,1,8],"12":[2,2,12],"13":[2,2,20],"14":[3,2,18],"15":[3,2,36],"16":[3,2,21],"17":[3,2,30],"18":[2,1,1],"19":[3,2,46],"20":[1,2,29],"21":[1,2,6],"22":[2,1,18],"23":[1,2,16],"24":[2,2,39],"25":[2,1,28],"26":[1,2,56],"27":[1,2,20],"28":[1,2,61],"29":[2,1,6],"30":[2,2,14],"31":[2,2,48],"32":[2,2,13],"33":[2,1,8],"34":[2,2,21],"35":[2,2,50],"36":[2,2,13],"37":[2,1,18],"38":[2,2,12],"39":[2,2,11],"40":[2,2,51],"41":[2,2,32],"42":[2,2,14],"43":[2,2,9],"44":[3,1,1],"45":[2,3,43],"46":[4,3,27],"47":[5,3,32],"48":[5,3,32],"49":[3,3,36],"50":[2,1,13],"51":[2,2,37],"52":[3,2,51],"53":[3,2,4],"54":[2,1,45],"55":[1,2,33],"56":[2,2,6],"57":[2,1,1],"58":[4,2,50],"59":[2,2,1],"60":[3,4,29],"61":[2,4,33],"62":[2,4,51],"63":[3,4,31],"64":[2,4,57],"65":[4,4,23],"66":[3,4,23],"67":[2,4,22],"68":[2,4,27],"69":[2,4,24],"70":[1,2,35],"71":[3,1,29],"72":[2,3,82],"73":[2,3,1],"74":[2,4,17],"75":[2,4,24],"76":[2,4,18],"77":[2,4,30],"78":[2,4,20],"79":[2,4,44],"80":[2,4,30],"81":[2,4,34],"82":[3,4,34],"83":[2,4,17],"84":[2,4,32],"85":[2,1,17],"86":[2,2,42],"87":[2,2,32],"88":[4,2,32],"89":[2,2,22],"90":[2,2,25],"91":[2,1,42],"92":[1,2,5],"93":[3,2,73],"94":[2,2,44],"95":[2,2,31],"96":[2,2,65],"97":[2,2,18],"98":[2,2,40],"99":[1,2,21],"100":[2,2,27],"101":[1,1,1],"102":[9,1,1],"103":[1,10,46],"104":[1,10,65],"105":[1,10,56],"106":[9,1,1],"107":[1,10,33],"108":[1,10,44],"109":[1,10,55]},"averageFieldLength":[2.2181818181818174,2.7090909090909103,27.327272727272735],"storedFields":{"0":{"title":"Auth Commands","titles":[]},"1":{"title":"login","titles":["Auth Commands"]},"2":{"title":"logout","titles":["Auth Commands"]},"3":{"title":"whoami","titles":["Auth Commands"]},"4":{"title":"Bot Commands","titles":[]},"5":{"title":"bot list","titles":["Bot Commands"]},"6":{"title":"bot create","titles":["Bot Commands"]},"7":{"title":"bot update","titles":["Bot Commands"]},"8":{"title":"bot delete","titles":["Bot Commands"]},"9":{"title":"bot chat","titles":["Bot Commands"]},"10":{"title":"bot set-model","titles":["Bot Commands"]},"11":{"title":"Channel Commands","titles":[]},"12":{"title":"channel list","titles":["Channel Commands"]},"13":{"title":"channel info","titles":["Channel Commands"]},"14":{"title":"channel config get","titles":["Channel Commands"]},"15":{"title":"channel config set","titles":["Channel Commands"]},"16":{"title":"channel bind get","titles":["Channel Commands"]},"17":{"title":"channel bind set","titles":["Channel Commands"]},"18":{"title":"Chat Commands","titles":[]},"19":{"title":"Default: Interactive Chat","titles":["Chat Commands"]},"20":{"title":"tui","titles":["Chat Commands"]},"21":{"title":"version","titles":["Chat Commands"]},"22":{"title":"Config Commands","titles":[]},"23":{"title":"config","titles":["Config Commands"]},"24":{"title":"config set","titles":["Config Commands"]},"25":{"title":"Memoh CLI","titles":[]},"26":{"title":"Installation","titles":["Memoh CLI"]},"27":{"title":"Configuration","titles":["Memoh CLI"]},"28":{"title":"Commands","titles":["Memoh CLI"]},"29":{"title":"Model Commands","titles":[]},"30":{"title":"model list","titles":["Model Commands"]},"31":{"title":"model create","titles":["Model Commands"]},"32":{"title":"model delete","titles":["Model Commands"]},"33":{"title":"Provider Commands","titles":[]},"34":{"title":"provider list","titles":["Provider Commands"]},"35":{"title":"provider create","titles":["Provider Commands"]},"36":{"title":"provider delete","titles":["Provider Commands"]},"37":{"title":"Schedule Commands","titles":[]},"38":{"title":"schedule list","titles":["Schedule Commands"]},"39":{"title":"schedule get","titles":["Schedule Commands"]},"40":{"title":"schedule create","titles":["Schedule Commands"]},"41":{"title":"schedule update","titles":["Schedule Commands"]},"42":{"title":"schedule toggle","titles":["Schedule Commands"]},"43":{"title":"schedule delete","titles":["Schedule Commands"]},"44":{"title":"Accounts and Linking","titles":[]},"45":{"title":"Account Model","titles":["Accounts and Linking"]},"46":{"title":"Access Platform and Bot","titles":["Accounts and Linking"]},"47":{"title":"Why Linking Is Account-Scoped","titles":["Accounts and Linking"]},"48":{"title":"Linking Flow (Current Consensus)","titles":["Accounts and Linking"]},"49":{"title":"Bot Type Semantics","titles":["Accounts and Linking"]},"50":{"title":"Core Concepts","titles":[]},"51":{"title":"Concept Map","titles":["Core Concepts"]},"52":{"title":"Why This Matters","titles":["Core Concepts"]},"53":{"title":"In This Chapter","titles":["Core Concepts"]},"54":{"title":"Memoh Documentation","titles":[]},"55":{"title":"Documentation","titles":["Memoh Documentation"]},"56":{"title":"For Contributors","titles":["Memoh Documentation"]},"57":{"title":"Getting Started","titles":[]},"58":{"title":"What is Memoh?","titles":["Getting Started"]},"59":{"title":"Key Features","titles":["Getting Started"]},"60":{"title":"Multi-Bot Management","titles":["Getting Started","Key Features"]},"61":{"title":"Containerized Isolation","titles":["Getting Started","Key Features"]},"62":{"title":"Memory Engineering","titles":["Getting Started","Key Features"]},"63":{"title":"Multi-Platform Support","titles":["Getting Started","Key Features"]},"64":{"title":"Agent Capabilities","titles":["Getting Started","Key Features"]},"65":{"title":"Multi-LLM Provider Support","titles":["Getting Started","Key Features"]},"66":{"title":"MCP Protocol Support","titles":["Getting Started","Key Features"]},"67":{"title":"Scheduled Tasks","titles":["Getting Started","Key Features"]},"68":{"title":"Graphical Configuration","titles":["Getting Started","Key Features"]},"69":{"title":"CLI Tool","titles":["Getting Started","Key Features"]},"70":{"title":"Installation","titles":["Getting Started"]},"71":{"title":"config.toml Reference","titles":[]},"72":{"title":"Full Example","titles":["config.toml Reference"]},"73":{"title":"Section Reference","titles":["config.toml Reference"]},"74":{"title":"[log]","titles":["config.toml Reference","Section Reference"]},"75":{"title":"[server]","titles":["config.toml Reference","Section Reference"]},"76":{"title":"[admin]","titles":["config.toml Reference","Section Reference"]},"77":{"title":"[auth]","titles":["config.toml Reference","Section Reference"]},"78":{"title":"[containerd]","titles":["config.toml Reference","Section Reference"]},"79":{"title":"[mcp]","titles":["config.toml Reference","Section Reference"]},"80":{"title":"[postgres]","titles":["config.toml Reference","Section Reference"]},"81":{"title":"[qdrant]","titles":["config.toml Reference","Section Reference"]},"82":{"title":"[agent_gateway]","titles":["config.toml Reference","Section Reference"]},"83":{"title":"[web]","titles":["config.toml Reference","Section Reference"]},"84":{"title":"[brave]","titles":["config.toml Reference","Section Reference"]},"85":{"title":"Terminology Rules","titles":[]},"86":{"title":"Canonical Terms","titles":["Terminology Rules"]},"87":{"title":"Preferred Wording","titles":["Terminology Rules"]},"88":{"title":"Disallowed or Discouraged Terms","titles":["Terminology Rules"]},"89":{"title":"Example Sentences","titles":["Terminology Rules"]},"90":{"title":"Contributor Checklist","titles":["Terminology Rules"]},"91":{"title":"Docker Installation","titles":[]},"92":{"title":"Prerequisites","titles":["Docker Installation"]},"93":{"title":"One-Click Install","titles":["Docker Installation"]},"94":{"title":"Manual Install","titles":["Docker Installation"]},"95":{"title":"Access Points","titles":["Docker Installation"]},"96":{"title":"Custom Configuration","titles":["Docker Installation"]},"97":{"title":"Common Commands","titles":["Docker Installation"]},"98":{"title":"Production Checklist","titles":["Docker Installation"]},"99":{"title":"Troubleshooting","titles":["Docker Installation"]},"100":{"title":"Security Warnings","titles":["Docker Installation"]},"101":{"title":"Troubleshooting","titles":[]},"102":{"title":"MCP Container: no running task found: task mcp-xxx not found","titles":["Troubleshooting"]},"103":{"title":"Symptom","titles":["Troubleshooting","MCP Container: no running task found: task mcp-xxx not found"]},"104":{"title":"Cause","titles":["Troubleshooting","MCP Container: no running task found: task mcp-xxx not found"]},"105":{"title":"Solution","titles":["Troubleshooting","MCP Container: no running task found: task mcp-xxx not found"]},"106":{"title":"MCP Container: Image update not taking effect after rebuild","titles":["Troubleshooting"]},"107":{"title":"Symptom","titles":["Troubleshooting","MCP Container: Image update not taking effect after rebuild"]},"108":{"title":"Cause","titles":["Troubleshooting","MCP Container: Image update not taking effect after rebuild"]},"109":{"title":"Solution","titles":["Troubleshooting","MCP Container: Image update not taking effect after rebuild"]}},"dirtCount":0,"index":[["$path",{"2":{"107":1}}],["2",{"2":{"95":1}}],["24h",{"2":{"77":2}}],["24",{"2":{"62":1}}],["yml",{"2":{"98":1,"105":1}}],["y",{"2":{"93":1}}],["your",{"2":{"19":1,"26":1,"54":1,"58":1,"68":1,"72":3,"91":1,"96":2,"105":2}}],["you",{"2":{"19":1,"58":1,"71":1,"91":1,"100":1,"104":2,"105":1}}],["|",{"2":{"93":2}}],["7",{"2":{"77":1}}],["8082",{"2":{"72":1,"83":1,"95":1}}],["8081",{"2":{"72":1,"82":1,"95":1}}],["8080",{"2":{"23":1,"24":2,"26":1,"72":1,"75":3,"95":1}}],["6334",{"2":{"72":1,"81":1}}],["5432",{"2":{"72":1,"80":1}}],["qwen",{"2":{"65":1}}],["qdrant",{"0":{"81":1},"2":{"62":1,"70":1,"72":1,"81":2,"91":1,"98":1}}],["quoting",{"2":{"88":1}}],["quot",{"2":{"52":2,"74":4,"75":2,"76":2,"77":6,"78":4,"79":8,"80":8,"81":6,"82":4,"83":2,"84":4,"87":8,"89":6,"90":6}}],["quit",{"2":{"9":1,"19":1}}],["kept",{"2":{"90":1}}],["keeping",{"2":{"52":1}}],["keep",{"2":{"52":1,"62":1,"87":1,"105":1}}],["keeps",{"2":{"47":1}}],["keyword",{"2":{"62":1}}],["key",{"0":{"59":1},"1":{"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1},"2":{"15":3,"35":3,"55":1,"62":1,"72":2,"81":2,"84":3}}],["9am",{"2":{"40":1}}],["9",{"2":{"40":1}}],["xxx",{"0":{"102":1},"1":{"103":1,"104":1,"105":1},"2":{"103":1,"104":1}}],["x26",{"2":{"99":2}}],["xai",{"2":{"35":1,"65":1}}],["x3c",{"2":{"19":1,"20":1,"32":1,"36":1,"38":1,"39":2,"40":1,"41":2,"42":2,"43":2,"105":1}}],["32",{"2":{"72":1,"77":1,"96":1}}],["3",{"2":{"31":2}}],["hours",{"2":{"62":1}}],["host",{"2":{"23":2,"24":6,"26":1,"27":1,"28":1,"70":1,"72":3,"75":1,"79":1,"80":2,"82":3,"83":2,"91":1,"96":1,"104":2}}],["humans",{"2":{"60":1}}],["have",{"2":{"66":1}}],["having",{"2":{"58":1}}],["has",{"2":{"58":1}}],["handled",{"2":{"48":1}}],["here",{"2":{"49":1}}],["help",{"2":{"26":2}}],["http",{"2":{"35":1,"66":1,"72":1,"75":1,"81":2,"95":3}}],["https",{"2":{"26":1,"72":1,"84":1,"93":2,"94":1,"98":1,"100":1}}],["10",{"2":{"72":1,"81":1}}],["100",{"2":{"24":1}}],["11434",{"2":{"35":1}}],["1536",{"2":{"31":1}}],["168h",{"2":{"72":1,"77":1}}],["168",{"2":{"24":1}}],["192",{"2":{"24":1}}],["1",{"2":{"23":1,"24":2,"26":1,"72":4,"80":1,"81":1,"82":1,"83":1,"95":1}}],["127",{"2":{"23":1,"24":1,"26":1,"72":4,"80":1,"81":1,"82":1,"83":1}}],["0",{"2":{"23":2,"24":2,"26":2,"40":1,"72":8,"80":2,"81":2,"82":2,"83":2}}],["=",{"2":{"23":2,"72":30,"103":2,"105":1}}],["volume",{"2":{"104":1,"108":1}}],["validate",{"2":{"99":1}}],["validates",{"2":{"48":1}}],["v2",{"2":{"92":1}}],["vs",{"2":{"88":1,"90":1}}],["v1",{"2":{"72":1,"84":1}}],["vector",{"2":{"62":1,"81":1}}],["verify",{"2":{"80":2,"109":1}}],["verification",{"2":{"15":2}}],["version",{"0":{"21":1},"2":{"21":2,"28":2}}],["via",{"2":{"24":1,"25":1,"54":1,"58":1,"62":1,"66":1,"71":1,"91":1,"98":1}}],["view",{"2":{"22":1,"27":1,"97":1,"99":2}}],["rm",{"2":{"105":1,"109":1}}],["rpc",{"2":{"103":1}}],["raw",{"2":{"93":2}}],["rand",{"2":{"72":1,"77":1,"96":1}}],["range",{"2":{"65":1}}],["root",{"2":{"72":1,"79":1,"94":1,"96":1,"104":2,"105":2}}],["role",{"2":{"3":1}}],["rich",{"2":{"64":1}}],["rules",{"0":{"85":1},"1":{"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"56":1}}],["runc",{"2":{"104":1}}],["runs",{"2":{"54":1,"61":1,"79":1,"91":1,"100":1}}],["runtime",{"2":{"49":1}}],["run",{"2":{"26":1,"28":1,"40":1,"54":1,"67":1,"72":1,"78":1,"91":1,"93":1,"96":1,"100":1,"105":1}}],["running",{"0":{"102":1},"1":{"103":1,"104":1,"105":1},"2":{"19":1,"25":1,"26":1,"70":1,"93":1,"96":1,"103":1}}],["re",{"2":{"109":1}}],["remove",{"2":{"109":1}}],["rebuilt",{"2":{"108":1}}],["rebuilding",{"2":{"107":1}}],["rebuild",{"0":{"106":1},"1":{"107":1,"108":1,"109":1},"2":{"97":1,"99":1}}],["regular",{"2":{"98":1}}],["repository",{"2":{"93":1,"94":1}}],["replaced",{"2":{"90":1}}],["replies",{"2":{"63":1}}],["retrieval",{"2":{"62":1}}],["references",{"2":{"90":1}}],["reference",{"0":{"71":1,"73":1},"1":{"72":1,"73":1,"74":2,"75":2,"76":2,"77":2,"78":2,"79":2,"80":2,"81":2,"82":2,"83":2,"84":2},"2":{"55":1,"70":1,"94":1,"96":2}}],["recreate",{"2":{"109":1}}],["recommended",{"2":{"55":1,"70":1,"91":1,"96":1}}],["receives",{"2":{"52":1}}],["rely",{"2":{"49":1}}],["request",{"2":{"81":1,"104":1}}],["requests",{"2":{"48":1}}],["requires",{"2":{"93":1}}],["required",{"2":{"31":1,"68":1,"77":1}}],["require",{"2":{"28":1,"37":1,"80":1}}],["restrict",{"2":{"98":1}}],["restarts",{"2":{"108":1}}],["restarting",{"2":{"107":1}}],["restart",{"2":{"97":1,"105":2,"109":2}}],["res",{"2":{"72":1,"84":1}}],["resources",{"2":{"47":1,"52":1}}],["resource",{"2":{"46":1,"51":1,"86":1,"98":1}}],["responses",{"2":{"19":1}}],["reactions",{"2":{"64":1}}],["reachable",{"2":{"26":1}}],["reads",{"2":{"82":1}}],["read",{"2":{"61":1,"64":1}}],["real",{"2":{"19":1,"64":1}}],["4",{"2":{"10":1,"31":2,"32":1}}],["guidance",{"2":{"85":1}}],["guide",{"2":{"56":1}}],["generated",{"2":{"93":1}}],["generate",{"2":{"77":1,"93":1,"96":1}}],["getting",{"0":{"57":1},"1":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1},"2":{"55":1}}],["get",{"0":{"14":1,"16":1,"39":1},"2":{"14":2,"16":2,"28":2,"39":2,"70":1,"84":1}}],["gateway",{"0":{"82":1},"2":{"72":1,"82":2,"91":1,"95":1}}],["graphical",{"0":{"68":1}}],["grant",{"2":{"47":1}}],["groups",{"2":{"60":1}}],["google",{"2":{"35":1,"65":1}}],["global",{"2":{"26":2}}],["git",{"2":{"26":1,"92":1,"94":1}}],["githubusercontent",{"2":{"93":2}}],["github",{"2":{"26":1,"94":1}}],["g",{"2":{"12":1,"15":1,"17":1,"24":1,"31":1,"40":1,"75":1,"77":1,"98":1,"103":1,"104":1,"107":1}}],["gpt",{"2":{"10":1,"31":2,"32":1}}],["gt",{"2":{"5":1,"6":3,"7":2,"10":2,"14":1,"15":5,"16":1,"17":3,"19":2,"20":1,"24":2,"31":5,"34":1,"35":4,"37":1,"40":5,"41":5}}],["effect",{"0":{"106":1},"1":{"107":1,"108":1,"109":1}}],["errors",{"2":{"107":1}}],["error=",{"2":{"103":2}}],["error",{"2":{"74":1,"103":1}}],["everything",{"2":{"91":1}}],["every",{"2":{"58":1,"90":1}}],["edit",{"2":{"54":1,"58":1,"64":1,"96":1}}],["each",{"2":{"54":1,"60":1,"61":2,"62":1,"66":1,"79":1}}],["establish",{"2":{"47":1}}],["embedded",{"2":{"108":1}}],["embedding",{"2":{"10":2,"29":1,"31":7}}],["email",{"2":{"72":1,"76":2}}],["empty",{"2":{"40":1,"84":1}}],["etc",{"2":{"33":1}}],["e",{"2":{"12":1,"15":1,"17":1,"24":1,"31":1,"40":1,"75":1,"77":1,"98":1,"103":1,"104":1,"107":1}}],["exec",{"2":{"103":1,"105":1,"107":1,"109":2}}],["executable",{"2":{"107":1}}],["execution",{"2":{"67":1}}],["executions",{"2":{"40":1,"41":1}}],["execute",{"2":{"58":1,"61":1,"64":1,"103":1}}],["except",{"2":{"88":1}}],["expiration",{"2":{"77":1}}],["expires",{"2":{"72":1,"77":1}}],["expressions",{"2":{"67":1}}],["explicitly",{"2":{"20":1}}],["extra",{"2":{"70":1}}],["extracts",{"2":{"62":1}}],["extend",{"2":{"64":1}}],["external",{"2":{"45":1,"51":1,"52":1,"66":1,"86":2}}],["exists",{"2":{"47":1,"105":1,"108":1}}],["exist",{"2":{"45":1,"104":1}}],["exit",{"2":{"9":1,"19":1}}],["examples",{"2":{"24":1,"31":1,"34":1,"35":1}}],["example",{"0":{"72":1,"89":1},"2":{"10":1,"23":1,"24":1,"32":1,"36":1,"45":1,"51":1,"72":1}}],["environments",{"2":{"100":1}}],["engineered",{"2":{"62":1}}],["engineering",{"0":{"62":1}}],["entrypoint",{"2":{"108":2}}],["entities",{"2":{"45":1}}],["enter",{"2":{"9":1,"19":1}}],["ensure",{"2":{"26":1}}],["encrypt",{"2":{"15":2}}],["enabled",{"2":{"40":2,"41":1}}],["enable",{"2":{"10":1,"41":1,"42":1}}],["updating",{"2":{"107":1}}],["update",{"0":{"7":1,"41":1,"106":1},"1":{"107":1,"108":1,"109":1},"2":{"7":2,"22":1,"24":1,"28":3,"41":2,"105":1}}],["up",{"2":{"60":1,"68":1,"93":1,"94":1,"96":1,"97":2,"99":1,"105":1}}],["unified",{"2":{"63":1}}],["under",{"2":{"48":1}}],["unlimited",{"2":{"40":1}}],["ui",{"2":{"20":1,"28":1,"68":1,"83":2,"91":1,"95":1}}],["using",{"2":{"67":1}}],["uses",{"2":{"71":1,"94":1,"104":1,"109":1}}],["used",{"2":{"50":1,"86":1,"94":1}}],["use",{"2":{"19":1,"22":1,"26":1,"27":1,"75":1,"93":1,"96":1,"100":2,"103":1,"104":1}}],["users",{"2":{"104":2}}],["user",{"2":{"3":2,"5":2,"11":1,"16":1,"17":4,"28":2,"45":2,"48":1,"51":3,"52":1,"72":1,"80":2,"85":1,"86":2,"87":2,"88":1,"89":2}}],["username",{"2":{"1":2,"3":1,"72":1,"76":2}}],["usage",{"2":{"10":1}}],["url",{"2":{"6":2,"7":2,"35":4,"72":2,"81":2,"84":2,"95":1}}],["npx",{"2":{"107":1}}],["nano",{"2":{"96":1}}],["name==$",{"2":{"108":1}}],["named",{"2":{"104":1}}],["namespace",{"2":{"72":1,"78":2}}],["name>",{"2":{"36":1}}],["name",{"2":{"3":1,"6":4,"7":3,"31":4,"34":3,"35":4,"36":1,"40":4,"41":3,"80":1,"81":1,"82":1}}],["never",{"2":{"108":1}}],["necessary",{"2":{"98":1}}],["nerdctl",{"2":{"91":1}}],["need",{"2":{"91":1}}],["network",{"2":{"54":1,"58":1,"61":1}}],["new",{"2":{"6":1,"31":1,"35":1,"40":1,"108":1,"109":2}}],["n",{"2":{"31":1,"40":1,"41":1,"105":1,"108":1,"109":2}}],["node",{"2":{"107":1,"109":1}}],["notfound",{"2":{"103":1}}],["note",{"2":{"49":1,"52":1,"105":1}}],["not",{"0":{"102":1,"106":1},"1":{"103":1,"104":1,"105":1,"107":1,"108":1,"109":1},"2":{"24":1,"45":1,"47":1,"49":1,"51":1,"52":1,"85":1,"86":1,"88":1,"89":1,"91":1,"103":3,"104":1,"107":1}}],["no",{"0":{"102":1},"1":{"103":1,"104":1,"105":1},"2":{"19":1,"68":1,"70":1,"93":1,"94":1,"99":1,"103":1,"104":1}}],["d",{"2":{"93":1,"94":1,"96":1,"97":2,"99":1}}],["down",{"2":{"97":1}}],["do",{"2":{"91":1}}],["does",{"2":{"88":1,"104":1}}],["docs",{"2":{"87":1,"88":1}}],["documentation",{"0":{"54":1,"55":1},"1":{"55":1,"56":1},"2":{"56":1,"69":1,"85":1}}],["documented",{"2":{"49":1}}],["dockerfile",{"2":{"107":1}}],["docker",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1},"2":{"26":1,"55":1,"70":2,"71":2,"72":1,"75":1,"79":2,"82":1,"91":2,"92":2,"93":6,"94":5,"96":6,"97":4,"98":1,"99":4,"104":1,"105":6,"108":2,"109":1}}],["days",{"2":{"77":1}}],["data",{"2":{"72":4,"79":7,"93":3,"98":1,"104":5,"105":3,"108":1}}],["database",{"2":{"62":1,"72":1,"80":4,"96":1}}],["daily",{"2":{"40":1,"60":1}}],["dashscope",{"2":{"35":1,"65":1}}],["directory",{"2":{"71":1,"93":2,"104":1}}],["directly",{"2":{"47":1}}],["different",{"2":{"45":1}}],["distinguish",{"2":{"88":1}}],["discouraged",{"0":{"88":1}}],["disallowed",{"0":{"88":1}}],["disable",{"2":{"41":1,"42":1,"72":1,"80":2,"84":1}}],["disabled",{"2":{"40":2,"41":1}}],["display",{"2":{"3":1,"6":1,"7":1,"31":1,"76":1}}],["dimensions",{"2":{"31":4}}],["detail",{"2":{"109":1}}],["details",{"2":{"96":1}}],["detection",{"2":{"62":1}}],["debug",{"2":{"74":1}}],["dependencies",{"2":{"70":1}}],["developers",{"2":{"69":1}}],["designed",{"2":{"69":1}}],["describing",{"2":{"87":1}}],["descriptions",{"2":{"96":1}}],["description",{"2":{"5":1,"6":1,"7":1,"10":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"24":1,"28":1,"31":1,"34":1,"35":1,"40":4,"41":3,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1}}],["desc",{"2":{"40":1,"41":1,"103":1}}],["delegate",{"2":{"64":1}}],["delete",{"0":{"8":1,"32":1,"36":1,"43":1},"2":{"8":2,"28":4,"32":3,"36":3,"43":2,"103":1,"109":1}}],["deeply",{"2":{"62":1}}],["defines",{"2":{"50":1,"85":1}}],["defaults",{"2":{"93":2}}],["default",{"0":{"19":1},"2":{"20":1,"24":1,"26":1,"28":1,"62":1,"71":1,"72":1,"74":1,"75":1,"76":1,"77":1,"78":2,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"94":1,"95":1,"98":1,"100":1,"105":1,"108":1,"109":2}}],["decoupled",{"2":{"47":1}}],["old",{"2":{"108":1,"109":1}}],["ollama",{"2":{"33":1,"35":3,"36":1,"65":1}}],["override",{"2":{"98":1}}],["overlayfs",{"2":{"72":1,"79":1}}],["overview",{"2":{"55":1}}],["other",{"2":{"60":1,"61":1,"68":1}}],["otherwise",{"2":{"19":1}}],["own",{"2":{"48":2,"54":2,"58":3,"61":1,"66":1,"68":1,"96":1}}],["ownership",{"2":{"47":1}}],["owner",{"2":{"5":3,"49":1}}],["official",{"2":{"93":1}}],["of",{"2":{"26":1,"47":1,"62":1,"64":1,"65":1,"87":2,"98":1}}],["on",{"2":{"45":1,"49":1,"51":1,"52":1,"70":1,"86":1,"87":1,"91":1,"96":1}}],["one",{"0":{"93":1},"2":{"19":1,"70":1,"84":1,"86":1}}],["only",{"2":{"5":1,"90":1,"94":1,"100":1}}],["opt",{"2":{"79":1,"104":1,"105":1}}],["optional",{"2":{"15":2,"40":2,"81":1}}],["optionally",{"2":{"6":1,"34":1}}],["option",{"2":{"5":1,"6":1,"7":1,"10":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"24":1,"31":1,"34":1,"35":1,"40":1,"41":1}}],["options",{"2":{"5":1,"6":1,"7":1,"10":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"24":2,"31":1,"34":1,"35":1,"40":1,"41":1}}],["operations",{"2":{"64":1}}],["openssl",{"2":{"72":1,"77":1,"96":1}}],["openai",{"2":{"31":2,"33":1,"34":1,"35":2,"65":1}}],["open",{"2":{"17":3,"104":1}}],["omitted",{"2":{"13":1}}],["orchestrated",{"2":{"91":1}}],["or",{"0":{"88":1},"2":{"6":1,"7":1,"10":2,"17":1,"22":1,"24":1,"28":1,"31":1,"42":1,"54":1,"60":3,"70":1,"74":1,"75":1,"91":1,"104":1}}],["outside",{"2":{"105":1}}],["output",{"2":{"23":1}}],["out",{"2":{"2":1,"28":1}}],["ls",{"2":{"109":1}}],["leave",{"2":{"84":1}}],["lean",{"2":{"62":1}}],["level=error",{"2":{"103":1}}],["level=warn",{"2":{"103":1}}],["level",{"2":{"72":1,"74":2}}],["larger",{"2":{"109":1}}],["lark",{"2":{"54":1,"58":1,"63":1}}],["latest",{"2":{"72":1,"79":1,"109":1}}],["language",{"2":{"62":1}}],["last",{"2":{"62":1}}],["layer",{"2":{"62":1}}],["library",{"2":{"72":1,"79":1,"109":1}}],["limits",{"2":{"67":1,"98":2}}],["like",{"2":{"58":1,"107":1}}],["links",{"2":{"45":1,"47":1,"48":1,"51":1,"55":1}}],["linking",{"0":{"44":1,"47":1,"48":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"45":1,"47":3,"51":1,"53":1,"55":1,"86":3,"87":1,"89":1}}],["link",{"2":{"26":1}}],["line",{"2":{"25":1,"55":1,"63":1,"69":1}}],["listen",{"2":{"75":1}}],["list",{"0":{"5":1,"12":1,"30":1,"34":1,"38":1},"2":{"5":2,"12":2,"28":5,"30":2,"34":4,"38":2}}],["llm",{"0":{"65":1},"2":{"28":1,"33":1,"65":1}}],["ll",{"2":{"19":1}}],["looks",{"2":{"71":1}}],["loads",{"2":{"62":1}}],["long",{"2":{"54":1,"58":1}}],["locally",{"2":{"105":1}}],["localhost",{"2":{"35":1,"95":3}}],["local",{"2":{"12":1,"105":1}}],["logs",{"2":{"97":2,"99":4,"103":2}}],["logged",{"2":{"3":1}}],["logout",{"0":{"2":1},"2":{"2":1,"28":1}}],["log",{"0":{"74":1},"2":{"1":1,"2":1,"28":2,"72":1,"74":2}}],["login",{"0":{"1":1},"2":{"1":1,"28":2,"76":2,"95":1}}],["lt",{"2":{"5":1,"6":3,"7":2,"10":2,"14":1,"15":5,"16":1,"17":3,"19":2,"20":1,"24":2,"31":5,"34":1,"35":4,"37":1,"40":5,"41":5}}],["were",{"2":{"109":1}}],["web",{"0":{"83":1},"2":{"54":1,"63":2,"64":1,"68":1,"70":1,"72":1,"83":2,"84":2,"91":1,"95":1}}],["workspace",{"2":{"93":2}}],["wording",{"0":{"87":1},"2":{"88":1}}],["was",{"2":{"109":1}}],["way",{"2":{"91":1}}],["warnings",{"0":{"100":1}}],["warn",{"2":{"74":1}}],["writing",{"2":{"85":1}}],["write",{"2":{"61":1,"64":1,"87":2}}],["will",{"2":{"93":1}}],["wide",{"2":{"65":1}}],["without",{"2":{"61":1}}],["within",{"2":{"58":1,"61":1}}],["with",{"2":{"4":1,"9":1,"19":3,"20":1,"25":1,"28":1,"30":1,"47":1,"54":2,"58":1,"60":2,"61":2,"63":1,"64":1,"70":1,"71":1,"77":1,"93":1,"94":1,"96":1,"98":1,"100":1,"104":1,"107":1}}],["when",{"2":{"87":1,"88":1,"93":1,"96":2,"103":1,"104":1}}],["where",{"2":{"46":1,"79":1}}],["who",{"2":{"69":1}}],["whoami",{"0":{"3":1},"2":{"3":1,"28":1}}],["what",{"0":{"58":1},"2":{"55":1}}],["why",{"0":{"47":1,"52":1}}],["while",{"2":{"46":1,"52":1,"95":1}}],["which",{"2":{"19":1}}],["msg=",{"2":{"103":2}}],["must",{"2":{"100":1}}],["multiple",{"2":{"60":1,"63":1}}],["multi",{"0":{"60":1,"63":1,"65":1},"2":{"54":1,"58":1,"62":1}}],["multimodal",{"2":{"30":1,"31":2}}],["minutes",{"2":{"95":1}}],["mistral",{"2":{"35":1,"65":1}}],["missing",{"2":{"35":1}}],["mcp",{"0":{"66":1,"79":1,"102":2,"106":1},"1":{"103":2,"104":2,"105":2,"107":1,"108":1,"109":1},"2":{"66":2,"68":1,"72":2,"79":3,"103":1,"104":2,"105":2,"107":2,"108":2,"109":3}}],["machine",{"2":{"104":1}}],["maintainers",{"2":{"85":1}}],["main",{"2":{"82":1,"91":1,"93":2,"99":1,"100":1}}],["manual",{"0":{"94":1},"2":{"67":1,"70":1}}],["managing",{"2":{"25":1}}],["manages",{"2":{"52":1}}],["management",{"0":{"60":1},"2":{"47":1,"64":1,"68":1,"69":2}}],["managed",{"2":{"46":1,"51":1,"86":1}}],["manage",{"2":{"4":1,"11":1,"29":1,"33":1,"37":1,"60":1,"64":1}}],["matters",{"0":{"52":1}}],["map",{"0":{"51":1}}],["may",{"2":{"49":1,"95":1,"103":1}}],["max",{"2":{"40":3,"41":2,"67":1}}],["markdown",{"2":{"63":1}}],["mark",{"2":{"31":1}}],["mode",{"2":{"80":1}}],["models",{"2":{"25":1,"28":1,"29":1,"30":1,"31":2,"55":1,"68":1}}],["model",{"0":{"10":1,"29":1,"30":1,"31":1,"32":1,"45":1},"1":{"30":1,"31":1,"32":1},"2":{"10":7,"28":2,"30":1,"31":10,"32":7,"49":1,"52":1,"66":1,"69":1,"79":1}}],["mounted",{"2":{"79":1,"94":1,"104":1}}],["mount",{"2":{"71":1,"72":1,"79":1,"104":2,"105":1}}],["more",{"2":{"58":1,"65":1,"69":1}}],["most",{"2":{"28":1}}],["monorepo",{"2":{"26":1}}],["my",{"2":{"10":1,"31":2,"34":1,"35":1,"36":1}}],["mention",{"2":{"87":1}}],["messaging",{"2":{"63":1,"64":1}}],["message",{"2":{"19":1}}],["messages",{"2":{"9":1,"46":2,"52":1,"64":1,"86":1}}],["means",{"2":{"52":1}}],["mem0",{"2":{"62":1}}],["members",{"2":{"60":1}}],["membership",{"2":{"48":1}}],["member",{"2":{"47":1,"49":2,"54":1,"58":1}}],["memories",{"2":{"62":1,"64":1,"81":1}}],["memory",{"0":{"62":1},"2":{"10":2,"54":2,"58":2,"62":3,"64":1,"72":1,"81":1,"98":1}}],["memoh123",{"2":{"93":1}}],["memohai",{"2":{"26":1,"93":2,"94":1}}],["memoh",{"0":{"25":1,"54":1,"58":1},"1":{"26":1,"27":1,"28":1,"55":1,"56":1},"2":{"1":2,"19":2,"20":1,"22":1,"24":1,"25":3,"26":6,"27":4,"28":2,"31":2,"34":1,"35":1,"45":3,"46":1,"48":1,"50":1,"51":2,"52":1,"54":1,"55":1,"58":1,"70":1,"71":2,"72":2,"79":2,"80":1,"86":2,"88":1,"89":2,"91":1,"93":4,"94":2,"96":1,"104":3,"105":2,"109":3}}],["mechanism",{"2":{"45":1}}],["metadata",{"2":{"13":1}}],["brave",{"0":{"84":1},"2":{"64":1,"72":2,"84":5}}],["bm25",{"2":{"62":1}}],["boundary",{"2":{"46":1,"51":1,"86":1}}],["bots",{"2":{"4":1,"5":1,"25":2,"28":1,"37":1,"46":1,"54":1,"55":1,"58":1,"60":4,"61":1,"64":1,"68":1,"104":1}}],["bot",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"46":1,"49":1,"60":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"2":{"5":1,"6":4,"7":5,"8":2,"9":2,"10":4,"11":1,"14":2,"15":2,"19":6,"20":4,"28":4,"37":2,"38":3,"39":2,"40":3,"41":2,"42":2,"43":2,"46":1,"47":3,"48":1,"49":2,"51":1,"52":1,"54":1,"58":1,"60":1,"61":1,"64":1,"66":1,"68":1,"69":1,"78":1,"79":2,"86":1,"103":2,"105":1,"109":2}}],["built",{"2":{"63":1,"64":1,"79":1,"94":1}}],["buildkit",{"2":{"91":1}}],["build",{"2":{"26":1,"60":1,"93":1,"95":1,"97":1,"99":1}}],["but",{"2":{"20":1,"52":1,"104":1}}],["binds",{"2":{"89":1}}],["binding",{"2":{"16":1,"17":1,"28":1}}],["bind",{"0":{"16":1,"17":1},"2":{"16":1,"17":1,"45":1,"48":1,"51":1,"82":1,"83":1,"86":2,"87":1}}],["between",{"2":{"65":1}}],["before",{"2":{"45":1,"100":1}}],["bedrock",{"2":{"35":1,"65":1}}],["behavior",{"2":{"20":1,"49":1,"87":1}}],["be",{"2":{"7":1,"19":1,"49":1,"109":1}}],["by",{"2":{"5":2,"32":1,"34":2,"36":1,"39":1,"46":2,"48":1,"50":1,"51":1,"52":1,"61":1,"62":2,"71":1,"86":1,"90":1,"94":1}}],["base64",{"2":{"72":1,"77":1,"96":1}}],["based",{"2":{"37":1,"49":1}}],["base",{"2":{"35":3,"72":2,"81":1,"84":2}}],["bashdocker",{"2":{"97":1,"99":1,"105":2,"109":3}}],["bashcp",{"2":{"96":1}}],["bashcurl",{"2":{"93":2}}],["bashcd",{"2":{"26":2}}],["bashgit",{"2":{"26":1,"94":1}}],["bashmemoh",{"2":{"1":1,"2":1,"3":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":2,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"23":1,"24":2,"30":1,"31":2,"32":2,"34":2,"35":2,"36":2,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"96":1}}],["backups",{"2":{"98":2}}],["back",{"2":{"3":1}}],["fulfil",{"2":{"104":1}}],["full",{"0":{"72":1},"2":{"63":2,"80":1,"99":1}}],["found",{"0":{"102":2},"1":{"103":2,"104":2,"105":2},"2":{"103":3,"107":1}}],["format",{"2":{"72":1,"74":2}}],["for",{"0":{"56":1},"2":{"1":1,"6":1,"8":1,"10":1,"13":1,"16":1,"24":2,"25":1,"31":3,"35":2,"37":1,"38":1,"40":3,"45":1,"51":1,"55":1,"60":1,"63":1,"64":1,"69":2,"70":1,"71":1,"75":1,"76":1,"77":1,"78":1,"79":1,"81":2,"84":1,"86":1,"93":2,"94":1,"96":3,"98":1}}],["f",{"2":{"97":1}}],["fssl",{"2":{"93":2}}],["freely",{"2":{"61":1}}],["from",{"2":{"13":1,"26":1,"46":1,"48":1,"52":2,"62":1,"72":1,"79":1,"93":1,"96":1,"105":1,"109":2}}],["features",{"0":{"59":1},"1":{"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1},"2":{"55":1}}],["feishu",{"2":{"12":1,"15":4,"17":4,"54":1,"58":1,"63":1}}],["flexibly",{"2":{"65":1}}],["flows",{"2":{"48":1}}],["flow",{"0":{"48":1}}],["flip",{"2":{"42":1}}],["flag",{"2":{"30":1}}],["fi",{"2":{"108":1}}],["firewall",{"2":{"98":1}}],["first",{"2":{"28":1,"87":1,"95":1}}],["field",{"2":{"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"96":1}}],["fields",{"2":{"35":1,"70":1,"94":1}}],["file",{"2":{"71":1,"94":1,"96":1,"104":1,"107":1}}],["filesystem",{"2":{"61":1}}],["files",{"2":{"54":1,"58":1,"61":1,"64":1}}],["filter",{"2":{"5":2,"34":2}}],["fail",{"2":{"107":1}}],["failed",{"2":{"103":2,"104":1}}],["fails",{"2":{"3":1,"104":1}}],["facing",{"2":{"87":1}}],["facts",{"2":{"62":1}}],["family",{"2":{"60":1}}],["falls",{"2":{"3":1}}],["io",{"2":{"72":1,"79":1,"109":1}}],["imported",{"2":{"108":1,"109":1}}],["import",{"2":{"108":2,"109":1}}],["implies",{"2":{"88":1}}],["implementations",{"2":{"49":1}}],["images",{"2":{"95":1,"108":1,"109":2}}],["image",{"0":{"106":1},"1":{"107":1,"108":1,"109":1},"2":{"72":1,"79":3,"107":1,"108":7,"109":3}}],["it",{"2":{"22":1,"25":1,"47":3,"58":1,"71":1,"85":1,"88":1,"96":1,"104":1,"105":1,"109":2}}],["its",{"2":{"22":1,"25":1,"54":1,"58":2,"61":1,"66":1}}],["isolation",{"0":{"61":1}}],["isolated",{"2":{"54":1,"61":1}}],["is",{"0":{"47":1,"58":1},"2":{"13":1,"25":1,"26":3,"45":3,"46":2,"49":1,"54":1,"55":1,"58":1,"79":1,"82":1,"85":1,"88":1,"89":2,"90":2,"91":1,"94":2,"96":1,"104":1,"108":2}}],["if",{"2":{"3":1,"13":1,"24":1,"105":2,"108":1,"109":1}}],["id=xxx",{"2":{"103":1}}],["id>",{"2":{"19":1,"20":1,"32":1,"38":1,"39":2,"40":1,"41":2,"42":2,"43":2,"105":1}}],["id",{"2":{"3":1,"5":2,"7":2,"8":1,"9":1,"10":4,"14":1,"15":4,"17":8,"19":3,"20":2,"31":6,"32":1,"37":1,"39":1}}],["initialize",{"2":{"95":1}}],["incorrect",{"2":{"89":1}}],["includes",{"2":{"70":1,"91":1}}],["int",{"2":{"80":1,"81":1,"82":1,"83":1}}],["integration",{"2":{"64":1}}],["interfaces",{"2":{"75":1}}],["interface",{"2":{"63":1}}],["interfering",{"2":{"61":1}}],["internal",{"2":{"45":2,"51":1,"52":1}}],["interactively",{"2":{"7":1}}],["interactive",{"0":{"19":1},"2":{"1":1,"9":1,"19":1,"24":1,"28":1,"31":1,"35":1}}],["independent",{"2":{"47":1,"52":1,"58":1,"66":1}}],["instead",{"2":{"87":2,"105":1}}],["install",{"0":{"93":1,"94":1},"2":{"26":2,"91":1,"93":4}}],["installation",{"0":{"26":1,"70":1,"91":1},"1":{"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1},"2":{"26":1,"55":2,"71":1}}],["inspired",{"2":{"62":1}}],["inside",{"2":{"46":1,"52":1,"64":1,"79":1,"86":1,"88":1,"91":1,"104":2}}],["inbound",{"2":{"46":2,"86":1}}],["invoked",{"2":{"20":1}}],["inactive",{"2":{"6":2,"7":2}}],["information",{"2":{"64":1}}],["info",{"0":{"13":1},"2":{"3":1,"7":1,"13":1,"72":1,"74":2}}],["in",{"0":{"53":1},"2":{"1":2,"3":1,"19":1,"22":1,"27":2,"28":1,"40":1,"45":1,"49":1,"51":1,"54":1,"60":1,"61":1,"63":1,"64":1,"71":1,"72":1,"75":1,"76":1,"77":1,"79":1,"81":1,"82":1,"87":2,"88":1,"89":1,"90":1,"94":2,"100":2,"104":1,"105":2,"107":1,"108":2}}],["ctr",{"2":{"105":1,"108":1,"109":2}}],["cpu",{"2":{"98":1}}],["certs",{"2":{"98":1}}],["check",{"2":{"93":1,"108":1}}],["checklist",{"0":{"90":1,"98":1}}],["chapter",{"0":{"53":1}}],["changes",{"2":{"96":1}}],["change",{"2":{"27":1,"72":1,"76":1,"96":2,"98":1,"100":1}}],["channelidentity",{"2":{"45":1,"51":1,"86":1,"87":1}}],["channels",{"2":{"11":1,"13":1,"25":1,"28":1,"55":1,"68":1}}],["channel",{"0":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1},"1":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1},"2":{"11":1,"12":2,"13":3,"14":3,"15":3,"16":3,"17":3,"28":2,"46":1,"63":1,"69":1,"86":1,"87":1,"90":1}}],["chatting",{"2":{"25":1}}],["chat",{"0":{"9":1,"18":1,"19":1},"1":{"19":1,"20":1,"21":1},"2":{"4":1,"9":2,"10":3,"19":3,"20":3,"28":4,"29":1,"31":2,"54":1,"55":1,"58":1,"60":1,"63":2,"69":1}}],["custom",{"0":{"96":1},"2":{"71":1}}],["currently",{"2":{"15":1,"17":1}}],["current",{"0":{"48":1},"2":{"3":1,"16":1,"17":1,"23":1,"28":1,"42":1,"71":1}}],["cmd",{"2":{"40":1,"41":1}}],["credentials",{"2":{"93":1}}],["creates",{"2":{"104":1}}],["created",{"2":{"52":1,"88":1,"103":1}}],["create",{"0":{"6":1,"31":1,"35":1,"40":1},"2":{"6":2,"28":4,"31":5,"35":4,"40":4,"54":1,"58":1,"60":1,"64":1}}],["cron",{"2":{"37":1,"40":2,"41":1,"67":1}}],["cd",{"2":{"26":1,"94":1}}],["clean",{"2":{"105":1}}],["clearly",{"2":{"90":1}}],["clear",{"2":{"2":1,"28":1,"52":1}}],["cloud",{"2":{"81":1}}],["clone",{"2":{"26":1,"93":1,"94":2}}],["click",{"0":{"93":1},"2":{"70":1}}],["client",{"2":{"35":2}}],["cli",{"0":{"25":1,"69":1},"1":{"26":1,"27":1,"28":1},"2":{"21":1,"22":1,"25":1,"26":4,"27":1,"28":2,"54":1,"55":1,"63":1,"69":1}}],["copy",{"2":{"96":1}}],["correct",{"2":{"89":2}}],["core",{"0":{"50":1},"1":{"51":1,"52":1,"53":1},"2":{"50":1,"55":1}}],["collection",{"2":{"72":1,"81":2}}],["collaborate",{"2":{"60":1}}],["collaboration",{"2":{"49":1}}],["coding",{"2":{"68":1}}],["code",{"2":{"48":3,"64":1,"86":2,"87":1,"88":1,"90":1,"103":1,"104":2}}],["count",{"2":{"67":1}}],["coupling",{"2":{"47":1}}],["connections",{"2":{"66":1}}],["connecting",{"2":{"63":1}}],["connect",{"2":{"66":1}}],["context",{"2":{"62":1,"66":1,"79":1}}],["contributor",{"0":{"90":1}}],["contributors",{"0":{"56":1},"2":{"85":1}}],["control",{"2":{"52":1}}],["containers",{"2":{"61":1,"78":1,"91":1,"98":1,"104":1,"105":1}}],["containerd",{"0":{"78":1},"2":{"61":1,"70":1,"72":3,"78":4,"79":1,"91":2,"99":2,"103":1,"104":3,"105":2,"107":2,"108":4,"109":5}}],["containerized",{"0":{"61":1},"2":{"54":1,"58":1}}],["container",{"0":{"102":1,"106":1},"1":{"103":1,"104":1,"105":1,"107":1,"108":1,"109":1},"2":{"40":1,"54":1,"58":2,"61":1,"64":2,"79":4,"100":1,"103":3,"104":2,"105":2,"107":1,"108":1,"109":2}}],["concern",{"2":{"52":1}}],["concerns",{"2":{"52":1}}],["concept",{"0":{"51":1}}],["concepts",{"0":{"50":1},"1":{"51":1,"52":1,"53":1},"2":{"50":1,"55":2}}],["conceptual",{"2":{"49":1,"88":1}}],["conceptually",{"2":{"49":1}}],["conversation",{"2":{"48":1,"62":2}}],["consensus",{"0":{"48":1}}],["config=",{"2":{"96":1}}],["configure",{"2":{"67":1,"68":1,"98":1}}],["configured",{"2":{"26":1}}],["configurable",{"2":{"64":1}}],["configuration",{"0":{"27":1,"68":1,"96":1},"2":{"11":1,"14":1,"15":1,"69":1,"70":1,"71":1,"79":1,"93":1,"94":1,"99":1}}],["config",{"0":{"14":1,"15":1,"22":1,"23":1,"24":1,"71":1},"1":{"23":1,"24":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"14":1,"15":1,"22":2,"23":2,"24":4,"27":4,"28":3,"55":1,"70":1,"71":3,"93":1,"94":5,"96":11,"99":1,"104":1,"105":6}}],["confirmation",{"2":{"8":1}}],["common",{"0":{"97":1}}],["command=date",{"2":{"103":1}}],["command",{"2":{"25":1,"26":1,"28":2,"40":3,"41":2,"55":1,"63":1,"69":1}}],["commands",{"0":{"0":1,"4":1,"11":1,"18":1,"22":1,"28":1,"29":1,"33":1,"37":1,"97":1},"1":{"1":1,"2":1,"3":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"23":1,"24":1,"30":1,"31":1,"32":1,"34":1,"35":1,"36":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1},"2":{"22":1,"28":1,"37":1,"54":1,"58":1,"61":1,"64":1,"67":1,"103":1}}],["compose",{"2":{"70":1,"82":1,"91":1,"92":1,"93":3,"94":3,"96":3,"97":5,"98":1,"99":5,"105":2,"109":1}}],["complex",{"2":{"64":1}}],["compaction",{"2":{"62":1}}],["compat",{"2":{"35":1}}],["computer",{"2":{"58":1}}],["come",{"2":{"46":1,"64":1}}],["com",{"2":{"24":1,"26":1,"72":2,"84":2,"93":2,"94":1}}],["cause",{"0":{"104":1,"108":1}}],["cache",{"2":{"99":1}}],["carrying",{"2":{"86":1}}],["ca",{"2":{"80":1}}],["capabilities",{"0":{"64":1},"2":{"64":1}}],["canonical",{"0":{"86":1}}],["can",{"2":{"5":1,"7":1,"45":1,"58":1,"60":1,"61":1,"66":1,"71":1}}],["calls",{"2":{"40":2,"41":1}}],["call",{"2":{"3":1,"82":1}}],["js",{"2":{"107":1,"109":1}}],["json",{"2":{"1":1,"27":1,"74":1}}],["jwt",{"2":{"1":1,"72":2,"77":4,"93":2,"96":1}}],["~",{"2":{"1":1,"22":1,"27":2,"93":2}}],["skips",{"2":{"108":1}}],["skill",{"2":{"64":1}}],["skills",{"2":{"64":2,"68":1}}],["shif",{"2":{"108":1}}],["sh",{"2":{"93":4,"108":1}}],["should",{"2":{"49":1,"109":1}}],["show",{"2":{"3":1,"13":1,"21":1,"23":1,"28":3,"103":2}}],["symptom",{"0":{"103":1,"107":1}}],["symbols",{"2":{"88":1}}],["system",{"2":{"45":2,"46":1,"47":1,"48":2,"51":3,"52":2,"54":2,"58":2,"64":1,"86":3,"87":1,"88":1,"89":1,"90":1}}],["significantly",{"2":{"109":1}}],["signing",{"2":{"77":1}}],["size",{"2":{"109":1}}],["since",{"2":{"104":1,"108":1}}],["single",{"2":{"47":1,"49":1}}],["silently",{"2":{"93":1}}],["silent",{"2":{"93":1}}],["ssl",{"2":{"80":1,"98":1}}],["sslmode",{"2":{"72":1,"80":1}}],["sse",{"2":{"66":1}}],["snapshotter",{"2":{"72":1,"79":2}}],["so",{"2":{"109":1}}],["solution",{"0":{"105":1,"109":1}}],["sock",{"2":{"72":1,"78":1}}],["socket",{"2":{"72":1,"78":2}}],["source",{"2":{"26":1,"104":1}}],["switch",{"2":{"65":1}}],["specific",{"2":{"105":1}}],["specified",{"2":{"67":1}}],["specify",{"2":{"19":1,"37":1}}],["specialized",{"2":{"64":1}}],["scripts",{"2":{"93":2}}],["script",{"2":{"93":2,"108":1}}],["scoped",{"0":{"47":1},"2":{"90":1}}],["scheduled",{"0":{"67":1},"2":{"67":1}}],["schedule",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1},"1":{"38":1,"39":1,"40":1,"41":1,"42":1,"43":1},"2":{"28":1,"37":1,"38":1,"39":2,"40":3,"41":3,"42":2,"43":2}}],["schedules",{"2":{"25":1,"28":1,"37":1,"38":1,"55":1}}],["schema",{"2":{"13":1}}],["small",{"2":{"31":2}}],["same",{"2":{"20":1}}],["survives",{"2":{"108":1}}],["subagents",{"2":{"64":2}}],["subcommand",{"2":{"19":1}}],["such",{"2":{"52":1,"104":1}}],["support",{"0":{"63":1,"65":1,"66":1},"2":{"63":2}}],["supported",{"2":{"35":1,"48":1}}],["supports",{"2":{"15":1,"17":1,"49":1,"62":1,"66":1,"67":1}}],["s",{"2":{"14":1,"15":1,"16":1,"17":1,"45":1,"51":2,"52":1,"86":1,"89":1,"93":1,"108":1,"109":1}}],["stop",{"2":{"97":1}}],["store",{"2":{"62":1,"108":1}}],["stored",{"2":{"2":1}}],["stores",{"2":{"1":1,"22":1,"27":1,"62":1}}],["style",{"2":{"56":1}}],["string",{"2":{"74":2,"75":1,"76":3,"77":2,"78":2,"79":4,"80":5,"81":3,"82":1,"83":1,"84":2}}],["structured",{"2":{"54":1,"58":1,"62":1}}],["stream",{"2":{"19":1}}],["streaming",{"2":{"9":1,"63":1,"69":1}}],["still",{"2":{"49":1,"107":1}}],["stale",{"2":{"105":1}}],["status",{"2":{"97":1}}],["state",{"2":{"42":1}}],["stack",{"2":{"91":1}}],["starting",{"2":{"96":1}}],["startup",{"2":{"95":2}}],["started",{"0":{"57":1},"1":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1},"2":{"55":1}}],["starts",{"2":{"19":1}}],["start",{"2":{"9":1,"26":1,"93":1,"94":1,"97":1}}],["sentences",{"0":{"89":1}}],["send",{"2":{"64":1}}],["sends",{"2":{"48":1}}],["service",{"2":{"82":1,"95":1,"99":1,"100":1}}],["services",{"2":{"66":1,"70":1,"93":1,"95":1}}],["server",{"0":{"75":1},"2":{"1":1,"25":1,"26":1,"28":1,"70":1,"72":1,"75":1,"82":1,"91":1,"99":1,"103":1,"104":2,"105":3}}],["search",{"2":{"62":1,"64":3,"72":1,"84":7}}],["semantic",{"2":{"62":1}}],["semantics",{"0":{"49":1},"2":{"47":1,"49":2}}],["separate",{"2":{"61":1,"105":1}}],["separates",{"2":{"52":1}}],["security",{"0":{"100":1}}],["seconds",{"2":{"72":1,"81":2}}],["section",{"0":{"73":1},"1":{"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"50":1}}],["secrets",{"2":{"98":1,"100":1}}],["secret",{"2":{"15":3,"72":2,"77":2,"93":2,"96":1}}],["see",{"2":{"26":1,"69":1,"71":1,"94":1,"96":2}}],["session",{"2":{"20":1,"28":1}}],["select",{"2":{"13":1,"19":1}}],["selected",{"2":{"7":1}}],["setup",{"2":{"70":1}}],["settings",{"2":{"68":1}}],["set",{"0":{"10":1,"15":1,"17":1,"24":1},"2":{"6":2,"7":2,"10":2,"15":2,"17":2,"24":3,"27":1,"28":3,"60":1,"64":1,"68":1,"96":1,"98":1,"104":1,"105":1}}],["python",{"2":{"107":1,"109":1}}],["ps",{"2":{"97":1}}],["phrasing",{"2":{"88":1}}],["plain",{"2":{"88":1}}],["platforms",{"2":{"52":1,"63":1}}],["platform",{"0":{"46":1,"63":1},"2":{"16":1,"45":4,"46":2,"47":1,"48":3,"51":3,"52":3,"58":1,"86":5,"87":3,"88":3,"89":2,"90":2}}],["point",{"2":{"96":1}}],["points",{"0":{"95":1}}],["postgres",{"0":{"80":1},"2":{"72":2,"80":1,"93":2,"96":2,"98":1}}],["postgresql",{"2":{"70":1,"80":2,"91":1}}],["powered",{"2":{"61":1}}],["ports",{"2":{"98":1}}],["port",{"2":{"23":2,"24":6,"26":1,"27":1,"28":1,"72":3,"75":1,"80":2,"82":2,"83":2}}],["persistent",{"2":{"108":1}}],["personal",{"2":{"6":1,"49":1}}],["permissions",{"2":{"52":1}}],["pnpm",{"2":{"26":4}}],["parenthetical",{"2":{"90":1}}],["parentheses",{"2":{"87":1}}],["part",{"2":{"26":1}}],["page",{"2":{"85":1,"109":1}}],["path",{"2":{"72":1,"78":2,"79":2,"96":1,"104":2,"105":1}}],["pattern",{"2":{"40":4,"41":3}}],["packages",{"2":{"26":2}}],["passed",{"2":{"7":1}}],["passwords",{"2":{"98":2,"100":1}}],["password",{"2":{"1":2,"72":4,"76":2,"80":2,"93":2,"96":5}}],["privileged",{"2":{"100":1}}],["privately",{"2":{"60":1}}],["prerequisites",{"0":{"92":1}}],["preferred",{"0":{"87":1}}],["prefer",{"2":{"69":1}}],["press",{"2":{"9":1,"19":1}}],["prose",{"2":{"90":1}}],["protocol",{"0":{"66":1},"2":{"66":1,"79":1}}],["project",{"2":{"52":1,"94":1,"96":1}}],["process",{"2":{"51":1}}],["production",{"0":{"98":1},"2":{"76":1,"96":1,"100":2}}],["product",{"2":{"49":1,"85":1,"87":1}}],["produced",{"2":{"46":1}}],["provider=container",{"2":{"103":1}}],["provider",{"0":{"33":1,"34":1,"35":1,"36":1,"65":1},"1":{"34":1,"35":1,"36":1},"2":{"28":1,"30":1,"31":6,"34":7,"35":5,"36":5}}],["providers",{"2":{"25":1,"28":1,"33":1,"34":1,"55":1,"65":1,"68":1}}],["provided",{"2":{"24":1}}],["prompt",{"2":{"93":1}}],["prompted",{"2":{"19":1}}],["prompts",{"2":{"1":2,"6":1,"13":1,"24":2,"31":2,"35":2,"40":1,"93":1}}],["public",{"2":{"6":1,"49":1}}],["after",{"0":{"106":1},"1":{"107":1,"108":1,"109":1},"2":{"95":1,"107":1}}],["ambiguous",{"2":{"88":1}}],["audience",{"2":{"85":1}}],["auto",{"2":{"62":1,"93":1}}],["automatic",{"2":{"62":1}}],["automatically",{"2":{"62":1,"67":1}}],["authorization",{"2":{"46":1,"47":1,"48":1,"86":1}}],["authentication",{"2":{"28":1}}],["auth",{"0":{"0":1,"77":1},"1":{"1":1,"2":1,"3":1},"2":{"27":1,"72":1,"96":1}}],["aws",{"2":{"65":1}}],["added",{"2":{"109":1}}],["adding",{"2":{"107":1}}],["address",{"2":{"75":1}}],["addr",{"2":{"72":1,"75":1,"82":1}}],["adapter",{"2":{"63":1}}],["admin123",{"2":{"93":1,"95":1}}],["admin",{"0":{"76":1},"2":{"5":1,"72":3,"76":4,"93":3,"95":1,"96":2}}],["admins",{"2":{"5":1}}],["able",{"2":{"54":1}}],["agent",{"0":{"64":1,"82":1},"2":{"54":1,"58":1,"70":1,"72":1,"82":4,"91":1,"95":1}}],["ai",{"2":{"54":2,"58":2,"68":1}}],["already",{"2":{"108":1}}],["also",{"2":{"103":1,"105":1}}],["aliases",{"2":{"87":1,"90":1}}],["always",{"2":{"52":1}}],["allowing",{"2":{"58":1}}],["all",{"2":{"5":1,"30":1,"34":1,"37":1,"38":1,"68":1,"70":2,"75":1,"91":1,"93":2,"94":1,"98":1,"100":1}}],["avoid",{"2":{"88":3}}],["avoids",{"2":{"47":1}}],["available",{"2":{"12":1,"13":1}}],["avatar",{"2":{"6":2,"7":2}}],["architecture",{"2":{"63":1}}],["are",{"2":{"46":2,"48":1,"49":1,"90":1}}],["argument",{"2":{"7":1}}],["across",{"2":{"108":1}}],["actor",{"2":{"87":1,"88":1,"89":1}}],["active",{"2":{"6":2,"7":2}}],["access",{"0":{"46":1,"95":1},"2":{"45":1,"46":1,"48":1,"50":1,"51":2,"52":2,"54":1,"58":1,"86":2,"87":1,"90":1,"98":1,"100":1}}],["account",{"0":{"45":1,"47":1},"2":{"45":8,"47":4,"48":4,"50":1,"51":10,"52":3,"86":10,"87":4,"88":2,"89":6,"90":1}}],["accounts",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"45":2,"46":2,"47":2,"52":2,"53":1,"55":1,"60":1}}],["azure",{"2":{"35":1,"65":1}}],["attachments",{"2":{"63":1}}],["at",{"2":{"26":1,"40":1,"67":1,"84":1,"96":1,"104":1}}],["app",{"2":{"15":4}}],["api",{"2":{"3":1,"24":3,"25":1,"26":1,"35":3,"72":3,"81":3,"82":1,"84":7,"95":1}}],["any",{"2":{"35":1,"47":1}}],["anthropic",{"2":{"33":1,"35":1,"65":1}}],["an",{"2":{"9":1,"19":1,"45":2,"46":1,"51":3,"52":2,"54":1,"58":1,"86":1,"104":1}}],["and",{"0":{"44":1,"46":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"1":1,"2":1,"4":1,"6":1,"9":1,"11":1,"13":1,"19":1,"23":1,"24":2,"25":1,"26":1,"27":2,"28":1,"29":1,"30":1,"31":1,"40":1,"45":1,"46":1,"47":2,"48":2,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":5,"58":4,"60":1,"61":2,"62":2,"63":1,"64":4,"65":1,"66":1,"67":1,"68":1,"69":1,"85":1,"86":1,"91":1,"93":2,"94":1,"95":1,"96":2,"97":1,"98":2,"100":1,"104":1,"105":1,"107":1,"109":1}}],["assign",{"2":{"64":1}}],["asks",{"2":{"8":1}}],["as",{"2":{"7":1,"10":2,"20":1,"26":1,"31":1,"40":2,"45":1,"49":2,"52":2,"62":1,"90":1,"104":1}}],["a",{"2":{"6":1,"8":1,"9":1,"10":2,"13":1,"14":1,"15":1,"16":1,"25":2,"26":1,"28":1,"31":1,"32":1,"35":1,"36":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"45":3,"48":3,"51":5,"54":1,"58":1,"61":1,"62":1,"64":1,"65":1,"68":1,"69":1,"71":2,"79":1,"86":4,"89":5,"103":1,"104":2,"108":1}}],["typically",{"2":{"82":1}}],["types",{"2":{"12":1,"35":1,"45":1}}],["type",{"0":{"49":1},"2":{"6":3,"9":2,"13":3,"14":3,"15":3,"16":3,"17":3,"19":2,"30":1,"31":5,"35":4,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1}}],["turn",{"2":{"62":1}}],["tui",{"0":{"20":1},"2":{"20":2,"28":1}}],["taking",{"0":{"106":1},"1":{"107":1,"108":1,"109":1}}],["take",{"2":{"95":1}}],["task",{"0":{"102":2},"1":{"103":2,"104":2,"105":2},"2":{"103":3}}],["tasks",{"0":{"67":1},"2":{"60":1,"64":1,"67":1}}],["talks",{"2":{"25":1}}],["tightened",{"2":{"49":1}}],["timeout",{"2":{"72":1,"81":2}}],["times",{"2":{"67":1}}],["time",{"2":{"19":1,"64":1,"86":1}}],["trigger",{"2":{"109":1}}],["triggers",{"2":{"67":1}}],["tries",{"2":{"103":1}}],["trusted",{"2":{"100":1}}],["troubleshooting",{"0":{"99":1,"101":1},"1":{"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1}}],["transition",{"2":{"49":1}}],["treats",{"2":{"45":1}}],["through",{"2":{"68":1}}],["this",{"0":{"52":1,"53":1},"2":{"50":1,"52":1,"79":1,"85":1,"94":1,"104":1}}],["that",{"2":{"45":1,"51":1,"52":1,"88":1}}],["their",{"2":{"30":1,"48":2,"61":1}}],["these",{"2":{"22":1,"45":1,"52":1}}],["them",{"2":{"4":1,"54":1,"58":1,"62":1}}],["then",{"2":{"1":1,"108":1}}],["the",{"2":{"1":2,"2":1,"3":2,"16":1,"17":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":5,"27":1,"28":1,"35":1,"37":1,"40":1,"45":2,"48":3,"49":1,"50":1,"51":2,"52":3,"54":1,"58":1,"62":2,"64":1,"69":1,"70":1,"71":1,"82":2,"84":1,"86":3,"89":1,"91":3,"93":4,"94":2,"96":5,"100":1,"103":2,"104":5,"105":6,"107":2,"108":5,"109":6}}],["tg",{"2":{"45":1,"51":1,"52":1,"89":1}}],["two",{"2":{"45":2}}],["template",{"2":{"93":1,"96":1}}],["term",{"2":{"90":1}}],["terms",{"0":{"86":1,"88":1},"2":{"85":1}}],["terminology",{"0":{"85":1},"1":{"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"52":1,"56":1}}],["terminal",{"2":{"20":1,"28":1,"69":1}}],["teams",{"2":{"60":1}}],["text",{"2":{"31":2,"72":1,"74":2}}],["telegram",{"2":{"12":1,"51":1,"54":1,"58":1,"63":1}}],["toggle",{"0":{"42":1},"2":{"28":1,"42":1}}],["tools",{"2":{"64":1,"103":1,"107":1}}],["tool",{"0":{"69":1},"2":{"25":1,"55":1,"66":1,"69":1,"84":1,"103":1}}],["toml",{"0":{"71":1},"1":{"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"22":1,"27":1,"55":1,"70":1,"71":2,"72":1,"93":1,"94":2,"96":6,"104":1,"105":3}}],["tokens",{"2":{"77":1}}],["token",{"2":{"1":2,"2":1,"3":1,"15":3,"27":2,"28":1}}],["to",{"2":{"1":1,"3":1,"9":1,"13":1,"19":5,"20":1,"22":1,"25":1,"26":1,"27":2,"28":1,"37":1,"40":1,"47":2,"48":1,"51":1,"52":1,"54":1,"58":1,"60":1,"62":1,"63":1,"64":1,"66":1,"67":1,"68":1,"70":1,"78":1,"82":1,"84":1,"86":1,"89":1,"91":2,"96":1,"98":1,"103":2,"104":2,"105":2,"107":1,"109":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexroot.DEoGPlWF.js b/assets/chunks/@localSearchIndexroot.DEoGPlWF.js new file mode 100644 index 00000000..aedc85ab --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.DEoGPlWF.js @@ -0,0 +1 @@ +const t='{"documentCount":100,"nextId":100,"documentIds":{"0":"/cli/auth.html#auth-commands","1":"/cli/auth.html#login","2":"/cli/auth.html#logout","3":"/cli/auth.html#whoami","4":"/cli/bot.html#bot-commands","5":"/cli/bot.html#bot-list","6":"/cli/bot.html#bot-create","7":"/cli/bot.html#bot-update","8":"/cli/bot.html#bot-delete","9":"/cli/bot.html#bot-chat","10":"/cli/bot.html#bot-set-model","11":"/cli/channel.html#channel-commands","12":"/cli/channel.html#channel-list","13":"/cli/channel.html#channel-info","14":"/cli/channel.html#channel-config-get","15":"/cli/channel.html#channel-config-set","16":"/cli/channel.html#channel-bind-get","17":"/cli/channel.html#channel-bind-set","18":"/cli/chat.html#chat-commands","19":"/cli/chat.html#default-interactive-chat","20":"/cli/chat.html#tui","21":"/cli/chat.html#version","22":"/cli/config.html#config-commands","23":"/cli/config.html#config","24":"/cli/config.html#config-set","25":"/cli/#memoh-cli","26":"/cli/#installation","27":"/cli/#configuration","28":"/cli/#commands","29":"/cli/model.html#model-commands","30":"/cli/model.html#model-list","31":"/cli/model.html#model-create","32":"/cli/model.html#model-delete","33":"/cli/provider.html#provider-commands","34":"/cli/provider.html#provider-list","35":"/cli/provider.html#provider-create","36":"/cli/provider.html#provider-delete","37":"/cli/schedule.html#schedule-commands","38":"/cli/schedule.html#schedule-list","39":"/cli/schedule.html#schedule-get","40":"/cli/schedule.html#schedule-create","41":"/cli/schedule.html#schedule-update","42":"/cli/schedule.html#schedule-toggle","43":"/cli/schedule.html#schedule-delete","44":"/getting-started.html#about-memoh","45":"/getting-started.html#what-is-memoh","46":"/getting-started.html#key-features","47":"/getting-started.html#multi-bot-management","48":"/getting-started.html#containerized-isolation","49":"/getting-started.html#memory-engineering","50":"/getting-started.html#multi-platform-support","51":"/getting-started.html#agent-capabilities","52":"/getting-started.html#multi-llm-provider-support","53":"/getting-started.html#mcp-protocol-support","54":"/getting-started.html#scheduled-tasks","55":"/getting-started.html#graphical-configuration","56":"/getting-started.html#cli-tool","57":"/getting-started.html#installation","58":"/getting-started/provider-and-model.html#configure-provider-and-model","59":"/getting-started/provider-and-model.html#prerequisites","60":"/getting-started/provider-and-model.html#step-1-open-the-models-page","61":"/getting-started/provider-and-model.html#step-2-add-a-provider","62":"/getting-started/provider-and-model.html#step-3-add-models","63":"/getting-started/provider-and-model.html#step-4-edit-or-delete","64":"/getting-started/provider-and-model.html#next-steps","65":"/#memoh-documentation","66":"/#documentation","67":"/installation/config-toml.html#config-toml-reference","68":"/installation/config-toml.html#full-example","69":"/installation/config-toml.html#section-reference","70":"/installation/config-toml.html#log","71":"/installation/config-toml.html#server","72":"/installation/config-toml.html#admin","73":"/installation/config-toml.html#auth","74":"/installation/config-toml.html#containerd","75":"/installation/config-toml.html#mcp","76":"/installation/config-toml.html#postgres","77":"/installation/config-toml.html#qdrant","78":"/installation/config-toml.html#agent-gateway","79":"/installation/config-toml.html#web","80":"/installation/config-toml.html#brave","81":"/installation/docker.html#docker-installation","82":"/installation/docker.html#prerequisites","83":"/installation/docker.html#one-click-install","84":"/installation/docker.html#manual-install","85":"/installation/docker.html#access-points","86":"/installation/docker.html#custom-configuration","87":"/installation/docker.html#common-commands","88":"/installation/docker.html#production-checklist","89":"/installation/docker.html#troubleshooting","90":"/installation/docker.html#security-warnings","91":"/troubleshooting.html#troubleshooting","92":"/troubleshooting.html#mcp-container-no-running-task-found-task-mcp-xxx-not-found","93":"/troubleshooting.html#symptom","94":"/troubleshooting.html#cause","95":"/troubleshooting.html#solution","96":"/troubleshooting.html#mcp-container-image-update-not-taking-effect-after-rebuild","97":"/troubleshooting.html#symptom-1","98":"/troubleshooting.html#cause-1","99":"/troubleshooting.html#solution-1"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,1],"1":[1,2,25],"2":[1,2,10],"3":[1,2,23],"4":[2,1,7],"5":[2,2,23],"6":[2,2,29],"7":[2,2,31],"8":[2,2,10],"9":[2,2,19],"10":[3,2,26],"11":[2,1,8],"12":[2,2,12],"13":[2,2,20],"14":[3,2,18],"15":[3,2,36],"16":[3,2,21],"17":[3,2,30],"18":[2,1,1],"19":[3,2,46],"20":[1,2,29],"21":[1,2,6],"22":[2,1,18],"23":[1,2,16],"24":[2,2,39],"25":[2,1,28],"26":[1,2,56],"27":[1,2,20],"28":[1,2,61],"29":[2,1,6],"30":[2,2,14],"31":[2,2,48],"32":[2,2,13],"33":[2,1,8],"34":[2,2,21],"35":[2,2,50],"36":[2,2,13],"37":[2,1,18],"38":[2,2,12],"39":[2,2,11],"40":[2,2,51],"41":[2,2,32],"42":[2,2,14],"43":[2,2,9],"44":[2,1,1],"45":[4,2,50],"46":[2,2,1],"47":[3,4,29],"48":[2,4,33],"49":[2,4,51],"50":[3,4,31],"51":[2,4,57],"52":[4,4,23],"53":[3,4,23],"54":[2,4,22],"55":[2,4,27],"56":[2,4,24],"57":[1,2,35],"58":[4,1,25],"59":[1,4,19],"60":[6,4,34],"61":[5,4,76],"62":[4,4,77],"63":[5,4,29],"64":[2,4,24],"65":[2,1,45],"66":[1,2,32],"67":[3,1,29],"68":[2,3,82],"69":[2,3,1],"70":[2,4,17],"71":[2,4,24],"72":[2,4,18],"73":[2,4,30],"74":[2,4,20],"75":[2,4,44],"76":[2,4,30],"77":[2,4,34],"78":[3,4,34],"79":[2,4,17],"80":[2,4,32],"81":[2,1,42],"82":[1,2,5],"83":[3,2,73],"84":[2,2,44],"85":[2,2,31],"86":[2,2,65],"87":[2,2,18],"88":[2,2,40],"89":[1,2,21],"90":[2,2,27],"91":[1,1,1],"92":[9,1,1],"93":[1,10,46],"94":[1,10,65],"95":[1,10,56],"96":[9,1,1],"97":[1,10,33],"98":[1,10,44],"99":[1,10,55]},"averageFieldLength":[2.2299999999999986,2.8699999999999988,28.37],"storedFields":{"0":{"title":"Auth Commands","titles":[]},"1":{"title":"login","titles":["Auth Commands"]},"2":{"title":"logout","titles":["Auth Commands"]},"3":{"title":"whoami","titles":["Auth Commands"]},"4":{"title":"Bot Commands","titles":[]},"5":{"title":"bot list","titles":["Bot Commands"]},"6":{"title":"bot create","titles":["Bot Commands"]},"7":{"title":"bot update","titles":["Bot Commands"]},"8":{"title":"bot delete","titles":["Bot Commands"]},"9":{"title":"bot chat","titles":["Bot Commands"]},"10":{"title":"bot set-model","titles":["Bot Commands"]},"11":{"title":"Channel Commands","titles":[]},"12":{"title":"channel list","titles":["Channel Commands"]},"13":{"title":"channel info","titles":["Channel Commands"]},"14":{"title":"channel config get","titles":["Channel Commands"]},"15":{"title":"channel config set","titles":["Channel Commands"]},"16":{"title":"channel bind get","titles":["Channel Commands"]},"17":{"title":"channel bind set","titles":["Channel Commands"]},"18":{"title":"Chat Commands","titles":[]},"19":{"title":"Default: Interactive Chat","titles":["Chat Commands"]},"20":{"title":"tui","titles":["Chat Commands"]},"21":{"title":"version","titles":["Chat Commands"]},"22":{"title":"Config Commands","titles":[]},"23":{"title":"config","titles":["Config Commands"]},"24":{"title":"config set","titles":["Config Commands"]},"25":{"title":"Memoh CLI","titles":[]},"26":{"title":"Installation","titles":["Memoh CLI"]},"27":{"title":"Configuration","titles":["Memoh CLI"]},"28":{"title":"Commands","titles":["Memoh CLI"]},"29":{"title":"Model Commands","titles":[]},"30":{"title":"model list","titles":["Model Commands"]},"31":{"title":"model create","titles":["Model Commands"]},"32":{"title":"model delete","titles":["Model Commands"]},"33":{"title":"Provider Commands","titles":[]},"34":{"title":"provider list","titles":["Provider Commands"]},"35":{"title":"provider create","titles":["Provider Commands"]},"36":{"title":"provider delete","titles":["Provider Commands"]},"37":{"title":"Schedule Commands","titles":[]},"38":{"title":"schedule list","titles":["Schedule Commands"]},"39":{"title":"schedule get","titles":["Schedule Commands"]},"40":{"title":"schedule create","titles":["Schedule Commands"]},"41":{"title":"schedule update","titles":["Schedule Commands"]},"42":{"title":"schedule toggle","titles":["Schedule Commands"]},"43":{"title":"schedule delete","titles":["Schedule Commands"]},"44":{"title":"About Memoh","titles":[]},"45":{"title":"What is Memoh?","titles":["About Memoh"]},"46":{"title":"Key Features","titles":["About Memoh"]},"47":{"title":"Multi-Bot Management","titles":["About Memoh","Key Features"]},"48":{"title":"Containerized Isolation","titles":["About Memoh","Key Features"]},"49":{"title":"Memory Engineering","titles":["About Memoh","Key Features"]},"50":{"title":"Multi-Platform Support","titles":["About Memoh","Key Features"]},"51":{"title":"Agent Capabilities","titles":["About Memoh","Key Features"]},"52":{"title":"Multi-LLM Provider Support","titles":["About Memoh","Key Features"]},"53":{"title":"MCP Protocol Support","titles":["About Memoh","Key Features"]},"54":{"title":"Scheduled Tasks","titles":["About Memoh","Key Features"]},"55":{"title":"Graphical Configuration","titles":["About Memoh","Key Features"]},"56":{"title":"CLI Tool","titles":["About Memoh","Key Features"]},"57":{"title":"Installation","titles":["About Memoh"]},"58":{"title":"Configure Provider and Model","titles":[]},"59":{"title":"Prerequisites","titles":["Configure Provider and Model"]},"60":{"title":"Step 1: Open the Models Page","titles":["Configure Provider and Model"]},"61":{"title":"Step 2: Add a Provider","titles":["Configure Provider and Model"]},"62":{"title":"Step 3: Add Models","titles":["Configure Provider and Model"]},"63":{"title":"Step 4: Edit or Delete","titles":["Configure Provider and Model"]},"64":{"title":"Next Steps","titles":["Configure Provider and Model"]},"65":{"title":"Memoh Documentation","titles":[]},"66":{"title":"Documentation","titles":["Memoh Documentation"]},"67":{"title":"config.toml Reference","titles":[]},"68":{"title":"Full Example","titles":["config.toml Reference"]},"69":{"title":"Section Reference","titles":["config.toml Reference"]},"70":{"title":"[log]","titles":["config.toml Reference","Section Reference"]},"71":{"title":"[server]","titles":["config.toml Reference","Section Reference"]},"72":{"title":"[admin]","titles":["config.toml Reference","Section Reference"]},"73":{"title":"[auth]","titles":["config.toml Reference","Section Reference"]},"74":{"title":"[containerd]","titles":["config.toml Reference","Section Reference"]},"75":{"title":"[mcp]","titles":["config.toml Reference","Section Reference"]},"76":{"title":"[postgres]","titles":["config.toml Reference","Section Reference"]},"77":{"title":"[qdrant]","titles":["config.toml Reference","Section Reference"]},"78":{"title":"[agent_gateway]","titles":["config.toml Reference","Section Reference"]},"79":{"title":"[web]","titles":["config.toml Reference","Section Reference"]},"80":{"title":"[brave]","titles":["config.toml Reference","Section Reference"]},"81":{"title":"Docker Installation","titles":[]},"82":{"title":"Prerequisites","titles":["Docker Installation"]},"83":{"title":"One-Click Install","titles":["Docker Installation"]},"84":{"title":"Manual Install","titles":["Docker Installation"]},"85":{"title":"Access Points","titles":["Docker Installation"]},"86":{"title":"Custom Configuration","titles":["Docker Installation"]},"87":{"title":"Common Commands","titles":["Docker Installation"]},"88":{"title":"Production Checklist","titles":["Docker Installation"]},"89":{"title":"Troubleshooting","titles":["Docker Installation"]},"90":{"title":"Security Warnings","titles":["Docker Installation"]},"91":{"title":"Troubleshooting","titles":[]},"92":{"title":"MCP Container: no running task found: task mcp-xxx not found","titles":["Troubleshooting"]},"93":{"title":"Symptom","titles":["Troubleshooting","MCP Container: no running task found: task mcp-xxx not found"]},"94":{"title":"Cause","titles":["Troubleshooting","MCP Container: no running task found: task mcp-xxx not found"]},"95":{"title":"Solution","titles":["Troubleshooting","MCP Container: no running task found: task mcp-xxx not found"]},"96":{"title":"MCP Container: Image update not taking effect after rebuild","titles":["Troubleshooting"]},"97":{"title":"Symptom","titles":["Troubleshooting","MCP Container: Image update not taking effect after rebuild"]},"98":{"title":"Cause","titles":["Troubleshooting","MCP Container: Image update not taking effect after rebuild"]},"99":{"title":"Solution","titles":["Troubleshooting","MCP Container: Image update not taking effect after rebuild"]}},"dirtCount":0,"index":[["$path",{"2":{"97":1}}],["yml",{"2":{"88":1,"95":1}}],["y",{"2":{"83":1}}],["your",{"2":{"19":1,"26":1,"45":1,"55":1,"61":1,"65":1,"68":3,"81":1,"86":2,"95":2}}],["you",{"2":{"19":1,"45":1,"58":2,"59":1,"61":1,"62":1,"63":1,"64":2,"67":1,"81":1,"90":1,"94":2,"95":1}}],["|",{"2":{"83":2}}],["7",{"2":{"73":1}}],["6334",{"2":{"68":1,"77":1}}],["5432",{"2":{"68":1,"76":1}}],["2",{"0":{"61":1},"2":{"62":2,"85":1}}],["24h",{"2":{"73":2}}],["24",{"2":{"49":1}}],["8081",{"2":{"68":1,"78":1,"85":1}}],["8082",{"2":{"59":1,"68":1,"79":1,"85":1}}],["8080",{"2":{"23":1,"24":2,"26":1,"68":1,"71":3,"85":1}}],["keep",{"2":{"49":1,"95":1}}],["keyword",{"2":{"49":1}}],["key",{"0":{"46":1},"1":{"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"15":3,"35":3,"49":1,"61":4,"63":1,"66":1,"68":2,"77":2,"80":3}}],["quot",{"2":{"70":4,"71":2,"72":2,"73":6,"74":4,"75":8,"76":8,"77":6,"78":4,"79":2,"80":4}}],["quit",{"2":{"9":1,"19":1}}],["qwen",{"2":{"52":1}}],["qdrant",{"0":{"77":1},"2":{"49":1,"57":1,"68":1,"77":2,"81":1,"88":1}}],["9am",{"2":{"40":1}}],["9",{"2":{"40":1}}],["xxx",{"0":{"92":1},"1":{"93":1,"94":1,"95":1},"2":{"93":1,"94":1}}],["x26",{"2":{"89":2}}],["xai",{"2":{"35":1,"52":1,"61":1}}],["x3c",{"2":{"19":1,"20":1,"32":1,"36":1,"38":1,"39":2,"40":1,"41":2,"42":2,"43":2,"95":1}}],["32",{"2":{"68":1,"73":1,"86":1}}],["3",{"0":{"62":1},"2":{"31":2,"62":2}}],["hours",{"2":{"49":1}}],["host",{"2":{"23":2,"24":6,"26":1,"27":1,"28":1,"57":1,"68":3,"71":1,"75":1,"76":2,"78":3,"79":2,"81":1,"86":1,"94":2}}],["humans",{"2":{"47":1}}],["have",{"2":{"53":1,"59":1,"64":1}}],["having",{"2":{"45":1}}],["has",{"2":{"45":1,"60":1}}],["http",{"2":{"35":1,"53":1,"59":1,"61":2,"68":1,"71":1,"77":2,"85":3}}],["https",{"2":{"26":1,"61":2,"68":1,"80":1,"83":2,"84":1,"88":1,"90":1}}],["help",{"2":{"26":2}}],["10",{"2":{"68":1,"77":1}}],["100",{"2":{"24":1}}],["11434",{"2":{"35":1,"61":2}}],["1536",{"2":{"31":1,"62":1}}],["168h",{"2":{"68":1,"73":1}}],["168",{"2":{"24":1}}],["192",{"2":{"24":1}}],["1",{"0":{"60":1},"2":{"23":1,"24":2,"26":1,"68":4,"76":1,"77":1,"78":1,"79":1,"85":1}}],["127",{"2":{"23":1,"24":1,"26":1,"68":4,"76":1,"77":1,"78":1,"79":1}}],["0",{"2":{"23":2,"24":2,"26":2,"40":1,"68":8,"76":2,"77":2,"78":2,"79":2}}],["=",{"2":{"23":2,"68":30,"93":2,"95":1}}],["volume",{"2":{"94":1,"98":1}}],["validate",{"2":{"89":1}}],["v2",{"2":{"82":1}}],["v1",{"2":{"61":4,"68":1,"80":1}}],["vector",{"2":{"49":1,"77":1}}],["verify",{"2":{"76":2,"99":1}}],["verification",{"2":{"15":2}}],["version",{"0":{"21":1},"2":{"21":2,"28":2}}],["via",{"2":{"24":1,"25":1,"45":1,"49":1,"53":1,"64":1,"65":1,"67":1,"81":1,"88":1}}],["view",{"2":{"22":1,"27":1,"87":1,"89":2}}],["rm",{"2":{"95":1,"99":1}}],["rpc",{"2":{"93":1}}],["raw",{"2":{"83":2}}],["rand",{"2":{"68":1,"73":1,"86":1}}],["range",{"2":{"52":1}}],["root",{"2":{"68":1,"75":1,"84":1,"86":1,"94":2,"95":2}}],["role",{"2":{"3":1}}],["right",{"2":{"60":1,"62":1,"63":1}}],["rich",{"2":{"51":1}}],["runc",{"2":{"94":1}}],["runs",{"2":{"48":1,"65":1,"75":1,"81":1,"90":1}}],["run",{"2":{"26":1,"28":1,"40":1,"54":1,"65":1,"68":1,"74":1,"81":1,"83":1,"86":1,"90":1,"95":1}}],["running",{"0":{"92":1},"1":{"93":1,"94":1,"95":1},"2":{"19":1,"25":1,"26":1,"57":1,"59":1,"83":1,"86":1,"93":1}}],["recreate",{"2":{"99":1}}],["recommended",{"2":{"57":1,"66":1,"81":1,"86":1}}],["re",{"2":{"99":1}}],["remove",{"2":{"99":1}}],["rebuilt",{"2":{"98":1}}],["rebuilding",{"2":{"97":1}}],["rebuild",{"0":{"96":1},"1":{"97":1,"98":1,"99":1},"2":{"87":1,"89":1}}],["regular",{"2":{"88":1}}],["repository",{"2":{"83":1,"84":1}}],["replies",{"2":{"50":1}}],["request",{"2":{"77":1,"94":1}}],["requires",{"2":{"83":1}}],["required",{"2":{"31":1,"55":1,"62":1,"73":1}}],["require",{"2":{"28":1,"37":1,"76":1}}],["resource",{"2":{"88":1}}],["restrict",{"2":{"88":1}}],["restarts",{"2":{"98":1}}],["restarting",{"2":{"97":1}}],["restart",{"2":{"87":1,"95":2,"99":2}}],["res",{"2":{"68":1,"80":1}}],["responses",{"2":{"19":1}}],["reference",{"0":{"67":1,"69":1},"1":{"68":1,"69":1,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"76":2,"77":2,"78":2,"79":2,"80":2},"2":{"57":1,"66":1,"84":1,"86":2}}],["retrieval",{"2":{"49":1}}],["reactions",{"2":{"51":1}}],["reachable",{"2":{"26":1}}],["reads",{"2":{"78":1}}],["read",{"2":{"48":1,"51":1}}],["real",{"2":{"19":1,"51":1}}],["4",{"0":{"63":1},"2":{"10":1,"31":2,"32":1,"62":2}}],["generated",{"2":{"83":1}}],["generate",{"2":{"73":1,"83":1,"86":1}}],["getting",{"2":{"66":1}}],["get",{"0":{"14":1,"16":1,"39":1},"2":{"14":2,"16":2,"28":2,"39":2,"57":1,"80":1}}],["gateway",{"0":{"78":1},"2":{"68":1,"78":2,"81":1,"85":1}}],["guide",{"2":{"58":1}}],["graphical",{"0":{"55":1}}],["groups",{"2":{"47":1}}],["google",{"2":{"35":1,"52":1,"61":1}}],["global",{"2":{"26":2}}],["git",{"2":{"26":1,"82":1,"84":1}}],["githubusercontent",{"2":{"83":2}}],["github",{"2":{"26":1,"84":1}}],["g",{"2":{"12":1,"15":1,"17":1,"24":1,"31":1,"40":1,"61":2,"62":2,"71":1,"73":1,"88":1,"93":1,"94":1,"97":1}}],["gpt",{"2":{"10":1,"31":2,"32":1,"62":2}}],["gt",{"2":{"5":1,"6":3,"7":2,"10":2,"14":1,"15":5,"16":1,"17":3,"19":2,"20":1,"24":2,"31":5,"34":1,"35":4,"37":1,"40":5,"41":5}}],["effect",{"0":{"96":1},"1":{"97":1,"98":1,"99":1}}],["errors",{"2":{"97":1}}],["error=",{"2":{"93":2}}],["error",{"2":{"70":1,"93":1}}],["each",{"2":{"47":1,"48":2,"49":1,"53":1,"63":1,"65":1,"75":1}}],["edit",{"0":{"63":1},"2":{"45":1,"51":1,"63":2,"65":1,"86":1}}],["everything",{"2":{"81":1}}],["every",{"2":{"45":1}}],["email",{"2":{"68":1,"72":2}}],["embedded",{"2":{"98":1}}],["embeddings",{"2":{"62":1}}],["embedding",{"2":{"10":2,"29":1,"31":7,"58":1,"62":6,"64":1}}],["embed",{"2":{"62":1}}],["empty",{"2":{"40":1,"60":1,"80":1}}],["etc",{"2":{"33":1}}],["e",{"2":{"12":1,"15":1,"17":1,"24":1,"31":1,"40":1,"61":2,"62":2,"71":1,"73":1,"88":1,"93":1,"94":1,"97":1}}],["exists",{"2":{"95":1,"98":1}}],["exist",{"2":{"94":1}}],["exit",{"2":{"9":1,"19":1}}],["exec",{"2":{"93":1,"95":1,"97":1,"99":2}}],["executable",{"2":{"97":1}}],["execution",{"2":{"54":1}}],["executions",{"2":{"40":1,"41":1}}],["execute",{"2":{"45":1,"48":1,"51":1,"93":1}}],["expiration",{"2":{"73":1}}],["expires",{"2":{"68":1,"73":1}}],["expressions",{"2":{"54":1}}],["explicitly",{"2":{"20":1}}],["extra",{"2":{"57":1}}],["extracts",{"2":{"49":1}}],["external",{"2":{"53":1}}],["extend",{"2":{"51":1}}],["examples",{"2":{"24":1,"31":1,"34":1,"35":1}}],["example",{"0":{"68":1},"2":{"10":1,"23":1,"24":1,"32":1,"36":1,"61":2,"62":1,"68":1}}],["entrypoint",{"2":{"98":2}}],["enter",{"2":{"9":1,"19":1}}],["environments",{"2":{"90":1}}],["engineered",{"2":{"49":1}}],["engineering",{"0":{"49":1}}],["ensure",{"2":{"26":1}}],["encrypt",{"2":{"15":2}}],["enabled",{"2":{"40":2,"41":1}}],["enable",{"2":{"10":1,"41":1,"42":1,"62":1}}],["under",{"2":{"62":1}}],["unified",{"2":{"50":1}}],["unlimited",{"2":{"40":1}}],["updating",{"2":{"97":1}}],["update",{"0":{"7":1,"41":1,"96":1},"1":{"97":1,"98":1,"99":1},"2":{"7":2,"22":1,"24":1,"28":3,"41":2,"95":1}}],["up",{"2":{"47":1,"55":1,"83":1,"84":1,"86":1,"87":2,"89":1,"95":1}}],["ui",{"2":{"20":1,"28":1,"55":1,"58":1,"59":1,"79":2,"81":1,"85":1}}],["using",{"2":{"54":1}}],["used",{"2":{"84":1}}],["uses",{"2":{"67":1,"84":1,"94":1,"99":1}}],["use",{"2":{"19":1,"22":1,"26":1,"27":1,"61":1,"63":1,"71":1,"83":1,"86":1,"90":2,"93":1,"94":1}}],["users",{"2":{"94":2}}],["user",{"2":{"3":2,"5":2,"11":1,"16":1,"17":4,"28":2,"68":1,"76":2}}],["username",{"2":{"1":2,"3":1,"68":1,"72":2}}],["usage",{"2":{"10":1}}],["url",{"2":{"6":2,"7":2,"35":4,"61":4,"63":1,"68":2,"77":2,"80":2,"85":1}}],["npx",{"2":{"97":1}}],["nano",{"2":{"86":1}}],["name==$",{"2":{"98":1}}],["named",{"2":{"94":1}}],["namespace",{"2":{"68":1,"74":2}}],["name>",{"2":{"36":1}}],["name",{"2":{"3":1,"6":4,"7":3,"31":4,"34":3,"35":4,"36":1,"40":4,"41":3,"61":4,"62":2,"63":1,"76":1,"77":1,"78":1}}],["never",{"2":{"98":1}}],["necessary",{"2":{"88":1}}],["nerdctl",{"2":{"81":1}}],["next",{"0":{"64":1}}],["need",{"2":{"58":1,"62":1,"81":1}}],["network",{"2":{"45":1,"48":1,"65":1}}],["new",{"2":{"6":1,"31":1,"35":1,"40":1,"61":1,"98":1,"99":2}}],["n",{"2":{"31":1,"40":1,"41":1,"95":1,"98":1,"99":2}}],["node",{"2":{"97":1,"99":1}}],["nomic",{"2":{"62":1}}],["none",{"2":{"60":1}}],["note",{"2":{"95":1}}],["notfound",{"2":{"93":1}}],["not",{"0":{"92":1,"96":1},"1":{"93":1,"94":1,"95":1,"97":1,"98":1,"99":1},"2":{"24":1,"81":1,"93":3,"94":1,"97":1}}],["no",{"0":{"92":1},"1":{"93":1,"94":1,"95":1},"2":{"19":1,"55":1,"57":1,"83":1,"84":1,"89":1,"93":1,"94":1}}],["d",{"2":{"83":1,"84":1,"86":1,"87":2,"89":1}}],["does",{"2":{"94":1}}],["down",{"2":{"87":1}}],["do",{"2":{"81":1}}],["documentation",{"0":{"65":1,"66":1},"1":{"66":1},"2":{"56":1}}],["dockerfile",{"2":{"97":1}}],["docker",{"0":{"81":1},"1":{"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"26":1,"57":2,"59":1,"66":1,"67":2,"68":1,"71":1,"75":2,"78":1,"81":2,"82":2,"83":6,"84":5,"86":6,"87":4,"88":1,"89":4,"94":1,"95":6,"98":2,"99":1}}],["days",{"2":{"73":1}}],["data",{"2":{"68":4,"75":7,"83":3,"88":1,"94":5,"95":3,"98":1}}],["database",{"2":{"49":1,"68":1,"76":4,"86":1}}],["daily",{"2":{"40":1,"47":1}}],["dashscope",{"2":{"35":1,"52":1,"61":1}}],["directory",{"2":{"67":1,"83":2,"94":1}}],["different",{"2":{"62":1}}],["dialog",{"2":{"61":1,"62":1}}],["disable",{"2":{"41":1,"42":1,"68":1,"76":2,"80":1}}],["disabled",{"2":{"40":2,"41":1}}],["display",{"2":{"3":1,"6":1,"7":1,"31":1,"61":1,"62":2,"72":1}}],["dimensions",{"2":{"31":4,"62":1}}],["debug",{"2":{"70":1}}],["detail",{"2":{"99":1}}],["details",{"2":{"60":1,"86":1}}],["detection",{"2":{"49":1}}],["dependencies",{"2":{"57":1}}],["developers",{"2":{"56":1}}],["designed",{"2":{"56":1}}],["desc",{"2":{"40":1,"41":1,"93":1}}],["descriptions",{"2":{"86":1}}],["description",{"2":{"5":1,"6":1,"7":1,"10":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"24":1,"28":1,"31":1,"34":1,"35":1,"40":4,"41":3,"61":1,"62":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1}}],["delegate",{"2":{"51":1}}],["delete",{"0":{"8":1,"32":1,"36":1,"43":1,"63":1},"2":{"8":2,"28":4,"32":3,"36":3,"43":2,"63":2,"93":1,"99":1}}],["deeply",{"2":{"49":1}}],["defaults",{"2":{"83":2}}],["default",{"0":{"19":1},"2":{"20":1,"24":1,"26":1,"28":1,"49":1,"67":1,"68":1,"70":1,"71":1,"72":1,"73":1,"74":2,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"84":1,"85":1,"88":1,"90":1,"95":1,"98":1,"99":2}}],["old",{"2":{"98":1,"99":1}}],["ollama",{"2":{"33":1,"35":3,"36":1,"52":1,"61":9,"62":2}}],["override",{"2":{"88":1}}],["overlayfs",{"2":{"68":1,"75":1}}],["other",{"2":{"47":1,"48":1,"55":1}}],["otherwise",{"2":{"19":1}}],["own",{"2":{"45":3,"48":1,"53":1,"55":1,"65":2,"86":1}}],["owner",{"2":{"5":3}}],["official",{"2":{"83":1}}],["of",{"2":{"26":1,"49":1,"51":1,"52":1,"61":1,"88":1}}],["once",{"2":{"64":1}}],["on",{"2":{"57":1,"63":1,"81":1,"86":1}}],["one",{"0":{"83":1},"2":{"19":1,"57":1,"58":1,"62":2,"64":2,"80":1}}],["only",{"2":{"5":1,"62":1,"84":1,"90":1}}],["opt",{"2":{"75":1,"94":1,"95":1}}],["optional",{"2":{"15":2,"40":2,"62":1,"77":1}}],["optionally",{"2":{"6":1,"34":1}}],["option",{"2":{"5":1,"6":1,"7":1,"10":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"24":1,"31":1,"34":1,"35":1,"40":1,"41":1}}],["options",{"2":{"5":1,"6":1,"7":1,"10":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"24":2,"31":1,"34":1,"35":1,"40":1,"41":1}}],["operations",{"2":{"51":1}}],["openssl",{"2":{"68":1,"73":1,"86":1}}],["openai",{"2":{"31":2,"33":1,"34":1,"35":2,"52":1,"61":8,"62":3}}],["open",{"0":{"60":1},"2":{"17":3,"60":1,"62":1,"94":1}}],["omitted",{"2":{"13":1}}],["orchestrated",{"2":{"81":1}}],["or",{"0":{"63":1},"2":{"6":1,"7":1,"10":2,"17":1,"22":1,"24":1,"28":1,"31":1,"42":1,"47":3,"57":1,"60":1,"62":4,"63":2,"65":1,"70":1,"71":1,"81":1,"94":1}}],["outside",{"2":{"95":1}}],["output",{"2":{"23":1}}],["out",{"2":{"2":1,"28":1}}],["ls",{"2":{"99":1}}],["level=error",{"2":{"93":1}}],["level=warn",{"2":{"93":1}}],["level",{"2":{"68":1,"70":2}}],["left",{"2":{"60":2,"61":2,"62":1}}],["leave",{"2":{"80":1}}],["least",{"2":{"58":1,"62":1,"64":1}}],["lean",{"2":{"49":1}}],["larger",{"2":{"99":1}}],["lark",{"2":{"45":1,"50":1,"65":1}}],["latest",{"2":{"68":1,"75":1,"99":1}}],["language",{"2":{"49":1}}],["last",{"2":{"49":1}}],["layer",{"2":{"49":1}}],["library",{"2":{"68":1,"75":1,"99":1}}],["limits",{"2":{"54":1,"88":2}}],["like",{"2":{"45":1,"61":2,"97":1}}],["links",{"2":{"66":1}}],["link",{"2":{"26":1}}],["line",{"2":{"25":1,"50":1,"56":1,"66":1}}],["listen",{"2":{"71":1}}],["list",{"0":{"5":1,"12":1,"30":1,"34":1,"38":1},"2":{"5":2,"12":2,"28":5,"30":2,"34":4,"38":2,"60":1,"62":1,"63":1}}],["llama3",{"2":{"62":2}}],["llm",{"0":{"52":1},"2":{"28":1,"33":1,"52":1,"58":1}}],["ll",{"2":{"19":1}}],["looks",{"2":{"67":1}}],["loads",{"2":{"49":1}}],["long",{"2":{"45":1,"65":1}}],["locally",{"2":{"95":1}}],["localhost",{"2":{"35":1,"59":1,"61":2,"85":3}}],["local",{"2":{"12":1,"61":3,"95":1}}],["logs",{"2":{"87":2,"89":4,"93":2}}],["logged",{"2":{"3":1,"59":1}}],["logout",{"0":{"2":1},"2":{"2":1,"28":1}}],["log",{"0":{"70":1},"2":{"1":1,"2":1,"28":2,"68":1,"70":2}}],["login",{"0":{"1":1},"2":{"1":1,"28":2,"72":2,"85":1}}],["lt",{"2":{"5":1,"6":3,"7":2,"10":2,"14":1,"15":5,"16":1,"17":3,"19":2,"20":1,"24":2,"31":5,"34":1,"35":4,"37":1,"40":5,"41":5}}],["were",{"2":{"99":1}}],["web",{"0":{"79":1},"2":{"50":2,"51":1,"55":1,"57":1,"58":1,"59":1,"65":1,"68":1,"79":2,"80":2,"81":1,"85":1}}],["workspace",{"2":{"83":2}}],["was",{"2":{"99":1}}],["way",{"2":{"81":1}}],["warnings",{"0":{"90":1}}],["warn",{"2":{"70":1}}],["walks",{"2":{"58":1}}],["will",{"2":{"83":1}}],["wide",{"2":{"52":1}}],["without",{"2":{"48":1}}],["within",{"2":{"45":1,"48":1}}],["with",{"2":{"4":1,"9":1,"19":3,"20":1,"25":1,"28":1,"30":1,"45":1,"47":2,"48":2,"50":1,"51":1,"57":1,"61":1,"65":2,"67":1,"73":1,"83":1,"84":1,"86":1,"88":1,"90":1,"94":1,"97":1}}],["write",{"2":{"48":1,"51":1}}],["while",{"2":{"85":1}}],["which",{"2":{"19":1}}],["when",{"2":{"83":1,"86":2,"93":1,"94":1}}],["where",{"2":{"75":1}}],["who",{"2":{"56":1}}],["whoami",{"0":{"3":1},"2":{"3":1,"28":1}}],["what",{"0":{"45":1},"2":{"66":1}}],["msg=",{"2":{"93":2}}],["must",{"2":{"90":1}}],["multiple",{"2":{"47":1,"50":1}}],["multi",{"0":{"47":1,"50":1,"52":1},"2":{"45":1,"49":1,"65":1}}],["multimodal",{"2":{"30":1,"31":2,"62":1}}],["minutes",{"2":{"85":1}}],["mistral",{"2":{"35":1,"52":1,"61":1}}],["missing",{"2":{"35":1}}],["mcp",{"0":{"53":1,"75":1,"92":2,"96":1},"1":{"93":2,"94":2,"95":2,"97":1,"98":1,"99":1},"2":{"53":2,"55":1,"68":2,"75":3,"93":1,"94":2,"95":2,"97":2,"98":2,"99":3}}],["machine",{"2":{"94":1}}],["may",{"2":{"85":1,"93":1}}],["main",{"2":{"78":1,"81":1,"83":2,"89":1,"90":1}}],["manual",{"0":{"84":1},"2":{"54":1,"57":1}}],["managing",{"2":{"25":1}}],["management",{"0":{"47":1},"2":{"51":1,"55":1,"56":2}}],["manage",{"2":{"4":1,"11":1,"29":1,"33":1,"37":1,"47":1,"51":1}}],["max",{"2":{"40":3,"41":2,"54":1}}],["markdown",{"2":{"50":1}}],["mark",{"2":{"31":1}}],["mode",{"2":{"76":1}}],["models",{"0":{"60":1,"62":1},"2":{"25":1,"28":1,"29":1,"30":1,"31":2,"55":1,"58":1,"60":2,"62":2,"64":1,"66":1}}],["model",{"0":{"10":1,"29":1,"30":1,"31":1,"32":1,"58":1},"1":{"30":1,"31":1,"32":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"10":7,"28":2,"30":1,"31":10,"32":7,"53":1,"56":1,"60":1,"62":8,"63":2,"64":2,"66":1,"75":1}}],["mounted",{"2":{"75":1,"84":1,"94":1}}],["mount",{"2":{"67":1,"68":1,"75":1,"94":2,"95":1}}],["more",{"2":{"45":1,"52":1,"56":1}}],["most",{"2":{"28":1}}],["monorepo",{"2":{"26":1}}],["my",{"2":{"10":1,"31":2,"34":1,"35":1,"36":1,"61":1}}],["messaging",{"2":{"50":1,"51":1}}],["message",{"2":{"19":1}}],["messages",{"2":{"9":1,"51":1}}],["mem0",{"2":{"49":1}}],["members",{"2":{"47":1}}],["member",{"2":{"45":1,"65":1}}],["memories",{"2":{"49":1,"51":1,"77":1}}],["memory",{"0":{"49":1},"2":{"10":2,"45":2,"49":3,"51":1,"62":1,"65":2,"68":1,"77":1,"88":1}}],["memoh123",{"2":{"83":1}}],["memohai",{"2":{"26":1,"83":2,"84":1}}],["memoh",{"0":{"25":1,"44":1,"45":1,"65":1},"1":{"26":1,"27":1,"28":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"66":1},"2":{"1":2,"19":2,"20":1,"22":1,"24":1,"25":3,"26":6,"27":4,"28":2,"31":2,"34":1,"35":1,"45":1,"57":1,"59":1,"65":1,"66":2,"67":2,"68":2,"75":2,"76":1,"81":1,"83":4,"84":2,"86":1,"94":3,"95":2,"99":3}}],["metadata",{"2":{"13":1}}],["brave",{"0":{"80":1},"2":{"51":1,"68":2,"80":5}}],["bm25",{"2":{"49":1}}],["built",{"2":{"50":1,"51":1,"75":1,"84":1}}],["buildkit",{"2":{"81":1}}],["build",{"2":{"26":1,"47":1,"83":1,"85":1,"87":1,"89":1}}],["button",{"2":{"61":1}}],["but",{"2":{"20":1,"94":1}}],["binding",{"2":{"16":1,"17":1,"28":1}}],["bind",{"0":{"16":1,"17":1},"2":{"16":1,"17":1,"78":1,"79":1}}],["before",{"2":{"58":1,"90":1}}],["between",{"2":{"52":1}}],["bedrock",{"2":{"35":1,"52":1,"61":1}}],["behavior",{"2":{"20":1}}],["be",{"2":{"7":1,"19":1,"99":1}}],["by",{"2":{"5":2,"32":1,"34":2,"36":1,"39":1,"48":1,"49":2,"67":1,"84":1}}],["bottom",{"2":{"61":1}}],["bots",{"2":{"4":1,"5":1,"25":2,"28":1,"37":1,"45":1,"47":4,"48":1,"51":1,"55":1,"58":1,"64":1,"65":1,"66":1,"94":1}}],["bot",{"0":{"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"47":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"2":{"5":1,"6":4,"7":5,"8":2,"9":2,"10":4,"11":1,"14":2,"15":2,"19":6,"20":4,"28":4,"37":2,"38":3,"39":2,"40":3,"41":2,"42":2,"43":2,"45":1,"47":1,"48":1,"51":1,"53":1,"55":1,"56":1,"64":2,"65":1,"74":1,"75":2,"93":2,"95":1,"99":2}}],["base64",{"2":{"68":1,"73":1,"86":1}}],["based",{"2":{"37":1}}],["base",{"2":{"35":3,"61":4,"63":1,"68":2,"77":1,"80":2}}],["bashdocker",{"2":{"87":1,"89":1,"95":2,"99":3}}],["bashcp",{"2":{"86":1}}],["bashcurl",{"2":{"83":2}}],["bashcd",{"2":{"26":2}}],["bashgit",{"2":{"26":1,"84":1}}],["bashmemoh",{"2":{"1":1,"2":1,"3":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":2,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"23":1,"24":2,"30":1,"31":2,"32":2,"34":2,"35":2,"36":2,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"86":1}}],["backups",{"2":{"88":2}}],["back",{"2":{"3":1}}],["fulfil",{"2":{"94":1}}],["full",{"0":{"68":1},"2":{"50":2,"76":1,"89":1}}],["found",{"0":{"92":2},"1":{"93":2,"94":2,"95":2},"2":{"93":3,"97":1}}],["format",{"2":{"68":1,"70":2}}],["form",{"2":{"62":1}}],["for",{"2":{"1":1,"6":1,"8":1,"10":1,"13":1,"16":1,"24":2,"25":1,"31":3,"35":2,"37":1,"38":1,"40":3,"47":1,"50":1,"51":1,"56":2,"57":1,"61":3,"62":6,"66":1,"67":1,"71":1,"72":1,"73":1,"74":1,"75":1,"77":2,"80":1,"83":2,"84":1,"86":3,"88":1}}],["f",{"2":{"87":1}}],["fssl",{"2":{"83":2}}],["freely",{"2":{"48":1}}],["from",{"2":{"13":1,"26":1,"49":1,"62":1,"68":1,"75":1,"83":1,"86":1,"95":1,"99":2}}],["features",{"0":{"46":1},"1":{"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"66":1}}],["feishu",{"2":{"12":1,"15":4,"17":4,"45":1,"50":1,"65":1}}],["flexibly",{"2":{"52":1}}],["flip",{"2":{"42":1}}],["flag",{"2":{"30":1}}],["fi",{"2":{"98":1}}],["firewall",{"2":{"88":1}}],["first",{"2":{"28":1,"85":1}}],["field",{"2":{"61":1,"62":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"86":1}}],["fields",{"2":{"35":1,"57":1,"84":1}}],["file",{"2":{"67":1,"84":1,"86":1,"94":1,"97":1}}],["filesystem",{"2":{"48":1}}],["files",{"2":{"45":1,"48":1,"51":1,"65":1}}],["fill",{"2":{"61":1,"62":1}}],["filter",{"2":{"5":2,"34":2,"60":1}}],["fail",{"2":{"97":1}}],["failed",{"2":{"93":2,"94":1}}],["fails",{"2":{"3":1,"94":1}}],["facts",{"2":{"49":1}}],["family",{"2":{"47":1}}],["falls",{"2":{"3":1}}],["imported",{"2":{"98":1,"99":1}}],["import",{"2":{"98":2,"99":1}}],["image",{"0":{"96":1},"1":{"97":1,"98":1,"99":1},"2":{"68":1,"75":3,"97":1,"98":7,"99":3}}],["images",{"2":{"62":1,"85":1,"98":1,"99":2}}],["io",{"2":{"68":1,"75":1,"99":1}}],["icon",{"2":{"61":1}}],["it",{"2":{"22":1,"25":1,"45":1,"67":1,"86":1,"94":1,"95":1,"99":2}}],["its",{"2":{"22":1,"25":1,"45":2,"48":1,"53":1,"65":1}}],["isolated",{"2":{"48":1,"65":1}}],["isolation",{"0":{"48":1}}],["is",{"0":{"45":1},"2":{"13":1,"25":1,"26":3,"45":1,"59":1,"65":1,"66":1,"75":1,"78":1,"81":1,"84":2,"86":1,"94":1,"98":2}}],["if",{"2":{"3":1,"13":1,"24":1,"60":1,"62":1,"95":2,"98":1,"99":1}}],["id=xxx",{"2":{"93":1}}],["id>",{"2":{"19":1,"20":1,"32":1,"38":1,"39":2,"40":1,"41":2,"42":2,"43":2,"95":1}}],["id",{"2":{"3":1,"5":2,"7":2,"8":1,"9":1,"10":4,"14":1,"15":4,"17":8,"19":3,"20":2,"31":6,"32":1,"37":1,"39":1,"62":1}}],["initialize",{"2":{"85":1}}],["int",{"2":{"76":1,"77":1,"78":1,"79":1}}],["integration",{"2":{"51":1}}],["interfaces",{"2":{"71":1}}],["interface",{"2":{"50":1}}],["interfering",{"2":{"48":1}}],["interactively",{"2":{"7":1}}],["interactive",{"0":{"19":1},"2":{"1":1,"9":1,"19":1,"24":1,"28":1,"31":1,"35":1}}],["includes",{"2":{"57":1,"81":1}}],["instead",{"2":{"95":1}}],["install",{"0":{"83":1,"84":1},"2":{"26":2,"81":1,"83":4}}],["installation",{"0":{"26":1,"57":1,"81":1},"1":{"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"26":1,"59":1,"66":2,"67":1}}],["inside",{"2":{"51":1,"75":1,"81":1,"94":2}}],["inspired",{"2":{"49":1}}],["independent",{"2":{"45":1,"53":1}}],["invoked",{"2":{"20":1}}],["inactive",{"2":{"6":2,"7":2}}],["information",{"2":{"51":1}}],["info",{"0":{"13":1},"2":{"3":1,"7":1,"13":1,"68":1,"70":2}}],["in",{"2":{"1":2,"3":1,"19":1,"22":1,"27":2,"28":1,"40":1,"47":1,"48":1,"50":1,"51":1,"59":1,"60":1,"61":3,"62":1,"63":2,"64":2,"65":1,"67":1,"68":1,"71":1,"72":1,"73":1,"75":1,"77":1,"78":1,"84":2,"90":2,"94":1,"95":2,"97":1,"98":2}}],["ctr",{"2":{"95":1,"98":1,"99":2}}],["cpu",{"2":{"88":1}}],["certs",{"2":{"88":1}}],["checklist",{"0":{"88":1}}],["check",{"2":{"83":1,"98":1}}],["changes",{"2":{"86":1}}],["change",{"2":{"27":1,"68":1,"72":1,"86":2,"88":1,"90":1}}],["channels",{"2":{"11":1,"13":1,"25":1,"28":1,"55":1,"66":1}}],["channel",{"0":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1},"1":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1},"2":{"11":1,"12":2,"13":3,"14":3,"15":3,"16":3,"17":3,"28":2,"50":1,"56":1}}],["chatting",{"2":{"25":1}}],["chat",{"0":{"9":1,"18":1,"19":1},"1":{"19":1,"20":1,"21":1},"2":{"4":1,"9":2,"10":3,"19":3,"20":3,"28":4,"29":1,"31":2,"45":1,"47":1,"50":2,"56":1,"58":1,"62":4,"64":1,"65":1,"66":1}}],["custom",{"0":{"86":1},"2":{"67":1}}],["currently",{"2":{"15":1,"17":1}}],["current",{"2":{"3":1,"16":1,"17":1,"23":1,"28":1,"42":1,"67":1}}],["cmd",{"2":{"40":1,"41":1}}],["credentials",{"2":{"83":1}}],["creation",{"2":{"62":1}}],["creating",{"2":{"58":1}}],["creates",{"2":{"94":1}}],["created",{"2":{"93":1}}],["create",{"0":{"6":1,"31":1,"35":1,"40":1},"2":{"6":2,"28":4,"31":5,"35":4,"40":4,"45":1,"47":1,"51":1,"64":1,"65":1}}],["cron",{"2":{"37":1,"40":2,"41":1,"54":1}}],["cd",{"2":{"26":1,"84":1}}],["clean",{"2":{"95":1}}],["clear",{"2":{"2":1,"28":1}}],["cloud",{"2":{"77":1}}],["clone",{"2":{"26":1,"83":1,"84":2}}],["click",{"0":{"83":1},"2":{"57":1,"60":1,"61":2,"62":1}}],["client",{"2":{"35":2,"61":1}}],["cli",{"0":{"25":1,"56":1},"1":{"26":1,"27":1,"28":1},"2":{"21":1,"22":1,"25":1,"26":4,"27":1,"28":2,"50":1,"56":1,"65":1,"66":1}}],["copy",{"2":{"86":1}}],["collection",{"2":{"68":1,"77":2}}],["collaborate",{"2":{"47":1}}],["coding",{"2":{"55":1}}],["code",{"2":{"51":1,"93":1,"94":2}}],["count",{"2":{"54":1}}],["connections",{"2":{"53":1}}],["connecting",{"2":{"50":1}}],["connect",{"2":{"53":1}}],["context",{"2":{"49":1,"53":1,"75":1}}],["containers",{"2":{"48":1,"74":1,"81":1,"88":1,"94":1,"95":1}}],["containerd",{"0":{"74":1},"2":{"48":1,"57":1,"68":3,"74":4,"75":1,"81":2,"89":2,"93":1,"94":3,"95":2,"97":2,"98":4,"99":5}}],["containerized",{"0":{"48":1},"2":{"45":1,"65":1}}],["container",{"0":{"92":1,"96":1},"1":{"93":1,"94":1,"95":1,"97":1,"98":1,"99":1},"2":{"40":1,"45":2,"48":1,"51":2,"65":1,"75":4,"90":1,"93":3,"94":2,"95":2,"97":1,"98":1,"99":2}}],["conversation",{"2":{"49":2,"62":1}}],["config=",{"2":{"86":1}}],["configure",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"54":1,"55":1,"58":1,"66":1,"88":1}}],["configured",{"2":{"26":1}}],["configurable",{"2":{"51":1}}],["configuration",{"0":{"27":1,"55":1,"86":1},"2":{"11":1,"14":1,"15":1,"56":1,"57":1,"60":1,"67":1,"75":1,"83":1,"84":1,"89":1}}],["config",{"0":{"14":1,"15":1,"22":1,"23":1,"24":1,"67":1},"1":{"23":1,"24":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1},"2":{"14":1,"15":1,"22":2,"23":2,"24":4,"27":4,"28":3,"57":1,"66":1,"67":3,"83":1,"84":5,"86":11,"89":1,"94":1,"95":6}}],["confirmation",{"2":{"8":1}}],["common",{"0":{"87":1}}],["command=date",{"2":{"93":1}}],["command",{"2":{"25":1,"26":1,"28":2,"40":3,"41":2,"50":1,"56":1,"66":1}}],["commands",{"0":{"0":1,"4":1,"11":1,"18":1,"22":1,"28":1,"29":1,"33":1,"37":1,"87":1},"1":{"1":1,"2":1,"3":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"19":1,"20":1,"21":1,"23":1,"24":1,"30":1,"31":1,"32":1,"34":1,"35":1,"36":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1},"2":{"22":1,"28":1,"37":1,"45":1,"48":1,"51":1,"54":1,"65":1,"93":1}}],["come",{"2":{"51":1}}],["compose",{"2":{"57":1,"78":1,"81":1,"82":1,"83":3,"84":3,"86":3,"87":5,"88":1,"89":5,"95":2,"99":1}}],["complex",{"2":{"51":1}}],["compaction",{"2":{"49":1}}],["compat",{"2":{"35":1,"61":1}}],["computer",{"2":{"45":1}}],["com",{"2":{"24":1,"26":1,"61":2,"68":2,"80":2,"83":2,"84":1}}],["cause",{"0":{"94":1,"98":1}}],["cache",{"2":{"89":1}}],["ca",{"2":{"76":1}}],["card",{"2":{"63":1}}],["capabilities",{"0":{"51":1},"2":{"51":1}}],["can",{"2":{"5":1,"7":1,"45":1,"47":1,"48":1,"53":1,"61":1,"63":1,"64":1,"67":1}}],["calls",{"2":{"40":2,"41":1}}],["call",{"2":{"3":1,"78":1}}],["js",{"2":{"97":1,"99":1}}],["json",{"2":{"1":1,"27":1,"70":1}}],["jwt",{"2":{"1":1,"68":2,"73":4,"83":2,"86":1}}],["~",{"2":{"1":1,"22":1,"27":2,"83":2}}],["symptom",{"0":{"93":1,"97":1}}],["system",{"2":{"45":2,"51":1,"65":2}}],["should",{"2":{"99":1}}],["shows",{"2":{"62":1}}],["show",{"2":{"3":1,"13":1,"21":1,"23":1,"28":3,"93":2}}],["shif",{"2":{"98":1}}],["sh",{"2":{"83":4,"98":1}}],["scripts",{"2":{"83":2}}],["script",{"2":{"83":2,"98":1}}],["scheduled",{"0":{"54":1},"2":{"54":1}}],["schedule",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1},"1":{"38":1,"39":1,"40":1,"41":1,"42":1,"43":1},"2":{"28":1,"37":1,"38":1,"39":2,"40":3,"41":3,"42":2,"43":2}}],["schedules",{"2":{"25":1,"28":1,"37":1,"38":1,"66":1}}],["schema",{"2":{"13":1}}],["significantly",{"2":{"99":1}}],["signing",{"2":{"73":1}}],["size",{"2":{"99":1}}],["since",{"2":{"94":1,"98":1}}],["silently",{"2":{"83":1}}],["silent",{"2":{"83":1}}],["sidebar",{"2":{"60":1,"61":1,"64":1}}],["ssl",{"2":{"76":1,"88":1}}],["sslmode",{"2":{"68":1,"76":1}}],["sse",{"2":{"53":1}}],["snapshotter",{"2":{"68":1,"75":2}}],["so",{"2":{"99":1}}],["solution",{"0":{"95":1,"99":1}}],["sock",{"2":{"68":1,"74":1}}],["socket",{"2":{"68":1,"74":2}}],["source",{"2":{"26":1,"94":1}}],["save",{"2":{"61":1}}],["same",{"2":{"20":1,"62":1}}],["skips",{"2":{"98":1}}],["skill",{"2":{"51":1}}],["skills",{"2":{"51":2,"55":1}}],["sk",{"2":{"61":1}}],["switch",{"2":{"52":1}}],["specific",{"2":{"95":1}}],["specified",{"2":{"54":1}}],["specify",{"2":{"19":1,"37":1}}],["specialized",{"2":{"51":1}}],["small",{"2":{"31":2,"62":2}}],["survives",{"2":{"98":1}}],["such",{"2":{"94":1}}],["subagents",{"2":{"51":2}}],["subcommand",{"2":{"19":1}}],["support",{"0":{"50":1,"52":1,"53":1},"2":{"50":2}}],["supported",{"2":{"35":1}}],["supports",{"2":{"15":1,"17":1,"49":1,"53":1,"54":1,"62":1}}],["s",{"2":{"14":1,"15":1,"16":1,"17":1,"60":1,"83":1,"98":1,"99":1}}],["still",{"2":{"97":1}}],["stop",{"2":{"87":1}}],["store",{"2":{"49":1,"98":1}}],["stored",{"2":{"2":1}}],["stores",{"2":{"1":1,"22":1,"27":1,"49":1}}],["steps",{"0":{"64":1}}],["step",{"0":{"60":1,"61":1,"62":1,"63":1}}],["string",{"2":{"70":2,"71":1,"72":3,"73":2,"74":2,"75":4,"76":5,"77":3,"78":1,"79":1,"80":2}}],["structured",{"2":{"45":1,"49":1,"65":1}}],["stream",{"2":{"19":1}}],["streaming",{"2":{"9":1,"50":1,"56":1}}],["stale",{"2":{"95":1}}],["status",{"2":{"87":1}}],["state",{"2":{"42":1,"60":1}}],["stack",{"2":{"81":1}}],["starting",{"2":{"86":1}}],["startup",{"2":{"85":2}}],["started",{"2":{"66":1}}],["starts",{"2":{"19":1}}],["start",{"2":{"9":1,"26":1,"83":1,"84":1,"87":1}}],["security",{"0":{"90":1}}],["section",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1}}],["seconds",{"2":{"68":1,"77":2}}],["secrets",{"2":{"88":1,"90":1}}],["secret",{"2":{"15":3,"68":2,"73":2,"83":2,"86":1}}],["service",{"2":{"78":1,"85":1,"89":1,"90":1}}],["services",{"2":{"53":1,"57":1,"61":1,"83":1,"85":1}}],["server",{"0":{"71":1},"2":{"1":1,"25":1,"26":1,"28":1,"57":1,"68":1,"71":1,"78":1,"81":1,"89":1,"93":1,"94":2,"95":3}}],["send",{"2":{"51":1}}],["search",{"2":{"49":1,"51":3,"68":1,"80":7}}],["semantic",{"2":{"49":1}}],["separate",{"2":{"48":1,"95":1}}],["see",{"2":{"26":1,"56":1,"59":1,"67":1,"84":1,"86":2}}],["session",{"2":{"20":1,"28":1}}],["selecting",{"2":{"63":1}}],["select",{"2":{"13":1,"19":1,"62":1}}],["selected",{"2":{"7":1,"60":2}}],["setup",{"2":{"57":1}}],["settings",{"2":{"55":1,"64":1}}],["set",{"0":{"10":1,"15":1,"17":1,"24":1},"2":{"6":2,"7":2,"10":2,"15":2,"17":2,"24":3,"27":1,"28":3,"47":1,"51":1,"55":1,"86":1,"88":1,"94":1,"95":1}}],["persistent",{"2":{"98":1}}],["personal",{"2":{"6":1}}],["python",{"2":{"97":1,"99":1}}],["ps",{"2":{"87":1}}],["placeholder",{"2":{"61":1}}],["platforms",{"2":{"50":1}}],["platform",{"0":{"50":1},"2":{"16":1,"45":1}}],["plus",{"2":{"61":1}}],["point",{"2":{"86":1}}],["points",{"0":{"85":1}}],["postgres",{"0":{"76":1},"2":{"68":2,"76":1,"83":2,"86":2,"88":1}}],["postgresql",{"2":{"57":1,"76":2,"81":1}}],["powered",{"2":{"48":1}}],["ports",{"2":{"88":1}}],["port",{"2":{"23":2,"24":6,"26":1,"27":1,"28":1,"68":3,"71":1,"76":2,"78":2,"79":2}}],["pnpm",{"2":{"26":4}}],["path",{"2":{"68":1,"74":2,"75":2,"86":1,"94":2,"95":1}}],["pattern",{"2":{"40":4,"41":3}}],["panel",{"2":{"61":1,"62":2,"63":1}}],["panels",{"2":{"60":1}}],["page",{"0":{"60":1},"2":{"60":2,"99":1}}],["packages",{"2":{"26":2}}],["part",{"2":{"26":1}}],["passed",{"2":{"7":1}}],["passwords",{"2":{"88":2,"90":1}}],["password",{"2":{"1":2,"68":4,"72":2,"76":2,"83":2,"86":5}}],["privileged",{"2":{"90":1}}],["privately",{"2":{"47":1}}],["prerequisites",{"0":{"59":1,"82":1}}],["prefer",{"2":{"56":1}}],["press",{"2":{"9":1,"19":1}}],["project",{"2":{"84":1,"86":1}}],["production",{"0":{"88":1},"2":{"72":1,"86":1,"90":2}}],["protocol",{"0":{"53":1},"2":{"53":1,"75":1}}],["provider=container",{"2":{"93":1}}],["provider",{"0":{"33":1,"34":1,"35":1,"36":1,"52":1,"58":1,"61":1},"1":{"34":1,"35":1,"36":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"28":1,"30":1,"31":6,"34":7,"35":5,"36":5,"58":1,"60":3,"61":3,"62":2,"63":3,"66":1}}],["providers",{"2":{"25":1,"28":1,"33":1,"34":1,"52":1,"55":1,"62":1,"66":1}}],["provided",{"2":{"24":1}}],["prompt",{"2":{"83":1}}],["prompted",{"2":{"19":1}}],["prompts",{"2":{"1":2,"6":1,"13":1,"24":2,"31":2,"35":2,"40":1,"83":1}}],["public",{"2":{"6":1}}],["already",{"2":{"98":1}}],["also",{"2":{"93":1,"95":1}}],["allowing",{"2":{"45":1}}],["all",{"2":{"5":1,"30":1,"34":1,"37":1,"38":1,"55":1,"57":2,"71":1,"81":1,"83":2,"84":1,"88":1,"90":1}}],["able",{"2":{"65":1}}],["about",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"66":1}}],["after",{"0":{"96":1},"1":{"97":1,"98":1,"99":1},"2":{"63":1,"85":1,"97":1}}],["aws",{"2":{"52":1}}],["architecture",{"2":{"50":1}}],["argument",{"2":{"7":1}}],["added",{"2":{"99":1}}],["adding",{"2":{"97":1}}],["address",{"2":{"71":1}}],["addr",{"2":{"68":1,"71":1,"78":1}}],["add",{"0":{"61":1,"62":1},"2":{"58":1,"61":2,"62":2}}],["adapter",{"2":{"50":1}}],["admin123",{"2":{"83":1,"85":1}}],["admin",{"0":{"72":1},"2":{"5":1,"68":3,"72":4,"83":3,"85":1,"86":2}}],["admins",{"2":{"5":1}}],["auto",{"2":{"49":1,"83":1}}],["automatic",{"2":{"49":1}}],["automatically",{"2":{"49":1,"54":1}}],["authentication",{"2":{"28":1}}],["auth",{"0":{"0":1,"73":1},"1":{"1":1,"2":1,"3":1},"2":{"27":1,"68":1,"86":1}}],["across",{"2":{"98":1}}],["actions",{"2":{"63":1}}],["active",{"2":{"6":2,"7":2}}],["accounts",{"2":{"47":1}}],["access",{"0":{"85":1},"2":{"45":1,"65":1,"88":1,"90":1}}],["agent",{"0":{"51":1,"78":1},"2":{"45":1,"57":1,"65":1,"68":1,"78":4,"81":1,"85":1}}],["ai",{"2":{"45":2,"55":1,"65":2}}],["azure",{"2":{"35":1,"52":1,"61":1}}],["attachments",{"2":{"50":1}}],["at",{"2":{"26":1,"40":1,"54":1,"58":1,"59":1,"61":1,"62":1,"64":1,"80":1,"86":1,"94":1}}],["appears",{"2":{"61":1}}],["app",{"2":{"15":4}}],["api",{"2":{"3":1,"24":3,"25":1,"26":1,"35":3,"61":7,"63":1,"68":3,"77":3,"78":1,"80":7,"85":1}}],["available",{"2":{"12":1,"13":1}}],["avatar",{"2":{"6":2,"7":2}}],["any",{"2":{"35":1}}],["anthropic",{"2":{"33":1,"35":1,"52":1,"61":1}}],["an",{"2":{"9":1,"19":1,"45":1,"60":1,"65":1,"94":1}}],["and",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"1":1,"2":1,"4":1,"6":1,"9":1,"11":1,"13":1,"19":1,"23":1,"24":2,"25":1,"26":1,"27":2,"28":1,"29":1,"30":1,"31":1,"40":1,"45":4,"47":1,"48":2,"49":2,"50":1,"51":4,"52":1,"53":1,"54":1,"55":1,"56":1,"58":2,"60":3,"62":1,"63":1,"64":2,"65":1,"66":4,"81":1,"83":2,"84":1,"85":1,"86":2,"87":1,"88":2,"90":1,"94":1,"95":1,"97":1,"99":1}}],["assign",{"2":{"51":1,"64":1}}],["asks",{"2":{"8":1}}],["as",{"2":{"7":1,"10":2,"20":1,"26":1,"31":1,"40":2,"49":1,"94":1}}],["a",{"0":{"61":1},"2":{"6":1,"8":1,"9":1,"10":2,"13":1,"14":1,"15":1,"16":1,"25":2,"26":1,"28":1,"31":1,"32":1,"35":1,"36":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"45":1,"48":1,"49":1,"51":1,"52":1,"55":1,"56":1,"61":3,"62":1,"63":1,"64":1,"65":1,"67":2,"75":1,"93":1,"94":2,"98":1}}],["trigger",{"2":{"99":1}}],["triggers",{"2":{"54":1}}],["tries",{"2":{"93":1}}],["trusted",{"2":{"90":1}}],["troubleshooting",{"0":{"89":1,"91":1},"1":{"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1}}],["typically",{"2":{"78":1}}],["types",{"2":{"12":1,"35":1}}],["type",{"2":{"6":3,"9":2,"13":3,"14":3,"15":3,"16":3,"17":3,"19":2,"30":1,"31":5,"35":4,"61":4,"62":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1}}],["two",{"2":{"60":1}}],["this",{"2":{"58":1,"61":1,"75":1,"84":1,"94":1}}],["through",{"2":{"55":1,"58":1}}],["their",{"2":{"30":1,"48":1}}],["these",{"2":{"22":1,"64":1}}],["them",{"2":{"4":1,"45":1,"49":1,"62":1,"65":1}}],["then",{"2":{"1":1,"98":1}}],["the",{"0":{"60":1},"2":{"1":2,"2":1,"3":2,"16":1,"17":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":5,"27":1,"28":1,"35":1,"37":1,"40":1,"45":1,"49":2,"51":1,"56":1,"57":1,"58":1,"59":1,"60":3,"61":7,"62":7,"63":4,"64":2,"65":1,"67":1,"78":2,"80":1,"81":3,"83":4,"84":2,"86":5,"90":1,"93":2,"94":5,"95":6,"97":2,"98":5,"99":6}}],["turn",{"2":{"49":1}}],["tui",{"0":{"20":1},"2":{"20":2,"28":1}}],["taking",{"0":{"96":1},"1":{"97":1,"98":1,"99":1}}],["take",{"2":{"85":1}}],["task",{"0":{"92":2},"1":{"93":2,"94":2,"95":2},"2":{"93":3}}],["tasks",{"0":{"54":1},"2":{"47":1,"51":1,"54":1}}],["talks",{"2":{"25":1}}],["template",{"2":{"83":1,"86":1}}],["teams",{"2":{"47":1}}],["text",{"2":{"31":2,"62":3,"68":1,"70":2}}],["terminal",{"2":{"20":1,"28":1,"56":1}}],["telegram",{"2":{"12":1,"45":1,"50":1,"65":1}}],["timeout",{"2":{"68":1,"77":2}}],["times",{"2":{"54":1}}],["time",{"2":{"19":1,"51":1}}],["toggle",{"0":{"42":1},"2":{"28":1,"42":1}}],["tools",{"2":{"51":1,"93":1,"97":1}}],["tool",{"0":{"56":1},"2":{"25":1,"53":1,"56":1,"66":1,"80":1,"93":1}}],["toml",{"0":{"67":1},"1":{"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1},"2":{"22":1,"27":1,"57":1,"66":1,"67":2,"68":1,"83":1,"84":2,"86":6,"94":1,"95":3}}],["tokens",{"2":{"73":1}}],["token",{"2":{"1":2,"2":1,"3":1,"15":3,"27":2,"28":1}}],["to",{"2":{"1":1,"3":1,"9":1,"13":1,"19":5,"20":1,"22":1,"25":1,"26":1,"27":2,"28":1,"37":1,"40":1,"45":1,"47":1,"49":1,"50":1,"51":1,"53":1,"54":1,"55":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"65":1,"74":1,"78":1,"80":1,"81":2,"86":1,"88":1,"93":2,"94":2,"95":2,"97":1,"99":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/VPLocalSearchBox.CrvgDWgJ.js b/assets/chunks/VPLocalSearchBox.xTrNHbjP.js similarity index 99% rename from assets/chunks/VPLocalSearchBox.CrvgDWgJ.js rename to assets/chunks/VPLocalSearchBox.xTrNHbjP.js index 79f804c3..6b6e1c71 100644 --- a/assets/chunks/VPLocalSearchBox.CrvgDWgJ.js +++ b/assets/chunks/VPLocalSearchBox.xTrNHbjP.js @@ -1,4 +1,4 @@ -var At=Object.defineProperty;var Ct=(a,e,t)=>e in a?At(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>Ct(a,typeof e!="symbol"?e+"":e,t);import{V as nt,q as Be,ah as Mt,h as be,ai as rt,aj as Lt,ak as Dt,al as Pt,G as ce,d as zt,am as it,p as he,an as Vt,ao as jt,s as $t,ap as Bt,v as Le,P as ve,O as _e,aq as Wt,ar as Kt,W as Jt,R as qt,$ as Ut,o as q,b as Ht,j as T,a0 as Gt,k as P,as as Qt,at as Yt,au as Zt,c as Q,n as st,e as xe,B as at,F as ot,a as pe,t as me,av as Xt,aw as lt,ax as en,a5 as tn,aa as nn,ay as rn,_ as sn}from"./framework.DEqXEGcv.js";import{u as an,c as on}from"./theme.Bxi9Rr1a.js";const ln={root:()=>nt(()=>import("./@localSearchIndexroot.CVEXjrNv.js"),[]),zh:()=>nt(()=>import("./@localSearchIndexzh.dDuBvO1t.js"),[])};/*! +var At=Object.defineProperty;var Ct=(a,e,t)=>e in a?At(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>Ct(a,typeof e!="symbol"?e+"":e,t);import{V as nt,q as Be,ah as Mt,h as be,ai as rt,aj as Lt,ak as Dt,al as Pt,G as ce,d as zt,am as it,p as he,an as Vt,ao as jt,s as $t,ap as Bt,v as Le,P as ve,O as _e,aq as Wt,ar as Kt,W as Jt,R as qt,$ as Ut,o as q,b as Ht,j as T,a0 as Gt,k as P,as as Qt,at as Yt,au as Zt,c as Q,n as st,e as xe,B as at,F as ot,a as pe,t as me,av as Xt,aw as lt,ax as en,a5 as tn,aa as nn,ay as rn,_ as sn}from"./framework.DEqXEGcv.js";import{u as an,c as on}from"./theme.DcdcgJt5.js";const ln={root:()=>nt(()=>import("./@localSearchIndexroot.DEoGPlWF.js"),[]),zh:()=>nt(()=>import("./@localSearchIndexzh.dDuBvO1t.js"),[])};/*! * tabbable 6.4.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var bt=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],ke=bt.join(","),yt=typeof Element>"u",ae=yt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!yt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Fe=function(e,t){var n;t===void 0&&(t=!0);var r=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),s=r===""||r==="true",i=s||t&&e&&(typeof e.closest=="function"?e.closest("[inert]"):Fe(e.parentNode));return i},cn=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},wt=function(e,t,n){if(Fe(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(ke));return t&&ae.call(e,ke)&&r.unshift(e),r=r.filter(n),r},Re=function(e,t,n){for(var r=[],s=Array.from(e);s.length;){var i=s.shift();if(!Fe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=Re(l,!0,n);n.flatten?r.push.apply(r,c):r.push({scopeParent:i,candidates:c})}else{var h=ae.call(i,ke);h&&n.filter(i)&&(t||!e.includes(i))&&r.push(i);var m=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),p=!Fe(m,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(m&&p){var b=Re(m===!0?i.children:m.children,!0,n);n.flatten?r.push.apply(r,b):r.push({scopeParent:i,candidates:b})}else s.unshift.apply(s,i.children)}}return r},St=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||cn(e))&&!St(e)?0:e.tabIndex},un=function(e,t){var n=se(e);return n<0&&t&&!St(e)?0:n},dn=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},_t=function(e){return e.tagName==="INPUT"},fn=function(e){return _t(e)&&e.type==="hidden"},hn=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},vn=function(e,t){for(var n=0;nsummary:first-of-type"),o=i?e.parentElement:e;if(ae.call(o,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof r=="function"){for(var l=e;e;){var c=e.parentElement,h=Ne(e);if(c&&!c.shadowRoot&&r(c)===!0)return ct(e);e.assignedSlot?e=e.assignedSlot:!c&&h!==e.ownerDocument?e=h.host:e=c}e=l}if(bn(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return ct(e);return!1},wn=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},xt=function(e){var t=[],n=[];return e.forEach(function(r,s){var i=!!r.scopeParent,o=i?r.scopeParent:r,l=un(o,i),c=i?xt(r.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):n.push({documentOrder:s,tabIndex:l,item:r,isScope:i,content:c})}),n.sort(dn).reduce(function(r,s){return s.isScope?r.push.apply(r,s.content):r.push(s.content),r},[]).concat(t)},_n=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Re([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Sn}):n=wt(e,t.includeContainer,We.bind(null,t)),xt(n)},xn=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Re([e],t.includeContainer,{filter:Oe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=wt(e,t.includeContainer,Oe.bind(null,t)),n},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,ke)===!1?!1:We(t,e)},Tn=bt.concat("iframe:not([inert]):not([inert] *)").join(","),De=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Tn)===!1?!1:Oe(t,e)};/*! diff --git a/assets/chunks/theme.Bxi9Rr1a.js b/assets/chunks/theme.DcdcgJt5.js similarity index 99% rename from assets/chunks/theme.Bxi9Rr1a.js rename to assets/chunks/theme.DcdcgJt5.js index bdec1d6d..7f027fdc 100644 --- a/assets/chunks/theme.Bxi9Rr1a.js +++ b/assets/chunks/theme.DcdcgJt5.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CrvgDWgJ.js","assets/chunks/framework.DEqXEGcv.js"])))=>i.map(i=>d[i]); -import{d as p,c as u,r as c,n as N,o as s,a as j,t as M,b as _,w as h,T as ue,e as m,_ as g,u as Ce,i as He,f as Be,g as de,h as y,j as d,k as i,l as z,m as se,p as S,q as F,s as X,v as U,x as ve,y as fe,z as Ee,A as Fe,F as x,B as A,C as W,D as Y,E as k,G as $e,H as B,I as ye,J as Q,K as G,L as Z,M as De,N as Pe,O as ie,P as Le,Q as Ve,R as ee,S as Oe,U as Ge,V as Ue,W as Se,X as Te,Y as je,Z as ze,$ as We,a0 as Ke,a1 as qe}from"./framework.DEqXEGcv.js";const Re=p({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,n)=>(s(),u("span",{class:N(["VPBadge",e.type])},[c(t.$slots,"default",{},()=>[j(M(e.text),1)])],2))}}),Je={key:0,class:"VPBackdrop"},Xe=p({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(s(),_(ue,{name:"fade"},{default:h(()=>[e.show?(s(),u("div",Je)):m("",!0)]),_:1}))}}),Ye=g(Xe,[["__scopeId","data-v-f6932a82"]]),L=Ce;function Qe(e,t){let n,a=!1;return()=>{n&&clearTimeout(n),a?n=setTimeout(e,t):(e(),(a=!0)&&setTimeout(()=>a=!1,t))}}function re(e){return e.startsWith("/")?e:`/${e}`}function he(e){const{pathname:t,search:n,hash:a,protocol:o}=new URL(e,"http://a.com");if(He(e)||e.startsWith("#")||!o.startsWith("http")||!Be(t))return e;const{site:r}=L(),l=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${n}${a}`);return de(l)}function q({correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:a,theme:o,hash:r}=L(),l=y(()=>{var f,$;return{label:(f=t.value.locales[n.value])==null?void 0:f.label,link:(($=t.value.locales[n.value])==null?void 0:$.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:y(()=>Object.entries(t.value.locales).flatMap(([f,$])=>l.value.label===$.label?[]:{text:$.label,link:Ze($.link||(f==="root"?"/":`/${f}/`),o.value.i18nRouting!==!1&&e,a.value.relativePath.slice(l.value.link.length-1),!t.value.cleanUrls)+r.value})),currentLang:l}}function Ze(e,t,n,a){return t?e.replace(/\/$/,"")+re(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):e}const et={class:"NotFound"},tt={class:"code"},nt={class:"title"},at={class:"quote"},ot={class:"action"},st=["href","aria-label"],it=p({__name:"NotFound",setup(e){const{theme:t}=L(),{currentLang:n}=q();return(a,o)=>{var r,l,v,f,$;return s(),u("div",et,[d("p",tt,M(((r=i(t).notFound)==null?void 0:r.code)??"404"),1),d("h1",nt,M(((l=i(t).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),o[0]||(o[0]=d("div",{class:"divider"},null,-1)),d("blockquote",at,M(((v=i(t).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",ot,[d("a",{class:"link",href:i(de)(i(n).link),"aria-label":((f=i(t).notFound)==null?void 0:f.linkLabel)??"go to home"},M((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,st)])])}}}),rt=g(it,[["__scopeId","data-v-c827a85d"]]);function Ne(e,t){if(Array.isArray(e))return R(e);if(e==null)return[];t=re(t);const n=Object.keys(e).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>t.startsWith(re(o))),a=n?e[n]:[];return Array.isArray(a)?R(a):R(a.items,a.base)}function lt(e){const t=[];let n=0;for(const a in e){const o=e[a];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function ct(e){const t=[];function n(a){for(const o of a)o.text&&o.link&&t.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&n(o.items)}return n(e),t}function le(e,t){return Array.isArray(t)?t.some(n=>le(e,n)):z(e,t.link)?!0:t.items?le(e,t.items):!1}function R(e,t){return[...e].map(n=>{const a={...n},o=a.base||t;return o&&a.link&&(a.link=o+a.link),a.items&&(a.items=R(a.items,o)),a})}function D(){const{frontmatter:e,page:t,theme:n}=L(),a=se("(min-width: 960px)"),o=S(!1),r=y(()=>{const w=n.value.sidebar,C=t.value.relativePath;return w?Ne(w,C):[]}),l=S(r.value);F(r,(w,C)=>{JSON.stringify(w)!==JSON.stringify(C)&&(l.value=r.value)});const v=y(()=>e.value.sidebar!==!1&&l.value.length>0&&e.value.layout!=="home"),f=y(()=>$?e.value.aside==null?n.value.aside==="left":e.value.aside==="left":!1),$=y(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:n.value.aside!==!1),V=y(()=>v.value&&a.value),b=y(()=>v.value?lt(l.value):[]);function P(){o.value=!0}function T(){o.value=!1}function I(){o.value?T():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:$,leftAside:f,isSidebarEnabled:V,open:P,close:T,toggle:I}}function ut(e,t){let n;X(()=>{n=e.value?document.activeElement:void 0}),U(()=>{window.addEventListener("keyup",a)}),ve(()=>{window.removeEventListener("keyup",a)});function a(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dt(e){const{page:t,hash:n}=L(),a=S(!1),o=y(()=>e.value.collapsed!=null),r=y(()=>!!e.value.link),l=S(!1),v=()=>{l.value=z(t.value.relativePath,e.value.link)};F([t,e,n],v),U(v);const f=y(()=>l.value?!0:e.value.items?le(t.value.relativePath,e.value.items):!1),$=y(()=>!!(e.value.items&&e.value.items.length));X(()=>{a.value=!!(o.value&&e.value.collapsed)}),fe(()=>{(l.value||f.value)&&(a.value=!1)});function V(){o.value&&(a.value=!a.value)}return{collapsed:a,collapsible:o,isLink:r,isActiveLink:l,hasActiveLink:f,hasChildren:$,toggle:V}}function vt(){const{hasSidebar:e}=D(),t=se("(min-width: 960px)"),n=se("(min-width: 1280px)");return{isAsideEnabled:y(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const ft=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,ce=[];function Me(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function me(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const a=Number(n.tagName[1]);return{element:n,title:ht(n),link:"#"+n.id,level:a}});return mt(t,e)}function ht(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(ft.test(n.className))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function mt(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[a,o]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return _t(e,a,o)}function pt(e,t){const{isAsideEnabled:n}=vt(),a=Qe(r,100);let o=null;U(()=>{requestAnimationFrame(r),window.addEventListener("scroll",a)}),Ee(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",a)});function r(){if(!n.value)return;const v=window.scrollY,f=window.innerHeight,$=document.body.offsetHeight,V=Math.abs(v+f-$)<1,b=ce.map(({element:T,link:I})=>({link:I,top:kt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,I)=>T.top-I.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:T,top:I}of b){if(I>v+Fe()+4)break;P=T}l(P)}function l(v){o&&o.classList.remove("active"),v==null?o=null:o=e.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const f=o;f?(f.classList.add("active"),t.value.style.top=f.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function kt(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function _t(e,t,n){ce.length=0;const a=[],o=[];return e.forEach(r=>{const l={...r,children:[]};let v=o[o.length-1];for(;v&&v.level>=l.level;)o.pop(),v=o[o.length-1];if(l.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){o.push({level:l.level,shouldIgnore:!0});return}l.level>n||l.level{const o=W("VPDocOutlineItem",!0);return s(),u("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(s(!0),u(x,null,A(e.headers,({children:r,link:l,title:v})=>(s(),u("li",null,[d("a",{class:"outline-link",href:l,onClick:t,title:v},M(v),9,bt),r!=null&&r.length?(s(),_(o,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),xe=g(gt,[["__scopeId","data-v-21fe7f0b"]]),$t={class:"content"},yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pt=p({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=L(),a=$e([]);Y(()=>{a.value=me(t.value.outline??n.value.outline)});const o=S(),r=S();return pt(o,r),(l,v)=>(s(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:o},[d("div",$t,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",yt,M(i(Me)(i(n))),1),k(xe,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),Lt=g(Pt,[["__scopeId","data-v-e382fc21"]]),Vt={class:"VPDocAsideCarbonAds"},St=p({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,a)=>(s(),u("div",Vt,[k(i(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),Tt={class:"VPDocAside"},Nt=p({__name:"VPDocAside",setup(e){const{theme:t}=L();return(n,a)=>(s(),u("div",Tt,[c(n.$slots,"aside-top",{},void 0,!0),c(n.$slots,"aside-outline-before",{},void 0,!0),k(Lt),c(n.$slots,"aside-outline-after",{},void 0,!0),a[0]||(a[0]=d("div",{class:"spacer"},null,-1)),c(n.$slots,"aside-ads-before",{},void 0,!0),i(t).carbonAds?(s(),_(St,{key:0,"carbon-ads":i(t).carbonAds},null,8,["carbon-ads"])):m("",!0),c(n.$slots,"aside-ads-after",{},void 0,!0),c(n.$slots,"aside-bottom",{},void 0,!0)]))}}),Mt=g(Nt,[["__scopeId","data-v-4e31e231"]]);function xt(){const{theme:e,page:t}=L();return y(()=>{const{text:n="Edit this page",pattern:a=""}=e.value.editLink||{};let o;return typeof a=="function"?o=a(t.value):o=a.replace(/:path/g,t.value.filePath),{url:o,text:n}})}function It(){const{page:e,theme:t,frontmatter:n}=L();return y(()=>{var $,V,b,P,T,I,w,C;const a=Ne(t.value.sidebar,e.value.relativePath),o=ct(a),r=wt(o,H=>H.link.replace(/[?#].*$/,"")),l=r.findIndex(H=>z(e.value.relativePath,H.link)),v=(($=t.value.docFooter)==null?void 0:$.prev)===!1&&!n.value.prev||n.value.prev===!1,f=((V=t.value.docFooter)==null?void 0:V.next)===!1&&!n.value.next||n.value.next===!1;return{prev:v?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((b=r[l-1])==null?void 0:b.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((T=r[l-1])==null?void 0:T.link)},next:f?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((I=r[l+1])==null?void 0:I.docFooterText)??((w=r[l+1])==null?void 0:w.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((C=r[l+1])==null?void 0:C.link)}}})}function wt(e,t){const n=new Set;return e.filter(a=>{const o=t(a);return n.has(o)?!1:n.add(o)})}const E=p({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.tag??(t.href?"a":"span")),a=y(()=>t.href&&ye.test(t.href)||t.target==="_blank");return(o,r)=>(s(),_(B(n.value),{class:N(["VPLink",{link:e.href,"vp-external-link-icon":a.value,"no-icon":e.noIcon}]),href:e.href?i(he)(e.href):void 0,target:e.target??(a.value?"_blank":void 0),rel:e.rel??(a.value?"noreferrer":void 0)},{default:h(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),At={class:"VPLastUpdated"},Ct=["datetime"],Ht=p({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:a}=L(),o=y(()=>new Date(n.value.lastUpdated)),r=y(()=>o.value.toISOString()),l=S("");return U(()=>{X(()=>{var v,f,$;l.value=new Intl.DateTimeFormat((f=(v=t.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&f.forceLocale?a.value:void 0,(($=t.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(v,f)=>{var $;return s(),u("p",At,[j(M((($=i(t).lastUpdated)==null?void 0:$.text)||i(t).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:r.value},M(l.value),9,Ct)])}}}),Bt=g(Ht,[["__scopeId","data-v-744e3437"]]),Et={key:0,class:"VPDocFooter"},Ft={key:0,class:"edit-info"},Dt={key:0,class:"edit-link"},Ot={key:1,class:"last-updated"},Gt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ut={class:"pager"},jt=["innerHTML"],zt=["innerHTML"],Wt={class:"pager"},Kt=["innerHTML"],qt=["innerHTML"],Rt=p({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:a}=L(),o=xt(),r=It(),l=y(()=>t.value.editLink&&a.value.editLink!==!1),v=y(()=>n.value.lastUpdated),f=y(()=>l.value||v.value||r.value.prev||r.value.next);return($,V)=>{var b,P,T,I;return f.value?(s(),u("footer",Et,[c($.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(s(),u("div",Ft,[l.value?(s(),u("div",Dt,[k(E,{class:"edit-link-button",href:i(o).url,"no-icon":!0},{default:h(()=>[V[0]||(V[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),j(" "+M(i(o).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(s(),u("div",Ot,[k(Bt)])):m("",!0)])):m("",!0),(b=i(r).prev)!=null&&b.link||(P=i(r).next)!=null&&P.link?(s(),u("nav",Gt,[V[1]||(V[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",Ut,[(T=i(r).prev)!=null&&T.link?(s(),_(E,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.prev)||"Previous page"},null,8,jt),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,zt)]}),_:1},8,["href"])):m("",!0)]),d("div",Wt,[(I=i(r).next)!=null&&I.link?(s(),_(E,{key:0,class:"pager-link next",href:i(r).next.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.next)||"Next page"},null,8,Kt),d("span",{class:"title",innerHTML:i(r).next.text},null,8,qt)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),Jt=g(Rt,[["__scopeId","data-v-d650fb62"]]),Xt={class:"container"},Yt={class:"aside-container"},Qt={class:"aside-content"},Zt={class:"content"},en={class:"content-container"},tn={class:"main"},nn=p({__name:"VPDoc",setup(e){const{theme:t}=L(),n=Q(),{hasSidebar:a,hasAside:o,leftAside:r}=D(),l=y(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,f)=>{const $=W("Content");return s(),u("div",{class:N(["VPDoc",{"has-sidebar":i(a),"has-aside":i(o)}])},[c(v.$slots,"doc-top",{},void 0,!0),d("div",Xt,[i(o)?(s(),u("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[f[0]||(f[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Yt,[d("div",Qt,[k(Mt,null,{"aside-top":h(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),d("div",Zt,[d("div",en,[c(v.$slots,"doc-before",{},void 0,!0),d("main",tn,[k($,{class:N(["vp-doc",[l.value,i(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(Jt,null,{"doc-footer-before":h(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),an=g(nn,[["__scopeId","data-v-c0d172cc"]]),on=p({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.href&&ye.test(t.href)),a=y(()=>t.tag||(t.href?"a":"button"));return(o,r)=>(s(),_(B(a.value),{class:N(["VPButton",[e.size,e.theme]]),href:e.href?i(he)(e.href):void 0,target:t.target??(n.value?"_blank":void 0),rel:t.rel??(n.value?"noreferrer":void 0)},{default:h(()=>[j(M(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),sn=g(on,[["__scopeId","data-v-701b600a"]]),rn=["src","alt"],ln=p({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,n)=>{const a=W("VPImage",!0);return e.image?(s(),u(x,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:i(de)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,rn)):(s(),u(x,{key:1},[k(a,G({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),k(a,G({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),J=g(ln,[["__scopeId","data-v-a9ec2bb1"]]),cn={class:"container"},un={class:"main"},dn={class:"heading"},vn=["innerHTML"],fn=["innerHTML"],hn=["innerHTML"],mn={key:0,class:"actions"},pn={key:0,class:"image"},kn={class:"image-container"},_n=p({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=Z("hero-image-slot-exists");return(n,a)=>(s(),u("div",{class:N(["VPHero",{"has-image":e.image||i(t)}])},[d("div",cn,[d("div",un,[c(n.$slots,"home-hero-info-before",{},void 0,!0),c(n.$slots,"home-hero-info",{},()=>[d("h1",dn,[e.name?(s(),u("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,vn)):m("",!0),e.text?(s(),u("span",{key:1,innerHTML:e.text,class:"text"},null,8,fn)):m("",!0)]),e.tagline?(s(),u("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,hn)):m("",!0)],!0),c(n.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(s(),u("div",mn,[(s(!0),u(x,null,A(e.actions,o=>(s(),u("div",{key:o.link,class:"action"},[k(sn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||i(t)?(s(),u("div",pn,[d("div",kn,[a[0]||(a[0]=d("div",{class:"image-bg"},null,-1)),c(n.$slots,"home-hero-image",{},()=>[e.image?(s(),_(J,{key:0,class:"image-src",image:e.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),bn=g(_n,[["__scopeId","data-v-4d7b5684"]]),gn=p({__name:"VPHomeHero",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).hero?(s(),_(bn,{key:0,class:"VPHomeHero",name:i(t).hero.name,text:i(t).hero.text,tagline:i(t).hero.tagline,image:i(t).hero.image,actions:i(t).hero.actions},{"home-hero-info-before":h(()=>[c(n.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[c(n.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[c(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[c(n.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[c(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),$n={class:"box"},yn={key:0,class:"icon"},Pn=["innerHTML"],Ln=["innerHTML"],Vn=["innerHTML"],Sn={key:4,class:"link-text"},Tn={class:"link-text-value"},Nn=p({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,n)=>(s(),_(E,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[d("article",$n,[typeof e.icon=="object"&&e.icon.wrap?(s(),u("div",yn,[k(J,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(s(),_(J,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(s(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):m("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Ln),e.details?(s(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Vn)):m("",!0),e.linkText?(s(),u("div",Sn,[d("p",Tn,[j(M(e.linkText)+" ",1),n[0]||(n[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Mn=g(Nn,[["__scopeId","data-v-281d2434"]]),xn={key:0,class:"VPFeatures"},In={class:"container"},wn={class:"items"},An=p({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,n=y(()=>{const a=t.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,o)=>e.features?(s(),u("div",xn,[d("div",In,[d("div",wn,[(s(!0),u(x,null,A(e.features,r=>(s(),u("div",{key:r.title,class:N(["item",[n.value]])},[k(Mn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Cn=g(An,[["__scopeId","data-v-4a3c9473"]]),Hn=p({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).features?(s(),_(Cn,{key:0,class:"VPHomeFeatures",features:i(t).features},null,8,["features"])):m("",!0)}}),Bn=p({__name:"VPHomeContent",setup(e){const{width:t}=De({initialWidth:0,includeScrollbar:!1});return(n,a)=>(s(),u("div",{class:"vp-doc container",style:Pe(i(t)?{"--vp-offset":`calc(50% - ${i(t)/2}px)`}:{})},[c(n.$slots,"default",{},void 0,!0)],4))}}),En=g(Bn,[["__scopeId","data-v-b6816877"]]),Fn=p({__name:"VPHome",setup(e){const{frontmatter:t,theme:n}=L();return(a,o)=>{const r=W("Content");return s(),u("div",{class:N(["VPHome",{"external-link-icon-enabled":i(n).externalLinkIcon}])},[c(a.$slots,"home-hero-before",{},void 0,!0),k(gn,null,{"home-hero-info-before":h(()=>[c(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(a.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(a.$slots,"home-hero-after",{},void 0,!0),c(a.$slots,"home-features-before",{},void 0,!0),k(Hn),c(a.$slots,"home-features-after",{},void 0,!0),i(t).markdownStyles!==!1?(s(),_(En,{key:0},{default:h(()=>[k(r)]),_:1})):(s(),_(r,{key:1}))],2)}}}),Dn=g(Fn,[["__scopeId","data-v-436abcc8"]]),On={},Gn={class:"VPPage"};function Un(e,t){const n=W("Content");return s(),u("div",Gn,[c(e.$slots,"page-top"),k(n),c(e.$slots,"page-bottom")])}const jn=g(On,[["render",Un]]),zn=p({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>(s(),u("div",{class:N(["VPContent",{"has-sidebar":i(a),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(t).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(rt)],!0):i(n).layout==="page"?(s(),_(jn,{key:1},{"page-top":h(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(s(),_(Dn,{key:2},{"home-hero-before":h(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(n).layout&&i(n).layout!=="doc"?(s(),_(B(i(n).layout),{key:3})):(s(),_(an,{key:4},{"doc-top":h(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Wn=g(zn,[["__scopeId","data-v-df015b7a"]]),Kn={class:"container"},qn=["innerHTML"],Rn=["innerHTML"],Jn=p({__name:"VPFooter",setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>i(t).footer&&i(n).footer!==!1?(s(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(a)}])},[d("div",Kn,[i(t).footer.message?(s(),u("p",{key:0,class:"message",innerHTML:i(t).footer.message},null,8,qn)):m("",!0),i(t).footer.copyright?(s(),u("p",{key:1,class:"copyright",innerHTML:i(t).footer.copyright},null,8,Rn)):m("",!0)])],2)):m("",!0)}}),Xn=g(Jn,[["__scopeId","data-v-cea6e03e"]]);function Yn(){const{theme:e,frontmatter:t}=L(),n=$e([]),a=y(()=>n.value.length>0);return Y(()=>{n.value=me(t.value.outline??e.value.outline)}),{headers:n,hasLocalNav:a}}const Qn={class:"menu-text"},Zn={class:"header"},ea={class:"outline"},ta=p({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:n}=L(),a=S(!1),o=S(0),r=S(),l=S();function v(b){var P;(P=r.value)!=null&&P.contains(b.target)||(a.value=!1)}F(a,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),ie("Escape",()=>{a.value=!1}),Y(()=>{a.value=!1});function f(){a.value=!a.value,o.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function $(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Le(()=>{a.value=!1}))}function V(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(s(),u("div",{class:"VPLocalNavOutlineDropdown",style:Pe({"--vp-vh":o.value+"px"}),ref_key:"main",ref:r},[e.headers.length>0?(s(),u("button",{key:0,onClick:f,class:N({open:a.value})},[d("span",Qn,M(i(Me)(i(n))),1),P[0]||(P[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(s(),u("button",{key:1,onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)),k(ue,{name:"flyout"},{default:h(()=>[a.value?(s(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:$},[d("div",Zn,[d("a",{class:"top-link",href:"#",onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)]),d("div",ea,[k(xe,{headers:e.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),na=g(ta,[["__scopeId","data-v-65f11ad7"]]),aa={class:"container"},oa=["aria-expanded"],sa={class:"menu-text"},ia=p({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D(),{headers:o}=Yn(),{y:r}=Ve(),l=S(0);U(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Y(()=>{o.value=me(n.value.outline??t.value.outline)});const v=y(()=>o.value.length===0),f=y(()=>v.value&&!a.value),$=y(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:v.value,fixed:f.value}));return(V,b)=>i(n).layout!=="home"&&(!f.value||i(r)>=l.value)?(s(),u("div",{key:0,class:N($.value)},[d("div",aa,[i(a)?(s(),u("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",sa,M(i(t).sidebarMenuLabel||"Menu"),1)],8,oa)):m("",!0),k(na,{headers:i(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),ra=g(ia,[["__scopeId","data-v-42b4930c"]]);function la(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function a(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const r=Q();return F(()=>r.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:a}}const ca={},ua={class:"VPSwitch",type:"button",role:"switch"},da={class:"check"},va={key:0,class:"icon"};function fa(e,t){return s(),u("button",ua,[d("span",da,[e.$slots.default?(s(),u("span",va,[c(e.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ha=g(ca,[["render",fa],["__scopeId","data-v-be020907"]]),ma=p({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:n}=L(),a=Z("toggle-appearance",()=>{t.value=!t.value}),o=S("");return fe(()=>{o.value=t.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(s(),_(ha,{title:o.value,class:"VPSwitchAppearance","aria-checked":i(t),onClick:i(a)},{default:h(()=>[...l[0]||(l[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),pe=g(ma,[["__scopeId","data-v-0c13c3df"]]),pa={key:0,class:"VPNavBarAppearance"},ka=p({__name:"VPNavBarAppearance",setup(e){const{site:t}=L();return(n,a)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",pa,[k(pe)])):m("",!0)}}),_a=g(ka,[["__scopeId","data-v-7208450f"]]),ke=S();let Ie=!1,oe=0;function ba(e){const t=S(!1);if(ee){!Ie&&ga(),oe++;const n=F(ke,a=>{var o,r,l;a===e.el.value||(o=e.el.value)!=null&&o.contains(a)?(t.value=!0,(r=e.onFocus)==null||r.call(e)):(t.value=!1,(l=e.onBlur)==null||l.call(e))});ve(()=>{n(),oe--,oe||$a()})}return Oe(t)}function ga(){document.addEventListener("focusin",we),Ie=!0,ke.value=document.activeElement}function $a(){document.removeEventListener("focusin",we)}function we(){ke.value=document.activeElement}const ya={class:"VPMenuLink"},Pa=["innerHTML"],La=p({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),u("div",ya,[k(E,{class:N({active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Pa)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),te=g(La,[["__scopeId","data-v-adc65559"]]),Va={class:"VPMenuGroup"},Sa={key:0,class:"title"},Ta=p({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Va,[e.text?(s(),u("p",Sa,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),u(x,null,["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):m("",!0)],64))),256))]))}}),Na=g(Ta,[["__scopeId","data-v-2751c69e"]]),Ma={class:"VPMenu"},xa={key:0,class:"items"},Ia=p({__name:"VPMenu",props:{items:{}},setup(e){return(t,n)=>(s(),u("div",Ma,[e.items?(s(),u("div",xa,[(s(!0),u(x,null,A(e.items,a=>(s(),u(x,{key:JSON.stringify(a)},["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):"component"in a?(s(),_(B(a.component),G({key:1,ref_for:!0},a.props),null,16)):(s(),_(Na,{key:2,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):m("",!0),c(t.$slots,"default",{},void 0,!0)]))}}),wa=g(Ia,[["__scopeId","data-v-78767497"]]),Aa=["aria-expanded","aria-label"],Ca={key:0,class:"text"},Ha=["innerHTML"],Ba={key:1,class:"vpi-more-horizontal icon"},Ea={class:"menu"},Fa=p({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=S(!1),n=S();ba({el:n,onBlur:a});function a(){t.value=!1}return(o,r)=>(s(),u("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=l=>t.value=!0),onMouseleave:r[2]||(r[2]=l=>t.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:r[0]||(r[0]=l=>t.value=!t.value)},[e.button||e.icon?(s(),u("span",Ca,[e.icon?(s(),u("span",{key:0,class:N([e.icon,"option-icon"])},null,2)):m("",!0),e.button?(s(),u("span",{key:1,innerHTML:e.button},null,8,Ha)):m("",!0),r[3]||(r[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(s(),u("span",Ba))],8,Aa),d("div",Ea,[k(wa,{items:e.items},{default:h(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),_e=g(Fa,[["__scopeId","data-v-500c8661"]]),Da=["href","aria-label","innerHTML"],Oa=p({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,n=S();U(async()=>{var r;await Le();const o=(r=n.value)==null?void 0:r.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const a=y(()=>typeof t.icon=="object"?t.icon.svg:``);return(o,r)=>(s(),u("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="string"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:a.value},null,8,Da))}}),Ga=g(Oa,[["__scopeId","data-v-0890861b"]]),Ua={class:"VPSocialLinks"},ja=p({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,n)=>(s(),u("div",Ua,[(s(!0),u(x,null,A(e.links,({link:a,icon:o,ariaLabel:r})=>(s(),_(Ga,{key:a,icon:o,link:a,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=g(ja,[["__scopeId","data-v-a84d2f45"]]),za={key:0,class:"group translations"},Wa={class:"trans-title"},Ka={key:1,class:"group"},qa={class:"item appearance"},Ra={class:"label"},Ja={class:"appearance-action"},Xa={key:2,class:"group"},Ya={class:"item social-links"},Qa=p({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=L(),{localeLinks:a,currentLang:o}=q({correspondingLink:!0}),r=y(()=>a.value.length&&o.value.label||t.value.appearance||n.value.socialLinks);return(l,v)=>r.value?(s(),_(_e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[i(a).length&&i(o).label?(s(),u("div",za,[d("p",Wa,M(i(o).label),1),(s(!0),u(x,null,A(i(a),f=>(s(),_(te,{key:f.link,item:f},null,8,["item"]))),128))])):m("",!0),i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Ka,[d("div",qa,[d("p",Ra,M(i(n).darkModeSwitchLabel||"Appearance"),1),d("div",Ja,[k(pe)])])])):m("",!0),i(n).socialLinks?(s(),u("div",Xa,[d("div",Ya,[k(be,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),Za=g(Qa,[["__scopeId","data-v-c2346f84"]]),eo=["aria-expanded"],to=p({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(s(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=a=>t.$emit("click"))},[...n[1]||(n[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)])],10,eo))}}),no=g(to,[["__scopeId","data-v-c0ff09b3"]]),ao=["innerHTML"],oo=p({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),_(E,{class:N({VPNavBarMenuLink:!0,active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,ao)]),_:1},8,["class","href","target","rel","no-icon"]))}}),so=g(oo,[["__scopeId","data-v-df2fe9fb"]]),io=p({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:n}=L(),a=r=>"component"in r?!1:"link"in r?z(n.value.relativePath,r.link,!!t.item.activeMatch):r.items.some(a),o=y(()=>a(t.item));return(r,l)=>(s(),_(_e,{class:N({VPNavBarMenuGroup:!0,active:i(z)(i(n).relativePath,e.item.activeMatch,!!e.item.activeMatch)||o.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),ro={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},lo=p({__name:"VPNavBarMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",ro,[a[0]||(a[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(so,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props),null,16)):(s(),_(io,{key:2,item:o},null,8,["item"]))],64))),128))])):m("",!0)}}),co=g(lo,[["__scopeId","data-v-a8c7b9cb"]]);function uo(e){const{localeIndex:t,theme:n}=L();function a(o){var I,w,C;const r=o.split("."),l=(I=n.value.search)==null?void 0:I.options,v=l&&typeof l=="object",f=v&&((C=(w=l.locales)==null?void 0:w[t.value])==null?void 0:C.translations)||null,$=v&&l.translations||null;let V=f,b=$,P=e;const T=r.pop();for(const H of r){let O=null;const K=P==null?void 0:P[H];K&&(O=P=K);const ne=b==null?void 0:b[H];ne&&(O=b=ne);const ae=V==null?void 0:V[H];ae&&(O=V=ae),K||(P=O),ne||(b=O),ae||(V=O)}return(V==null?void 0:V[T])??(b==null?void 0:b[T])??(P==null?void 0:P[T])??""}return a}const vo=["aria-label"],fo={class:"DocSearch-Button-Container"},ho={class:"DocSearch-Button-Placeholder"},ge=p({__name:"VPNavBarSearchButton",setup(e){const n=uo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,o)=>(s(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(n)("button.buttonAriaLabel")},[d("span",fo,[o[0]||(o[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",ho,M(i(n)("button.buttonText")),1)]),o[1]||(o[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vo))}}),mo={class:"VPNavBarSearch"},po={id:"local-search"},ko={key:1,id:"docsearch"},_o=p({__name:"VPNavBarSearch",setup(e){const t=Ge(()=>Ue(()=>import("./VPLocalSearchBox.CrvgDWgJ.js"),__vite__mapDeps([0,1]))),n=()=>null,{theme:a}=L(),o=S(!1),r=S(!1);U(()=>{});function l(){o.value||(o.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function f(b){const P=b.target,T=P.tagName;return P.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const $=S(!1);ie("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),$.value=!0)}),ie("/",b=>{f(b)||(b.preventDefault(),$.value=!0)});const V="local";return(b,P)=>{var T;return s(),u("div",mo,[i(V)==="local"?(s(),u(x,{key:0},[$.value?(s(),_(i(t),{key:0,onClose:P[0]||(P[0]=I=>$.value=!1)})):m("",!0),d("div",po,[k(ge,{onClick:P[1]||(P[1]=I=>$.value=!0)})])],64)):i(V)==="algolia"?(s(),u(x,{key:1},[o.value?(s(),_(i(n),{key:0,algolia:((T=i(a).search)==null?void 0:T.options)??i(a).algolia,onVnodeBeforeMount:P[2]||(P[2]=I=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(s(),u("div",ko,[k(ge,{onClick:l})]))],64)):m("",!0)])}}}),bo=p({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavBarSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),go=g(bo,[["__scopeId","data-v-1a196069"]]),$o=["href","rel","target"],yo=["innerHTML"],Po={key:2},Lo=p({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=L(),{hasSidebar:a}=D(),{currentLang:o}=q(),r=y(()=>{var f;return typeof n.value.logoLink=="string"?n.value.logoLink:(f=n.value.logoLink)==null?void 0:f.link}),l=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.rel}),v=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.target});return(f,$)=>(s(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(a)}])},[d("a",{class:"title",href:r.value??i(he)(i(o).link),rel:l.value,target:v.value},[c(f.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(s(),_(J,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(s(),u("span",{key:1,innerHTML:i(n).siteTitle},null,8,yo)):i(n).siteTitle===void 0?(s(),u("span",Po,M(i(t).title),1)):m("",!0),c(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,$o)],2))}}),Vo=g(Lo,[["__scopeId","data-v-d3560e07"]]),So={class:"items"},To={class:"title"},No=p({__name:"VPNavBarTranslations",setup(e){const{theme:t}=L(),{localeLinks:n,currentLang:a}=q({correspondingLink:!0});return(o,r)=>i(n).length&&i(a).label?(s(),_(_e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(t).langMenuLabel||"Change language"},{default:h(()=>[d("div",So,[d("p",To,M(i(a).label),1),(s(!0),u(x,null,A(i(n),l=>(s(),_(te,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Mo=g(No,[["__scopeId","data-v-f7e0dd34"]]),xo={class:"wrapper"},Io={class:"container"},wo={class:"title"},Ao={class:"content"},Co={class:"content-body"},Ho=p({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:n}=Ve(),{hasSidebar:a}=D(),{frontmatter:o}=L(),r=S({});return fe(()=>{r.value={"has-sidebar":a.value,home:o.value.layout==="home",top:n.value===0,"screen-open":t.isScreenOpen}}),(l,v)=>(s(),u("div",{class:N(["VPNavBar",r.value])},[d("div",xo,[d("div",Io,[d("div",wo,[k(Vo,null,{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Ao,[d("div",Co,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(_o,{class:"search"}),k(co,{class:"menu"}),k(Mo,{class:"translations"}),k(_a,{class:"appearance"}),k(go,{class:"social-links"}),k(Za,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(no,{class:"hamburger",active:e.isScreenOpen,onClick:v[0]||(v[0]=f=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Bo=g(Ho,[["__scopeId","data-v-d92360c8"]]),Eo={key:0,class:"VPNavScreenAppearance"},Fo={class:"text"},Do=p({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=L();return(a,o)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Eo,[d("p",Fo,M(i(n).darkModeSwitchLabel||"Appearance"),1),k(pe)])):m("",!0)}}),Oo=g(Do,[["__scopeId","data-v-5f5f718e"]]),Go=["innerHTML"],Uo=p({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Go)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),jo=g(Uo,[["__scopeId","data-v-af7e055c"]]),zo=["innerHTML"],Wo=p({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,zo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ae=g(Wo,[["__scopeId","data-v-a18eb207"]]),Ko={class:"VPNavScreenMenuGroupSection"},qo={key:0,class:"title"},Ro=p({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Ko,[e.text?(s(),u("p",qo,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),_(Ae,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Jo=g(Ro,[["__scopeId","data-v-18902326"]]),Xo=["aria-controls","aria-expanded"],Yo=["innerHTML"],Qo=["id"],Zo={key:0,class:"item"},es={key:1,class:"item"},ts={key:2,class:"group"},ns=p({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,n=S(!1),a=y(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(r,l)=>(s(),u("div",{class:N(["VPNavScreenMenuGroup",{open:n.value}])},[d("button",{class:"button","aria-controls":a.value,"aria-expanded":n.value,onClick:o},[d("span",{class:"button-text",innerHTML:e.text},null,8,Yo),l[0]||(l[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Xo),d("div",{id:a.value,class:"items"},[(s(!0),u(x,null,A(e.items,v=>(s(),u(x,{key:JSON.stringify(v)},["link"in v?(s(),u("div",Zo,[k(Ae,{item:v},null,8,["item"])])):"component"in v?(s(),u("div",es,[(s(),_(B(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(s(),u("div",ts,[k(Jo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Qo)],2))}}),as=g(ns,[["__scopeId","data-v-2bf06c47"]]),os={key:0,class:"VPNavScreenMenu"},ss=p({__name:"VPNavScreenMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",os,[(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(jo,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(s(),_(as,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),is=p({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavScreenSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),rs={class:"list"},ls=p({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=q({correspondingLink:!0}),a=S(!1);function o(){a.value=!a.value}return(r,l)=>i(t).length&&i(n).label?(s(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:a.value}])},[d("button",{class:"title",onClick:o},[l[0]||(l[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),j(" "+M(i(n).label)+" ",1),l[1]||(l[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",rs,[(s(!0),u(x,null,A(i(t),v=>(s(),u("li",{key:v.link,class:"item"},[k(E,{class:"link",href:v.link},{default:h(()=>[j(M(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),cs=g(ls,[["__scopeId","data-v-842a3317"]]),us={class:"container"},ds=p({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=S(null),n=Se(ee?document.body:null);return(a,o)=>(s(),_(ue,{name:"fade",onEnter:o[0]||(o[0]=r=>n.value=!0),onAfterLeave:o[1]||(o[1]=r=>n.value=!1)},{default:h(()=>[e.open?(s(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[d("div",us,[c(a.$slots,"nav-screen-content-before",{},void 0,!0),k(ss,{class:"menu"}),k(cs,{class:"translations"}),k(Oo,{class:"appearance"}),k(is,{class:"social-links"}),c(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),vs=g(ds,[["__scopeId","data-v-424bec18"]]),fs={key:0,class:"VPNav"},hs=p({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:a}=la(),{frontmatter:o}=L(),r=y(()=>o.value.navbar!==!1);return Te("close-screen",n),X(()=>{ee&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,v)=>r.value?(s(),u("header",fs,[k(Bo,{"is-screen-open":i(t),onToggleScreen:i(a)},{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(vs,{open:i(t)},{"nav-screen-content-before":h(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),ms=g(hs,[["__scopeId","data-v-39691f49"]]),ps=["role","tabindex"],ks={key:1,class:"items"},_s=p({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:n,collapsible:a,isLink:o,isActiveLink:r,hasActiveLink:l,hasChildren:v,toggle:f}=dt(y(()=>t.item)),$=y(()=>v.value?"section":"div"),V=y(()=>o.value?"a":"div"),b=y(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),T=y(()=>[[`level-${t.depth}`],{collapsible:a.value},{collapsed:n.value},{"is-link":o.value},{"is-active":r.value},{"has-active":l.value}]);function I(C){"key"in C&&C.key!=="Enter"||!t.item.link&&f()}function w(){t.item.link&&f()}return(C,H)=>{const O=W("VPSidebarItem",!0);return s(),_(B($.value),{class:N(["VPSidebarItem",T.value])},{default:h(()=>[e.item.text?(s(),u("div",G({key:0,class:"item",role:P.value},je(e.item.items?{click:I,keydown:I}:{},!0),{tabindex:e.item.items&&0}),[H[1]||(H[1]=d("div",{class:"indicator"},null,-1)),e.item.link?(s(),_(E,{key:0,tag:V.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:h(()=>[(s(),_(B(b.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),_(B(b.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(s(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:w,onKeydown:ze(w,["enter"]),tabindex:"0"},[...H[0]||(H[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):m("",!0)],16,ps)):m("",!0),e.item.items&&e.item.items.length?(s(),u("div",ks,[e.depth<5?(s(!0),u(x,{key:0},A(e.item.items,K=>(s(),_(O,{key:K.text,item:K,depth:e.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),bs=g(_s,[["__scopeId","data-v-df85d8e3"]]),gs=p({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=S(!0);let n=null;return U(()=>{n=setTimeout(()=>{n=null,t.value=!1},300)}),We(()=>{n!=null&&(clearTimeout(n),n=null)}),(a,o)=>(s(!0),u(x,null,A(e.items,r=>(s(),u("div",{key:r.text,class:N(["group",{"no-transition":t.value}])},[k(bs,{item:r,depth:0},null,8,["item"])],2))),128))}}),$s=g(gs,[["__scopeId","data-v-60f157c0"]]),ys={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ps=p({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:n}=D(),a=e,o=S(null),r=Se(ee?document.body:null);F([a,o],()=>{var v;a.open?(r.value=!0,(v=o.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=S(0);return F(t,()=>{l.value+=1},{deep:!0}),(v,f)=>i(n)?(s(),u("aside",{key:0,class:N(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:f[0]||(f[0]=Ke(()=>{},["stop"]))},[f[2]||(f[2]=d("div",{class:"curtain"},null,-1)),d("nav",ys,[f[1]||(f[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(s(),_($s,{items:i(t),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Ls=g(Ps,[["__scopeId","data-v-aee49e2a"]]),Vs=p({__name:"VPSkipLink",setup(e){const{theme:t}=L(),n=Q(),a=S();F(()=>n.path,()=>a.value.focus());function o({target:r}){const l=document.getElementById(decodeURIComponent(r.hash).slice(1));if(l){const v=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",v)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",v),l.focus(),window.scrollTo(0,0)}}return(r,l)=>(s(),u(x,null,[d("span",{ref_key:"backToTop",ref:a,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},M(i(t).skipToContentLabel||"Skip to content"),1)],64))}}),Ss=g(Vs,[["__scopeId","data-v-639cd3d8"]]),Ts=p({__name:"Layout",setup(e){const{isOpen:t,open:n,close:a}=D(),o=Q();F(()=>o.path,a),ut(t,a);const{frontmatter:r}=L(),l=qe(),v=y(()=>!!l["home-hero-image"]);return Te("hero-image-slot-exists",v),(f,$)=>{const V=W("Content");return i(r).layout!==!1?(s(),u("div",{key:0,class:N(["Layout",i(r).pageClass])},[c(f.$slots,"layout-top",{},void 0,!0),k(Ss),k(Ye,{class:"backdrop",show:i(t),onClick:i(a)},null,8,["show","onClick"]),k(ms,null,{"nav-bar-title-before":h(()=>[c(f.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(f.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(f.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(f.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[c(f.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(f.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ra,{open:i(t),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),k(Ls,{open:i(t)},{"sidebar-nav-before":h(()=>[c(f.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[c(f.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(Wn,null,{"page-top":h(()=>[c(f.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(f.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[c(f.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[c(f.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(f.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(f.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(f.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(f.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(f.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(f.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(f.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(f.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[c(f.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(f.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(f.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[c(f.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(f.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[c(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(Xn),c(f.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),_(V,{key:1}))}}}),Ns=g(Ts,[["__scopeId","data-v-ecfbf7a9"]]),xs={Layout:Ns,enhanceApp:({app:e})=>{e.component("Badge",Re)}};export{uo as c,xs as t,L as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.xTrNHbjP.js","assets/chunks/framework.DEqXEGcv.js"])))=>i.map(i=>d[i]); +import{d as p,c as u,r as c,n as N,o as s,a as j,t as M,b as _,w as h,T as ue,e as m,_ as g,u as Ce,i as He,f as Be,g as de,h as y,j as d,k as i,l as z,m as se,p as S,q as F,s as X,v as U,x as ve,y as fe,z as Ee,A as Fe,F as x,B as A,C as W,D as Y,E as k,G as $e,H as B,I as ye,J as Q,K as G,L as Z,M as De,N as Pe,O as ie,P as Le,Q as Ve,R as ee,S as Oe,U as Ge,V as Ue,W as Se,X as Te,Y as je,Z as ze,$ as We,a0 as Ke,a1 as qe}from"./framework.DEqXEGcv.js";const Re=p({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,n)=>(s(),u("span",{class:N(["VPBadge",e.type])},[c(t.$slots,"default",{},()=>[j(M(e.text),1)])],2))}}),Je={key:0,class:"VPBackdrop"},Xe=p({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(s(),_(ue,{name:"fade"},{default:h(()=>[e.show?(s(),u("div",Je)):m("",!0)]),_:1}))}}),Ye=g(Xe,[["__scopeId","data-v-f6932a82"]]),L=Ce;function Qe(e,t){let n,a=!1;return()=>{n&&clearTimeout(n),a?n=setTimeout(e,t):(e(),(a=!0)&&setTimeout(()=>a=!1,t))}}function re(e){return e.startsWith("/")?e:`/${e}`}function he(e){const{pathname:t,search:n,hash:a,protocol:o}=new URL(e,"http://a.com");if(He(e)||e.startsWith("#")||!o.startsWith("http")||!Be(t))return e;const{site:r}=L(),l=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${n}${a}`);return de(l)}function q({correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:a,theme:o,hash:r}=L(),l=y(()=>{var f,$;return{label:(f=t.value.locales[n.value])==null?void 0:f.label,link:(($=t.value.locales[n.value])==null?void 0:$.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:y(()=>Object.entries(t.value.locales).flatMap(([f,$])=>l.value.label===$.label?[]:{text:$.label,link:Ze($.link||(f==="root"?"/":`/${f}/`),o.value.i18nRouting!==!1&&e,a.value.relativePath.slice(l.value.link.length-1),!t.value.cleanUrls)+r.value})),currentLang:l}}function Ze(e,t,n,a){return t?e.replace(/\/$/,"")+re(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):e}const et={class:"NotFound"},tt={class:"code"},nt={class:"title"},at={class:"quote"},ot={class:"action"},st=["href","aria-label"],it=p({__name:"NotFound",setup(e){const{theme:t}=L(),{currentLang:n}=q();return(a,o)=>{var r,l,v,f,$;return s(),u("div",et,[d("p",tt,M(((r=i(t).notFound)==null?void 0:r.code)??"404"),1),d("h1",nt,M(((l=i(t).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),o[0]||(o[0]=d("div",{class:"divider"},null,-1)),d("blockquote",at,M(((v=i(t).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",ot,[d("a",{class:"link",href:i(de)(i(n).link),"aria-label":((f=i(t).notFound)==null?void 0:f.linkLabel)??"go to home"},M((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,st)])])}}}),rt=g(it,[["__scopeId","data-v-c827a85d"]]);function Ne(e,t){if(Array.isArray(e))return R(e);if(e==null)return[];t=re(t);const n=Object.keys(e).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>t.startsWith(re(o))),a=n?e[n]:[];return Array.isArray(a)?R(a):R(a.items,a.base)}function lt(e){const t=[];let n=0;for(const a in e){const o=e[a];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function ct(e){const t=[];function n(a){for(const o of a)o.text&&o.link&&t.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&n(o.items)}return n(e),t}function le(e,t){return Array.isArray(t)?t.some(n=>le(e,n)):z(e,t.link)?!0:t.items?le(e,t.items):!1}function R(e,t){return[...e].map(n=>{const a={...n},o=a.base||t;return o&&a.link&&(a.link=o+a.link),a.items&&(a.items=R(a.items,o)),a})}function D(){const{frontmatter:e,page:t,theme:n}=L(),a=se("(min-width: 960px)"),o=S(!1),r=y(()=>{const w=n.value.sidebar,C=t.value.relativePath;return w?Ne(w,C):[]}),l=S(r.value);F(r,(w,C)=>{JSON.stringify(w)!==JSON.stringify(C)&&(l.value=r.value)});const v=y(()=>e.value.sidebar!==!1&&l.value.length>0&&e.value.layout!=="home"),f=y(()=>$?e.value.aside==null?n.value.aside==="left":e.value.aside==="left":!1),$=y(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:n.value.aside!==!1),V=y(()=>v.value&&a.value),b=y(()=>v.value?lt(l.value):[]);function P(){o.value=!0}function T(){o.value=!1}function I(){o.value?T():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:$,leftAside:f,isSidebarEnabled:V,open:P,close:T,toggle:I}}function ut(e,t){let n;X(()=>{n=e.value?document.activeElement:void 0}),U(()=>{window.addEventListener("keyup",a)}),ve(()=>{window.removeEventListener("keyup",a)});function a(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dt(e){const{page:t,hash:n}=L(),a=S(!1),o=y(()=>e.value.collapsed!=null),r=y(()=>!!e.value.link),l=S(!1),v=()=>{l.value=z(t.value.relativePath,e.value.link)};F([t,e,n],v),U(v);const f=y(()=>l.value?!0:e.value.items?le(t.value.relativePath,e.value.items):!1),$=y(()=>!!(e.value.items&&e.value.items.length));X(()=>{a.value=!!(o.value&&e.value.collapsed)}),fe(()=>{(l.value||f.value)&&(a.value=!1)});function V(){o.value&&(a.value=!a.value)}return{collapsed:a,collapsible:o,isLink:r,isActiveLink:l,hasActiveLink:f,hasChildren:$,toggle:V}}function vt(){const{hasSidebar:e}=D(),t=se("(min-width: 960px)"),n=se("(min-width: 1280px)");return{isAsideEnabled:y(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const ft=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,ce=[];function Me(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function me(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const a=Number(n.tagName[1]);return{element:n,title:ht(n),link:"#"+n.id,level:a}});return mt(t,e)}function ht(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(ft.test(n.className))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function mt(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[a,o]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return _t(e,a,o)}function pt(e,t){const{isAsideEnabled:n}=vt(),a=Qe(r,100);let o=null;U(()=>{requestAnimationFrame(r),window.addEventListener("scroll",a)}),Ee(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",a)});function r(){if(!n.value)return;const v=window.scrollY,f=window.innerHeight,$=document.body.offsetHeight,V=Math.abs(v+f-$)<1,b=ce.map(({element:T,link:I})=>({link:I,top:kt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,I)=>T.top-I.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:T,top:I}of b){if(I>v+Fe()+4)break;P=T}l(P)}function l(v){o&&o.classList.remove("active"),v==null?o=null:o=e.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const f=o;f?(f.classList.add("active"),t.value.style.top=f.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function kt(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function _t(e,t,n){ce.length=0;const a=[],o=[];return e.forEach(r=>{const l={...r,children:[]};let v=o[o.length-1];for(;v&&v.level>=l.level;)o.pop(),v=o[o.length-1];if(l.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){o.push({level:l.level,shouldIgnore:!0});return}l.level>n||l.level{const o=W("VPDocOutlineItem",!0);return s(),u("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(s(!0),u(x,null,A(e.headers,({children:r,link:l,title:v})=>(s(),u("li",null,[d("a",{class:"outline-link",href:l,onClick:t,title:v},M(v),9,bt),r!=null&&r.length?(s(),_(o,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),xe=g(gt,[["__scopeId","data-v-21fe7f0b"]]),$t={class:"content"},yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pt=p({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=L(),a=$e([]);Y(()=>{a.value=me(t.value.outline??n.value.outline)});const o=S(),r=S();return pt(o,r),(l,v)=>(s(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:o},[d("div",$t,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",yt,M(i(Me)(i(n))),1),k(xe,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),Lt=g(Pt,[["__scopeId","data-v-e382fc21"]]),Vt={class:"VPDocAsideCarbonAds"},St=p({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,a)=>(s(),u("div",Vt,[k(i(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),Tt={class:"VPDocAside"},Nt=p({__name:"VPDocAside",setup(e){const{theme:t}=L();return(n,a)=>(s(),u("div",Tt,[c(n.$slots,"aside-top",{},void 0,!0),c(n.$slots,"aside-outline-before",{},void 0,!0),k(Lt),c(n.$slots,"aside-outline-after",{},void 0,!0),a[0]||(a[0]=d("div",{class:"spacer"},null,-1)),c(n.$slots,"aside-ads-before",{},void 0,!0),i(t).carbonAds?(s(),_(St,{key:0,"carbon-ads":i(t).carbonAds},null,8,["carbon-ads"])):m("",!0),c(n.$slots,"aside-ads-after",{},void 0,!0),c(n.$slots,"aside-bottom",{},void 0,!0)]))}}),Mt=g(Nt,[["__scopeId","data-v-4e31e231"]]);function xt(){const{theme:e,page:t}=L();return y(()=>{const{text:n="Edit this page",pattern:a=""}=e.value.editLink||{};let o;return typeof a=="function"?o=a(t.value):o=a.replace(/:path/g,t.value.filePath),{url:o,text:n}})}function It(){const{page:e,theme:t,frontmatter:n}=L();return y(()=>{var $,V,b,P,T,I,w,C;const a=Ne(t.value.sidebar,e.value.relativePath),o=ct(a),r=wt(o,H=>H.link.replace(/[?#].*$/,"")),l=r.findIndex(H=>z(e.value.relativePath,H.link)),v=(($=t.value.docFooter)==null?void 0:$.prev)===!1&&!n.value.prev||n.value.prev===!1,f=((V=t.value.docFooter)==null?void 0:V.next)===!1&&!n.value.next||n.value.next===!1;return{prev:v?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((b=r[l-1])==null?void 0:b.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((T=r[l-1])==null?void 0:T.link)},next:f?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((I=r[l+1])==null?void 0:I.docFooterText)??((w=r[l+1])==null?void 0:w.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((C=r[l+1])==null?void 0:C.link)}}})}function wt(e,t){const n=new Set;return e.filter(a=>{const o=t(a);return n.has(o)?!1:n.add(o)})}const E=p({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.tag??(t.href?"a":"span")),a=y(()=>t.href&&ye.test(t.href)||t.target==="_blank");return(o,r)=>(s(),_(B(n.value),{class:N(["VPLink",{link:e.href,"vp-external-link-icon":a.value,"no-icon":e.noIcon}]),href:e.href?i(he)(e.href):void 0,target:e.target??(a.value?"_blank":void 0),rel:e.rel??(a.value?"noreferrer":void 0)},{default:h(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),At={class:"VPLastUpdated"},Ct=["datetime"],Ht=p({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:a}=L(),o=y(()=>new Date(n.value.lastUpdated)),r=y(()=>o.value.toISOString()),l=S("");return U(()=>{X(()=>{var v,f,$;l.value=new Intl.DateTimeFormat((f=(v=t.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&f.forceLocale?a.value:void 0,(($=t.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(v,f)=>{var $;return s(),u("p",At,[j(M((($=i(t).lastUpdated)==null?void 0:$.text)||i(t).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:r.value},M(l.value),9,Ct)])}}}),Bt=g(Ht,[["__scopeId","data-v-744e3437"]]),Et={key:0,class:"VPDocFooter"},Ft={key:0,class:"edit-info"},Dt={key:0,class:"edit-link"},Ot={key:1,class:"last-updated"},Gt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ut={class:"pager"},jt=["innerHTML"],zt=["innerHTML"],Wt={class:"pager"},Kt=["innerHTML"],qt=["innerHTML"],Rt=p({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:a}=L(),o=xt(),r=It(),l=y(()=>t.value.editLink&&a.value.editLink!==!1),v=y(()=>n.value.lastUpdated),f=y(()=>l.value||v.value||r.value.prev||r.value.next);return($,V)=>{var b,P,T,I;return f.value?(s(),u("footer",Et,[c($.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(s(),u("div",Ft,[l.value?(s(),u("div",Dt,[k(E,{class:"edit-link-button",href:i(o).url,"no-icon":!0},{default:h(()=>[V[0]||(V[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),j(" "+M(i(o).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(s(),u("div",Ot,[k(Bt)])):m("",!0)])):m("",!0),(b=i(r).prev)!=null&&b.link||(P=i(r).next)!=null&&P.link?(s(),u("nav",Gt,[V[1]||(V[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",Ut,[(T=i(r).prev)!=null&&T.link?(s(),_(E,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.prev)||"Previous page"},null,8,jt),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,zt)]}),_:1},8,["href"])):m("",!0)]),d("div",Wt,[(I=i(r).next)!=null&&I.link?(s(),_(E,{key:0,class:"pager-link next",href:i(r).next.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.next)||"Next page"},null,8,Kt),d("span",{class:"title",innerHTML:i(r).next.text},null,8,qt)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),Jt=g(Rt,[["__scopeId","data-v-d650fb62"]]),Xt={class:"container"},Yt={class:"aside-container"},Qt={class:"aside-content"},Zt={class:"content"},en={class:"content-container"},tn={class:"main"},nn=p({__name:"VPDoc",setup(e){const{theme:t}=L(),n=Q(),{hasSidebar:a,hasAside:o,leftAside:r}=D(),l=y(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,f)=>{const $=W("Content");return s(),u("div",{class:N(["VPDoc",{"has-sidebar":i(a),"has-aside":i(o)}])},[c(v.$slots,"doc-top",{},void 0,!0),d("div",Xt,[i(o)?(s(),u("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[f[0]||(f[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Yt,[d("div",Qt,[k(Mt,null,{"aside-top":h(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),d("div",Zt,[d("div",en,[c(v.$slots,"doc-before",{},void 0,!0),d("main",tn,[k($,{class:N(["vp-doc",[l.value,i(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(Jt,null,{"doc-footer-before":h(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),an=g(nn,[["__scopeId","data-v-c0d172cc"]]),on=p({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.href&&ye.test(t.href)),a=y(()=>t.tag||(t.href?"a":"button"));return(o,r)=>(s(),_(B(a.value),{class:N(["VPButton",[e.size,e.theme]]),href:e.href?i(he)(e.href):void 0,target:t.target??(n.value?"_blank":void 0),rel:t.rel??(n.value?"noreferrer":void 0)},{default:h(()=>[j(M(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),sn=g(on,[["__scopeId","data-v-701b600a"]]),rn=["src","alt"],ln=p({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,n)=>{const a=W("VPImage",!0);return e.image?(s(),u(x,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:i(de)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,rn)):(s(),u(x,{key:1},[k(a,G({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),k(a,G({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),J=g(ln,[["__scopeId","data-v-a9ec2bb1"]]),cn={class:"container"},un={class:"main"},dn={class:"heading"},vn=["innerHTML"],fn=["innerHTML"],hn=["innerHTML"],mn={key:0,class:"actions"},pn={key:0,class:"image"},kn={class:"image-container"},_n=p({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=Z("hero-image-slot-exists");return(n,a)=>(s(),u("div",{class:N(["VPHero",{"has-image":e.image||i(t)}])},[d("div",cn,[d("div",un,[c(n.$slots,"home-hero-info-before",{},void 0,!0),c(n.$slots,"home-hero-info",{},()=>[d("h1",dn,[e.name?(s(),u("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,vn)):m("",!0),e.text?(s(),u("span",{key:1,innerHTML:e.text,class:"text"},null,8,fn)):m("",!0)]),e.tagline?(s(),u("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,hn)):m("",!0)],!0),c(n.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(s(),u("div",mn,[(s(!0),u(x,null,A(e.actions,o=>(s(),u("div",{key:o.link,class:"action"},[k(sn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||i(t)?(s(),u("div",pn,[d("div",kn,[a[0]||(a[0]=d("div",{class:"image-bg"},null,-1)),c(n.$slots,"home-hero-image",{},()=>[e.image?(s(),_(J,{key:0,class:"image-src",image:e.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),bn=g(_n,[["__scopeId","data-v-4d7b5684"]]),gn=p({__name:"VPHomeHero",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).hero?(s(),_(bn,{key:0,class:"VPHomeHero",name:i(t).hero.name,text:i(t).hero.text,tagline:i(t).hero.tagline,image:i(t).hero.image,actions:i(t).hero.actions},{"home-hero-info-before":h(()=>[c(n.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[c(n.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[c(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[c(n.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[c(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),$n={class:"box"},yn={key:0,class:"icon"},Pn=["innerHTML"],Ln=["innerHTML"],Vn=["innerHTML"],Sn={key:4,class:"link-text"},Tn={class:"link-text-value"},Nn=p({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,n)=>(s(),_(E,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[d("article",$n,[typeof e.icon=="object"&&e.icon.wrap?(s(),u("div",yn,[k(J,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(s(),_(J,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(s(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):m("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Ln),e.details?(s(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Vn)):m("",!0),e.linkText?(s(),u("div",Sn,[d("p",Tn,[j(M(e.linkText)+" ",1),n[0]||(n[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Mn=g(Nn,[["__scopeId","data-v-281d2434"]]),xn={key:0,class:"VPFeatures"},In={class:"container"},wn={class:"items"},An=p({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,n=y(()=>{const a=t.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,o)=>e.features?(s(),u("div",xn,[d("div",In,[d("div",wn,[(s(!0),u(x,null,A(e.features,r=>(s(),u("div",{key:r.title,class:N(["item",[n.value]])},[k(Mn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Cn=g(An,[["__scopeId","data-v-4a3c9473"]]),Hn=p({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).features?(s(),_(Cn,{key:0,class:"VPHomeFeatures",features:i(t).features},null,8,["features"])):m("",!0)}}),Bn=p({__name:"VPHomeContent",setup(e){const{width:t}=De({initialWidth:0,includeScrollbar:!1});return(n,a)=>(s(),u("div",{class:"vp-doc container",style:Pe(i(t)?{"--vp-offset":`calc(50% - ${i(t)/2}px)`}:{})},[c(n.$slots,"default",{},void 0,!0)],4))}}),En=g(Bn,[["__scopeId","data-v-b6816877"]]),Fn=p({__name:"VPHome",setup(e){const{frontmatter:t,theme:n}=L();return(a,o)=>{const r=W("Content");return s(),u("div",{class:N(["VPHome",{"external-link-icon-enabled":i(n).externalLinkIcon}])},[c(a.$slots,"home-hero-before",{},void 0,!0),k(gn,null,{"home-hero-info-before":h(()=>[c(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(a.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(a.$slots,"home-hero-after",{},void 0,!0),c(a.$slots,"home-features-before",{},void 0,!0),k(Hn),c(a.$slots,"home-features-after",{},void 0,!0),i(t).markdownStyles!==!1?(s(),_(En,{key:0},{default:h(()=>[k(r)]),_:1})):(s(),_(r,{key:1}))],2)}}}),Dn=g(Fn,[["__scopeId","data-v-436abcc8"]]),On={},Gn={class:"VPPage"};function Un(e,t){const n=W("Content");return s(),u("div",Gn,[c(e.$slots,"page-top"),k(n),c(e.$slots,"page-bottom")])}const jn=g(On,[["render",Un]]),zn=p({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>(s(),u("div",{class:N(["VPContent",{"has-sidebar":i(a),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(t).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(rt)],!0):i(n).layout==="page"?(s(),_(jn,{key:1},{"page-top":h(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(s(),_(Dn,{key:2},{"home-hero-before":h(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(n).layout&&i(n).layout!=="doc"?(s(),_(B(i(n).layout),{key:3})):(s(),_(an,{key:4},{"doc-top":h(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Wn=g(zn,[["__scopeId","data-v-df015b7a"]]),Kn={class:"container"},qn=["innerHTML"],Rn=["innerHTML"],Jn=p({__name:"VPFooter",setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>i(t).footer&&i(n).footer!==!1?(s(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(a)}])},[d("div",Kn,[i(t).footer.message?(s(),u("p",{key:0,class:"message",innerHTML:i(t).footer.message},null,8,qn)):m("",!0),i(t).footer.copyright?(s(),u("p",{key:1,class:"copyright",innerHTML:i(t).footer.copyright},null,8,Rn)):m("",!0)])],2)):m("",!0)}}),Xn=g(Jn,[["__scopeId","data-v-cea6e03e"]]);function Yn(){const{theme:e,frontmatter:t}=L(),n=$e([]),a=y(()=>n.value.length>0);return Y(()=>{n.value=me(t.value.outline??e.value.outline)}),{headers:n,hasLocalNav:a}}const Qn={class:"menu-text"},Zn={class:"header"},ea={class:"outline"},ta=p({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:n}=L(),a=S(!1),o=S(0),r=S(),l=S();function v(b){var P;(P=r.value)!=null&&P.contains(b.target)||(a.value=!1)}F(a,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),ie("Escape",()=>{a.value=!1}),Y(()=>{a.value=!1});function f(){a.value=!a.value,o.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function $(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Le(()=>{a.value=!1}))}function V(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(s(),u("div",{class:"VPLocalNavOutlineDropdown",style:Pe({"--vp-vh":o.value+"px"}),ref_key:"main",ref:r},[e.headers.length>0?(s(),u("button",{key:0,onClick:f,class:N({open:a.value})},[d("span",Qn,M(i(Me)(i(n))),1),P[0]||(P[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(s(),u("button",{key:1,onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)),k(ue,{name:"flyout"},{default:h(()=>[a.value?(s(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:$},[d("div",Zn,[d("a",{class:"top-link",href:"#",onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)]),d("div",ea,[k(xe,{headers:e.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),na=g(ta,[["__scopeId","data-v-65f11ad7"]]),aa={class:"container"},oa=["aria-expanded"],sa={class:"menu-text"},ia=p({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D(),{headers:o}=Yn(),{y:r}=Ve(),l=S(0);U(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Y(()=>{o.value=me(n.value.outline??t.value.outline)});const v=y(()=>o.value.length===0),f=y(()=>v.value&&!a.value),$=y(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:v.value,fixed:f.value}));return(V,b)=>i(n).layout!=="home"&&(!f.value||i(r)>=l.value)?(s(),u("div",{key:0,class:N($.value)},[d("div",aa,[i(a)?(s(),u("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",sa,M(i(t).sidebarMenuLabel||"Menu"),1)],8,oa)):m("",!0),k(na,{headers:i(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),ra=g(ia,[["__scopeId","data-v-42b4930c"]]);function la(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function a(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const r=Q();return F(()=>r.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:a}}const ca={},ua={class:"VPSwitch",type:"button",role:"switch"},da={class:"check"},va={key:0,class:"icon"};function fa(e,t){return s(),u("button",ua,[d("span",da,[e.$slots.default?(s(),u("span",va,[c(e.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ha=g(ca,[["render",fa],["__scopeId","data-v-be020907"]]),ma=p({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:n}=L(),a=Z("toggle-appearance",()=>{t.value=!t.value}),o=S("");return fe(()=>{o.value=t.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(s(),_(ha,{title:o.value,class:"VPSwitchAppearance","aria-checked":i(t),onClick:i(a)},{default:h(()=>[...l[0]||(l[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),pe=g(ma,[["__scopeId","data-v-0c13c3df"]]),pa={key:0,class:"VPNavBarAppearance"},ka=p({__name:"VPNavBarAppearance",setup(e){const{site:t}=L();return(n,a)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",pa,[k(pe)])):m("",!0)}}),_a=g(ka,[["__scopeId","data-v-7208450f"]]),ke=S();let Ie=!1,oe=0;function ba(e){const t=S(!1);if(ee){!Ie&&ga(),oe++;const n=F(ke,a=>{var o,r,l;a===e.el.value||(o=e.el.value)!=null&&o.contains(a)?(t.value=!0,(r=e.onFocus)==null||r.call(e)):(t.value=!1,(l=e.onBlur)==null||l.call(e))});ve(()=>{n(),oe--,oe||$a()})}return Oe(t)}function ga(){document.addEventListener("focusin",we),Ie=!0,ke.value=document.activeElement}function $a(){document.removeEventListener("focusin",we)}function we(){ke.value=document.activeElement}const ya={class:"VPMenuLink"},Pa=["innerHTML"],La=p({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),u("div",ya,[k(E,{class:N({active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Pa)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),te=g(La,[["__scopeId","data-v-adc65559"]]),Va={class:"VPMenuGroup"},Sa={key:0,class:"title"},Ta=p({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Va,[e.text?(s(),u("p",Sa,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),u(x,null,["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):m("",!0)],64))),256))]))}}),Na=g(Ta,[["__scopeId","data-v-2751c69e"]]),Ma={class:"VPMenu"},xa={key:0,class:"items"},Ia=p({__name:"VPMenu",props:{items:{}},setup(e){return(t,n)=>(s(),u("div",Ma,[e.items?(s(),u("div",xa,[(s(!0),u(x,null,A(e.items,a=>(s(),u(x,{key:JSON.stringify(a)},["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):"component"in a?(s(),_(B(a.component),G({key:1,ref_for:!0},a.props),null,16)):(s(),_(Na,{key:2,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):m("",!0),c(t.$slots,"default",{},void 0,!0)]))}}),wa=g(Ia,[["__scopeId","data-v-78767497"]]),Aa=["aria-expanded","aria-label"],Ca={key:0,class:"text"},Ha=["innerHTML"],Ba={key:1,class:"vpi-more-horizontal icon"},Ea={class:"menu"},Fa=p({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=S(!1),n=S();ba({el:n,onBlur:a});function a(){t.value=!1}return(o,r)=>(s(),u("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=l=>t.value=!0),onMouseleave:r[2]||(r[2]=l=>t.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:r[0]||(r[0]=l=>t.value=!t.value)},[e.button||e.icon?(s(),u("span",Ca,[e.icon?(s(),u("span",{key:0,class:N([e.icon,"option-icon"])},null,2)):m("",!0),e.button?(s(),u("span",{key:1,innerHTML:e.button},null,8,Ha)):m("",!0),r[3]||(r[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(s(),u("span",Ba))],8,Aa),d("div",Ea,[k(wa,{items:e.items},{default:h(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),_e=g(Fa,[["__scopeId","data-v-500c8661"]]),Da=["href","aria-label","innerHTML"],Oa=p({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,n=S();U(async()=>{var r;await Le();const o=(r=n.value)==null?void 0:r.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const a=y(()=>typeof t.icon=="object"?t.icon.svg:``);return(o,r)=>(s(),u("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="string"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:a.value},null,8,Da))}}),Ga=g(Oa,[["__scopeId","data-v-0890861b"]]),Ua={class:"VPSocialLinks"},ja=p({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,n)=>(s(),u("div",Ua,[(s(!0),u(x,null,A(e.links,({link:a,icon:o,ariaLabel:r})=>(s(),_(Ga,{key:a,icon:o,link:a,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=g(ja,[["__scopeId","data-v-a84d2f45"]]),za={key:0,class:"group translations"},Wa={class:"trans-title"},Ka={key:1,class:"group"},qa={class:"item appearance"},Ra={class:"label"},Ja={class:"appearance-action"},Xa={key:2,class:"group"},Ya={class:"item social-links"},Qa=p({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=L(),{localeLinks:a,currentLang:o}=q({correspondingLink:!0}),r=y(()=>a.value.length&&o.value.label||t.value.appearance||n.value.socialLinks);return(l,v)=>r.value?(s(),_(_e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[i(a).length&&i(o).label?(s(),u("div",za,[d("p",Wa,M(i(o).label),1),(s(!0),u(x,null,A(i(a),f=>(s(),_(te,{key:f.link,item:f},null,8,["item"]))),128))])):m("",!0),i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Ka,[d("div",qa,[d("p",Ra,M(i(n).darkModeSwitchLabel||"Appearance"),1),d("div",Ja,[k(pe)])])])):m("",!0),i(n).socialLinks?(s(),u("div",Xa,[d("div",Ya,[k(be,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),Za=g(Qa,[["__scopeId","data-v-c2346f84"]]),eo=["aria-expanded"],to=p({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(s(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=a=>t.$emit("click"))},[...n[1]||(n[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)])],10,eo))}}),no=g(to,[["__scopeId","data-v-c0ff09b3"]]),ao=["innerHTML"],oo=p({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),_(E,{class:N({VPNavBarMenuLink:!0,active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,ao)]),_:1},8,["class","href","target","rel","no-icon"]))}}),so=g(oo,[["__scopeId","data-v-df2fe9fb"]]),io=p({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:n}=L(),a=r=>"component"in r?!1:"link"in r?z(n.value.relativePath,r.link,!!t.item.activeMatch):r.items.some(a),o=y(()=>a(t.item));return(r,l)=>(s(),_(_e,{class:N({VPNavBarMenuGroup:!0,active:i(z)(i(n).relativePath,e.item.activeMatch,!!e.item.activeMatch)||o.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),ro={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},lo=p({__name:"VPNavBarMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",ro,[a[0]||(a[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(so,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props),null,16)):(s(),_(io,{key:2,item:o},null,8,["item"]))],64))),128))])):m("",!0)}}),co=g(lo,[["__scopeId","data-v-a8c7b9cb"]]);function uo(e){const{localeIndex:t,theme:n}=L();function a(o){var I,w,C;const r=o.split("."),l=(I=n.value.search)==null?void 0:I.options,v=l&&typeof l=="object",f=v&&((C=(w=l.locales)==null?void 0:w[t.value])==null?void 0:C.translations)||null,$=v&&l.translations||null;let V=f,b=$,P=e;const T=r.pop();for(const H of r){let O=null;const K=P==null?void 0:P[H];K&&(O=P=K);const ne=b==null?void 0:b[H];ne&&(O=b=ne);const ae=V==null?void 0:V[H];ae&&(O=V=ae),K||(P=O),ne||(b=O),ae||(V=O)}return(V==null?void 0:V[T])??(b==null?void 0:b[T])??(P==null?void 0:P[T])??""}return a}const vo=["aria-label"],fo={class:"DocSearch-Button-Container"},ho={class:"DocSearch-Button-Placeholder"},ge=p({__name:"VPNavBarSearchButton",setup(e){const n=uo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,o)=>(s(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(n)("button.buttonAriaLabel")},[d("span",fo,[o[0]||(o[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",ho,M(i(n)("button.buttonText")),1)]),o[1]||(o[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vo))}}),mo={class:"VPNavBarSearch"},po={id:"local-search"},ko={key:1,id:"docsearch"},_o=p({__name:"VPNavBarSearch",setup(e){const t=Ge(()=>Ue(()=>import("./VPLocalSearchBox.xTrNHbjP.js"),__vite__mapDeps([0,1]))),n=()=>null,{theme:a}=L(),o=S(!1),r=S(!1);U(()=>{});function l(){o.value||(o.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function f(b){const P=b.target,T=P.tagName;return P.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const $=S(!1);ie("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),$.value=!0)}),ie("/",b=>{f(b)||(b.preventDefault(),$.value=!0)});const V="local";return(b,P)=>{var T;return s(),u("div",mo,[i(V)==="local"?(s(),u(x,{key:0},[$.value?(s(),_(i(t),{key:0,onClose:P[0]||(P[0]=I=>$.value=!1)})):m("",!0),d("div",po,[k(ge,{onClick:P[1]||(P[1]=I=>$.value=!0)})])],64)):i(V)==="algolia"?(s(),u(x,{key:1},[o.value?(s(),_(i(n),{key:0,algolia:((T=i(a).search)==null?void 0:T.options)??i(a).algolia,onVnodeBeforeMount:P[2]||(P[2]=I=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(s(),u("div",ko,[k(ge,{onClick:l})]))],64)):m("",!0)])}}}),bo=p({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavBarSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),go=g(bo,[["__scopeId","data-v-1a196069"]]),$o=["href","rel","target"],yo=["innerHTML"],Po={key:2},Lo=p({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=L(),{hasSidebar:a}=D(),{currentLang:o}=q(),r=y(()=>{var f;return typeof n.value.logoLink=="string"?n.value.logoLink:(f=n.value.logoLink)==null?void 0:f.link}),l=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.rel}),v=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.target});return(f,$)=>(s(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(a)}])},[d("a",{class:"title",href:r.value??i(he)(i(o).link),rel:l.value,target:v.value},[c(f.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(s(),_(J,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(s(),u("span",{key:1,innerHTML:i(n).siteTitle},null,8,yo)):i(n).siteTitle===void 0?(s(),u("span",Po,M(i(t).title),1)):m("",!0),c(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,$o)],2))}}),Vo=g(Lo,[["__scopeId","data-v-d3560e07"]]),So={class:"items"},To={class:"title"},No=p({__name:"VPNavBarTranslations",setup(e){const{theme:t}=L(),{localeLinks:n,currentLang:a}=q({correspondingLink:!0});return(o,r)=>i(n).length&&i(a).label?(s(),_(_e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(t).langMenuLabel||"Change language"},{default:h(()=>[d("div",So,[d("p",To,M(i(a).label),1),(s(!0),u(x,null,A(i(n),l=>(s(),_(te,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Mo=g(No,[["__scopeId","data-v-f7e0dd34"]]),xo={class:"wrapper"},Io={class:"container"},wo={class:"title"},Ao={class:"content"},Co={class:"content-body"},Ho=p({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:n}=Ve(),{hasSidebar:a}=D(),{frontmatter:o}=L(),r=S({});return fe(()=>{r.value={"has-sidebar":a.value,home:o.value.layout==="home",top:n.value===0,"screen-open":t.isScreenOpen}}),(l,v)=>(s(),u("div",{class:N(["VPNavBar",r.value])},[d("div",xo,[d("div",Io,[d("div",wo,[k(Vo,null,{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Ao,[d("div",Co,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(_o,{class:"search"}),k(co,{class:"menu"}),k(Mo,{class:"translations"}),k(_a,{class:"appearance"}),k(go,{class:"social-links"}),k(Za,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(no,{class:"hamburger",active:e.isScreenOpen,onClick:v[0]||(v[0]=f=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Bo=g(Ho,[["__scopeId","data-v-d92360c8"]]),Eo={key:0,class:"VPNavScreenAppearance"},Fo={class:"text"},Do=p({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=L();return(a,o)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Eo,[d("p",Fo,M(i(n).darkModeSwitchLabel||"Appearance"),1),k(pe)])):m("",!0)}}),Oo=g(Do,[["__scopeId","data-v-5f5f718e"]]),Go=["innerHTML"],Uo=p({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Go)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),jo=g(Uo,[["__scopeId","data-v-af7e055c"]]),zo=["innerHTML"],Wo=p({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,zo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ae=g(Wo,[["__scopeId","data-v-a18eb207"]]),Ko={class:"VPNavScreenMenuGroupSection"},qo={key:0,class:"title"},Ro=p({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Ko,[e.text?(s(),u("p",qo,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),_(Ae,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Jo=g(Ro,[["__scopeId","data-v-18902326"]]),Xo=["aria-controls","aria-expanded"],Yo=["innerHTML"],Qo=["id"],Zo={key:0,class:"item"},es={key:1,class:"item"},ts={key:2,class:"group"},ns=p({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,n=S(!1),a=y(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(r,l)=>(s(),u("div",{class:N(["VPNavScreenMenuGroup",{open:n.value}])},[d("button",{class:"button","aria-controls":a.value,"aria-expanded":n.value,onClick:o},[d("span",{class:"button-text",innerHTML:e.text},null,8,Yo),l[0]||(l[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Xo),d("div",{id:a.value,class:"items"},[(s(!0),u(x,null,A(e.items,v=>(s(),u(x,{key:JSON.stringify(v)},["link"in v?(s(),u("div",Zo,[k(Ae,{item:v},null,8,["item"])])):"component"in v?(s(),u("div",es,[(s(),_(B(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(s(),u("div",ts,[k(Jo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Qo)],2))}}),as=g(ns,[["__scopeId","data-v-2bf06c47"]]),os={key:0,class:"VPNavScreenMenu"},ss=p({__name:"VPNavScreenMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",os,[(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(jo,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(s(),_(as,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),is=p({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavScreenSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),rs={class:"list"},ls=p({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=q({correspondingLink:!0}),a=S(!1);function o(){a.value=!a.value}return(r,l)=>i(t).length&&i(n).label?(s(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:a.value}])},[d("button",{class:"title",onClick:o},[l[0]||(l[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),j(" "+M(i(n).label)+" ",1),l[1]||(l[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",rs,[(s(!0),u(x,null,A(i(t),v=>(s(),u("li",{key:v.link,class:"item"},[k(E,{class:"link",href:v.link},{default:h(()=>[j(M(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),cs=g(ls,[["__scopeId","data-v-842a3317"]]),us={class:"container"},ds=p({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=S(null),n=Se(ee?document.body:null);return(a,o)=>(s(),_(ue,{name:"fade",onEnter:o[0]||(o[0]=r=>n.value=!0),onAfterLeave:o[1]||(o[1]=r=>n.value=!1)},{default:h(()=>[e.open?(s(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[d("div",us,[c(a.$slots,"nav-screen-content-before",{},void 0,!0),k(ss,{class:"menu"}),k(cs,{class:"translations"}),k(Oo,{class:"appearance"}),k(is,{class:"social-links"}),c(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),vs=g(ds,[["__scopeId","data-v-424bec18"]]),fs={key:0,class:"VPNav"},hs=p({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:a}=la(),{frontmatter:o}=L(),r=y(()=>o.value.navbar!==!1);return Te("close-screen",n),X(()=>{ee&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,v)=>r.value?(s(),u("header",fs,[k(Bo,{"is-screen-open":i(t),onToggleScreen:i(a)},{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(vs,{open:i(t)},{"nav-screen-content-before":h(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),ms=g(hs,[["__scopeId","data-v-39691f49"]]),ps=["role","tabindex"],ks={key:1,class:"items"},_s=p({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:n,collapsible:a,isLink:o,isActiveLink:r,hasActiveLink:l,hasChildren:v,toggle:f}=dt(y(()=>t.item)),$=y(()=>v.value?"section":"div"),V=y(()=>o.value?"a":"div"),b=y(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),T=y(()=>[[`level-${t.depth}`],{collapsible:a.value},{collapsed:n.value},{"is-link":o.value},{"is-active":r.value},{"has-active":l.value}]);function I(C){"key"in C&&C.key!=="Enter"||!t.item.link&&f()}function w(){t.item.link&&f()}return(C,H)=>{const O=W("VPSidebarItem",!0);return s(),_(B($.value),{class:N(["VPSidebarItem",T.value])},{default:h(()=>[e.item.text?(s(),u("div",G({key:0,class:"item",role:P.value},je(e.item.items?{click:I,keydown:I}:{},!0),{tabindex:e.item.items&&0}),[H[1]||(H[1]=d("div",{class:"indicator"},null,-1)),e.item.link?(s(),_(E,{key:0,tag:V.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:h(()=>[(s(),_(B(b.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),_(B(b.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(s(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:w,onKeydown:ze(w,["enter"]),tabindex:"0"},[...H[0]||(H[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):m("",!0)],16,ps)):m("",!0),e.item.items&&e.item.items.length?(s(),u("div",ks,[e.depth<5?(s(!0),u(x,{key:0},A(e.item.items,K=>(s(),_(O,{key:K.text,item:K,depth:e.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),bs=g(_s,[["__scopeId","data-v-df85d8e3"]]),gs=p({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=S(!0);let n=null;return U(()=>{n=setTimeout(()=>{n=null,t.value=!1},300)}),We(()=>{n!=null&&(clearTimeout(n),n=null)}),(a,o)=>(s(!0),u(x,null,A(e.items,r=>(s(),u("div",{key:r.text,class:N(["group",{"no-transition":t.value}])},[k(bs,{item:r,depth:0},null,8,["item"])],2))),128))}}),$s=g(gs,[["__scopeId","data-v-60f157c0"]]),ys={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ps=p({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:n}=D(),a=e,o=S(null),r=Se(ee?document.body:null);F([a,o],()=>{var v;a.open?(r.value=!0,(v=o.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=S(0);return F(t,()=>{l.value+=1},{deep:!0}),(v,f)=>i(n)?(s(),u("aside",{key:0,class:N(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:f[0]||(f[0]=Ke(()=>{},["stop"]))},[f[2]||(f[2]=d("div",{class:"curtain"},null,-1)),d("nav",ys,[f[1]||(f[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(s(),_($s,{items:i(t),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Ls=g(Ps,[["__scopeId","data-v-aee49e2a"]]),Vs=p({__name:"VPSkipLink",setup(e){const{theme:t}=L(),n=Q(),a=S();F(()=>n.path,()=>a.value.focus());function o({target:r}){const l=document.getElementById(decodeURIComponent(r.hash).slice(1));if(l){const v=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",v)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",v),l.focus(),window.scrollTo(0,0)}}return(r,l)=>(s(),u(x,null,[d("span",{ref_key:"backToTop",ref:a,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},M(i(t).skipToContentLabel||"Skip to content"),1)],64))}}),Ss=g(Vs,[["__scopeId","data-v-639cd3d8"]]),Ts=p({__name:"Layout",setup(e){const{isOpen:t,open:n,close:a}=D(),o=Q();F(()=>o.path,a),ut(t,a);const{frontmatter:r}=L(),l=qe(),v=y(()=>!!l["home-hero-image"]);return Te("hero-image-slot-exists",v),(f,$)=>{const V=W("Content");return i(r).layout!==!1?(s(),u("div",{key:0,class:N(["Layout",i(r).pageClass])},[c(f.$slots,"layout-top",{},void 0,!0),k(Ss),k(Ye,{class:"backdrop",show:i(t),onClick:i(a)},null,8,["show","onClick"]),k(ms,null,{"nav-bar-title-before":h(()=>[c(f.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(f.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(f.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(f.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[c(f.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(f.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ra,{open:i(t),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),k(Ls,{open:i(t)},{"sidebar-nav-before":h(()=>[c(f.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[c(f.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(Wn,null,{"page-top":h(()=>[c(f.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(f.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[c(f.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[c(f.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(f.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(f.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(f.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(f.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(f.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(f.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(f.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(f.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[c(f.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(f.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(f.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[c(f.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(f.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[c(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(Xn),c(f.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),_(V,{key:1}))}}}),Ns=g(Ts,[["__scopeId","data-v-ecfbf7a9"]]),xs={Layout:Ns,enhanceApp:({app:e})=>{e.component("Badge",Re)}};export{uo as c,xs as t,L as u}; diff --git a/assets/concepts_identity-and-binding.md.Dqnt6wsW.js b/assets/concepts_identity-and-binding.md.Dqnt6wsW.js deleted file mode 100644 index 1ac805b5..00000000 --- a/assets/concepts_identity-and-binding.md.Dqnt6wsW.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as t,c as o,ag as a}from"./chunks/framework.DEqXEGcv.js";const h=JSON.parse('{"title":"Accounts and Linking","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/identity-and-binding.md","filePath":"concepts/identity-and-binding.md","lastUpdated":1770887583000}'),i={name:"concepts/identity-and-binding.md"};function s(c,n,l,r,d,u){return t(),o("div",null,[...n[0]||(n[0]=[a('

Accounts and Linking

Account Model

Memoh treats platform accounts and system accounts as two different entities:

  • Platform Account (ChannelIdentity) is the user's account on an external access platform (for example, a TG account), not a Memoh internal account.
  • System Account (User) is an internal account in Memoh.

A platform account can exist before linking.
bind is the mechanism that links these two account types.

Access Platform and Bot

  • Access Platform (channel) is where inbound messages come from.
  • Bot is an authorization and resource boundary inside Memoh.

Bots are managed by system accounts, while inbound messages are produced by platform accounts.

Why Linking Is Account-Scoped

Account linking exists to establish account ownership, not to grant bot resources directly:

  • It links platform accounts and system accounts independent of any single bot.
  • It avoids coupling account linking with member management semantics.
  • It keeps bot authorization and account linking decoupled.

Linking Flow (Current Consensus)

  1. A user requests a bind code under their own system account.
  2. The platform account sends the code from a supported access-platform conversation.
  3. Memoh validates the code and links platform account to system account.
  4. Bot membership and authorization are handled by their own flows.

Bot Type Semantics

  • Public bot: supports member-based collaboration.
  • Personal bot: conceptually single-owner, and should not rely on member semantics.

Note: The conceptual model is documented here as product semantics.
Runtime behavior may still be in transition as implementations are tightened.

',16)])])}const p=e(i,[["render",s]]);export{h as __pageData,p as default}; diff --git a/assets/concepts_identity-and-binding.md.Dqnt6wsW.lean.js b/assets/concepts_identity-and-binding.md.Dqnt6wsW.lean.js deleted file mode 100644 index d4e11555..00000000 --- a/assets/concepts_identity-and-binding.md.Dqnt6wsW.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as t,c as o,ag as a}from"./chunks/framework.DEqXEGcv.js";const h=JSON.parse('{"title":"Accounts and Linking","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/identity-and-binding.md","filePath":"concepts/identity-and-binding.md","lastUpdated":1770887583000}'),i={name:"concepts/identity-and-binding.md"};function s(c,n,l,r,d,u){return t(),o("div",null,[...n[0]||(n[0]=[a("",16)])])}const p=e(i,[["render",s]]);export{h as __pageData,p as default}; diff --git a/assets/concepts_index.md.CxGkiYqO.js b/assets/concepts_index.md.CxGkiYqO.js deleted file mode 100644 index baf53326..00000000 --- a/assets/concepts_index.md.CxGkiYqO.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,o as a,c as n,ag as o}from"./chunks/framework.DEqXEGcv.js";const m=JSON.parse('{"title":"Core Concepts","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/index.md","filePath":"concepts/index.md","lastUpdated":1770887583000}'),s={name:"concepts/index.md"};function c(r,e,i,l,h,p){return a(),n("div",null,[...e[0]||(e[0]=[o('

Core Concepts

This section defines the core account and access concepts used by Memoh.

Concept Map

  • System Account (User): an internal account in Memoh.
  • Platform Account (ChannelIdentity): a user's account on an external access platform, not a Memoh account (for example, the user's Telegram (TG) account).
  • Bot: an access and resource boundary managed by a system account.
  • Account Linking (bind): the process that links a platform account to a system account.

Why This Matters

Memoh receives messages from external access platforms, but manages permissions and resources inside the system. To keep these concerns clear, the model separates platform accounts from system accounts, while keeping bot access control as an independent concern.

Terminology note: "platform account" always means the user's account on that platform (such as TG), not an internal account created by this project.

In This Chapter

',9)])])}const u=t(s,[["render",c]]);export{m as __pageData,u as default}; diff --git a/assets/concepts_index.md.CxGkiYqO.lean.js b/assets/concepts_index.md.CxGkiYqO.lean.js deleted file mode 100644 index 14612671..00000000 --- a/assets/concepts_index.md.CxGkiYqO.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,o as a,c as n,ag as o}from"./chunks/framework.DEqXEGcv.js";const m=JSON.parse('{"title":"Core Concepts","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/index.md","filePath":"concepts/index.md","lastUpdated":1770887583000}'),s={name:"concepts/index.md"};function c(r,e,i,l,h,p){return a(),n("div",null,[...e[0]||(e[0]=[o("",9)])])}const u=t(s,[["render",c]]);export{m as __pageData,u as default}; diff --git a/assets/getting-started.md.B026JaLd.js b/assets/getting-started.md.B026JaLd.js new file mode 100644 index 00000000..bcae880a --- /dev/null +++ b/assets/getting-started.md.B026JaLd.js @@ -0,0 +1 @@ +import{_ as a,o as t,c as o,ag as i}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"About Memoh","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started.md","filePath":"getting-started.md","lastUpdated":1771162384000}'),n={name:"getting-started.md"};function r(l,e,s,c,d,h){return t(),o("div",null,[...e[0]||(e[0]=[i('

About Memoh

What is Memoh?

Memoh is a multi-member, structured long-memory, containerized AI agent system platform. You can create your own AI bots and chat with them via Telegram, Lark (Feishu), and more. Every bot has an independent container and memory system, allowing it to edit files, execute commands, and access the network within its own container — like having its own computer.

Key Features

Multi-Bot Management

Create multiple bots. Humans and bots, or bots with each other, can chat privately, in groups, or collaborate. Build bot teams, or set up accounts for family members to manage daily tasks with bots.

Containerized Isolation

Each bot runs in its own isolated container (powered by Containerd) with a separate filesystem and network. Bots can freely read/write files and execute commands within their containers without interfering with each other.

Memory Engineering

A deeply engineered memory layer inspired by Mem0:

  • Automatically extracts key facts from each conversation turn and stores them as structured memories
  • Supports semantic search (via Qdrant vector database) and keyword retrieval (BM25)
  • Loads the last 24 hours of conversation context by default
  • Automatic memory compaction to keep the memory store lean
  • Multi-language auto-detection

Multi-Platform Support

Unified channel adapter architecture for connecting to multiple messaging platforms:

  • Telegram — Full support with streaming, Markdown, attachments, and replies
  • Lark (Feishu) — Full support
  • Web — Built-in web chat interface
  • CLI — Command-line chat

Agent Capabilities

Bots come with a rich set of built-in tools:

  • Web Search — Brave Search integration for real-time information
  • Subagents — Create specialized subagents, assign skills, and delegate complex tasks
  • Skills — Configurable skill system to extend bot capabilities
  • Container Operations — Read/write files, edit code, and execute commands inside the container
  • Memory Management — Search and manage memories
  • Messaging — Send messages and reactions

Multi-LLM Provider Support

Flexibly switch between a wide range of LLM providers:

  • OpenAI, Anthropic, Google, Azure, AWS Bedrock
  • Mistral, XAI, Ollama, Dashscope (Qwen), and more

MCP Protocol Support

Supports Model Context Protocol (MCP) via HTTP and SSE to connect external tool services. Each bot can have its own independent MCP connections.

Scheduled Tasks

Configure scheduled tasks using cron expressions to automatically run commands at specified times. Supports max execution count limits and manual triggers.

Graphical Configuration

Configure bots, channels, providers, models, MCP, skills, and all other settings through a web management UI — no coding required to set up your own AI bot.

CLI Tool

A command-line tool for bot management, channel configuration, model management, streaming chat, and more — designed for developers who prefer the terminal. See CLI documentation.

Installation

To get Memoh running:

  • Docker — Recommended. One-click or manual setup with Docker Compose. Includes all services (PostgreSQL, Qdrant, Containerd, server, agent, web) — no extra dependencies on the host.
  • config.toml — Reference for all configuration fields.
',31)])])}const p=a(n,[["render",r]]);export{u as __pageData,p as default}; diff --git a/assets/getting-started.md.B026JaLd.lean.js b/assets/getting-started.md.B026JaLd.lean.js new file mode 100644 index 00000000..5c94b156 --- /dev/null +++ b/assets/getting-started.md.B026JaLd.lean.js @@ -0,0 +1 @@ +import{_ as a,o as t,c as o,ag as i}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"About Memoh","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started.md","filePath":"getting-started.md","lastUpdated":1771162384000}'),n={name:"getting-started.md"};function r(l,e,s,c,d,h){return t(),o("div",null,[...e[0]||(e[0]=[i("",31)])])}const p=a(n,[["render",r]]);export{u as __pageData,p as default}; diff --git a/assets/getting-started.md.DF97X5A_.js b/assets/getting-started.md.DF97X5A_.js deleted file mode 100644 index 87432e27..00000000 --- a/assets/getting-started.md.DF97X5A_.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,o as a,c as o,ag as i}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started.md","filePath":"getting-started.md","lastUpdated":1771161622000}'),n={name:"getting-started.md"};function r(l,e,s,c,d,h){return a(),o("div",null,[...e[0]||(e[0]=[i('

Getting Started

What is Memoh?

Memoh is a multi-member, structured long-memory, containerized AI agent system platform. You can create your own AI bots and chat with them via Telegram, Lark (Feishu), and more. Every bot has an independent container and memory system, allowing it to edit files, execute commands, and access the network within its own container — like having its own computer.

Key Features

Multi-Bot Management

Create multiple bots. Humans and bots, or bots with each other, can chat privately, in groups, or collaborate. Build bot teams, or set up accounts for family members to manage daily tasks with bots.

Containerized Isolation

Each bot runs in its own isolated container (powered by Containerd) with a separate filesystem and network. Bots can freely read/write files and execute commands within their containers without interfering with each other.

Memory Engineering

A deeply engineered memory layer inspired by Mem0:

  • Automatically extracts key facts from each conversation turn and stores them as structured memories
  • Supports semantic search (via Qdrant vector database) and keyword retrieval (BM25)
  • Loads the last 24 hours of conversation context by default
  • Automatic memory compaction to keep the memory store lean
  • Multi-language auto-detection

Multi-Platform Support

Unified channel adapter architecture for connecting to multiple messaging platforms:

  • Telegram — Full support with streaming, Markdown, attachments, and replies
  • Lark (Feishu) — Full support
  • Web — Built-in web chat interface
  • CLI — Command-line chat

Agent Capabilities

Bots come with a rich set of built-in tools:

  • Web Search — Brave Search integration for real-time information
  • Subagents — Create specialized subagents, assign skills, and delegate complex tasks
  • Skills — Configurable skill system to extend bot capabilities
  • Container Operations — Read/write files, edit code, and execute commands inside the container
  • Memory Management — Search and manage memories
  • Messaging — Send messages and reactions

Multi-LLM Provider Support

Flexibly switch between a wide range of LLM providers:

  • OpenAI, Anthropic, Google, Azure, AWS Bedrock
  • Mistral, XAI, Ollama, Dashscope (Qwen), and more

MCP Protocol Support

Supports Model Context Protocol (MCP) via HTTP and SSE to connect external tool services. Each bot can have its own independent MCP connections.

Scheduled Tasks

Configure scheduled tasks using cron expressions to automatically run commands at specified times. Supports max execution count limits and manual triggers.

Graphical Configuration

Configure bots, channels, providers, models, MCP, skills, and all other settings through a web management UI — no coding required to set up your own AI bot.

CLI Tool

A command-line tool for bot management, channel configuration, model management, streaming chat, and more — designed for developers who prefer the terminal. See CLI documentation.

Installation

To get Memoh running:

  • Docker — Recommended. One-click or manual setup with Docker Compose. Includes all services (PostgreSQL, Qdrant, Containerd, server, agent, web) — no extra dependencies on the host.
  • config.toml — Reference for all configuration fields.
',31)])])}const p=t(n,[["render",r]]);export{u as __pageData,p as default}; diff --git a/assets/getting-started.md.DF97X5A_.lean.js b/assets/getting-started.md.DF97X5A_.lean.js deleted file mode 100644 index a67dc840..00000000 --- a/assets/getting-started.md.DF97X5A_.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,o as a,c as o,ag as i}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started.md","filePath":"getting-started.md","lastUpdated":1771161622000}'),n={name:"getting-started.md"};function r(l,e,s,c,d,h){return a(),o("div",null,[...e[0]||(e[0]=[i("",31)])])}const p=t(n,[["render",r]]);export{u as __pageData,p as default}; diff --git a/assets/getting-started_provider-and-model.md.Ix_AFx48.js b/assets/getting-started_provider-and-model.md.Ix_AFx48.js new file mode 100644 index 00000000..aa11d382 --- /dev/null +++ b/assets/getting-started_provider-and-model.md.Ix_AFx48.js @@ -0,0 +1 @@ +import{_ as t,o,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const r="/getting-started/provider-model-01-sidebar.png",l="/getting-started/provider-model-02-add-provider.png",i="/getting-started/provider-model-03-provider-dialog.png",n="/getting-started/provider-model-04-provider-selected.png",v=JSON.parse('{"title":"Configure Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started/provider-and-model.md","filePath":"getting-started/provider-and-model.md","lastUpdated":1771162384000}'),s={name:"getting-started/provider-and-model.md"};function p(c,e,g,h,m,u){return o(),d("div",null,[...e[0]||(e[0]=[a('

Configure Provider and Model

Before creating bots, you need to configure at least one LLM provider and add chat and embedding models. This guide walks you through the Web UI.

Prerequisites

Step 1: Open the Models Page

Click Models in the left sidebar to open the Provider and Model configuration page.

Models page - sidebar

The page has two panels:

  • Left: Provider list and filter
  • Right: Selected provider's details and models (or an empty state if none selected)

Step 2: Add a Provider

Click the Add Provider button (with a plus icon) at the bottom of the left panel.

Add Provider button

In the dialog, fill in:

FieldDescription
NameA display name for this provider (e.g. my-openai, ollama-local)
API KeyYour API key. For local services like Ollama, you can use a placeholder like ollama
Base URLThe API base URL (e.g. https://api.openai.com/v1, http://localhost:11434/v1 for Ollama)
TypeClient type: openai, openai-compat, anthropic, google, azure, bedrock, mistral, xai, ollama, dashscope

Add Provider dialog

Example — OpenAI:

  • Name: openai
  • API Key: sk-...
  • Base URL: https://api.openai.com/v1
  • Type: openai

Example — Ollama (local):

  • Name: ollama
  • API Key: ollama
  • Base URL: http://localhost:11434/v1
  • Type: ollama

Click Add to save. The new provider appears in the left sidebar.

Step 3: Add Models

Select a provider from the left panel. The right panel shows the provider form and the model list.

Provider selected - model list

Click Add Model to open the model creation dialog.

Fill in:

FieldDescription
Typechat or embedding
ModelModel ID (e.g. gpt-4, llama3.2, text-embedding-3-small)
Display NameOptional display name
DimensionsRequired for embedding models (e.g. 1536 for OpenAI embeddings)
MultimodalFor chat models only — enable if the model supports images

You need at least:

  • One chat model (for conversation)
  • One embedding model (for memory)

Add them under the same or different providers. For example:

  • Chat: gpt-4 (OpenAI) or llama3.2 (Ollama)
  • Embedding: text-embedding-3-small (OpenAI) or nomic-embed-text (Ollama)

Step 4: Edit or Delete

  • Provider: After selecting a provider, you can edit Name, API Key, and Base URL in the right panel, or delete the provider.
  • Model: Use the edit or delete actions on each model card in the list.

Next Steps

Once you have at least one chat model and one embedding model, you can create a bot (via Bots in the sidebar) and assign these models in the bot settings.

',34)])])}const f=t(s,[["render",p]]);export{v as __pageData,f as default}; diff --git a/assets/getting-started_provider-and-model.md.Ix_AFx48.lean.js b/assets/getting-started_provider-and-model.md.Ix_AFx48.lean.js new file mode 100644 index 00000000..8e541f4b --- /dev/null +++ b/assets/getting-started_provider-and-model.md.Ix_AFx48.lean.js @@ -0,0 +1 @@ +import{_ as t,o,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const r="/getting-started/provider-model-01-sidebar.png",l="/getting-started/provider-model-02-add-provider.png",i="/getting-started/provider-model-03-provider-dialog.png",n="/getting-started/provider-model-04-provider-selected.png",v=JSON.parse('{"title":"Configure Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started/provider-and-model.md","filePath":"getting-started/provider-and-model.md","lastUpdated":1771162384000}'),s={name:"getting-started/provider-and-model.md"};function p(c,e,g,h,m,u){return o(),d("div",null,[...e[0]||(e[0]=[a("",34)])])}const f=t(s,[["render",p]]);export{v as __pageData,f as default}; diff --git a/assets/index.md.BxPQTo9L.js b/assets/index.md.BxPQTo9L.js new file mode 100644 index 00000000..8f0b2a54 --- /dev/null +++ b/assets/index.md.BxPQTo9L.js @@ -0,0 +1 @@ +import{_ as t,o as a,c as o,ag as n}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"Memoh Documentation","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1771162384000}'),i={name:"index.md"};function r(s,e,l,m,d,c){return a(),o("div",null,[...e[0]||(e[0]=[n('

Memoh Documentation

Memoh is a multi-member, structured long-memory, containerized AI agent system. Create your own AI bots, chat with them via Telegram, Lark (Feishu), Web, or CLI. Each bot runs in an isolated container with its own memory system — able to edit files, run commands, and access the network.

Documentation

',4)])])}const f=t(i,[["render",r]]);export{u as __pageData,f as default}; diff --git a/assets/index.md.BxPQTo9L.lean.js b/assets/index.md.BxPQTo9L.lean.js new file mode 100644 index 00000000..231cf4a9 --- /dev/null +++ b/assets/index.md.BxPQTo9L.lean.js @@ -0,0 +1 @@ +import{_ as t,o as a,c as o,ag as n}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"Memoh Documentation","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1771162384000}'),i={name:"index.md"};function r(s,e,l,m,d,c){return a(),o("div",null,[...e[0]||(e[0]=[n("",4)])])}const f=t(i,[["render",r]]);export{u as __pageData,f as default}; diff --git a/assets/index.md.XthB7km1.js b/assets/index.md.XthB7km1.js deleted file mode 100644 index eaa68e1e..00000000 --- a/assets/index.md.XthB7km1.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o,c as a,ag as n}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"Memoh Documentation","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1771161622000}'),r={name:"index.md"};function i(s,t,l,c,m,d){return o(),a("div",null,[...t[0]||(t[0]=[n('

Memoh Documentation

Memoh is a multi-member, structured long-memory, containerized AI agent system. Create your own AI bots, chat with them via Telegram, Lark (Feishu), Web, or CLI. Each bot runs in an isolated container with its own memory system — able to edit files, run commands, and access the network.

Documentation

For Contributors

',6)])])}const f=e(r,[["render",i]]);export{u as __pageData,f as default}; diff --git a/assets/index.md.XthB7km1.lean.js b/assets/index.md.XthB7km1.lean.js deleted file mode 100644 index fd2cdbe9..00000000 --- a/assets/index.md.XthB7km1.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o,c as a,ag as n}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"Memoh Documentation","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1771161622000}'),r={name:"index.md"};function i(s,t,l,c,m,d){return o(),a("div",null,[...t[0]||(t[0]=[n("",6)])])}const f=e(r,[["render",i]]);export{u as __pageData,f as default}; diff --git a/assets/style_terminology.md.zpSWt3dU.js b/assets/style_terminology.md.zpSWt3dU.js deleted file mode 100644 index 4d363d3d..00000000 --- a/assets/style_terminology.md.zpSWt3dU.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o,o as t,c as n,ag as a}from"./chunks/framework.DEqXEGcv.js";const h=JSON.parse('{"title":"Terminology Rules","description":"","frontmatter":{},"headers":[],"relativePath":"style/terminology.md","filePath":"style/terminology.md","lastUpdated":1770887583000}'),r={name:"style/terminology.md"};function i(l,e,s,c,u,d){return t(),n("div",null,[...e[0]||(e[0]=[a('

Terminology Rules

Audience: documentation contributors and maintainers. This page defines writing terms. It is not product user guidance.

Canonical Terms

  • System Account (User): the account inside Memoh.
  • Platform Account (ChannelIdentity): the user's account on an external access platform, not a Memoh account.
  • Access Platform (channel): the external platform carrying inbound messages.
  • Account Linking (bind): linking a Platform Account to a System Account.
  • Bind Code: one-time code used for account linking.
  • Bot: resource and authorization boundary managed by a System Account.

Preferred Wording

  • Write "platform account" instead of "actor" in user-facing docs.
  • Write "access platform" instead of "channel" when describing product behavior.
  • Keep code aliases in parentheses on first mention:
    • Platform Account (ChannelIdentity)
    • System Account (User)
    • Account Linking (bind)

Disallowed or Discouraged Terms

  • Avoid plain actor in conceptual docs (except when quoting code symbols).
  • Avoid ambiguous platform user phrasing (it does not distinguish system vs platform account).
  • Avoid wording that implies Platform Account is created inside Memoh.

Example Sentences

  • Correct: "A platform account is the user's TG account, not a Memoh account."
  • Correct: "Account linking binds a platform account to a system account."
  • Incorrect: "Actor is a user in Memoh."

Contributor Checklist

  • Is every "account" term clearly scoped (system vs platform)?
  • Is "channel" replaced by "access platform" in prose?
  • Are code aliases kept only as parenthetical references?
',12)])])}const g=o(r,[["render",i]]);export{h as __pageData,g as default}; diff --git a/assets/style_terminology.md.zpSWt3dU.lean.js b/assets/style_terminology.md.zpSWt3dU.lean.js deleted file mode 100644 index 885be92c..00000000 --- a/assets/style_terminology.md.zpSWt3dU.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o,o as t,c as n,ag as a}from"./chunks/framework.DEqXEGcv.js";const h=JSON.parse('{"title":"Terminology Rules","description":"","frontmatter":{},"headers":[],"relativePath":"style/terminology.md","filePath":"style/terminology.md","lastUpdated":1770887583000}'),r={name:"style/terminology.md"};function i(l,e,s,c,u,d){return t(),n("div",null,[...e[0]||(e[0]=[a("",12)])])}const g=o(r,[["render",i]]);export{h as __pageData,g as default}; diff --git a/cli/auth.html b/cli/auth.html index 7c23be5a..71026ae4 100644 --- a/cli/auth.html +++ b/cli/auth.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

Auth Commands

login

Log in to the Memoh server. Prompts for username and password, then stores the JWT token in ~/.memoh/token.json.

bash
memoh login

Interactive prompts:

  • Username
  • Password

logout

Clear the stored token and log out.

bash
memoh logout

whoami

Show the current logged-in user (username, display name, user ID, role). Falls back to token info if the API call fails.

bash
memoh whoami

Published under AGPLv3

- +
Skip to content

Auth Commands

login

Log in to the Memoh server. Prompts for username and password, then stores the JWT token in ~/.memoh/token.json.

bash
memoh login

Interactive prompts:

  • Username
  • Password

logout

Clear the stored token and log out.

bash
memoh logout

whoami

Show the current logged-in user (username, display name, user ID, role). Falls back to token info if the API call fails.

bash
memoh whoami

Published under AGPLv3

+ \ No newline at end of file diff --git a/cli/bot.html b/cli/bot.html index de34d5a1..0b507bbe 100644 --- a/cli/bot.html +++ b/cli/bot.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

Bot Commands

Manage bots and chat with them.

bot list

List all bots. Admins can filter by owner.

bash
memoh bot list [options]
OptionDescription
--owner <user_id>Filter by owner user ID (admin only)

bot create

Create a new bot. Prompts for type and optionally name.

bash
memoh bot create [options]
OptionDescription
--type <type>personal or public
--name <name>Display name
--avatar <url>Avatar URL
--activeSet bot active
--inactiveSet bot inactive

bot update

Update bot info. Bot ID can be passed as argument or selected interactively.

bash
memoh bot update [id] [options]
OptionDescription
--name <name>Display name
--avatar <url>Avatar URL
--activeSet bot active
--inactiveSet bot inactive

bot delete

Delete a bot. Asks for confirmation.

bash
memoh bot delete [id]

bot chat

Start an interactive streaming chat with a bot.

bash
memoh bot chat [id]

Type messages and press Enter. Type exit to quit.

bot set-model

Enable a model for a bot (chat, memory, or embedding).

bash
memoh bot set-model [id] [options]
OptionDescription
--as <usage>chat, memory, or embedding
--model <model_id>Model ID

Example:

bash
memoh bot set-model my-bot-id --as chat --model gpt-4

Published under AGPLv3

- +
Skip to content

Bot Commands

Manage bots and chat with them.

bot list

List all bots. Admins can filter by owner.

bash
memoh bot list [options]
OptionDescription
--owner <user_id>Filter by owner user ID (admin only)

bot create

Create a new bot. Prompts for type and optionally name.

bash
memoh bot create [options]
OptionDescription
--type <type>personal or public
--name <name>Display name
--avatar <url>Avatar URL
--activeSet bot active
--inactiveSet bot inactive

bot update

Update bot info. Bot ID can be passed as argument or selected interactively.

bash
memoh bot update [id] [options]
OptionDescription
--name <name>Display name
--avatar <url>Avatar URL
--activeSet bot active
--inactiveSet bot inactive

bot delete

Delete a bot. Asks for confirmation.

bash
memoh bot delete [id]

bot chat

Start an interactive streaming chat with a bot.

bash
memoh bot chat [id]

Type messages and press Enter. Type exit to quit.

bot set-model

Enable a model for a bot (chat, memory, or embedding).

bash
memoh bot set-model [id] [options]
OptionDescription
--as <usage>chat, memory, or embedding
--model <model_id>Model ID

Example:

bash
memoh bot set-model my-bot-id --as chat --model gpt-4

Published under AGPLv3

+ \ No newline at end of file diff --git a/cli/channel.html b/cli/channel.html index fc0aeb55..05f56547 100644 --- a/cli/channel.html +++ b/cli/channel.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

Channel Commands

Manage channels and bot/user channel configuration.

channel list

List available channel types (e.g. telegram, feishu, local).

bash
memoh channel list

channel info

Show channel metadata and schema for a channel type.

bash
memoh channel info [type]

If type is omitted, prompts to select from available channels.

channel config get

Get a bot's channel configuration.

bash
memoh channel config get [bot_id] [options]
OptionDescription
--type <type>Channel type

channel config set

Set a bot's channel configuration. Currently supports Feishu.

bash
memoh channel config set [bot_id] [options]
OptionDescription
--type <type>Channel type (e.g. feishu)
--app_id <id>Feishu App ID
--app_secret <secret>Feishu App Secret
--encrypt_key <key>Encrypt key (optional)
--verification_token <token>Verification token (optional)

channel bind get

Get the current user's channel binding for a platform.

bash
memoh channel bind get [options]
OptionDescription
--type <type>Channel type

channel bind set

Set the current user's channel binding. Currently supports Feishu (open_id or user_id).

bash
memoh channel bind set [options]
OptionDescription
--type <type>Channel type (e.g. feishu)
--open_id <id>Feishu Open ID
--user_id <id>Feishu User ID

Published under AGPLv3

- +
Skip to content

Channel Commands

Manage channels and bot/user channel configuration.

channel list

List available channel types (e.g. telegram, feishu, local).

bash
memoh channel list

channel info

Show channel metadata and schema for a channel type.

bash
memoh channel info [type]

If type is omitted, prompts to select from available channels.

channel config get

Get a bot's channel configuration.

bash
memoh channel config get [bot_id] [options]
OptionDescription
--type <type>Channel type

channel config set

Set a bot's channel configuration. Currently supports Feishu.

bash
memoh channel config set [bot_id] [options]
OptionDescription
--type <type>Channel type (e.g. feishu)
--app_id <id>Feishu App ID
--app_secret <secret>Feishu App Secret
--encrypt_key <key>Encrypt key (optional)
--verification_token <token>Verification token (optional)

channel bind get

Get the current user's channel binding for a platform.

bash
memoh channel bind get [options]
OptionDescription
--type <type>Channel type

channel bind set

Set the current user's channel binding. Currently supports Feishu (open_id or user_id).

bash
memoh channel bind set [options]
OptionDescription
--type <type>Channel type (e.g. feishu)
--open_id <id>Feishu Open ID
--user_id <id>Feishu User ID

Published under AGPLv3

+ \ No newline at end of file diff --git a/cli/chat.html b/cli/chat.html index 3ffca1f1..176ed1ca 100644 --- a/cli/chat.html +++ b/cli/chat.html @@ -9,9 +9,9 @@ - + - + @@ -19,10 +19,10 @@ -
Skip to content

Chat Commands

Default: Interactive Chat

Running memoh with no subcommand starts an interactive chat. Use --bot <id> to specify which bot to chat with; otherwise you'll be prompted to select one.

bash
memoh [options]
+    
Skip to content

Chat Commands

Default: Interactive Chat

Running memoh with no subcommand starts an interactive chat. Use --bot <id> to specify which bot to chat with; otherwise you'll be prompted to select one.

bash
memoh [options]
 memoh --bot <bot_id>
OptionDescription
--bot <id>Bot ID to chat with

Type your message and press Enter. Type exit to quit. Responses stream in real time.

tui

Terminal UI chat session. Same behavior as the default chat but explicitly invoked.

bash
memoh tui [options]
-memoh tui --bot <bot_id>
OptionDescription
--bot <id>Bot ID to chat with

version

Show the CLI version.

bash
memoh version

Published under AGPLv3

- +memoh tui --bot <bot_id>
OptionDescription
--bot <id>Bot ID to chat with

version

Show the CLI version.

bash
memoh version

Published under AGPLv3

+ \ No newline at end of file diff --git a/cli/config.html b/cli/config.html index 1c38eb3c..757665e5 100644 --- a/cli/config.html +++ b/cli/config.html @@ -9,9 +9,9 @@ - + - + @@ -19,11 +19,11 @@ -
Skip to content

Config Commands

The CLI stores its config in ~/.memoh/config.toml. Use these commands to view or update it.

config

Show the current config (host and port).

bash
memoh config

Output example:

host = "127.0.0.1"
+    
Skip to content

Config Commands

The CLI stores its config in ~/.memoh/config.toml. Use these commands to view or update it.

config

Show the current config (host and port).

bash
memoh config

Output example:

host = "127.0.0.1"
 port = 8080

config set

Update the config. Prompts for host and port if not provided via options.

bash
memoh config set [options]
OptionDescription
--host <host>API host (e.g. 127.0.0.1 or api.example.com)
--port <port>API port (default: 8080)

Examples:

bash
memoh config set --host 192.168.1.100 --port 8080
 memoh config set
 # Interactive prompts for host and port

Published under AGPLv3

- + \ No newline at end of file diff --git a/cli/index.html b/cli/index.html index 551a4d10..63fb9741 100644 --- a/cli/index.html +++ b/cli/index.html @@ -9,9 +9,9 @@ - + - + @@ -19,14 +19,14 @@ -
Skip to content

Memoh CLI

The Memoh CLI (memoh) is a command-line tool for managing bots, channels, providers, models, schedules, and chatting with bots. It talks to a running Memoh server via its API.

Installation

The CLI is part of the Memoh monorepo. Install from source:

bash
git clone https://github.com/memohai/Memoh.git
+    
Skip to content

Memoh CLI

The Memoh CLI (memoh) is a command-line tool for managing bots, channels, providers, models, schedules, and chatting with bots. It talks to a running Memoh server via its API.

Installation

The CLI is part of the Memoh monorepo. Install from source:

bash
git clone https://github.com/memohai/Memoh.git
 cd Memoh
 pnpm install

Run the CLI:

bash
cd packages/cli
 pnpm start -- --help

To use memoh as a global command:

bash
cd packages/cli
 pnpm build
 pnpm link --global
-memoh --help

Ensure your Memoh server is running (see Docker installation) and the API is reachable at the configured host/port (default: 127.0.0.1:8080).

Configuration

The CLI stores config in ~/.memoh/config.toml and auth token in ~/.memoh/token.json. Use memoh config to view and memoh config set to change host/port.

Commands

CommandDescription
loginLog in to the Memoh server
logoutLog out and clear token
whoamiShow current user
configShow or update CLI config (host, port)
providerList, create, delete LLM providers
modelList, create, delete models
botList, create, update, delete bots; chat; set model
channelList channels; get/set bot channel config; get/set user binding
scheduleList, create, update, toggle, delete bot schedules
chatInteractive chat with a bot (default command)
tuiTerminal UI chat session
versionShow CLI version

Most commands require authentication. Run memoh login first.

Published under AGPLv3

- +memoh --help

Ensure your Memoh server is running (see Docker installation) and the API is reachable at the configured host/port (default: 127.0.0.1:8080).

Configuration

The CLI stores config in ~/.memoh/config.toml and auth token in ~/.memoh/token.json. Use memoh config to view and memoh config set to change host/port.

Commands

CommandDescription
loginLog in to the Memoh server
logoutLog out and clear token
whoamiShow current user
configShow or update CLI config (host, port)
providerList, create, delete LLM providers
modelList, create, delete models
botList, create, update, delete bots; chat; set model
channelList channels; get/set bot channel config; get/set user binding
scheduleList, create, update, toggle, delete bot schedules
chatInteractive chat with a bot (default command)
tuiTerminal UI chat session
versionShow CLI version

Most commands require authentication. Run memoh login first.

Published under AGPLv3

+ \ No newline at end of file diff --git a/cli/model.html b/cli/model.html index b5ac82cf..46497f09 100644 --- a/cli/model.html +++ b/cli/model.html @@ -9,9 +9,9 @@ - + - + @@ -19,11 +19,11 @@ -
Skip to content

Model Commands

Manage chat and embedding models.

model list

List all models with their provider, type, and multimodal flag.

bash
memoh model list

model create

Create a new model. Prompts for provider, model ID, type, and (for embedding models) dimensions.

bash
memoh model create [options]
OptionDescription
--model_id <id>Model ID (e.g. gpt-4, text-embedding-3-small)
--name <name>Display name
--provider <provider>Provider name
--type <type>chat or embedding
--dimensions <n>Embedding dimensions (required for embedding models)
--multimodalMark as multimodal

Examples:

bash
memoh model create --model_id gpt-4 --provider my-openai --type chat
+    
Skip to content

Model Commands

Manage chat and embedding models.

model list

List all models with their provider, type, and multimodal flag.

bash
memoh model list

model create

Create a new model. Prompts for provider, model ID, type, and (for embedding models) dimensions.

bash
memoh model create [options]
OptionDescription
--model_id <id>Model ID (e.g. gpt-4, text-embedding-3-small)
--name <name>Display name
--provider <provider>Provider name
--type <type>chat or embedding
--dimensions <n>Embedding dimensions (required for embedding models)
--multimodalMark as multimodal

Examples:

bash
memoh model create --model_id gpt-4 --provider my-openai --type chat
 memoh model create --model_id text-embedding-3-small --provider my-openai --type embedding --dimensions 1536
 memoh model create
 # Interactive prompts

model delete

Delete a model by model ID.

bash
memoh model delete --model <model_id>

Example:

bash
memoh model delete --model gpt-4

Published under AGPLv3

- + \ No newline at end of file diff --git a/cli/provider.html b/cli/provider.html index fd879cef..b3ec424f 100644 --- a/cli/provider.html +++ b/cli/provider.html @@ -9,9 +9,9 @@ - + - + @@ -19,11 +19,11 @@ -
Skip to content

Provider Commands

Manage LLM providers (OpenAI, Anthropic, Ollama, etc.).

provider list

List all providers. Optionally filter by provider name.

bash
memoh provider list [options]
OptionDescription
--provider <name>Filter by provider name

Examples:

bash
memoh provider list
+    
Skip to content

Provider Commands

Manage LLM providers (OpenAI, Anthropic, Ollama, etc.).

provider list

List all providers. Optionally filter by provider name.

bash
memoh provider list [options]
OptionDescription
--provider <name>Filter by provider name

Examples:

bash
memoh provider list
 memoh provider list --provider my-openai

provider create

Create a new provider. Prompts for any missing fields.

bash
memoh provider create [options]
OptionDescription
--name <name>Provider name
--type <type>Client type
--base_url <url>Base URL for the API
--api_key <key>API key

Supported client types: openai, openai-compat, anthropic, google, azure, bedrock, mistral, xai, ollama, dashscope

Examples:

bash
memoh provider create --name my-ollama --type ollama --base_url http://localhost:11434
 memoh provider create
 # Interactive prompts

provider delete

Delete a provider by name.

bash
memoh provider delete --provider <name>

Example:

bash
memoh provider delete --provider my-ollama

Published under AGPLv3

- + \ No newline at end of file diff --git a/cli/schedule.html b/cli/schedule.html index 488c01a4..a5c89c3d 100644 --- a/cli/schedule.html +++ b/cli/schedule.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

Schedule Commands

Manage cron-based schedules for bots. All schedule commands require --bot <id> to specify the bot.

schedule list

List all schedules for a bot.

bash
memoh schedule list --bot <bot_id>

schedule get

Get a schedule by ID.

bash
memoh schedule get <id> --bot <bot_id>

schedule create

Create a new schedule. Prompts for name, description, cron pattern, command, and optional max calls.

bash
memoh schedule create [options] --bot <bot_id>
OptionDescription
--name <name>Schedule name
--description <desc>Description
--pattern <pattern>Cron pattern (e.g. 0 9 * * * for daily at 9am)
--command <cmd>Command to run in the bot container
--max_calls <n>Max executions (optional, empty for unlimited)
--enabledCreate as enabled
--disabledCreate as disabled

schedule update

Update a schedule.

bash
memoh schedule update <id> [options] --bot <bot_id>
OptionDescription
--name <name>Schedule name
--description <desc>Description
--pattern <pattern>Cron pattern
--command <cmd>Command
--max_calls <n>Max executions
--enabledEnable
--disabledDisable

schedule toggle

Enable or disable a schedule (flip current state).

bash
memoh schedule toggle <id> --bot <bot_id>

schedule delete

Delete a schedule.

bash
memoh schedule delete <id> --bot <bot_id>

Published under AGPLv3

- +
Skip to content

Schedule Commands

Manage cron-based schedules for bots. All schedule commands require --bot <id> to specify the bot.

schedule list

List all schedules for a bot.

bash
memoh schedule list --bot <bot_id>

schedule get

Get a schedule by ID.

bash
memoh schedule get <id> --bot <bot_id>

schedule create

Create a new schedule. Prompts for name, description, cron pattern, command, and optional max calls.

bash
memoh schedule create [options] --bot <bot_id>
OptionDescription
--name <name>Schedule name
--description <desc>Description
--pattern <pattern>Cron pattern (e.g. 0 9 * * * for daily at 9am)
--command <cmd>Command to run in the bot container
--max_calls <n>Max executions (optional, empty for unlimited)
--enabledCreate as enabled
--disabledCreate as disabled

schedule update

Update a schedule.

bash
memoh schedule update <id> [options] --bot <bot_id>
OptionDescription
--name <name>Schedule name
--description <desc>Description
--pattern <pattern>Cron pattern
--command <cmd>Command
--max_calls <n>Max executions
--enabledEnable
--disabledDisable

schedule toggle

Enable or disable a schedule (flip current state).

bash
memoh schedule toggle <id> --bot <bot_id>

schedule delete

Delete a schedule.

bash
memoh schedule delete <id> --bot <bot_id>

Published under AGPLv3

+ \ No newline at end of file diff --git a/concepts/identity-and-binding.html b/concepts/identity-and-binding.html deleted file mode 100644 index a50f7073..00000000 --- a/concepts/identity-and-binding.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Accounts and Linking | Memoh Documentation - - - - - - - - - - - - - - - -
Skip to content

Accounts and Linking

Account Model

Memoh treats platform accounts and system accounts as two different entities:

  • Platform Account (ChannelIdentity) is the user's account on an external access platform (for example, a TG account), not a Memoh internal account.
  • System Account (User) is an internal account in Memoh.

A platform account can exist before linking.
bind is the mechanism that links these two account types.

Access Platform and Bot

  • Access Platform (channel) is where inbound messages come from.
  • Bot is an authorization and resource boundary inside Memoh.

Bots are managed by system accounts, while inbound messages are produced by platform accounts.

Why Linking Is Account-Scoped

Account linking exists to establish account ownership, not to grant bot resources directly:

  • It links platform accounts and system accounts independent of any single bot.
  • It avoids coupling account linking with member management semantics.
  • It keeps bot authorization and account linking decoupled.

Linking Flow (Current Consensus)

  1. A user requests a bind code under their own system account.
  2. The platform account sends the code from a supported access-platform conversation.
  3. Memoh validates the code and links platform account to system account.
  4. Bot membership and authorization are handled by their own flows.

Bot Type Semantics

  • Public bot: supports member-based collaboration.
  • Personal bot: conceptually single-owner, and should not rely on member semantics.

Note: The conceptual model is documented here as product semantics.
Runtime behavior may still be in transition as implementations are tightened.

Published under AGPLv3

- - - - \ No newline at end of file diff --git a/concepts/index.html b/concepts/index.html deleted file mode 100644 index 8f93403f..00000000 --- a/concepts/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Core Concepts | Memoh Documentation - - - - - - - - - - - - - - - -
Skip to content

Core Concepts

This section defines the core account and access concepts used by Memoh.

Concept Map

  • System Account (User): an internal account in Memoh.
  • Platform Account (ChannelIdentity): a user's account on an external access platform, not a Memoh account (for example, the user's Telegram (TG) account).
  • Bot: an access and resource boundary managed by a system account.
  • Account Linking (bind): the process that links a platform account to a system account.

Why This Matters

Memoh receives messages from external access platforms, but manages permissions and resources inside the system. To keep these concerns clear, the model separates platform accounts from system accounts, while keeping bot access control as an independent concern.

Terminology note: "platform account" always means the user's account on that platform (such as TG), not an internal account created by this project.

In This Chapter

Published under AGPLv3

- - - - \ No newline at end of file diff --git a/getting-started.html b/getting-started.html index 9da61c80..510f4f91 100644 --- a/getting-started.html +++ b/getting-started.html @@ -3,24 +3,24 @@ - Getting Started | Memoh Documentation + About Memoh | Memoh Documentation - + - + - + -
Skip to content

Getting Started

What is Memoh?

Memoh is a multi-member, structured long-memory, containerized AI agent system platform. You can create your own AI bots and chat with them via Telegram, Lark (Feishu), and more. Every bot has an independent container and memory system, allowing it to edit files, execute commands, and access the network within its own container — like having its own computer.

Key Features

Multi-Bot Management

Create multiple bots. Humans and bots, or bots with each other, can chat privately, in groups, or collaborate. Build bot teams, or set up accounts for family members to manage daily tasks with bots.

Containerized Isolation

Each bot runs in its own isolated container (powered by Containerd) with a separate filesystem and network. Bots can freely read/write files and execute commands within their containers without interfering with each other.

Memory Engineering

A deeply engineered memory layer inspired by Mem0:

  • Automatically extracts key facts from each conversation turn and stores them as structured memories
  • Supports semantic search (via Qdrant vector database) and keyword retrieval (BM25)
  • Loads the last 24 hours of conversation context by default
  • Automatic memory compaction to keep the memory store lean
  • Multi-language auto-detection

Multi-Platform Support

Unified channel adapter architecture for connecting to multiple messaging platforms:

  • Telegram — Full support with streaming, Markdown, attachments, and replies
  • Lark (Feishu) — Full support
  • Web — Built-in web chat interface
  • CLI — Command-line chat

Agent Capabilities

Bots come with a rich set of built-in tools:

  • Web Search — Brave Search integration for real-time information
  • Subagents — Create specialized subagents, assign skills, and delegate complex tasks
  • Skills — Configurable skill system to extend bot capabilities
  • Container Operations — Read/write files, edit code, and execute commands inside the container
  • Memory Management — Search and manage memories
  • Messaging — Send messages and reactions

Multi-LLM Provider Support

Flexibly switch between a wide range of LLM providers:

  • OpenAI, Anthropic, Google, Azure, AWS Bedrock
  • Mistral, XAI, Ollama, Dashscope (Qwen), and more

MCP Protocol Support

Supports Model Context Protocol (MCP) via HTTP and SSE to connect external tool services. Each bot can have its own independent MCP connections.

Scheduled Tasks

Configure scheduled tasks using cron expressions to automatically run commands at specified times. Supports max execution count limits and manual triggers.

Graphical Configuration

Configure bots, channels, providers, models, MCP, skills, and all other settings through a web management UI — no coding required to set up your own AI bot.

CLI Tool

A command-line tool for bot management, channel configuration, model management, streaming chat, and more — designed for developers who prefer the terminal. See CLI documentation.

Installation

To get Memoh running:

  • Docker — Recommended. One-click or manual setup with Docker Compose. Includes all services (PostgreSQL, Qdrant, Containerd, server, agent, web) — no extra dependencies on the host.
  • config.toml — Reference for all configuration fields.

Published under AGPLv3

- +
Skip to content

About Memoh

What is Memoh?

Memoh is a multi-member, structured long-memory, containerized AI agent system platform. You can create your own AI bots and chat with them via Telegram, Lark (Feishu), and more. Every bot has an independent container and memory system, allowing it to edit files, execute commands, and access the network within its own container — like having its own computer.

Key Features

Multi-Bot Management

Create multiple bots. Humans and bots, or bots with each other, can chat privately, in groups, or collaborate. Build bot teams, or set up accounts for family members to manage daily tasks with bots.

Containerized Isolation

Each bot runs in its own isolated container (powered by Containerd) with a separate filesystem and network. Bots can freely read/write files and execute commands within their containers without interfering with each other.

Memory Engineering

A deeply engineered memory layer inspired by Mem0:

  • Automatically extracts key facts from each conversation turn and stores them as structured memories
  • Supports semantic search (via Qdrant vector database) and keyword retrieval (BM25)
  • Loads the last 24 hours of conversation context by default
  • Automatic memory compaction to keep the memory store lean
  • Multi-language auto-detection

Multi-Platform Support

Unified channel adapter architecture for connecting to multiple messaging platforms:

  • Telegram — Full support with streaming, Markdown, attachments, and replies
  • Lark (Feishu) — Full support
  • Web — Built-in web chat interface
  • CLI — Command-line chat

Agent Capabilities

Bots come with a rich set of built-in tools:

  • Web Search — Brave Search integration for real-time information
  • Subagents — Create specialized subagents, assign skills, and delegate complex tasks
  • Skills — Configurable skill system to extend bot capabilities
  • Container Operations — Read/write files, edit code, and execute commands inside the container
  • Memory Management — Search and manage memories
  • Messaging — Send messages and reactions

Multi-LLM Provider Support

Flexibly switch between a wide range of LLM providers:

  • OpenAI, Anthropic, Google, Azure, AWS Bedrock
  • Mistral, XAI, Ollama, Dashscope (Qwen), and more

MCP Protocol Support

Supports Model Context Protocol (MCP) via HTTP and SSE to connect external tool services. Each bot can have its own independent MCP connections.

Scheduled Tasks

Configure scheduled tasks using cron expressions to automatically run commands at specified times. Supports max execution count limits and manual triggers.

Graphical Configuration

Configure bots, channels, providers, models, MCP, skills, and all other settings through a web management UI — no coding required to set up your own AI bot.

CLI Tool

A command-line tool for bot management, channel configuration, model management, streaming chat, and more — designed for developers who prefer the terminal. See CLI documentation.

Installation

To get Memoh running:

  • Docker — Recommended. One-click or manual setup with Docker Compose. Includes all services (PostgreSQL, Qdrant, Containerd, server, agent, web) — no extra dependencies on the host.
  • config.toml — Reference for all configuration fields.

Published under AGPLv3

+ \ No newline at end of file diff --git a/getting-started/provider-and-model.html b/getting-started/provider-and-model.html new file mode 100644 index 00000000..068e9a55 --- /dev/null +++ b/getting-started/provider-and-model.html @@ -0,0 +1,26 @@ + + + + + + Configure Provider and Model | Memoh Documentation + + + + + + + + + + + + + + + +
Skip to content

Configure Provider and Model

Before creating bots, you need to configure at least one LLM provider and add chat and embedding models. This guide walks you through the Web UI.

Prerequisites

Step 1: Open the Models Page

Click Models in the left sidebar to open the Provider and Model configuration page.

Models page - sidebar

The page has two panels:

  • Left: Provider list and filter
  • Right: Selected provider's details and models (or an empty state if none selected)

Step 2: Add a Provider

Click the Add Provider button (with a plus icon) at the bottom of the left panel.

Add Provider button

In the dialog, fill in:

FieldDescription
NameA display name for this provider (e.g. my-openai, ollama-local)
API KeyYour API key. For local services like Ollama, you can use a placeholder like ollama
Base URLThe API base URL (e.g. https://api.openai.com/v1, http://localhost:11434/v1 for Ollama)
TypeClient type: openai, openai-compat, anthropic, google, azure, bedrock, mistral, xai, ollama, dashscope

Add Provider dialog

Example — OpenAI:

  • Name: openai
  • API Key: sk-...
  • Base URL: https://api.openai.com/v1
  • Type: openai

Example — Ollama (local):

  • Name: ollama
  • API Key: ollama
  • Base URL: http://localhost:11434/v1
  • Type: ollama

Click Add to save. The new provider appears in the left sidebar.

Step 3: Add Models

Select a provider from the left panel. The right panel shows the provider form and the model list.

Provider selected - model list

Click Add Model to open the model creation dialog.

Fill in:

FieldDescription
Typechat or embedding
ModelModel ID (e.g. gpt-4, llama3.2, text-embedding-3-small)
Display NameOptional display name
DimensionsRequired for embedding models (e.g. 1536 for OpenAI embeddings)
MultimodalFor chat models only — enable if the model supports images

You need at least:

  • One chat model (for conversation)
  • One embedding model (for memory)

Add them under the same or different providers. For example:

  • Chat: gpt-4 (OpenAI) or llama3.2 (Ollama)
  • Embedding: text-embedding-3-small (OpenAI) or nomic-embed-text (Ollama)

Step 4: Edit or Delete

  • Provider: After selecting a provider, you can edit Name, API Key, and Base URL in the right panel, or delete the provider.
  • Model: Use the edit or delete actions on each model card in the list.

Next Steps

Once you have at least one chat model and one embedding model, you can create a bot (via Bots in the sidebar) and assign these models in the bot settings.

Published under AGPLv3

+ + + + \ No newline at end of file diff --git a/getting-started/provider-model-01-sidebar.png b/getting-started/provider-model-01-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..4365a3cf5100f9b9ff1df2745e9bba274636ebab GIT binary patch literal 43437 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 K_{h!(X35{?@sbDt literal 0 HcmV?d00001 diff --git a/getting-started/provider-model-02-add-provider.png b/getting-started/provider-model-02-add-provider.png new file mode 100644 index 0000000000000000000000000000000000000000..80e9eebb85eac68df4b413e143b6816dcc68b893 GIT binary patch literal 21878 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 qJ0>Y3Z;ocm*fb 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

C1U4_JiQ2%4F3(GYB@nY0Hsh_rVxU=*A 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⪒;wHaj&Fhg1zm`2a?ds_)rT4|luu(ii4@tA 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�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 literal 0 HcmV?d00001 diff --git a/hashmap.json b/hashmap.json index d963a7a4..dc4e8cff 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"cli_auth.md":"DPl-4zFk","cli_bot.md":"B2YOOp9H","cli_channel.md":"T-qsPRZ9","cli_chat.md":"LOg8zrpn","cli_config.md":"C-0Xv0hx","cli_index.md":"CTMBSccU","cli_model.md":"Bp0XdM9y","cli_provider.md":"CEEKGN01","cli_schedule.md":"DSG0HQuo","concepts_identity-and-binding.md":"Dqnt6wsW","concepts_index.md":"CxGkiYqO","getting-started.md":"DF97X5A_","index.md":"XthB7km1","installation_config-toml.md":"DLEOCXmn","installation_docker.md":"xaCmXfCQ","style_terminology.md":"zpSWt3dU","troubleshooting.md":"DEVYH0Du","zh_concepts_identity-and-binding.md":"BpgZjxhl","zh_concepts_index.md":"CFVegv9w","zh_index.md":"N8D_wq8q","zh_style_terminology.md":"DtBRpWD7"} +{"cli_auth.md":"DPl-4zFk","cli_bot.md":"B2YOOp9H","cli_channel.md":"T-qsPRZ9","cli_chat.md":"LOg8zrpn","cli_config.md":"C-0Xv0hx","cli_index.md":"CTMBSccU","cli_model.md":"Bp0XdM9y","cli_provider.md":"CEEKGN01","cli_schedule.md":"DSG0HQuo","getting-started.md":"B026JaLd","getting-started_provider-and-model.md":"Ix_AFx48","index.md":"BxPQTo9L","installation_config-toml.md":"DLEOCXmn","installation_docker.md":"xaCmXfCQ","troubleshooting.md":"DEVYH0Du","zh_concepts_identity-and-binding.md":"BpgZjxhl","zh_concepts_index.md":"CFVegv9w","zh_index.md":"N8D_wq8q","zh_style_terminology.md":"DtBRpWD7"} diff --git a/index.html b/index.html index 34432f73..595a79d8 100644 --- a/index.html +++ b/index.html @@ -9,18 +9,18 @@ - + - + - + -

Skip to content

Memoh Documentation

Memoh is a multi-member, structured long-memory, containerized AI agent system. Create your own AI bots, chat with them via Telegram, Lark (Feishu), Web, or CLI. Each bot runs in an isolated container with its own memory system — able to edit files, run commands, and access the network.

Documentation

For Contributors

Published under AGPLv3

- +
Skip to content

Memoh Documentation

Memoh is a multi-member, structured long-memory, containerized AI agent system. Create your own AI bots, chat with them via Telegram, Lark (Feishu), Web, or CLI. Each bot runs in an isolated container with its own memory system — able to edit files, run commands, and access the network.

Documentation

Published under AGPLv3

+ \ No newline at end of file diff --git a/installation/config-toml.html b/installation/config-toml.html index 2a5dee78..98251283 100644 --- a/installation/config-toml.html +++ b/installation/config-toml.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@ -
Skip to content

config.toml Reference

Memoh uses a TOML configuration file. By default it looks for config.toml in the current directory. With Docker, you can mount a custom config via MEMOH_CONFIG (see Docker installation).

Full Example

toml
[log]
+    
Skip to content

config.toml Reference

Memoh uses a TOML configuration file. By default it looks for config.toml in the current directory. With Docker, you can mount a custom config via MEMOH_CONFIG (see Docker installation).

Full Example

toml
[log]
 level = "info"
 format = "text"
 
@@ -69,8 +69,8 @@
 
 [brave]
 api_key = ""
-base_url = "https://api.search.brave.com/res/v1/"

Section Reference

[log]

FieldTypeDefaultDescription
levelstring"info"Log level: debug, info, warn, error
formatstring"text"Log format: text or json

[server]

FieldTypeDefaultDescription
addrstring":8080"HTTP listen address. Use :8080 for all interfaces, or host:port (e.g. server:8080 in Docker).

[admin]

FieldTypeDefaultDescription
usernamestring"admin"Admin login username
passwordstringAdmin login password. Change in production.
emailstringAdmin email (for display)

[auth]

FieldTypeDefaultDescription
jwt_secretstringSecret for signing JWT tokens. Required. Generate with openssl rand -base64 32.
jwt_expires_instring"24h"JWT expiration, e.g. "24h", "168h" (7 days)

[containerd]

FieldTypeDefaultDescription
socket_pathstring"/run/containerd/containerd.sock"Path to containerd socket
namespacestring"default"Containerd namespace for bot containers

[mcp]

MCP (Model Context Protocol) container configuration. Each bot runs in a container built from this image.

FieldTypeDefaultDescription
imagestring"docker.io/library/memoh-mcp:latest"MCP container image
snapshotterstring"overlayfs"Containerd snapshotter
data_rootstring"data"Host path for bot data (Docker: /opt/memoh/data)
data_mountstring"/data"Path inside container where data is mounted

[postgres]

FieldTypeDefaultDescription
hoststring"127.0.0.1"PostgreSQL host
portint5432PostgreSQL port
userstring"postgres"Database user
passwordstringDatabase password
databasestring"memoh"Database name
sslmodestring"disable"SSL mode: disable, require, verify-ca, verify-full

[qdrant]

FieldTypeDefaultDescription
base_urlstring"http://127.0.0.1:6334"Qdrant HTTP API URL
api_keystring""Optional API key for Qdrant Cloud
collectionstring"memory"Vector collection name for memories
timeout_secondsint10Request timeout in seconds

[agent_gateway]

FieldTypeDefaultDescription
hoststring"127.0.0.1"Agent gateway bind host
portint8081Agent gateway port

In Docker Compose, host is typically "agent" (service name). The agent reads [server].addr to call the main API.

[web]

FieldTypeDefaultDescription
hoststring"127.0.0.1"Web UI bind host
portint8082Web UI port

[brave]

Brave Search API for the web search tool. Leave api_key empty to disable web search.

FieldTypeDefaultDescription
api_keystring""Brave Search API key. Get one at brave.com/search/api.
base_urlstring"https://api.search.brave.com/res/v1/"Brave Search API base URL

Published under AGPLv3

- +base_url = "https://api.search.brave.com/res/v1/"

Section Reference

[log]

FieldTypeDefaultDescription
levelstring"info"Log level: debug, info, warn, error
formatstring"text"Log format: text or json

[server]

FieldTypeDefaultDescription
addrstring":8080"HTTP listen address. Use :8080 for all interfaces, or host:port (e.g. server:8080 in Docker).

[admin]

FieldTypeDefaultDescription
usernamestring"admin"Admin login username
passwordstringAdmin login password. Change in production.
emailstringAdmin email (for display)

[auth]

FieldTypeDefaultDescription
jwt_secretstringSecret for signing JWT tokens. Required. Generate with openssl rand -base64 32.
jwt_expires_instring"24h"JWT expiration, e.g. "24h", "168h" (7 days)

[containerd]

FieldTypeDefaultDescription
socket_pathstring"/run/containerd/containerd.sock"Path to containerd socket
namespacestring"default"Containerd namespace for bot containers

[mcp]

MCP (Model Context Protocol) container configuration. Each bot runs in a container built from this image.

FieldTypeDefaultDescription
imagestring"docker.io/library/memoh-mcp:latest"MCP container image
snapshotterstring"overlayfs"Containerd snapshotter
data_rootstring"data"Host path for bot data (Docker: /opt/memoh/data)
data_mountstring"/data"Path inside container where data is mounted

[postgres]

FieldTypeDefaultDescription
hoststring"127.0.0.1"PostgreSQL host
portint5432PostgreSQL port
userstring"postgres"Database user
passwordstringDatabase password
databasestring"memoh"Database name
sslmodestring"disable"SSL mode: disable, require, verify-ca, verify-full

[qdrant]

FieldTypeDefaultDescription
base_urlstring"http://127.0.0.1:6334"Qdrant HTTP API URL
api_keystring""Optional API key for Qdrant Cloud
collectionstring"memory"Vector collection name for memories
timeout_secondsint10Request timeout in seconds

[agent_gateway]

FieldTypeDefaultDescription
hoststring"127.0.0.1"Agent gateway bind host
portint8081Agent gateway port

In Docker Compose, host is typically "agent" (service name). The agent reads [server].addr to call the main API.

[web]

FieldTypeDefaultDescription
hoststring"127.0.0.1"Web UI bind host
portint8082Web UI port

[brave]

Brave Search API for the web search tool. Leave api_key empty to disable web search.

FieldTypeDefaultDescription
api_keystring""Brave Search API key. Get one at brave.com/search/api.
base_urlstring"https://api.search.brave.com/res/v1/"Brave Search API base URL

Published under AGPLv3

+ \ No newline at end of file diff --git a/installation/docker.html b/installation/docker.html index 7527c6af..b4a35265 100644 --- a/installation/docker.html +++ b/installation/docker.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@ -
Skip to content

Docker Installation

Docker is the recommended way to run Memoh. The stack includes PostgreSQL, Qdrant, Containerd, the main server, agent gateway, and web UI — all orchestrated via Docker Compose. You do not need to install containerd, nerdctl, or buildkit on your host; everything runs inside containers.

Prerequisites

One-Click Install

Run the official install script (requires Docker and Docker Compose):

bash
curl -fsSL https://raw.githubusercontent.com/memohai/Memoh/main/scripts/install.sh | sh

The script will:

  1. Check for Docker and Docker Compose
  2. Prompt for configuration (workspace, data directory, admin credentials, JWT secret, Postgres password)
  3. Clone the repository
  4. Generate config.toml from the Docker template
  5. Start all services with docker compose up -d --build

Silent install (use all defaults, no prompts):

bash
curl -fsSL https://raw.githubusercontent.com/memohai/Memoh/main/scripts/install.sh | sh -s -- -y

Defaults when running silently:

  • Workspace: ~/memoh
  • Data directory: ~/memoh/data
  • Admin: admin / admin123
  • JWT secret: auto-generated
  • Postgres password: memoh123

Manual Install

Clone the repository and start with Docker Compose:

bash
git clone https://github.com/memohai/Memoh.git
+    
Skip to content

Docker Installation

Docker is the recommended way to run Memoh. The stack includes PostgreSQL, Qdrant, Containerd, the main server, agent gateway, and web UI — all orchestrated via Docker Compose. You do not need to install containerd, nerdctl, or buildkit on your host; everything runs inside containers.

Prerequisites

One-Click Install

Run the official install script (requires Docker and Docker Compose):

bash
curl -fsSL https://raw.githubusercontent.com/memohai/Memoh/main/scripts/install.sh | sh

The script will:

  1. Check for Docker and Docker Compose
  2. Prompt for configuration (workspace, data directory, admin credentials, JWT secret, Postgres password)
  3. Clone the repository
  4. Generate config.toml from the Docker template
  5. Start all services with docker compose up -d --build

Silent install (use all defaults, no prompts):

bash
curl -fsSL https://raw.githubusercontent.com/memohai/Memoh/main/scripts/install.sh | sh -s -- -y

Defaults when running silently:

  • Workspace: ~/memoh
  • Data directory: ~/memoh/data
  • Admin: admin / admin123
  • JWT secret: auto-generated
  • Postgres password: memoh123

Manual Install

Clone the repository and start with Docker Compose:

bash
git clone https://github.com/memohai/Memoh.git
 cd Memoh
 docker compose up -d

By default, Docker Compose uses docker/config/config.docker.toml. No config file in the project root is mounted — only this built-in config is used. See config.toml reference for all configuration fields.

Access Points

After startup:

ServiceURL
Web UIhttp://localhost:8082
APIhttp://localhost:8080
Agent Gatewayhttp://localhost:8081

Default login: admin / admin123

First startup may take 1–2 minutes while images build and services initialize.

Custom Configuration

To use your own config file:

  1. Copy the Docker config template and edit it. See config.toml reference for field descriptions:
bash
cp docker/config/config.docker.toml config.toml
 nano config.toml
  1. Point MEMOH_CONFIG at your config when starting (path is on the host; run docker compose from the project root):
bash
MEMOH_CONFIG=./config.toml docker compose up -d

Recommended changes for production (see config.toml reference for details):

  • admin.password — Change the admin password
  • auth.jwt_secret — Generate with openssl rand -base64 32
  • postgres.password — Change the database password (and set POSTGRES_PASSWORD when running docker compose)

Common Commands

bash
docker compose up -d           # Start
@@ -29,8 +29,8 @@
 docker compose up -d --build   # Rebuild and restart

Production Checklist

  1. HTTPS — Configure SSL (e.g. via docker-compose.override.yml with certs)
  2. Passwords — Change all default passwords and secrets
  3. Firewall — Restrict access to necessary ports
  4. Resource limits — Set memory/CPU limits for containers
  5. Backups — Regular backups of Postgres and Qdrant data

Troubleshooting

bash
docker compose logs server      # View main service logs
 docker compose logs containerd # View containerd logs
 docker compose config          # Validate configuration
-docker compose build --no-cache && docker compose up -d  # Full rebuild

Security Warnings

  • The main service runs with privileged container access — only run in trusted environments
  • You must change all default passwords and secrets before production use
  • Use HTTPS in production

Published under AGPLv3

- +docker compose build --no-cache && docker compose up -d # Full rebuild

Security Warnings

  • The main service runs with privileged container access — only run in trusted environments
  • You must change all default passwords and secrets before production use
  • Use HTTPS in production

Published under AGPLv3

+ \ No newline at end of file diff --git a/style/terminology.html b/style/terminology.html deleted file mode 100644 index eff027bf..00000000 --- a/style/terminology.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Terminology Rules | Memoh Documentation - - - - - - - - - - - - - - - -
Skip to content

Terminology Rules

Audience: documentation contributors and maintainers. This page defines writing terms. It is not product user guidance.

Canonical Terms

  • System Account (User): the account inside Memoh.
  • Platform Account (ChannelIdentity): the user's account on an external access platform, not a Memoh account.
  • Access Platform (channel): the external platform carrying inbound messages.
  • Account Linking (bind): linking a Platform Account to a System Account.
  • Bind Code: one-time code used for account linking.
  • Bot: resource and authorization boundary managed by a System Account.

Preferred Wording

  • Write "platform account" instead of "actor" in user-facing docs.
  • Write "access platform" instead of "channel" when describing product behavior.
  • Keep code aliases in parentheses on first mention:
    • Platform Account (ChannelIdentity)
    • System Account (User)
    • Account Linking (bind)

Disallowed or Discouraged Terms

  • Avoid plain actor in conceptual docs (except when quoting code symbols).
  • Avoid ambiguous platform user phrasing (it does not distinguish system vs platform account).
  • Avoid wording that implies Platform Account is created inside Memoh.

Example Sentences

  • Correct: "A platform account is the user's TG account, not a Memoh account."
  • Correct: "Account linking binds a platform account to a system account."
  • Incorrect: "Actor is a user in Memoh."

Contributor Checklist

  • Is every "account" term clearly scoped (system vs platform)?
  • Is "channel" replaced by "access platform" in prose?
  • Are code aliases kept only as parenthetical references?

Published under AGPLv3

- - - - \ No newline at end of file diff --git a/troubleshooting.html b/troubleshooting.html index 7b198cd3..6ffca263 100644 --- a/troubleshooting.html +++ b/troubleshooting.html @@ -9,9 +9,9 @@ - + - + @@ -19,11 +19,11 @@ -
Skip to content

Troubleshooting

MCP Container: no running task found: task mcp-xxx not found

Symptom

When a bot tries to use container tools (e.g., execute commands), the server logs show:

level=WARN msg="exec failed" provider=container_tool bot_id=xxx command=date error="no running task found: task mcp-xxx not found"

The containerd container logs may also show:

level=error msg="failed to delete task" error="rpc error: code = NotFound desc = container not created: not found"

Cause

The [mcp] data_root in config.toml is set to a host machine path (e.g., /Users/you/Code/Memoh/data), but the server and containerd containers use a Docker named volume mounted at /opt/memoh/data.

When the server creates an MCP container inside containerd, it uses data_root as the mount source. Since this host path does not exist inside the containerd container, runc fails with:

failed to fulfil mount request: open /Users/you/Code/Memoh/data/bots/xxx: no such file or directory

Solution

  1. Set data_root to the in-container path in your config:
toml
[mcp]
+    
Skip to content

Troubleshooting

MCP Container: no running task found: task mcp-xxx not found

Symptom

When a bot tries to use container tools (e.g., execute commands), the server logs show:

level=WARN msg="exec failed" provider=container_tool bot_id=xxx command=date error="no running task found: task mcp-xxx not found"

The containerd container logs may also show:

level=error msg="failed to delete task" error="rpc error: code = NotFound desc = container not created: not found"

Cause

The [mcp] data_root in config.toml is set to a host machine path (e.g., /Users/you/Code/Memoh/data), but the server and containerd containers use a Docker named volume mounted at /opt/memoh/data.

When the server creates an MCP container inside containerd, it uses data_root as the mount source. Since this host path does not exist inside the containerd container, runc fails with:

failed to fulfil mount request: open /Users/you/Code/Memoh/data/bots/xxx: no such file or directory

Solution

  1. Set data_root to the in-container path in your config:
toml
[mcp]
 data_root = "/opt/memoh/data"
  1. Clean up the stale containerd container (if it exists):
bash
docker exec memoh-containerd ctr -n default containers rm mcp-<bot-id>
  1. Restart the server:
bash
docker compose restart server

Note: If you also run the server locally (outside Docker), keep the Docker config (docker/config/config.docker.toml) separate from your local config.toml, and update docker-compose.yml to mount the Docker-specific config instead.

MCP Container: Image update not taking effect after rebuild

Symptom

After updating Dockerfile.containerd (e.g., adding Node.js/Python to the MCP image), rebuilding and restarting the containerd container, MCP tools still fail with errors like:

exec: "npx": executable file not found in $PATH

Cause

The containerd entrypoint script (containerd-entrypoint.sh) skips image import if the image already exists in containerd's image store:

sh
if ! ctr -n default images check "name==${MCP_IMAGE}" ...; then
   # import
 fi

Since containerd_data is a persistent Docker volume, the old MCP image survives across container restarts. The new image embedded in the rebuilt Docker image is never imported.

Solution

  1. Remove the old MCP image from containerd:
bash
docker exec memoh-containerd ctr -n default images rm docker.io/library/memoh-mcp:latest
  1. Restart the containerd container to trigger re-import:
bash
docker compose restart containerd
  1. Verify the new image was imported (size should be significantly larger if Node.js/Python were added):
bash
docker exec memoh-containerd ctr -n default images ls
  1. Delete the bot's MCP container and recreate it from the bot detail page so it uses the new image.

Published under AGPLv3

- + \ No newline at end of file diff --git a/zh/concepts/identity-and-binding.html b/zh/concepts/identity-and-binding.html index 57dbbf5c..6b852627 100644 --- a/zh/concepts/identity-and-binding.html +++ b/zh/concepts/identity-and-binding.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

账号模型与绑定

账号模型

Memoh 将平台账号与系统账号视为两类不同实体:

  • 平台账号(ChannelIdentity 是用户在外部接入平台上的账号(例如飞书账号),不是 Memoh 内部账号。
  • 系统账号(User 是 Memoh 系统内账号。

平台账号在初始阶段可以不绑定系统账号。
bind 的职责是完成这两类账号的关联。

接入平台与 Bot

  • 接入平台(channel 是入站消息来源。
  • Bot 是系统内的授权与资源边界。

Bot 由系统账号管理,入站消息由平台账号产生。

为什么账号绑定是账号作用域

账号绑定的目标是建立账号归属关系,而不是直接发放 bot 资源权限:

  • 它只负责平台账号与系统账号的绑定;
  • 不把账号绑定与成员管理语义耦合在一起;
  • 让 bot 访问控制保持独立、可演进。

账号绑定流程(当前共识)

  1. 用户以自己的系统账号申请 bind code;
  2. 平台账号在支持的接入平台会话中发送 code;
  3. 系统校验 code,完成平台账号到系统账号的绑定;
  4. bot 成员与授权由独立流程处理。

Bot 类型语义

  • Public bot:支持成员协作语义。
  • Personal bot:语义上应为单 owner,不应依赖成员机制。

注:本文档记录的是产品语义与共识方向。
部分运行时细节仍可能处于收敛阶段。

Published under AGPLv3

- +
Skip to content

账号模型与绑定

账号模型

Memoh 将平台账号与系统账号视为两类不同实体:

  • 平台账号(ChannelIdentity 是用户在外部接入平台上的账号(例如飞书账号),不是 Memoh 内部账号。
  • 系统账号(User 是 Memoh 系统内账号。

平台账号在初始阶段可以不绑定系统账号。
bind 的职责是完成这两类账号的关联。

接入平台与 Bot

  • 接入平台(channel 是入站消息来源。
  • Bot 是系统内的授权与资源边界。

Bot 由系统账号管理,入站消息由平台账号产生。

为什么账号绑定是账号作用域

账号绑定的目标是建立账号归属关系,而不是直接发放 bot 资源权限:

  • 它只负责平台账号与系统账号的绑定;
  • 不把账号绑定与成员管理语义耦合在一起;
  • 让 bot 访问控制保持独立、可演进。

账号绑定流程(当前共识)

  1. 用户以自己的系统账号申请 bind code;
  2. 平台账号在支持的接入平台会话中发送 code;
  3. 系统校验 code,完成平台账号到系统账号的绑定;
  4. bot 成员与授权由独立流程处理。

Bot 类型语义

  • Public bot:支持成员协作语义。
  • Personal bot:语义上应为单 owner,不应依赖成员机制。

注:本文档记录的是产品语义与共识方向。
部分运行时细节仍可能处于收敛阶段。

Published under AGPLv3

+ \ No newline at end of file diff --git a/zh/concepts/index.html b/zh/concepts/index.html index 9a2b184a..d697989b 100644 --- a/zh/concepts/index.html +++ b/zh/concepts/index.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

核心概念

本章节用于定义 Memoh 的核心账号与访问概念。

概念图

  • 系统账号(User:Memoh 系统内账号。
  • 平台账号(ChannelIdentity:用户在外部接入平台上的账号,不是 Memoh 系统内账号(例如用户的飞书账号)。
  • Bot:由系统账号管理的资源与访问边界。
  • 账号绑定(bind:把平台账号关联到系统账号的过程。

为什么重要

Memoh 需要同时处理外部接入平台消息与系统内权限控制。
因此我们明确区分平台账号与系统账号,并将 bot 授权与账号绑定解耦。

术语说明:文档中的“平台账号”统一指用户在对应平台上的真实账号(如飞书账号),不指本项目内部账号。

本章内容

Published under AGPLv3

- +
Skip to content

核心概念

本章节用于定义 Memoh 的核心账号与访问概念。

概念图

  • 系统账号(User:Memoh 系统内账号。
  • 平台账号(ChannelIdentity:用户在外部接入平台上的账号,不是 Memoh 系统内账号(例如用户的飞书账号)。
  • Bot:由系统账号管理的资源与访问边界。
  • 账号绑定(bind:把平台账号关联到系统账号的过程。

为什么重要

Memoh 需要同时处理外部接入平台消息与系统内权限控制。
因此我们明确区分平台账号与系统账号,并将 bot 授权与账号绑定解耦。

术语说明:文档中的“平台账号”统一指用户在对应平台上的真实账号(如飞书账号),不指本项目内部账号。

本章内容

Published under AGPLv3

+ \ No newline at end of file diff --git a/zh/index.html b/zh/index.html index df13527b..cc6b3890 100644 --- a/zh/index.html +++ b/zh/index.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

Memoh 文档

Memoh 是一个多成员、长记忆、容器化的 AI Agent 系统。

文档章节

面向文档贡献者

当前维护范围

当前文档先聚焦账号语义与访问控制:

  • 区分系统账号与平台账号
  • 解释为什么账号绑定是账号作用域
  • 说明账号绑定与 bot 访问控制之间的关系

说明:“平台账号”指用户在外部平台上的真实账号(例如飞书账号),不是 Memoh 系统账号。

Published under AGPLv3

- +
Skip to content

Memoh 文档

Memoh 是一个多成员、长记忆、容器化的 AI Agent 系统。

文档章节

面向文档贡献者

当前维护范围

当前文档先聚焦账号语义与访问控制:

  • 区分系统账号与平台账号
  • 解释为什么账号绑定是账号作用域
  • 说明账号绑定与 bot 访问控制之间的关系

说明:“平台账号”指用户在外部平台上的真实账号(例如飞书账号),不是 Memoh 系统账号。

Published under AGPLv3

+ \ No newline at end of file diff --git a/zh/style/terminology.html b/zh/style/terminology.html index b5924377..9d9aec90 100644 --- a/zh/style/terminology.html +++ b/zh/style/terminology.html @@ -9,9 +9,9 @@ - + - + @@ -19,8 +19,8 @@ -
Skip to content

术语规范

适用对象:文档编写者与维护者。 本页用于统一写作语义,不是面向最终用户的功能说明。

规范术语

  • 系统账号(User:Memoh 系统内账号。
  • 平台账号(ChannelIdentity:用户在外部接入平台上的账号,不是 Memoh 内账号。
  • 接入平台(channel:承载入站消息的外部平台。
  • 账号绑定(bind:把平台账号关联到系统账号的过程。
  • 绑定码(Bind Code):用于账号绑定的一次性代码。
  • Bot:由系统账号管理的资源与授权边界。

推荐写法

  • 面向产品语义时,优先写 “平台账号”,不要直接写 actor。
  • 描述业务行为时,优先写 “接入平台”,不要直接写 channel。
  • 首次出现保留技术别名,后续可只用中文术语:
    • 平台账号(ChannelIdentity
    • 系统账号(User
    • 账号绑定(bind

禁用或不推荐写法

  • 在概念文档中直接使用 actor(除非明确引用代码符号)。
  • 使用含糊表述如 “平台用户”(未区分系统账号与平台账号)。
  • 写出“平台账号是 Memoh 内部账号”这类错误语义。

示例

  • 正确:“平台账号是用户在飞书上的账号,不是 Memoh 系统账号。”
  • 正确:“账号绑定用于把平台账号关联到系统账号。”
  • 错误:“Actor 是 Memoh 里的用户。”

自检清单

  • 是否明确区分了系统账号与平台账号?
  • 叙述中是否将 channel 表述为接入平台?
  • 是否仅在首处保留技术别名?

Published under AGPLv3

- +
Skip to content

术语规范

适用对象:文档编写者与维护者。 本页用于统一写作语义,不是面向最终用户的功能说明。

规范术语

  • 系统账号(User:Memoh 系统内账号。
  • 平台账号(ChannelIdentity:用户在外部接入平台上的账号,不是 Memoh 内账号。
  • 接入平台(channel:承载入站消息的外部平台。
  • 账号绑定(bind:把平台账号关联到系统账号的过程。
  • 绑定码(Bind Code):用于账号绑定的一次性代码。
  • Bot:由系统账号管理的资源与授权边界。

推荐写法

  • 面向产品语义时,优先写 “平台账号”,不要直接写 actor。
  • 描述业务行为时,优先写 “接入平台”,不要直接写 channel。
  • 首次出现保留技术别名,后续可只用中文术语:
    • 平台账号(ChannelIdentity
    • 系统账号(User
    • 账号绑定(bind

禁用或不推荐写法

  • 在概念文档中直接使用 actor(除非明确引用代码符号)。
  • 使用含糊表述如 “平台用户”(未区分系统账号与平台账号)。
  • 写出“平台账号是 Memoh 内部账号”这类错误语义。

示例

  • 正确:“平台账号是用户在飞书上的账号,不是 Memoh 系统账号。”
  • 正确:“账号绑定用于把平台账号关联到系统账号。”
  • 错误:“Actor 是 Memoh 里的用户。”

自检清单

  • 是否明确区分了系统账号与平台账号?
  • 叙述中是否将 channel 表述为接入平台?
  • 是否仅在首处保留技术别名?

Published under AGPLv3

+ \ No newline at end of file