halyn 2.2.0__tar.gz → 2.2.2__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-2.2.2/LICENSE +58 -0
- {halyn-2.2.0 → halyn-2.2.2}/PKG-INFO +6 -4
- {halyn-2.2.0 → halyn-2.2.2}/README.md +2 -2
- {halyn-2.2.0 → halyn-2.2.2}/pyproject.toml +4 -6
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/__init__.py +3 -3
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/__main__.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/audit.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/auth.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/autonomy.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/cli.py +3 -2
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/config.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/consent.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/control_plane.py +1 -1
- halyn-2.2.2/src/halyn/dashboard.py +561 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/discovery.py +1 -1
- {halyn-2.2.0/src/halyn/integrations → halyn-2.2.2/src/halyn/drivers}/__init__.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/browser.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/dds.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/docker.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/http_auto.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/mqtt.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/opcua.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/ros2.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/serial.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/socket_raw.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/ssh.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/unitree.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/websocket.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/engine.py +1 -1
- {halyn-2.2.0/src/halyn/memory → halyn-2.2.2/src/halyn/integrations}/__init__.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/intent.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/llm.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/mcp.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/mcp_serve.py +1 -1
- {halyn-2.2.0/src/halyn/drivers → halyn-2.2.2/src/halyn/memory}/__init__.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/memory/store.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/nrp_bridge.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/sanitizer.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/__init__.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/audit_guard.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/ebpf_monitor.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/fs_watch.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/process_guard.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/proxy.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/server.py +10 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/shield.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/types.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/watchdog.py +1 -1
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/PKG-INFO +6 -4
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/SOURCES.txt +1 -0
- {halyn-2.2.0 → halyn-2.2.2}/tests/test_halyn.py +1 -1
- halyn-2.2.0/src/halyn/dashboard.py +0 -209
- {halyn-2.2.0 → halyn-2.2.2}/setup.cfg +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/__init__.py +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/driver.py +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/events.py +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/identity.py +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/manifest.py +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn/py.typed +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/dependency_links.txt +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/entry_points.txt +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/requires.txt +0 -0
- {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/top_level.txt +0 -0
halyn-2.2.2/LICENSE
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
Licensor: Elmadani SALKA
|
|
4
|
+
Licensed Work: Halyn
|
|
5
|
+
The Licensed Work is (c) 2026 Elmadani SALKA
|
|
6
|
+
Change Date: 2029-03-25
|
|
7
|
+
Change License: MIT License
|
|
8
|
+
|
|
9
|
+
Additional Use Grant: You may use the Licensed Work for non-commercial purposes,
|
|
10
|
+
research, education, and personal projects free of charge.
|
|
11
|
+
Commercial use requires a separate commercial license.
|
|
12
|
+
Contact: contact@halyn.dev
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
The Business Source License (this document, or the "License") is not an Open
|
|
17
|
+
Source license. However, the Licensed Work will eventually be made available
|
|
18
|
+
under an Open Source License, as stated in this License.
|
|
19
|
+
|
|
20
|
+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
|
21
|
+
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
22
|
+
|
|
23
|
+
Parameters
|
|
24
|
+
|
|
25
|
+
Licensor: Elmadani SALKA
|
|
26
|
+
Licensed Work: Halyn — Enforceable safety for AI agents
|
|
27
|
+
Change Date: 2029-03-25
|
|
28
|
+
Change License: MIT License
|
|
29
|
+
|
|
30
|
+
For information about alternative licensing arrangements, contact:
|
|
31
|
+
contact@halyn.dev · https://halyn.dev
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
1. Grant of Rights
|
|
36
|
+
|
|
37
|
+
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
38
|
+
works, redistribute, and make non-production use of the Licensed Work.
|
|
39
|
+
|
|
40
|
+
The Licensor may make an Additional Use Grant, above, permitting limited
|
|
41
|
+
production use.
|
|
42
|
+
|
|
43
|
+
2. Change Date
|
|
44
|
+
|
|
45
|
+
After the Change Date, the Grant of Rights is governed by the Change License.
|
|
46
|
+
|
|
47
|
+
3. No Other Rights
|
|
48
|
+
|
|
49
|
+
The License does not grant you any right in any trademark or logo of Licensor.
|
|
50
|
+
|
|
51
|
+
4. Disclaimer of Warranty
|
|
52
|
+
|
|
53
|
+
UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT
|
|
54
|
+
POSSIBLE, THE LICENSOR OFFERS THE LICENSED WORK AS-IS AND AS-AVAILABLE, AND
|
|
55
|
+
MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE LICENSED WORK,
|
|
56
|
+
WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER.
|
|
57
|
+
|
|
58
|
+
Full BSL 1.1 text: https://mariadb.com/bsl11/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: halyn
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.2
|
|
4
4
|
Summary: Halyn — The governance layer for AI agents. Every action intercepted. Every decision auditable.
|
|
5
5
|
Author-email: Elmadani SALKA <contact@halyn.dev>
|
|
6
|
-
License:
|
|
6
|
+
License-Expression: BUSL-1.1
|
|
7
7
|
Project-URL: Homepage, https://halyn.dev
|
|
8
8
|
Project-URL: Repository, https://github.com/halyndev/halyn
|
|
9
9
|
Project-URL: Issues, https://github.com/halyndev/halyn/issues
|
|
@@ -20,6 +20,7 @@ Classifier: Topic :: Security
|
|
|
20
20
|
Classifier: Topic :: System :: Systems Administration
|
|
21
21
|
Requires-Python: >=3.10
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
23
24
|
Requires-Dist: aiohttp>=3.9
|
|
24
25
|
Provides-Extra: iot
|
|
25
26
|
Requires-Dist: paho-mqtt; extra == "iot"
|
|
@@ -28,6 +29,7 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
28
29
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
29
30
|
Requires-Dist: mypy; extra == "dev"
|
|
30
31
|
Requires-Dist: ruff; extra == "dev"
|
|
32
|
+
Dynamic: license-file
|
|
31
33
|
|
|
32
34
|
<div align="center">
|
|
33
35
|
|
|
@@ -37,7 +39,7 @@ Requires-Dist: ruff; extra == "dev"
|
|
|
37
39
|
|
|
38
40
|
[](https://pypi.org/project/halyn/)
|
|
39
41
|
[](https://python.org)
|
|
40
|
-
[](LICENSE)
|
|
41
43
|
[](https://halyn.dev)
|
|
42
44
|
|
|
43
45
|
Every action intercepted. Every decision auditable. The AI cannot bypass it.
|
|
@@ -287,7 +289,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
|
287
289
|
|
|
288
290
|
## License
|
|
289
291
|
|
|
290
|
-
**[
|
|
292
|
+
**[BUSL-1.1](LICENSE)** — Business Source License 1.1
|
|
291
293
|
|
|
292
294
|
- **Free** for personal use, research, and education
|
|
293
295
|
- **Commercial use** requires a license — [contact@halyn.dev](mailto:contact@halyn.dev)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
[](https://pypi.org/project/halyn/)
|
|
8
8
|
[](https://python.org)
|
|
9
|
-
[](LICENSE)
|
|
10
10
|
[](https://halyn.dev)
|
|
11
11
|
|
|
12
12
|
Every action intercepted. Every decision auditable. The AI cannot bypass it.
|
|
@@ -256,7 +256,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
|
256
256
|
|
|
257
257
|
## License
|
|
258
258
|
|
|
259
|
-
**[
|
|
259
|
+
**[BUSL-1.1](LICENSE)** — Business Source License 1.1
|
|
260
260
|
|
|
261
261
|
- **Free** for personal use, research, and education
|
|
262
262
|
- **Commercial use** requires a license — [contact@halyn.dev](mailto:contact@halyn.dev)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "halyn"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.2"
|
|
4
4
|
description = "Halyn — The governance layer for AI agents. Every action intercepted. Every decision auditable."
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
|
-
license =
|
|
6
|
+
license = "BUSL-1.1"
|
|
7
|
+
license-files = ["LICENSE"]
|
|
7
8
|
authors = [{name = "Elmadani SALKA", email = "contact@halyn.dev"}]
|
|
8
9
|
readme = "README.md"
|
|
9
10
|
keywords = [
|
|
@@ -38,9 +39,6 @@ Changelog = "https://github.com/halyndev/halyn/blob/main/CHANGELOG.md"
|
|
|
38
39
|
[project.scripts]
|
|
39
40
|
halyn = "halyn.cli:main"
|
|
40
41
|
|
|
41
|
-
[tool.setuptools]
|
|
42
|
-
license-files = []
|
|
43
|
-
|
|
44
42
|
[tool.setuptools.packages.find]
|
|
45
43
|
where = ["src"]
|
|
46
44
|
|
|
@@ -48,7 +46,7 @@ where = ["src"]
|
|
|
48
46
|
halyn = ["py.typed"]
|
|
49
47
|
|
|
50
48
|
[build-system]
|
|
51
|
-
requires = ["setuptools>=
|
|
49
|
+
requires = ["setuptools>=77", "wheel"]
|
|
52
50
|
build-backend = "setuptools.build_meta"
|
|
53
51
|
|
|
54
52
|
[tool.ruff]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2026 Elmadani SALKA
|
|
2
|
-
# Licensed under
|
|
2
|
+
# Licensed under BUSL-1.1. See LICENSE file.
|
|
3
3
|
# Commercial use requires a license — contact@halyn.dev
|
|
4
4
|
|
|
5
5
|
"""
|
|
@@ -9,9 +9,9 @@ Every action intercepted. Every decision auditable.
|
|
|
9
9
|
The AI cannot bypass it.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
__version__ = "2.
|
|
12
|
+
__version__ = "2.2.2"
|
|
13
13
|
__author__ = "Elmadani SALKA"
|
|
14
|
-
__license__ = "
|
|
14
|
+
__license__ = "BUSL-1.1"
|
|
15
15
|
__email__ = "contact@halyn.dev"
|
|
16
16
|
__url__ = "https://halyn.dev"
|
|
17
17
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2026 Elmadani SALKA
|
|
2
|
-
# Licensed under
|
|
2
|
+
# Licensed under BUSL-1.1. See LICENSE file.
|
|
3
3
|
# Commercial use requires a license — contact@halyn.dev
|
|
4
4
|
|
|
5
5
|
"""
|
|
@@ -74,6 +74,7 @@ def main() -> None:
|
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
def _cmd_serve(args: Any) -> None:
|
|
77
|
+
from . import __version__
|
|
77
78
|
from .config import HalynConfig
|
|
78
79
|
from .control_plane import ControlPlane
|
|
79
80
|
|
|
@@ -94,7 +95,7 @@ def _cmd_serve(args: Any) -> None:
|
|
|
94
95
|
async def run() -> None:
|
|
95
96
|
await cp.start()
|
|
96
97
|
status = cp.status()
|
|
97
|
-
print(f"\n Halyn
|
|
98
|
+
print(f"\n Halyn v{__version__} — listening on {config.host}:{config.port}")
|
|
98
99
|
print(f" {status['nodes']} nodes | {status['tools']} tools | MCP ready")
|
|
99
100
|
print(f" Audit: {status['audit_entries']} entries | Chain: {'valid' if status['audit_chain_valid'] else 'BROKEN'}")
|
|
100
101
|
print(f" Watchdog: {status['watchdog']['overall']}")
|