diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 41f0c9a9..0477a6f7 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -25,9 +25,9 @@ jobs: node-version: "22" - name: Setup pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 with: - version: 9 + version: 11.3.0 run_install: false - name: Get pnpm store directory diff --git a/web/docs/docs/Agents/_category_.json b/web/docs/docs/Agents/_category_.json index faa07ade..373ca825 100644 --- a/web/docs/docs/Agents/_category_.json +++ b/web/docs/docs/Agents/_category_.json @@ -1,6 +1,6 @@ { "label": "Marmot for Agents", - "position": 5, + "position": 2, "link": { "type": "doc", "id": "Agents/index" diff --git a/web/docs/docs/Agents/index.md b/web/docs/docs/Agents/index.md index 84bbd0a5..a3d06d5f 100644 --- a/web/docs/docs/Agents/index.md +++ b/web/docs/docs/Agents/index.md @@ -4,10 +4,52 @@ sidebar_position: 1 # Marmot for Agents -**Marmot for Agents** plugs your LLM agents into the catalog. They read it for context and write back the lineage they generate. +An agent acting without context is guessing. It doesn't know which table holds customer orders, who owns the payments service, what a column means, or what breaks downstream if it changes something. **Marmot for Agents** ends that context starvation: it plugs your LLM agents into the catalog so they read it for context and write back the lineage they generate. import { CalloutCard, DocCard, DocCardGrid, FeatureCard, FeatureGrid } from '@site/src/components/DocCard'; +## What your agents can do + + + + + + + + +## Two ways to connect + + + + + + ## Supported frameworks diff --git a/web/docs/docs/MCP/index.md b/web/docs/docs/MCP/index.md index 87428dc9..1d3d8f68 100644 --- a/web/docs/docs/MCP/index.md +++ b/web/docs/docs/MCP/index.md @@ -1,5 +1,5 @@ --- -sidebar_position: 6 +sidebar_position: 3 --- # Model Context Protocol (MCP) diff --git a/web/docs/docs/introduction.md b/web/docs/docs/introduction.md index 14274ed1..0b0d0f0f 100644 --- a/web/docs/docs/introduction.md +++ b/web/docs/docs/introduction.md @@ -4,7 +4,9 @@ sidebar_position: 1 # Introduction -Marmot is an open-source data catalog designed for teams who want powerful data discovery without enterprise complexity. Built with a focus on simplicity and speed, Marmot helps you catalog assets across your entire data stack - from databases and APIs to message queues and data pipelines. +Marmot is the open source **context layer** for your whole stack: a single catalog for every asset your systems and teams depend on, from services, APIs, queues, topics and brokers to databases, tables and pipelines. It exists to solve **context starvation**, the moment an engineer or an AI agent has to act without knowing what exists, who owns it, what it means, or what it connects to. + +Marmot is built so both **humans and agents** can ask that question and get a real answer. [Catalog your assets](Populating/index.md) once, enrich them with ownership and business context, and expose them through the UI, a [REST API](api-reference.md), and a built-in [MCP server](MCP/index.md) that lets AI agents read your catalog, then write back the [lineage](open-lineage.md) they generate.
@@ -20,32 +22,30 @@ import { CalloutCard, DocCard, DocCardGrid, FeatureCard, FeatureGrid } from '@si icon="mdi:rocket-launch" /> -## Why Marmot? +## Built for agents -Unlike traditional catalogs that require extensive infrastructure and configuration, Marmot ships as a **single binary** with an intuitive UI, making it easy to deploy and start cataloging in minutes. +AI agents are only as good as the context they can reach. Through a built-in MCP server and our SDKs, Marmot gives your agents a live, governed map of every asset in your stack: what exists, who owns it, what it means, and how it all connects. - - - - + - - + + +## Why Marmot? + +Most catalogs were built to help a data team document tables. Marmot is built to feed context to whoever needs it, human or agent, across every kind of asset: services, APIs, queues, topics, brokers, databases, tables and pipelines. + +That means agents are first class, not an afterthought. A native MCP server and our SDKs are part of the core, so your agents read the same governed context your team does. And Marmot stays light enough to actually adopt: a single binary backed only by PostgreSQL, with no platform team required. ## Architecture @@ -55,62 +55,80 @@ Marmot is built entirely in Go with PostgreSQL being the only external dependenc Marmot architecture diagram
-## Features - -### Search Everything - -Find any data asset across your entire organisation in seconds. Combine full-text search with structured queries using metadata filters, boolean logic, and comparison operators. - -### Interactive Lineage Visualisation +## What Marmot stores -Trace data flows from source to destination with interactive dependency graphs. Understand upstream and downstream dependencies, identify bottlenecks, and analyse impact before making changes. +Marmot is a context layer, so it stores **metadata about your assets**, not the data inside them. That means schemas, field names and types, ownership, descriptions, tags, lineage and statistics. The rows in your tables, the messages on your topics and the payloads behind your APIs never enter Marmot. -### Metadata-First Architecture +Plugins read a source's structure and metadata into PostgreSQL; the data itself never moves. The easiest path is to run it on our platform, isolated per customer and under strict access controls. Need everything to stay within your control? Run Marmot yourself, free or with an enterprise license, in your own cloud on AWS, Google Cloud, Azure, OVHcloud or anywhere else. -Store rich metadata for any asset type. From tables and topics to APIs and dashboards - if it matters to your data stack, you can catalog it in Marmot. - -### Team Collaboration - -Assign ownership, document business context, and create glossaries. Keep your entire team aligned with centralised knowledge about your data assets. - -### Data Products - -Group related assets into logical collections. Use manual assignment for curated bundles or dynamic rules that use the query language to automatically include matching assets as your catalog grows. + -## Getting Started +## Features -Ready to dive in? Here's where to go next: +Everything you need to turn scattered assets into a context layer that humans and agents can both query. - - + - - + + + + + +## Get started + +Pick a starting point. The [Quick Start](quick-start.md) walks you from an empty deployment to a populated catalog, step by step. + + diff --git a/web/docs/docs/quick-start.md b/web/docs/docs/quick-start.md index 70fff5ce..285aa634 100644 --- a/web/docs/docs/quick-start.md +++ b/web/docs/docs/quick-start.md @@ -8,6 +8,7 @@ title: Quick Start Get Marmot running in seconds with Docker Compose. import { CalloutCard, DocCard, DocCardGrid } from '@site/src/components/DocCard'; +import { Steps, Step } from '@site/src/components/Steps'; -## Prerequisites + + [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) installed. -## Create Your Docker Compose File + + Create a `docker-compose.yaml`: @@ -61,7 +64,8 @@ volumes: marmot_data: ``` -## Start Marmot + + ```bash docker compose up -d @@ -69,6 +73,9 @@ docker compose up -d Open [http://localhost:8080](http://localhost:8080) and log in with `admin` / `admin`. + + + ## Next Steps diff --git a/web/docs/docusaurus.config.ts b/web/docs/docusaurus.config.ts index 86b81b65..d27f59d9 100644 --- a/web/docs/docusaurus.config.ts +++ b/web/docs/docusaurus.config.ts @@ -21,7 +21,7 @@ try { const config: Config = { title: "Marmot", - tagline: "Modern Data Discovery for Modern Teams", + tagline: "The open source context layer for agents and humans", favicon: "img/favicon.ico", // Set the production url of your site here diff --git a/web/docs/package.json b/web/docs/package.json index a3eb381d..0ebdee24 100644 --- a/web/docs/package.json +++ b/web/docs/package.json @@ -42,39 +42,6 @@ "typescript": "~5.8.3", "unplugin-icons": "~22.1.0" }, - "pnpm": { - "overrides": { - "node-forge": ">=1.4.0", - "image-size": ">=1.4.0", - "webpack-dev-server": ">=4.16.0", - "estree-util-value-to-estree": ">=3.4.1", - "mdast-util-to-hast": ">=13.2.1", - "@babel/runtime-corejs3": ">=7.27.1", - "@babel/runtime": ">=7.27.1", - "@babel/helpers": ">=7.27.1", - "glob": ">=10.5.0", - "brace-expansion": ">=5.0.6", - "@isaacs/brace-expansion": ">=5.0.5", - "picomatch": ">=4.0.4", - "yaml": ">=2.8.3", - "minimatch": ">=10.2.3", - "on-headers": ">=1.1.0", - "compression": ">=1.8.1", - "mermaid": ">=11.10.0", - "cookie": ">=0.7.0", - "serialize-javascript": ">=7.0.5", - "fast-xml-parser": ">=5.5.7", - "svgo": ">=3.3.3", - "dompurify": ">=3.3.2", - "lodash": ">=4.18.1", - "qs": ">=6.14.2", - "ajv": ">=8.18.0", - "path-to-regexp": "~0.1.13", - "webpack": "~5.104.1", - "uuid": ">=9.0.1", - "ws": ">=8.20.1" - } - }, "browserslist": { "production": [ ">0.5%", @@ -89,5 +56,6 @@ }, "engines": { "node": ">=20.0" - } + }, + "packageManager": "pnpm@11.3.0" } diff --git a/web/docs/pnpm-lock.yaml b/web/docs/pnpm-lock.yaml index a59f6c6a..cfbbdcc0 100644 --- a/web/docs/pnpm-lock.yaml +++ b/web/docs/pnpm-lock.yaml @@ -4,37 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - node-forge: '>=1.4.0' - image-size: '>=1.4.0' - webpack-dev-server: '>=4.16.0' - estree-util-value-to-estree: '>=3.4.1' - mdast-util-to-hast: '>=13.2.1' - '@babel/runtime-corejs3': '>=7.27.1' - '@babel/runtime': '>=7.27.1' - '@babel/helpers': '>=7.27.1' - glob: '>=10.5.0' - brace-expansion: '>=5.0.6' - '@isaacs/brace-expansion': '>=5.0.5' - picomatch: '>=4.0.4' - yaml: '>=2.8.3' - minimatch: '>=10.2.3' - on-headers: '>=1.1.0' - compression: '>=1.8.1' - mermaid: '>=11.10.0' - cookie: '>=0.7.0' - serialize-javascript: '>=7.0.5' - fast-xml-parser: '>=5.5.7' - svgo: '>=3.3.3' - dompurify: '>=3.3.2' - lodash: '>=4.18.1' - qs: '>=6.14.2' - ajv: '>=8.18.0' - path-to-regexp: ~0.1.13 - webpack: ~5.104.1 - uuid: '>=9.0.1' - ws: '>=8.20.1' - importers: .: @@ -77,7 +46,7 @@ importers: version: 19.2.5(react@19.2.5) redocusaurus: specifier: ^2.5.0 - version: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(css-to-react-native@3.2.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(webpack@5.104.1) + version: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(webpack@5.104.1) tailwindcss: specifier: 3.4.14 version: 3.4.14 @@ -752,10 +721,6 @@ packages: resolution: {integrity: sha512-Lc94FOD5+0aXhdb0Tdg3RUtqT6yWbI/BbFWvlaSJ3gAb9Ks+99nHRDKADVqC37er4eCB0fHyWT+y+K3QOvJKbw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -1916,7 +1881,7 @@ packages: ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: - ajv: '>=8.18.0' + ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -1924,12 +1889,15 @@ packages: ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: - ajv: '>=8.18.0' + ajv: ^6.9.1 ajv-keywords@5.1.0: resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: - ajv: '>=8.18.0' + ajv: ^8.8.2 + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} @@ -2014,7 +1982,7 @@ packages: engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 - webpack: ~5.104.1 + webpack: '>=5' babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} @@ -2042,9 +2010,8 @@ packages: bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} baseline-browser-mapping@2.10.21: resolution: {integrity: sha512-Q+rUQ7Uz8AHM7DEaNdwvfFCTq7a43lNTzuS94eiWqwyxfV/wJv+oUivef51T91mmRY4d4A1u9rcSvkeufCVXlA==} @@ -2079,9 +2046,11 @@ packages: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} - engines: {node: 18 || 20 || >=22} + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} + + brace-expansion@2.1.1: + resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -2153,9 +2122,6 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - camelize@1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} @@ -2273,10 +2239,6 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -2307,6 +2269,9 @@ packages: resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} engines: {node: '>= 0.8.0'} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -2346,15 +2311,15 @@ packages: cookie-signature@1.0.7: resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} - engines: {node: '>=18'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} copy-webpack-plugin@11.0.0: resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} peerDependencies: - webpack: ~5.104.1 + webpack: ^5.1.0 core-js-compat@3.49.0: resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} @@ -2391,10 +2356,6 @@ packages: peerDependencies: postcss: ^8.4 - css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - css-declaration-sorter@7.4.0: resolution: {integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==} engines: {node: ^14 || ^16 || >=18} @@ -2412,7 +2373,7 @@ packages: engines: {node: '>= 12.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x - webpack: ~5.104.1 + webpack: ^5.0.0 peerDependenciesMeta: '@rspack/core': optional: true @@ -2429,7 +2390,7 @@ packages: csso: '*' esbuild: '*' lightningcss: '*' - webpack: ~5.104.1 + webpack: ^5.0.0 peerDependenciesMeta: '@parcel/css': optional: true @@ -2456,15 +2417,12 @@ packages: css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - css-to-react-native@3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - css-tree@3.2.1: - resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css-what@6.2.2: @@ -2628,7 +2586,7 @@ packages: engines: {node: '>=18'} peerDependencies: '@docusaurus/theme-common': ^3.6.0 - webpack: ~5.104.1 + webpack: ^5.0.0 dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} @@ -2863,6 +2821,9 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} @@ -2890,7 +2851,7 @@ packages: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} peerDependencies: - picomatch: '>=4.0.4' + picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true @@ -2907,7 +2868,7 @@ packages: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: - webpack: ~5.104.1 + webpack: ^4.0.0 || ^5.0.0 fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -3140,7 +3101,7 @@ packages: engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x - webpack: ~5.104.1 + webpack: ^5.20.0 peerDependenciesMeta: '@rspack/core': optional: true @@ -3386,6 +3347,9 @@ packages: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} engines: {node: '>=12'} + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -3444,6 +3408,9 @@ packages: json-pointer@0.6.2: resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -3631,8 +3598,8 @@ packages: mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - mdn-data@2.27.1: - resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -3829,14 +3796,17 @@ packages: resolution: {integrity: sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==} engines: {node: '>= 12.13.0'} peerDependencies: - webpack: ~5.104.1 + webpack: ^5.0.0 minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} - engines: {node: 18 || 20 || >=22} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3954,7 +3924,7 @@ packages: resolution: {integrity: sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==} engines: {node: '>= 10.13.0'} peerDependencies: - webpack: ~5.104.1 + webpack: ^4.0.0 || ^5.0.0 oas-kit-common@1.0.8: resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} @@ -4115,6 +4085,12 @@ packages: path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} + path-to-regexp@1.9.0: + resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} + + path-to-regexp@3.3.0: + resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4128,6 +4104,10 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -4340,7 +4320,7 @@ packages: engines: {node: '>= 14.15.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 - webpack: ~5.104.1 + webpack: ^5.0.0 postcss-logical@8.1.0: resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} @@ -4634,6 +4614,10 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + pupa@3.3.0: resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} engines: {node: '>=12.20'} @@ -4645,8 +4629,8 @@ packages: resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} engines: {node: '>=16.0.0'} - qs@6.15.1: - resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} + qs@6.14.2: + resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} engines: {node: '>=0.6'} quansync@0.2.11: @@ -4659,6 +4643,9 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + range-parser@1.2.0: resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} engines: {node: '>= 0.6'} @@ -4697,7 +4684,7 @@ packages: engines: {node: '>=10.13.0'} peerDependencies: react-loadable: '*' - webpack: ~5.104.1 + webpack: '>=4.41.1 || 5.x' react-router-config@5.1.1: resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} @@ -4954,9 +4941,8 @@ packages: resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} - serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} - engines: {node: '>=20.0.0'} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} serve-handler@6.1.7: resolution: {integrity: sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==} @@ -5215,9 +5201,9 @@ packages: svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - svgo@4.0.1: - resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} - engines: {node: '>=16'} + svgo@3.3.3: + resolution: {integrity: sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==} + engines: {node: '>=14.0.0'} hasBin: true swagger2openapi@7.0.8: @@ -5240,7 +5226,7 @@ packages: '@swc/core': '*' esbuild: '*' uglify-js: '*' - webpack: ~5.104.1 + webpack: ^5.1.0 peerDependenciesMeta: '@swc/core': optional: true @@ -5448,12 +5434,15 @@ packages: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-loader@4.1.1: resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: file-loader: '*' - webpack: ~5.104.1 + webpack: ^4.0.0 || ^5.0.0 peerDependenciesMeta: file-loader: optional: true @@ -5480,8 +5469,9 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@14.0.0: - resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true value-equal@1.0.1: @@ -5522,7 +5512,7 @@ packages: resolution: {integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==} engines: {node: '>= 18.12.0'} peerDependencies: - webpack: ~5.104.1 + webpack: ^5.0.0 peerDependenciesMeta: webpack: optional: true @@ -5532,7 +5522,7 @@ packages: engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: - webpack: ~5.104.1 + webpack: ^5.0.0 webpack-cli: '*' peerDependenciesMeta: webpack: @@ -5569,7 +5559,7 @@ packages: resolution: {integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==} engines: {node: '>=14.21.3'} peerDependencies: - webpack: ~5.104.1 + webpack: 3 || 4 || 5 websocket-driver@0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} @@ -5605,6 +5595,18 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + ws@7.5.11: + resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -5643,6 +5645,10 @@ packages: yaml-ast-parser@0.0.43: resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + engines: {node: '>= 6'} + yaml@2.8.3: resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} @@ -6510,8 +6516,6 @@ snapshots: dependencies: core-js-pure: 3.49.0 - '@babel/runtime@7.29.2': {} - '@babel/runtime@7.29.7': {} '@babel/template@7.28.6': @@ -6882,7 +6886,7 @@ snapshots: '@babel/preset-env': 7.29.2(@babel/core@7.29.0) '@babel/preset-react': 7.28.5(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 '@babel/runtime-corejs3': 7.29.2 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.9.2 @@ -8015,7 +8019,7 @@ snapshots: js-levenshtein: 1.1.6 js-yaml: 4.1.1 lodash.isequal: 4.5.0 - minimatch: 10.2.5 + minimatch: 5.1.9 node-fetch: 2.7.0 pluralize: 8.0.0 yaml-ast-parser: 0.0.43 @@ -8128,7 +8132,7 @@ snapshots: '@svgr/core': 8.1.0(typescript@5.8.3) cosmiconfig: 8.3.6(typescript@5.8.3) deepmerge: 4.3.1 - svgo: 4.0.1 + svgo: 3.3.3 transitivePeerDependencies: - typescript @@ -8439,15 +8443,22 @@ snapshots: optionalDependencies: ajv: 8.18.0 - ajv-keywords@3.5.2(ajv@8.18.0): + ajv-keywords@3.5.2(ajv@6.15.0): dependencies: - ajv: 8.18.0 + ajv: 6.15.0 ajv-keywords@5.1.0(ajv@8.18.0): dependencies: ajv: 8.18.0 fast-deep-equal: 3.1.3 + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 @@ -8502,7 +8513,7 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 4.0.4 + picomatch: 2.3.2 arg@5.0.2: {} @@ -8578,7 +8589,7 @@ snapshots: bail@2.0.2: {} - balanced-match@4.0.4: {} + balanced-match@1.0.2: {} baseline-browser-mapping@2.10.21: {} @@ -8598,7 +8609,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.15.1 + qs: 6.14.2 raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 @@ -8634,9 +8645,14 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 - brace-expansion@5.0.6: + brace-expansion@1.1.15: dependencies: - balanced-match: 4.0.4 + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.1.1: + dependencies: + balanced-match: 1.0.2 braces@3.0.3: dependencies: @@ -8706,9 +8722,6 @@ snapshots: camelcase@7.0.1: {} - camelize@1.0.1: - optional: true - caniuse-api@3.0.0: dependencies: browserslist: 4.28.2 @@ -8824,8 +8837,6 @@ snapshots: commander@10.0.1: {} - commander@11.1.0: {} - commander@2.20.3: {} commander@4.1.1: {} @@ -8854,6 +8865,8 @@ snapshots: transitivePeerDependencies: - supports-color + concat-map@0.0.1: {} + confbox@0.1.8: {} confbox@0.2.4: {} @@ -8887,7 +8900,7 @@ snapshots: cookie-signature@1.0.7: {} - cookie@1.1.1: {} + cookie@0.7.2: {} copy-webpack-plugin@11.0.0(webpack@5.104.1): dependencies: @@ -8896,7 +8909,7 @@ snapshots: globby: 13.2.2 normalize-path: 3.0.0 schema-utils: 4.3.3 - serialize-javascript: 7.0.5 + serialize-javascript: 6.0.2 webpack: 5.104.1 core-js-compat@3.49.0: @@ -8933,9 +8946,6 @@ snapshots: postcss: 8.5.10 postcss-selector-parser: 7.1.1 - css-color-keywords@1.0.0: - optional: true - css-declaration-sorter@7.4.0(postcss@8.5.10): dependencies: postcss: 8.5.10 @@ -8967,7 +8977,7 @@ snapshots: jest-worker: 29.7.0 postcss: 8.5.10 schema-utils: 4.3.3 - serialize-javascript: 7.0.5 + serialize-javascript: 6.0.2 webpack: 5.104.1 optionalDependencies: clean-css: 5.3.3 @@ -8992,21 +9002,14 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-to-react-native@3.2.0: - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - optional: true - css-tree@2.2.1: dependencies: mdn-data: 2.0.28 source-map-js: 1.2.1 - css-tree@3.2.1: + css-tree@2.3.1: dependencies: - mdn-data: 2.27.1 + mdn-data: 2.0.30 source-map-js: 1.2.1 css-what@6.2.2: {} @@ -9158,11 +9161,11 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - docusaurus-plugin-redoc@2.5.0(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)): + docusaurus-plugin-redoc@2.5.0(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)): dependencies: '@docusaurus/utils': 3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@redocly/openapi-core': 1.16.0 - redoc: 2.4.0(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + redoc: 2.4.0(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) transitivePeerDependencies: - core-js - encoding @@ -9173,7 +9176,7 @@ snapshots: - styled-components - supports-color - docusaurus-theme-redoc@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(webpack@5.104.1): + docusaurus-theme-redoc@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(webpack@5.104.1): dependencies: '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@redocly/openapi-core': 1.16.0 @@ -9182,8 +9185,8 @@ snapshots: mobx: 6.15.0 postcss: 8.5.10 postcss-prefix-selector: 1.16.1(postcss@8.5.10) - redoc: 2.4.0(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) - styled-components: 6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + redoc: 2.4.0(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + styled-components: 6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) webpack: 5.104.1 transitivePeerDependencies: - core-js @@ -9412,7 +9415,7 @@ snapshots: body-parser: 1.20.4 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 1.1.1 + cookie: 0.7.2 cookie-signature: 1.0.7 debug: 2.6.9 depd: 2.0.0 @@ -9428,7 +9431,7 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 0.1.13 proxy-addr: 2.0.7 - qs: 6.15.1 + qs: 6.14.2 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.2 @@ -9459,6 +9462,8 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} + fast-safe-stringify@2.1.1: {} fast-uri@3.1.2: {} @@ -9772,7 +9777,7 @@ snapshots: history@4.10.1: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.3.3 @@ -10025,6 +10030,8 @@ snapshots: is-yarn-global@0.4.1: {} + isarray@0.0.1: {} + isarray@1.0.0: {} isexe@2.0.0: {} @@ -10038,7 +10045,7 @@ snapshots: chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 - picomatch: 4.0.4 + picomatch: 2.3.2 jest-worker@27.5.1: dependencies: @@ -10086,6 +10093,8 @@ snapshots: dependencies: foreach: 2.0.6 + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} json5@2.2.3: {} @@ -10389,7 +10398,7 @@ snapshots: mdn-data@2.0.28: {} - mdn-data@2.27.1: {} + mdn-data@2.0.30: {} media-typer@0.3.0: {} @@ -10716,7 +10725,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 4.0.4 + picomatch: 2.3.2 mime-db@1.33.0: {} @@ -10752,9 +10761,13 @@ snapshots: minimalistic-assert@1.0.1: {} - minimatch@10.2.5: + minimatch@3.1.5: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 1.1.15 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.1 minimist@1.2.8: {} @@ -10862,14 +10875,14 @@ snapshots: dependencies: '@exodus/schemasafe': 1.3.0 should: 13.2.3 - yaml: 2.8.3 + yaml: 1.10.3 oas-resolver@2.5.6: dependencies: node-fetch-h2: 2.3.0 oas-kit-common: 1.0.8 reftools: 1.1.9 - yaml: 2.8.3 + yaml: 1.10.3 yargs: 17.7.2 oas-schema-walker@1.1.5: {} @@ -10883,7 +10896,7 @@ snapshots: oas-schema-walker: 1.1.5 reftools: 1.1.9 should: 13.2.3 - yaml: 2.8.3 + yaml: 1.10.3 object-assign@4.1.1: {} @@ -11033,6 +11046,12 @@ snapshots: path-to-regexp@0.1.13: {} + path-to-regexp@1.9.0: + dependencies: + isarray: 0.0.1 + + path-to-regexp@3.3.0: {} + path-type@4.0.0: {} pathe@2.0.3: {} @@ -11041,6 +11060,8 @@ snapshots: picocolors@1.1.1: {} + picomatch@2.3.2: {} + picomatch@4.0.4: {} pify@2.3.0: {} @@ -11540,7 +11561,7 @@ snapshots: dependencies: postcss: 8.5.10 postcss-value-parser: 4.2.0 - svgo: 4.0.1 + svgo: 3.3.3 postcss-unique-selectors@6.0.4(postcss@8.5.10): dependencies: @@ -11596,6 +11617,8 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + punycode@2.3.1: {} + pupa@3.3.0: dependencies: escape-goat: 4.0.0 @@ -11606,7 +11629,7 @@ snapshots: pvutils@1.1.5: {} - qs@6.15.1: + qs@6.14.2: dependencies: side-channel: 1.1.0 @@ -11616,6 +11639,10 @@ snapshots: quick-lru@5.1.1: {} + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + range-parser@1.2.0: {} range-parser@1.2.1: {} @@ -11649,19 +11676,19 @@ snapshots: react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.104.1): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' webpack: 5.104.1 react-router-config@5.1.1(react-router@5.3.4(react@19.2.5))(react@19.2.5): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 react: 19.2.5 react-router: 5.3.4(react@19.2.5) react-router-dom@5.3.4(react@19.2.5): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -11672,11 +11699,11 @@ snapshots: react-router@5.3.4(react@19.2.5): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 - path-to-regexp: 0.1.13 + path-to-regexp: 1.9.0 prop-types: 15.8.1 react: 19.2.5 react-is: 16.13.1 @@ -11713,7 +11740,7 @@ snapshots: readdirp@3.6.0: dependencies: - picomatch: 4.0.4 + picomatch: 2.3.2 recma-build-jsx@1.0.0: dependencies: @@ -11744,7 +11771,7 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - redoc@2.4.0(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)): + redoc@2.4.0(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)): dependencies: '@redocly/openapi-core': 1.16.0 classnames: 2.5.1 @@ -11769,7 +11796,7 @@ snapshots: react-tabs: 6.1.1(react@19.2.5) slugify: 1.4.7 stickyfill: 1.1.1 - styled-components: 6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + styled-components: 6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) swagger2openapi: 7.0.8 url-template: 2.0.8 transitivePeerDependencies: @@ -11777,12 +11804,12 @@ snapshots: - react-native - supports-color - redocusaurus@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(css-to-react-native@3.2.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(webpack@5.104.1): + redocusaurus@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(webpack@5.104.1): dependencies: '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils': 3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - docusaurus-plugin-redoc: 2.5.0(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) - docusaurus-theme-redoc: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(webpack@5.104.1) + docusaurus-plugin-redoc: 2.5.0(@docusaurus/utils@3.9.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(mobx@6.15.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + docusaurus-theme-redoc: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(core-js@3.49.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(webpack@5.104.1) transitivePeerDependencies: - core-js - css-to-react-native @@ -11978,8 +12005,8 @@ snapshots: schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.18.0 - ajv-keywords: 3.5.2(ajv@8.18.0) + ajv: 6.15.0 + ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@4.3.3: dependencies: @@ -12028,16 +12055,18 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@7.0.5: {} + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 serve-handler@6.1.7: dependencies: bytes: 3.0.0 content-disposition: 0.5.2 mime-types: 2.1.18 - minimatch: 10.2.5 + minimatch: 3.1.5 path-is-inside: 1.0.2 - path-to-regexp: 0.1.13 + path-to-regexp: 3.3.0 range-parser: 1.2.0 serve-index@1.9.2: @@ -12175,7 +12204,7 @@ snapshots: sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 - uuid: 14.0.0 + uuid: 8.3.2 websocket-driver: 0.7.4 sort-css-media-queries@2.2.0: {} @@ -12283,14 +12312,13 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + styled-components@6.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@emotion/is-prop-valid': 1.4.0 csstype: 3.2.3 react: 19.2.5 stylis: 4.3.6 optionalDependencies: - css-to-react-native: 3.2.0 react-dom: 19.2.5(react@19.2.5) stylehacks@6.1.1(postcss@8.5.10): @@ -12323,11 +12351,11 @@ snapshots: svg-parser@2.0.4: {} - svgo@4.0.1: + svgo@3.3.3: dependencies: - commander: 11.1.0 + commander: 7.2.0 css-select: 5.2.2 - css-tree: 3.2.1 + css-tree: 2.3.1 css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 @@ -12344,7 +12372,7 @@ snapshots: oas-schema-walker: 1.1.5 oas-validator: 5.0.8 reftools: 1.1.9 - yaml: 2.8.3 + yaml: 1.10.3 yargs: 17.7.2 transitivePeerDependencies: - encoding @@ -12569,6 +12597,10 @@ snapshots: semver-diff: 4.0.0 xdg-basedir: 5.1.0 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-loader@4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@5.104.1): dependencies: loader-utils: 2.0.4 @@ -12592,7 +12624,7 @@ snapshots: utils-merge@1.0.1: {} - uuid@14.0.0: {} + uuid@8.3.2: {} value-equal@1.0.1: {} @@ -12639,7 +12671,7 @@ snapshots: opener: 1.5.2 picocolors: 1.1.1 sirv: 2.0.4 - ws: 8.21.0 + ws: 7.5.11 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -12798,6 +12830,8 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 + ws@7.5.11: {} + ws@8.21.0: {} wsl-utils@0.1.0: @@ -12818,6 +12852,8 @@ snapshots: yaml-ast-parser@0.0.43: {} + yaml@1.10.3: {} + yaml@2.8.3: {} yargs-parser@21.1.1: {} diff --git a/web/docs/pnpm-workspace.yaml b/web/docs/pnpm-workspace.yaml new file mode 100644 index 00000000..bf1f4101 --- /dev/null +++ b/web/docs/pnpm-workspace.yaml @@ -0,0 +1,30 @@ +overrides: + node-forge: ">=1.4.0" + image-size: ">=1.4.0" + webpack-dev-server: ">=4.16.0" + estree-util-value-to-estree: ">=3.4.1" + mdast-util-to-hast: ">=13.2.1" + "@babel/runtime-corejs3": ">=7.27.1" + "@babel/runtime": ">=7.27.1" + "@babel/helpers": ">=7.27.1" + glob: ">=10.5.0" + brace-expansion: ">=5.0.6" + "@isaacs/brace-expansion": ">=5.0.5" + picomatch: ">=4.0.4" + yaml: ">=2.8.3" + minimatch: ">=10.2.3" + on-headers: ">=1.1.0" + compression: ">=1.8.1" + mermaid: ">=11.10.0" + cookie: ">=0.7.0" + serialize-javascript: ">=7.0.5" + fast-xml-parser: ">=5.5.7" + svgo: ">=3.3.3" + dompurify: ">=3.3.2" + lodash: ">=4.18.1" + qs: ">=6.14.2" + ajv: ">=8.18.0" + path-to-regexp: "~0.1.13" + webpack: "~5.104.1" + uuid: ">=9.0.1" + ws: ">=8.20.1" diff --git a/web/docs/src/components/BenefitsShowcase.tsx b/web/docs/src/components/BenefitsShowcase.tsx index 36f9b4c8..8d91bfc3 100644 --- a/web/docs/src/components/BenefitsShowcase.tsx +++ b/web/docs/src/components/BenefitsShowcase.tsx @@ -8,7 +8,7 @@ const capabilities = [ icon: "mdi:magnify", title: "Discover", description: - "One place for AI and engineers to find every table, topic, queue and API.", + "One place for agents and humans to find every service, API, queue, topic and database.", }, { icon: "mdi:graph-outline", diff --git a/web/docs/src/components/ContextProblem.tsx b/web/docs/src/components/ContextProblem.tsx new file mode 100644 index 00000000..2446e8ca --- /dev/null +++ b/web/docs/src/components/ContextProblem.tsx @@ -0,0 +1,116 @@ +import React from "react"; +import { Icon } from "@iconify/react"; + +const todayItems = [ + "Schemas pasted into prompts that quietly go stale", + "A new MCP server to wire up for every source", + "No ownership, meaning or lineage, so the model guesses", + "Every team rebuilds the same context plumbing", +]; + +const marmotItems = [ + "One governed context layer across every asset", + "One MCP endpoint every agent shares", + "Ownership, definitions and lineage built in", + "Always live, never a stale copy", +]; + +export default function ContextProblem(): JSX.Element { + return ( +
+
+
+

+ Stop hardcoding context +

+

+ Why you need a context layer +

+

+ This is how most agents get data today, and why it doesn't last. A + context layer replaces the hand wired map with one that stays + current. +

+
+ +
+ {/* Today */} +
+
+ + + Hardcoded today + +
+
    + {todayItems.map((item) => ( +
  • + + + + + {item} + +
  • + ))} +
+
+ + {/* With Marmot */} +
+
+
+
+ + + With Marmot + +
+
    + {marmotItems.map((item) => ( +
  • + + + + + {item} + +
  • + ))} +
+
+
+
+ +

+ You don't move your databases to Marmot. You stop hardcoding the + context around them.{" "} + + See Marmot for agents + +

+
+
+ ); +} diff --git a/web/docs/src/components/DocCard.tsx b/web/docs/src/components/DocCard.tsx index 81e18b18..4c8d2822 100644 --- a/web/docs/src/components/DocCard.tsx +++ b/web/docs/src/components/DocCard.tsx @@ -163,33 +163,58 @@ interface FeatureCardProps { title: string; description: string; icon: string; + docId?: string; + href?: string; } export function FeatureCard({ title, description, icon, + docId, + href, }: FeatureCardProps): JSX.Element { - return ( -
-
-
- -
-
-

- {title} -

-

- {description} -

-
+ const to = useDocHref(docId, href); + const linked = Boolean(docId || href); + + const inner = ( +
+
+ +
+
+

+ {title} + {linked && ( + + )} +

+

+ {description} +

); + + if (!linked) { + return ( +
+ {inner} +
+ ); + } + + return ( + + {inner} + + ); } export function FeatureGrid({ children }: DocCardGridProps): JSX.Element { diff --git a/web/docs/src/components/Hero.tsx b/web/docs/src/components/Hero.tsx index 296953d8..d8b3bc0c 100644 --- a/web/docs/src/components/Hero.tsx +++ b/web/docs/src/components/Hero.tsx @@ -196,9 +196,9 @@ export default function Hero(): JSX.Element { data-animate-delay="2" className="text-4xl sm:text-5xl lg:text-6xl font-extrabold text-gray-900 dark:text-white mb-5 tracking-tight leading-[1.1]" > - Discover any data asset in seconds. + AI agents are only as good as
- Then let your AI do the same + the context they can reach.

- The open-source context layer for your AI. Catalog your tables, - topics, queues and APIs then expose real metadata to your AI agents. + Marmot is the open source context layer for agents and + humans. Catalog every service, API, queue, topic, database and + pipeline then expose real, governed context to your AI agents and your + team.

+
+
+
+ +
+

+ Only metadata. Your data stays put. +

+

+ A context layer needs to know about your assets, not to hold their + contents. Marmot is built so the data itself never leaves your + systems. +

+
+ +
+ {pillars.map((p, index) => ( +
+
+ +
+

+ {p.title} +

+

+ {p.description} +

+
+ ))} +
+ +

+ + Talk to us + +

+
+ + ); +} diff --git a/web/docs/src/pages/index.tsx b/web/docs/src/pages/index.tsx index 48fc6f8c..4e4d1f11 100644 --- a/web/docs/src/pages/index.tsx +++ b/web/docs/src/pages/index.tsx @@ -1,12 +1,14 @@ import React, { useEffect } from "react"; import Layout from "@theme/Layout"; import Hero from "../components/Hero"; +import ContextProblem from "../components/ContextProblem"; import BenefitsShowcase from "../components/BenefitsShowcase"; import QuickDeploy from "../components/QuickDeploy"; import ArchitectureComparison from "../components/ArchitectureComparison"; import DataSources from "../components/DataSources"; import PerformanceProof from "../components/PerformanceProof"; import MCPShowcase from "../components/MCPShowcase"; +import SecurityTrust from "../components/SecurityTrust"; import CTA from "../components/CTA"; export default function Home(): JSX.Element { @@ -33,17 +35,19 @@ export default function Home(): JSX.Element { return (
+ +