From ed955f146026c01ba1d64b23c73f96be66932de4 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Fri, 17 Apr 2026 16:23:19 -0700 Subject: [PATCH 1/4] Initial template for new Monodex website --- common/config/rush/pnpm-lock.yaml | 91 +++++++++ rush.json | 4 + websites/monodex.ai/README.md | 62 ++++++ websites/monodex.ai/babel.config.js | 3 + websites/monodex.ai/docs/index.md | 23 +++ .../docs/pages/basics/getting_started.md | 5 + .../docs/pages/cli/monodex_crawl.md | 20 ++ .../docs/pages/support/contributing.md | 13 ++ .../monodex.ai/docs/pages/support/help.md | 16 ++ .../monodex.ai/docs/pages/support/news.md | 23 +++ websites/monodex.ai/docusaurus.config.js | 160 +++++++++++++++ websites/monodex.ai/package.json | 56 ++++++ websites/monodex.ai/sidebars.js | 38 ++++ websites/monodex.ai/src/css/custom.css | 182 ++++++++++++++++++ websites/monodex.ai/src/globals.d.ts | 4 + websites/monodex.ai/static/CNAME | 1 + .../static/images/site/monodex-logo.svg | 27 +++ .../static/images/site/monodex-ograph.jpg | Bin 0 -> 155858 bytes .../static/images/suitenav/ae-icon.svg | 4 + .../static/images/suitenav/calendar-icon.svg | 1 + .../static/images/suitenav/chat-icon.svg | 1 + .../static/images/suitenav/heft-icon.svg | 1 + .../static/images/suitenav/lfx-icon.svg | 4 + .../static/images/suitenav/rs-waffle-dark.svg | 1 + .../static/images/suitenav/rs-waffle.svg | 1 + .../static/images/suitenav/rush-icon.svg | 1 + .../static/images/suitenav/rushstack-icon.svg | 1 + .../static/images/suitenav/tsdoc-icon.svg | 1 + websites/monodex.ai/tsconfig.json | 42 ++++ 29 files changed, 786 insertions(+) create mode 100644 websites/monodex.ai/README.md create mode 100644 websites/monodex.ai/babel.config.js create mode 100644 websites/monodex.ai/docs/index.md create mode 100644 websites/monodex.ai/docs/pages/basics/getting_started.md create mode 100644 websites/monodex.ai/docs/pages/cli/monodex_crawl.md create mode 100644 websites/monodex.ai/docs/pages/support/contributing.md create mode 100644 websites/monodex.ai/docs/pages/support/help.md create mode 100644 websites/monodex.ai/docs/pages/support/news.md create mode 100644 websites/monodex.ai/docusaurus.config.js create mode 100644 websites/monodex.ai/package.json create mode 100644 websites/monodex.ai/sidebars.js create mode 100644 websites/monodex.ai/src/css/custom.css create mode 100644 websites/monodex.ai/src/globals.d.ts create mode 100644 websites/monodex.ai/static/CNAME create mode 100644 websites/monodex.ai/static/images/site/monodex-logo.svg create mode 100644 websites/monodex.ai/static/images/site/monodex-ograph.jpg create mode 100644 websites/monodex.ai/static/images/suitenav/ae-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/calendar-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/chat-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/heft-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/lfx-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/rs-waffle-dark.svg create mode 100644 websites/monodex.ai/static/images/suitenav/rs-waffle.svg create mode 100644 websites/monodex.ai/static/images/suitenav/rush-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/rushstack-icon.svg create mode 100644 websites/monodex.ai/static/images/suitenav/tsdoc-icon.svg create mode 100644 websites/monodex.ai/tsconfig.json diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 8316f9b18..fa3dd1388 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -428,6 +428,97 @@ importers: specifier: ~5.8.2 version: 5.8.3 + ../../websites/monodex.ai: + dependencies: + '@docusaurus/core': + specifier: 3.10.0 + version: 3.10.0(@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) + '@docusaurus/preset-classic': + specifier: 3.10.0 + version: 3.10.0(@algolia/client-search@5.50.2)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3)(typescript@5.8.3) + '@docusaurus/theme-common': + specifier: 3.10.0 + version: 3.10.0(@docusaurus/plugin-content-docs@3.10.0(@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) + '@mdx-js/react': + specifier: ~3.1.1 + version: 3.1.1(@types/react@19.2.14)(react@19.2.5) + '@svgr/webpack': + specifier: ~8.1.0 + version: 8.1.0(typescript@5.8.3) + clsx: + specifier: ~2.1.1 + version: 2.1.1 + dayjs: + specifier: ~1.11.20 + version: 1.11.20 + docusaurus-theme-search-typesense: + specifier: ~0.26.0 + version: 0.26.0(@algolia/client-search@5.50.2)(@babel/runtime@7.29.2)(@docusaurus/core@3.10.0(@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))(@docusaurus/theme-common@3.10.0(@docusaurus/plugin-content-docs@3.10.0(@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))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(algoliasearch@5.50.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.8.3) + file-loader: + specifier: ^6.2.0 + version: 6.2.0(webpack@5.98.0) + js-cookie: + specifier: ~3.0.1 + version: 3.0.5 + react: + specifier: ^19.2.5 + version: 19.2.5 + react-dom: + specifier: ^19.2.5 + version: 19.2.5(react@19.2.5) + search-insights: + specifier: ^2.17.0 + version: 2.17.3 + theme-rushstack-suite-nav: + specifier: workspace:* + version: link:../../plugins/theme-rushstack-suite-nav + tslib: + specifier: ^2.4.0 + version: 2.8.1 + url-loader: + specifier: ^4.1.1 + version: 4.1.1(file-loader@6.2.0(webpack@5.98.0))(webpack@5.98.0) + devDependencies: + '@algolia/client-search': + specifier: ~5.50.1 + version: 5.50.2 + '@babel/core': + specifier: ~7.29.0 + version: 7.29.0 + '@babel/runtime': + specifier: ~7.29.2 + version: 7.29.2 + '@docusaurus/types': + specifier: 3.10.0 + version: 3.10.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@types/js-cookie': + specifier: 3.0.6 + version: 3.0.6 + '@types/node': + specifier: 25.6.0 + version: 25.6.0 + '@types/react': + specifier: ^19.2.14 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.14) + algoliasearch: + specifier: ~5.50.1 + version: 5.50.2 + rehype-headerless-table-plugin: + specifier: workspace:* + version: link:../../plugins/rehype-headerless-table-plugin + remark-cross-site-link-plugin: + specifier: workspace:* + version: link:../../plugins/remark-cross-site-link-plugin + site-config: + specifier: workspace:* + version: link:../../tools/site-config + typescript: + specifier: ~5.8.2 + version: 5.8.3 + ../../websites/rushjs.io: dependencies: '@docusaurus/core': diff --git a/rush.json b/rush.json index c8c85fb00..bbe200571 100644 --- a/rush.json +++ b/rush.json @@ -351,6 +351,10 @@ "packageName": "lfx.rushstack.io", "projectFolder": "websites/lfx.rushstack.io" }, + { + "packageName": "monodex.ai", + "projectFolder": "websites/monodex.ai" + }, { "packageName": "rushstack.io", "projectFolder": "websites/rushstack.io" diff --git a/websites/monodex.ai/README.md b/websites/monodex.ai/README.md new file mode 100644 index 000000000..7eab72df1 --- /dev/null +++ b/websites/monodex.ai/README.md @@ -0,0 +1,62 @@ +# monodex.ai + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +## Local development + +To build dependencies and then start the local dev server: + +``` +rush build --to-except . +rushx start +``` + +## Managing translations + +Instructions for internationalization with Docusaurus: https://docusaurus.io/docs/i18n/introduction + +The supported locales for this project can be found in the `"i18n"` section of +[docusaurus.config.js](./docusaurus.config.js). + +> **NOTE:** Each locale is built as a distinct standalone single-page application. The localhost +> dev server builds only one locale at a time. To view multiple locales together, you must deploy +> the site. +> Common commands: + +- `rushx start --locale zh-cn` - launch the localhost dev server in the specified language. + +- `rushx write-translations --locale zh-cn` - Update the `i18n/*.json` files with any new strings. + +## Building a production build + +To produce the static site in the `build` directory: + +``` +rushx build +``` + +You can serve this production build locally to test it: + +``` +rushx serve +``` + +## Deployment + +To build the production site and then push it to the `gh-pages` branch of the target repo: + +``` +export GIT_USER= + +# (Optional) Specify this if you use SSH instead of HTTPS authentication +export USE_SSH=true + +# Specify the deployment target +export TARGET=prod + +rushx deploy +``` + +(Typically, this deployment will happen in a CI/CD pipeline, which will have the credentials +necessary to write to the https://github.com/microsoft/rushjs.io-website repo that serves as the +GitHub Pages deployment target.) diff --git a/websites/monodex.ai/babel.config.js b/websites/monodex.ai/babel.config.js new file mode 100644 index 000000000..6bf8d26f1 --- /dev/null +++ b/websites/monodex.ai/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')] +}; diff --git a/websites/monodex.ai/docs/index.md b/websites/monodex.ai/docs/index.md new file mode 100644 index 000000000..22f632626 --- /dev/null +++ b/websites/monodex.ai/docs/index.md @@ -0,0 +1,23 @@ +--- +title: Overview +hide_title: true +--- + +Rush Monodex + +**Semantic search indexer for Rush monorepos using Qdrant vector database** + +## Overview + +`monodex` is a CLI tool that indexes Rush monorepo source code and documentation into a Qdrant vector database for scalable semantic search. + +### Features + +- **AST-based chunking**: Tree-sitter powered intelligent splitting for TypeScript/TSX files +- **Breadcrumb context**: Full symbol paths like `@rushstack/node-core-library:JsonFile.ts:JsonFile.load` +- **Oversized chunk handling**: Functions split at natural AST boundaries (statement blocks, if/else, try/catch) +- **Local embeddings**: Uses jina-embeddings-v2-base-code with ONNX Runtime (no external APIs) +- **Qdrant integration**: Direct batch uploads to Qdrant vector database +- **Incremental sync**: Content-hash based change detection for fast re-indexing +- **Rush-optimized**: Smart exclusion rules for Rush monorepo patterns diff --git a/websites/monodex.ai/docs/pages/basics/getting_started.md b/websites/monodex.ai/docs/pages/basics/getting_started.md new file mode 100644 index 000000000..42e025191 --- /dev/null +++ b/websites/monodex.ai/docs/pages/basics/getting_started.md @@ -0,0 +1,5 @@ +--- +title: Getting started +--- + +## Usage diff --git a/websites/monodex.ai/docs/pages/cli/monodex_crawl.md b/websites/monodex.ai/docs/pages/cli/monodex_crawl.md new file mode 100644 index 000000000..f850471cd --- /dev/null +++ b/websites/monodex.ai/docs/pages/cli/monodex_crawl.md @@ -0,0 +1,20 @@ +--- +title: monodex crawl +--- + +``` +Crawl source and index into Qdrant (incremental sync). Reports warnings when AST chunking fails and fallback is used. These warnings indicate partitioner defects to investigate + + +Usage: monodex crawl [OPTIONS] --label