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.
@@ -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).