swarmauri 0.9.0.dev4__tar.gz → 0.9.1.dev2__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.
@@ -1,16 +1,22 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: swarmauri
3
- Version: 0.9.0.dev4
3
+ Version: 0.9.1.dev2
4
4
  Summary: Namespace package for components, packages, and plugins within the Swarmauri framework.
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
7
+ Keywords: swarmauri,dynamic-json-schema,discriminated-unions,pydantic,schema-first,serialization,yaml,toml,plugin-factory,typed-components
7
8
  Author: Jacob Stewart
8
9
  Author-email: jacob@swarmauri.com
9
- Requires-Python: >=3.10,<3.13
10
+ Requires-Python: >=3.10,<3.15
10
11
  Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
11
15
  Classifier: Programming Language :: Python :: 3.10
12
16
  Classifier: Programming Language :: Python :: 3.11
13
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
14
20
  Provides-Extra: default
15
21
  Provides-Extra: full
16
22
  Provides-Extra: llms
@@ -56,21 +62,20 @@ Requires-Dist: toml (>=0.10.2)
56
62
  Requires-Dist: typing_extensions
57
63
  Description-Content-Type: text/markdown
58
64
 
59
- ![Swarmauri Logo](https://github.com/swarmauri/swarmauri-sdk/blob/3d4d1cfa949399d7019ae9d8f296afba773dfb7f/assets/swarmauri.brand.theme.svg)
65
+ ![Swarmauri Logo](https://raw.githubusercontent.com/swarmauri/swarmauri-sdk/master/assets/swarmauri_sdk_brand.png)
60
66
 
61
67
  <p align="center">
62
- <a href="https://pypi.org/project/swarmauri/">
63
- <img src="https://img.shields.io/pypi/dm/swarmauri" alt="PyPI - Downloads"/></a>
68
+ <a href="https://pepy.tech/project/swarmauri/">
69
+ <img src="https://static.pepy.tech/badge/swarmauri/month" alt="PyPI - Downloads"/></a>
64
70
  <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/swarmauri/">
65
71
  <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/swarmauri.svg"/></a>
66
72
  <a href="https://pypi.org/project/swarmauri/">
67
- <img src="https://img.shields.io/pypi/pyversions/swarmauri" alt="PyPI - Python Version"/></a>
73
+ <img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue" alt="PyPI - Python Version"/></a>
68
74
  <a href="https://pypi.org/project/swarmauri/">
69
75
  <img src="https://img.shields.io/pypi/l/swarmauri" alt="PyPI - License"/></a>
70
76
  <a href="https://pypi.org/project/swarmauri/">
71
77
  <img src="https://img.shields.io/pypi/v/swarmauri?label=swarmauri&color=green" alt="PyPI - swarmauri"/></a>
72
78
  </p>
73
-
74
79
  ---
75
80
 
76
81
  # Swarmauri SDK
@@ -88,6 +93,80 @@ in `interface_registry.py`, then mapped to plugin modules via
88
93
  `plugin_citizenship_registry.py`. For a deeper look at the import flow, see
89
94
  [`docs/callflow.md`](docs/callflow.md).
90
95
 
96
+ ## Public Operator Surfaces
97
+
98
+ Swarmauri exposes three stable operator-facing surfaces:
99
+
100
+ 1. **Namespace imports (`swarmauri.<kind>`)**
101
+ The primary runtime surface is the namespace import path. Importing concrete
102
+ operators through the `swarmauri` namespace triggers the microkernel
103
+ importer and resolves to the installed implementation.
104
+
105
+ 2. **Registry contracts (`interface_registry.py`)**
106
+ The interface registry defines the accepted interface path for each resource
107
+ kind. This is the canonical public contract that implementations must satisfy.
108
+
109
+ 3. **Citizenship mappings (`plugin_citizenship_registry.py`)**
110
+ Citizenship maps each public interface path to a concrete plugin module that
111
+ can be loaded. This is the public compatibility surface used to connect
112
+ interface contracts to implementations.
113
+
114
+ Together these surfaces allow operators to use stable import paths while
115
+ implementations evolve independently.
116
+
117
+ ## Native Dynamic Schemas and Serialization
118
+
119
+ Swarmauri treats dynamic, typed component serialization as a core runtime
120
+ strength. Registered component families use `type` discriminators and dynamic
121
+ unions so factories, HTTP APIs, queues, and persisted JSON payloads can restore
122
+ the concrete subclass that was serialized.
123
+
124
+ Every `ComponentBase`-derived component inherits JSON support from Pydantic and
125
+ YAML/TOML helpers from the Swarmauri base mixins. That means the same component
126
+ initialization can move through JSON, YAML, or TOML configuration files and dump
127
+ back to those formats while preserving concrete kin.
128
+
129
+ ```python
130
+ from typing import Literal
131
+ from pydantic import BaseModel
132
+ from swarmauri_base.ComponentBase import ComponentBase
133
+ from swarmauri_base.DynamicBase import SubclassUnion
134
+
135
+
136
+ @ComponentBase.register_model()
137
+ class RuntimeConnector(ComponentBase):
138
+ type: Literal["RuntimeConnector"] = "RuntimeConnector"
139
+ label: str
140
+
141
+
142
+ @ComponentBase.register_type(RuntimeConnector, "HttpRuntimeConnector")
143
+ class HttpRuntimeConnector(RuntimeConnector):
144
+ type: Literal["HttpRuntimeConnector"] = "HttpRuntimeConnector"
145
+ endpoint: str
146
+
147
+
148
+ class RuntimePayload(BaseModel):
149
+ connector: SubclassUnion[RuntimeConnector]
150
+
151
+
152
+ payload = RuntimePayload.model_validate(
153
+ {
154
+ "connector": {
155
+ "type": "HttpRuntimeConnector",
156
+ "label": "orders",
157
+ "endpoint": "https://api.example.test/orders",
158
+ }
159
+ }
160
+ )
161
+
162
+ assert isinstance(payload.connector, HttpRuntimeConnector)
163
+ ```
164
+
165
+ Without this, applications usually fall back to untyped dictionaries or manual
166
+ factory switches. With it, Swarmauri can publish JSON Schema for the available
167
+ kin classes and hydrate concrete components from the same payloads used by
168
+ APIs, databases, and configuration files.
169
+
91
170
  ## Core
92
171
  - **Core Interfaces**: Define the fundamental communication and data-sharing protocols between components in a Swarmauri-based system.
93
172
 
@@ -97,7 +176,7 @@ in `interface_registry.py`, then mapped to plugin modules via
97
176
  - **Concrete Classes**: Ready-to-use, pre-implemented classes that fulfill standard system needs while adhering to Swarmauri principles. **These classes are the first in line for ongoing support and maintenance, ensuring they remain stable, performant, and up to date with future SDK developments.**
98
177
 
99
178
  ## Community
100
- - **Third-Party Plug-in Integration**: Concrete classes designed to extend the framework’s capabilities by utilizing third-party libraries and plugins.
179
+ - **Third-Party Plug-in Integration**: Concrete classes designed to extend the framework’s capabilities by utilizing third-party libraries and plugins.
101
180
  - **Open Source Contributions**: A collaborative space for developers to contribute new components, plug-ins, and features.
102
181
 
103
182
  ## Experimental
@@ -106,17 +185,60 @@ in `interface_registry.py`, then mapped to plugin modules via
106
185
  # Features
107
186
 
108
187
  - **Polymorphism**: Allows for dynamic behavior switching between components, enabling flexible, context-aware system behavior.
188
+ - **Dynamic JSON Schemas**: Updates discriminated-union schemas as registered component kin become available.
109
189
  - **Discriminated Unions**: Provides a robust method for handling multiple possible object types in a type-safe manner.
110
- - **Serialization**: Efficiently encode and decode data for transmission across different environments and system components, with support for both standard and custom serialization formats.
190
+ - **Serialization**: Efficiently encode and decode component initializations across JSON, YAML, and TOML while preserving concrete `type`.
111
191
  - **Intensional and Extensional Programming**: The microkernel continues to leverage both rule-based (intensional) patterns and set-based (extensional) plugin discovery, allowing you to build and manipulate complex data structures with ease.
112
192
 
113
193
  ## Use Cases
114
194
 
115
195
  - **Modular Systems**: Develop scalable, pluggable systems that can evolve over time by adding or modifying components without disrupting the entire ecosystem.
116
- - **Distributed Architectures**: Build systems with distributed nodes that seamlessly communicate using the SDK’s standardized interfaces.
196
+ - **Distributed Architectures**: Build systems with distributed nodes that seamlessly communicate using the SDK’s standardized interfaces.
117
197
  - **Third-Party Integrations**: Extend the system's capabilities by easily incorporating third-party tools, libraries, and services.
118
198
  - **Prototype and Experimentation**: Test cutting-edge ideas using the experimental components in the SDK, while retaining the reliability of core and standard features for production systems.
119
199
 
200
+ ## Extension Surface
201
+
202
+ Swarmauri is designed to be extended by adding new resource kinds or new
203
+ implementations for existing kinds.
204
+
205
+ For extension work:
206
+
207
+ - Add or update the interface contract in
208
+ [`swarmauri/interface_registry.py`](swarmauri/interface_registry.py).
209
+ - Register the concrete implementation in
210
+ [`swarmauri/plugin_citizenship_registry.py`](swarmauri/plugin_citizenship_registry.py).
211
+ - Ensure the implementation module can be imported and instantiated directly
212
+ through its public class API.
213
+ - Validate import resolution against the call flow documented in
214
+ [`docs/callflow.md`](docs/callflow.md).
215
+
216
+ This extension surface keeps the microkernel small while allowing packages,
217
+ plugins, and standards modules to participate in the same runtime model.
218
+
219
+ ## Authoring Guide
220
+
221
+ When authoring new Swarmauri components:
222
+
223
+ 1. **Define the interface first**
224
+ Start from the interface contract and ensure your class adheres to the
225
+ expected methods and typing.
226
+
227
+ 2. **Implement concrete behavior in your package**
228
+ Keep domain logic in the implementation package and keep the namespace
229
+ microkernel declarations focused on discovery and routing.
230
+
231
+ 3. **Register the implementation**
232
+ Add citizenship entries so the namespace importer can resolve your class.
233
+
234
+ 4. **Instantiate plugins directly in usage examples**
235
+ Prefer direct class imports/instantiation in examples and integrations unless
236
+ a manager abstraction is explicitly required.
237
+
238
+ 5. **Document expected workflow**
239
+ Include installation, minimal usage, and extension notes so users can adopt
240
+ and extend the component safely.
241
+
120
242
  # Future Development
121
243
 
122
244
  The Swarmauri SDK is an evolving platform, and the community is encouraged to contribute to its growth. Upcoming releases will focus on enhancing the framework's modularity, providing more advanced serialization methods, and expanding the community-driven component library.
@@ -136,9 +258,6 @@ When introducing a new resource kind or class, remember to update both the
136
258
  `plugin_citizenship_registry.py` and `interface_registry.py` so the framework can
137
259
  discover and validate your additions.
138
260
 
139
- ### Plugin Manager
140
- - [plugin_manager.py](swarmauri/plugin_manager.py): Oversees the loading, initialization, and management of plugins to extend the functionality of the Swarmauri framework.
141
-
142
261
  ## Contributing
143
262
 
144
263
  Contributions are welcome! If you'd like to add a new feature, fix a bug, or improve documentation, kindly go through the [contributions guidelines](https://github.com/swarmauri/swarmauri-sdk/blob/master/contributing.md) first.
@@ -0,0 +1,199 @@
1
+ ![Swarmauri Logo](https://raw.githubusercontent.com/swarmauri/swarmauri-sdk/master/assets/swarmauri_sdk_brand.png)
2
+
3
+ <p align="center">
4
+ <a href="https://pepy.tech/project/swarmauri/">
5
+ <img src="https://static.pepy.tech/badge/swarmauri/month" alt="PyPI - Downloads"/></a>
6
+ <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/swarmauri/">
7
+ <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/swarmauri.svg"/></a>
8
+ <a href="https://pypi.org/project/swarmauri/">
9
+ <img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue" alt="PyPI - Python Version"/></a>
10
+ <a href="https://pypi.org/project/swarmauri/">
11
+ <img src="https://img.shields.io/pypi/l/swarmauri" alt="PyPI - License"/></a>
12
+ <a href="https://pypi.org/project/swarmauri/">
13
+ <img src="https://img.shields.io/pypi/v/swarmauri?label=swarmauri&color=green" alt="PyPI - swarmauri"/></a>
14
+ </p>
15
+ ---
16
+
17
+ # Swarmauri SDK
18
+
19
+ The Swarmauri SDK offers a comprehensive suite of tools designed for building distributed, extensible systems using the Swarmauri framework.
20
+
21
+ ## Swarmauri Namespace Microkernel
22
+
23
+ The `swarmauri` package is implemented as a namespace microkernel. When the
24
+ package is imported it registers a custom importer that consults the interface
25
+ and plugin citizenship registries to locate actual implementations. This design
26
+ keeps the namespace lightweight while still allowing first-party and community
27
+ plugins to be discovered and loaded on demand. New resource kinds are declared
28
+ in `interface_registry.py`, then mapped to plugin modules via
29
+ `plugin_citizenship_registry.py`. For a deeper look at the import flow, see
30
+ [`docs/callflow.md`](docs/callflow.md).
31
+
32
+ ## Public Operator Surfaces
33
+
34
+ Swarmauri exposes three stable operator-facing surfaces:
35
+
36
+ 1. **Namespace imports (`swarmauri.<kind>`)**
37
+ The primary runtime surface is the namespace import path. Importing concrete
38
+ operators through the `swarmauri` namespace triggers the microkernel
39
+ importer and resolves to the installed implementation.
40
+
41
+ 2. **Registry contracts (`interface_registry.py`)**
42
+ The interface registry defines the accepted interface path for each resource
43
+ kind. This is the canonical public contract that implementations must satisfy.
44
+
45
+ 3. **Citizenship mappings (`plugin_citizenship_registry.py`)**
46
+ Citizenship maps each public interface path to a concrete plugin module that
47
+ can be loaded. This is the public compatibility surface used to connect
48
+ interface contracts to implementations.
49
+
50
+ Together these surfaces allow operators to use stable import paths while
51
+ implementations evolve independently.
52
+
53
+ ## Native Dynamic Schemas and Serialization
54
+
55
+ Swarmauri treats dynamic, typed component serialization as a core runtime
56
+ strength. Registered component families use `type` discriminators and dynamic
57
+ unions so factories, HTTP APIs, queues, and persisted JSON payloads can restore
58
+ the concrete subclass that was serialized.
59
+
60
+ Every `ComponentBase`-derived component inherits JSON support from Pydantic and
61
+ YAML/TOML helpers from the Swarmauri base mixins. That means the same component
62
+ initialization can move through JSON, YAML, or TOML configuration files and dump
63
+ back to those formats while preserving concrete kin.
64
+
65
+ ```python
66
+ from typing import Literal
67
+ from pydantic import BaseModel
68
+ from swarmauri_base.ComponentBase import ComponentBase
69
+ from swarmauri_base.DynamicBase import SubclassUnion
70
+
71
+
72
+ @ComponentBase.register_model()
73
+ class RuntimeConnector(ComponentBase):
74
+ type: Literal["RuntimeConnector"] = "RuntimeConnector"
75
+ label: str
76
+
77
+
78
+ @ComponentBase.register_type(RuntimeConnector, "HttpRuntimeConnector")
79
+ class HttpRuntimeConnector(RuntimeConnector):
80
+ type: Literal["HttpRuntimeConnector"] = "HttpRuntimeConnector"
81
+ endpoint: str
82
+
83
+
84
+ class RuntimePayload(BaseModel):
85
+ connector: SubclassUnion[RuntimeConnector]
86
+
87
+
88
+ payload = RuntimePayload.model_validate(
89
+ {
90
+ "connector": {
91
+ "type": "HttpRuntimeConnector",
92
+ "label": "orders",
93
+ "endpoint": "https://api.example.test/orders",
94
+ }
95
+ }
96
+ )
97
+
98
+ assert isinstance(payload.connector, HttpRuntimeConnector)
99
+ ```
100
+
101
+ Without this, applications usually fall back to untyped dictionaries or manual
102
+ factory switches. With it, Swarmauri can publish JSON Schema for the available
103
+ kin classes and hydrate concrete components from the same payloads used by
104
+ APIs, databases, and configuration files.
105
+
106
+ ## Core
107
+ - **Core Interfaces**: Define the fundamental communication and data-sharing protocols between components in a Swarmauri-based system.
108
+
109
+ ## Standard
110
+ - **Base Classes**: Provide a foundation for constructing Swarmauri components, with standardized methods and properties.
111
+ - **Mixins**: Reusable code fragments designed to be integrated into various classes, offering shared functionality across different components.
112
+ - **Concrete Classes**: Ready-to-use, pre-implemented classes that fulfill standard system needs while adhering to Swarmauri principles. **These classes are the first in line for ongoing support and maintenance, ensuring they remain stable, performant, and up to date with future SDK developments.**
113
+
114
+ ## Community
115
+ - **Third-Party Plug-in Integration**: Concrete classes designed to extend the framework’s capabilities by utilizing third-party libraries and plugins.
116
+ - **Open Source Contributions**: A collaborative space for developers to contribute new components, plug-ins, and features.
117
+
118
+ ## Experimental
119
+ - **In-Development Components**: Early-stage features and components that push the boundaries of the Swarmauri framework, offering innovative solutions that are still in testing phases.
120
+
121
+ # Features
122
+
123
+ - **Polymorphism**: Allows for dynamic behavior switching between components, enabling flexible, context-aware system behavior.
124
+ - **Dynamic JSON Schemas**: Updates discriminated-union schemas as registered component kin become available.
125
+ - **Discriminated Unions**: Provides a robust method for handling multiple possible object types in a type-safe manner.
126
+ - **Serialization**: Efficiently encode and decode component initializations across JSON, YAML, and TOML while preserving concrete `type`.
127
+ - **Intensional and Extensional Programming**: The microkernel continues to leverage both rule-based (intensional) patterns and set-based (extensional) plugin discovery, allowing you to build and manipulate complex data structures with ease.
128
+
129
+ ## Use Cases
130
+
131
+ - **Modular Systems**: Develop scalable, pluggable systems that can evolve over time by adding or modifying components without disrupting the entire ecosystem.
132
+ - **Distributed Architectures**: Build systems with distributed nodes that seamlessly communicate using the SDK’s standardized interfaces.
133
+ - **Third-Party Integrations**: Extend the system's capabilities by easily incorporating third-party tools, libraries, and services.
134
+ - **Prototype and Experimentation**: Test cutting-edge ideas using the experimental components in the SDK, while retaining the reliability of core and standard features for production systems.
135
+
136
+ ## Extension Surface
137
+
138
+ Swarmauri is designed to be extended by adding new resource kinds or new
139
+ implementations for existing kinds.
140
+
141
+ For extension work:
142
+
143
+ - Add or update the interface contract in
144
+ [`swarmauri/interface_registry.py`](swarmauri/interface_registry.py).
145
+ - Register the concrete implementation in
146
+ [`swarmauri/plugin_citizenship_registry.py`](swarmauri/plugin_citizenship_registry.py).
147
+ - Ensure the implementation module can be imported and instantiated directly
148
+ through its public class API.
149
+ - Validate import resolution against the call flow documented in
150
+ [`docs/callflow.md`](docs/callflow.md).
151
+
152
+ This extension surface keeps the microkernel small while allowing packages,
153
+ plugins, and standards modules to participate in the same runtime model.
154
+
155
+ ## Authoring Guide
156
+
157
+ When authoring new Swarmauri components:
158
+
159
+ 1. **Define the interface first**
160
+ Start from the interface contract and ensure your class adheres to the
161
+ expected methods and typing.
162
+
163
+ 2. **Implement concrete behavior in your package**
164
+ Keep domain logic in the implementation package and keep the namespace
165
+ microkernel declarations focused on discovery and routing.
166
+
167
+ 3. **Register the implementation**
168
+ Add citizenship entries so the namespace importer can resolve your class.
169
+
170
+ 4. **Instantiate plugins directly in usage examples**
171
+ Prefer direct class imports/instantiation in examples and integrations unless
172
+ a manager abstraction is explicitly required.
173
+
174
+ 5. **Document expected workflow**
175
+ Include installation, minimal usage, and extension notes so users can adopt
176
+ and extend the component safely.
177
+
178
+ # Future Development
179
+
180
+ The Swarmauri SDK is an evolving platform, and the community is encouraged to contribute to its growth. Upcoming releases will focus on enhancing the framework's modularity, providing more advanced serialization methods, and expanding the community-driven component library.
181
+
182
+ ## Modules Overview
183
+
184
+ ### Importer
185
+ - [importer.py](swarmauri/importer.py): Handles the dynamic importing of modules and components within the Swarmauri framework.
186
+
187
+ ### Interface Registry
188
+ - [interface_registry.py](swarmauri/interface_registry.py): Manages the registration and lookup of interfaces used for communication between different components.
189
+
190
+ ### Plugin Citizenship Registry
191
+ - [plugin_citizenship_registry.py](swarmauri/plugin_citizenship_registry.py): Maintains a registry of plugins and their citizenship status within the Swarmauri ecosystem.
192
+
193
+ When introducing a new resource kind or class, remember to update both the
194
+ `plugin_citizenship_registry.py` and `interface_registry.py` so the framework can
195
+ discover and validate your additions.
196
+
197
+ ## Contributing
198
+
199
+ Contributions are welcome! If you'd like to add a new feature, fix a bug, or improve documentation, kindly go through the [contributions guidelines](https://github.com/swarmauri/swarmauri-sdk/blob/master/contributing.md) first.
@@ -1,16 +1,33 @@
1
1
  [project]
2
2
  name = "swarmauri"
3
- version = "0.9.0.dev4"
3
+ version = "0.9.1.dev2"
4
4
  description = "Namespace package for components, packages, and plugins within the Swarmauri framework."
5
+ keywords = [
6
+ "swarmauri",
7
+ "dynamic-json-schema",
8
+ "discriminated-unions",
9
+ "pydantic",
10
+ "schema-first",
11
+ "serialization",
12
+ "yaml",
13
+ "toml",
14
+ "plugin-factory",
15
+ "typed-components",
16
+ ]
5
17
  license = "Apache-2.0"
6
18
  readme = "README.md"
7
19
  repository = "http://github.com/swarmauri/swarmauri-sdk"
8
- requires-python = ">=3.10,<3.13"
20
+ requires-python = ">=3.10,<3.15"
9
21
  classifiers = [
10
22
  "License :: OSI Approved :: Apache Software License",
23
+ "Programming Language :: Python",
24
+ "Programming Language :: Python :: 3",
25
+ "Programming Language :: Python :: 3 :: Only",
11
26
  "Programming Language :: Python :: 3.10",
12
27
  "Programming Language :: Python :: 3.11",
13
28
  "Programming Language :: Python :: 3.12",
29
+ "Programming Language :: Python :: 3.13",
30
+ "Programming Language :: Python :: 3.14",
14
31
  ]
15
32
  authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
16
33
  dependencies = [
@@ -1,86 +0,0 @@
1
- ![Swarmauri Logo](https://github.com/swarmauri/swarmauri-sdk/blob/3d4d1cfa949399d7019ae9d8f296afba773dfb7f/assets/swarmauri.brand.theme.svg)
2
-
3
- <p align="center">
4
- <a href="https://pypi.org/project/swarmauri/">
5
- <img src="https://img.shields.io/pypi/dm/swarmauri" alt="PyPI - Downloads"/></a>
6
- <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/swarmauri/">
7
- <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/swarmauri.svg"/></a>
8
- <a href="https://pypi.org/project/swarmauri/">
9
- <img src="https://img.shields.io/pypi/pyversions/swarmauri" alt="PyPI - Python Version"/></a>
10
- <a href="https://pypi.org/project/swarmauri/">
11
- <img src="https://img.shields.io/pypi/l/swarmauri" alt="PyPI - License"/></a>
12
- <a href="https://pypi.org/project/swarmauri/">
13
- <img src="https://img.shields.io/pypi/v/swarmauri?label=swarmauri&color=green" alt="PyPI - swarmauri"/></a>
14
- </p>
15
-
16
- ---
17
-
18
- # Swarmauri SDK
19
-
20
- The Swarmauri SDK offers a comprehensive suite of tools designed for building distributed, extensible systems using the Swarmauri framework.
21
-
22
- ## Swarmauri Namespace Microkernel
23
-
24
- The `swarmauri` package is implemented as a namespace microkernel. When the
25
- package is imported it registers a custom importer that consults the interface
26
- and plugin citizenship registries to locate actual implementations. This design
27
- keeps the namespace lightweight while still allowing first-party and community
28
- plugins to be discovered and loaded on demand. New resource kinds are declared
29
- in `interface_registry.py`, then mapped to plugin modules via
30
- `plugin_citizenship_registry.py`. For a deeper look at the import flow, see
31
- [`docs/callflow.md`](docs/callflow.md).
32
-
33
- ## Core
34
- - **Core Interfaces**: Define the fundamental communication and data-sharing protocols between components in a Swarmauri-based system.
35
-
36
- ## Standard
37
- - **Base Classes**: Provide a foundation for constructing Swarmauri components, with standardized methods and properties.
38
- - **Mixins**: Reusable code fragments designed to be integrated into various classes, offering shared functionality across different components.
39
- - **Concrete Classes**: Ready-to-use, pre-implemented classes that fulfill standard system needs while adhering to Swarmauri principles. **These classes are the first in line for ongoing support and maintenance, ensuring they remain stable, performant, and up to date with future SDK developments.**
40
-
41
- ## Community
42
- - **Third-Party Plug-in Integration**: Concrete classes designed to extend the framework’s capabilities by utilizing third-party libraries and plugins.
43
- - **Open Source Contributions**: A collaborative space for developers to contribute new components, plug-ins, and features.
44
-
45
- ## Experimental
46
- - **In-Development Components**: Early-stage features and components that push the boundaries of the Swarmauri framework, offering innovative solutions that are still in testing phases.
47
-
48
- # Features
49
-
50
- - **Polymorphism**: Allows for dynamic behavior switching between components, enabling flexible, context-aware system behavior.
51
- - **Discriminated Unions**: Provides a robust method for handling multiple possible object types in a type-safe manner.
52
- - **Serialization**: Efficiently encode and decode data for transmission across different environments and system components, with support for both standard and custom serialization formats.
53
- - **Intensional and Extensional Programming**: The microkernel continues to leverage both rule-based (intensional) patterns and set-based (extensional) plugin discovery, allowing you to build and manipulate complex data structures with ease.
54
-
55
- ## Use Cases
56
-
57
- - **Modular Systems**: Develop scalable, pluggable systems that can evolve over time by adding or modifying components without disrupting the entire ecosystem.
58
- - **Distributed Architectures**: Build systems with distributed nodes that seamlessly communicate using the SDK’s standardized interfaces.
59
- - **Third-Party Integrations**: Extend the system's capabilities by easily incorporating third-party tools, libraries, and services.
60
- - **Prototype and Experimentation**: Test cutting-edge ideas using the experimental components in the SDK, while retaining the reliability of core and standard features for production systems.
61
-
62
- # Future Development
63
-
64
- The Swarmauri SDK is an evolving platform, and the community is encouraged to contribute to its growth. Upcoming releases will focus on enhancing the framework's modularity, providing more advanced serialization methods, and expanding the community-driven component library.
65
-
66
- ## Modules Overview
67
-
68
- ### Importer
69
- - [importer.py](swarmauri/importer.py): Handles the dynamic importing of modules and components within the Swarmauri framework.
70
-
71
- ### Interface Registry
72
- - [interface_registry.py](swarmauri/interface_registry.py): Manages the registration and lookup of interfaces used for communication between different components.
73
-
74
- ### Plugin Citizenship Registry
75
- - [plugin_citizenship_registry.py](swarmauri/plugin_citizenship_registry.py): Maintains a registry of plugins and their citizenship status within the Swarmauri ecosystem.
76
-
77
- When introducing a new resource kind or class, remember to update both the
78
- `plugin_citizenship_registry.py` and `interface_registry.py` so the framework can
79
- discover and validate your additions.
80
-
81
- ### Plugin Manager
82
- - [plugin_manager.py](swarmauri/plugin_manager.py): Oversees the loading, initialization, and management of plugins to extend the functionality of the Swarmauri framework.
83
-
84
- ## Contributing
85
-
86
- Contributions are welcome! If you'd like to add a new feature, fix a bug, or improve documentation, kindly go through the [contributions guidelines](https://github.com/swarmauri/swarmauri-sdk/blob/master/contributing.md) first.
File without changes