Skip to content
Merged
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
99e6500
chore: Add plans for server separation of services refactor to enable…
bashandbone Nov 28, 2025
6c8fc4f
chore: update planning docs
bashandbone Nov 28, 2025
e8af406
refactor: moved fastmcp initialization to new 'mcp' package, moved mi…
bashandbone Nov 29, 2025
8a3c6b1
Refactor CodeWeaver application state management
bashandbone Nov 30, 2025
e7544aa
Initial plan
Copilot Nov 30, 2025
1188a34
Initial analysis of refactor state
Copilot Nov 30, 2025
c69a268
Fix server refactor: add ServerSetup, app_bindings, fix imports and b…
Copilot Nov 30, 2025
878fbd1
Fix lint issues and update exports
Copilot Nov 30, 2025
0344fa2
Merge pull request #169 from knitli/copilot/refactor-mcp-server-creation
bashandbone Nov 30, 2025
e79c43a
refactor(server): Continued server refactoring, splitting server.serv…
bashandbone Nov 30, 2025
03be278
refactor(server): completed background services refactor
bashandbone Dec 1, 2025
515867f
refactor(server) separated lifespan creation and fixed several small …
bashandbone Dec 1, 2025
9ea28da
fix(imports): fixed several imports affected by refactoring
bashandbone Dec 1, 2025
9e918bd
refactor(server): broke up http mcp server run command in main.py for…
bashandbone Dec 1, 2025
b7c075a
chore: move schema to v1 folder, add guide for remaining refactor
bashandbone Dec 1, 2025
bf31708
refactor(cli): refactored new start command to use updated context ma…
bashandbone Dec 1, 2025
970c6c4
fix: correct 'data_header' to 'date_header' in Uvicorn server setting…
bashandbone Dec 1, 2025
5d3e317
chore: refactoring cleanup
bashandbone Dec 1, 2025
d7a4870
chore: update reuse compliance
bashandbone Dec 1, 2025
753608f
Initial plan
Copilot Dec 1, 2025
2ed5591
Fix IndexingStats computed_field to methods and add telemetry to fixture
Copilot Dec 1, 2025
f01dad4
Fix telemetry test to check for actual query fields
Copilot Dec 1, 2025
a0b3b0e
Merge pull request #170 from knitli/copilot/fix-broken-tests-and-cove…
bashandbone Dec 1, 2025
b147a3c
feat: update versioning to PEP 440 compliance and enhance tests for v…
bashandbone Dec 1, 2025
75bbfbd
fix: add eol in .roo/mcp.json
bashandbone Dec 1, 2025
8cbce08
Enhance AWSProviderSettings documentation and improve JSON schema han…
bashandbone Dec 1, 2025
868b37b
chore: update settings schema
bashandbone Dec 1, 2025
0b9a974
Potential fix for pull request finding 'Redundant assignment'
bashandbone Dec 1, 2025
f54d1ae
merge in main README changes
bashandbone Nov 28, 2025
eaa04b2
Initial plan
Copilot Dec 1, 2025
7dc725b
Add REUSE.toml for proper third-party licensing, remove incorrect .li…
Copilot Dec 1, 2025
1319b68
Revert unintentional changes to _version.py
Copilot Dec 1, 2025
d037b43
Fix missing trailing newline in .claude/mcp.json
Copilot Dec 1, 2025
9d9b4a4
chore: format reuse.toml
bashandbone Dec 1, 2025
d6a8f5d
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
bc5d978
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
a3b3d83
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
eeea5af
fix: workflow syntax casuing copilot failures
bashandbone Dec 1, 2025
abaa4c2
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
9da52a6
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
18666b9
feat: add cloud agent-specific mise config and remove caching from gl…
bashandbone Dec 1, 2025
0695356
Update mise.toml
bashandbone Dec 1, 2025
8ca5434
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
4fcfe83
Update src/codeweaver/cli/commands/start.py
bashandbone Dec 1, 2025
fff80af
Update src/codeweaver/server/health/health_service.py
bashandbone Dec 1, 2025
9a5246c
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
7b784d6
Update src/codeweaver/server/management.py
bashandbone Dec 1, 2025
f8534fc
Update src/codeweaver/mcp/server.py
bashandbone Dec 1, 2025
e28466f
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
9e2785a
Update src/codeweaver/server/background_services.py
bashandbone Dec 1, 2025
b06474e
Update src/codeweaver/mcp/server.py
bashandbone Dec 1, 2025
066eaa0
Update version and refactor middleware context usage across multiple …
bashandbone Dec 1, 2025
ef5d4ea
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
ff7bb72
Update src/codeweaver/common/statistics.py
bashandbone Dec 1, 2025
7df9249
Update src/codeweaver/mcp/server.py
bashandbone Dec 1, 2025
9bc8b37
Update mise.toml
bashandbone Dec 1, 2025
e9d4ca9
Initial plan
Copilot Dec 1, 2025
41f8430
chore: minor style edit to README.md
bashandbone Nov 28, 2025
0f4bb06
fix: update claude.yml to allow more turns
bashandbone Dec 1, 2025
a14b0b5
fix: correct method call for sparse vector preparation
github-actions[bot] Dec 1, 2025
0c811f4
Initial plan
Copilot Dec 1, 2025
b4d5a90
Fix Qdrant health check endpoint and improve wait logic in CI
Copilot Dec 1, 2025
5c43294
Address code review: use TCP healthcheck for Qdrant, extract URLs to …
Copilot Dec 1, 2025
6d3c9f6
Update docker-compose.yml
bashandbone Dec 1, 2025
b5e2fe4
Initial plan
Copilot Dec 1, 2025
6289eb2
Remove auto-generated _version.py from git tracking (in .gitignore)
Copilot Dec 1, 2025
392a5fc
Initial plan
Copilot Nov 30, 2025
b90eac2
Initial analysis of refactor state
Copilot Nov 30, 2025
ffc9e80
Initial plan
Copilot Dec 1, 2025
f568767
Initial plan
Copilot Dec 1, 2025
4675d41
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
aae77b1
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
f919ae0
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
1a271c8
remove _version
bashandbone Dec 1, 2025
a68b392
fix: eol
bashandbone Dec 1, 2025
56464ca
fix: eol
bashandbone Dec 1, 2025
c84f64a
Potential fix for pull request finding 'Module is imported more than …
bashandbone Dec 1, 2025
d4b1377
Update src/codeweaver/server/management.py
bashandbone Dec 1, 2025
c1a9adc
Merge branch 'main' into feat-background-services
bashandbone Dec 1, 2025
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
7 changes: 5 additions & 2 deletions .github/actions/setup-python-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ runs:
if: inputs.skip-mise-setup != 'true'
shell: bash
run: |
export PATH="$HOME/.local/bin:$PATH" -E ci
export PATH="$HOME/.local/bin:$PATH"
export MISE_ENV="ci"
export MISE_YES=1
mise trust --all
mise run setup > /dev/null 2>&1 || true
# Guard heavy setup with a timeout to limit runner memory and time usage in CI
timeout 10m mise run setup > /dev/null 2>&1 || true
22 changes: 14 additions & 8 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ jobs:
MISE_ENV: "ci"
MISE_YES: 1
runs-on: ubuntu-latest
# Add an overall job timeout so we don't let runaway installs exhaust the runner indefinitely
timeout-minutes: 30
# Set the permissions to the lowest permissions possible needed for your steps.
# Copilot will be given its own token for its operations.
permissions:
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your[...]
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission.
contents: write
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
Expand All @@ -45,7 +45,7 @@ jobs:
~/.local/share/mise
~/.local/bin/mise
~/.local/share/mise/shims
~/. cache/mise
~/.cache/mise
~/.local/bin
key: mise-copilot-${{ runner.os }}-${{ hashFiles('mise.ci.toml') }}
restore-keys: |
Expand All @@ -57,10 +57,10 @@ jobs:
path: |
~/.cache/uv
.venv
key: uv-copilot-${{ runner.os }}-${{ hashFiles('uv.lock') }}
key: uv-copilot-${{ runner.os }}-py3.12-${{ hashFiles('uv.lock') }}
restore-keys: |
uv-copilot-${{ runner.os }}-
uv-${{ runner. os }}-
uv-${{ runner.os }}-
- uses: jdx/mise-action@fcec31d82eb5c88cd7eb3fe3c270cb093aeeef18
with:
# Disable automatic env export to avoid hanging on enter hook in CI
Expand All @@ -76,15 +76,21 @@ jobs:
cd codeweaver
fi
echo "Mise setup in directory: $(pwd)"
MISE="$(which mise)"
MISE="$(which mise || true)"
if [ -z "$MISE" ]; then
echo "mise not found on PATH; skipping install step"
exit 0
fi
export MISE
MISE_DIR="$(dirname "$MISE")"
export MISE_DIR
# Trust the config globally
"$MISE" --quiet -y trust
# Also set the trusted config paths environment variable for subprocesses
echo "MISE_TRUSTED_CONFIG_PATHS=$PWD/mise.toml:$PWD/mise.ci.toml" >> "$GITHUB_ENV"
"$MISE" --quiet -y install 2>&1 || echo "Warning: Some tools failed to install due to network limitations in CI environment"
# Guard the install with a timeout to prevent OOM / runaway installs in CI
# If the install fails or timeouts, we continue with a warning so Copilot can still run.
timeout 10m "$MISE" --quiet -y install 2>&1 || echo "Warning: Some tools failed to install due to network limitations or timeout in CI environment"
env:
MISE_DIR: ${{ runner.temp }}/mise
- name: Configure Mise and Activate Environment
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ on:
workflow_dispatch:
inputs:
update_description_only:
description: 'Only update Docker Hub description (no build)'
description: "Only update Docker Hub description (no build)"
required: false
type: boolean
default: false
Expand Down Expand Up @@ -168,14 +168,15 @@ jobs:
echo "Error: .git directory not found!"
exit 1
fi
# .github/workflows/docker.yml
- name: Create test environment file
run: |
cat > .env << EOF
PROJECT_PATH=.
CODEWEAVER_PORT=9328
QDRANT_PORT=6333
QDRANT_GRPC_PORT=6334
VOYAGE_API_KEY=test-key-for-compose-test
CODEWEAVER_PROFILE=quickstart # ← Add this
COLLECTION_NAME=codeweaver-test
ENABLE_TELEMETRY=false
LOG_LEVEL=INFO
Expand All @@ -184,14 +185,15 @@ jobs:
run: |
docker compose build
docker compose up -d
# .github/workflows/docker.yml
- name: Wait for services to be healthy
run: |
echo "Waiting for Qdrant to be ready..."
timeout 60 bash -c 'until curl -sf http://localhost:6333/health; do sleep 2; done'

echo "Waiting for CodeWeaver to be ready..."
# CodeWeaver may take longer due to initial setup
timeout 120 bash -c 'until curl -sf http://localhost:9328/health/ 2>/dev/null; do sleep 5; done' || true
# Increase timeout to 5 minutes for initial model downloads
timeout 300 bash -c 'until curl -sf http://localhost:9328/health/ 2>/dev/null; do echo "Waiting for CodeWeaver (may download models on first run)..."; sleep 10; done'
- name: Test Qdrant accessibility
run: |
echo "Testing Qdrant health endpoint..."
Expand All @@ -200,7 +202,6 @@ jobs:
run: |
echo "Testing CodeWeaver health endpoint..."
curl -f http://localhost:9328/health/ || (docker compose logs codeweaver && exit 1)
continue-on-error: true # May fail without valid API key, but we test connectivity
- name: Check logs for errors
if: always()
run: |
Expand Down
137 changes: 91 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ mcp-name: com.knitli/codeweaver

### The missing abstraction layer between AI and your code

[![Python Version](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-green.svg)](LICENSE)
[![Alpha Release](https://img.shields.io/badge/release-alpha%201-orange.svg)](https://github.com/knitli/codeweaver/releases)
[![MCP Compatible](https://img.shields.io/badge/MCP-compatible-purple.svg)](https://modelcontextprotocol.io)
[![Python Version][badge_python]][link_python]
[![License][badge_license]][link_license]
[![Alpha Release][badge_release]][link_release]
[![MCP Compatible][badge_mcp]][link_mcp]

[Installation](#-getting-started)
[Features](#-features)
[How It Works](#-how-it-works)
[Documentation](#-documentation)
[Contributing](#-contributing)
[Installation][nav_install]
[Features][nav_features]
[How It Works][nav_how_it_works]
[Documentation][nav_docs]
[Contributing][nav_contributing]

</div>

Expand All @@ -41,7 +41,7 @@ mcp-name: com.knitli/codeweaver

**If you want AI that actually knows your code instead of guessing, this is the foundation.**

> ⚠️ **Alpha Release**: CodeWeaver is in active development. [Use it, break it, shape it, help make it better][report].
> ⚠️ **Alpha Release**: CodeWeaver is in active development. [Use it, break it, shape it, help make it better][issues].

---

Expand All @@ -66,15 +66,15 @@ mcp-name: com.knitli/codeweaver
✅ **Deploy it however you want**
✅ **One great tool instead of 30 mediocre ones**

📖 [Read the detailed rationale →][WHY]
📖 [Read the detailed rationale →][why_codeweaver]

---

## 🚀 Getting Started

### Quick Install

Using the [CLI](#cli) with [uv](https://astral.sh/uv):
Using the [CLI](#cli) with [uv][uv_tool]:

```bash
# Add CodeWeaver to your project
Expand All @@ -91,10 +91,10 @@ cw server
```

> **📝 Note**: `cw init` defaults to CodeWeaver's `recommended` profile, which requires:
> - 🔑 [Voyage AI API key](http://voyage.ai) (generous free tier)
> - 🗄️ [Qdrant instance](https://qdrant.tech) (cloud or local, generous free tier for cloud, free local)
> - 🔑 [Voyage AI API key][voyage_ai] (generous free tier)
> - 🗄️ [Qdrant instance][qdrant] (cloud or local, generous free tier for cloud, free local)

🐳 **Prefer Docker?** [See Docker setup guide →](DOCKER.md)
🐳 **Prefer Docker?** [See Docker setup guide →][docker_guide]

### MCP Configuration

Expand All @@ -113,7 +113,7 @@ cw server

> **💡 Why HTTP?** Unlike most MCP servers, CodeWeaver defaults to `streamable-http` transport for a more predictable, smoother experience.

> ⚠️ **Warning**: While `stdio` transport is technically possible, it's **untested** and may cause issues due to complex background orchestration. Use at your own risk!
> ⚠️ **Warning**: While `stdio` transport is technically possible, it's **untested** and may cause issues due to complex background orchestration. Use at your own risk! We hope to make it fully available in the next Alpha Release (2).

---

Expand Down Expand Up @@ -166,7 +166,7 @@ cw server
- **Multiple embedding providers**
- **Sparse & dense models**
- **Reranking support**
- [See full provider list →](overrides/partials/providers.md)
- [See full provider list →][providers_list]

</td>
<td>
Expand All @@ -185,7 +185,7 @@ cw server

## 🏗️ How It Works

CodeWeaver combines [AST][wiki_ask]-level understanding, semantic relationships, and hybrid embeddings (sparse + dense) to deliver both contextual and literal understanding of your codebase.
CodeWeaver combines [AST][wiki_ast]-level understanding, semantic relationships, and hybrid embeddings (sparse + dense) to deliver both contextual and literal understanding of your codebase.

**The goal: give AI the fragments it *should* see, not whatever it can grab.**

Expand Down Expand Up @@ -262,7 +262,7 @@ _Legend: ⭐⭐⭐⭐ = solid | ⭐⭐⭐ = works with quirks | ⭐⭐ = experim

## 🗺️ Roadmap

The [`enhancement`](https://github.com/knitli/codeweaver/labels/enhancement) issues describe detailed plans. Short version:
The [`enhancement`][enhancement_label] issues describe detailed plans. Short version:

- 📚 **Way better docs** – comprehensive guides and tutorials
- 🤖 **AI-powered context curation** – agents identify purpose and intent
Expand All @@ -281,17 +281,17 @@ Agents just need to explain what they need. No complex schemas. No novella-lengt
## 📚 Documentation

### For Users
- 🐳 [Docker Setup Notes](docs/docker/DOCKER_BUILD_NOTES.md)
- 🚀 [Getting Started Guide](#-getting-started)
- 🐳 [Docker Setup Notes][docker_notes]
- 🚀 [Getting Started Guide][nav_install]

### For Developers
- 🏗️ [Overall Architecture](ARCHITECTURE.md)
- 🔍 [find_code API](src/codeweaver/agent_api/find_code/README.md)
- 📐 [find_code Architecture](src/codeweaver/agent_api/find_code/ARCHITECTURE.md)
- 🏗️ [Overall Architecture][architecture]
- 🔍 [find_code API][api_find_code]
- 📐 [find_code Architecture][arch_find_code]

### Product Philosophy
- 💭 [Product Decisions](PRODUCT.md) – transparency matters
- 🤔 [Why CodeWeaver?](docs/WHY.md) – detailed rationale
- 💭 [Product Decisions][product_decisions] – transparency matters
- 🤔 [Why CodeWeaver?][why_codeweaver] – detailed rationale

<!-- Comprehensive documentation coming soon at https://dev.knitli.com/codeweaver -->

Expand All @@ -312,38 +312,38 @@ This is still early, and the best time to help shape the direction.
5. 📝 Update documentation
6. 🚀 Submit a PR

You'll need to agree to our [Contributor License Agreement](CONTRIBUTORS_LICENSE_AGREEMENT.md).
You'll need to agree to our [Contributor License Agreement][cla].

### Found a Bug?

🐛 [Report it here][report] – include as much detail as possible!
🐛 [Report it here][issues] – include as much detail as possible!

---

## 🔗 Links

### Project
- 📦 **Repository**: [github.com/knitli/codeweaver](https://github.com/knitli/codeweaver)
- 🐛 **Issues**: [Report bugs & request features](https://github.com/knitli/codeweaver/issues)
- 📋 **Changelog**: [View release history](https://github.com/knitli/codeweaver/blob/main/CHANGELOG.md)
- 📦 **Repository**: [github.com/knitli/codeweaver][repo]
- 🐛 **Issues**: [Report bugs & request features][issues]
- 📋 **Changelog**: [View release history][changelog]
<!-- - 📖 **Documentation**: https://dev.knitli.com/codeweaver (in progress) -->

### Company
- 🏢 **Knitli**: [knitli.com](https://knitli.com)
- ✍️ **Blog**: [blog.knitli.com](https://blog.knitli.com)
- 🐦 **X/Twitter**: [@knitli_inc](https://x.com/knitli_inc)
- 💼 **LinkedIn**: [company/knitli](https://linkedin.com/company/knitli)
- 💻 **GitHub**: [@knitli](https://github.com/knitli)
- 🏢 **Knitli**: [knitli.com][knitli_site]
- ✍️ **Blog**: [blog.knitli.com][knitli_blog]
- 🐦 **X/Twitter**: [@knitli_inc][knitli_x]
- 💼 **LinkedIn**: [company/knitli][knitli_linkedin]
- 💻 **GitHub**: [@knitli][knitli_github]

### Support the Project

We're a [one-person company](https://github.com/bashandbone) at the moment... and make no money... if you like CodeWeaver and want to keep it going, please consider **[sponsoring me](https://github.com/sponsors/knitli)** 😄
We're a [one-person company][bashandbone] at the moment... and make no money... if you like CodeWeaver and want to keep it going, please consider **[sponsoring me][sponsor]** 😄

---

## 📦 Package Info

- **Python package**: `codeweaver`
- **Python package**: `code-weaver` 👈❗ **note the hyphen**
- **CLI commands**: `cw` / `codeweaver`
- **Python requirement**: ≥3.12 (tested on 3.12, 3.13, 3.14)
- **Entry point**: `codeweaver.cli.app:main`
Expand All @@ -354,19 +354,19 @@ We're a [one-person company](https://github.com/bashandbone) at the moment... an

Licensed under **MIT OR Apache 2.0** — you choose! Some vendored code is Apache 2.0 only and some is MIT only. Everything is permissively licensed.

The project follows the [REUSE specification](https://reuse.software). Every file has detailed licensing information, and we regularly generate a [software bill of materials](sbom.spdx).
The project follows the [REUSE specification][reuse_spec]. Every file has detailed licensing information, and we regularly generate a [software bill of materials][sbom].

---

## 📊 Telemetry

The default includes **very anonymized telemetry** to improve CodeWeaver. [See the implementation](src/codeweaver/common/telemetry/) or read [the README](src/codeweaver/common/telemetry/README.md).
The default includes **very anonymized telemetry** to improve CodeWeaver. [See the implementation][telemetry_impl] or read [the README][telemetry_readme].

**Opt out**: `export CODEWEAVER__TELEMETRY__DISABLE_TELEMETRY=true`

**Opt in to detailed feedback** (helps us improve): `export CODEWEAVER__TELEMETRY__TOOLS_OVER_PRIVACY=true`

📋 [See our privacy policy](PRIVACY_POLICY.md)
📋 [See our privacy policy][privacy_policy]

---

Expand All @@ -380,15 +380,60 @@ The default includes **very anonymized telemetry** to improve CodeWeaver. [See t

<div align="center">

**Built with ❤️ by [Knitli](https://knitli.com)**
**Built with ❤️ by [Knitli][knitli_site]**

[⬆ Back to top](#codeweaver)
[⬆ Back to top][nav_top]

</div>

<!-- Badges -->

[badge_license]: <https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-green.svg> "License Badge"
[badge_mcp]: <https://img.shields.io/badge/MCP-compatible-purple.svg> "MCP Compatible Badge"
[badge_python]: <https://img.shields.io/badge/python-3.12%2B-blue.svg> "Python Version Badge"
[badge_release]: <https://img.shields.io/badge/release-alpha%201-orange.svg> "Release Badge"

<!-- Other links -->

[api_find_code]: <src/codeweaver/agent_api/find_code/README.md> "find_code API Documentation"
[arch_find_code]: <src/codeweaver/agent_api/find_code/ARCHITECTURE.md> "find_code Architecture"
[architecture]: <ARCHITECTURE.md> "Overall Architecture"
[bashandbone]: <https://github.com/bashandbone> "Adam Poulemanos' GitHub Profile"
[changelog]: <https://github.com/knitli/codeweaver/blob/main/CHANGELOG.md> "Changelog"
[cla]: <CONTRIBUTORS_LICENSE_AGREEMENT.md> "Contributor License Agreement"
[cli_guide]: <docs/CLI.md> "Command Line Reference"
[config_schema]: <schema/codeweaver.schema.json> "The CodeWeaver Config Schema"
[docker_guide]: <DOCKER.md> "Docker Setup Guide"
[docker_notes]: <docs/docker/DOCKER_BUILD_NOTES.md> "Docker Build Notes"
[enhancement_label]: <https://github.com/knitli/codeweaver/labels/enhancement> "Enhancement Issues"
[issues]: <https://github.com/knitli/codeweaver/issues> "Report an Issue"
[knitli_blog]: <https://blog.knitli.com> "Knitli Blog"
[knitli_github]: <https://github.com/knitli> "Knitli GitHub Organization"
[knitli_linkedin]: <https://linkedin.com/company/knitli> "Knitli LinkedIn"
[knitli_site]: <https://knitli.com> "Knitli Website"
[knitli_x]: <https://x.com/knitli_inc> "Knitli X/Twitter"
[link_license]: <LICENSE> "License File"
[link_mcp]: <https://modelcontextprotocol.io> "Model Context Protocol Website"
[link_python]: <https://www.python.org/downloads/> "Python Downloads"
[link_release]: <https://github.com/knitli/codeweaver/releases> "CodeWeaver Releases"
[mcp]: <https://modelcontextprotocol.io> "Learn About the Model Context Protocol"
[report]: <https://github.com/knitli/codeweaver/issues> "Report an Issue"
[wiki_ask]: <https://en.wikipedia.org/wiki/Abstract_syntax_tree> "About Abstract Syntax Trees"
[WHY]: <docs/WHY.md> "Why I built CodeWeaver"
[nav_contributing]: <#-contributing> "Contributing Section"
[nav_docs]: <#-documentation> "Documentation Section"
[nav_features]: <#-features> "Features Section"
[nav_how_it_works]: <#-how-it-works> "How It Works Section"
[nav_install]: <#-getting-started> "Installation Section"
[nav_top]: <#codeweaver> "Back to Top"
[privacy_policy]: <PRIVACY_POLICY.md> "Privacy Policy"
[product_decisions]: <PRODUCT.md> "Product Decisions"
[providers_list]: <overrides/partials/providers.md> "Full Provider List"
[qdrant]: <https://qdrant.tech> "Qdrant Website"
[repo]: <https://github.com/knitli/codeweaver> "CodeWeaver Repository"
[reuse_spec]: <https://reuse.software> "REUSE Specification"
[sbom]: <sbom.spdx> "Software Bill of Materials"
[sponsor]: <https://github.com/sponsors/knitli> "Sponsor Knitli"
[telemetry_impl]: <src/codeweaver/common/telemetry/> "Telemetry Implementation"
[telemetry_readme]: <src/codeweaver/common/telemetry/README.md> "Telemetry README"
[uv_tool]: <https://astral.sh/uv> "uv Package Manager"
[voyage_ai]: <http://voyage.ai> "Voyage AI Website"
[why_codeweaver]: <docs/WHY.md> "Why CodeWeaver"
[wiki_ast]: <https://en.wikipedia.org/wiki/Abstract_syntax_tree> "About Abstract Syntax Trees"
Loading
Loading