From e0f40398dde758c2f1a055f9f10e2563be1df9e9 Mon Sep 17 00:00:00 2001 From: Siddharth Sachar Date: Tue, 21 Jul 2026 15:37:23 +0100 Subject: [PATCH] Polish sitewide marketing navigation and content --- docs-site/README.md | 12 +- docs-site/docusaurus.config.ts | 32 +- docs-site/src/pages/index.tsx | 2 +- docs-site/static/architecture.html | 461 ------------------ docs-site/static/contact.html | 352 ------------- docs/404.html | 146 +++--- docs/architecture.html | 415 ++-------------- docs/assets/js/1df93b7f.a2862f13.js | 1 + docs/assets/js/1df93b7f.d004f60f.js | 1 - .../js/{main.a9e6bb60.js => main.12b13e6e.js} | 4 +- ...CENSE.txt => main.12b13e6e.js.LICENSE.txt} | 0 ...n.e88f23a6.js => runtime~main.9376a149.js} | 2 +- docs/contact.html | 331 +++---------- docs/docs/app-shell/agent-profiles/index.html | 8 +- docs/docs/app-shell/navigation/index.html | 8 +- docs/docs/chat/index.html | 8 +- docs/docs/chat/model-picker/index.html | 8 +- .../tools-approvals-and-terminal/index.html | 8 +- docs/docs/computer-use/index.html | 8 +- .../concepts/background-workflows/index.html | 8 +- .../concepts/extensions-and-trust/index.html | 8 +- docs/docs/concepts/index.html | 8 +- .../index.html | 8 +- .../profiles-goals-and-agents/index.html | 8 +- .../concepts/request-lifecycle/index.html | 8 +- .../models-and-providers/index.html | 8 +- docs/docs/designer/index.html | 8 +- docs/docs/developer/index.html | 8 +- docs/docs/extending/index.html | 8 +- .../getting-started/first-launch/index.html | 8 +- docs/docs/getting-started/index.html | 8 +- .../getting-started/installation/index.html | 8 +- .../docs/guides/channels-and-voice/index.html | 8 +- docs/docs/guides/designer-studio/index.html | 8 +- docs/docs/guides/developer-studio/index.html | 8 +- .../docs/guides/skills-plugins-mcp/index.html | 8 +- docs/docs/guides/workflows/index.html | 8 +- docs/docs/home/designer/index.html | 8 +- docs/docs/home/developer/index.html | 8 +- docs/docs/home/index.html | 8 +- docs/docs/home/knowledge/index.html | 8 +- docs/docs/home/monitor/index.html | 8 +- docs/docs/home/workflows/index.html | 8 +- docs/docs/index.html | 8 +- docs/docs/integrations/accounts/index.html | 8 +- docs/docs/integrations/channels/index.html | 8 +- docs/docs/integrations/mcp/index.html | 8 +- docs/docs/integrations/plugins/index.html | 8 +- docs/docs/knowledge/index.html | 8 +- .../knowledge/provenance-repair/index.html | 8 +- docs/docs/knowledge/wiki-vault/index.html | 8 +- docs/docs/mobile-native/index.html | 8 +- docs/docs/monitor/index.html | 8 +- docs/docs/operations/index.html | 8 +- docs/docs/privacy-safety/index.html | 8 +- docs/docs/profiles-goals-agents/index.html | 8 +- .../reference/generated/channels/index.html | 8 +- docs/docs/reference/generated/cli/index.html | 8 +- .../generated/data-storage/index.html | 8 +- .../environment-and-config/index.html | 8 +- .../reference/generated/home-tabs/index.html | 8 +- docs/docs/reference/generated/index.html | 8 +- docs/docs/reference/generated/mcp/index.html | 8 +- .../reference/generated/plugins/index.html | 8 +- .../reference/generated/providers/index.html | 8 +- .../generated/safety-approvals/index.html | 8 +- .../generated/screenshots/index.html | 8 +- .../generated/settings-controls/index.html | 8 +- .../reference/generated/settings/index.html | 8 +- .../reference/generated/skills/index.html | 8 +- .../docs/reference/generated/tools/index.html | 8 +- docs/docs/reference/index.html | 8 +- docs/docs/settings/accounts/index.html | 8 +- docs/docs/settings/buddy/index.html | 8 +- docs/docs/settings/channels/index.html | 8 +- docs/docs/settings/documents/index.html | 8 +- docs/docs/settings/index.html | 8 +- docs/docs/settings/knowledge/index.html | 8 +- docs/docs/settings/mcp/index.html | 8 +- docs/docs/settings/models/index.html | 8 +- docs/docs/settings/plugins/index.html | 8 +- docs/docs/settings/preferences/index.html | 8 +- docs/docs/settings/providers/index.html | 8 +- docs/docs/settings/search/index.html | 8 +- docs/docs/settings/skills/index.html | 8 +- docs/docs/settings/system/index.html | 8 +- docs/docs/settings/tracker/index.html | 8 +- docs/docs/settings/utilities/index.html | 8 +- docs/docs/settings/voice/index.html | 8 +- docs/docs/skills/index.html | 8 +- docs/docs/troubleshooting/index.html | 8 +- docs/docs/ui-tour/index.html | 8 +- docs/docs/voice-and-buddy/index.html | 8 +- docs/features.html | 71 ++- docs/index.html | 16 +- docs/pagefind/fragment/en_c76e884.pf_fragment | Bin 313 -> 0 bytes docs/pagefind/fragment/en_f2bde6d.pf_fragment | Bin 1598 -> 0 bytes docs/pagefind/index/en_2ad8e7e.pf_index | Bin 0 -> 23449 bytes docs/pagefind/index/en_b23c378.pf_index | Bin 0 -> 24674 bytes docs/pagefind/index/en_bef3588.pf_index | Bin 24815 -> 0 bytes docs/pagefind/index/en_d6c6d29.pf_index | Bin 0 -> 15675 bytes docs/pagefind/index/en_e14e802.pf_index | Bin 23601 -> 0 bytes docs/pagefind/index/en_e2c5fe8.pf_index | Bin 0 -> 24327 bytes docs/pagefind/index/en_e51640d.pf_index | Bin 24343 -> 0 bytes docs/pagefind/index/en_ebbb642.pf_index | Bin 16947 -> 0 bytes docs/pagefind/pagefind-entry.json | 2 +- docs/pagefind/pagefind.en_99cdf3263b.pf_meta | Bin 0 -> 781 bytes docs/pagefind/pagefind.en_b712fc17d5.pf_meta | Bin 790 -> 0 bytes docs/search/index.html | 6 +- docs/site.css | 68 ++- docs/site.js | 102 +++- docs/sitemap.xml | 2 +- scripts/docs/sync_github_pages.py | 28 ++ scripts/docs/validate_public_docs.py | 41 +- tests/docs/landing_page_runtime_test.cjs | 126 ++++- tests/docs/test_landing_page.py | 127 +++++ tests/docs/test_public_docs_automation.py | 81 ++- 117 files changed, 1123 insertions(+), 1946 deletions(-) delete mode 100644 docs-site/static/architecture.html delete mode 100644 docs-site/static/contact.html create mode 100644 docs/assets/js/1df93b7f.a2862f13.js delete mode 100644 docs/assets/js/1df93b7f.d004f60f.js rename docs/assets/js/{main.a9e6bb60.js => main.12b13e6e.js} (79%) rename docs/assets/js/{main.a9e6bb60.js.LICENSE.txt => main.12b13e6e.js.LICENSE.txt} (100%) rename docs/assets/js/{runtime~main.e88f23a6.js => runtime~main.9376a149.js} (99%) delete mode 100644 docs/pagefind/fragment/en_c76e884.pf_fragment delete mode 100644 docs/pagefind/fragment/en_f2bde6d.pf_fragment create mode 100644 docs/pagefind/index/en_2ad8e7e.pf_index create mode 100644 docs/pagefind/index/en_b23c378.pf_index delete mode 100644 docs/pagefind/index/en_bef3588.pf_index create mode 100644 docs/pagefind/index/en_d6c6d29.pf_index delete mode 100644 docs/pagefind/index/en_e14e802.pf_index create mode 100644 docs/pagefind/index/en_e2c5fe8.pf_index delete mode 100644 docs/pagefind/index/en_e51640d.pf_index delete mode 100644 docs/pagefind/index/en_ebbb642.pf_index create mode 100644 docs/pagefind/pagefind.en_99cdf3263b.pf_meta delete mode 100644 docs/pagefind/pagefind.en_b712fc17d5.pf_meta diff --git a/docs-site/README.md b/docs-site/README.md index 38a9c7eb..e88c7e34 100644 --- a/docs-site/README.md +++ b/docs-site/README.md @@ -1,6 +1,16 @@ # Row-Bot Docs Site -This Docusaurus site is a review-only public documentation build. It is not wired into the current public website and is not published by CI. +This Docusaurus project is the source for Row-Bot's public documentation. Its +build is synchronized into the generated documentation-owned paths under +`docs/`, which GitHub Pages publishes alongside the hand-curated marketing +pages at the site root. + +Do not edit generated files under `docs/docs`, `docs/assets`, `docs/img`, +`docs/pagefind`, or `docs/search` by hand. Change this source and use the +documented build/synchronization workflow. The root marketing files +(`index.html`, `features.html`, `architecture.html`, `contact.html`, +`404.html`, `site.css`, `site.js`, and their media) are deliberately outside +the synchronization script's ownership. ## Local Preview diff --git a/docs-site/docusaurus.config.ts b/docs-site/docusaurus.config.ts index 48b90ede..c1412013 100644 --- a/docs-site/docusaurus.config.ts +++ b/docs-site/docusaurus.config.ts @@ -2,6 +2,12 @@ import type {Config} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; const landingPageUrl = 'https://row-bot.ai/'; +const installationUrl = 'https://row-bot.ai/#install'; +const marketingSitemapUrls = [ + 'https://row-bot.ai/features.html', + 'https://row-bot.ai/architecture.html', + 'https://row-bot.ai/contact.html', +]; const config: Config = { title: 'Row-Bot', @@ -41,6 +47,20 @@ const config: Config = { theme: { customCss: './src/css/custom.css', }, + sitemap: { + async createSitemapItems({ + routes, + siteConfig, + defaultCreateSitemapItems, + }) { + const docsItems = await defaultCreateSitemapItems({routes, siteConfig}); + const existingUrls = new Set(docsItems.map((item) => item.url)); + const marketingItems = marketingSitemapUrls + .filter((url) => !existingUrls.has(url)) + .map((url) => ({url})); + return [...docsItems, ...marketingItems]; + }, + }, } satisfies Preset.Options, ], ], @@ -76,7 +96,7 @@ const config: Config = { position: 'right', }, { - href: landingPageUrl, + href: installationUrl, label: 'Download', position: 'right', target: '_self', @@ -86,6 +106,16 @@ const config: Config = { footer: { style: 'dark', links: [ + { + title: 'Row-Bot', + items: [ + {label: 'Home', href: landingPageUrl}, + {label: 'Features', href: 'https://row-bot.ai/features.html'}, + {label: 'Architecture', href: 'https://row-bot.ai/architecture.html'}, + {label: 'Contact', href: 'https://row-bot.ai/contact.html'}, + {label: 'Blog', href: 'https://sydsachar.com/category/row-bot/'}, + ], + }, { title: 'Docs', items: [ diff --git a/docs-site/src/pages/index.tsx b/docs-site/src/pages/index.tsx index 8f3b8527..bfdec493 100644 --- a/docs-site/src/pages/index.tsx +++ b/docs-site/src/pages/index.tsx @@ -22,7 +22,7 @@ export default function Home(): JSX.Element { Download diff --git a/docs-site/static/architecture.html b/docs-site/static/architecture.html deleted file mode 100644 index d5a90544..00000000 --- a/docs-site/static/architecture.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - Row-Bot - Architecture - - - - - - - - - - - - - - - - - - - - -
-
- -

Architecture

-

How Row-Bot stays local-first.

-

- These diagrams map the main systems behind Row-Bot: the agent orchestrator, context assembly, - memory graph, workflows, channels, Designer Studio, safety boundaries, and self-management loops. - The same principle runs through each layer: keep durable user data local, make external services opt-in, - and give the user clear control over actions. -

- -
- -
- -
-
-
-
- Local state -

Conversations, memory, media, tasks, wiki vaults, and project assets live on the user's machine.

-
-
- Opt-in models -

Local runtimes and self-hosted endpoints stay distinct from hosted provider APIs, Ollama Cloud, and ChatGPT / Codex.

-
-
- Trust boundaries -

Tool results, web pages, channel attachments, and remote MCP servers are treated as untrusted context.

-
-
- User control -

Destructive tools, settings changes, workflow actions, and external delivery paths pass through guardrails.

-
-
-
-
- -
- -
- -
- -
- -
-
-

Want the implementation detail?

-

The written architecture reference covers modules, storage layout, provider routing, update flow, packaging, and system boundaries.

- -
-
-
- - - - - - - - - - - - - - - diff --git a/docs-site/static/contact.html b/docs-site/static/contact.html deleted file mode 100644 index 4afeb0fb..00000000 --- a/docs-site/static/contact.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - Contact Row-Bot - - - - - - - - - - - - -
-

Contact

-

Tell us what you are building with Row-Bot.

-

- Questions, feedback, partnership notes, release issues, and thoughtful bug reports are welcome. - Security reports should go directly by email. -

- -
-
-
- - - - - - - - - - - - - - - - -
- - -
-
- - - - - - diff --git a/docs/404.html b/docs/404.html index 8a1b6942..13bf8592 100644 --- a/docs/404.html +++ b/docs/404.html @@ -3,9 +3,17 @@ - Row-Bot - Page not found + + Page not found — Row-Bot + + + - + + + + + - - - - -
404 - Not Found
-

Nothing here

-

This page doesn't exist. Row-Bot has no route for it.

- Back to Row-Bot + diff --git a/docs/architecture.html b/docs/architecture.html index 5eac8f3c..f4adf695 100644 --- a/docs/architecture.html +++ b/docs/architecture.html @@ -4,324 +4,27 @@ - Row-Bot — Architecture + Row-Bot — Architecture + - + + + - + - - + + @@ -330,22 +33,18 @@ @@ -354,13 +53,13 @@
- Local-first system map · Row-Bot 4.5.0 + Architecture current with Row-Bot 4.5.0

Architecture

How Row-Bot stays local-first.

These diagrams map the main systems behind Row-Bot: the checkpointed agent orchestrator, context assembly, memory graph, workflows, channels, native Computer Use, Developer and Designer Studios, safety boundaries, and self-management loops. Durable state stays local; external services and optional runtimes remain explicit and opt-in.

@@ -371,9 +70,7 @@

How Row-Bot stays local-first.

-
- -
+
@@ -396,81 +93,68 @@

How Row-Bot stays local-first.

-
-
-

Subsystem Maps

+

Subsystem maps

Open any diagram for a larger view. The gallery starts with the full core-agent map, then moves through the specialized subsystems that make Row-Bot useful day to day.

- -
- -
-
-

Go deeper

-

Want the implementation detail?

-

The written architecture reference covers modules, storage layout, provider routing, update flow, packaging, and system boundaries.

- -
-
- - - - - - - - - - - + + + + + + + + + + diff --git a/docs/assets/js/1df93b7f.a2862f13.js b/docs/assets/js/1df93b7f.a2862f13.js new file mode 100644 index 00000000..49c8f5b4 --- /dev/null +++ b/docs/assets/js/1df93b7f.a2862f13.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrow_bot_docs=globalThis.webpackChunkrow_bot_docs||[]).push([[4583],{6866(s,e,o){o.r(e),o.d(e,{default:()=>n});o(6540);var t=o(1656),r=o(8774),l=o(4848);function n(){return(0,l.jsxs)(t.A,{title:"Local-first desktop AI assistant",description:"Row-Bot public documentation and downloads",children:[(0,l.jsx)("header",{className:"hero hero--primary",children:(0,l.jsxs)("div",{className:"container",children:[(0,l.jsx)("h1",{className:"hero__title",children:"Row-Bot"}),(0,l.jsx)("p",{className:"hero__subtitle",children:"A local-first desktop AI assistant for models, memory, tools, workflows, Designer Studio, Developer Studio, Skills Hub, plugins, MCP, channels, and voice."}),(0,l.jsxs)("div",{className:"rowBotHeroActions",children:[(0,l.jsx)(r.A,{className:"button button--primary button--lg",to:"/docs/",children:"Read the docs"}),(0,l.jsx)(r.A,{className:"button button--secondary button--lg",href:"https://row-bot.ai/#install",children:"Download"})]})]})}),(0,l.jsx)("main",{className:"container",children:(0,l.jsxs)("section",{className:"rowBotPanelGrid",children:[(0,l.jsxs)("article",{className:"rowBotPanel",children:[(0,l.jsx)("h3",{children:"Start quickly"}),(0,l.jsx)("p",{children:"Install Row-Bot, choose a local, hosted, subscription, or custom model path, and send your first useful prompt."}),(0,l.jsx)(r.A,{to:"/docs/getting-started/",children:"Getting started"})]}),(0,l.jsxs)("article",{className:"rowBotPanel",children:[(0,l.jsx)("h3",{children:"Learn the UI"}),(0,l.jsx)("p",{children:"Tour chat, the status bar, Workflows, Designer Studio, Developer Studio, Knowledge, Settings, and approvals."}),(0,l.jsx)(r.A,{to:"/docs/ui-tour/",children:"UI tour"})]}),(0,l.jsxs)("article",{className:"rowBotPanel",children:[(0,l.jsx)("h3",{children:"Configure your setup"}),(0,l.jsx)("p",{children:"Connect providers, local models, embeddings, tools, channels, skills, plugins, MCP servers, Buddy, and voice."}),(0,l.jsx)(r.A,{to:"/docs/configuration/models-and-providers",children:"Configuration"})]})]})})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/1df93b7f.d004f60f.js b/docs/assets/js/1df93b7f.d004f60f.js deleted file mode 100644 index c4632b5a..00000000 --- a/docs/assets/js/1df93b7f.d004f60f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkrow_bot_docs=globalThis.webpackChunkrow_bot_docs||[]).push([[4583],{6866(s,e,o){o.r(e),o.d(e,{default:()=>n});o(6540);var t=o(1656),r=o(8774),l=o(4848);function n(){return(0,l.jsxs)(t.A,{title:"Local-first desktop AI assistant",description:"Row-Bot public documentation and downloads",children:[(0,l.jsx)("header",{className:"hero hero--primary",children:(0,l.jsxs)("div",{className:"container",children:[(0,l.jsx)("h1",{className:"hero__title",children:"Row-Bot"}),(0,l.jsx)("p",{className:"hero__subtitle",children:"A local-first desktop AI assistant for models, memory, tools, workflows, Designer Studio, Developer Studio, Skills Hub, plugins, MCP, channels, and voice."}),(0,l.jsxs)("div",{className:"rowBotHeroActions",children:[(0,l.jsx)(r.A,{className:"button button--primary button--lg",to:"/docs/",children:"Read the docs"}),(0,l.jsx)(r.A,{className:"button button--secondary button--lg",href:"https://row-bot.ai/",children:"Download"})]})]})}),(0,l.jsx)("main",{className:"container",children:(0,l.jsxs)("section",{className:"rowBotPanelGrid",children:[(0,l.jsxs)("article",{className:"rowBotPanel",children:[(0,l.jsx)("h3",{children:"Start quickly"}),(0,l.jsx)("p",{children:"Install Row-Bot, choose a local, hosted, subscription, or custom model path, and send your first useful prompt."}),(0,l.jsx)(r.A,{to:"/docs/getting-started/",children:"Getting started"})]}),(0,l.jsxs)("article",{className:"rowBotPanel",children:[(0,l.jsx)("h3",{children:"Learn the UI"}),(0,l.jsx)("p",{children:"Tour chat, the status bar, Workflows, Designer Studio, Developer Studio, Knowledge, Settings, and approvals."}),(0,l.jsx)(r.A,{to:"/docs/ui-tour/",children:"UI tour"})]}),(0,l.jsxs)("article",{className:"rowBotPanel",children:[(0,l.jsx)("h3",{children:"Configure your setup"}),(0,l.jsx)("p",{children:"Connect providers, local models, embeddings, tools, channels, skills, plugins, MCP servers, Buddy, and voice."}),(0,l.jsx)(r.A,{to:"/docs/configuration/models-and-providers",children:"Configuration"})]})]})})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/main.a9e6bb60.js b/docs/assets/js/main.12b13e6e.js similarity index 79% rename from docs/assets/js/main.a9e6bb60.js rename to docs/assets/js/main.12b13e6e.js index 0b4369f7..add322e2 100644 --- a/docs/assets/js/main.a9e6bb60.js +++ b/docs/assets/js/main.12b13e6e.js @@ -1,2 +1,2 @@ -/*! For license information please see main.a9e6bb60.js.LICENSE.txt */ -(globalThis.webpackChunkrow_bot_docs=globalThis.webpackChunkrow_bot_docs||[]).push([[8792],{8328(e,t,n){"use strict";n.d(t,{A:()=>f});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"09270fc9":[()=>n.e(2313).then(n.bind(n,6467)),"@site/docs/home/workflows.mdx",6467],"0b815fd5":[()=>n.e(2564).then(n.bind(n,3681)),"@site/docs/profiles-goals-agents/index.mdx",3681],"0dc1198b":[()=>n.e(7087).then(n.bind(n,6324)),"@site/docs/home/monitor.mdx",6324],"0e619d45":[()=>n.e(6987).then(n.bind(n,7069)),"@site/docs/reference/generated/environment-and-config.mdx",7069],"0e7f89a4":[()=>n.e(3931).then(n.bind(n,9979)),"@site/docs/knowledge/index.mdx",9979],"0f0edaea":[()=>n.e(7459).then(n.bind(n,8750)),"@site/docs/integrations/accounts.mdx",8750],"11b2d27f":[()=>n.e(5956).then(n.bind(n,5407)),"@site/docs/settings/preferences.mdx",5407],"11b43341":[()=>n.e(2256).then(n.t.bind(n,7674,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-7fc.json",7674],"11eb8e9d":[()=>n.e(1618).then(n.bind(n,753)),"@site/docs/home/developer.mdx",753],"15d99295":[()=>n.e(8983).then(n.bind(n,9179)),"@site/docs/getting-started/index.mdx",9179],17896441:[()=>Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,8252)),"@theme/DocItem",8252],"17984a0f":[()=>n.e(4267).then(n.bind(n,2650)),"@site/docs/app-shell/navigation.mdx",2650],"1df93b7f":[()=>n.e(4583).then(n.bind(n,6866)),"@site/src/pages/index.tsx",6866],"1e28848b":[()=>n.e(6333).then(n.bind(n,4109)),"@site/docs/concepts/background-workflows.mdx",4109],"1f7eaa88":[()=>n.e(7824).then(n.bind(n,3554)),"@site/docs/concepts/memory-knowledge-and-dream-cycle.mdx",3554],"1ff1d111":[()=>n.e(4718).then(n.bind(n,6627)),"@site/docs/reference/generated/skills.mdx",6627],"21ebd256":[()=>n.e(766).then(n.bind(n,6945)),"@site/docs/settings/skills.mdx",6945],"23a00e73":[()=>n.e(1378).then(n.bind(n,9482)),"@site/docs/integrations/plugins.mdx",9482],"253fc05d":[()=>n.e(701).then(n.bind(n,1507)),"@site/docs/settings/index.mdx",1507],"26eb6ff6":[()=>n.e(1150).then(n.bind(n,9098)),"@site/docs/settings/knowledge.mdx",9098],"28ebe4ac":[()=>n.e(4431).then(n.bind(n,7274)),"@site/docs/reference/generated/screenshots.mdx",7274],"2bbac923":[()=>n.e(7697).then(n.bind(n,4880)),"@site/docs/settings/tracker.mdx",4880],"2bfa0e57":[()=>n.e(2889).then(n.bind(n,8091)),"@site/docs/getting-started/first-launch.mdx",8091],"3287d67a":[()=>n.e(3257).then(n.bind(n,4153)),"@site/docs/developer/index.mdx",4153],"3491b5f7":[()=>n.e(8858).then(n.bind(n,1072)),"@site/docs/chat/model-picker.mdx",1072],"38f1eba2":[()=>n.e(7489).then(n.bind(n,6947)),"@site/docs/mobile-native/index.mdx",6947],"41f8ed3d":[()=>n.e(6074).then(n.bind(n,7551)),"@site/docs/privacy-safety/index.mdx",7551],42905030:[()=>n.e(6956).then(n.bind(n,8960)),"@site/docs/reference/generated/settings.mdx",8960],"48d5566c":[()=>n.e(4858).then(n.bind(n,6980)),"@site/docs/ui-tour/index.mdx",6980],"4edc808e":[()=>n.e(308).then(n.bind(n,6215)),"@site/docs/index.mdx",6215],"4f220506":[()=>n.e(3630).then(n.bind(n,6244)),"@site/docs/guides/developer-studio.mdx",6244],"520f8f9d":[()=>n.e(1849).then(n.bind(n,9208)),"@site/docs/settings/channels.mdx",9208],"535e44eb":[()=>n.e(7328).then(n.bind(n,5231)),"@site/docs/settings/models.mdx",5231],"53994e15":[()=>n.e(5486).then(n.bind(n,2712)),"@site/docs/settings/plugins.mdx",2712],"5c86a732":[()=>n.e(8766).then(n.bind(n,7795)),"@site/docs/guides/channels-and-voice.mdx",7795],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5f367150":[()=>n.e(9370).then(n.bind(n,7175)),"@site/docs/guides/skills-plugins-mcp.mdx",7175],"613f2b81":[()=>n.e(998).then(n.bind(n,1743)),"@site/docs/settings/providers.mdx",1743],"6459b84b":[()=>n.e(6459).then(n.bind(n,6355)),"@site/docs/getting-started/installation.mdx",6355],"699d79f1":[()=>n.e(568).then(n.bind(n,1793)),"@site/docs/integrations/channels.mdx",1793],"747c2147":[()=>n.e(468).then(n.bind(n,7582)),"@site/docs/reference/index.mdx",7582],"78a8f3cb":[()=>n.e(8135).then(n.bind(n,4677)),"@site/docs/reference/generated/channels.mdx",4677],"7aae49d2":[()=>n.e(9450).then(n.bind(n,6236)),"@site/docs/reference/generated/tools.mdx",6236],"7bdd11db":[()=>n.e(2568).then(n.bind(n,8386)),"@site/docs/concepts/extensions-and-trust.mdx",8386],"7bed8f8a":[()=>n.e(9768).then(n.bind(n,8164)),"@site/docs/designer/index.mdx",8164],"7d163bd7":[()=>n.e(9855).then(n.bind(n,4278)),"@site/docs/knowledge/wiki-vault.mdx",4278],"7fe7c4d2":[()=>n.e(1627).then(n.bind(n,8896)),"@site/docs/chat/tools-approvals-and-terminal.mdx",8896],"82dec449":[()=>n.e(2580).then(n.bind(n,2041)),"@site/docs/settings/mcp.mdx",2041],"86824abb":[()=>n.e(7186).then(n.bind(n,715)),"@site/docs/home/designer.mdx",715],87273853:[()=>n.e(1988).then(n.bind(n,5079)),"@site/docs/reference/generated/safety-approvals.mdx",5079],"8a9addb2":[()=>n.e(4188).then(n.bind(n,64)),"@site/docs/reference/generated/plugins.mdx",64],"900ee28e":[()=>n.e(7861).then(n.bind(n,959)),"@site/docs/operations/index.mdx",959],"901d8eab":[()=>n.e(3763).then(n.bind(n,2995)),"@site/docs/settings/utilities.mdx",2995],"90df1d87":[()=>n.e(5042).then(n.bind(n,419)),"@site/docs/monitor/index.mdx",419],"96b917e0":[()=>n.e(8534).then(n.bind(n,2678)),"@site/docs/settings/voice.mdx",2678],97857112:[()=>n.e(8939).then(n.bind(n,252)),"@site/docs/reference/generated/cli.mdx",252],"9795ce3b":[()=>n.e(5362).then(n.bind(n,7722)),"@site/docs/reference/generated/index.mdx",7722],"980e3417":[()=>n.e(1288).then(n.bind(n,6442)),"@site/docs/home/index.mdx",6442],"983cd823":[()=>n.e(6543).then(n.bind(n,9674)),"@site/docs/reference/generated/mcp.mdx",9674],"98ba773b":[()=>n.e(974).then(n.bind(n,8299)),"@site/docs/concepts/index.mdx",8299],"9d2a1ecb":[()=>n.e(2826).then(n.bind(n,3390)),"@site/docs/home/knowledge.mdx",3390],"9f8aa1ae":[()=>n.e(8507).then(n.bind(n,3820)),"@site/docs/integrations/mcp.mdx",3820],a0bbbb9a:[()=>n.e(2014).then(n.bind(n,5321)),"@site/docs/app-shell/agent-profiles.mdx",5321],a1905cc3:[()=>n.e(7324).then(n.bind(n,7535)),"@site/docs/knowledge/provenance-repair.mdx",7535],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,1723)),"@theme/DocVersionRoot",1723],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,8115)),"@theme/DocRoot",8115],ab7a4106:[()=>n.e(8133).then(n.bind(n,5635)),"@site/docs/concepts/profiles-goals-and-agents.mdx",5635],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],aef901ed:[()=>n.e(1807).then(n.bind(n,5267)),"@site/src/pages/search.tsx",5267],b1381ae8:[()=>n.e(1604).then(n.bind(n,5324)),"@site/docs/guides/designer-studio.mdx",5324],b16079be:[()=>n.e(7765).then(n.bind(n,5199)),"@site/docs/reference/generated/settings-controls.mdx",5199],b17ca3d0:[()=>n.e(7362).then(n.bind(n,9231)),"@site/docs/settings/system.mdx",9231],bb0d5eae:[()=>n.e(7891).then(n.bind(n,7164)),"@site/docs/reference/generated/home-tabs.mdx",7164],beef8ae0:[()=>n.e(5135).then(n.bind(n,3411)),"@site/docs/settings/search.mdx",3411],bf8ba399:[()=>n.e(9283).then(n.bind(n,1962)),"@site/docs/chat/index.mdx",1962],c537a3e6:[()=>n.e(8588).then(n.bind(n,3351)),"@site/docs/reference/generated/data-storage.mdx",3351],cb6f0e10:[()=>n.e(9478).then(n.bind(n,7166)),"@site/docs/voice-and-buddy/index.mdx",7166],cf73a97d:[()=>n.e(6805).then(n.bind(n,3931)),"@site/docs/settings/documents.mdx",3931],d6629652:[()=>n.e(6325).then(n.bind(n,5358)),"@site/docs/guides/workflows.mdx",5358],d883fcd8:[()=>n.e(6685).then(n.bind(n,1028)),"@site/docs/settings/accounts.mdx",1028],d9c6c13d:[()=>n.e(772).then(n.bind(n,6963)),"@site/docs/troubleshooting/index.mdx",6963],de9842d0:[()=>n.e(1075).then(n.bind(n,5280)),"@site/docs/reference/generated/providers.mdx",5280],e369569c:[()=>n.e(5729).then(n.bind(n,344)),"@site/docs/extending/index.mdx",344],f53c29e4:[()=>n.e(4302).then(n.bind(n,4392)),"@site/docs/settings/buddy.mdx",4392],faa53be6:[()=>n.e(9148).then(n.bind(n,4433)),"@site/docs/skills/index.mdx",4433],fc091546:[()=>n.e(5575).then(n.bind(n,4085)),"@site/docs/concepts/request-lifecycle.mdx",4085],ff2d1fb9:[()=>n.e(1695).then(n.bind(n,9368)),"@site/docs/computer-use/index.mdx",9368],ffc13d50:[()=>n.e(5441).then(n.bind(n,2091)),"@site/docs/configuration/models-and-providers.mdx",2091]};var l=n(4848);function s({error:e,retry:t,pastDelay:n}){return e?(0,l.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,l.jsx)("p",{children:String(e)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.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,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},f=[],p=[],m=(0,c.A)(r);return Object.entries(m).forEach(([e,t])=>{const n=i[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),o().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach(([t,n])=>{const r=n.default;if(!r)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 r&&"function"!=typeof r||Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o;const i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});const a=o.__comp;delete o.__comp;const i=o.__context;delete o.__context;const s=o.__props;return delete o.__props,(0,l.jsx)(u.W,{value:i,children:(0,l.jsx)(a,{...o,...s,...n})})}})}const f=[{path:"/search/",component:d("/search/","1d3"),exact:!0},{path:"/docs/",component:d("/docs/","0f5"),routes:[{path:"/docs/",component:d("/docs/","0ad"),routes:[{path:"/docs/",component:d("/docs/","4bc"),routes:[{path:"/docs/",component:d("/docs/","6df"),exact:!0,sidebar:"docs"},{path:"/docs/app-shell/agent-profiles/",component:d("/docs/app-shell/agent-profiles/","831"),exact:!0},{path:"/docs/app-shell/navigation/",component:d("/docs/app-shell/navigation/","56b"),exact:!0,sidebar:"docs"},{path:"/docs/chat/",component:d("/docs/chat/","e77"),exact:!0,sidebar:"docs"},{path:"/docs/chat/model-picker/",component:d("/docs/chat/model-picker/","e20"),exact:!0,sidebar:"docs"},{path:"/docs/chat/tools-approvals-and-terminal/",component:d("/docs/chat/tools-approvals-and-terminal/","e6d"),exact:!0,sidebar:"docs"},{path:"/docs/computer-use/",component:d("/docs/computer-use/","630"),exact:!0,sidebar:"docs"},{path:"/docs/concepts/",component:d("/docs/concepts/","2c5"),exact:!0,sidebar:"docs"},{path:"/docs/concepts/background-workflows/",component:d("/docs/concepts/background-workflows/","342"),exact:!0,sidebar:"docs"},{path:"/docs/concepts/extensions-and-trust/",component:d("/docs/concepts/extensions-and-trust/","92a"),exact:!0,sidebar:"docs"},{path:"/docs/concepts/memory-knowledge-and-dream-cycle/",component:d("/docs/concepts/memory-knowledge-and-dream-cycle/","6d9"),exact:!0,sidebar:"docs"},{path:"/docs/concepts/profiles-goals-and-agents/",component:d("/docs/concepts/profiles-goals-and-agents/","d7b"),exact:!0,sidebar:"docs"},{path:"/docs/concepts/request-lifecycle/",component:d("/docs/concepts/request-lifecycle/","f9a"),exact:!0,sidebar:"docs"},{path:"/docs/configuration/models-and-providers/",component:d("/docs/configuration/models-and-providers/","d52"),exact:!0,sidebar:"docs"},{path:"/docs/designer/",component:d("/docs/designer/","ccf"),exact:!0,sidebar:"docs"},{path:"/docs/developer/",component:d("/docs/developer/","c8b"),exact:!0,sidebar:"docs"},{path:"/docs/extending/",component:d("/docs/extending/","413"),exact:!0,sidebar:"docs"},{path:"/docs/getting-started/",component:d("/docs/getting-started/","91c"),exact:!0,sidebar:"docs"},{path:"/docs/getting-started/first-launch/",component:d("/docs/getting-started/first-launch/","105"),exact:!0,sidebar:"docs"},{path:"/docs/getting-started/installation/",component:d("/docs/getting-started/installation/","73c"),exact:!0,sidebar:"docs"},{path:"/docs/guides/channels-and-voice/",component:d("/docs/guides/channels-and-voice/","6ae"),exact:!0},{path:"/docs/guides/designer-studio/",component:d("/docs/guides/designer-studio/","106"),exact:!0},{path:"/docs/guides/developer-studio/",component:d("/docs/guides/developer-studio/","3f5"),exact:!0},{path:"/docs/guides/skills-plugins-mcp/",component:d("/docs/guides/skills-plugins-mcp/","9cf"),exact:!0},{path:"/docs/guides/workflows/",component:d("/docs/guides/workflows/","343"),exact:!0,sidebar:"docs"},{path:"/docs/home/",component:d("/docs/home/","a96"),exact:!0},{path:"/docs/home/designer/",component:d("/docs/home/designer/","1fe"),exact:!0},{path:"/docs/home/developer/",component:d("/docs/home/developer/","1bd"),exact:!0},{path:"/docs/home/knowledge/",component:d("/docs/home/knowledge/","e15"),exact:!0},{path:"/docs/home/monitor/",component:d("/docs/home/monitor/","9a4"),exact:!0},{path:"/docs/home/workflows/",component:d("/docs/home/workflows/","813"),exact:!0},{path:"/docs/integrations/accounts/",component:d("/docs/integrations/accounts/","d97"),exact:!0,sidebar:"docs"},{path:"/docs/integrations/channels/",component:d("/docs/integrations/channels/","f51"),exact:!0,sidebar:"docs"},{path:"/docs/integrations/mcp/",component:d("/docs/integrations/mcp/","ef1"),exact:!0,sidebar:"docs"},{path:"/docs/integrations/plugins/",component:d("/docs/integrations/plugins/","942"),exact:!0,sidebar:"docs"},{path:"/docs/knowledge/",component:d("/docs/knowledge/","a50"),exact:!0,sidebar:"docs"},{path:"/docs/knowledge/provenance-repair/",component:d("/docs/knowledge/provenance-repair/","158"),exact:!0,sidebar:"docs"},{path:"/docs/knowledge/wiki-vault/",component:d("/docs/knowledge/wiki-vault/","61a"),exact:!0,sidebar:"docs"},{path:"/docs/mobile-native/",component:d("/docs/mobile-native/","942"),exact:!0,sidebar:"docs"},{path:"/docs/monitor/",component:d("/docs/monitor/","abe"),exact:!0,sidebar:"docs"},{path:"/docs/operations/",component:d("/docs/operations/","e5d"),exact:!0,sidebar:"docs"},{path:"/docs/privacy-safety/",component:d("/docs/privacy-safety/","0c1"),exact:!0,sidebar:"docs"},{path:"/docs/profiles-goals-agents/",component:d("/docs/profiles-goals-agents/","2fa"),exact:!0,sidebar:"docs"},{path:"/docs/reference/",component:d("/docs/reference/","353"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/",component:d("/docs/reference/generated/","4e7"),exact:!0},{path:"/docs/reference/generated/channels/",component:d("/docs/reference/generated/channels/","548"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/cli/",component:d("/docs/reference/generated/cli/","e2d"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/data-storage/",component:d("/docs/reference/generated/data-storage/","2ce"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/environment-and-config/",component:d("/docs/reference/generated/environment-and-config/","028"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/home-tabs/",component:d("/docs/reference/generated/home-tabs/","785"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/mcp/",component:d("/docs/reference/generated/mcp/","91e"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/plugins/",component:d("/docs/reference/generated/plugins/","7bd"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/providers/",component:d("/docs/reference/generated/providers/","cc7"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/safety-approvals/",component:d("/docs/reference/generated/safety-approvals/","93f"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/screenshots/",component:d("/docs/reference/generated/screenshots/","105"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/settings-controls/",component:d("/docs/reference/generated/settings-controls/","008"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/settings/",component:d("/docs/reference/generated/settings/","0fe"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/skills/",component:d("/docs/reference/generated/skills/","6cc"),exact:!0,sidebar:"docs"},{path:"/docs/reference/generated/tools/",component:d("/docs/reference/generated/tools/","3de"),exact:!0,sidebar:"docs"},{path:"/docs/settings/",component:d("/docs/settings/","c7e"),exact:!0,sidebar:"docs"},{path:"/docs/settings/accounts/",component:d("/docs/settings/accounts/","0c7"),exact:!0,sidebar:"docs"},{path:"/docs/settings/buddy/",component:d("/docs/settings/buddy/","7eb"),exact:!0,sidebar:"docs"},{path:"/docs/settings/channels/",component:d("/docs/settings/channels/","1f8"),exact:!0,sidebar:"docs"},{path:"/docs/settings/documents/",component:d("/docs/settings/documents/","4e3"),exact:!0,sidebar:"docs"},{path:"/docs/settings/knowledge/",component:d("/docs/settings/knowledge/","28b"),exact:!0,sidebar:"docs"},{path:"/docs/settings/mcp/",component:d("/docs/settings/mcp/","e34"),exact:!0,sidebar:"docs"},{path:"/docs/settings/models/",component:d("/docs/settings/models/","3a2"),exact:!0,sidebar:"docs"},{path:"/docs/settings/plugins/",component:d("/docs/settings/plugins/","5c7"),exact:!0,sidebar:"docs"},{path:"/docs/settings/preferences/",component:d("/docs/settings/preferences/","38b"),exact:!0,sidebar:"docs"},{path:"/docs/settings/providers/",component:d("/docs/settings/providers/","ef2"),exact:!0,sidebar:"docs"},{path:"/docs/settings/search/",component:d("/docs/settings/search/","199"),exact:!0,sidebar:"docs"},{path:"/docs/settings/skills/",component:d("/docs/settings/skills/","d62"),exact:!0,sidebar:"docs"},{path:"/docs/settings/system/",component:d("/docs/settings/system/","474"),exact:!0,sidebar:"docs"},{path:"/docs/settings/tracker/",component:d("/docs/settings/tracker/","75e"),exact:!0,sidebar:"docs"},{path:"/docs/settings/utilities/",component:d("/docs/settings/utilities/","693"),exact:!0,sidebar:"docs"},{path:"/docs/settings/voice/",component:d("/docs/settings/voice/","182"),exact:!0,sidebar:"docs"},{path:"/docs/skills/",component:d("/docs/skills/","56b"),exact:!0,sidebar:"docs"},{path:"/docs/troubleshooting/",component:d("/docs/troubleshooting/","58f"),exact:!0,sidebar:"docs"},{path:"/docs/ui-tour/",component:d("/docs/ui-tour/","feb"),exact:!0},{path:"/docs/voice-and-buddy/",component:d("/docs/voice-and-buddy/","86d"),exact:!0,sidebar:"docs"}]}]}]},{path:"/",component:d("/","e5f"),exact:!0},{path:"*",component:d("*")}]},6125(e,t,n){"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i({children:e}){const[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{n(!0)},[]),(0,o.jsx)(a.Provider,{value:t,children:e})}},177(e,t,n){"use strict";var r=n(6540),o=n(5338),a=n(545),i=n(4625),l=n(4784),s=n(8193);const c=[n(119),n(6134),n(6294),n(1043)];var u=n(8328),d=n(6347),f=n(2831),p=n(4848);function m({children:e}){return(0,p.jsx)(p.Fragment,{children:e})}var g=n(4563);const h=e=>e.defaultFormatter(e);function b({children:e}){return(0,p.jsx)(g.AL,{formatter:h,children:e})}function y({children:e}){return(0,p.jsx)(b,{children:e})}var v=n(5260),w=n(4586),k=n(6025),x=n(6342),S=n(5500),E=n(2131);var _=n(440),C=n(1463);function A(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),r=(0,E.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`))]})}function T({permalink:e}){const{siteConfig:{url:t}}=(0,w.A)(),n=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,d.zy)();return e+(0,_.Ks)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),r=e?`${t}${e}`:n;return(0,p.jsxs)(v.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:r}),(0,p.jsx)("link",{rel:"canonical",href:r})]})}function j(){const{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,x.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(v.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{})]}),n&&(0,p.jsx)(S.be,{image:n}),(0,p.jsx)(T,{}),(0,p.jsx)(A,{}),(0,p.jsx)(C.A,{tag:"default",locale:e}),(0,p.jsx)(v.A,{children:t.map((e,t)=>(0,p.jsx)("meta",{...e},t))})]})}const N=new Map;var P=n(6125),L=n(6988),R=n(205);function O(e,...t){const n=c.map(n=>{const r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}const D=function({children:e,location:t,previousLocation:n}){return(0,R.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;const n=e.pathname===t.pathname,r=e.hash===t.hash,o=e.search===t.search;if(n&&r&&!o)return;const{hash:a}=e;if(a){const e=decodeURIComponent(a.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),O("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function F(e){const t=Array.from(new Set([e,decodeURI(e)])).map(e=>(0,f.u)(u.A,e)).flat();return Promise.all(t.map(e=>e.route.component.preload?.()))}class M extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.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}),F(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,p.jsx)(D,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(d.qh,{location:t,render:()=>e})})}}const I=M,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 = '__docusaurus-base-url-issue-banner-container';\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(/!0===e.exact))return N.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return N.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,p.jsx)(I,{location:e,children:W})}function K(){return(0,p.jsx)(H.A,{children:(0,p.jsx)(L.l,{children:(0,p.jsxs)(P.x,{children:[(0,p.jsx)(m,{children:(0,p.jsxs)(y,{children:[(0,p.jsx)(q,{}),(0,p.jsx)(j,{}),(0,p.jsx)(U,{}),(0,p.jsx)(Q,{})]})}),(0,p.jsx)(V,{})]})})})}var Y=n(4054);const X=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{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 o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.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 Z=n(6921);const J=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!J.has(e))(e))return!1;J.add(e);const t=(0,f.u)(u.A,e).flatMap(e=>{return t=e.route.path,Object.entries(Y).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,Z.A)(e)));var t});return Promise.all(t.map(e=>{const t=n.gca(e);return t&&!t.includes("undefined")?X(t).catch(()=>{}):Promise.resolve()}))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),F(e))},re=Object.freeze(ne);function oe({children:e}){return"hash"===l.default.future.experimental_router?(0,p.jsx)(i.I9,{children:e}):(0,p.jsx)(i.Kd,{children:e})}const ae=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(a.vd,{children:(0,p.jsx)(oe,{children:(0,p.jsx)(K,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ae)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};F(window.location.pathname).then(()=>{(0,r.startTransition)(i)})}},6988(e,t,n){"use strict";n.d(t,{o:()=>d,l:()=>f});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"index","docs":[{"id":"app-shell/agent-profiles","path":"/docs/app-shell/agent-profiles"},{"id":"app-shell/navigation","path":"/docs/app-shell/navigation","sidebar":"docs"},{"id":"chat/index","path":"/docs/chat/","sidebar":"docs"},{"id":"chat/model-picker","path":"/docs/chat/model-picker","sidebar":"docs"},{"id":"chat/tools-approvals-and-terminal","path":"/docs/chat/tools-approvals-and-terminal","sidebar":"docs"},{"id":"computer-use/index","path":"/docs/computer-use/","sidebar":"docs"},{"id":"concepts/background-workflows","path":"/docs/concepts/background-workflows","sidebar":"docs"},{"id":"concepts/extensions-and-trust","path":"/docs/concepts/extensions-and-trust","sidebar":"docs"},{"id":"concepts/index","path":"/docs/concepts/","sidebar":"docs"},{"id":"concepts/memory-knowledge-and-dream-cycle","path":"/docs/concepts/memory-knowledge-and-dream-cycle","sidebar":"docs"},{"id":"concepts/profiles-goals-and-agents","path":"/docs/concepts/profiles-goals-and-agents","sidebar":"docs"},{"id":"concepts/request-lifecycle","path":"/docs/concepts/request-lifecycle","sidebar":"docs"},{"id":"configuration/models-and-providers","path":"/docs/configuration/models-and-providers","sidebar":"docs"},{"id":"designer/index","path":"/docs/designer/","sidebar":"docs"},{"id":"developer/index","path":"/docs/developer/","sidebar":"docs"},{"id":"extending/index","path":"/docs/extending/","sidebar":"docs"},{"id":"getting-started/first-launch","path":"/docs/getting-started/first-launch","sidebar":"docs"},{"id":"getting-started/index","path":"/docs/getting-started/","sidebar":"docs"},{"id":"getting-started/installation","path":"/docs/getting-started/installation","sidebar":"docs"},{"id":"guides/channels-and-voice","path":"/docs/guides/channels-and-voice"},{"id":"guides/designer-studio","path":"/docs/guides/designer-studio"},{"id":"guides/developer-studio","path":"/docs/guides/developer-studio"},{"id":"guides/skills-plugins-mcp","path":"/docs/guides/skills-plugins-mcp"},{"id":"guides/workflows","path":"/docs/guides/workflows","sidebar":"docs"},{"id":"home/designer","path":"/docs/home/designer"},{"id":"home/developer","path":"/docs/home/developer"},{"id":"home/index","path":"/docs/home/"},{"id":"home/knowledge","path":"/docs/home/knowledge"},{"id":"home/monitor","path":"/docs/home/monitor"},{"id":"home/workflows","path":"/docs/home/workflows"},{"id":"index","path":"/docs/","sidebar":"docs"},{"id":"integrations/accounts","path":"/docs/integrations/accounts","sidebar":"docs"},{"id":"integrations/channels","path":"/docs/integrations/channels","sidebar":"docs"},{"id":"integrations/mcp","path":"/docs/integrations/mcp","sidebar":"docs"},{"id":"integrations/plugins","path":"/docs/integrations/plugins","sidebar":"docs"},{"id":"knowledge/index","path":"/docs/knowledge/","sidebar":"docs"},{"id":"knowledge/provenance-repair","path":"/docs/knowledge/provenance-repair","sidebar":"docs"},{"id":"knowledge/wiki-vault","path":"/docs/knowledge/wiki-vault","sidebar":"docs"},{"id":"mobile-native/index","path":"/docs/mobile-native/","sidebar":"docs"},{"id":"monitor/index","path":"/docs/monitor/","sidebar":"docs"},{"id":"operations/index","path":"/docs/operations/","sidebar":"docs"},{"id":"privacy-safety/index","path":"/docs/privacy-safety/","sidebar":"docs"},{"id":"profiles-goals-agents/index","path":"/docs/profiles-goals-agents/","sidebar":"docs"},{"id":"reference/generated/channels","path":"/docs/reference/generated/channels","sidebar":"docs"},{"id":"reference/generated/cli","path":"/docs/reference/generated/cli","sidebar":"docs"},{"id":"reference/generated/data-storage","path":"/docs/reference/generated/data-storage","sidebar":"docs"},{"id":"reference/generated/environment-and-config","path":"/docs/reference/generated/environment-and-config","sidebar":"docs"},{"id":"reference/generated/home-tabs","path":"/docs/reference/generated/home-tabs","sidebar":"docs"},{"id":"reference/generated/index","path":"/docs/reference/generated/"},{"id":"reference/generated/mcp","path":"/docs/reference/generated/mcp","sidebar":"docs"},{"id":"reference/generated/plugins","path":"/docs/reference/generated/plugins","sidebar":"docs"},{"id":"reference/generated/providers","path":"/docs/reference/generated/providers","sidebar":"docs"},{"id":"reference/generated/safety-approvals","path":"/docs/reference/generated/safety-approvals","sidebar":"docs"},{"id":"reference/generated/screenshots","path":"/docs/reference/generated/screenshots","sidebar":"docs"},{"id":"reference/generated/settings","path":"/docs/reference/generated/settings","sidebar":"docs"},{"id":"reference/generated/settings-controls","path":"/docs/reference/generated/settings-controls","sidebar":"docs"},{"id":"reference/generated/skills","path":"/docs/reference/generated/skills","sidebar":"docs"},{"id":"reference/generated/tools","path":"/docs/reference/generated/tools","sidebar":"docs"},{"id":"reference/index","path":"/docs/reference/","sidebar":"docs"},{"id":"settings/accounts","path":"/docs/settings/accounts","sidebar":"docs"},{"id":"settings/buddy","path":"/docs/settings/buddy","sidebar":"docs"},{"id":"settings/channels","path":"/docs/settings/channels","sidebar":"docs"},{"id":"settings/documents","path":"/docs/settings/documents","sidebar":"docs"},{"id":"settings/index","path":"/docs/settings/","sidebar":"docs"},{"id":"settings/knowledge","path":"/docs/settings/knowledge","sidebar":"docs"},{"id":"settings/mcp","path":"/docs/settings/mcp","sidebar":"docs"},{"id":"settings/models","path":"/docs/settings/models","sidebar":"docs"},{"id":"settings/plugins","path":"/docs/settings/plugins","sidebar":"docs"},{"id":"settings/preferences","path":"/docs/settings/preferences","sidebar":"docs"},{"id":"settings/providers","path":"/docs/settings/providers","sidebar":"docs"},{"id":"settings/search","path":"/docs/settings/search","sidebar":"docs"},{"id":"settings/skills","path":"/docs/settings/skills","sidebar":"docs"},{"id":"settings/system","path":"/docs/settings/system","sidebar":"docs"},{"id":"settings/tracker","path":"/docs/settings/tracker","sidebar":"docs"},{"id":"settings/utilities","path":"/docs/settings/utilities","sidebar":"docs"},{"id":"settings/voice","path":"/docs/settings/voice","sidebar":"docs"},{"id":"skills/index","path":"/docs/skills/","sidebar":"docs"},{"id":"troubleshooting/index","path":"/docs/troubleshooting/","sidebar":"docs"},{"id":"ui-tour/index","path":"/docs/ui-tour/"},{"id":"voice-and-buddy/index","path":"/docs/voice-and-buddy/","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/","label":"index"}}}}],"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","translate":false,"url":"https://row-bot.ai","baseUrl":"/"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.10.1","siteVersion":"0.1.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.1"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.1"}}}');var c=n(4848);const u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(u);function f({children:e}){return(0,c.jsx)(d.Provider,{value:u,children:e})}},7489(e,t,n){"use strict";n.d(t,{A:()=>g});var r=n(6540),o=n(8193),a=n(5260),i=n(440),l=n(1656),s=n(3102),c=n(4848);function u({error:e,tryAgain:t}){return(0,c.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,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:e})]})}function d({error:e}){const t=(0,i.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,c.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,c.jsx)(f,{children:(0,c.jsxs)(g,{fallback:()=>(0,c.jsx)(u,{error:e,tryAgain:t}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(l.A,{children:(0,c.jsx)(u,{error:e,tryAgain:t})})]})})}const m=e=>(0,c.jsx)(p,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.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??m)(e)}return e??null}}},8193(e,t,n){"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260(e,t,n){"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774(e,t,n){"use strict";n.d(t,{A:()=>p});var r=n(6540),o=n(4625),a=n(440),i=n(4586),l=n(6654),s=n(8193),c=n(3427),u=n(6025),d=n(4848);function f({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:g=!0,...h},b){const{siteConfig:y}=(0,i.A)(),{trailingSlash:v,baseUrl:w}=y,k=y.future.experimental_router,{withBaseUrl:x}=(0,u.hH)(),S=(0,c.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(b,()=>E.current);const _=t||n;const C=(0,l.A)(_),A=_?.replace("pathname://","");let T=void 0!==A?(j=A,g&&(e=>e.startsWith("/"))(j)?x(j):j):void 0;var j;"hash"===k&&T?.startsWith("./")&&(T=T?.slice(1)),T&&C&&(T=(0,a.Ks)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),P=e?o.k2:o.N_,L=s.A.canUseIntersectionObserver,R=(0,r.useRef)(void 0),O=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)(()=>(!L&&C&&s.A.canUseDOM&&null!=T&&window.docusaurus.prefetch(T),()=>{L&&R.current&&R.current.disconnect()}),[R,T,L,C]);const D=T?.startsWith("#")??!1,F=!h.target||"_self"===h.target,M=!T||!C||!F||D&&"hash"!==k;m||!D&&M||S.collectLink(T),h.id&&S.collectAnchor(h.id);const I={};return M?(0,d.jsx)("a",{ref:E,href:T,..._&&!C&&{target:"_blank",rel:"noopener noreferrer"},...h,...I}):(0,d.jsx)(P,{...h,onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,L&&e&&C&&(R.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))})}),R.current.observe(e))},to:T,...e&&{isActive:p,activeClassName:f},...I})}const p=r.forwardRef(f)},418(e,t,n){"use strict";n.d(t,{A:()=>r});const r=()=>null;n.dn(r)},1312(e,t,n){"use strict";n.d(t,{A:()=>c,T:()=>s});var r=n(6540),o=n(4848);function a(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(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return a(l({message:e,id:t}),n)}function c({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),new Error("The Docusaurus component only accept simple string values");const r=l({message:e,id:t});return(0,o.jsx)(o.Fragment,{children:a(r,n)})}},7065(e,t,n){"use strict";n.d(t,{W:()=>r});const r="default"},6654(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:e}=(0,o.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)((e,r)=>function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:o=!1}={},router:i}){if(!n||n.startsWith("#")||(0,a.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i]);return{withBaseUrl:l}}function l(e,t={}){const{withBaseUrl:n}=i();return n(e,t)}},3427(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function a(){return(0,r.useContext)(o)}},4586(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6803(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(3102);function a(){const e=r.useContext(o.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6921(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach(([n,o])=>{const a=r?`${r}.${n}`:n;var i;"object"==typeof(i=o)&&i&&Object.keys(i).length>0?e(o,a):t[a]=o})}(e),t}},3102(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i({children:e,value:t}){const n=r.useContext(a),i=(0,r.useMemo)(()=>function({parent:e,value:t}){if(!e){if(!t)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in t))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return t}const n={...e.data,...t?.data};return{plugin:e.plugin,data:n}}({parent:n,value:t}),[n,t]);return(0,o.jsx)(a.Provider,{value:i,children:e})}},3886(e,t,n){"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),l=n(679),s=n(9532),c=n(4848);const u=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,l.Wf)(u(e),{persistence:t}).set(n)},f=(e,t)=>(0,l.Wf)(u(e),{persistence:t}).get(),p=(e,t)=>{(0,l.Wf)(u(e),{persistence:t}).del()};const m=r.createContext(null);function g(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)(()=>Object.keys(e),[e]),[a,l]=(0,r.useState)(()=>(e=>Object.fromEntries(e.map(e=>[e,{preferredVersionName:null}])))(n));(0,r.useEffect)(()=>{l(function({pluginIds:e,versionPersistence:t,allDocsData:n}){function r(e){const r=f(e,t);return n[e].versions.some(e=>e.name===r)?{preferredVersionName:r}:(p(e,t),{preferredVersionName:null})}return Object.fromEntries(e.map(e=>[e,r(e)]))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]);return[a,(0,r.useMemo)(()=>({savePreferredVersion:function(e,n){d(e,t,n),l(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}function h({children:e}){const t=g();return(0,c.jsx)(m.Provider,{value:t,children:e})}function b({children:e}){return(0,c.jsx)(h,{children:e})}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e=a.W){const t=(0,o.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,r.useCallback)(t=>{i.savePreferredVersion(e,t)},[i,e])}}},609(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s({children:e,name:t,items:n}){const o=(0,r.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,a.jsx)(l.Provider,{value:o,children:e})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},4718(e,t,n){"use strict";n.d(t,{Nr:()=>f,w8:()=>m,B5:()=>x,Vd:()=>v,QB:()=>k,fW:()=>w,OF:()=>y,Y:()=>h});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),l=n(9169);function s(e){return Array.from(new Set(e))}var c=n(3886),u=n(3025),d=n(609);function f(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=f(t);if(e)return e}}(e):void 0:e.href}const p=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function m(e,t){return"link"===e.type?p(e.href,t):"category"===e.type&&(p(e.href,t)||((e,t)=>e.some(e=>m(e,t)))(e.items,t))}function g(e,t){switch(e.type){case"category":return m(e,t)||void 0!==e.href&&!e.linkUnlisted||e.items.some(e=>g(e,t));case"link":return!e.unlisted||m(e,t);default:return!0}}function h(e,t){return(0,r.useMemo)(()=>e.filter(e=>g(e,t)),[e,t])}function b({sidebarItems:e,pathname:t,onlyCategories:n=!1}){const r=[];return function e(o){for(const a of o)if("category"===a.type){if((0,l.ys)(a.href,t)||e(a.items))return r.unshift(a),!0}else if("link"===a.type&&a.docId&&(0,l.ys)(a.href,t))return n||r.unshift(a),!0;return!1}(e),r}function y(){const e=(0,d.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?b({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,c.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)(()=>s([t,n,o].filter(Boolean)),[t,n,o])}function w(e,t){const n=v(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 k(e,t){const n=v(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- ${s(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function x({route:e}){const t=(0,o.zy)(),n=(0,u.r)(),r=e.routes,i=r.find(e=>(0,o.B6)(t.pathname,e));if(!i)return null;const l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,a.v)(r),sidebarName:l,sidebarItems:s}}},3025(e,t,n){"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function l({children:e,version:t}){return(0,a.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},4070(e,t,n){"use strict";n.d(t,{zK:()=>g,vT:()=>f,Gy:()=>u,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>p});var r=n(6347),o=n(4586),a=n(7065);function i(e,t={}){const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find(e=>e.isLast);function s(e,t){const n=function(e,t){return[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1}))}(e,t),o=n?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1}));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach(e=>{e.docs.forEach(r=>{r.id===t&&(n[e.name]=r)})}),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>{try{return function(e,t=a.W,n={}){const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function f(e={}){const t=u(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){const o=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&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 a}(t,n,e)}function p(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){const e=window.setTimeout(()=>{o().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134(e,t,n){"use strict";var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t,a=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==a&&(globalThis.Prism=e)}(r.My)},4608(e,t,n){"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),o=n(1312),a=n(3535),i=n(8774),l=n(3427),s=n(4848);function c({as:e,id:t,...n}){const c=(0,l.A)(),u=(0,a.v)(t);if("h1"===e||!t)return(0,s.jsx)(e,{...n,id:void 0});c.collectAnchor(t);const d=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,s.jsxs)(e,{...n,className:(0,r.A)("anchor",u,n.className),id:t,children:[n.children,(0,s.jsx)(i.A,{className:"hash-link",to:`#${t}`,"aria-label":d,title:d,translate:"no",children:"\u200b"})]})}},3186(e,t,n){"use strict";n.d(t,{A:()=>i});n(6540);var r=n(1312);const o="iconExternalLink_nPIU";var a=n(4848);function i({width:e=13.5,height:t=13.5}){return(0,a.jsx)("svg",{width:e,height:t,"aria-label":(0,r.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:o,children:(0,a.jsx)("use",{href:"#theme-svg-external-link"})})}},1656(e,t,n){"use strict";n.d(t,{A:()=>Pt});var r=n(6540),o=n(4164),a=n(7489),i=n(5500),l=n(6347),s=n(1312),c=n(5062),u=n(4848);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,l.W6)(),n=(0,r.useCallback)(e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}const m=(0,s.T)({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 g(e){const t=e.children??m,{containerRef:n,onClick:r}=p();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559);const b="skipToContent_fXgn";function y(){return(0,u.jsx)(g,{className:b})}var v=n(6342),w=n(5041);function k({width:e=21,height:t=21,color:n="currentColor",strokeWidth:r=1.2,className:o,...a}){return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...a,children:(0,u.jsx)("g",{stroke:n,strokeWidth:r,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const x="closeButton_CVFx";function S(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",x,e.className),children:(0,u.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const E="content_knG7";function _(e){const{announcementBar:t}=(0,v.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(E,e.className),dangerouslySetInnerHTML:{__html:n}})}const C="announcementBar_mb4j",A="announcementBarPlaceholder_vyr4",T="announcementBarClose_gvF7",j="announcementBarContent_xLdY";function N(){const{announcementBar:e}=(0,v.p)(),{isActive:t,close:n}=(0,w.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:i}=e;return(0,u.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,C),style:{backgroundColor:r,color:a},role:"banner",children:[i&&(0,u.jsx)("div",{className:A}),(0,u.jsx)(_,{className:j}),i&&(0,u.jsx)(S,{onClick:n,className:T})]})}var P=n(2069),L=n(3104);var R=n(9532),O=n(5600);const D=r.createContext(null);function F({children:e}){const t=function(){const e=(0,P.M)(),t=(0,O.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,R.ZC)(a);return(0,r.useEffect)(()=>{a&&!i&&o(!0)},[a,i]),(0,r.useEffect)(()=>{a?e.shown||o(!0):o(!1)},[e.shown,a]),(0,r.useMemo)(()=>[n,o],[n])}();return(0,u.jsx)(D.Provider,{value:t,children:e})}function M(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(D);if(!e)throw new R.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)(()=>n(!1),[n]),a=(0,O.YL)();return(0,r.useMemo)(()=>({shown:t,hide:o,content:M(a)}),[o,a,t])}function z(e){return parseInt(r.version.split(".")[0],10)<19?{inert:e?"":void 0}:{inert:e}}function B({children:e,inert:t}){return(0,u.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...z(t),children:e})}function $({header:e,primaryMenu:t,secondaryMenu:n}){const{shown:r}=I();return(0,u.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":r}),children:[(0,u.jsx)(B,{inert:r,children:t}),(0,u.jsx)(B,{inert:!r,children:n})]})]})}var U=n(5293),q=n(2303);function H(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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 G(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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"})})}function V(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}const W="toggle_vylO",Q="toggleButton_gllP",K="toggleIcon_g3eP",Y="systemToggleIcon_QzmC",X="lightToggleIcon_pyhR",Z="darkToggleIcon_wfgR",J="toggleButtonDisabled_aARS";function ee(e){switch(e){case null:return(0,s.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw new Error(`unexpected color mode ${e}`)}}function te(e){return(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:ee(e)})}function ne(){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(H,{"aria-hidden":!0,className:(0,o.A)(K,X)}),(0,u.jsx)(G,{"aria-hidden":!0,className:(0,o.A)(K,Z)}),(0,u.jsx)(V,{"aria-hidden":!0,className:(0,o.A)(K,Y)})]})}function re({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:r,onChange:a}){const i=(0,q.A)();return(0,u.jsx)("div",{className:(0,o.A)(W,e),children:(0,u.jsx)("button",{className:(0,o.A)("clean-btn",Q,!i&&J,t),type:"button",onClick:()=>a(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw new Error(`unexpected color mode ${e}`)}}(r,n)),disabled:!i,title:ee(r),"aria-label":te(r),children:(0,u.jsx)(ne,{})})})}const oe=r.memo(re),ae="darkNavbarColorModeToggle_X3D1";function ie({className:e}){const t=(0,v.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:r}=(0,v.p)().colorMode,{colorModeChoice:o,setColorMode:a}=(0,U.G)();return n?null:(0,u.jsx)(oe,{className:e,buttonClassName:"dark"===t?ae:void 0,respectPrefersColorScheme:r,value:o,onChange:a})}var le=n(3465);function se(){return(0,u.jsx)(le.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function ce(){const e=(0,P.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({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,u.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function ue(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(se,{}),(0,u.jsx)(ie,{className:"margin-right--md"}),(0,u.jsx)(ce,{})]})}var de=n(8774),fe=n(6025),pe=n(6654);function me(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ge=n(3186);function he({activeBasePath:e,activeBaseRegex:t,to:n,href:r,label:o,html:a,isDropdownLink:i,prependBaseUrlToHref:l,...s}){const c=(0,fe.Ay)(n),d=(0,fe.Ay)(e),f=(0,fe.Ay)(r,{forcePrependBaseUrl:!0}),p=o&&r&&!(0,pe.A)(r),m=a?{dangerouslySetInnerHTML:{__html:a}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,p&&(0,u.jsx)(ge.A,{...i&&{width:12,height:12}})]})};return r?(0,u.jsx)(de.A,{href:l?f:r,...s,...m}):(0,u.jsx)(de.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?me(t,n.pathname):n.pathname.startsWith(d)},...s,...m})}function be({className:e,isDropdownItem:t,...n}){return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(he,{className:(0,o.A)("menu__link",e),...n})})}function ye({className:e,isDropdownItem:t=!1,...n}){const r=(0,u.jsx)(he,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,u.jsx)("li",{children:r}):r}function ve({mobile:e=!1,position:t,...n}){const r=e?be:ye;return(0,u.jsx)(r,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var we=n(1422),ke=n(9169),xe=n(4586);const Se="dropdownNavbarItemMobile_J0Sd";function Ee(e,t){return e.some(e=>function(e,t){return!!(0,ke.ys)(e.to,t)||!!me(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t))}function _e({collapsed:e,onClick:t}){return(0,u.jsx)("button",{"aria-label":e?(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function Ce({items:e,className:t,position:n,onClick:a,...i}){const s=function(){const{siteConfig:{baseUrl:e}}=(0,xe.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),c=(0,ke.ys)(i.to,s),d=Ee(e,s),{collapsed:f,toggleCollapsed:p}=function({active:e}){const{collapsed:t,toggleCollapsed:n,setCollapsed:o}=(0,we.u)({initialState:()=>!e});return(0,r.useEffect)(()=>{e&&o(!1)},[e,o]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),m=i.to?void 0:"#";return(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,u.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,u.jsx)(he,{role:"button",className:(0,o.A)(Se,"menu__link menu__link--sublist",t),href:m,...i,onClick:e=>{"#"===m&&e.preventDefault(),p()},children:i.children??i.label}),(0,u.jsx)(_e,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,u.jsx)(we.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,r.createElement)(qe,{mobile:!0,isDropdownItem:!0,onClick:a,activeClassName:"menu__link--active",...e,key:t}))})]})}function Ae({items:e,position:t,className:n,onClick:a,...i}){const l=(0,r.useRef)(null),[s,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&c(!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,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":s}),children:[(0,u.jsx)(he,{"aria-haspopup":"true","aria-expanded":s,role:"button",href:i.to?void 0:"#",className:(0,o.A)("navbar__link",n),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),c(!s))},children:i.children??i.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,r.createElement)(qe,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function Te({mobile:e=!1,...t}){const n=e?Ce:Ae;return(0,u.jsx)(n,{...t})}var je=n(2131),Ne=n(7485);function Pe({width:e=20,height:t=20,...n}){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,u.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 Le="iconLanguage_nlXk";function Re(){const{siteConfig:e,i18n:{localeConfigs:t}}=(0,xe.A)(),n=(0,je.o)(),r=(0,Ne.Hl)(e=>e.location.search),o=(0,Ne.Hl)(e=>e.location.hash),a=e=>{const n=t[e];if(!n)throw new Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{const l=(0,Ne.jy)([r,i.queryString],"append");return`${(t=>a(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0}))(t)}${l}${o}`},getLabel:e=>a(e).label,getLang:e=>a(e).htmlLang}}var Oe=n(418);const De="navbarSearchContainer_Bca1";function Fe({children:e,className:t}){return(0,u.jsx)("div",{className:(0,o.A)(t,De),children:e})}var Me=n(4070),Ie=n(4718);var ze=n(3886);function Be({docsPluginId:e,configs:t}){return function(e,t){if(t){const n=new Map(e.map(e=>[e.name,e])),r=(t,r)=>{const o=n.get(t);if(!o)throw new Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config.\nAvailable version names:\n- ${e.map(e=>`${e.name}`).join("\n- ")}`);return{version:o,label:r?.label??o.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}return e.map(e=>({version:e,label:e.label}))}((0,Me.jh)(e),t)}function $e(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find(t=>t.id===e.mainDocId)}(e)}const Ue={default:ve,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:r,...o}){const a=Re(),{i18n:{currentLocale:i,locales:l}}=(0,xe.A)(),c=[...t,...l.map(t=>({label:a.getLabel(t),lang:a.getLang(t),to:a.getURL(t,{queryString:r}),target:"_self",autoAddBaseUrl:!1,className:t===i?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):a.getLabel(i);return(0,u.jsx)(Te,{...o,mobile:e,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Pe,{className:Le}),d]}),items:c})},search:function({mobile:e,className:t}){return e?null:(0,u.jsx)(Fe,{className:t,children:(0,u.jsx)(Oe.A,{})})},dropdown:Te,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:r=!1}){const a=r?"li":"div";return(0,u.jsx)(a,{className:(0,o.A)({navbar__item:!n&&!r,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,Me.zK)(n),a=(0,Ie.QB)(e,n),i=o?.path===a?.path;return null===a||a.unlisted&&!i?null:(0,u.jsx)(ve,{exact:!0,...r,isActive:()=>i||!!o?.sidebar&&o.sidebar===a.sidebar,label:t??a.id,to:a.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,Me.zK)(n),a=(0,Ie.fW)(e,n).link;if(!a)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,u.jsx)(ve,{exact:!0,...r,isActive:()=>o?.sidebar===e,label:t??a.label,to:a.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...r}){const o=(0,Ie.Vd)(n)[0],a=e??o.label,i=t??(e=>e.docs.find(t=>t.id===e.mainDocId))(o).path;return(0,u.jsx)(ve,{...r,label:a,to:i})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:r,dropdownItemsAfter:o,versions:a,...i}){const l=(0,Ne.Hl)(e=>e.location.search),c=(0,Ne.Hl)(e=>e.location.hash),d=(0,Me.zK)(t),{savePreferredVersionName:f}=(0,ze.g1)(t),p=Be({docsPluginId:t,configs:a}),m=function({docsPluginId:e,versionItems:t}){return(0,Ie.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:p}),g=[...r,...p.map(function({version:e,label:t}){return{label:t,to:`${$e(e,d).path}${l}${c}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}}),...o],h=e&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,b=e&&g.length>1?void 0:$e(m.version,d).path;return g.length<=1?(0,u.jsx)(ve,{...i,mobile:e,label:h,to:b,isActive:n?()=>!1:void 0}):(0,u.jsx)(Te,{...i,mobile:e,label:h,to:b,items:g,isActive:n?()=>!1:void 0})}};function qe({type:e,...t}){const n=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(e,t),r=Ue[n];if(!r)throw new Error(`No NavbarItem component found for type "${e}".`);return(0,u.jsx)(r,{...t})}function He(){const e=(0,P.M)(),t=(0,v.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,r.createElement)(qe,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function Ge(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(s.A,{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 Ve(){const e=0===(0,v.p)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function We(){const e=(0,P.M)();return function(e=!0){(0,r.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender?(0,u.jsx)($,{header:(0,u.jsx)(ue,{}),primaryMenu:(0,u.jsx)(He,{}),secondaryMenu:(0,u.jsx)(Ve,{})}):null}const Qe="navbarHideable_m1mJ",Ke="navbarHidden_jGov";function Ye(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Xe({children:e}){const{navbar:{hideOnScroll:t,style:n}}=(0,v.p)(),a=(0,P.M)(),{navbarRef:i,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)(e=>{null!==e&&(a.current=e.getBoundingClientRect().height)},[]);return(0,L.Mq)(({scrollY:t},r)=>{if(!e)return;if(t=i?n(!1):t+s{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,u.jsxs)("nav",{ref:i,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&[Qe,!l&&Ke],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":a.shown}),children:[e,(0,u.jsx)(Ye,{onClick:a.toggle}),(0,u.jsx)(We,{})]})}var Ze=n(440);const Je="errorBoundaryError_a6uf";function et(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(s.A,{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 tt({error:e}){const t=(0,Ze.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Je,children:t})}class nt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function rt({width:e=30,height:t=30,className:n,...r}){return(0,u.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...r,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function ot(){const{toggle:e,shown:t}=(0,P.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,s.T)({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,u.jsx)(rt,{})})}const at="colorModeToggle_DEke";function it({items:e}){return(0,u.jsx)(u.Fragment,{children:e.map((e,t)=>(0,u.jsx)(nt,{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,u.jsx)(qe,{...e})},t))})}function lt({left:e,right:t}){return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,u.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function st(){const e=(0,P.M)(),t=(0,v.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,u.jsx)(lt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(ot,{}),(0,u.jsx)(se,{}),(0,u.jsx)(it,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(it,{items:r}),(0,u.jsx)(ie,{className:at}),!o&&(0,u.jsx)(Fe,{children:(0,u.jsx)(Oe.A,{})})]})})}function ct(){return(0,u.jsx)(Xe,{children:(0,u.jsx)(st,{})})}function ut({item:e}){const{to:t,href:n,label:r,prependBaseUrlToHref:a,className:i,...l}=e,s=(0,fe.Ay)(t),c=(0,fe.Ay)(n,{forcePrependBaseUrl:!0});return(0,u.jsxs)(de.A,{className:(0,o.A)("footer__link-item",i),...n?{href:a?c:n}:{to:s},...l,children:[r,n&&!(0,pe.A)(n)&&(0,u.jsx)(ge.A,{})]})}function dt({item:e}){return e.html?(0,u.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(ut,{item:e})},e.href??e.to)}function ft({column:e}){return(0,u.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,u.jsx)("div",{className:"footer__title",children:e.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,u.jsx)(dt,{item:e},t))})]})}function pt({columns:e}){return(0,u.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,u.jsx)(ft,{column:e},t))})}function mt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function gt({item:e}){return e.html?(0,u.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,u.jsx)(ut,{item:e})}function ht({links:e}){return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(gt,{item:t}),e.length!==n+1&&(0,u.jsx)(mt,{})]},n))})})}function bt({links:e}){return function(e){return"title"in e[0]}(e)?(0,u.jsx)(pt,{columns:e}):(0,u.jsx)(ht,{links:e})}var yt=n(1122);const vt="footerLogoLink_BH7S";function wt({logo:e}){const{withBaseUrl:t}=(0,fe.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,u.jsx)(yt.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function kt({logo:e}){return e.href?(0,u.jsx)(de.A,{href:e.href,className:vt,target:e.target,children:(0,u.jsx)(wt,{logo:e})}):(0,u.jsx)(wt,{logo:e})}function xt({copyright:e}){return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function St({style:e,links:t,logo:n,copyright:r}){return(0,u.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[t,(n||r)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:n}),r]})]})})}function Et(){const{footer:e}=(0,v.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(St,{style:o,links:n&&n.length>0&&(0,u.jsx)(bt,{links:n}),logo:r&&(0,u.jsx)(kt,{logo:r}),copyright:t&&(0,u.jsx)(xt,{copyright:t})})}const _t=r.memo(Et),Ct=(0,R.fM)([U.a,w.o,L.Tv,ze.VQ,i.Jx,function({children:e}){return(0,u.jsx)(O.y_,{children:(0,u.jsx)(P.e,{children:(0,u.jsx)(F,{children:e})})})}]);function At({children:e}){return(0,u.jsx)(Ct,{children:e})}var Tt=n(4608);function jt({error:e,tryAgain:t}){return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Tt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(et,{onClick:t,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(tt,{error:e})})]})})})}const Nt="mainWrapper_z2l0";function Pt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,u.jsxs)(At,{children:[(0,u.jsx)(i.be,{title:l,description:s}),(0,u.jsx)(y,{}),(0,u.jsx)(N,{}),(0,u.jsx)(ct,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,Nt,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(jt,{...e}),children:t})}),!n&&(0,u.jsx)(_t,{})]})}},3465(e,t,n){"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),l=n(1122),s=n(4848);function c({logo:e,alt:t,imageClassName:n}){const r={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},a=(0,s.jsx)(l.A,{className:e.className,sources:r,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,s.jsx)("div",{className:n,children:a}):a}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,o.Ay)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:p,...f,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:g,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},1463(e,t,n){"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a({locale:e,version:t,tag:n}){const a=e;return(0,o.jsxs)(r.A,{children:[e&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,o.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:language",content:a}),t&&(0,o.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},1122(e,t,n){"use strict";n.d(t,{A:()=>u});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function c({className:e,children:t}){const n=(0,a.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{const a=t({theme:n,className:(0,o.A)(e,l.themedComponent,l[`themedComponent--${n}`])});return(0,s.jsx)(r.Fragment,{children:a},n)})})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(c,{className:n,children:({theme:e,className:n})=>(0,s.jsx)("img",{src:t[e],alt:r,className:n,...o})})}},1422(e,t,n){"use strict";n.d(t,{N:()=>m,u:()=>l});var r=n(6540),o=n(205),a=n(3109),i=n(4848);function l({initialState:e}){const[t,n]=(0,r.useState)(e??!1),o=(0,r.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:o}}const s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function u(e,t){const n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({collapsibleRef:e,collapsed:t,animation:n}){const o=(0,r.useRef)(!1);(0,r.useEffect)(()=>{const r=e.current;function i(){const e=r.scrollHeight,t=n?.duration??function(e){if((0,a.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(e);return{transition:`height ${t}ms ${n?.easing??"ease-in-out"}`,height:`${e}px`}}function l(){const e=i();r.style.transition=e.transition,r.style.height=e.height}if(!o.current)return u(r,t),void(o.current=!0);return r.style.willChange="height",function(){const e=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{r.style.height=s.height,r.style.overflow=s.overflow})):(r.style.display="block",requestAnimationFrame(()=>{l()}))});return()=>cancelAnimationFrame(e)}()},[e,t,n])}function f({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:a,className:l}){const s=(0,r.useRef)(null);return d({collapsibleRef:s,collapsed:t,animation:o}),(0,i.jsx)(e,{ref:s,onTransitionEnd:e=>{"height"===e.propertyName&&(u(s.current,t),a?.(t))},className:l,children:n})}function p({collapsed:e,...t}){const[n,a]=(0,r.useState)(!e),[l,s]=(0,r.useState)(e);return(0,o.A)(()=>{e||a(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,i.jsx)(f,{...t,collapsed:l}):null}function m({lazy:e,...t}){const n=e?p:f;return(0,i.jsx)(n,{...t})}},5041(e,t,n){"use strict";n.d(t,{M:()=>g,o:()=>m});var r=n(6540),o=n(2303),a=n(679),i=n(9532),l=n(6342),s=n(4848);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),f=e=>c.set(String(e)),p=r.createContext(null);function m({children:e}){const t=function(){const{announcementBar:e}=(0,l.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)(()=>!!t&&d());(0,r.useEffect)(()=>{a(d())},[]);const i=(0,r.useCallback)(()=>{f(!0),a(!0)},[]);return(0,r.useEffect)(()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&f(!1),!r&&d()||a(!1)},[e]),(0,r.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,s.jsx)(p.Provider,{value:t,children:e})}function g(){const e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293(e,t,n){"use strict";n.d(t,{G:()=>x,a:()=>k});var r=n(6540),o=n(2303),a=n(9532),i=n(679),l=n(6342),s=n(4848);function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function u(e){return function(e,t){const n=window.matchMedia(e);return n.addEventListener("change",t),()=>n.removeEventListener("change",t)}("(prefers-color-scheme: dark)",()=>e(c()))}const d=r.createContext(void 0),f=(0,i.Wf)("theme"),p="system",m=e=>"dark"===e?"dark":"light",g=e=>null===e||e===p?null:m(e),h=()=>m(document.documentElement.getAttribute("data-theme")),b=e=>{document.documentElement.setAttribute("data-theme",m(e))},y=()=>g(document.documentElement.getAttribute("data-theme-choice")),v=e=>{document.documentElement.setAttribute("data-theme-choice",g(e)??p)};function w(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),{colorMode:a,setColorModeState:i,colorModeChoice:s,setColorModeChoiceState:d}=function(){const{colorMode:{defaultMode:e}}=(0,l.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)(t?h():e),[i,s]=(0,r.useState)(t?y():null);return(0,r.useEffect)(()=>{a(h()),s(y())},[]),{colorMode:n,setColorModeState:a,colorModeChoice:i,setColorModeChoiceState:s}}();(0,r.useEffect)(()=>{t&&f.del()},[t]);const p=(0,r.useCallback)((t,r={})=>{const{persist:o=!0}=r;if(null===t){const t=n?c():e;b(t),i(t),v(null),d(null)}else b(t),v(t),i(t),d(t);var a;o&&(null===(a=t)?f.del():f.set(m(a)))},[i,d,n,e]);return(0,r.useEffect)(()=>f.listen(e=>{p(g(e.newValue))}),[p]),(0,r.useEffect)(()=>{if(null===s&&n)return u(e=>{i(e),b(e)})},[n,s,i]),(0,r.useMemo)(()=>({colorMode:a,colorModeChoice:s,setColorMode:p,get isDarkTheme(){return"dark"===a},setLightTheme(){p("light")},setDarkTheme(){p("dark")}}),[a,s,p])}function k({children:e}){const t=w();return(0,s.jsx)(d.Provider,{value:t,children:e})}function x(){const e=(0,r.useContext)(d);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},2069(e,t,n){"use strict";n.d(t,{M:()=>m,e:()=>p});var r=n(6540),o=n(5600),a=n(4581),i=n(7485),l=n(6342),s=n(9532),c=n(4848);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,l.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1),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 f({handler:e}){return(0,i.$Z)(e),null}function p({children:e}){const t=d();return(0,c.jsxs)(c.Fragment,{children:[t.shown&&(0,c.jsx)(f,{handler:()=>(t.toggle(),!1)}),(0,c.jsx)(u.Provider,{value:t,children:e})]})}function m(){const e=r.useContext(u);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5600(e,t,n){"use strict";n.d(t,{GX:()=>c,YL:()=>s,y_:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function l({children:e}){const t=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c({component:e,props:t}){const n=(0,r.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,a]=n,l=(0,o.Be)(t);return(0,r.useEffect)(()=>{a({component:e,props:l})},[a,e,l]),(0,r.useEffect)(()=>()=>a({component:null,props:null}),[a]),null}},4581(e,t,n){"use strict";n.d(t,{l:()=>l});var r=n(6540),o=n(8193);const a="desktop",i="mobile";function l({desktopBreakpoint:e=996}={}){const[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a:i}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},7559(e,t,n){"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-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",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},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}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},3109(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},3535(e,t,n){"use strict";n.d(t,{v:()=>i});var r=n(6342);const o="anchorTargetStickyNavbar_Vzrq",a="anchorTargetHideOnScrollNavbar_vjPI";function i(e){const{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?a:o}},7485(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,jy:()=>s});var r=n(6540),o=n(6347),a=n(9532);function i(e){!function(e){const t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}((t,n)=>{if("POP"===n)return e(t,n)})}function l(e){const t=(0,o.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e,t){const n=function(e,t){const n=new URLSearchParams;for(const r of e)for(const[e,o]of r.entries())"append"===t?n.append(e,o):n.set(e,o);return n}(e.map(e=>new URLSearchParams(e??"")),t),r=n.toString();return r?`?${r}`:r}},5500(e,t,n){"use strict";n.d(t,{Jx:()=>b,be:()=>m,e3:()=>h});var r=n(6540),o=n(4164),a=n(5260),i=n(6803),l=n(6025),s=n(4563),c=n(4848);function u({title:e}){const t=(0,s.s$)().format(e);return(0,c.jsxs)(a.A,{children:[(0,c.jsx)("title",{children:t}),(0,c.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,c.jsxs)(a.A,{children:[(0,c.jsx)("meta",{name:"description",content:e}),(0,c.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){const{withBaseUrl:t}=(0,l.hH)(),n=t(e,{absolute:!0});return(0,c.jsxs)(a.A,{children:[(0,c.jsx)("meta",{property:"og:image",content:n}),(0,c.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,c.jsx)(a.A,{children:(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:r,children:o}){return(0,c.jsxs)(c.Fragment,{children:[e&&(0,c.jsx)(u,{title:e}),t&&(0,c.jsx)(d,{description:t}),n&&(0,c.jsx)(p,{keywords:n}),r&&(0,c.jsx)(f,{image:r}),o&&(0,c.jsx)(a.A,{children:o})]})}const g=r.createContext(void 0);function h({className:e,children:t}){const n=r.useContext(g),i=(0,o.A)(n,e);return(0,c.jsxs)(g.Provider,{value:i,children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("html",{className:i})}),t]})}function b({children:e}){const t=(0,i.A)(),n=`plugin-${t.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const r=`plugin-id-${t.plugin.id}`;return(0,c.jsx)(h,{className:(0,o.A)(n,r),children:e})}},9532(e,t,n){"use strict";n.d(t,{Be:()=>c,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>u});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,r.useCallback)((...e)=>t.current(...e),[])}function l(e){const t=(0,r.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s 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 c(e){const t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,r.useMemo)(()=>e,t.flat())}function u(e){return({children:t})=>(0,a.jsx)(a.Fragment,{children:e.reduceRight((e,t)=>(0,a.jsx)(t,{children:e}),t)})}},9169(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)(()=>function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;return t.find(n)||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)}({routes:o.A,baseUrl:e}),[e])}},3104(e,t,n){"use strict";n.d(t,{Mq:()=>f,Tv:()=>c,gk:()=>p});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function c({children:e}){const t=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)(()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}}),[])}();return(0,l.jsx)(s.Provider,{value:t,children:e})}function u(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t=[]){const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)(()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[a,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"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 o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},679(e,t,n){"use strict";n.d(t,{Wf:()=>c});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}');const o=r.N;function a({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(o)}function i(e=o){if("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,l||(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),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){const n=`${e}${r.M}`;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}}(n);const o=i(t?.persistence);return null===o?s:{get:()=>{try{return o.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=o.getItem(n);o.setItem(n,e),a({key:n,oldValue:t,newValue:e,storage:o})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=o.getItem(n);o.removeItem(n),a({key:n,oldValue:e,newValue:null,storage:o})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===o&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},4563(e,t,n){"use strict";n.d(t,{AL:()=>u,s$:()=>d});var r=n(6540),o=n(4586),a=n(6803),i=n(9532),l=n(4848);const s=({title:e,siteTitle:t,titleDelimiter:n})=>{const r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},c=(0,r.createContext)(null);function u({formatter:e,children:t}){return(0,l.jsx)(c.Provider,{value:e,children:t})}function d(){const e=function(){const e=(0,r.useContext)(c);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:l}=t,{plugin:u}=(0,a.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:l,plugin:u,defaultFormatter:s})}}},2131(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,o.zy)(),l=(0,a.Ks)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){const r=function(e){const t=n[e];if(!t)throw new Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e);return`${`${t?r.url:""}`}${r.baseUrl}${l}`}}}},5062(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},6342(e,t,n){"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,c=n,c?o(s):a(s));var s,c;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(2566);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},253(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t,...e(t.cause)];return[t]}},440(e,t,n){"use strict";t.rA=t.Ks=void 0;const r=n(1635);var o=n(2983);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(o).default}});var a=n(2566);var i=n(253);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513(e,t,n){"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>p,sC:()=>T,AO:()=>f});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function p(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!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,o):n.push(o),d({action:r,location:o,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",o=p(e,t,g(),w.location);u.confirmTransitionTo(o,r,n,function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))})},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}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=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l(function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout(function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){n.remove(),t()},u)},u)):setTimeout(t,u)}),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)*o(Math.random()*t,.1,.95)),t=o(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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.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 l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=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,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(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===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},5302(e,t,n){var r=n(4634);e.exports=g,e.exports.parse=a,e.exports.compile=function(e,t){return c(a(e,t),t)},e.exports.tokensToFunction=c,e.exports.tokensToRegExp=m;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,l=0,s="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var u=n[0],f=n[1],p=n.index;if(s+=e.slice(l,p),l=p+u.length,f)s+=f[1];else{var m=e[l],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=g||c,_=b||y,C=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?d(_):w?".*":i(E,C)})}}return l-1?"[^"+u(e)+"]+?":u(t)+"|(?:(?!"+u(t)+")[^"+u(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(e,t){for(var n=new Array(e.length),o=0;o
@@ -117,11 +120,12 @@

Local, self-hosted, hosted, or subscription-backed.

03 / TOOLS

Use the computer, not just the model.

Row-Bot can chain built-in tools inside an agent turn, limit them through profiles, pause for approval, and return generated files to the conversation or configured delivery channel.

+

Search and research

Search the web through configured services or DuckDuckGo, read URLs, query Wikipedia and arXiv, inspect YouTube content, work with local documents, and preserve useful findings in memory or the wiki vault.

Built inSome online
-

Files, shell, and browser

Read and manage files, run approval-gated shell commands, automate isolated Chromium contexts, inspect page state, redact sensitive tool output, and bring generated files back into a thread. Consequential navigation and browser takeover remain visible.

Built inApproval gated
-

Native Computer Use

Opt into provider-neutral Windows and macOS application control through a pinned, checksum-verified Cua Driver. Target-window capture, an exclusive interactive lease, point-of-risk approvals, blocked sensitive surfaces, ephemeral Vision fallback, and Stop/Take over/Resume controls constrain every session.

Beta in 4.5Explicit install
-

Email and Calendar

Use Gmail and Google Calendar with OAuth-backed tools for search, drafting, event lookup, typed mutations, and bulk creation. Calendar operations use request-scoped clients, safe concurrent refresh, retries, ordered writes, and timeout reconciliation.

OAuthImproved in 4.4
+

Files, shell, and browser

Read and manage files, run approval-gated shell commands, automate browser sessions under Row-Bot’s browser policy, inspect page state, redact sensitive tool output, and bring generated files back into a thread. Consequential navigation and browser takeover remain visible.

Built inApproval gated
+

Native Computer Use

Opt into the Computer Use beta for Windows and macOS through a pinned, checksum-verified Cua Driver. Target-window capture, an exclusive interactive lease, point-of-risk approvals, blocked sensitive surfaces, ephemeral Vision fallback, and Stop/Take over/Resume controls constrain every session. The separately installed driver’s consent-gated third-party telemetry is disclosed before enablement and is not a Row-Bot telemetry pipeline.

BetaExplicit install
+

Email and Calendar

Use Gmail and Google Calendar with OAuth-backed tools for search, drafting, event lookup, typed mutations, and bulk creation. Calendar operations use request-scoped clients, safe concurrent refresh, retries, ordered writes, and timeout reconciliation.

OAuth

Analysis and output

Calculate, query Wolfram Alpha, inspect weather, analyse images, search conversations, create charts, generate or edit images, and produce video through compatible provider models. Media choices remain scoped to the correct surface.

Built in + providers
@@ -130,9 +134,10 @@

Use the computer, not just the model.

04 / KNOWLEDGE

Memory that remains inspectable.

Useful recall needs more than an opaque summary. Row-Bot stores structured local records, combines semantic, lexical, and graph signals, and keeps review state and trace information available when you need to understand why something returned.

+

Personal knowledge graph

Represent people, projects, preferences, facts, events, documents, and other entities as typed nodes and relationships. Browse the graph, review extracted memories, normalise relations, and repair inconsistent records without touching real user data in tests.

LocalAuditable
-

Bounded hybrid recall

Combine configurable embeddings, FAISS semantic search, FTS5 lexical matching, and bounded graph expansion. Local embedding startup is cache-only, downloads and repair are explicit, and missing models fall back quickly to lexical and graph retrieval instead of stalling the request.

Improved in 4.5Local by default
+

Bounded hybrid recall

Combine configurable embeddings, FAISS semantic search, FTS5 lexical matching, and bounded graph expansion. Local embedding startup is cache-only, downloads and repair are explicit, and missing models fall back quickly to lexical and graph retrieval instead of stalling the request.

Bounded recallLocal by default

Documents and extraction

Read PDFs, spreadsheets, JSON, TSV, images, and common text formats; extract knowledge under reviewable policies; and retain source metadata so derived facts can be traced to their origin.

Built in

Wiki Vault and Dream Cycle

Export an Obsidian-compatible local wiki, synchronise selected knowledge, and let the idle-aware Dream Cycle consolidate memory or prepare bounded improvement proposals while preserving busy-state and review controls.

OptionalLocal
@@ -142,11 +147,12 @@

Memory that remains inspectable.

05 / WORKFLOWS

Background work with visible control.

Turn repeated tasks into scheduled or manually triggered pipelines without turning them into invisible automation. Profiles, delivery defaults, conditions, approvals, run history, and recovery state stay attached to the workflow.

+

Profile-first workflows

Choose a profile, model override, tool policy, prompt, schedule, persistent thread, conditions, approval mode, and delivery destination. Advanced graph steps support multi-stage work while the mobile editor covers common prompt workflows.

DesktopMobile basics

Approvals and delivery

Pause consequential actions for approval in the app or supported channels. Workflow-level delivery defaults distinguish no destinations from inherited destinations, and channel retries retain terminal notices until they can be reconciled.

Approval aware

Run history and diagnostics

Inspect scheduled runs, subtasks, pipeline state, errors, completion summaries, database recovery diagnostics, insight cards, and attention states in a collapsible console rather than relying on ephemeral notifications.

Durable history
-

Shared cancellation scope

Stop connects the active generation to provider responses, subprocesses, tool waits, browser work, MCP calls, voice turns, and child agents spawned by that generation. Unrelated runs remain untouched.

New in 4.4
+

Shared cancellation scope

Stop connects the active generation to provider responses, subprocesses, tool waits, browser work, MCP calls, voice turns, and child agents spawned by that generation. Unrelated runs remain untouched.

Scoped cancellation
@@ -154,9 +160,10 @@

Background work with visible control.

06 / MOBILE

A companion to the machine you control.

Mobile Companion is a phone-native interface served by the running Row-Bot host—not a separate Row-Bot cloud service. Pair over an approved route, keep the host as the system of record, and revoke access locally.

+
-

Phone-native shell

Use Chat, Activity, Workflows, Knowledge, and Settings navigation designed for a small screen. Create threads, attach files, choose skills, profiles, and models, follow generation state, and stop active work.

New in 4.4PWA
-

Activity and approvals

See active chat generations, running workflows, recent runs, tool approvals, and workflow approvals in one phone-safe surface with approve, deny, and stop actions.

New in 4.4
+

Phone-native shell

Use Chat, Activity, Workflows, Knowledge, and Settings navigation designed for a small screen. Create threads, attach files, choose skills, profiles, and models, follow generation state, and stop active work.

PWA
+

Activity and approvals

See active chat generations, running workflows, recent runs, tool approvals, and workflow approvals in one phone-safe surface with approve, deny, and stop actions.

Mobile control

Secure pairing

Create short-lived single-use QR links, store session tokens in HttpOnly cookies, rate-limit failed attempts, review display-safe access events, list paired devices, and revoke a phone immediately.

Local authRevocable

Network routes

Connect over a local network, Tailscale direct or Serve routes, an existing ngrok tunnel, or an advanced custom origin. Remote HTTP and WebSocket traffic remains pairing-gated while direct desktop loopback stays open.

Optional remote access
@@ -166,9 +173,10 @@

A companion to the machine you control.

07 / CHANNELS

Live conversations beyond the desktop.

Messaging adapters share one delivery engine while preserving the limits and native interaction model of each platform. Channel work uses the same threads, profiles, Goal Mode, approvals, media handling, and final records as desktop turns.

+
-

Streaming delivery

Coalesce edits, keep typing alive, bound previews, split long output safely, respect rate limits, clean up previews, and send a fresh final message when an edit cannot complete. Discord, Slack, Telegram, and WhatsApp use the best supported path.

New in 4.4
-

Interactive approvals

Approve or deny through Discord buttons, Slack Block Kit actions, Telegram inline controls, WhatsApp resume flows, or explicit SMS YES/NO handling. SMS intentionally remains final-text-only with safe chunking.

New in 4.4
+

Streaming delivery

Coalesce edits, keep typing alive, bound previews, split long output safely, respect rate limits, clean up previews, and send a fresh final message when an edit cannot complete. Discord, Slack, Telegram, and WhatsApp use the best supported path.

Streaming
+

Interactive approvals

Approve or deny through Discord buttons, Slack Block Kit actions, Telegram inline controls, WhatsApp resume flows, or explicit SMS YES/NO handling. SMS intentionally remains final-text-only with safe chunking.

Native controls

Voice and speech

Use local Whisper speech-to-text and Kokoro text-to-speech, or opt into compatible realtime voice providers. Voice turns share agent tools and cancellation behavior while provider usage remains explicit.

Local optionsOptional providers

Media and terminal notices

Receive images and documents, return generated files, show reactions and health state, and deliver compact once-only Goal Mode or child-agent completion notices. Failed terminal notices remain available for retry.

Native + plugin channels
@@ -178,6 +186,7 @@

Live conversations beyond the desktop.

08 / DEVELOPER

Code threads with real repository state.

Developer Studio connects conversational work to explicit Git repositories and durable worktrees. It is designed for reviewable implementation, not a hidden command runner.

+

Durable workspaces

Connect local repositories, restore code threads from the sidebar, allocate worktrees to threads or delegated runs, preserve workspace context, and keep source changes separate from unrelated work.

DesktopGit

Review and delivery

Inspect diffs, run focused tests, manage todos, review command output, prepare commits and pull requests, and require approval for install, network, delete, commit, push, or PR actions.

Approval gated
@@ -190,6 +199,7 @@

Code threads with real repository state.

09 / DESIGNER

Editable artifacts, not disposable generations.

Designer Studio provides mode-aware canvases for presentations, documents, landing pages, app mockups, and storyboards. Generated output remains open to targeted edits, previews, export, and repair.

+

Five design modes

Choose the canvas and constraints appropriate to a deck, document, web page, interface, or storyboard. Templates and brand controls keep format-specific decisions visible instead of forcing everything through one generic layout.

DesktopFive modes

Live preview and surgical edits

Render deterministic previews, select the part that needs work, request bounded changes, and preserve unaffected content. History, thumbnails, and snapshots make iteration reviewable.

Editable
@@ -202,10 +212,11 @@

Editable artifacts, not disposable generations.

10 / EXTENSIONS

Extend the workbench without hiding the boundary.

Skills, plugins, MCP servers, and Custom Tools add capability through separate contracts. Enablement, permissions, configuration, health, and profile policy determine what becomes available to an agent.

+

Skills Hub

Install, enable, and pin reusable instruction packages, invoke slash commands, and let Agent Profiles narrow which skills enter a run. Bundled, user, and plugin-provided skills retain clear ownership.

Built inLocal packages

Plugin System v2

Install reviewable plugins that provide native tools, packaged MCP servers, bundled skills, or channels. Manifests declare permissions, settings, secrets, authentication, health checks, versions, and supported extension surfaces.

Plugin Center
-

MCP client and marketplace

Connect stdio, HTTP, or SSE servers with capability metadata, safety classification, requirements, probes, conflict handling, and approval gates. Version 4.4 adds Xquik and preserves marketplace metadata through configuration edits.

OptionalXquik in 4.4
+

MCP client and marketplace

Connect stdio, HTTP, or SSE servers with capability metadata, safety classification, requirements, probes, conflict handling, and approval gates. Marketplace metadata, including catalog entries such as Xquik, remains intact through configuration edits.

OptionalReviewable

Custom Tool builder

Turn a repository, local folder, or current workspace into a reusable tool through Source, Inspect, Test, and Enable stages. Safer Git setup, isolated environments, command checks, removal, and optional chat promotion keep experiments bounded.

Approval gated
@@ -214,11 +225,12 @@

Extend the workbench without hiding the boundary.

11 / PRIVACY

Control is a system property.

Local-first means durable application state belongs to the user, external routes are explicit, and consequential actions remain reviewable. It does not pretend that a hosted model or online tool can be used without sending that service the data required for the request.

+

Local durable data

Store conversations, profiles, goals, child-run records, workflows, memory, documents, Designer projects, plugin state, code context, and paired-device records under the local Row-Bot data directory.

Local

Credential protection

Use the operating-system credential store when available, session-only fallback where supported, fingerprints and hashes for display-safe identity, and metadata files that do not contain provider tokens as plain secrets.

OS credential store

Approval and risk policy

Classify destructive, networked, private-data, metered, installation, Git, shell, browser, channel, and MCP actions conservatively. Approval cards show bounded reasons while retaining the original action payload for the decision.

Reviewable
-

No hidden Row-Bot cloud

Row-Bot has no required account, hosted sync service, or app telemetry pipeline. Online providers, channels, tunnels, updates, search, and external tools remain individually visible choices.

No app telemetry
+

No hidden Row-Bot cloud

Row-Bot has no required account, hosted sync service, or first-party telemetry pipeline. Optional providers, channels, tunnels, updates, search, and external tools remain individually visible choices. The opt-in Cua Driver has separately disclosed, consent-gated third-party telemetry; it is the reviewed exception, not Row-Bot telemetry.

No first-party telemetryExplicit services
@@ -226,8 +238,9 @@

Control is a system property.

12 / PLATFORMS

Installable, diagnosable, and repairable.

Windows and macOS are first-class desktop targets, while Linux provides the browser/server application through a verified XDG user install. Packaging includes the application source, locked runtime dependencies, bundled skills, UI assets, and required installer metadata.

+
-

Platform installers

Use the Windows x64 installer, macOS Apple-silicon DMG, or verified Linux one-line installer and tarball. Release workflows build checksums and manifests; Windows signing and macOS notarization remain explicit release gates.

WindowsmacOSLinux
+

Platform installers

Use the Windows x64 installer, macOS Apple-silicon DMG, or verified Linux one-line installer and tarball. Published artifacts, checksums, and platform trust details are listed with each release so signing or notarization is never implied.

WindowsmacOSLinux

Setup Center

Resume onboarding across provider configuration, credentials, model selection, tools, optional integrations, and runtime checks. Setup guidance distinguishes missing configuration, missing dependencies, unhealthy credentials, and unsupported models.

Resumable

Status and diagnostics

Inspect provider health, model count and provenance, OAuth state, prompt-cache metrics, workflow attention, task recovery, app performance, update state, and subsystem readiness without digging through raw configuration files.

Built in

Updates and repair

Check signed release metadata, download compatible updates, validate installer contents, and preserve local data through upgrades. Deeper installer verification covers clean installs, repair, upgrade, uninstall, and installed-package smoke checks.

Release verified
@@ -238,12 +251,12 @@

Installable, diagnosable, and repairable.

-

Row-Bot 4.5.0

+

Get Row-Bot

Choose the parts you need.
Keep control of the whole.

Start locally, add providers and integrations deliberately, and let the workbench grow with the work.

@@ -253,10 +266,14 @@

Choose the parts you need.
Keep control of the whole.

diff --git a/docs/index.html b/docs/index.html index 75780a73..e1393d6f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -74,16 +74,17 @@
@@ -138,7 +139,7 @@

From intent to evidence.

ROW-BOT · LOCAL WORKSPACE - 4.5.0 + LOCAL-FIRST
Row-Bot desktop workspace showing conversations, agent profiles, workflows, approvals, channels, and local activity records
@@ -321,11 +322,12 @@

Your AI workspace. On your machine.