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.
Files changed (63) hide show
  1. halyn-2.2.2/LICENSE +58 -0
  2. {halyn-2.2.0 → halyn-2.2.2}/PKG-INFO +6 -4
  3. {halyn-2.2.0 → halyn-2.2.2}/README.md +2 -2
  4. {halyn-2.2.0 → halyn-2.2.2}/pyproject.toml +4 -6
  5. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/__init__.py +3 -3
  6. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/__main__.py +1 -1
  7. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/audit.py +1 -1
  8. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/auth.py +1 -1
  9. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/autonomy.py +1 -1
  10. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/cli.py +3 -2
  11. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/config.py +1 -1
  12. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/consent.py +1 -1
  13. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/control_plane.py +1 -1
  14. halyn-2.2.2/src/halyn/dashboard.py +561 -0
  15. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/discovery.py +1 -1
  16. {halyn-2.2.0/src/halyn/integrations → halyn-2.2.2/src/halyn/drivers}/__init__.py +1 -1
  17. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/browser.py +1 -1
  18. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/dds.py +1 -1
  19. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/docker.py +1 -1
  20. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/http_auto.py +1 -1
  21. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/mqtt.py +1 -1
  22. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/opcua.py +1 -1
  23. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/ros2.py +1 -1
  24. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/serial.py +1 -1
  25. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/socket_raw.py +1 -1
  26. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/ssh.py +1 -1
  27. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/unitree.py +1 -1
  28. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/drivers/websocket.py +1 -1
  29. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/engine.py +1 -1
  30. {halyn-2.2.0/src/halyn/memory → halyn-2.2.2/src/halyn/integrations}/__init__.py +1 -1
  31. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/intent.py +1 -1
  32. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/llm.py +1 -1
  33. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/mcp.py +1 -1
  34. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/mcp_serve.py +1 -1
  35. {halyn-2.2.0/src/halyn/drivers → halyn-2.2.2/src/halyn/memory}/__init__.py +1 -1
  36. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/memory/store.py +1 -1
  37. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/nrp_bridge.py +1 -1
  38. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/sanitizer.py +1 -1
  39. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/__init__.py +1 -1
  40. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/audit_guard.py +1 -1
  41. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/ebpf_monitor.py +1 -1
  42. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/fs_watch.py +1 -1
  43. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/process_guard.py +1 -1
  44. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/security/proxy.py +1 -1
  45. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/server.py +10 -1
  46. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/shield.py +1 -1
  47. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/types.py +1 -1
  48. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/watchdog.py +1 -1
  49. {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/PKG-INFO +6 -4
  50. {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/SOURCES.txt +1 -0
  51. {halyn-2.2.0 → halyn-2.2.2}/tests/test_halyn.py +1 -1
  52. halyn-2.2.0/src/halyn/dashboard.py +0 -209
  53. {halyn-2.2.0 → halyn-2.2.2}/setup.cfg +0 -0
  54. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/__init__.py +0 -0
  55. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/driver.py +0 -0
  56. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/events.py +0 -0
  57. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/identity.py +0 -0
  58. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/_nrp/manifest.py +0 -0
  59. {halyn-2.2.0 → halyn-2.2.2}/src/halyn/py.typed +0 -0
  60. {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/dependency_links.txt +0 -0
  61. {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/entry_points.txt +0 -0
  62. {halyn-2.2.0 → halyn-2.2.2}/src/halyn.egg-info/requires.txt +0 -0
  63. {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.0
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: BSL-1.1
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
  [![PyPI](https://img.shields.io/pypi/v/halyn?style=flat-square&color=20c754)](https://pypi.org/project/halyn/)
39
41
  [![Python 3.10+](https://img.shields.io/badge/Python-3.10+-20c754?style=flat-square)](https://python.org)
40
- [![License: BSL-1.1](https://img.shields.io/badge/License-BSL--1.1-orange?style=flat-square)](LICENSE)
42
+ [![License: BSL-1.1](https://img.shields.io/badge/License-BUSL--1.1-orange?style=flat-square)](LICENSE)
41
43
  [![Website](https://img.shields.io/badge/Website-halyn.dev-20c754?style=flat-square)](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
- **[BSL-1.1](LICENSE)** — Business Source License 1.1
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
  [![PyPI](https://img.shields.io/pypi/v/halyn?style=flat-square&color=20c754)](https://pypi.org/project/halyn/)
8
8
  [![Python 3.10+](https://img.shields.io/badge/Python-3.10+-20c754?style=flat-square)](https://python.org)
9
- [![License: BSL-1.1](https://img.shields.io/badge/License-BSL--1.1-orange?style=flat-square)](LICENSE)
9
+ [![License: BSL-1.1](https://img.shields.io/badge/License-BUSL--1.1-orange?style=flat-square)](LICENSE)
10
10
  [![Website](https://img.shields.io/badge/Website-halyn.dev-20c754?style=flat-square)](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
- **[BSL-1.1](LICENSE)** — Business Source License 1.1
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.0"
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 = {text = "BSL-1.1"}
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>=68", "wheel"]
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 BSL-1.1. See LICENSE file.
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.1.3"
12
+ __version__ = "2.2.2"
13
13
  __author__ = "Elmadani SALKA"
14
- __license__ = "BSL-1.1"
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 BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  from .cli import main
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  """
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  """
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  """
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
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 v0.1.0 — listening on {config.host}:{config.port}")
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']}")
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  """
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  """
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Elmadani SALKA
2
- # Licensed under BSL-1.1. See LICENSE file.
2
+ # Licensed under BUSL-1.1. See LICENSE file.
3
3
  # Commercial use requires a license — contact@halyn.dev
4
4
 
5
5
  """