halyn 0.4.2__tar.gz → 0.5.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.
- halyn-0.5.0/LICENSE +4 -0
- halyn-0.5.0/PKG-INFO +108 -0
- halyn-0.5.0/README.md +73 -0
- {halyn-0.4.2 → halyn-0.5.0}/pyproject.toml +4 -5
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/__init__.py +1 -1
- halyn-0.5.0/src/halyn.egg-info/PKG-INFO +108 -0
- halyn-0.4.2/LICENSE +0 -15
- halyn-0.4.2/PKG-INFO +0 -178
- halyn-0.4.2/README.md +0 -142
- halyn-0.4.2/src/halyn.egg-info/PKG-INFO +0 -178
- {halyn-0.4.2 → halyn-0.5.0}/setup.cfg +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/__main__.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/audit.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/auth.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/autonomy.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/cli.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/config.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/consent.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/control_plane.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/dashboard.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/discovery.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/__init__.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/browser.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/dds.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/docker.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/http_auto.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/mqtt.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/opcua.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/ros2.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/serial.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/socket_raw.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/ssh.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/unitree.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/drivers/websocket.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/engine.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/integrations/__init__.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/integrations/telegram.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/intent.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/llm.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/mcp.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/mcp_serve.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/memory/__init__.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/memory/store.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/nrp_bridge.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/py.typed +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/sanitizer.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/server.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/types.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn/watchdog.py +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn.egg-info/SOURCES.txt +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn.egg-info/dependency_links.txt +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn.egg-info/entry_points.txt +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn.egg-info/requires.txt +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/src/halyn.egg-info/top_level.txt +0 -0
- {halyn-0.4.2 → halyn-0.5.0}/tests/test_halyn.py +0 -0
halyn-0.5.0/LICENSE
ADDED
halyn-0.5.0/PKG-INFO
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: halyn
|
|
3
|
+
Version: 0.5.0
|
|
4
|
+
Summary: Halyn — Enforceable safety for AI agents. Shield rules, audit chain, dashboard.
|
|
5
|
+
Author-email: Elmadani SALKA <contact@halyn.dev>
|
|
6
|
+
License: Proprietary
|
|
7
|
+
Project-URL: Homepage, https://github.com/ElmadaniS/halyn
|
|
8
|
+
Project-URL: Repository, https://github.com/ElmadaniS/halyn
|
|
9
|
+
Project-URL: Issues, https://github.com/ElmadaniS/halyn/issues
|
|
10
|
+
Keywords: ai,browser,robotics,iot,mcp,nrp,llm,infrastructure,devops
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
|
+
Classifier: Topic :: System :: Systems Administration
|
|
15
|
+
Requires-Python: >=3.10
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: nrprotocol>=0.1.0
|
|
19
|
+
Requires-Dist: aiohttp>=3.9
|
|
20
|
+
Provides-Extra: enterprise
|
|
21
|
+
Requires-Dist: grpcio>=1.60; extra == "enterprise"
|
|
22
|
+
Requires-Dist: psycopg2-binary; extra == "enterprise"
|
|
23
|
+
Requires-Dist: redis; extra == "enterprise"
|
|
24
|
+
Provides-Extra: robotics
|
|
25
|
+
Requires-Dist: rclpy; extra == "robotics"
|
|
26
|
+
Requires-Dist: unitree-sdk2py; extra == "robotics"
|
|
27
|
+
Provides-Extra: iot
|
|
28
|
+
Requires-Dist: paho-mqtt; extra == "iot"
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
32
|
+
Requires-Dist: mypy; extra == "dev"
|
|
33
|
+
Requires-Dist: ruff; extra == "dev"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
<div align="center">
|
|
37
|
+
|
|
38
|
+
# Halyn
|
|
39
|
+
|
|
40
|
+
**AI agents act in the world. Halyn makes sure they can't break it.**
|
|
41
|
+
|
|
42
|
+
[](https://pypi.org/project/halyn/)
|
|
43
|
+
[](https://pypi.org/project/halyn/)
|
|
44
|
+
|
|
45
|
+
The safety layer for AI agents · Shield rules · Audit chain · Built-in dashboard
|
|
46
|
+
|
|
47
|
+
[Website](https://halyn.dev) · [Quick Start](#quick-start) · [Dashboard](#dashboard) · [Shield Rules](#shield-rules)
|
|
48
|
+
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## The Problem
|
|
54
|
+
|
|
55
|
+
AI agents are acting in the real world — deleting files, restarting servers, controlling robots. Claude has 22 MCP tools. GPT has computer use.
|
|
56
|
+
|
|
57
|
+
But who stops them from breaking things?
|
|
58
|
+
|
|
59
|
+
Today the answer is: the prompt says "be careful." That's like telling a car "don't crash" instead of installing brakes.
|
|
60
|
+
|
|
61
|
+
**Halyn is the brakes.**
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pip install halyn
|
|
67
|
+
halyn-mcp --port 8935
|
|
68
|
+
# Open http://localhost:8935 → see the dashboard
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
30 seconds. Zero code. Working dashboard.
|
|
72
|
+
|
|
73
|
+
## Dashboard
|
|
74
|
+
|
|
75
|
+
Built-in web UI. Type commands, see shields, watch the audit chain update in real-time.
|
|
76
|
+
|
|
77
|
+
## Shield Rules
|
|
78
|
+
|
|
79
|
+
Constraints enforced at protocol level. The AI has **no power** to override them.
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
from halyn import ControlPlane, SSHDriver
|
|
83
|
+
|
|
84
|
+
cp = ControlPlane()
|
|
85
|
+
cp.connect(SSHDriver("192.168.1.10", "admin"))
|
|
86
|
+
cp.shield("deny * delete *") # no deletions — ever
|
|
87
|
+
|
|
88
|
+
cp.act("restart nginx") # ✓ allowed
|
|
89
|
+
cp.act("rm -rf /etc") # ✗ blocked — always
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Not guidelines. **Physics.**
|
|
93
|
+
|
|
94
|
+
## Audit Chain
|
|
95
|
+
|
|
96
|
+
Every action recorded in SHA-256 hash chain. Tamper-evident, append-only.
|
|
97
|
+
|
|
98
|
+
## 12 Drivers
|
|
99
|
+
|
|
100
|
+
SSH, HTTP, WebSocket, Serial, MQTT, OPC-UA, ROS2, DDS, Docker, Browser, Unitree, Socket.
|
|
101
|
+
|
|
102
|
+
## Built on NRP
|
|
103
|
+
|
|
104
|
+
Halyn implements [NRP](https://nrprotocol.dev) — 6 rules that no AI can break.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
[halyn.dev](https://halyn.dev) · [nrprotocol.dev](https://nrprotocol.dev) · [PyPI](https://pypi.org/project/halyn/) · [contact@halyn.dev](mailto:contact@halyn.dev)
|
halyn-0.5.0/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# Halyn
|
|
4
|
+
|
|
5
|
+
**AI agents act in the world. Halyn makes sure they can't break it.**
|
|
6
|
+
|
|
7
|
+
[](https://pypi.org/project/halyn/)
|
|
8
|
+
[](https://pypi.org/project/halyn/)
|
|
9
|
+
|
|
10
|
+
The safety layer for AI agents · Shield rules · Audit chain · Built-in dashboard
|
|
11
|
+
|
|
12
|
+
[Website](https://halyn.dev) · [Quick Start](#quick-start) · [Dashboard](#dashboard) · [Shield Rules](#shield-rules)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## The Problem
|
|
19
|
+
|
|
20
|
+
AI agents are acting in the real world — deleting files, restarting servers, controlling robots. Claude has 22 MCP tools. GPT has computer use.
|
|
21
|
+
|
|
22
|
+
But who stops them from breaking things?
|
|
23
|
+
|
|
24
|
+
Today the answer is: the prompt says "be careful." That's like telling a car "don't crash" instead of installing brakes.
|
|
25
|
+
|
|
26
|
+
**Halyn is the brakes.**
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install halyn
|
|
32
|
+
halyn-mcp --port 8935
|
|
33
|
+
# Open http://localhost:8935 → see the dashboard
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
30 seconds. Zero code. Working dashboard.
|
|
37
|
+
|
|
38
|
+
## Dashboard
|
|
39
|
+
|
|
40
|
+
Built-in web UI. Type commands, see shields, watch the audit chain update in real-time.
|
|
41
|
+
|
|
42
|
+
## Shield Rules
|
|
43
|
+
|
|
44
|
+
Constraints enforced at protocol level. The AI has **no power** to override them.
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from halyn import ControlPlane, SSHDriver
|
|
48
|
+
|
|
49
|
+
cp = ControlPlane()
|
|
50
|
+
cp.connect(SSHDriver("192.168.1.10", "admin"))
|
|
51
|
+
cp.shield("deny * delete *") # no deletions — ever
|
|
52
|
+
|
|
53
|
+
cp.act("restart nginx") # ✓ allowed
|
|
54
|
+
cp.act("rm -rf /etc") # ✗ blocked — always
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Not guidelines. **Physics.**
|
|
58
|
+
|
|
59
|
+
## Audit Chain
|
|
60
|
+
|
|
61
|
+
Every action recorded in SHA-256 hash chain. Tamper-evident, append-only.
|
|
62
|
+
|
|
63
|
+
## 12 Drivers
|
|
64
|
+
|
|
65
|
+
SSH, HTTP, WebSocket, Serial, MQTT, OPC-UA, ROS2, DDS, Docker, Browser, Unitree, Socket.
|
|
66
|
+
|
|
67
|
+
## Built on NRP
|
|
68
|
+
|
|
69
|
+
Halyn implements [NRP](https://nrprotocol.dev) — 6 rules that no AI can break.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
[halyn.dev](https://halyn.dev) · [nrprotocol.dev](https://nrprotocol.dev) · [PyPI](https://pypi.org/project/halyn/) · [contact@halyn.dev](mailto:contact@halyn.dev)
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "halyn"
|
|
3
|
-
version = "0.
|
|
4
|
-
description = "Halyn —
|
|
3
|
+
version = "0.5.0"
|
|
4
|
+
description = "Halyn — Enforceable safety for AI agents. Shield rules, audit chain, dashboard."
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
|
-
license = {text = "
|
|
6
|
+
license = {text = "Proprietary"}
|
|
7
7
|
authors = [{name = "Elmadani SALKA", email = "contact@halyn.dev"}]
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
keywords = ["ai", "browser", "robotics", "iot", "mcp", "nrp", "llm", "infrastructure", "devops"]
|
|
10
10
|
classifiers = [
|
|
11
11
|
"Development Status :: 3 - Alpha",
|
|
12
|
-
|
|
13
|
-
"Programming Language :: Python :: 3",
|
|
12
|
+
"Programming Language :: Python :: 3",
|
|
14
13
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
15
14
|
"Topic :: System :: Systems Administration",
|
|
16
15
|
]
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: halyn
|
|
3
|
+
Version: 0.5.0
|
|
4
|
+
Summary: Halyn — Enforceable safety for AI agents. Shield rules, audit chain, dashboard.
|
|
5
|
+
Author-email: Elmadani SALKA <contact@halyn.dev>
|
|
6
|
+
License: Proprietary
|
|
7
|
+
Project-URL: Homepage, https://github.com/ElmadaniS/halyn
|
|
8
|
+
Project-URL: Repository, https://github.com/ElmadaniS/halyn
|
|
9
|
+
Project-URL: Issues, https://github.com/ElmadaniS/halyn/issues
|
|
10
|
+
Keywords: ai,browser,robotics,iot,mcp,nrp,llm,infrastructure,devops
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
|
+
Classifier: Topic :: System :: Systems Administration
|
|
15
|
+
Requires-Python: >=3.10
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: nrprotocol>=0.1.0
|
|
19
|
+
Requires-Dist: aiohttp>=3.9
|
|
20
|
+
Provides-Extra: enterprise
|
|
21
|
+
Requires-Dist: grpcio>=1.60; extra == "enterprise"
|
|
22
|
+
Requires-Dist: psycopg2-binary; extra == "enterprise"
|
|
23
|
+
Requires-Dist: redis; extra == "enterprise"
|
|
24
|
+
Provides-Extra: robotics
|
|
25
|
+
Requires-Dist: rclpy; extra == "robotics"
|
|
26
|
+
Requires-Dist: unitree-sdk2py; extra == "robotics"
|
|
27
|
+
Provides-Extra: iot
|
|
28
|
+
Requires-Dist: paho-mqtt; extra == "iot"
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
32
|
+
Requires-Dist: mypy; extra == "dev"
|
|
33
|
+
Requires-Dist: ruff; extra == "dev"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
<div align="center">
|
|
37
|
+
|
|
38
|
+
# Halyn
|
|
39
|
+
|
|
40
|
+
**AI agents act in the world. Halyn makes sure they can't break it.**
|
|
41
|
+
|
|
42
|
+
[](https://pypi.org/project/halyn/)
|
|
43
|
+
[](https://pypi.org/project/halyn/)
|
|
44
|
+
|
|
45
|
+
The safety layer for AI agents · Shield rules · Audit chain · Built-in dashboard
|
|
46
|
+
|
|
47
|
+
[Website](https://halyn.dev) · [Quick Start](#quick-start) · [Dashboard](#dashboard) · [Shield Rules](#shield-rules)
|
|
48
|
+
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## The Problem
|
|
54
|
+
|
|
55
|
+
AI agents are acting in the real world — deleting files, restarting servers, controlling robots. Claude has 22 MCP tools. GPT has computer use.
|
|
56
|
+
|
|
57
|
+
But who stops them from breaking things?
|
|
58
|
+
|
|
59
|
+
Today the answer is: the prompt says "be careful." That's like telling a car "don't crash" instead of installing brakes.
|
|
60
|
+
|
|
61
|
+
**Halyn is the brakes.**
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pip install halyn
|
|
67
|
+
halyn-mcp --port 8935
|
|
68
|
+
# Open http://localhost:8935 → see the dashboard
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
30 seconds. Zero code. Working dashboard.
|
|
72
|
+
|
|
73
|
+
## Dashboard
|
|
74
|
+
|
|
75
|
+
Built-in web UI. Type commands, see shields, watch the audit chain update in real-time.
|
|
76
|
+
|
|
77
|
+
## Shield Rules
|
|
78
|
+
|
|
79
|
+
Constraints enforced at protocol level. The AI has **no power** to override them.
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
from halyn import ControlPlane, SSHDriver
|
|
83
|
+
|
|
84
|
+
cp = ControlPlane()
|
|
85
|
+
cp.connect(SSHDriver("192.168.1.10", "admin"))
|
|
86
|
+
cp.shield("deny * delete *") # no deletions — ever
|
|
87
|
+
|
|
88
|
+
cp.act("restart nginx") # ✓ allowed
|
|
89
|
+
cp.act("rm -rf /etc") # ✗ blocked — always
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Not guidelines. **Physics.**
|
|
93
|
+
|
|
94
|
+
## Audit Chain
|
|
95
|
+
|
|
96
|
+
Every action recorded in SHA-256 hash chain. Tamper-evident, append-only.
|
|
97
|
+
|
|
98
|
+
## 12 Drivers
|
|
99
|
+
|
|
100
|
+
SSH, HTTP, WebSocket, Serial, MQTT, OPC-UA, ROS2, DDS, Docker, Browser, Unitree, Socket.
|
|
101
|
+
|
|
102
|
+
## Built on NRP
|
|
103
|
+
|
|
104
|
+
Halyn implements [NRP](https://nrprotocol.dev) — 6 rules that no AI can break.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
[halyn.dev](https://halyn.dev) · [nrprotocol.dev](https://nrprotocol.dev) · [PyPI](https://pypi.org/project/halyn/) · [contact@halyn.dev](mailto:contact@halyn.dev)
|
halyn-0.4.2/LICENSE
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Elmadani SALKA
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files, to deal in the Software
|
|
7
|
-
without restriction, including without limitation the rights to use, copy,
|
|
8
|
-
modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
|
9
|
-
Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
-
subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
halyn-0.4.2/PKG-INFO
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: halyn
|
|
3
|
-
Version: 0.4.2
|
|
4
|
-
Summary: Halyn — NRP control plane with domain-scoped authorization.
|
|
5
|
-
Author-email: Elmadani SALKA <contact@halyn.dev>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/ElmadaniS/halyn
|
|
8
|
-
Project-URL: Repository, https://github.com/ElmadaniS/halyn
|
|
9
|
-
Project-URL: Issues, https://github.com/ElmadaniS/halyn/issues
|
|
10
|
-
Keywords: ai,browser,robotics,iot,mcp,nrp,llm,infrastructure,devops
|
|
11
|
-
Classifier: Development Status :: 3 - Alpha
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
15
|
-
Classifier: Topic :: System :: Systems Administration
|
|
16
|
-
Requires-Python: >=3.10
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
License-File: LICENSE
|
|
19
|
-
Requires-Dist: nrprotocol>=0.1.0
|
|
20
|
-
Requires-Dist: aiohttp>=3.9
|
|
21
|
-
Provides-Extra: enterprise
|
|
22
|
-
Requires-Dist: grpcio>=1.60; extra == "enterprise"
|
|
23
|
-
Requires-Dist: psycopg2-binary; extra == "enterprise"
|
|
24
|
-
Requires-Dist: redis; extra == "enterprise"
|
|
25
|
-
Provides-Extra: robotics
|
|
26
|
-
Requires-Dist: rclpy; extra == "robotics"
|
|
27
|
-
Requires-Dist: unitree-sdk2py; extra == "robotics"
|
|
28
|
-
Provides-Extra: iot
|
|
29
|
-
Requires-Dist: paho-mqtt; extra == "iot"
|
|
30
|
-
Provides-Extra: dev
|
|
31
|
-
Requires-Dist: pytest; extra == "dev"
|
|
32
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
33
|
-
Requires-Dist: mypy; extra == "dev"
|
|
34
|
-
Requires-Dist: ruff; extra == "dev"
|
|
35
|
-
Dynamic: license-file
|
|
36
|
-
|
|
37
|
-
<div align="center">
|
|
38
|
-
|
|
39
|
-
# Halyn
|
|
40
|
-
|
|
41
|
-
**Connect any device to any AI.**
|
|
42
|
-
|
|
43
|
-
[](https://pypi.org/project/halyn/)
|
|
44
|
-
[](LICENSE)
|
|
45
|
-
[](https://pypi.org/project/halyn/)
|
|
46
|
-
|
|
47
|
-
MCP Server · 12 drivers · Shield rules · Audit chain · 5 autonomy levels
|
|
48
|
-
|
|
49
|
-
[Website](https://halyn.dev) · [Quickstart](#quickstart) · [MCP Server](#mcp-server) · [Tutorials](https://halyn.dev#tutorials)
|
|
50
|
-
|
|
51
|
-
</div>
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## The Problem
|
|
56
|
-
|
|
57
|
-
MCP connects AI to software. But AI is entering the physical world — robots, drones, factories, farms, hospitals. There's no universal standard for how AI safely controls hardware.
|
|
58
|
-
|
|
59
|
-
**Halyn connects AI to everything else.** Servers, sensors, robots, industrial machines, smart homes — with safety rules the AI cannot break.
|
|
60
|
-
|
|
61
|
-
## Quickstart
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
pip install halyn
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
```python
|
|
68
|
-
from halyn import ControlPlane, SSHDriver
|
|
69
|
-
|
|
70
|
-
cp = ControlPlane()
|
|
71
|
-
cp.connect(SSHDriver("192.168.1.10", "admin"))
|
|
72
|
-
|
|
73
|
-
# Safety rules — the AI physically cannot bypass these
|
|
74
|
-
cp.shield("deny * delete *")
|
|
75
|
-
cp.shield("deny * write /etc/*")
|
|
76
|
-
|
|
77
|
-
# Observe
|
|
78
|
-
state = cp.observe()
|
|
79
|
-
print(state) # {"cpu": 23.4, "mem": 67.2, ...}
|
|
80
|
-
|
|
81
|
-
# Act (within shield rules)
|
|
82
|
-
cp.act("restart nginx") # ✓ allowed
|
|
83
|
-
cp.act("rm -rf /etc") # ✗ blocked by shield
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## MCP Server
|
|
87
|
-
|
|
88
|
-
Connect Claude.ai, ChatGPT, Cursor, or any MCP client directly to your devices:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
# Start the MCP Server
|
|
92
|
-
halyn-mcp --port 8935
|
|
93
|
-
|
|
94
|
-
# In Claude.ai → Settings → MCP → Add Server
|
|
95
|
-
# URL: http://your-server:8935/mcp
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Then just talk:
|
|
99
|
-
- *"Show me the status of all connected devices"*
|
|
100
|
-
- *"What's the temperature in the greenhouse?"*
|
|
101
|
-
- *"Restart nginx on server-01"*
|
|
102
|
-
- *"Show me the audit trail"*
|
|
103
|
-
|
|
104
|
-
The AI sees your devices as tools. Shield rules still apply. Every action is audited.
|
|
105
|
-
|
|
106
|
-
## 12 Drivers
|
|
107
|
-
|
|
108
|
-
| Driver | Target | Protocol |
|
|
109
|
-
|--------|--------|----------|
|
|
110
|
-
| `SSHDriver` | Linux/Mac servers | SSH |
|
|
111
|
-
| `HTTPDriver` | REST APIs, webhooks | HTTP |
|
|
112
|
-
| `WebSocketDriver` | Real-time streams | WebSocket |
|
|
113
|
-
| `SerialDriver` | Arduino, Pi, PLCs | Serial |
|
|
114
|
-
| `MQTTDriver` | IoT sensors | MQTT |
|
|
115
|
-
| `OPCUADriver` | Industrial machines | OPC-UA |
|
|
116
|
-
| `ROS2Driver` | Robots, drones | ROS2/DDS |
|
|
117
|
-
| `DDSDriver` | Real-time systems | DDS |
|
|
118
|
-
| `DockerDriver` | Containers | Docker API |
|
|
119
|
-
| `BrowserDriver` | Web automation | Chrome CDP |
|
|
120
|
-
| `UnitreeDriver` | Unitree robots | UDP |
|
|
121
|
-
| `SocketDriver` | Raw TCP/UDP | Socket |
|
|
122
|
-
|
|
123
|
-
## Safety
|
|
124
|
-
|
|
125
|
-
**Shield Rules** — Constraints enforced at protocol level. The AI has no power to override them.
|
|
126
|
-
|
|
127
|
-
```python
|
|
128
|
-
cp.shield("deny * delete *") # no deletions
|
|
129
|
-
cp.shield("deny * write temperature > 180") # thermal limit
|
|
130
|
-
cp.shield("deny lock unlock between 23:00-06:00") # doors locked at night
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**Audit Chain** — Every action recorded in SHA-256 hash chain. Tamper-evident. Append-only.
|
|
134
|
-
|
|
135
|
-
**Consent Protocol** — Devices and AI negotiate permissions before any interaction.
|
|
136
|
-
|
|
137
|
-
**5 Autonomy Levels** — From fully manual to fully autonomous. You choose.
|
|
138
|
-
|
|
139
|
-
| Level | Name | Who Decides |
|
|
140
|
-
|-------|------|-------------|
|
|
141
|
-
| 0 | Manual | Human does everything |
|
|
142
|
-
| 1 | Advisory | AI suggests, human acts |
|
|
143
|
-
| 2 | Supervised | AI acts, human approves |
|
|
144
|
-
| 3 | Monitored | AI acts freely, human watches |
|
|
145
|
-
| 4 | Autonomous | AI decides within shield rules |
|
|
146
|
-
|
|
147
|
-
## Works with Every LLM
|
|
148
|
-
|
|
149
|
-
```python
|
|
150
|
-
# Claude
|
|
151
|
-
import anthropic
|
|
152
|
-
client = anthropic.Anthropic()
|
|
153
|
-
response = client.messages.create(model="claude-sonnet-4-6", ...)
|
|
154
|
-
cp.act(response.content[0].text)
|
|
155
|
-
|
|
156
|
-
# GPT
|
|
157
|
-
from openai import OpenAI
|
|
158
|
-
client = OpenAI()
|
|
159
|
-
response = client.chat.completions.create(model="gpt-5", ...)
|
|
160
|
-
|
|
161
|
-
# Local (Ollama — no internet needed)
|
|
162
|
-
import ollama
|
|
163
|
-
response = ollama.chat(model="llama4", ...)
|
|
164
|
-
|
|
165
|
-
# All use the same shield rules. Same audit chain.
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## Built on NRP
|
|
169
|
-
|
|
170
|
-
Halyn implements [NRP (Node Reach Protocol)](https://nrprotocol.dev) — the open standard for AI-to-device communication. 6 primitives: Manifest, Observe, Act, Shield, Audit, Consent.
|
|
171
|
-
|
|
172
|
-
## Free. Open Source. Forever.
|
|
173
|
-
|
|
174
|
-
MIT licensed. Use it for anything. Modify it. Build a company on it. No fees, no limits, no lock-in.
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
[halyn.dev](https://halyn.dev) · [nrprotocol.dev](https://nrprotocol.dev) · [PyPI](https://pypi.org/project/halyn/) · [contact@halyn.dev](mailto:contact@halyn.dev)
|
halyn-0.4.2/README.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# Halyn
|
|
4
|
-
|
|
5
|
-
**Connect any device to any AI.**
|
|
6
|
-
|
|
7
|
-
[](https://pypi.org/project/halyn/)
|
|
8
|
-
[](LICENSE)
|
|
9
|
-
[](https://pypi.org/project/halyn/)
|
|
10
|
-
|
|
11
|
-
MCP Server · 12 drivers · Shield rules · Audit chain · 5 autonomy levels
|
|
12
|
-
|
|
13
|
-
[Website](https://halyn.dev) · [Quickstart](#quickstart) · [MCP Server](#mcp-server) · [Tutorials](https://halyn.dev#tutorials)
|
|
14
|
-
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## The Problem
|
|
20
|
-
|
|
21
|
-
MCP connects AI to software. But AI is entering the physical world — robots, drones, factories, farms, hospitals. There's no universal standard for how AI safely controls hardware.
|
|
22
|
-
|
|
23
|
-
**Halyn connects AI to everything else.** Servers, sensors, robots, industrial machines, smart homes — with safety rules the AI cannot break.
|
|
24
|
-
|
|
25
|
-
## Quickstart
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
pip install halyn
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
```python
|
|
32
|
-
from halyn import ControlPlane, SSHDriver
|
|
33
|
-
|
|
34
|
-
cp = ControlPlane()
|
|
35
|
-
cp.connect(SSHDriver("192.168.1.10", "admin"))
|
|
36
|
-
|
|
37
|
-
# Safety rules — the AI physically cannot bypass these
|
|
38
|
-
cp.shield("deny * delete *")
|
|
39
|
-
cp.shield("deny * write /etc/*")
|
|
40
|
-
|
|
41
|
-
# Observe
|
|
42
|
-
state = cp.observe()
|
|
43
|
-
print(state) # {"cpu": 23.4, "mem": 67.2, ...}
|
|
44
|
-
|
|
45
|
-
# Act (within shield rules)
|
|
46
|
-
cp.act("restart nginx") # ✓ allowed
|
|
47
|
-
cp.act("rm -rf /etc") # ✗ blocked by shield
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## MCP Server
|
|
51
|
-
|
|
52
|
-
Connect Claude.ai, ChatGPT, Cursor, or any MCP client directly to your devices:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# Start the MCP Server
|
|
56
|
-
halyn-mcp --port 8935
|
|
57
|
-
|
|
58
|
-
# In Claude.ai → Settings → MCP → Add Server
|
|
59
|
-
# URL: http://your-server:8935/mcp
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Then just talk:
|
|
63
|
-
- *"Show me the status of all connected devices"*
|
|
64
|
-
- *"What's the temperature in the greenhouse?"*
|
|
65
|
-
- *"Restart nginx on server-01"*
|
|
66
|
-
- *"Show me the audit trail"*
|
|
67
|
-
|
|
68
|
-
The AI sees your devices as tools. Shield rules still apply. Every action is audited.
|
|
69
|
-
|
|
70
|
-
## 12 Drivers
|
|
71
|
-
|
|
72
|
-
| Driver | Target | Protocol |
|
|
73
|
-
|--------|--------|----------|
|
|
74
|
-
| `SSHDriver` | Linux/Mac servers | SSH |
|
|
75
|
-
| `HTTPDriver` | REST APIs, webhooks | HTTP |
|
|
76
|
-
| `WebSocketDriver` | Real-time streams | WebSocket |
|
|
77
|
-
| `SerialDriver` | Arduino, Pi, PLCs | Serial |
|
|
78
|
-
| `MQTTDriver` | IoT sensors | MQTT |
|
|
79
|
-
| `OPCUADriver` | Industrial machines | OPC-UA |
|
|
80
|
-
| `ROS2Driver` | Robots, drones | ROS2/DDS |
|
|
81
|
-
| `DDSDriver` | Real-time systems | DDS |
|
|
82
|
-
| `DockerDriver` | Containers | Docker API |
|
|
83
|
-
| `BrowserDriver` | Web automation | Chrome CDP |
|
|
84
|
-
| `UnitreeDriver` | Unitree robots | UDP |
|
|
85
|
-
| `SocketDriver` | Raw TCP/UDP | Socket |
|
|
86
|
-
|
|
87
|
-
## Safety
|
|
88
|
-
|
|
89
|
-
**Shield Rules** — Constraints enforced at protocol level. The AI has no power to override them.
|
|
90
|
-
|
|
91
|
-
```python
|
|
92
|
-
cp.shield("deny * delete *") # no deletions
|
|
93
|
-
cp.shield("deny * write temperature > 180") # thermal limit
|
|
94
|
-
cp.shield("deny lock unlock between 23:00-06:00") # doors locked at night
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**Audit Chain** — Every action recorded in SHA-256 hash chain. Tamper-evident. Append-only.
|
|
98
|
-
|
|
99
|
-
**Consent Protocol** — Devices and AI negotiate permissions before any interaction.
|
|
100
|
-
|
|
101
|
-
**5 Autonomy Levels** — From fully manual to fully autonomous. You choose.
|
|
102
|
-
|
|
103
|
-
| Level | Name | Who Decides |
|
|
104
|
-
|-------|------|-------------|
|
|
105
|
-
| 0 | Manual | Human does everything |
|
|
106
|
-
| 1 | Advisory | AI suggests, human acts |
|
|
107
|
-
| 2 | Supervised | AI acts, human approves |
|
|
108
|
-
| 3 | Monitored | AI acts freely, human watches |
|
|
109
|
-
| 4 | Autonomous | AI decides within shield rules |
|
|
110
|
-
|
|
111
|
-
## Works with Every LLM
|
|
112
|
-
|
|
113
|
-
```python
|
|
114
|
-
# Claude
|
|
115
|
-
import anthropic
|
|
116
|
-
client = anthropic.Anthropic()
|
|
117
|
-
response = client.messages.create(model="claude-sonnet-4-6", ...)
|
|
118
|
-
cp.act(response.content[0].text)
|
|
119
|
-
|
|
120
|
-
# GPT
|
|
121
|
-
from openai import OpenAI
|
|
122
|
-
client = OpenAI()
|
|
123
|
-
response = client.chat.completions.create(model="gpt-5", ...)
|
|
124
|
-
|
|
125
|
-
# Local (Ollama — no internet needed)
|
|
126
|
-
import ollama
|
|
127
|
-
response = ollama.chat(model="llama4", ...)
|
|
128
|
-
|
|
129
|
-
# All use the same shield rules. Same audit chain.
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Built on NRP
|
|
133
|
-
|
|
134
|
-
Halyn implements [NRP (Node Reach Protocol)](https://nrprotocol.dev) — the open standard for AI-to-device communication. 6 primitives: Manifest, Observe, Act, Shield, Audit, Consent.
|
|
135
|
-
|
|
136
|
-
## Free. Open Source. Forever.
|
|
137
|
-
|
|
138
|
-
MIT licensed. Use it for anything. Modify it. Build a company on it. No fees, no limits, no lock-in.
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
[halyn.dev](https://halyn.dev) · [nrprotocol.dev](https://nrprotocol.dev) · [PyPI](https://pypi.org/project/halyn/) · [contact@halyn.dev](mailto:contact@halyn.dev)
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: halyn
|
|
3
|
-
Version: 0.4.2
|
|
4
|
-
Summary: Halyn — NRP control plane with domain-scoped authorization.
|
|
5
|
-
Author-email: Elmadani SALKA <contact@halyn.dev>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/ElmadaniS/halyn
|
|
8
|
-
Project-URL: Repository, https://github.com/ElmadaniS/halyn
|
|
9
|
-
Project-URL: Issues, https://github.com/ElmadaniS/halyn/issues
|
|
10
|
-
Keywords: ai,browser,robotics,iot,mcp,nrp,llm,infrastructure,devops
|
|
11
|
-
Classifier: Development Status :: 3 - Alpha
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
15
|
-
Classifier: Topic :: System :: Systems Administration
|
|
16
|
-
Requires-Python: >=3.10
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
License-File: LICENSE
|
|
19
|
-
Requires-Dist: nrprotocol>=0.1.0
|
|
20
|
-
Requires-Dist: aiohttp>=3.9
|
|
21
|
-
Provides-Extra: enterprise
|
|
22
|
-
Requires-Dist: grpcio>=1.60; extra == "enterprise"
|
|
23
|
-
Requires-Dist: psycopg2-binary; extra == "enterprise"
|
|
24
|
-
Requires-Dist: redis; extra == "enterprise"
|
|
25
|
-
Provides-Extra: robotics
|
|
26
|
-
Requires-Dist: rclpy; extra == "robotics"
|
|
27
|
-
Requires-Dist: unitree-sdk2py; extra == "robotics"
|
|
28
|
-
Provides-Extra: iot
|
|
29
|
-
Requires-Dist: paho-mqtt; extra == "iot"
|
|
30
|
-
Provides-Extra: dev
|
|
31
|
-
Requires-Dist: pytest; extra == "dev"
|
|
32
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
33
|
-
Requires-Dist: mypy; extra == "dev"
|
|
34
|
-
Requires-Dist: ruff; extra == "dev"
|
|
35
|
-
Dynamic: license-file
|
|
36
|
-
|
|
37
|
-
<div align="center">
|
|
38
|
-
|
|
39
|
-
# Halyn
|
|
40
|
-
|
|
41
|
-
**Connect any device to any AI.**
|
|
42
|
-
|
|
43
|
-
[](https://pypi.org/project/halyn/)
|
|
44
|
-
[](LICENSE)
|
|
45
|
-
[](https://pypi.org/project/halyn/)
|
|
46
|
-
|
|
47
|
-
MCP Server · 12 drivers · Shield rules · Audit chain · 5 autonomy levels
|
|
48
|
-
|
|
49
|
-
[Website](https://halyn.dev) · [Quickstart](#quickstart) · [MCP Server](#mcp-server) · [Tutorials](https://halyn.dev#tutorials)
|
|
50
|
-
|
|
51
|
-
</div>
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## The Problem
|
|
56
|
-
|
|
57
|
-
MCP connects AI to software. But AI is entering the physical world — robots, drones, factories, farms, hospitals. There's no universal standard for how AI safely controls hardware.
|
|
58
|
-
|
|
59
|
-
**Halyn connects AI to everything else.** Servers, sensors, robots, industrial machines, smart homes — with safety rules the AI cannot break.
|
|
60
|
-
|
|
61
|
-
## Quickstart
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
pip install halyn
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
```python
|
|
68
|
-
from halyn import ControlPlane, SSHDriver
|
|
69
|
-
|
|
70
|
-
cp = ControlPlane()
|
|
71
|
-
cp.connect(SSHDriver("192.168.1.10", "admin"))
|
|
72
|
-
|
|
73
|
-
# Safety rules — the AI physically cannot bypass these
|
|
74
|
-
cp.shield("deny * delete *")
|
|
75
|
-
cp.shield("deny * write /etc/*")
|
|
76
|
-
|
|
77
|
-
# Observe
|
|
78
|
-
state = cp.observe()
|
|
79
|
-
print(state) # {"cpu": 23.4, "mem": 67.2, ...}
|
|
80
|
-
|
|
81
|
-
# Act (within shield rules)
|
|
82
|
-
cp.act("restart nginx") # ✓ allowed
|
|
83
|
-
cp.act("rm -rf /etc") # ✗ blocked by shield
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## MCP Server
|
|
87
|
-
|
|
88
|
-
Connect Claude.ai, ChatGPT, Cursor, or any MCP client directly to your devices:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
# Start the MCP Server
|
|
92
|
-
halyn-mcp --port 8935
|
|
93
|
-
|
|
94
|
-
# In Claude.ai → Settings → MCP → Add Server
|
|
95
|
-
# URL: http://your-server:8935/mcp
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Then just talk:
|
|
99
|
-
- *"Show me the status of all connected devices"*
|
|
100
|
-
- *"What's the temperature in the greenhouse?"*
|
|
101
|
-
- *"Restart nginx on server-01"*
|
|
102
|
-
- *"Show me the audit trail"*
|
|
103
|
-
|
|
104
|
-
The AI sees your devices as tools. Shield rules still apply. Every action is audited.
|
|
105
|
-
|
|
106
|
-
## 12 Drivers
|
|
107
|
-
|
|
108
|
-
| Driver | Target | Protocol |
|
|
109
|
-
|--------|--------|----------|
|
|
110
|
-
| `SSHDriver` | Linux/Mac servers | SSH |
|
|
111
|
-
| `HTTPDriver` | REST APIs, webhooks | HTTP |
|
|
112
|
-
| `WebSocketDriver` | Real-time streams | WebSocket |
|
|
113
|
-
| `SerialDriver` | Arduino, Pi, PLCs | Serial |
|
|
114
|
-
| `MQTTDriver` | IoT sensors | MQTT |
|
|
115
|
-
| `OPCUADriver` | Industrial machines | OPC-UA |
|
|
116
|
-
| `ROS2Driver` | Robots, drones | ROS2/DDS |
|
|
117
|
-
| `DDSDriver` | Real-time systems | DDS |
|
|
118
|
-
| `DockerDriver` | Containers | Docker API |
|
|
119
|
-
| `BrowserDriver` | Web automation | Chrome CDP |
|
|
120
|
-
| `UnitreeDriver` | Unitree robots | UDP |
|
|
121
|
-
| `SocketDriver` | Raw TCP/UDP | Socket |
|
|
122
|
-
|
|
123
|
-
## Safety
|
|
124
|
-
|
|
125
|
-
**Shield Rules** — Constraints enforced at protocol level. The AI has no power to override them.
|
|
126
|
-
|
|
127
|
-
```python
|
|
128
|
-
cp.shield("deny * delete *") # no deletions
|
|
129
|
-
cp.shield("deny * write temperature > 180") # thermal limit
|
|
130
|
-
cp.shield("deny lock unlock between 23:00-06:00") # doors locked at night
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**Audit Chain** — Every action recorded in SHA-256 hash chain. Tamper-evident. Append-only.
|
|
134
|
-
|
|
135
|
-
**Consent Protocol** — Devices and AI negotiate permissions before any interaction.
|
|
136
|
-
|
|
137
|
-
**5 Autonomy Levels** — From fully manual to fully autonomous. You choose.
|
|
138
|
-
|
|
139
|
-
| Level | Name | Who Decides |
|
|
140
|
-
|-------|------|-------------|
|
|
141
|
-
| 0 | Manual | Human does everything |
|
|
142
|
-
| 1 | Advisory | AI suggests, human acts |
|
|
143
|
-
| 2 | Supervised | AI acts, human approves |
|
|
144
|
-
| 3 | Monitored | AI acts freely, human watches |
|
|
145
|
-
| 4 | Autonomous | AI decides within shield rules |
|
|
146
|
-
|
|
147
|
-
## Works with Every LLM
|
|
148
|
-
|
|
149
|
-
```python
|
|
150
|
-
# Claude
|
|
151
|
-
import anthropic
|
|
152
|
-
client = anthropic.Anthropic()
|
|
153
|
-
response = client.messages.create(model="claude-sonnet-4-6", ...)
|
|
154
|
-
cp.act(response.content[0].text)
|
|
155
|
-
|
|
156
|
-
# GPT
|
|
157
|
-
from openai import OpenAI
|
|
158
|
-
client = OpenAI()
|
|
159
|
-
response = client.chat.completions.create(model="gpt-5", ...)
|
|
160
|
-
|
|
161
|
-
# Local (Ollama — no internet needed)
|
|
162
|
-
import ollama
|
|
163
|
-
response = ollama.chat(model="llama4", ...)
|
|
164
|
-
|
|
165
|
-
# All use the same shield rules. Same audit chain.
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## Built on NRP
|
|
169
|
-
|
|
170
|
-
Halyn implements [NRP (Node Reach Protocol)](https://nrprotocol.dev) — the open standard for AI-to-device communication. 6 primitives: Manifest, Observe, Act, Shield, Audit, Consent.
|
|
171
|
-
|
|
172
|
-
## Free. Open Source. Forever.
|
|
173
|
-
|
|
174
|
-
MIT licensed. Use it for anything. Modify it. Build a company on it. No fees, no limits, no lock-in.
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
[halyn.dev](https://halyn.dev) · [nrprotocol.dev](https://nrprotocol.dev) · [PyPI](https://pypi.org/project/halyn/) · [contact@halyn.dev](mailto:contact@halyn.dev)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|