diff --git a/404.html b/404.html index f00ecf0f..52322c9c 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ Page Not Found | TaskWeaver - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/files/compression_prompt-04e803fc1bad28b70d25b824281c0211.yaml b/assets/files/compression_prompt-04e803fc1bad28b70d25b824281c0211.yaml new file mode 100644 index 00000000..c489aa1d --- /dev/null +++ b/assets/files/compression_prompt-04e803fc1bad28b70d25b824281c0211.yaml @@ -0,0 +1,28 @@ +version: 0.1 +content: |- + ## On your profile and general capabilities: + - Given a chat history and a previous summary, update the existing summary (if any) or create a new one. + - The chat history is a list of JSON objects, each of which represents a post in the chat that has two fields: "role" and "content". + - The chat involves 3 participants: User, Planner, and CodeInterpreter. + + User: the "role" is "user" and the "content" starts with "User: ". + + Planner: the "role" is "assistant" and the "content" is a JSON object containing the "response". + + CodeInterpreter: the "role" is "user" and the "content" starts with "CodeInterpreter: ". + - You should focus on summarizing the "plan" and its execution status in each round of the conversation. + - You must retain the "message" sent from the Planner to the User. + - You should remove duplicated information the plan steps repeated in the chat history. + - The chat involves a human interacting with an assistant capable of decomposing a task into subtasks to fulfill User's requests. + - The generated summary is provided to the Planner for better understanding and improving task planning. + - Emphasize conciseness, clarity, and accuracy in the summary, so that the assistant understands what the user wants and the available information to update and track the plan. + + ## Output format + The summary is desired to be organized in the following format: + ```json + {{ + "ConversationSummary": "This part summarizes all the conversation rounds", + }} + ``` + + ## Previous summary + {PREVIOUS_SUMMARY} + + Let's get started! Please structure your summary in JSON format. \ No newline at end of file diff --git a/assets/files/compression_prompt-b02606dbb37ec1a39beb98a2d45cad99.yaml b/assets/files/compression_prompt-b02606dbb37ec1a39beb98a2d45cad99.yaml new file mode 100644 index 00000000..66e6517c --- /dev/null +++ b/assets/files/compression_prompt-b02606dbb37ec1a39beb98a2d45cad99.yaml @@ -0,0 +1,28 @@ +version: 0.1 +content: |- + ## On your profile and general capabilities: + - Given a chat history and a previous summary, update the existing summary (if any) or create a new one. + - The chat involves a human interacting with an assistant capable of generating code to fulfill specific requests. + - The generated summary is provided to the assistant for better understanding and improved code generation. + - Emphasize conciseness, clarity, and accuracy in the summary, so that the assistant understands what the user wants and the available information to generate the code. + - Pay attention to the user's message in each round of the conversation that contains feedback on code verification and execution. Ignore the variables from incorrect code or failed executions. + + ## Output format + The summary is desired to be organized in the following format: + ```json + {{ + "ConversationSummary": "This part summarizes all the conversation rounds between a human and assistant", + "Variables": [ + {{ + "name": "variable name", + "type": "variable type in python", + "description": "description of the variable; should be comprehensive so that can be directly referred to in any code" + }} + ] + }} + ``` + + ## Previous summary + {PREVIOUS_SUMMARY} + + Let's get started! Please structure your summary in JSON format. diff --git a/assets/js/2114d3cd.21665f67.js b/assets/js/2114d3cd.b12d6e47.js similarity index 79% rename from assets/js/2114d3cd.21665f67.js rename to assets/js/2114d3cd.b12d6e47.js index 0f695b14..3a11fe28 100644 --- a/assets/js/2114d3cd.21665f67.js +++ b/assets/js/2114d3cd.b12d6e47.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9190],{563:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>h});var r=t(5893),o=t(1151);const s={},a="Prompt Compression",i={id:"advanced/compression",title:"Prompt Compression",description:"After chatting for a few rounds, the chat history can become quite long, especially when we have code and execution results in it.",source:"@site/docs/advanced/compression.md",sourceDirName:"advanced",slug:"/advanced/compression",permalink:"/TaskWeaver/docs/advanced/compression",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/advanced/compression.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Experience",permalink:"/TaskWeaver/docs/customization/experience"},next:{title:"Code Verification",permalink:"/TaskWeaver/docs/advanced/code_verification"}},d={},h=[{value:"Configurations",id:"configurations",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",mermaid:"mermaid",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"prompt-compression",children:"Prompt Compression"}),"\n",(0,r.jsx)(n.p,{children:"After chatting for a few rounds, the chat history can become quite long, especially when we have code and execution results in it.\nThis can cause the problem of exceeding the context window of the LLMs.\nTo solve the problem, one way is to summarize the chat history a few rounds ago,\nand only keep the latest rounds of the chat history."}),"\n",(0,r.jsx)(n.p,{children:"Another way is to use a vector database to store the chat history entries, and only retrieve the last few rounds of the relevant\npart given the current user request. However, in TaskWeaver, code is also part of the chat history.\nIt is not an option to skip some intermediate code and execution results in order to correctly\ngenerate the code for the current user request. Therefore, we choose the first way to solve the problem."}),"\n",(0,r.jsx)(n.p,{children:"The following figure shows the idea of chat history summarization where the chat history is divided into two parts:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Rounds to compress: this part is summarized and only the summary is kept in the chat history. If the context_summary\nalready exists, a new summary is generated based on the previous summary adding the rounds to be summarized."}),"\n",(0,r.jsx)(n.li,{children:"Rounds to retain: this part is kept in the chat history without summarization."}),"\n"]}),"\n",(0,r.jsx)(n.mermaid,{value:" flowchart LR\n ConversationSummary--\x3eRound1\n subgraph Rounds to compress \n Round1--\x3eRound2\n end\n subgraph Rounds to retain\n Round2--\x3eRound3--\x3eRound4--\x3eRound5 \n end"}),"\n",(0,r.jsxs)(n.p,{children:["Imagine that, at the beginning, the ConversationSummary is empty.\nOnce the chat history reaches the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," (default 2) rounds plus ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," (default 3) rounds,\nthe ConversationSummary is generated based on the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," rounds and the ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," rounds are kept in the chat history.\nAfter that, there will be only ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," rounds in the chat history.\nThe next time the chat history reaches the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," rounds plus ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," rounds,\nthe ConversationSummary is generated based on the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," rounds and the previous ConversationSummary.\nWe use these two parameters to control the frequency of the chat history summarization."]}),"\n",(0,r.jsx)(n.p,{children:"An example of the chat history summarization in the Code Generator is shown below:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:'{\n "ConversationSummary": "The user requested the generation of 100 random numbers, which was successfully executed. Then, the user asked to show the top 5 largest numbers from the generated random numbers. The assistant provided a code snippet to sort the generated random numbers in descending order and select the top 5 largest numbers, which was also successfully executed. After that, the user requested to plot the distribution of the 100 numbers, which was successfully executed. The user then asked to count the frequency of numbers in each bin of the histogram and identify the bin with the most numbers for the 0.1 bin width, which was also successfully executed.",\n "Variables": [\n {\n "name": "random_numbers_100",\n "type": "numpy array",\n "description": "An array containing 100 random numbers generated using np.random.rand()"\n },\n {\n "name": "top_5_largest",\n "type": "numpy array",\n "description": "An array containing the top 5 largest numbers from the generated random numbers"\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"The JSON object has two fields:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"ConversationSummary: the summary of the chat history."}),"\n",(0,r.jsx)(n.li,{children:"Variables: the variables in the chat history that could be used in the current user request."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The chat history summary of the Planner has only the ConversationSummary field."}),"\n",(0,r.jsx)(n.p,{children:"The actual code generated in the summarized rounds is ignored and only the variables are kept in the summary\nso that the LLM can still refer the these variables in future code generation."}),"\n",(0,r.jsxs)(n.p,{children:["One thing to note is that chat history summarization requires call the LLM which incurs additional latency and cost.\nThe prompts for chat history summarization could be found for ",(0,r.jsx)(n.a,{href:"../../taskweaver/planner/compression_prompt.yaml",children:"planner"}),"\nand ",(0,r.jsx)(n.a,{href:"../../taskweaver/code_interpreter/code_generator/compression_prompt.yaml",children:"code generator"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"configurations",children:"Configurations"}),"\n",(0,r.jsxs)(n.p,{children:["As explained above, there are two parameters in controlling the chat history summarization:\n",(0,r.jsx)(n.code,{children:"round_compressor.rounds_to_compress"})," (default 2) and ",(0,r.jsx)(n.code,{children:"round_compressor.rounds_to_retain"})," (default 3).\nTo enable the chat history summarization, you need to set ",(0,r.jsx)(n.code,{children:"planner.prompt_compression"}),"\nand ",(0,r.jsx)(n.code,{children:"code_generator.prompt_compression"})," to ",(0,r.jsx)(n.code,{children:"true"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>a});var r=t(7294);const o={},s=r.createContext(o);function a(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9190],{563:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>h});var r=t(5893),o=t(1151);const s={},a="Prompt Compression",i={id:"advanced/compression",title:"Prompt Compression",description:"After chatting for a few rounds, the chat history can become quite long, especially when we have code and execution results in it.",source:"@site/docs/advanced/compression.md",sourceDirName:"advanced",slug:"/advanced/compression",permalink:"/TaskWeaver/docs/advanced/compression",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/advanced/compression.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Experience",permalink:"/TaskWeaver/docs/customization/experience"},next:{title:"Code Verification",permalink:"/TaskWeaver/docs/advanced/code_verification"}},d={},h=[{value:"Configurations",id:"configurations",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",mermaid:"mermaid",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"prompt-compression",children:"Prompt Compression"}),"\n",(0,r.jsx)(n.p,{children:"After chatting for a few rounds, the chat history can become quite long, especially when we have code and execution results in it.\nThis can cause the problem of exceeding the context window of the LLMs.\nTo solve the problem, one way is to summarize the chat history a few rounds ago,\nand only keep the latest rounds of the chat history."}),"\n",(0,r.jsx)(n.p,{children:"Another way is to use a vector database to store the chat history entries, and only retrieve the last few rounds of the relevant\npart given the current user request. However, in TaskWeaver, code is also part of the chat history.\nIt is not an option to skip some intermediate code and execution results in order to correctly\ngenerate the code for the current user request. Therefore, we choose the first way to solve the problem."}),"\n",(0,r.jsx)(n.p,{children:"The following figure shows the idea of chat history summarization where the chat history is divided into two parts:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Rounds to compress: this part is summarized and only the summary is kept in the chat history. If the context_summary\nalready exists, a new summary is generated based on the previous summary adding the rounds to be summarized."}),"\n",(0,r.jsx)(n.li,{children:"Rounds to retain: this part is kept in the chat history without summarization."}),"\n"]}),"\n",(0,r.jsx)(n.mermaid,{value:" flowchart LR\n ConversationSummary--\x3eRound1\n subgraph Rounds to compress \n Round1--\x3eRound2\n end\n subgraph Rounds to retain\n Round2--\x3eRound3--\x3eRound4--\x3eRound5 \n end"}),"\n",(0,r.jsxs)(n.p,{children:["Imagine that, at the beginning, the ConversationSummary is empty.\nOnce the chat history reaches the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," (default 2) rounds plus ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," (default 3) rounds,\nthe ConversationSummary is generated based on the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," rounds and the ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," rounds are kept in the chat history.\nAfter that, there will be only ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," rounds in the chat history.\nThe next time the chat history reaches the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," rounds plus ",(0,r.jsx)(n.code,{children:"rounds_to_retain"})," rounds,\nthe ConversationSummary is generated based on the ",(0,r.jsx)(n.code,{children:"rounds_to_compress"})," rounds and the previous ConversationSummary.\nWe use these two parameters to control the frequency of the chat history summarization."]}),"\n",(0,r.jsx)(n.p,{children:"An example of the chat history summarization in the Code Generator is shown below:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:'{\n "ConversationSummary": "The user requested the generation of 100 random numbers, which was successfully executed. Then, the user asked to show the top 5 largest numbers from the generated random numbers. The assistant provided a code snippet to sort the generated random numbers in descending order and select the top 5 largest numbers, which was also successfully executed. After that, the user requested to plot the distribution of the 100 numbers, which was successfully executed. The user then asked to count the frequency of numbers in each bin of the histogram and identify the bin with the most numbers for the 0.1 bin width, which was also successfully executed.",\n "Variables": [\n {\n "name": "random_numbers_100",\n "type": "numpy array",\n "description": "An array containing 100 random numbers generated using np.random.rand()"\n },\n {\n "name": "top_5_largest",\n "type": "numpy array",\n "description": "An array containing the top 5 largest numbers from the generated random numbers"\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"The JSON object has two fields:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"ConversationSummary: the summary of the chat history."}),"\n",(0,r.jsx)(n.li,{children:"Variables: the variables in the chat history that could be used in the current user request."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The chat history summary of the Planner has only the ConversationSummary field."}),"\n",(0,r.jsx)(n.p,{children:"The actual code generated in the summarized rounds is ignored and only the variables are kept in the summary\nso that the LLM can still refer the these variables in future code generation."}),"\n",(0,r.jsxs)(n.p,{children:["One thing to note is that chat history summarization requires call the LLM which incurs additional latency and cost.\nThe prompts for chat history summarization could be found for ",(0,r.jsx)(n.a,{target:"_blank",href:t(9585).Z+"",children:"planner"}),"\nand ",(0,r.jsx)(n.a,{target:"_blank",href:t(6956).Z+"",children:"code generator"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"configurations",children:"Configurations"}),"\n",(0,r.jsxs)(n.p,{children:["As explained above, there are two parameters in controlling the chat history summarization:\n",(0,r.jsx)(n.code,{children:"round_compressor.rounds_to_compress"})," (default 2) and ",(0,r.jsx)(n.code,{children:"round_compressor.rounds_to_retain"})," (default 3).\nTo enable the chat history summarization, you need to set ",(0,r.jsx)(n.code,{children:"planner.prompt_compression"}),"\nand ",(0,r.jsx)(n.code,{children:"code_generator.prompt_compression"})," to ",(0,r.jsx)(n.code,{children:"true"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},6956:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/files/compression_prompt-b02606dbb37ec1a39beb98a2d45cad99.yaml"},9585:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/files/compression_prompt-04e803fc1bad28b70d25b824281c0211.yaml"},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>a});var r=t(7294);const o={},s=r.createContext(o);function a(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/30613cee.134773e6.js b/assets/js/30613cee.85e1c30a.js similarity index 83% rename from assets/js/30613cee.134773e6.js rename to assets/js/30613cee.85e1c30a.js index 5c864edf..83f37686 100644 --- a/assets/js/30613cee.134773e6.js +++ b/assets/js/30613cee.85e1c30a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1559],{3924:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=t(5893),s=t(1151);const a={},r="CLI Only Mode",i={id:"advanced/cli_only",title:"CLI Only Mode",description:"TaskWeaver's CLI-only mode enables users to effortlessly communicate with the Command Line Interface (CLI) using natural language.",source:"@site/docs/advanced/cli_only.md",sourceDirName:"advanced",slug:"/advanced/cli_only",permalink:"/TaskWeaver/docs/advanced/cli_only",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/advanced/cli_only.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Code Execution",permalink:"/TaskWeaver/docs/advanced/code_execution"},next:{title:"Telemetry",permalink:"/TaskWeaver/docs/advanced/telemetry"}},c={},l=[{value:"Demo",id:"demo",level:2},{value:"How to enable",id:"how-to-enable",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"cli-only-mode",children:"CLI Only Mode"}),"\n",(0,o.jsx)(n.p,{children:"TaskWeaver's CLI-only mode enables users to effortlessly communicate with the Command Line Interface (CLI) using natural language.\nCodeInterpreter generates CLI commands, such as bash or PowerShell to address the user's needs.\nThis mode allows users to operate your system by simply chatting with the command line in natural language!"}),"\n",(0,o.jsx)(n.h2,{id:"demo",children:"Demo"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://github.com/microsoft/TaskWeaver/assets/32928431/3724d321-0e0b-49e0-8f77-7b3855069a82",children:"TaskWeaver-CLI"})}),"\n",(0,o.jsx)(n.h2,{id:"how-to-enable",children:"How to enable"}),"\n",(0,o.jsxs)(n.p,{children:["Just add the following configuration to the project configuration file ",(0,o.jsx)(n.code,{children:"taskweaver_config.json"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:'{\n "session.code_interpreter_only": true,\n "session.code_gen_mode": "cli_only"\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Please refer to the ",(0,o.jsx)(n.a,{href:"../configurations/configurations_in_detail",children:"session"})," documentation for more details."]}),"\n",(0,o.jsxs)(n.p,{children:["Note: It is better to enable ",(0,o.jsx)(n.code,{children:"session.code_interpreter_only"})," when CLI only mode is enabled."]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var o=t(7294);const s={},a=o.createContext(s);function r(e){const n=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1559],{3924:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=t(5893),s=t(1151);const a={},r="CLI Only Mode",i={id:"advanced/cli_only",title:"CLI Only Mode",description:"TaskWeaver's CLI-only mode enables users to effortlessly communicate with the Command Line Interface (CLI) using natural language.",source:"@site/docs/advanced/cli_only.md",sourceDirName:"advanced",slug:"/advanced/cli_only",permalink:"/TaskWeaver/docs/advanced/cli_only",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/advanced/cli_only.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Code Execution",permalink:"/TaskWeaver/docs/advanced/code_execution"},next:{title:"Telemetry",permalink:"/TaskWeaver/docs/advanced/telemetry"}},c={},l=[{value:"Demo",id:"demo",level:2},{value:"How to enable",id:"how-to-enable",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"cli-only-mode",children:"CLI Only Mode"}),"\n",(0,o.jsx)(n.p,{children:"TaskWeaver's CLI-only mode enables users to effortlessly communicate with the Command Line Interface (CLI) using natural language.\nCodeInterpreter generates CLI commands, such as bash or PowerShell to address the user's needs.\nThis mode allows users to operate your system by simply chatting with the command line in natural language!"}),"\n",(0,o.jsx)(n.h2,{id:"demo",children:"Demo"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://github.com/microsoft/TaskWeaver/assets/32928431/3724d321-0e0b-49e0-8f77-7b3855069a82",children:"TaskWeaver-CLI"})}),"\n",(0,o.jsx)(n.h2,{id:"how-to-enable",children:"How to enable"}),"\n",(0,o.jsxs)(n.p,{children:["Just add the following configuration to the project configuration file ",(0,o.jsx)(n.code,{children:"taskweaver_config.json"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:'{\n "session.roles": ["code_interpreter_cli_only"]\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Please refer to the ",(0,o.jsx)(n.a,{href:"../configurations/configurations_in_detail",children:"session"})," documentation for more details."]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var o=t(7294);const s={},a=o.createContext(s);function r(e){const n=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5a1935a3.28151b30.js b/assets/js/5a1935a3.28151b30.js new file mode 100644 index 00000000..f0d5624e --- /dev/null +++ b/assets/js/5a1935a3.28151b30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6486],{5897:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=r(5893),i=r(1151);const o={},t="More about Configurations",a={id:"configurations/configurations_in_detail",title:"More about Configurations",description:"More details about some important configurations",source:"@site/docs/configurations/configurations_in_detail.md",sourceDirName:"configurations",slug:"/configurations/configurations_in_detail",permalink:"/TaskWeaver/docs/configurations/configurations_in_detail",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/configurations/configurations_in_detail.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Configuration File",permalink:"/TaskWeaver/docs/configurations/overview"},next:{title:"Customization",permalink:"/TaskWeaver/docs/customization"}},l={},d=[{value:"Planner Configuration",id:"planner-configuration",level:2},{value:"Session Configration",id:"session-configration",level:2},{value:"Embedding Configration",id:"embedding-configration",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"more-about-configurations",children:"More about Configurations"}),"\n",(0,s.jsx)(n.p,{children:"More details about some important configurations"}),"\n",(0,s.jsx)(n.h2,{id:"planner-configuration",children:"Planner Configuration"}),"\n",(0,s.jsx)(n.p,{children:"In TaskWeaver, the Planner is responsible for generating a plan to accomplish the user's task. The plan is a sequence of steps, where each step will be executed by the Code Interpreter.\nTaken the response from the Code Interpreter or new requests from the user as input, the Planner will update the plan and move on to the next step."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"planner.example_base_path"}),":\tThe folder to store planner examples. The default value is ",(0,s.jsx)(n.code,{children:"${AppBaseDir}/planner_examples"}),".\nIf you want to create your own planner examples, you can add them to this folder. More details about ",(0,s.jsx)(n.code,{children:"example"})," can referred to ",(0,s.jsx)(n.a,{href:"/TaskWeaver/docs/customization/example/",children:"example"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"planner.prompt_compression"}),": At times, lengthy conversations with the Planner may exceed the input limitations of the LLM model.\nTo address this issue, we can compress the chat history and send it to the LLM model. The default value for this setting is ",(0,s.jsx)(n.code,{children:"false"}),".\nMore details about ",(0,s.jsx)(n.code,{children:"prompt_compression"})," can be referred to ",(0,s.jsx)(n.a,{href:"../advanced/compression",children:"prompt_compression"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"planner.use_experience"}),": Whether to use experience summarized from the previous chat history in planner. The default value is ",(0,s.jsx)(n.code,{children:"false"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"session-configration",children:"Session Configration"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"session"})," is the entrance of TaskWeaver.\nIt is responsible for the communication between the user and TaskWeaver.\nYou can refer to ",(0,s.jsx)(n.a,{href:"/TaskWeaver/docs/usage/library",children:"taskweaver_as_a_lib"})," to see how to setup a TaskWeaver session and start chatting with TaskWeaver."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"max_internal_chat_round_num"}),": the maximum number of internal chat rounds between Planner and Code Interpreter.\nIf the number of internal chat rounds exceeds this number, the session will be terminated.\nThe default value is ",(0,s.jsx)(n.code,{children:"10"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"roles"}),": the roles included for the conversation. The default value is ",(0,s.jsx)(n.code,{children:'["planner", "code_interpreter"]'}),".\nRoles can be divided into two parts: planner roles and worker roles. In TaskWeaver, the Planner is fixed.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Planner roles are responsible for generating a plan to accomplish the user's task, while worker roles are responsible for executing the plan generated by the Planner."}),"\n",(0,s.jsxs)(n.li,{children:["TaskWeaver supports 3 worker roles: ",(0,s.jsx)(n.code,{children:"code_interpreter"}),", ",(0,s.jsx)(n.code,{children:"code_interpreter_cli_only"}),", and ",(0,s.jsx)(n.code,{children:"code_interpreter_plugin_only"}),".","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"code_interpreter"}),": it will generate Python code to fulfill the user's request."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"code_interpreter_plugin_only"}),": please refer to ",(0,s.jsx)(n.a,{href:"/TaskWeaver/docs/plugin/plugin_only",children:"plugin_only_mode"})," for more details."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"code_interpreter_cli_only"}),": allow users to directly communicate with the Command Line Interface (CLI) in natural language. CodeInterpreter will generate CLI commands (e.g., bash/powershell), instead of Python code, to fulfill the user's request."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["If you do not specify ",(0,s.jsx)(n.code,{children:"planner"})," in the roles, you will enter the ",(0,s.jsx)(n.code,{children:"no-planner"})," mode. It allows users to directly communicate with the worker role, such as ",(0,s.jsx)(n.code,{children:"code_interpreter"}),".\nIn this mode, users can only send messages to the ",(0,s.jsx)(n.code,{children:"CodeInterpreter"})," and receive messages from the ",(0,s.jsx)(n.code,{children:"CodeInterpreter"}),".\nNote that only single worker role is allowed in the ",(0,s.jsx)(n.code,{children:"no-planner"})," mode because all user requests will be sent to the worker role directly.\nHere is an example:"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:" =========================================================\n _____ _ _ __\n|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____\n | |/ _` / __| |/ /| | /| / / _ \\/ __ `/ | / / _ \\/ ___/\n | | (_| \\__ \\ < | |/ |/ / __/ /_/ /| |/ / __/ /\n |_|\\__,_|___/_|\\_\\|__/|__/\\___/\\__,_/ |___/\\___/_/\n=========================================================\nTaskWeaver: I am TaskWeaver, an AI assistant. To get started, could you please enter your request?\nHuman: generate 10 random numbers\n>>> [PYTHON]Starting... \nimport numpy as np\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n>>> [VERIFICATION]\nNONE\n>>> [STATUS]Starting... \nSUCCESS\n>>> [RESULT]\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.09918602, 0.68732778, 0.44413814, 0.4756623 , 0.48302334,\n 0.8286594 , 0.80994359, 0.35677263, 0.45719317, 0.68240194])\n>>> [CODEINTERPRETER->PLANNER]\nThe following python code has been executed:\n```python\nimport numpy as np\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n```\n\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.09918602, 0.68732778, 0.44413814, 0.4756623 , 0.48302334,\n 0.8286594 , 0.80994359, 0.35677263, 0.45719317, 0.68240194])\nTaskWeaver: The following python code has been executed:\n```python\nimport numpy as np\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n```\n\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.09918602, 0.68732778, 0.44413814, 0.4756623 , 0.48302334,\n 0.8286594 , 0.80994359, 0.35677263, 0.45719317, 0.68240194])\n"})}),"\n",(0,s.jsx)(n.h2,{id:"embedding-configration",children:"Embedding Configration"}),"\n",(0,s.jsx)(n.p,{children:"In TaskWeaver, we support various embedding models to generate embeddings for auto plugin selection."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"llm.embedding_api_type"}),": The type of the embedding API. We support the following types:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"openai"}),"\n",(0,s.jsx)(n.li,{children:"qwen"}),"\n",(0,s.jsx)(n.li,{children:"ollama"}),"\n",(0,s.jsx)(n.li,{children:"sentence_transformers"}),"\n",(0,s.jsx)(n.li,{children:"glm"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"llm.embedding_model"}),": The embedding model name. The model name should be aligned with ",(0,s.jsx)(n.code,{children:"llm.embedding_api_type"}),".\nWe only list some embedding models we have tested below:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["openai","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"text-embedding-ada-002"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["qwen","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"text-embedding-v1"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["ollama","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"llama2"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["sentence_transformers","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"all-mpnet-base-v2"}),"\n",(0,s.jsx)(n.li,{children:"multi-qa-mpnet-base-dot-v1"}),"\n",(0,s.jsx)(n.li,{children:"all-distilroberta-v1"}),"\n",(0,s.jsx)(n.li,{children:"all-MiniLM-L12-v2"}),"\n",(0,s.jsx)(n.li,{children:"multi-qa-MiniLM-L6-cos-v1"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["zhipuai","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"embedding-2\nYou also can use other embedding models supported by the above embedding APIs."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>a,a:()=>t});var s=r(7294);const i={},o=s.createContext(i);function t(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5a1935a3.ad996e1e.js b/assets/js/5a1935a3.ad996e1e.js deleted file mode 100644 index 2981c3d8..00000000 --- a/assets/js/5a1935a3.ad996e1e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6486],{5897:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var s=r(5893),t=r(1151);const o={},a="More about Configurations",i={id:"configurations/configurations_in_detail",title:"More about Configurations",description:"More details about some important configurations",source:"@site/docs/configurations/configurations_in_detail.md",sourceDirName:"configurations",slug:"/configurations/configurations_in_detail",permalink:"/TaskWeaver/docs/configurations/configurations_in_detail",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/configurations/configurations_in_detail.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Configuration File",permalink:"/TaskWeaver/docs/configurations/overview"},next:{title:"Customization",permalink:"/TaskWeaver/docs/customization"}},l={},d=[{value:"Planner Configuration",id:"planner-configuration",level:2},{value:"Session Configration",id:"session-configration",level:2},{value:"Embedding Configration",id:"embedding-configration",level:2}];function _(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"more-about-configurations",children:"More about Configurations"}),"\n",(0,s.jsx)(n.p,{children:"More details about some important configurations"}),"\n",(0,s.jsx)(n.h2,{id:"planner-configuration",children:"Planner Configuration"}),"\n",(0,s.jsx)(n.p,{children:"In TaskWeaver, the Planner is responsible for generating a plan to accomplish the user's task. The plan is a sequence of steps, where each step will be executed by the Code Interpreter.\nTaken the response from the Code Interpreter or new requests from the user as input, the Planner will update the plan and move on to the next step."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"planner.example_base_path"}),":\tThe folder to store planner examples. The default value is ",(0,s.jsx)(n.code,{children:"${AppBaseDir}/planner_examples"}),".\nIf you want to create your own planner examples, you can add them to this folder. More details about ",(0,s.jsx)(n.code,{children:"example"})," can referred to ",(0,s.jsx)(n.a,{href:"/TaskWeaver/docs/customization/example/",children:"example"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"planner.prompt_compression"}),": At times, lengthy conversations with the Planner may exceed the input limitations of the LLM model.\nTo address this issue, we can compress the chat history and send it to the LLM model. The default value for this setting is ",(0,s.jsx)(n.code,{children:"false"}),".\nMore details about ",(0,s.jsx)(n.code,{children:"prompt_compression"})," can be referred to ",(0,s.jsx)(n.a,{href:"../advanced/compression",children:"prompt_compression"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"planner.skip_planning"}),": In certain scenarios, there may be no need to use the Planner to generate complex plans for simple tasks.\nFor instance, if a user wants to count the rows in a data file, the request can be sent directly to the Code Interpreter.\nWhen the majority of user requests involve simple tasks, enabling this option will create a dummy plan that is sent alongside the user request to the Code Interpreter directly, without LLM generation process.\nThe fixed dummy plan is shown in ",(0,s.jsx)(n.a,{href:"https://github.com/microsoft/TaskWeaver/blob/main/taskweaver/planner/dummy_plan.json",children:"dummy_plan.json"}),".\nHere is an chat example:"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"=========================================================\n _____ _ _ __\n|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____\n | |/ _` / __| |/ /| | /| / / _ \\/ __ `/ | / / _ \\/ ___/\n | | (_| \\__ \\ < | |/ |/ / __/ /_/ /| |/ / __/ /\n |_|\\__,_|___/_|\\_\\|__/|__/\\___/\\__,_/ |___/\\___/_/\n=========================================================\nTaskWeaver: I am TaskWeaver, an AI assistant. To get started, could you please enter your request?\nHuman: generate 10 random numbers\n>>> [MESSAGE]eparing... <=\ufffd=>\nPlease process this request: generate 10 random numbers\n>>> [SEND_TO]\nCodeInterpreter\n>>> [INIT_PLAN]\n1. ask Code Interpreter to handle the request; 2. report the result to user \n>>> [PLAN]\n1. ask Code Interpreter to handle user\\'s request; 2. report the result to user\n>>> [CURRENT_PLAN_STEP]\n1. ask Code Interpreter to handle the request\n>>> [PLANNER->CODEINTERPRETER]\nPlease process this request: generate 10 random numbers\n>>> [PYTHON]Starting... \nrandom_numbers = np.random.rand(10)\nrandom_numbers\n>>> [VERIFICATION]\nNONE\n>>> [STATUS]Starting... \nSUCCESS\n>>> [RESULT]\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.65294462, 0.26946084, 0.06244879, 0.78520418, 0.87067657,\n 0.24208003, 0.60249788, 0.30921069, 0.83811521, 0.05135891])\n>>> [CODEINTERPRETER->PLANNER]\nThe following python code has been executed:\n```python\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n```\n\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.65294462, 0.26946084, 0.06244879, 0.78520418, 0.87067657,\n 0.24208003, 0.60249788, 0.30921069, 0.83811521, 0.05135891])\n>>> [INIT_PLAN]ting... <=\ufffd=> \n1. ask Code Interpreter to handle the request; 2. report the result to user \n>>> [PLAN]\n1. ask Code Interpreter to handle user's request; 2. report the result to user\n>>> [CURRENT_PLAN_STEP]\n2. report the result to user\n>>> [SEND_TO]\nUser\n>>> [MESSAGE]\nThe random numbers are as follows: [0.65294462, 0.26946084, 0.06244879, 0.78520418, 0.87067657, 0.24208003, 0.60249788, 0.30921069, 0.83811521, 0.05135891]\n>>> [PLANNER->USER]\nThe random numbers are as follows: [0.65294462, 0.26946084, 0.06244879, 0.78520418, 0.87067657, 0.24208003, 0.60249788, 0.30921069, 0.83811521, 0.05135891]\nTaskWeaver: The random numbers are as follows: [0.65294462, 0.26946084, 0.06244879, 0.78520418, 0.87067657, 0.24208003, 0.60249788, 0.30921069, 0.83811521, 0.05135891]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"session-configration",children:"Session Configration"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"session"})," is the entrance of TaskWeaver.\nIt is responsible for the communication between the user and TaskWeaver.\nYou can refer to ",(0,s.jsx)(n.a,{href:"/TaskWeaver/docs/usage/library",children:"taskweaver_as_a_lib"})," to see how to setup a TaskWeaver session and start chatting with TaskWeaver."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"max_internal_chat_round_num"}),": the maximum number of internal chat rounds between Planner and Code Interpreter.\nIf the number of internal chat rounds exceeds this number, the session will be terminated.\nThe default value is ",(0,s.jsx)(n.code,{children:"10"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"code_interpreter_only"}),": allow users to directly communicate with the Code Interpreter.\nIn this mode, users can only send messages to the Code Interpreter and receive messages from the Code Interpreter.\nHere is an example:"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:" =========================================================\n _____ _ _ __\n|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____\n | |/ _` / __| |/ /| | /| / / _ \\/ __ `/ | / / _ \\/ ___/\n | | (_| \\__ \\ < | |/ |/ / __/ /_/ /| |/ / __/ /\n |_|\\__,_|___/_|\\_\\|__/|__/\\___/\\__,_/ |___/\\___/_/\n=========================================================\nTaskWeaver: I am TaskWeaver, an AI assistant. To get started, could you please enter your request?\nHuman: generate 10 random numbers\n>>> [PYTHON]Starting... \nimport numpy as np\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n>>> [VERIFICATION]\nNONE\n>>> [STATUS]Starting... \nSUCCESS\n>>> [RESULT]\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.09918602, 0.68732778, 0.44413814, 0.4756623 , 0.48302334,\n 0.8286594 , 0.80994359, 0.35677263, 0.45719317, 0.68240194])\n>>> [CODEINTERPRETER->PLANNER]\nThe following python code has been executed:\n```python\nimport numpy as np\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n```\n\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.09918602, 0.68732778, 0.44413814, 0.4756623 , 0.48302334,\n 0.8286594 , 0.80994359, 0.35677263, 0.45719317, 0.68240194])\nTaskWeaver: The following python code has been executed:\n```python\nimport numpy as np\nrandom_numbers = np.random.rand(10)\nrandom_numbers\n```\n\nThe execution of the generated python code above has succeeded\n\nThe result of above Python code after execution is:\narray([0.09918602, 0.68732778, 0.44413814, 0.4756623 , 0.48302334,\n 0.8286594 , 0.80994359, 0.35677263, 0.45719317, 0.68240194])\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"code_gen_mode"}),": code generation mode.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"plugin_only"}),": please refer to ",(0,s.jsx)(n.a,{href:"/TaskWeaver/docs/plugin/plugin_only",children:"plugin_only_mode"})," for more details."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"cli_only"}),": allow users to directly communicate with the Command Line Interface (CLI) in natural language.\nCodeInterpreter will generate CLI commands (e.g., bash/powershell), instead of Python code, to fulfill the user's request."]}),"\n",(0,s.jsxs)(n.p,{children:["\ud83d\udca1It is better to enable ",(0,s.jsx)(n.code,{children:"code_interpreter_only"})," when ",(0,s.jsx)(n.code,{children:"cli_only"})," mode is enabled.\nHere is an example:"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'=========================================================\n _____ _ _ __\n|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____\n | |/ _` / __| |/ /| | /| / / _ \\/ __ `/ | / / _ \\/ ___/\n | | (_| \\__ \\ < | |/ |/ / __/ /_/ /| |/ / __/ /\n |_|\\__,_|___/_|\\_\\|__/|__/\\___/\\__,_/ |___/\\___/_/\n=========================================================\n TaskWeaver \u25b6 I am TaskWeaver, an AI assistant. To get started, could you please enter your request?\n Human \u25b6 what time is it now\n \u256d\u2500\u2500\u2500< CodeInterpreter] preparing <=\ufffd=>\n \u251c\u2500\u25ba [thought] This command will display the current date and time in the PowerShell command prompt.\n \u251c\u2500\u25ba [python] powershell -Command "Get-Date"\n \u2570\u2500\u2500\u25cf sending message to Planner\n \u251c\u2500\u2500\u25cf \n \u2502 Tuesday, February 27, 2024 11:05:05 AM\n \u2570\u2500\u2500\u25cf sending message to Planner\n TaskWeaver \u25b6 \nTuesday, February 27, 2024 11:05:05 AM\n'})}),"\n",(0,s.jsx)(n.h2,{id:"embedding-configration",children:"Embedding Configration"}),"\n",(0,s.jsx)(n.p,{children:"In TaskWeaver, we support various embedding models to generate embeddings for auto plugin selection."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"llm.embedding_api_type"}),": The type of the embedding API. We support the following types:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"openai"}),"\n",(0,s.jsx)(n.li,{children:"qwen"}),"\n",(0,s.jsx)(n.li,{children:"ollama"}),"\n",(0,s.jsx)(n.li,{children:"sentence_transformers"}),"\n",(0,s.jsx)(n.li,{children:"glm"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"llm.embedding_model"}),": The embedding model name. The model name should be aligned with ",(0,s.jsx)(n.code,{children:"llm.embedding_api_type"}),".\nWe only list some embedding models we have tested below:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["openai","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"text-embedding-ada-002"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["qwen","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"text-embedding-v1"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["ollama","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"llama2"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["sentence_transformers","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"all-mpnet-base-v2"}),"\n",(0,s.jsx)(n.li,{children:"multi-qa-mpnet-base-dot-v1"}),"\n",(0,s.jsx)(n.li,{children:"all-distilroberta-v1"}),"\n",(0,s.jsx)(n.li,{children:"all-MiniLM-L12-v2"}),"\n",(0,s.jsx)(n.li,{children:"multi-qa-MiniLM-L6-cos-v1"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["zhipuai","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"embedding-2\nYou also can use other embedding models supported by the above embedding APIs."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(_,{...e})}):_(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>a});var s=r(7294);const t={},o=s.createContext(t);function a(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/834e34cc.35e43261.js b/assets/js/834e34cc.35e43261.js new file mode 100644 index 00000000..075c7339 --- /dev/null +++ b/assets/js/834e34cc.35e43261.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4471],{1550:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>i,default:()=>a,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var d=r(5893),s=r(1151);const o={},i="Configuration File",c={id:"configurations/overview",title:"Configuration File",description:"An overview of all configurations available in the config file, which is located at project/taskweaver_config.json.",source:"@site/docs/configurations/overview.md",sourceDirName:"configurations",slug:"/configurations/overview",permalink:"/TaskWeaver/docs/configurations/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/configurations/overview.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Configurations",permalink:"/TaskWeaver/docs/advanced"},next:{title:"More about Configurations",permalink:"/TaskWeaver/docs/configurations/configurations_in_detail"}},t={},l=[];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.h1,{id:"configuration-file",children:"Configuration File"}),"\n",(0,d.jsxs)(n.p,{children:["An overview of all configurations available in the config file, which is located at ",(0,d.jsx)(n.code,{children:"project/taskweaver_config.json"}),".\nYou can edit this file to configure TaskWeaver.\nThe configuration file is in JSON format. So for boolean values, use ",(0,d.jsx)(n.code,{children:"true"})," or ",(0,d.jsx)(n.code,{children:"false"})," instead of ",(0,d.jsx)(n.code,{children:"True"})," or ",(0,d.jsx)(n.code,{children:"False"}),".\nFor null values, use ",(0,d.jsx)(n.code,{children:"null"})," instead of ",(0,d.jsx)(n.code,{children:"None"})," or ",(0,d.jsx)(n.code,{children:'"null"'}),". All other values should be strings in double quotes.\nThe following table lists the parameters in the configuration file:"]}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"Parameter"}),(0,d.jsx)(n.th,{children:"Description"}),(0,d.jsx)(n.th,{children:"Default Value"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.model"})}),(0,d.jsx)(n.td,{children:"The model name used by the language model."}),(0,d.jsx)(n.td,{children:"gpt-4"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_base"})}),(0,d.jsx)(n.td,{children:"The base URL of the OpenAI API."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"https://api.openai.com/v1"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_key"})}),(0,d.jsx)(n.td,{children:"The API key of the OpenAI API."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"null"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_type"})}),(0,d.jsxs)(n.td,{children:["The type of the OpenAI API, could be ",(0,d.jsx)(n.code,{children:"openai"})," or ",(0,d.jsx)(n.code,{children:"azure"}),"."]}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"openai"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_version"})}),(0,d.jsx)(n.td,{children:"The version of the OpenAI API."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"2023-07-01-preview"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.response_format"})}),(0,d.jsxs)(n.td,{children:["The response format of the OpenAI API, could be ",(0,d.jsx)(n.code,{children:"json_object"}),", ",(0,d.jsx)(n.code,{children:"text"})," or ",(0,d.jsx)(n.code,{children:"null"}),"."]}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"json_object"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.embedding_api_type"})}),(0,d.jsx)(n.td,{children:"The type of the embedding API"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"sentence_transformers"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.embedding_model"})}),(0,d.jsx)(n.td,{children:"The name of the embedding model"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"all-mpnet-base-v2"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_interpreter.code_verification_on"})}),(0,d.jsx)(n.td,{children:"Whether to enable code verification."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_interpreter.allowed_modules"})}),(0,d.jsx)(n.td,{children:"The list of allowed modules to import in code generation."}),(0,d.jsxs)(n.td,{children:[(0,d.jsx)(n.code,{children:'["pandas", "matplotlib", "numpy", "sklearn", "scipy", "seaborn", "datetime", "typing"]'}),", if the list is empty, no modules would be allowed"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_interpreter.blocked_functions"})}),(0,d.jsx)(n.td,{children:"The list of functions to block from code generation."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:'["__import__", "eval", "exec", "execfile", "compile", "open", "input", "raw_input", "reload"]'})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"logging.log_file"})}),(0,d.jsx)(n.td,{children:"The name of the log file."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"taskweaver.log"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"logging.log_folder"})}),(0,d.jsx)(n.td,{children:"The folder to store the log file."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"logs"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.base_path"})}),(0,d.jsx)(n.td,{children:"The folder to store plugins."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"${AppBaseDir}/plugins"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.example_base_path"})}),(0,d.jsx)(n.td,{children:"The folder to store planner examples."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"${AppBaseDir}/planner_examples"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.prompt_compression"})}),(0,d.jsx)(n.td,{children:"Whether to compress the chat history for planner."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.use_experience"})}),(0,d.jsx)(n.td,{children:"Whether to use experience summarized from the previous chat history in planner."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.example_base_path"})}),(0,d.jsx)(n.td,{children:"The folder to store code interpreter examples."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"${AppBaseDir}/codeinterpreter_examples"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.prompt_compression"})}),(0,d.jsx)(n.td,{children:"Whether to compress the chat history for code interpreter."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.enable_auto_plugin_selection"})}),(0,d.jsx)(n.td,{children:"Whether to enable auto plugin selection."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.use_experience"})}),(0,d.jsx)(n.td,{children:"Whether to use experience summarized from the previous chat history in code generator."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.auto_plugin_selection_topk"})}),(0,d.jsx)(n.td,{children:"The number of auto selected plugins in each round."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"3"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"session.max_internal_chat_round_num"})}),(0,d.jsx)(n.td,{children:"The maximum number of internal chat rounds between Planner and Code Interpreter."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"10"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"session.roles"})}),(0,d.jsx)(n.td,{children:"The roles included for the conversation."}),(0,d.jsx)(n.td,{children:'["planner", "code_interpreter"]'})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"round_compressor.rounds_to_compress"})}),(0,d.jsx)(n.td,{children:"The number of rounds to compress."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"2"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"round_compressor.rounds_to_retain"})}),(0,d.jsx)(n.td,{children:"The number of rounds to retain."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"3"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"execution_service.kernel_mode"})}),(0,d.jsxs)(n.td,{children:["The mode of the code executor, could be ",(0,d.jsx)(n.code,{children:"local"})," or ",(0,d.jsx)(n.code,{children:"container"}),"."]}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"local"})})]})]})]}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsx)(n.p,{children:"\ud83d\udca1 ${AppBaseDir} is the project directory."}),"\n"]}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsxs)(n.p,{children:["\ud83d\udca1 Up to 11/30/2023, the ",(0,d.jsx)(n.code,{children:"json_object"})," and ",(0,d.jsx)(n.code,{children:"text"})," options of ",(0,d.jsx)(n.code,{children:"llm.response_format"})," is only supported by the OpenAI\nmodels later than 1106. If you are using an older version of OpenAI model, you need to set the ",(0,d.jsx)(n.code,{children:"llm.response_format"}),"\nto ",(0,d.jsx)(n.code,{children:"null"}),"."]}),"\n"]}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsxs)(n.p,{children:["\ud83d\udca1 Read ",(0,d.jsx)(n.a,{href:"/TaskWeaver/docs/advanced/compression",children:"this"})," for more information for ",(0,d.jsx)(n.code,{children:"planner.prompt_compression"}),"\nand ",(0,d.jsx)(n.code,{children:"code_generator.prompt_compression"}),"."]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>c,a:()=>i});var d=r(7294);const s={},o=d.createContext(s);function i(e){const n=d.useContext(o);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),d.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/834e34cc.b89f9543.js b/assets/js/834e34cc.b89f9543.js deleted file mode 100644 index ddb58b61..00000000 --- a/assets/js/834e34cc.b89f9543.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4471],{1550:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>o,default:()=>x,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var d=r(5893),s=r(1151);const i={},o="Configuration File",c={id:"configurations/overview",title:"Configuration File",description:"An overview of all configurations available in the config file, which is located at project/taskweaver_config.json.",source:"@site/docs/configurations/overview.md",sourceDirName:"configurations",slug:"/configurations/overview",permalink:"/TaskWeaver/docs/configurations/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/microsoft/TaskWeaver/tree/main/website/docs/configurations/overview.md",tags:[],version:"current",frontMatter:{},sidebar:"documentSidebar",previous:{title:"Configurations",permalink:"/TaskWeaver/docs/advanced"},next:{title:"More about Configurations",permalink:"/TaskWeaver/docs/configurations/configurations_in_detail"}},t={},l=[];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.h1,{id:"configuration-file",children:"Configuration File"}),"\n",(0,d.jsxs)(n.p,{children:["An overview of all configurations available in the config file, which is located at ",(0,d.jsx)(n.code,{children:"project/taskweaver_config.json"}),".\nYou can edit this file to configure TaskWeaver.\nThe configuration file is in JSON format. So for boolean values, use ",(0,d.jsx)(n.code,{children:"true"})," or ",(0,d.jsx)(n.code,{children:"false"})," instead of ",(0,d.jsx)(n.code,{children:"True"})," or ",(0,d.jsx)(n.code,{children:"False"}),".\nFor null values, use ",(0,d.jsx)(n.code,{children:"null"})," instead of ",(0,d.jsx)(n.code,{children:"None"})," or ",(0,d.jsx)(n.code,{children:'"null"'}),". All other values should be strings in double quotes.\nThe following table lists the parameters in the configuration file:"]}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"Parameter"}),(0,d.jsx)(n.th,{children:"Description"}),(0,d.jsx)(n.th,{children:"Default Value"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.model"})}),(0,d.jsx)(n.td,{children:"The model name used by the language model."}),(0,d.jsx)(n.td,{children:"gpt-4"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.backup_model"})}),(0,d.jsx)(n.td,{children:"The model name used for self-correction purposes."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"null"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_base"})}),(0,d.jsx)(n.td,{children:"The base URL of the OpenAI API."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"https://api.openai.com/v1"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_key"})}),(0,d.jsx)(n.td,{children:"The API key of the OpenAI API."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"null"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_type"})}),(0,d.jsxs)(n.td,{children:["The type of the OpenAI API, could be ",(0,d.jsx)(n.code,{children:"openai"})," or ",(0,d.jsx)(n.code,{children:"azure"}),"."]}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"openai"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.api_version"})}),(0,d.jsx)(n.td,{children:"The version of the OpenAI API."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"2023-07-01-preview"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.response_format"})}),(0,d.jsxs)(n.td,{children:["The response format of the OpenAI API, could be ",(0,d.jsx)(n.code,{children:"json_object"}),", ",(0,d.jsx)(n.code,{children:"text"})," or ",(0,d.jsx)(n.code,{children:"null"}),"."]}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"json_object"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.embedding_api_type"})}),(0,d.jsx)(n.td,{children:"The type of the embedding API"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"sentence_transformers"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"llm.embedding_model"})}),(0,d.jsx)(n.td,{children:"The name of the embedding model"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"all-mpnet-base-v2"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"ext_llms.llm_configs"})}),(0,d.jsx)(n.td,{children:"The extra LLM configs for different components."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"{}"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_interpreter.code_verification_on"})}),(0,d.jsx)(n.td,{children:"Whether to enable code verification."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_interpreter.allowed_modules"})}),(0,d.jsx)(n.td,{children:"The list of allowed modules to import in code generation."}),(0,d.jsxs)(n.td,{children:[(0,d.jsx)(n.code,{children:'["pandas", "matplotlib", "numpy", "sklearn", "scipy", "seaborn", "datetime", "typing"]'}),", if the list is empty, no modules would be allowed"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_interpreter.blocked_functions"})}),(0,d.jsx)(n.td,{children:"The list of functions to block from code generation."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:'["__import__", "eval", "exec", "execfile", "compile", "open", "input", "raw_input", "reload"]'})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"logging.log_file"})}),(0,d.jsx)(n.td,{children:"The name of the log file."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"taskweaver.log"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"logging.log_folder"})}),(0,d.jsx)(n.td,{children:"The folder to store the log file."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"logs"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.base_path"})}),(0,d.jsx)(n.td,{children:"The folder to store plugins."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"${AppBaseDir}/plugins"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.example_base_path"})}),(0,d.jsx)(n.td,{children:"The folder to store planner examples."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"${AppBaseDir}/planner_examples"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.prompt_compression"})}),(0,d.jsx)(n.td,{children:"Whether to compress the chat history for planner."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.skip_planning"})}),(0,d.jsx)(n.td,{children:"Whether to skip LLM planning process and enable the default plan"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"planner.use_experience"})}),(0,d.jsx)(n.td,{children:"Whether to use experience summarized from the previous chat history in planner."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.example_base_path"})}),(0,d.jsx)(n.td,{children:"The folder to store code interpreter examples."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"${AppBaseDir}/codeinterpreter_examples"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.prompt_compression"})}),(0,d.jsx)(n.td,{children:"Whether to compress the chat history for code interpreter."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.enable_auto_plugin_selection"})}),(0,d.jsx)(n.td,{children:"Whether to enable auto plugin selection."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.use_experience"})}),(0,d.jsx)(n.td,{children:"Whether to use experience summarized from the previous chat history in code generator."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"code_generator.auto_plugin_selection_topk"})}),(0,d.jsx)(n.td,{children:"The number of auto selected plugins in each round."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"3"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"session.max_internal_chat_round_num"})}),(0,d.jsx)(n.td,{children:"The maximum number of internal chat rounds between Planner and Code Interpreter."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"10"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"session.code_interpreter_only"})}),(0,d.jsx)(n.td,{children:"Allow users to directly communicate with the Code Interpreter."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"session.plugin_only_mode"})}),(0,d.jsx)(n.td,{children:"Whether to enable the plugin-only mode."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"false"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"round_compressor.rounds_to_compress"})}),(0,d.jsx)(n.td,{children:"The number of rounds to compress."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"2"})})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"round_compressor.rounds_to_retain"})}),(0,d.jsx)(n.td,{children:"The number of rounds to retain."}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"3"})})]})]})]}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsx)(n.p,{children:"\ud83d\udca1 ${AppBaseDir} is the project directory."}),"\n"]}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsxs)(n.p,{children:["\ud83d\udca1 Up to 11/30/2023, the ",(0,d.jsx)(n.code,{children:"json_object"})," and ",(0,d.jsx)(n.code,{children:"text"})," options of ",(0,d.jsx)(n.code,{children:"llm.response_format"})," is only supported by the OpenAI models later than 1106. If you are using an older version of OpenAI model, you need to set the ",(0,d.jsx)(n.code,{children:"llm.response_format"})," to ",(0,d.jsx)(n.code,{children:"null"}),"."]}),"\n"]}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsxs)(n.p,{children:["\ud83d\udca1 Read ",(0,d.jsx)(n.a,{href:"/TaskWeaver/docs/advanced/compression",children:"this"})," for more information for ",(0,d.jsx)(n.code,{children:"planner.prompt_compression"})," and ",(0,d.jsx)(n.code,{children:"code_generator.prompt_compression"}),"."]}),"\n"]})]})}function x(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>c,a:()=>o});var d=r(7294);const s={},i=d.createContext(s);function o(e){const n=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),d.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.531840f9.js b/assets/js/main.a96b0675.js similarity index 99% rename from assets/js/main.531840f9.js rename to assets/js/main.a96b0675.js index 9e2b3ed5..e434c063 100644 --- a/assets/js/main.531840f9.js +++ b/assets/js/main.a96b0675.js @@ -1,2 +1,2 @@ -/*! For license information please see main.531840f9.js.LICENSE.txt */ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{1728:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{Z:()=>f});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"03e8cedb":[()=>n.e(1290).then(n.bind(n,901)),"@site/docs/usage/cmd.md",901],"0c4a3f3a":[()=>n.e(2281).then(n.t.bind(n,7683,19)),"~docs/default/category-taskweaverdocs-documentsidebar-category-llms-1-eeb.json",7683],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,5541)),"@theme/DocCategoryGeneratedIndexPage",5541],17896441:[()=>Promise.all([n.e(532),n.e(7726),n.e(7918)]).then(n.bind(n,230)),"@theme/DocItem",230],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"1db64337":[()=>n.e(1372).then(n.bind(n,9674)),"@site/docs/overview.md",9674],"1f391b9e":[()=>Promise.all([n.e(532),n.e(7726),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"2114d3cd":[()=>n.e(9190).then(n.bind(n,563)),"@site/docs/advanced/compression.md",563],"2644c4f4":[()=>n.e(9285).then(n.bind(n,3734)),"@site/docs/llms/glm.md",3734],"2726c345":[()=>n.e(3450).then(n.bind(n,286)),"@site/docs/advanced/telemetry.md",286],"30613cee":[()=>n.e(1559).then(n.bind(n,3924)),"@site/docs/advanced/cli_only.md",3924],"360ca471":[()=>n.e(7399).then(n.bind(n,1951)),"@site/docs/customization/plugin/plugin_intro.md",1951],"393be207":[()=>n.e(7414).then(n.bind(n,1181)),"@site/src/pages/markdown-page.md",1181],"3bb29254":[()=>n.e(5887).then(n.bind(n,5461)),"@site/docs/customization/plugin/plugin_selection.md",5461],"45fd52fa":[()=>n.e(3991).then(n.bind(n,186)),"@site/docs/advanced/verification.md",186],"47284eb1":[()=>n.e(6063).then(n.bind(n,9297)),"@site/docs/usage/library.md",9297],"55efe1e1":[()=>n.e(2646).then(n.bind(n,4517)),"@site/docs/llms/aoai.md",4517],"5a1935a3":[()=>n.e(6486).then(n.bind(n,5897)),"@site/docs/configurations/configurations_in_detail.md",5897],"5cde2c1f":[()=>n.e(8693).then(n.bind(n,6360)),"@site/docs/customization/plugin/plugin_only.md",6360],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"61db00e1":[()=>n.e(7288).then(n.t.bind(n,2371,19)),"~docs/default/category-taskweaverdocs-documentsidebar-category-llms-4af.json",2371],"6b4ad289":[()=>n.e(7252).then(n.t.bind(n,3769,19)),"/home/runner/work/TaskWeaver/TaskWeaver/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"7555bb16":[()=>n.e(1018).then(n.bind(n,8359)),"@site/docs/llms/customized_llm_api.md",8359],"7fc9262a":[()=>n.e(746).then(n.bind(n,5333)),"@site/docs/llms/liteLLM.md",5333],"8070e160":[()=>n.e(2651).then(n.bind(n,9759)),"@site/docs/quickstart.md",9759],"834e34cc":[()=>n.e(4471).then(n.bind(n,1550)),"@site/docs/configurations/overview.md",1550],"873331c9":[()=>n.e(776).then(n.bind(n,8930)),"@site/docs/customization/experience.md",8930],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"93a501ed":[()=>Promise.all([n.e(532),n.e(6008)]).then(n.bind(n,995)),"@site/docs/customization/index.md",995],a4259125:[()=>Promise.all([n.e(532),n.e(419)]).then(n.bind(n,180)),"@site/docs/llms/index.md",180],a55bc7d4:[()=>n.e(4398).then(n.bind(n,9270)),"@site/docs/llms/openai.md",9270],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],ad895e75:[()=>n.e(4288).then(n.bind(n,1469)),"@site/docs/FAQ.md",1469],ae863774:[()=>n.e(5675).then(n.bind(n,2929)),"@site/docs/customization/example/example.md",2929],b218594a:[()=>n.e(7659).then(n.bind(n,4570)),"@site/docs/advanced/code_execution.md",4570],b21ad4a1:[()=>n.e(2802).then(n.bind(n,5590)),"@site/docs/customization/plugin/how_to_develop_a_new_plugin.md",5590],be4af720:[()=>n.e(8654).then(n.bind(n,3172)),"@site/docs/llms/qwen.md",3172],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,3261)),"@site/src/pages/index.js",3261],cf09775e:[()=>n.e(2429).then(n.bind(n,2867)),"@site/docs/llms/gemini.md",2867],d3234990:[()=>n.e(3287).then(n.bind(n,1598)),"@site/docs/llms/multi-llm.md",1598],d385135b:[()=>n.e(5870).then(n.t.bind(n,2776,19)),"/home/runner/work/TaskWeaver/TaskWeaver/website/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],dfcda4d1:[()=>n.e(1916).then(n.bind(n,9366)),"@site/docs/usage/webui.md",9366],e8e13c91:[()=>n.e(679).then(n.bind(n,3606)),"@site/docs/customization/plugin/multi_yaml_single_impl.md",3606],f04cdb7e:[()=>n.e(8905).then(n.bind(n,3995)),"@site/docs/llms/ollama.md",3995],f10ee74f:[()=>n.e(9555).then(n.t.bind(n,5745,19)),"/home/runner/work/TaskWeaver/TaskWeaver/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],fbacdda6:[()=>n.e(1070).then(n.t.bind(n,8228,19)),"~docs/default/category-taskweaverdocs-documentsidebar-category-llms-2-4a6.json",8228],fe04a91d:[()=>n.e(3424).then(n.t.bind(n,1496,19)),"~docs/default/category-taskweaverdocs-documentsidebar-category-usage-options-3fa.json",1496]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(9670),c=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},f=[],p=[],h=(0,u.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],f.push(r[1]),p.push(r[2]))})),a().Map({loading:l,loader:d,modules:f,webpack:()=>p,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(c.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const f=[{path:"/TaskWeaver/markdown-page",component:d("/TaskWeaver/markdown-page","982"),exact:!0},{path:"/TaskWeaver/search",component:d("/TaskWeaver/search","a6e"),exact:!0},{path:"/TaskWeaver/docs",component:d("/TaskWeaver/docs","2df"),routes:[{path:"/TaskWeaver/docs",component:d("/TaskWeaver/docs","1fb"),routes:[{path:"/TaskWeaver/docs",component:d("/TaskWeaver/docs","910"),routes:[{path:"/TaskWeaver/docs/advanced",component:d("/TaskWeaver/docs/advanced","79d"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/advanced/cli_only",component:d("/TaskWeaver/docs/advanced/cli_only","293"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/advanced/code_execution",component:d("/TaskWeaver/docs/advanced/code_execution","337"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/advanced/code_verification",component:d("/TaskWeaver/docs/advanced/code_verification","14e"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/advanced/compression",component:d("/TaskWeaver/docs/advanced/compression","74f"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/advanced/telemetry",component:d("/TaskWeaver/docs/advanced/telemetry","74c"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/configurations/configurations_in_detail",component:d("/TaskWeaver/docs/configurations/configurations_in_detail","118"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/configurations/overview",component:d("/TaskWeaver/docs/configurations/overview","ac6"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/customization",component:d("/TaskWeaver/docs/customization","176"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/customization/",component:d("/TaskWeaver/docs/customization/","72b"),exact:!0},{path:"/TaskWeaver/docs/customization/example/",component:d("/TaskWeaver/docs/customization/example/","9f9"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/customization/experience",component:d("/TaskWeaver/docs/customization/experience","409"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/customization/plugin/plugin_selection",component:d("/TaskWeaver/docs/customization/plugin/plugin_selection","11d"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/FAQ",component:d("/TaskWeaver/docs/FAQ","cee"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms",component:d("/TaskWeaver/docs/llms","3af"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/",component:d("/TaskWeaver/docs/llms/","aac"),exact:!0},{path:"/TaskWeaver/docs/llms/aoai",component:d("/TaskWeaver/docs/llms/aoai","024"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/customized_llm_api",component:d("/TaskWeaver/docs/llms/customized_llm_api","d01"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/gemini",component:d("/TaskWeaver/docs/llms/gemini","87e"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/glm",component:d("/TaskWeaver/docs/llms/glm","9d8"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/liteLLM",component:d("/TaskWeaver/docs/llms/liteLLM","d7f"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/multi-llm",component:d("/TaskWeaver/docs/llms/multi-llm","b4a"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/ollama",component:d("/TaskWeaver/docs/llms/ollama","9d4"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/openai",component:d("/TaskWeaver/docs/llms/openai","0db"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/llms/qwen",component:d("/TaskWeaver/docs/llms/qwen","668"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/overview",component:d("/TaskWeaver/docs/overview","cc3"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/plugin/how_to_develop_a_new_plugin",component:d("/TaskWeaver/docs/plugin/how_to_develop_a_new_plugin","b6b"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/plugin/multi_yaml_single_impl",component:d("/TaskWeaver/docs/plugin/multi_yaml_single_impl","514"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/plugin/plugin_intro",component:d("/TaskWeaver/docs/plugin/plugin_intro","d35"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/plugin/plugin_only",component:d("/TaskWeaver/docs/plugin/plugin_only","096"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/quickstart",component:d("/TaskWeaver/docs/quickstart","1a5"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/usage",component:d("/TaskWeaver/docs/usage","b52"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/usage/cmd",component:d("/TaskWeaver/docs/usage/cmd","afa"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/usage/library",component:d("/TaskWeaver/docs/usage/library","184"),exact:!0,sidebar:"documentSidebar"},{path:"/TaskWeaver/docs/usage/webui",component:d("/TaskWeaver/docs/usage/webui","560"),exact:!0,sidebar:"documentSidebar"}]}]}]},{path:"/TaskWeaver/",component:d("/TaskWeaver/","b87"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790),f=n(5893);function p(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),y=n(6668),b=n(1944),v=n(4711),k=n(9727),w=n(3320),x=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,c.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function T(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.h})]}),n&&(0,f.jsx)(b.d,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.Z,{tag:w.HX,locale:e}),(0,f.jsx)(h.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const C=new Map;function L(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var N=n(8934),A=n(8940),P=n(469);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),O("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function j(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?O("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=O("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),j(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(c.AW,{location:t,render:()=>e})})}}const F=R,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),j(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.B6,{children:(0,f.jsx)(o.VK,{children:(0,f.jsx)(V,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};j(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>f});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/TaskWeaver/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/TaskWeaver/docs","mainDocId":"overview","docs":[{"id":"advanced/cli_only","path":"/TaskWeaver/docs/advanced/cli_only","sidebar":"documentSidebar"},{"id":"advanced/code_execution","path":"/TaskWeaver/docs/advanced/code_execution","sidebar":"documentSidebar"},{"id":"advanced/code_verification","path":"/TaskWeaver/docs/advanced/code_verification","sidebar":"documentSidebar"},{"id":"advanced/compression","path":"/TaskWeaver/docs/advanced/compression","sidebar":"documentSidebar"},{"id":"advanced/telemetry","path":"/TaskWeaver/docs/advanced/telemetry","sidebar":"documentSidebar"},{"id":"configurations/configurations_in_detail","path":"/TaskWeaver/docs/configurations/configurations_in_detail","sidebar":"documentSidebar"},{"id":"configurations/overview","path":"/TaskWeaver/docs/configurations/overview","sidebar":"documentSidebar"},{"id":"customization/example/example","path":"/TaskWeaver/docs/customization/example/","sidebar":"documentSidebar"},{"id":"customization/experience","path":"/TaskWeaver/docs/customization/experience","sidebar":"documentSidebar"},{"id":"customization/index","path":"/TaskWeaver/docs/customization/"},{"id":"customization/plugin/develop_plugin","path":"/TaskWeaver/docs/plugin/how_to_develop_a_new_plugin","sidebar":"documentSidebar"},{"id":"customization/plugin/multi_yaml_single_impl","path":"/TaskWeaver/docs/plugin/multi_yaml_single_impl","sidebar":"documentSidebar"},{"id":"customization/plugin/plugin_intro","path":"/TaskWeaver/docs/plugin/plugin_intro","sidebar":"documentSidebar"},{"id":"customization/plugin/plugin_only","path":"/TaskWeaver/docs/plugin/plugin_only","sidebar":"documentSidebar"},{"id":"customization/plugin/plugin_selection","path":"/TaskWeaver/docs/customization/plugin/plugin_selection","sidebar":"documentSidebar"},{"id":"FAQ","path":"/TaskWeaver/docs/FAQ","sidebar":"documentSidebar"},{"id":"llms/aoai","path":"/TaskWeaver/docs/llms/aoai","sidebar":"documentSidebar"},{"id":"llms/customized_llm_api","path":"/TaskWeaver/docs/llms/customized_llm_api","sidebar":"documentSidebar"},{"id":"llms/gemini","path":"/TaskWeaver/docs/llms/gemini","sidebar":"documentSidebar"},{"id":"llms/glm","path":"/TaskWeaver/docs/llms/glm","sidebar":"documentSidebar"},{"id":"llms/index","path":"/TaskWeaver/docs/llms/"},{"id":"llms/liteLLM","path":"/TaskWeaver/docs/llms/liteLLM","sidebar":"documentSidebar"},{"id":"llms/multi-llm","path":"/TaskWeaver/docs/llms/multi-llm","sidebar":"documentSidebar"},{"id":"llms/ollama","path":"/TaskWeaver/docs/llms/ollama","sidebar":"documentSidebar"},{"id":"llms/openai","path":"/TaskWeaver/docs/llms/openai","sidebar":"documentSidebar"},{"id":"llms/qwen","path":"/TaskWeaver/docs/llms/qwen","sidebar":"documentSidebar"},{"id":"overview","path":"/TaskWeaver/docs/overview","sidebar":"documentSidebar"},{"id":"quickstart","path":"/TaskWeaver/docs/quickstart","sidebar":"documentSidebar"},{"id":"usage/cmd","path":"/TaskWeaver/docs/usage/cmd","sidebar":"documentSidebar"},{"id":"usage/library","path":"/TaskWeaver/docs/usage/library","sidebar":"documentSidebar"},{"id":"usage/webui","path":"/TaskWeaver/docs/usage/webui","sidebar":"documentSidebar"},{"id":"/usage","path":"/TaskWeaver/docs/usage","sidebar":"documentSidebar"},{"id":"/llms","path":"/TaskWeaver/docs/llms","sidebar":"documentSidebar"},{"id":"advanced","path":"/TaskWeaver/docs/advanced","sidebar":"documentSidebar"},{"id":"customization","path":"/TaskWeaver/docs/customization","sidebar":"documentSidebar"}],"draftIds":[],"sidebars":{"documentSidebar":{"link":{"path":"/TaskWeaver/docs/overview","label":"overview"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.40.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.0.1"}}}');var u=n(5893);const c={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(c);function f(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(2045),l=n(5893);function u(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(p,{fallback:()=>(0,l.jsx)(u,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(u,{error:t,tryAgain:n})})]})}const f=e=>(0,l.jsx)(d,{...e});class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??f)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),s=n(3919),l=n(412),u=n(5893);const c=r.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:k}}=(0,i.Z)(),{withBaseUrl:w}=(0,d.C)(),x=(0,r.useContext)(c),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=f||p;const _=(0,s.Z)(E),T=E?.replace("pathname://","");let C=void 0!==T?(L=T,y&&(e=>e.startsWith("/"))(L)?w(L):L):void 0;var L;C&&_&&(C=(0,o.applyTrailingSlash)(C,{trailingSlash:v,baseUrl:k}));const N=(0,r.useRef)(!1),A=n?a.OL:a.rU,P=l.Z.canUseIntersectionObserver,O=(0,r.useRef)(),I=()=>{N.current||null==C||(window.docusaurus.preload(C),N.current=!0)};(0,r.useEffect)((()=>(!P&&_&&null!=C&&window.docusaurus.prefetch(C),()=>{P&&O.current&&O.current.disconnect()})),[O,C,P,_]);const j=C?.startsWith("#")??!1,R=!C||!_||j;return R||g||x.collectLink(C),R?(0,u.jsx)("a",{ref:S,href:C,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,u.jsx)(A,{...b,onMouseEnter:I,onTouchStart:I,innerRef:e=>{S.current=e,P&&e&&_&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),O.current.observe(e))},to:C,...n&&{isActive:m,activeClassName:h}})}const p=r.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>l});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>f,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>h,gB:()=>p});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function h(e){const t=d(e);return s(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return l(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(9929)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(512),a=n(5999),o=n(6668),i=n(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(5893);function u(e){let{as:t,id:n,...u}=e;const{navbar:{hideOnScroll:c}}=(0,o.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...u,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,l.jsxs)(t,{...u,className:(0,r.Z)("anchor",c?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},2045:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Pt});var r=n(7294),a=n(512),o=n(4763),i=n(1944),s=n(6550),l=n(5999),u=n(5936),c=n(5893);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=p();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),y=n(9727);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(m,{className:b.skipToContent})}var k=n(6668),w=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const C={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:C.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:C.announcementBarPlaceholder}),(0,c.jsx)(T,{className:C.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:C.announcementBarClose})]})}var N=n(2961),A=n(2466);var P=n(902),O=n(3102);const I=r.createContext(null);function j(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(I.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(I);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:R(o)})),[a,o,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=F();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(2949),z=n(2389);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const W={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function U(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.Z)(W.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.Z)("clean-btn",W.toggleButton,!i&&W.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.Z)(W.toggleIcon,W.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.Z)(W.toggleIcon,W.darkToggleIcon)})]})})}const H=r.memo(U),Q={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,k.L)().navbar.style,r=(0,k.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,M.I)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?Q.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var V=n(1327);function q(){return(0,c.jsx)(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,N.e)();return(0,c.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(q,{}),(0,c.jsx)(Z,{className:"margin-right--md"}),(0,c.jsx)(G,{})]})}var K=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...u}=e;const d=(0,X.Z)(r),f=(0,X.Z)(t),p=(0,X.Z)(a,{forcePrependBaseUrl:!0}),h=o&&a&&!(0,J.Z)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,h&&(0,c.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,c.jsx)(K.Z,{href:l?p:a,...u,...m}):(0,c.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},...u,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,c.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:s.children??s.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ve,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function fe(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),(0,c.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.Z)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),p()},children:l.children??l.label}),(0,c.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:t.map(((e,t)=>(0,r.createElement)(Ve,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?fe:de;return(0,c.jsx)(r,{...n})}var he=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(1029),be=n(1728),ve=n(373),ke=n(143),we=n(22),xe=n(8202),Se=n(3926),Ee=n(1073),_e=n(2539),Te=n(726);const Ce='',Le='',Ne='',Ae='',Pe='',Oe='',Ie='',je={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Re(e){let{document:t,type:n,page:r,metadata:a,tokens:o,isInterOfTree:i,isLastOfTree:s}=e;const l=0===n,u=1===n,c=[];i?c.push(Oe):s&&c.push(Ie);const d=c.map((e=>`${e}`)),f=`${l?Ce:u?Le:Ne}`,p=[`${(0,Te.o)(t.t,(0,Ee.m)(a,"t"),o)}`];if(!i&&!s&&ye.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;p.push(`${(0,Se.e)(e??[])}`)}else l||p.push(`${(0,_e.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),o)}`);const h=`${Ae}`;return[...d,f,``,...p,"",h].join("")}function Fe(){return`${Pe}${(0,l.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var De=n(311),Me=n(51);async function ze(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const Be="_highlight";const $e=function(e){let{handleSearchBarToggle:t}=e;const n=(0,z.Z)(),{siteConfig:{baseUrl:a},i18n:{currentLocale:o}}=(0,le.Z)(),i=(0,ke.gA)();let u=a;try{const{preferredVersion:e}=(0,ve.J)(i?.pluginId??ye.gQ);e&&!e.isLast&&(u=e.path+"/")}catch(D){if(ye.l9&&!(D instanceof P.i6))throw D}const d=(0,s.k6)(),f=(0,s.TH)(),p=(0,r.useRef)(null),h=(0,r.useRef)(new Map),m=(0,r.useRef)(!1),[g,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[k,w]=(0,r.useState)(""),x=(0,r.useRef)(null),S=(0,r.useRef)(""),[E,_]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(f.pathname.startsWith(u)){const t=f.pathname.substring(u.length);let n;for(const e of ye.Kc){const r="string"==typeof e?e:e.path;if(t===r||t.startsWith(`${r}/`)){n=r;break}}n&&(e=n)}S.current!==e&&(h.current.delete(e),S.current=e),_(e)}),[f.pathname,u]);const T=!!ye.hG&&Array.isArray(ye.Kc)&&""===E,C=(0,r.useCallback)((async()=>{if(T||h.current.get(E))return;h.current.set(E,"loading"),x.current?.autocomplete.destroy(),y(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,we.w)(u,E),ze()]);if(x.current=n(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,be.Z)(je.searchBar,{[je.searchBarLeft]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:je.dropdownMenu,input:je.input,hint:je.hint,suggestions:je.suggestions,suggestion:je.suggestion,cursor:je.cursor,dataset:je.dataset,empty:je.empty}},[{source:(0,xe.v)(e,t,ye.qo),templates:{suggestion:Re,empty:Fe,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&(!E||!ye.pQ))return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),i=new URLSearchParams;let s;if(i.set("q",t),E){const e=E&&Array.isArray(ye.Kc)?ye.Kc.find((e=>"string"==typeof e?e===E:e.path===E)):E,t=e?(0,Me._)(e,o).label:E;s=ye.pQ&&n?(0,l.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:t}):(0,l.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:t})}else s=(0,l.I)({id:"theme.SearchBar.seeAll",message:"See all results"});if(!E||!Array.isArray(ye.Kc)||ye.pQ&&n||i.set("ctx",E),u!==a){if(!u.startsWith(a))throw new Error(`Version url '${u}' does not start with base url '${a}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);i.set("version",u.substring(a.length))}const c=`${a}search?${i.toString()}`;return r.href=c,r.textContent=s,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),x.current?.autocomplete.close(),d.push(c))})),r})({query:t,isEmpty:n}),i=document.createElement("div");return i.className=je.hitFooter,i.appendChild(r),i}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;p.current?.blur();let o=n;if(ye.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(Be,t);o+=`?${e.toString()}`}r&&(o+=r),d.push(o)})).on("autocomplete:closed",(()=>{p.current?.blur()})),h.current.set(E,"done"),y(!1),m.current){const e=p.current;e.value&&x.current?.autocomplete.open(),e.focus()}}),[T,E,u,a,d]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=n?new URLSearchParams(f.search).getAll(Be):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ye.vc(t);n.unmark(),0!==e.length&&n.mark(e),w(e.join(" ")),x.current?.autocomplete.setVal(e.join(" "))}))}),[n,f.search,f.pathname]);const[L,N]=(0,r.useState)(!1),A=(0,r.useCallback)((()=>{m.current=!0,C(),N(!0),t?.(!0)}),[t,C]),O=(0,r.useCallback)((()=>{N(!1),t?.(!1)}),[t]),I=(0,r.useCallback)((()=>{C()}),[C]),j=(0,r.useCallback)((e=>{w(e.target.value),e.target.value&&v(!0)}),[]),R=!!n&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{!(R?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),p.current?.focus(),A())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,A]);const F=(0,r.useCallback)((()=>{const e=new URLSearchParams(f.search);e.delete(Be);const t=e.toString(),n=f.pathname+(""!=t?`?${t}`:"")+f.hash;n!=f.pathname+f.search+f.hash&&d.push(n),w(""),x.current?.autocomplete.setVal("")}),[f.pathname,f.search,f.hash,d]);return(0,c.jsxs)("div",{className:(0,be.Z)("navbar__search",je.searchBarContainer,{[je.searchIndexLoading]:g&&b,[je.focused]:L}),hidden:T,children:[(0,c.jsx)("input",{placeholder:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:I,onFocus:A,onBlur:O,onChange:j,ref:p,value:k}),(0,c.jsx)(De.Z,{className:je.searchBarLoadingRing}),ye.AY&&ye.t_&&(""!==k?(0,c.jsx)("button",{className:je.searchClearButton,onClick:F,children:"\u2715"}):n&&(0,c.jsxs)("div",{className:je.searchHintContainer,children:[(0,c.jsx)("kbd",{className:je.searchHint,children:R?"\u2318":"ctrl"}),(0,c.jsx)("kbd",{className:je.searchHint,children:"K"})]}))]})},We={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Ue(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.Z)(n,We.navbarSearchContainer),children:t})}var He=n(2802);const Qe=e=>e.docs.find((t=>t.id===e.mainDocId));const Ze={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,le.Z)(),f=(0,he.l)(),{search:p,hash:h}=(0,s.TH)(),m=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${h}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(pe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(Ue,{className:n,children:(0,c.jsx)($e,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,ke.Iw)(r),i=(0,He.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,ke.Iw)(r),i=(0,He.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,He.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,s.TH)(),f=(0,ke.Iw)(n),p=(0,ke.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),m=[...a,...p.map((e=>{const t=f.alternateDocVersions[e.name]??Qe(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...o],g=(0,He.lO)(n)[0],y=t&&m.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&m.length>1?void 0:Qe(g).path;return m.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(pe,{...i,mobile:t,label:y,to:b,items:m,isActive:r?()=>!1:void 0})}};function Ve(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ze[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function qe(){const e=(0,N.e)(),t=(0,k.L)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ve,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ye(){const e=0===(0,k.L)().navbar.items.length,t=F();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function Ke(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(D,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(qe,{}),secondaryMenu:(0,c.jsx)(Ye,{})}):null}const Xe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Je(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function et(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,k.L)(),i=(0,N.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,A.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Xe.navbarHideable,!d&&Xe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Je,{onClick:i.toggle}),(0,c.jsx)(Ke,{})]})}var tt=n(9690);const nt="right";function rt(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function at(){const{toggle:e,shown:t}=(0,N.e)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(rt,{})})}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(tt.QW,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(Ve,{...e})},t)))})}function st(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function lt(){const e=(0,N.e)(),t=(0,k.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(st,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(at,{}),(0,c.jsx)(q,{}),(0,c.jsx)(it,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(it,{items:r}),(0,c.jsx)(Z,{className:ot.colorModeToggle}),!a&&(0,c.jsx)(Ue,{children:(0,c.jsx)($e,{})})]})})}function ut(){return(0,c.jsx)(et,{children:(0,c.jsx)(lt,{})})}function ct(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(K.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,c.jsx)(te.Z,{})]})}function dt(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(ct,{item:t})},t.href??t.to)}function ft(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(dt,{item:e},t)))})]})}function pt(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(ft,{column:e},t)))})}function ht(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function mt(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(ct,{item:t})}function gt(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(mt,{item:e}),t.length!==n+1&&(0,c.jsx)(ht,{})]},n)))})})}function yt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(pt,{columns:t}):(0,c.jsx)(gt,{links:t})}var bt=n(9965);const vt={footerLogoLink:"footerLogoLink_BH7S"};function kt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(bt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function wt(e){let{logo:t}=e;return t.href?(0,c.jsx)(K.Z,{href:t.href,className:vt.footerLogoLink,target:t.target,children:(0,c.jsx)(kt,{logo:t})}):(0,c.jsx)(kt,{logo:t})}function xt(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function St(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function Et(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(St,{style:a,links:n&&n.length>0&&(0,c.jsx)(yt,{links:n}),logo:r&&(0,c.jsx)(wt,{logo:r}),copyright:t&&(0,c.jsx)(xt,{copyright:t})})}const _t=r.memo(Et),Tt=(0,P.Qc)([M.S,w.pl,A.OC,ve.L5,i.VC,function(e){let{children:t}=e;return(0,c.jsx)(O.n2,{children:(0,c.jsx)(N.M,{children:(0,c.jsx)(j,{children:t})})})}]);function Ct(e){let{children:t}=e;return(0,c.jsx)(Tt,{children:t})}var Lt=n(2503);function Nt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(Lt.Z,{as:"h1",className:"hero__title",children:(0,c.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(tt.Cw,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(tt.aG,{error:t})})]})})})}const At={mainWrapper:"mainWrapper_z2l0"};function Pt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,y.t)(),(0,c.jsxs)(Ct,{children:[(0,c.jsx)(i.d,{title:s,description:l}),(0,c.jsx)(v,{}),(0,c.jsx)(L,{}),(0,c.jsx)(ut,{}),(0,c.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,At.mainWrapper,r),children:(0,c.jsx)(o.Z,{fallback:e=>(0,c.jsx)(Nt,{...e}),children:t})}),!n&&(0,c.jsx)(_t,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(9960),a=n(4996),o=n(2263),i=n(6668),s=n(9965),l=n(5893);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,a.Z)(s?.href||"/"),h=n?"":t,m=s?.alt??h;return(0,l.jsxs)(r.Z,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),a=n(512),o=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function u(e){let{className:t,children:n}=e;const u=(0,o.Z)(),{colorMode:c}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>y});var r=n(7294),a=n(412),o=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function f(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return f(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function h(e){if(!a.Z.canUseDOM)return e?c:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:c,style:u?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(f(c.current,n),i?.(n))},className:l,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,u]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&u(t)}),[a,t]),a?(0,s.jsx)(m,{...n,collapsed:l}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>h});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668),l=n(5893);const u=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===u.get(),f=e=>u.set(String(e)),p=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{f(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&f(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(p.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>g});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668),l=n(5893);const u=r.createContext(void 0),c="theme",d=(0,i.WA)(c),f={light:"light",dark:"dark"},p=e=>e===f.dark?f.dark:f.light,h=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{d.set(p(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===f.dark},setLightTheme(){i(f.light)},setDarkTheme(){i(f.dark)}})),[a,i])}();return(0,l.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>y});var r=n(7294),a=n(143),o=n(9935),i=n(6668),s=n(2802),l=n(902),u=n(12),c=n(5893);const d=e=>`docs-preferred-version-${e}`,f={save:(e,t,n)=>{(0,u.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=f.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){f.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,c.jsx)(h.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return s.cE?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function b(){const e=(0,r.useContext)(h);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>u,b:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>h});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),s=n(902);function l(e){!function(e){const t=(0,i.k6)(),n=(0,s.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668),c=n(5893);const d=r.createContext(void 0);function f(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const c=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function p(e){let{children:t}=e;const n=f();return(0,c.jsx)(d.Provider,{value:n,children:t})}function h(){const e=r.useContext(d);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>u,n2:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?o.desktop:o.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>C,LM:()=>h,_F:()=>b,cE:()=>f,jA:()=>m,xz:()=>p,SN:()=>T,lO:()=>S,vY:()=>_,oz:()=>E,s1:()=>x,f:()=>k});var r=n(7294),a=n(6550),o=n(8790),i=n(143),s=n(373),l=n(4477),u=n(1116);function c(e){return Array.from(new Set(e))}var d=n(8596);const f=!!i._r;function p(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=h(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),y=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function k(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function w(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?w({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function T(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const u=s.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.H)(i),sidebarName:u,sidebarItems:c}}function C(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!h(e)))}},9690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>c,Ac:()=>u,Cw:()=>l,QW:()=>d});var r=n(7294),a=n(5999),o=n(8780);const i={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var s=n(5893);function l(e){return(0,s.jsx)("button",{type:"button",...e,children:(0,s.jsx)(a.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function u(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{className:i.errorBoundaryFallback,children:[(0,s.jsx)("p",{children:t.message}),(0,s.jsx)(l,{onClick:n})]})}function c(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{className:i.errorBoundaryError,children:n})}class d extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>d,VC:()=>h});var r=n(7294),a=n(512),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),u=n(2263);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),f=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.Z,{children:[t&&(0,c.jsx)("title",{children:s}),t&&(0,c.jsx)("meta",{property:"og:title",content:s}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,c.jsx)("meta",{property:"og:image",content:f}),f&&(0,c.jsx)("meta",{name:"twitter:image",content:f}),i]})}const f=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(f),s=(0,a.Z)(i,t);return(0,c.jsxs)(f.Provider,{value:s,children:[(0,c.jsx)(o.Z,{children:(0,c.jsx)("html",{className:s})}),n]})}function h(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>c,Ql:()=>u,i6:()=>l,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>u,RF:()=>f});var r=n(7294),a=n(412),o=n(2389),i=(n(469),n(902)),s=n(5893);const l=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>l});n(7294);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),u=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),c=s===i?e:e.replace(`/${s}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(1728);const a={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var o=n(5893);function i(e){let{className:t}=e;return(0,o.jsxs)("div",{className:(0,r.Z)(a.loadingRing,t),children:[(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{})]})}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>s});var r=n(1336),a=n.n(r),o=n(1029);const i=new Map;function s(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${o.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>l});var r=n(1336),a=n.n(r);var o=n(1029);function i(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function l(e,t,n){return function(r,s){const l=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.dK);if(0===l.length)return void s([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:a.missed,term:a.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),i=!0}else for(let t=s.length-1;t>o;t-=1){const l=s.substr(0,t);if(r.substr(0,t)===l){o=t;const s={missed:a.missed,term:a.term.concat({value:l,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.dK)if("en"===i)o._k||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length0&&t.push(n)}n.push(...t)}else s=n.slice();const l=[];for(const a of s)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)l.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(l))}(l,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`${(0,r.X)(e.substr(n,i.length))}`);const s=n+i.length;s${(0,r.X)(e)}`:(0,r.X)(e):o.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>l});var r=n(1690),a=n(2539);const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var s=n(1029);function l(e,t,n,o){void 0===o&&(o=s.Hk);const{chunkIndex:l,chunks:u}=function(e,t,n){const o=[];let s=0,l=0,u=-1;for(;sl){const t=i(e.substring(l,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),l=c+d,o.push({html:(0,a.C)(e.substring(c,l),n,!0),textLength:d})}}if(l({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}(e,t,n),c=u.slice(0,l),d=u[l],f=[d.html],p=u.slice(l+1);let h=d.textLength,m=0,g=0,y=!1,b=!1;for(;h0){const e=c.pop();h+e.textLength<=o?(f.unshift(e.html),m+=e.textLength,h+=e.textLength):(y=!0,c.length=0)}else{if(!(p.length>0))break;{const e=p.shift();h+e.textLength<=o?(f.push(e.html),g+=e.textLength,h+=e.textLength):(b=!0,p.length=0)}}return(y||c.length>0)&&f.unshift("\u2026"),(b||p.length>0)&&f.push("\u2026"),f.join("")}},51:(e,t,n)=>{"use strict";function r(e,t){if("string"==typeof e)return{label:e,path:e};{const{label:n,path:r}=e;return"string"==typeof n?{label:n,path:r}:Object.prototype.hasOwnProperty.call(n,t)?{label:n[t],path:r}:{label:r,path:r}}}n.d(t,{_:()=>r})},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>o,gQ:()=>p,H6:()=>u,hG:()=>g,l9:()=>h,dK:()=>r,_k:()=>a,pu:()=>f,AY:()=>c,t_:()=>d,Kc:()=>m,J:()=>i,Hk:()=>l,qo:()=>s,pQ:()=>y});n(1336);const r=["en"],a=!1,o=null,i="search-index{dir}.json?_=99765a7e",s=8,l=50,u=!1,c=!0,d=!0,f="right",p=void 0,h=!0,m=[{label:"Documents",path:"docs"},{label:"Blog",path:"blog"}],g=!0,y=!1},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>k,q_:()=>T,ob:()=>p,PP:()=>L,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,m(),k.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(k.entries[k.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=k.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,s],c=0;(l=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,a;!function(){var o,i,s,l,u,c,d,f,p,h,m,g,y,b,v,k,w,x,S,E,_,T,C,L,N,A,P,O,I,j,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var l=R.utils.clone(t)||{};l.position=[i,s],l.index=a.length,a.push(new R.Token(n.slice(i,o),l))}i=o+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(oe&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:os?u+=2:i==s&&(t+=n[l+1]*r[u+1],l+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new R.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}if(0==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}1==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new R.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),s=0;s1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(u,i(e,c,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(i,p),i=p+d.length,f)s+=f[1];else{var h=e[i],m=n[2],g=n[3],y=n[4],b=n[5],v=n[6],k=n[7];s&&(r.push(s),s="");var w=null!=m&&null!=h&&h!==m,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=y||b;r.push({name:g||o++,prefix:m||"",delimiter:E,optional:S,repeat:x,partial:w,asterisk:!!k,pattern:_?u(_):k?".*":"[^"+l(E)+"]+?"})}}return i{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=o.length);l++){var u=s[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),h=f.indexOf(p);if(h>-1){++a;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?s.splice.apply(s,[l,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return s}(n.tokens)}}}})}(Prism)},3358:()=>{!function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism)},9929:(e,t,n)=>{var r={"./prism-bash":7874,"./prism-json":4277,"./prism-yaml":3358};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=9929},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n