airegistry-cli 2.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- airegistry_cli-2.3.1/LICENSE +9 -0
- airegistry_cli-2.3.1/PKG-INFO +173 -0
- airegistry_cli-2.3.1/README.md +149 -0
- airegistry_cli-2.3.1/ai.py +511 -0
- airegistry_cli-2.3.1/airegistry_cli.egg-info/PKG-INFO +173 -0
- airegistry_cli-2.3.1/airegistry_cli.egg-info/SOURCES.txt +23 -0
- airegistry_cli-2.3.1/airegistry_cli.egg-info/dependency_links.txt +1 -0
- airegistry_cli-2.3.1/airegistry_cli.egg-info/entry_points.txt +2 -0
- airegistry_cli-2.3.1/airegistry_cli.egg-info/top_level.txt +1 -0
- airegistry_cli-2.3.1/pyproject.toml +36 -0
- airegistry_cli-2.3.1/setup.cfg +4 -0
- airegistry_cli-2.3.1/tests/test_agent.py +117 -0
- airegistry_cli-2.3.1/tests/test_builder.py +140 -0
- airegistry_cli-2.3.1/tests/test_citation_builder.py +65 -0
- airegistry_cli-2.3.1/tests/test_cli.py +327 -0
- airegistry_cli-2.3.1/tests/test_context_builder.py +111 -0
- airegistry_cli-2.3.1/tests/test_conversation_memory.py +108 -0
- airegistry_cli-2.3.1/tests/test_json_validator.py +96 -0
- airegistry_cli-2.3.1/tests/test_keyword_rag.py +86 -0
- airegistry_cli-2.3.1/tests/test_prompt_builder.py +63 -0
- airegistry_cli-2.3.1/tests/test_query_rewriter.py +68 -0
- airegistry_cli-2.3.1/tests/test_registry.py +108 -0
- airegistry_cli-2.3.1/tests/test_retrieval_pipeline.py +122 -0
- airegistry_cli-2.3.1/tests/test_text_chunker.py +58 -0
- airegistry_cli-2.3.1/tests/test_tool_router.py +87 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AIRegistry contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
+
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: airegistry-cli
|
|
3
|
+
Version: 2.3.1
|
|
4
|
+
Summary: Dependency-free CLI for discovering and installing versioned AI components from AIRegistry
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://airegistry.instantregret96.workers.dev
|
|
7
|
+
Project-URL: Repository, https://github.com/MUdevelops/AIRegistry
|
|
8
|
+
Project-URL: Issues, https://github.com/MUdevelops/AIRegistry/issues
|
|
9
|
+
Keywords: ai,registry,rag,agents,components,cli
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
20
|
+
Requires-Python: >=3.9
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
<div align="center">
|
|
26
|
+
|
|
27
|
+
<img src="https://raw.githubusercontent.com/MUdevelops/AIRegistry/main/readme_assets/Animated-Header.gif" alt="AIRegistry animated header" width="100%"/>
|
|
28
|
+
|
|
29
|
+
<br/>
|
|
30
|
+
|
|
31
|
+
<p>
|
|
32
|
+
<a href="https://github.com/MUdevelops/AIRegistry/actions/workflows/ci.yml"><img src="https://github.com/MUdevelops/AIRegistry/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
|
|
33
|
+
<a href="https://github.com/MUdevelops/AIRegistry/releases"><img src="https://img.shields.io/badge/Release-v2.3.1-00d9ff?style=flat-square" alt="v2.3.0"/></a>
|
|
34
|
+
<a href="https://github.com/MUdevelops/AIRegistry/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-8b5cf6?style=flat-square" alt="MIT License"/></a>
|
|
35
|
+
<img src="https://img.shields.io/badge/Python-%3E%3D3.9-22c55e?style=flat-square&logo=python&logoColor=white" alt="Python 3.9+"/>
|
|
36
|
+
<img src="https://img.shields.io/badge/components-11-111827?style=flat-square" alt="11 components"/>
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
### **Install AI capabilities, not libraries.**
|
|
40
|
+
|
|
41
|
+
<p>
|
|
42
|
+
AIRegistry is an open-source registry and dependency-free CLI for reusable, versioned
|
|
43
|
+
AI building blocks: retrieval, memory, agents, prompts, tools, citations and validation.
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
<p>
|
|
47
|
+
<a href="https://airegistry.instantregret96.workers.dev">Live registry</a> ·
|
|
48
|
+
<a href="https://github.com/MUdevelops/AIRegistry/issues">Issues</a> ·
|
|
49
|
+
<a href="https://github.com/MUdevelops/AIRegistry/blob/main/CONTRIBUTING.md">Contributing</a> ·
|
|
50
|
+
<a href="https://github.com/MUdevelops/AIRegistry/blob/main/CHANGELOG.md">Changelog</a>
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
## What is AIRegistry?
|
|
56
|
+
|
|
57
|
+
AI projects keep rebuilding the same small pieces: prompt builders, chunkers, retrievers, memory, validators, tool routers. AIRegistry packages them as **small, readable, versioned source components** that you copy into your own project and own.
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
search -> inspect -> add -> build
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
> **Reuse the capability. Own the source. Pin the version.**
|
|
64
|
+
|
|
65
|
+
| | |
|
|
66
|
+
|---|---|
|
|
67
|
+
| **Versioned, immutable releases** | Every release lives at `registry/<name>/versions/<version>/` and is never edited afterwards. |
|
|
68
|
+
| **Exact references** | `ai add keyword-rag@1.1.0` installs precisely that release. |
|
|
69
|
+
| **Verified installs** | Every file has a SHA-256 checksum that the CLI checks before writing anything. |
|
|
70
|
+
| **Standard library only** | The CLI and every component run on plain Python 3.9+. |
|
|
71
|
+
| **Review-first publishing** | Community submissions become GitHub pull requests, never direct commits. |
|
|
72
|
+
|
|
73
|
+
## Quick start
|
|
74
|
+
|
|
75
|
+
Install the CLI from a checkout:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
git clone https://github.com/MUdevelops/AIRegistry.git
|
|
79
|
+
cd AIRegistry
|
|
80
|
+
python -m pip install .
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Then, in your own project:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
ai search rag # find components
|
|
87
|
+
ai info keyword-rag # inspect: releases, files, dependencies
|
|
88
|
+
ai add keyword-rag --dry-run # preview, writes nothing
|
|
89
|
+
ai add keyword-rag # install the latest release
|
|
90
|
+
ai add context-builder@1.1.0 # or pin an exact release
|
|
91
|
+
ai list # what is installed
|
|
92
|
+
ai update # move installed components to their latest release
|
|
93
|
+
ai remove keyword-rag
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Components are copied to `ai_components/<name>/` (change it with `--dir`) and recorded in `.airegistry/lock.json`. Use one in your code:
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
import sys
|
|
100
|
+
sys.path.insert(0, "ai_components/keyword-rag/src")
|
|
101
|
+
|
|
102
|
+
from keyword_rag import retrieve
|
|
103
|
+
|
|
104
|
+
print(retrieve(["Cats purr.", "Python is a language."], "python", top_k=1))
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Without `pip`, run the CLI directly: `python ai.py search rag`. In a checkout, the CLI reads the local `registry.json`; otherwise it uses the public registry. Point it elsewhere with `ai config registry_url <path-or-https-url>`.
|
|
108
|
+
|
|
109
|
+
## Component catalog
|
|
110
|
+
|
|
111
|
+
| Component | Latest | Category | What it does |
|
|
112
|
+
|---|---:|---|---|
|
|
113
|
+
| [`agent`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/agent/versions/1.0.0/README.md) | `1.0.0` | agent | Deterministic tool-calling agent loop with a pluggable planner, step records and bounded execution. |
|
|
114
|
+
| [`citation-builder`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/citation-builder/versions/1.1.0/README.md) | `1.1.0` | tool | Format numbered source citations and bibliographies with duplicate merging and stable numbering. |
|
|
115
|
+
| [`context-builder`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/context-builder/versions/1.1.0/README.md) | `1.1.0` | retrieval | Combine retrieved passages into a numbered, size-limited context block for prompts. |
|
|
116
|
+
| [`conversation-memory`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/conversation-memory/versions/1.1.0/README.md) | `1.1.0` | memory | In-process conversation store with size limit, keyword search, character-budget windows and snapshots. |
|
|
117
|
+
| [`json-validator`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/json-validator/versions/1.1.0/README.md) | `1.1.0` | validation | Validate JSON text and return error position, type, keys and readable schema violations. |
|
|
118
|
+
| [`keyword-rag`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/keyword-rag/versions/1.1.0/README.md) | `1.1.0` | retrieval | Dependency-free keyword retrieval that ranks documents and returns relevant passages. |
|
|
119
|
+
| [`prompt-builder`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/prompt-builder/versions/1.1.0/README.md) | `1.1.0` | prompt | Build reusable prompts from system, instruction, context and input sections with safe placeholder filling. |
|
|
120
|
+
| [`query-rewriter`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/query-rewriter/versions/1.1.0/README.md) | `1.1.0` | retrieval | Deterministic query normalization, stopword removal and keyword variants for retrieval workflows. |
|
|
121
|
+
| [`retrieval-pipeline`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/retrieval-pipeline/versions/1.1.0/README.md) | `1.1.0` | workflow | Compose a retriever and a context builder into one validated workflow that returns bounded AI-ready context. |
|
|
122
|
+
| [`text-chunker`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/text-chunker/versions/1.1.0/README.md) | `1.1.0` | text | Split text into overlapping chunks by characters or words, with optional source offsets. |
|
|
123
|
+
| [`tool-router`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/tool-router/versions/1.1.0/README.md) | `1.1.0` | tool | Register Python functions as named tools and execute calls safely, returning errors as data. |
|
|
124
|
+
|
|
125
|
+
Every component is stdlib-only, typed, documented and covered by tests. Dependencies between components are optional and exact; `ai add` shows them but never installs them automatically. Typical composition:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
query-rewriter --> keyword-rag --> context-builder --> prompt-builder
|
|
129
|
+
\______ retrieval-pipeline ______/
|
|
130
|
+
conversation-memory tool-router --> agent citation-builder
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Browse the full catalog at the [live registry](https://airegistry.instantregret96.workers.dev).
|
|
134
|
+
|
|
135
|
+
## Registry model
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
registry/
|
|
139
|
+
keyword-rag/
|
|
140
|
+
versions/
|
|
141
|
+
1.0.0/ component.json README.md src/keyword_rag.py
|
|
142
|
+
1.1.0/ component.json README.md src/keyword_rag.py
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`python scripts/build_registry.py` validates every release and generates `registry.json` and `website/registry.json`; `--check` fails when they are stale. A release is never changed after it is published: fixes ship as a new version. See [ARCHITECTURE.md](ARCHITECTURE.md).
|
|
146
|
+
|
|
147
|
+
## Community publishing
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
GitHub sign-in -> Submit Component -> Worker validation -> GitHub App -> branch + commit -> Pull Request -> CI + review -> merge
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
The publisher accepts new components and new releases of existing ones. Nothing is written to `main` directly. Read [CONTRIBUTING.md](CONTRIBUTING.md) for the format and rules.
|
|
154
|
+
|
|
155
|
+
## Security
|
|
156
|
+
|
|
157
|
+
Registry content and submissions are untrusted input. The CLI validates paths and checksums, rejects executable file types and never runs what it installs. See [SECURITY.md](SECURITY.md) for details and how to report a vulnerability.
|
|
158
|
+
|
|
159
|
+
## Development
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
python scripts/build_registry.py --check
|
|
163
|
+
python -W error -m unittest discover -s tests -v
|
|
164
|
+
python -m py_compile ai.py scripts/build_registry.py
|
|
165
|
+
node --check website/app.js
|
|
166
|
+
node --check cloudflare/worker.js
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Deployment and operations: [docs/CLOUD_AUTH.md](docs/CLOUD_AUTH.md), [docs/MONITORING.md](docs/MONITORING.md).
|
|
170
|
+
|
|
171
|
+
## License
|
|
172
|
+
|
|
173
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="https://raw.githubusercontent.com/MUdevelops/AIRegistry/main/readme_assets/Animated-Header.gif" alt="AIRegistry animated header" width="100%"/>
|
|
4
|
+
|
|
5
|
+
<br/>
|
|
6
|
+
|
|
7
|
+
<p>
|
|
8
|
+
<a href="https://github.com/MUdevelops/AIRegistry/actions/workflows/ci.yml"><img src="https://github.com/MUdevelops/AIRegistry/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
|
|
9
|
+
<a href="https://github.com/MUdevelops/AIRegistry/releases"><img src="https://img.shields.io/badge/Release-v2.3.1-00d9ff?style=flat-square" alt="v2.3.0"/></a>
|
|
10
|
+
<a href="https://github.com/MUdevelops/AIRegistry/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-8b5cf6?style=flat-square" alt="MIT License"/></a>
|
|
11
|
+
<img src="https://img.shields.io/badge/Python-%3E%3D3.9-22c55e?style=flat-square&logo=python&logoColor=white" alt="Python 3.9+"/>
|
|
12
|
+
<img src="https://img.shields.io/badge/components-11-111827?style=flat-square" alt="11 components"/>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
### **Install AI capabilities, not libraries.**
|
|
16
|
+
|
|
17
|
+
<p>
|
|
18
|
+
AIRegistry is an open-source registry and dependency-free CLI for reusable, versioned
|
|
19
|
+
AI building blocks: retrieval, memory, agents, prompts, tools, citations and validation.
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p>
|
|
23
|
+
<a href="https://airegistry.instantregret96.workers.dev">Live registry</a> ·
|
|
24
|
+
<a href="https://github.com/MUdevelops/AIRegistry/issues">Issues</a> ·
|
|
25
|
+
<a href="https://github.com/MUdevelops/AIRegistry/blob/main/CONTRIBUTING.md">Contributing</a> ·
|
|
26
|
+
<a href="https://github.com/MUdevelops/AIRegistry/blob/main/CHANGELOG.md">Changelog</a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
## What is AIRegistry?
|
|
32
|
+
|
|
33
|
+
AI projects keep rebuilding the same small pieces: prompt builders, chunkers, retrievers, memory, validators, tool routers. AIRegistry packages them as **small, readable, versioned source components** that you copy into your own project and own.
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
search -> inspect -> add -> build
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
> **Reuse the capability. Own the source. Pin the version.**
|
|
40
|
+
|
|
41
|
+
| | |
|
|
42
|
+
|---|---|
|
|
43
|
+
| **Versioned, immutable releases** | Every release lives at `registry/<name>/versions/<version>/` and is never edited afterwards. |
|
|
44
|
+
| **Exact references** | `ai add keyword-rag@1.1.0` installs precisely that release. |
|
|
45
|
+
| **Verified installs** | Every file has a SHA-256 checksum that the CLI checks before writing anything. |
|
|
46
|
+
| **Standard library only** | The CLI and every component run on plain Python 3.9+. |
|
|
47
|
+
| **Review-first publishing** | Community submissions become GitHub pull requests, never direct commits. |
|
|
48
|
+
|
|
49
|
+
## Quick start
|
|
50
|
+
|
|
51
|
+
Install the CLI from a checkout:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git clone https://github.com/MUdevelops/AIRegistry.git
|
|
55
|
+
cd AIRegistry
|
|
56
|
+
python -m pip install .
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Then, in your own project:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
ai search rag # find components
|
|
63
|
+
ai info keyword-rag # inspect: releases, files, dependencies
|
|
64
|
+
ai add keyword-rag --dry-run # preview, writes nothing
|
|
65
|
+
ai add keyword-rag # install the latest release
|
|
66
|
+
ai add context-builder@1.1.0 # or pin an exact release
|
|
67
|
+
ai list # what is installed
|
|
68
|
+
ai update # move installed components to their latest release
|
|
69
|
+
ai remove keyword-rag
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Components are copied to `ai_components/<name>/` (change it with `--dir`) and recorded in `.airegistry/lock.json`. Use one in your code:
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
import sys
|
|
76
|
+
sys.path.insert(0, "ai_components/keyword-rag/src")
|
|
77
|
+
|
|
78
|
+
from keyword_rag import retrieve
|
|
79
|
+
|
|
80
|
+
print(retrieve(["Cats purr.", "Python is a language."], "python", top_k=1))
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Without `pip`, run the CLI directly: `python ai.py search rag`. In a checkout, the CLI reads the local `registry.json`; otherwise it uses the public registry. Point it elsewhere with `ai config registry_url <path-or-https-url>`.
|
|
84
|
+
|
|
85
|
+
## Component catalog
|
|
86
|
+
|
|
87
|
+
| Component | Latest | Category | What it does |
|
|
88
|
+
|---|---:|---|---|
|
|
89
|
+
| [`agent`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/agent/versions/1.0.0/README.md) | `1.0.0` | agent | Deterministic tool-calling agent loop with a pluggable planner, step records and bounded execution. |
|
|
90
|
+
| [`citation-builder`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/citation-builder/versions/1.1.0/README.md) | `1.1.0` | tool | Format numbered source citations and bibliographies with duplicate merging and stable numbering. |
|
|
91
|
+
| [`context-builder`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/context-builder/versions/1.1.0/README.md) | `1.1.0` | retrieval | Combine retrieved passages into a numbered, size-limited context block for prompts. |
|
|
92
|
+
| [`conversation-memory`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/conversation-memory/versions/1.1.0/README.md) | `1.1.0` | memory | In-process conversation store with size limit, keyword search, character-budget windows and snapshots. |
|
|
93
|
+
| [`json-validator`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/json-validator/versions/1.1.0/README.md) | `1.1.0` | validation | Validate JSON text and return error position, type, keys and readable schema violations. |
|
|
94
|
+
| [`keyword-rag`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/keyword-rag/versions/1.1.0/README.md) | `1.1.0` | retrieval | Dependency-free keyword retrieval that ranks documents and returns relevant passages. |
|
|
95
|
+
| [`prompt-builder`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/prompt-builder/versions/1.1.0/README.md) | `1.1.0` | prompt | Build reusable prompts from system, instruction, context and input sections with safe placeholder filling. |
|
|
96
|
+
| [`query-rewriter`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/query-rewriter/versions/1.1.0/README.md) | `1.1.0` | retrieval | Deterministic query normalization, stopword removal and keyword variants for retrieval workflows. |
|
|
97
|
+
| [`retrieval-pipeline`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/retrieval-pipeline/versions/1.1.0/README.md) | `1.1.0` | workflow | Compose a retriever and a context builder into one validated workflow that returns bounded AI-ready context. |
|
|
98
|
+
| [`text-chunker`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/text-chunker/versions/1.1.0/README.md) | `1.1.0` | text | Split text into overlapping chunks by characters or words, with optional source offsets. |
|
|
99
|
+
| [`tool-router`](https://github.com/MUdevelops/AIRegistry/blob/main/registry/tool-router/versions/1.1.0/README.md) | `1.1.0` | tool | Register Python functions as named tools and execute calls safely, returning errors as data. |
|
|
100
|
+
|
|
101
|
+
Every component is stdlib-only, typed, documented and covered by tests. Dependencies between components are optional and exact; `ai add` shows them but never installs them automatically. Typical composition:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
query-rewriter --> keyword-rag --> context-builder --> prompt-builder
|
|
105
|
+
\______ retrieval-pipeline ______/
|
|
106
|
+
conversation-memory tool-router --> agent citation-builder
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Browse the full catalog at the [live registry](https://airegistry.instantregret96.workers.dev).
|
|
110
|
+
|
|
111
|
+
## Registry model
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
registry/
|
|
115
|
+
keyword-rag/
|
|
116
|
+
versions/
|
|
117
|
+
1.0.0/ component.json README.md src/keyword_rag.py
|
|
118
|
+
1.1.0/ component.json README.md src/keyword_rag.py
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`python scripts/build_registry.py` validates every release and generates `registry.json` and `website/registry.json`; `--check` fails when they are stale. A release is never changed after it is published: fixes ship as a new version. See [ARCHITECTURE.md](ARCHITECTURE.md).
|
|
122
|
+
|
|
123
|
+
## Community publishing
|
|
124
|
+
|
|
125
|
+
```text
|
|
126
|
+
GitHub sign-in -> Submit Component -> Worker validation -> GitHub App -> branch + commit -> Pull Request -> CI + review -> merge
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The publisher accepts new components and new releases of existing ones. Nothing is written to `main` directly. Read [CONTRIBUTING.md](CONTRIBUTING.md) for the format and rules.
|
|
130
|
+
|
|
131
|
+
## Security
|
|
132
|
+
|
|
133
|
+
Registry content and submissions are untrusted input. The CLI validates paths and checksums, rejects executable file types and never runs what it installs. See [SECURITY.md](SECURITY.md) for details and how to report a vulnerability.
|
|
134
|
+
|
|
135
|
+
## Development
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
python scripts/build_registry.py --check
|
|
139
|
+
python -W error -m unittest discover -s tests -v
|
|
140
|
+
python -m py_compile ai.py scripts/build_registry.py
|
|
141
|
+
node --check website/app.js
|
|
142
|
+
node --check cloudflare/worker.js
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Deployment and operations: [docs/CLOUD_AUTH.md](docs/CLOUD_AUTH.md), [docs/MONITORING.md](docs/MONITORING.md).
|
|
146
|
+
|
|
147
|
+
## License
|
|
148
|
+
|
|
149
|
+
MIT. See [LICENSE](LICENSE).
|