appecosystem 0.3.0__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.
- appecosystem-0.3.0/LICENSE +21 -0
- appecosystem-0.3.0/PKG-INFO +103 -0
- appecosystem-0.3.0/README.md +66 -0
- appecosystem-0.3.0/appecosystem.egg-info/PKG-INFO +103 -0
- appecosystem-0.3.0/appecosystem.egg-info/SOURCES.txt +60 -0
- appecosystem-0.3.0/appecosystem.egg-info/dependency_links.txt +1 -0
- appecosystem-0.3.0/appecosystem.egg-info/entry_points.txt +2 -0
- appecosystem-0.3.0/appecosystem.egg-info/requires.txt +13 -0
- appecosystem-0.3.0/appecosystem.egg-info/top_level.txt +4 -0
- appecosystem-0.3.0/cli/__init__.py +1 -0
- appecosystem-0.3.0/cli/__main__.py +4 -0
- appecosystem-0.3.0/cli/commands.py +635 -0
- appecosystem-0.3.0/cli/main.py +99 -0
- appecosystem-0.3.0/events/__init__.py +6 -0
- appecosystem-0.3.0/events/event_bus.py +137 -0
- appecosystem-0.3.0/events/event_types.py +48 -0
- appecosystem-0.3.0/events/schemas.py +40 -0
- appecosystem-0.3.0/llm/__init__.py +1 -0
- appecosystem-0.3.0/llm/command_router.py +188 -0
- appecosystem-0.3.0/llm/discovery_agent.py +107 -0
- appecosystem-0.3.0/llm/project_manifest.py +135 -0
- appecosystem-0.3.0/pyproject.toml +69 -0
- appecosystem-0.3.0/registry/__init__.py +1 -0
- appecosystem-0.3.0/registry/app.py +556 -0
- appecosystem-0.3.0/registry/app_store.py +153 -0
- appecosystem-0.3.0/registry/credential_store.py +160 -0
- appecosystem-0.3.0/registry/discovery.py +112 -0
- appecosystem-0.3.0/registry/health_monitor.py +182 -0
- appecosystem-0.3.0/registry/logging_config.py +49 -0
- appecosystem-0.3.0/registry/metrics.py +86 -0
- appecosystem-0.3.0/registry/models.py +73 -0
- appecosystem-0.3.0/registry/placement.py +54 -0
- appecosystem-0.3.0/registry/profile_store.py +109 -0
- appecosystem-0.3.0/registry/registry.py +153 -0
- appecosystem-0.3.0/setup.cfg +4 -0
- appecosystem-0.3.0/tests/test_app_store.py +86 -0
- appecosystem-0.3.0/tests/test_auth.py +376 -0
- appecosystem-0.3.0/tests/test_cli.py +243 -0
- appecosystem-0.3.0/tests/test_client.py +173 -0
- appecosystem-0.3.0/tests/test_client_auth_dependency.py +51 -0
- appecosystem-0.3.0/tests/test_command_router.py +189 -0
- appecosystem-0.3.0/tests/test_config.py +56 -0
- appecosystem-0.3.0/tests/test_credential_store.py +136 -0
- appecosystem-0.3.0/tests/test_discovery.py +118 -0
- appecosystem-0.3.0/tests/test_event_publisher.py +83 -0
- appecosystem-0.3.0/tests/test_event_subscriber.py +101 -0
- appecosystem-0.3.0/tests/test_events.py +62 -0
- appecosystem-0.3.0/tests/test_health.py +100 -0
- appecosystem-0.3.0/tests/test_metrics.py +42 -0
- appecosystem-0.3.0/tests/test_middleware_keyid.py +92 -0
- appecosystem-0.3.0/tests/test_packaging.py +94 -0
- appecosystem-0.3.0/tests/test_peer.py +58 -0
- appecosystem-0.3.0/tests/test_placement.py +59 -0
- appecosystem-0.3.0/tests/test_profile_store.py +53 -0
- appecosystem-0.3.0/tests/test_provider_cli.py +34 -0
- appecosystem-0.3.0/tests/test_provider_key_endpoints.py +108 -0
- appecosystem-0.3.0/tests/test_registry.py +132 -0
- appecosystem-0.3.0/tests/test_registry_app.py +238 -0
- appecosystem-0.3.0/tests/test_registry_partner_auth.py +88 -0
- appecosystem-0.3.0/tests/test_registry_security.py +44 -0
- appecosystem-0.3.0/tests/test_secret_setup.py +83 -0
- appecosystem-0.3.0/tests/test_topology.py +86 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 Mikel Smart
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: appecosystem
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Service registry, event bus and coordination layer for the appEcosystem service mesh
|
|
5
|
+
Author: Mikel Smart
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/M1K31/appEcosystem
|
|
8
|
+
Project-URL: Source, https://github.com/M1K31/appEcosystem
|
|
9
|
+
Project-URL: Issues, https://github.com/M1K31/appEcosystem/issues
|
|
10
|
+
Keywords: service-registry,event-bus,microservices,home-automation,appecosystem
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Framework :: FastAPI
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: fastapi>=0.100.0
|
|
25
|
+
Requires-Dist: uvicorn>=0.23.0
|
|
26
|
+
Requires-Dist: pydantic>=2.0
|
|
27
|
+
Requires-Dist: pyyaml>=6.0
|
|
28
|
+
Requires-Dist: httpx>=0.24.0
|
|
29
|
+
Requires-Dist: zeroconf>=0.80.0
|
|
30
|
+
Requires-Dist: appecosystem-client>=0.3.1
|
|
31
|
+
Requires-Dist: appecosystem-auth>=0.4.0
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
35
|
+
Requires-Dist: httpx>=0.24; extra == "dev"
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
|
|
38
|
+
# Unified Security & AI Ecosystem (appEcosystem)
|
|
39
|
+
|
|
40
|
+
A robust, **offline-first** ecosystem combining AI, surveillance, intrusion
|
|
41
|
+
detection, and smart displays into a single cohesive home network. `appEcosystem`
|
|
42
|
+
is the **control plane**: a service registry, event bus, shared-secret/auth layer,
|
|
43
|
+
and shared AI profile that ties the apps together — while every app still runs
|
|
44
|
+
**standalone** when the registry is absent.
|
|
45
|
+
|
|
46
|
+
## Architecture
|
|
47
|
+
|
|
48
|
+
**Standalone-first:** if the central coordination layer goes offline, every
|
|
49
|
+
connected app degrades gracefully and keeps working as an independent system.
|
|
50
|
+
When the registry *is* present, apps discover each other, share events, and sync
|
|
51
|
+
their LLM selection.
|
|
52
|
+
|
|
53
|
+
| Component | Role |
|
|
54
|
+
|-----------|------|
|
|
55
|
+
| **appEcosystem** (this repo) | Service registry + event bus + shared AI profile + shared auth |
|
|
56
|
+
| **AI-for-Survival** | Offline LLM assistant (Ollama + RAG) + cyber triage |
|
|
57
|
+
| **AegisSIEM** (LogAnalysis) | Router syslog SIEM + honeypot + active threat mitigation |
|
|
58
|
+
| **OpenEye** | OpenCV surveillance (face/object recognition, recording, alerts) |
|
|
59
|
+
| **MagicMirror³** | Visual hub / dashboards for the ecosystem |
|
|
60
|
+
|
|
61
|
+
### Shared packages (path-installed into each app)
|
|
62
|
+
- **`ecosystem_auth`** (`auth/python`) — HMAC-SHA256 replay-resistant request signing
|
|
63
|
+
(timestamp + nonce + body digest), fail-closed shared-secret resolution, and the
|
|
64
|
+
in-app "Ecosystem Setup" secret helpers.
|
|
65
|
+
- **`ecosystem_client`** (`ecosystem_client/`) — discovery cascade (registry → mDNS →
|
|
66
|
+
static → standalone), self-registration heartbeat, event pub/sub, topology
|
|
67
|
+
(`local`|`lan`) resolution.
|
|
68
|
+
- **`ecosystem-ai`** (`packages/ecosystem-ai`) — provider abstraction (Ollama default
|
|
69
|
+
+ Anthropic/OpenAI/Gemini), hardware capability tiers, syncable AI profile.
|
|
70
|
+
|
|
71
|
+
### Deployment modes (`ECOSYSTEM_MODE`)
|
|
72
|
+
- **`local`** (default) — everything on one machine; services bind + advertise on
|
|
73
|
+
loopback. Nothing is exposed on the network.
|
|
74
|
+
- **`lan`** — services may live on different devices; they bind on all interfaces and
|
|
75
|
+
advertise their real LAN IP via self-registration. Set `ECOSYSTEM_MODE=lan` per device.
|
|
76
|
+
|
|
77
|
+
## Quickstart
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 1. Install the registry as a service + provision the shared secret (internal disk)
|
|
81
|
+
./scripts/install.sh # macOS launchd / Linux systemd
|
|
82
|
+
|
|
83
|
+
# 2. Provision / share the HMAC secret (same machine is automatic; joining devices import it)
|
|
84
|
+
ecosystem secret generate # primary device
|
|
85
|
+
ecosystem secret import <value> # additional devices (value from `ecosystem secret show`)
|
|
86
|
+
|
|
87
|
+
# 3. Check the ecosystem
|
|
88
|
+
ecosystem status # registry + registered services health
|
|
89
|
+
ecosystem apps # which apps are installed on THIS device
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The `ecosystem` CLI (or `python -m cli.main`) controls the registry:
|
|
93
|
+
`start` · `stop` · `restart` · `start-all` · `stop-all` · `status` · `monitor` ·
|
|
94
|
+
`logs <app>` · `secret <generate|show|import|path>` · `apps [--json]` ·
|
|
95
|
+
`install` · `uninstall`.
|
|
96
|
+
|
|
97
|
+
See [usage.md](usage.md) for the registry API, HMAC signing, and per-app integration.
|
|
98
|
+
|
|
99
|
+
## Requirements
|
|
100
|
+
- Python 3.10–3.12 (the registry); the shared `ecosystem_auth` supports 3.9+ for apps
|
|
101
|
+
on older runtimes (e.g. OpenEye).
|
|
102
|
+
- macOS (launchd) or Linux (systemd) for the installed service.
|
|
103
|
+
- Ollama (default LLM provider) — optional but recommended.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Unified Security & AI Ecosystem (appEcosystem)
|
|
2
|
+
|
|
3
|
+
A robust, **offline-first** ecosystem combining AI, surveillance, intrusion
|
|
4
|
+
detection, and smart displays into a single cohesive home network. `appEcosystem`
|
|
5
|
+
is the **control plane**: a service registry, event bus, shared-secret/auth layer,
|
|
6
|
+
and shared AI profile that ties the apps together — while every app still runs
|
|
7
|
+
**standalone** when the registry is absent.
|
|
8
|
+
|
|
9
|
+
## Architecture
|
|
10
|
+
|
|
11
|
+
**Standalone-first:** if the central coordination layer goes offline, every
|
|
12
|
+
connected app degrades gracefully and keeps working as an independent system.
|
|
13
|
+
When the registry *is* present, apps discover each other, share events, and sync
|
|
14
|
+
their LLM selection.
|
|
15
|
+
|
|
16
|
+
| Component | Role |
|
|
17
|
+
|-----------|------|
|
|
18
|
+
| **appEcosystem** (this repo) | Service registry + event bus + shared AI profile + shared auth |
|
|
19
|
+
| **AI-for-Survival** | Offline LLM assistant (Ollama + RAG) + cyber triage |
|
|
20
|
+
| **AegisSIEM** (LogAnalysis) | Router syslog SIEM + honeypot + active threat mitigation |
|
|
21
|
+
| **OpenEye** | OpenCV surveillance (face/object recognition, recording, alerts) |
|
|
22
|
+
| **MagicMirror³** | Visual hub / dashboards for the ecosystem |
|
|
23
|
+
|
|
24
|
+
### Shared packages (path-installed into each app)
|
|
25
|
+
- **`ecosystem_auth`** (`auth/python`) — HMAC-SHA256 replay-resistant request signing
|
|
26
|
+
(timestamp + nonce + body digest), fail-closed shared-secret resolution, and the
|
|
27
|
+
in-app "Ecosystem Setup" secret helpers.
|
|
28
|
+
- **`ecosystem_client`** (`ecosystem_client/`) — discovery cascade (registry → mDNS →
|
|
29
|
+
static → standalone), self-registration heartbeat, event pub/sub, topology
|
|
30
|
+
(`local`|`lan`) resolution.
|
|
31
|
+
- **`ecosystem-ai`** (`packages/ecosystem-ai`) — provider abstraction (Ollama default
|
|
32
|
+
+ Anthropic/OpenAI/Gemini), hardware capability tiers, syncable AI profile.
|
|
33
|
+
|
|
34
|
+
### Deployment modes (`ECOSYSTEM_MODE`)
|
|
35
|
+
- **`local`** (default) — everything on one machine; services bind + advertise on
|
|
36
|
+
loopback. Nothing is exposed on the network.
|
|
37
|
+
- **`lan`** — services may live on different devices; they bind on all interfaces and
|
|
38
|
+
advertise their real LAN IP via self-registration. Set `ECOSYSTEM_MODE=lan` per device.
|
|
39
|
+
|
|
40
|
+
## Quickstart
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# 1. Install the registry as a service + provision the shared secret (internal disk)
|
|
44
|
+
./scripts/install.sh # macOS launchd / Linux systemd
|
|
45
|
+
|
|
46
|
+
# 2. Provision / share the HMAC secret (same machine is automatic; joining devices import it)
|
|
47
|
+
ecosystem secret generate # primary device
|
|
48
|
+
ecosystem secret import <value> # additional devices (value from `ecosystem secret show`)
|
|
49
|
+
|
|
50
|
+
# 3. Check the ecosystem
|
|
51
|
+
ecosystem status # registry + registered services health
|
|
52
|
+
ecosystem apps # which apps are installed on THIS device
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The `ecosystem` CLI (or `python -m cli.main`) controls the registry:
|
|
56
|
+
`start` · `stop` · `restart` · `start-all` · `stop-all` · `status` · `monitor` ·
|
|
57
|
+
`logs <app>` · `secret <generate|show|import|path>` · `apps [--json]` ·
|
|
58
|
+
`install` · `uninstall`.
|
|
59
|
+
|
|
60
|
+
See [usage.md](usage.md) for the registry API, HMAC signing, and per-app integration.
|
|
61
|
+
|
|
62
|
+
## Requirements
|
|
63
|
+
- Python 3.10–3.12 (the registry); the shared `ecosystem_auth` supports 3.9+ for apps
|
|
64
|
+
on older runtimes (e.g. OpenEye).
|
|
65
|
+
- macOS (launchd) or Linux (systemd) for the installed service.
|
|
66
|
+
- Ollama (default LLM provider) — optional but recommended.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: appecosystem
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Service registry, event bus and coordination layer for the appEcosystem service mesh
|
|
5
|
+
Author: Mikel Smart
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/M1K31/appEcosystem
|
|
8
|
+
Project-URL: Source, https://github.com/M1K31/appEcosystem
|
|
9
|
+
Project-URL: Issues, https://github.com/M1K31/appEcosystem/issues
|
|
10
|
+
Keywords: service-registry,event-bus,microservices,home-automation,appecosystem
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Framework :: FastAPI
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: fastapi>=0.100.0
|
|
25
|
+
Requires-Dist: uvicorn>=0.23.0
|
|
26
|
+
Requires-Dist: pydantic>=2.0
|
|
27
|
+
Requires-Dist: pyyaml>=6.0
|
|
28
|
+
Requires-Dist: httpx>=0.24.0
|
|
29
|
+
Requires-Dist: zeroconf>=0.80.0
|
|
30
|
+
Requires-Dist: appecosystem-client>=0.3.1
|
|
31
|
+
Requires-Dist: appecosystem-auth>=0.4.0
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
35
|
+
Requires-Dist: httpx>=0.24; extra == "dev"
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
|
|
38
|
+
# Unified Security & AI Ecosystem (appEcosystem)
|
|
39
|
+
|
|
40
|
+
A robust, **offline-first** ecosystem combining AI, surveillance, intrusion
|
|
41
|
+
detection, and smart displays into a single cohesive home network. `appEcosystem`
|
|
42
|
+
is the **control plane**: a service registry, event bus, shared-secret/auth layer,
|
|
43
|
+
and shared AI profile that ties the apps together — while every app still runs
|
|
44
|
+
**standalone** when the registry is absent.
|
|
45
|
+
|
|
46
|
+
## Architecture
|
|
47
|
+
|
|
48
|
+
**Standalone-first:** if the central coordination layer goes offline, every
|
|
49
|
+
connected app degrades gracefully and keeps working as an independent system.
|
|
50
|
+
When the registry *is* present, apps discover each other, share events, and sync
|
|
51
|
+
their LLM selection.
|
|
52
|
+
|
|
53
|
+
| Component | Role |
|
|
54
|
+
|-----------|------|
|
|
55
|
+
| **appEcosystem** (this repo) | Service registry + event bus + shared AI profile + shared auth |
|
|
56
|
+
| **AI-for-Survival** | Offline LLM assistant (Ollama + RAG) + cyber triage |
|
|
57
|
+
| **AegisSIEM** (LogAnalysis) | Router syslog SIEM + honeypot + active threat mitigation |
|
|
58
|
+
| **OpenEye** | OpenCV surveillance (face/object recognition, recording, alerts) |
|
|
59
|
+
| **MagicMirror³** | Visual hub / dashboards for the ecosystem |
|
|
60
|
+
|
|
61
|
+
### Shared packages (path-installed into each app)
|
|
62
|
+
- **`ecosystem_auth`** (`auth/python`) — HMAC-SHA256 replay-resistant request signing
|
|
63
|
+
(timestamp + nonce + body digest), fail-closed shared-secret resolution, and the
|
|
64
|
+
in-app "Ecosystem Setup" secret helpers.
|
|
65
|
+
- **`ecosystem_client`** (`ecosystem_client/`) — discovery cascade (registry → mDNS →
|
|
66
|
+
static → standalone), self-registration heartbeat, event pub/sub, topology
|
|
67
|
+
(`local`|`lan`) resolution.
|
|
68
|
+
- **`ecosystem-ai`** (`packages/ecosystem-ai`) — provider abstraction (Ollama default
|
|
69
|
+
+ Anthropic/OpenAI/Gemini), hardware capability tiers, syncable AI profile.
|
|
70
|
+
|
|
71
|
+
### Deployment modes (`ECOSYSTEM_MODE`)
|
|
72
|
+
- **`local`** (default) — everything on one machine; services bind + advertise on
|
|
73
|
+
loopback. Nothing is exposed on the network.
|
|
74
|
+
- **`lan`** — services may live on different devices; they bind on all interfaces and
|
|
75
|
+
advertise their real LAN IP via self-registration. Set `ECOSYSTEM_MODE=lan` per device.
|
|
76
|
+
|
|
77
|
+
## Quickstart
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 1. Install the registry as a service + provision the shared secret (internal disk)
|
|
81
|
+
./scripts/install.sh # macOS launchd / Linux systemd
|
|
82
|
+
|
|
83
|
+
# 2. Provision / share the HMAC secret (same machine is automatic; joining devices import it)
|
|
84
|
+
ecosystem secret generate # primary device
|
|
85
|
+
ecosystem secret import <value> # additional devices (value from `ecosystem secret show`)
|
|
86
|
+
|
|
87
|
+
# 3. Check the ecosystem
|
|
88
|
+
ecosystem status # registry + registered services health
|
|
89
|
+
ecosystem apps # which apps are installed on THIS device
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The `ecosystem` CLI (or `python -m cli.main`) controls the registry:
|
|
93
|
+
`start` · `stop` · `restart` · `start-all` · `stop-all` · `status` · `monitor` ·
|
|
94
|
+
`logs <app>` · `secret <generate|show|import|path>` · `apps [--json]` ·
|
|
95
|
+
`install` · `uninstall`.
|
|
96
|
+
|
|
97
|
+
See [usage.md](usage.md) for the registry API, HMAC signing, and per-app integration.
|
|
98
|
+
|
|
99
|
+
## Requirements
|
|
100
|
+
- Python 3.10–3.12 (the registry); the shared `ecosystem_auth` supports 3.9+ for apps
|
|
101
|
+
on older runtimes (e.g. OpenEye).
|
|
102
|
+
- macOS (launchd) or Linux (systemd) for the installed service.
|
|
103
|
+
- Ollama (default LLM provider) — optional but recommended.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
appecosystem.egg-info/PKG-INFO
|
|
5
|
+
appecosystem.egg-info/SOURCES.txt
|
|
6
|
+
appecosystem.egg-info/dependency_links.txt
|
|
7
|
+
appecosystem.egg-info/entry_points.txt
|
|
8
|
+
appecosystem.egg-info/requires.txt
|
|
9
|
+
appecosystem.egg-info/top_level.txt
|
|
10
|
+
cli/__init__.py
|
|
11
|
+
cli/__main__.py
|
|
12
|
+
cli/commands.py
|
|
13
|
+
cli/main.py
|
|
14
|
+
events/__init__.py
|
|
15
|
+
events/event_bus.py
|
|
16
|
+
events/event_types.py
|
|
17
|
+
events/schemas.py
|
|
18
|
+
llm/__init__.py
|
|
19
|
+
llm/command_router.py
|
|
20
|
+
llm/discovery_agent.py
|
|
21
|
+
llm/project_manifest.py
|
|
22
|
+
registry/__init__.py
|
|
23
|
+
registry/app.py
|
|
24
|
+
registry/app_store.py
|
|
25
|
+
registry/credential_store.py
|
|
26
|
+
registry/discovery.py
|
|
27
|
+
registry/health_monitor.py
|
|
28
|
+
registry/logging_config.py
|
|
29
|
+
registry/metrics.py
|
|
30
|
+
registry/models.py
|
|
31
|
+
registry/placement.py
|
|
32
|
+
registry/profile_store.py
|
|
33
|
+
registry/registry.py
|
|
34
|
+
tests/test_app_store.py
|
|
35
|
+
tests/test_auth.py
|
|
36
|
+
tests/test_cli.py
|
|
37
|
+
tests/test_client.py
|
|
38
|
+
tests/test_client_auth_dependency.py
|
|
39
|
+
tests/test_command_router.py
|
|
40
|
+
tests/test_config.py
|
|
41
|
+
tests/test_credential_store.py
|
|
42
|
+
tests/test_discovery.py
|
|
43
|
+
tests/test_event_publisher.py
|
|
44
|
+
tests/test_event_subscriber.py
|
|
45
|
+
tests/test_events.py
|
|
46
|
+
tests/test_health.py
|
|
47
|
+
tests/test_metrics.py
|
|
48
|
+
tests/test_middleware_keyid.py
|
|
49
|
+
tests/test_packaging.py
|
|
50
|
+
tests/test_peer.py
|
|
51
|
+
tests/test_placement.py
|
|
52
|
+
tests/test_profile_store.py
|
|
53
|
+
tests/test_provider_cli.py
|
|
54
|
+
tests/test_provider_key_endpoints.py
|
|
55
|
+
tests/test_registry.py
|
|
56
|
+
tests/test_registry_app.py
|
|
57
|
+
tests/test_registry_partner_auth.py
|
|
58
|
+
tests/test_registry_security.py
|
|
59
|
+
tests/test_secret_setup.py
|
|
60
|
+
tests/test_topology.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Ecosystem CLI entry point."""
|