Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ The following websites are maintained in this monorepo:
- https://api.rushstack.io
- https://lfx.rushstack.io
- https://heft.rushstack.io/
- https://monodex.ai
- https://rushjs.io
- https://rushstack.io
- https://tsdoc.org
Expand Down
91 changes: 91 additions & 0 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions rush.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
7 changes: 2 additions & 5 deletions websites/api-extractor.com/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# api-extractor.com

This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
This website is built using [Docusaurus 3](https://docusaurus.io/), a modern static website generator.

## Local development

Expand Down Expand Up @@ -51,12 +51,9 @@ export GIT_USER=<Your GitHub username>
# (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
necessary to write to the https://github.com/microsoft/api-extractor.com-website repo that serves as the
GitHub Pages deployment target.)
2 changes: 1 addition & 1 deletion websites/api-extractor.com/src/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ html[data-theme='dark'] blockquote {
* An "external" page has "://" in its URL and does not include a recognized DNS name.
* The `:not(.avatar > *)` and `:not(.avatar__name > *)` exclusions are for blog author details.
*/
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="rushstack.io"]):not([href*="api.rushstack.io"]):not([href*="lfx.rushstack.io"]):not([href*="rushjs.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="monodex.ai"]):not([href*="rushjs.io"]):not([href*="rushstack.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
{
background-position: center right;
background-repeat: no-repeat;
Expand Down
2 changes: 1 addition & 1 deletion websites/api.rushstack.io/src/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ html[data-theme='dark'] blockquote {
* An "external" page has "://" in its URL and does not include a recognized DNS name.
* The `:not(.avatar > *)` and `:not(.avatar__name > *)` exclusions are for blog author details.
*/
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="rushstack.io"]):not([href*="api.rushstack.io"]):not([href*="lfx.rushstack.io"]):not([href*="rushjs.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="monodex.ai"]):not([href*="rushjs.io"]):not([href*="rushstack.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
{
background-position: center right;
background-repeat: no-repeat;
Expand Down
5 changes: 1 addition & 4 deletions websites/heft.rushstack.io/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# heft.rushstack.io

This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
This website is built using [Docusaurus 3](https://docusaurus.io/), a modern static website generator.

## Local development

Expand Down Expand Up @@ -51,9 +51,6 @@ export GIT_USER=<Your GitHub username>
# (Optional) Specify this if you use SSH instead of HTTPS authentication
export USE_SSH=true

# Specify the deployment target
export TARGET=prod

rushx deploy
```

Expand Down
2 changes: 1 addition & 1 deletion websites/heft.rushstack.io/src/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ html[data-theme='dark'] blockquote {
* An "external" page has "://" in its URL and does not include a recognized DNS name.
* The `:not(.avatar > *)` and `:not(.avatar__name > *)` exclusions are for blog author details.
*/
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="rushstack.io"]):not([href*="api.rushstack.io"]):not([href*="lfx.rushstack.io"]):not([href*="rushjs.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="monodex.ai"]):not([href*="rushjs.io"]):not([href*="rushstack.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this should go in a common place.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The right way would be to create a Docusaurus custom theme use by all the Rush Stack projects, but it's outside the scope of this PR. And this particular CSS rule would be tricky because although the selector is reused, the CSS content is different because it has site-specific coloring information.

{
background-position: center right;
background-repeat: no-repeat;
Expand Down
7 changes: 2 additions & 5 deletions websites/lfx.rushstack.io/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# lfx.rushstack.io

This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
This website is built using [Docusaurus 3](https://docusaurus.io/), a modern static website generator.

## Local development

Expand Down Expand Up @@ -51,12 +51,9 @@ export GIT_USER=<Your GitHub username>
# (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
necessary to write to the https://github.com/microsoft/lfx.rushstack.io-website repo that serves as the
GitHub Pages deployment target.)
2 changes: 1 addition & 1 deletion websites/lfx.rushstack.io/src/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ html[data-theme='dark'] blockquote {
* An "external" page has "://" in its URL and does not include a recognized DNS name.
* The `:not(.avatar > *)` and `:not(.avatar__name > *)` exclusions are for blog author details.
*/
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="rushstack.io"]):not([href*="api.rushstack.io"]):not([href*="lfx.rushstack.io"]):not([href*="rushjs.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
article a[href*="://"]:not([href*="api-extractor.com"]):not([href*="monodex.ai"]):not([href*="rushjs.io"]):not([href*="rushstack.io"]):not([href*="tsdoc.org"]):not([href*="localhost"]):not(.no-external-link-icon):not(.avatar > *):not(.avatar__name > *):not(.mention)
{
background-position: center right;
background-repeat: no-repeat;
Expand Down
59 changes: 59 additions & 0 deletions websites/monodex.ai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# monodex.ai

This website is built using [Docusaurus 3](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=<Your GitHub username>

# (Optional) Specify this if you use SSH instead of HTTPS authentication
export USE_SSH=true

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/monodex.ai-website repo that serves as the
GitHub Pages deployment target.)
3 changes: 3 additions & 0 deletions websites/monodex.ai/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')]
};
23 changes: 23 additions & 0 deletions websites/monodex.ai/docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Overview
hide_title: true
---

<img src="/images/site/monodex-logo.svg" alt="Rush Monodex" title="Rush Monodex"
style={{ height: '130px', paddingBottom: '1rem' }}/>

**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
5 changes: 5 additions & 0 deletions websites/monodex.ai/docs/pages/basics/getting_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: Getting started
---

## Usage
20 changes: 20 additions & 0 deletions websites/monodex.ai/docs/pages/cli/monodex_crawl.md
Original file line number Diff line number Diff line change
@@ -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 <LABEL> <--commit <COMMIT>|--working-dir>


Options:
--catalog <CATALOG> Catalog name (from config file, uses default context if not provided)
--debug Enable verbose debug logging for network requests and other operations
--label <LABEL> Label name for this crawl (e.g., "main", "feature-x", "local") REQUIRED: Must be explicitly specified to avoid accidental overwrites. Label ID will be computed as <catalog>:<label>
--commit <COMMIT> Git commit to crawl (branch name, tag, or commit SHA)
--working-dir Crawl the working directory instead of a Git commit. Indexes uncommitted changes
--incremental-warnings Allow files with chunking warnings to participate in incremental skipping
-h, --help Print help
```
13 changes: 13 additions & 0 deletions websites/monodex.ai/docs/pages/support/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Contributing
---

Monodex is developed in its own GitHub repo separate from the other Rush Stack projects:

[https://github.com/microsoft/monodex](https://github.com/microsoft/monodex)

(We made this choice because the codebase uses Rust instead of TypeScript and experienced heavy churn during its early stages, however the plan is to eventually migrate it into the big [microsoft/rushstack](https://github.com/microsoft/rushstack) monorepo.)

The `monodex.ai` website is hosted in this GitHub repo:

[https://github.com/microsoft/rushstack-websites](https://github.com/microsoft/rushstack-websites/tree/main/websites/monodex.ai)
16 changes: 16 additions & 0 deletions websites/monodex.ai/docs/pages/support/help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Help
---

Monodex is actively developed by the [Rush Stack](@rushstack/) community. There are various community options for help:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this link end up resolving to?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rushstack/ goes to https://rushstack.io/ as part of our remark-cross-site-link-plugin

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "unrelated" changes are just things that AI caught for the new site, which have copy+paste equivalents in all the other sites.


- **Found a bug?** You can [open a GitHub issue](https://github.com/microsoft/monodex/issues)
in the **microsoft/monodex** monorepo where Monodex is developed

- **Zulip**: Chat with Rush developers in the Rush Stack [Zulip chat room](https://rushstack.zulipchat.com/)

- **If a PR needs attention,** try asking in the
[#contributor-helpline](https://rushstack.zulipchat.com/#narrow/stream/279883-contributor-helpline)
chat room. We carefully review each submission before merging, which is time consuming work. The maintainers
are all people who manage large corporate monorepos with regular daily distractions, so PRs frequently
get overlooked. Your contributions are greatly appreciated -- we do want to get that PR reviewed!
23 changes: 23 additions & 0 deletions websites/monodex.ai/docs/pages/support/news.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: What's new
---

import { MastodonFeed } from 'theme-rushstack-suite-nav/lib/components/MastodonFeed';

To find out what's changed in the latest release, please see the Monodex
[CHANGELOG.md](https://github.com/microsoft/monodex/blob/main/CHANGELOG.md).

Monodex is maintained by the Rush Stack developer community. For roadmaps and updates from the team,
please visit the [Rush Stack News](https://rushstack.io/pages/news/) page.

The **Rush Hour** monthly video call is the easiest way to find out what's happening with Monodex:

- Sign up using the [Events](https://rushstack.io/community/events/) page.
- If you missed an event, the [Past Events](https://rushstack.io/community/past-events/) archive often
includes a green **Meeting Notes** button with a summary of important points.

## Announcements

Follow us on [Mastodon (@[email protected])](https://fosstodon.org/@rushstack) or [Twitter (@rushstack)](https://twitter.com/rushstack).

<MastodonFeed mastodonUserFullName="@[email protected]" mastodonUserId="109525862248474026" maxFeedItems="6" />
Loading
Loading