halyn 2.1.0__tar.gz → 2.1.1__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 (57) hide show
  1. {halyn-2.1.0/src/halyn.egg-info → halyn-2.1.1}/PKG-INFO +7 -7
  2. {halyn-2.1.0 → halyn-2.1.1}/README.md +6 -6
  3. {halyn-2.1.0 → halyn-2.1.1}/pyproject.toml +1 -1
  4. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/__init__.py +1 -1
  5. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/llm.py +2 -2
  6. {halyn-2.1.0 → halyn-2.1.1/src/halyn.egg-info}/PKG-INFO +7 -7
  7. {halyn-2.1.0 → halyn-2.1.1}/LICENSE +0 -0
  8. {halyn-2.1.0 → halyn-2.1.1}/setup.cfg +0 -0
  9. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/__main__.py +0 -0
  10. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/audit.py +0 -0
  11. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/auth.py +0 -0
  12. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/autonomy.py +0 -0
  13. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/cli.py +0 -0
  14. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/config.py +0 -0
  15. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/consent.py +0 -0
  16. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/control_plane.py +0 -0
  17. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/dashboard.py +0 -0
  18. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/discovery.py +0 -0
  19. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/__init__.py +0 -0
  20. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/browser.py +0 -0
  21. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/dds.py +0 -0
  22. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/docker.py +0 -0
  23. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/http_auto.py +0 -0
  24. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/mqtt.py +0 -0
  25. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/opcua.py +0 -0
  26. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/ros2.py +0 -0
  27. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/serial.py +0 -0
  28. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/socket_raw.py +0 -0
  29. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/ssh.py +0 -0
  30. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/unitree.py +0 -0
  31. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/drivers/websocket.py +0 -0
  32. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/engine.py +0 -0
  33. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/integrations/__init__.py +0 -0
  34. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/intent.py +0 -0
  35. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/mcp.py +0 -0
  36. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/mcp_serve.py +0 -0
  37. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/memory/__init__.py +0 -0
  38. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/memory/store.py +0 -0
  39. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/nrp_bridge.py +0 -0
  40. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/py.typed +0 -0
  41. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/sanitizer.py +0 -0
  42. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/security/__init__.py +0 -0
  43. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/security/audit_guard.py +0 -0
  44. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/security/ebpf_monitor.py +0 -0
  45. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/security/fs_watch.py +0 -0
  46. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/security/process_guard.py +0 -0
  47. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/security/proxy.py +0 -0
  48. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/server.py +0 -0
  49. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/shield.py +0 -0
  50. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/types.py +0 -0
  51. {halyn-2.1.0 → halyn-2.1.1}/src/halyn/watchdog.py +0 -0
  52. {halyn-2.1.0 → halyn-2.1.1}/src/halyn.egg-info/SOURCES.txt +0 -0
  53. {halyn-2.1.0 → halyn-2.1.1}/src/halyn.egg-info/dependency_links.txt +0 -0
  54. {halyn-2.1.0 → halyn-2.1.1}/src/halyn.egg-info/entry_points.txt +0 -0
  55. {halyn-2.1.0 → halyn-2.1.1}/src/halyn.egg-info/requires.txt +0 -0
  56. {halyn-2.1.0 → halyn-2.1.1}/src/halyn.egg-info/top_level.txt +0 -0
  57. {halyn-2.1.0 → halyn-2.1.1}/tests/test_halyn.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: halyn
3
- Version: 2.1.0
3
+ Version: 2.1.1
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
6
  License: BSL-1.1
@@ -52,12 +52,12 @@ Every action intercepted. Every decision auditable. The AI cannot bypass it.
52
52
 
53
53
  ## Why Halyn
54
54
 
55
- AI agents — Claude, GPT, Gemini, local models — act on your machine. They read files, send emails, control browsers, call APIs. With no independent proof of what happened.
55
+ AI agents — Claude, GPT-4.1, Gemini 3.1, local models — act on your machine. They read files, send emails, control browsers, call APIs. With no independent proof of what happened.
56
56
 
57
57
  **Halyn is the independent layer that sits between any AI agent and your system.**
58
58
 
59
59
  ```
60
- Claude / GPT / Gemini / Ollama / Any agent
60
+ Claude / GPT-4.1 / Gemini 3.1 / Ollama / Any agent
61
61
 
62
62
 
63
63
  ┌─────────────────────────────┐
@@ -125,7 +125,7 @@ print(result.allowed) # True
125
125
  Halyn intercepts at three independent layers simultaneously:
126
126
 
127
127
  ### Layer 1 — API Proxy
128
- All LLM API calls (Claude, GPT, Gemini) pass through a local proxy on `127.0.0.1`.
128
+ All LLM API calls (Claude, GPT-4.1, Gemini 3.1, etc.) pass through a local proxy on `127.0.0.1`.
129
129
  Intent is read before transmission. Shield rules apply before the request reaches the provider.
130
130
  Implemented via `iptables REDIRECT` — kernel-level, not a library hook.
131
131
 
@@ -161,9 +161,9 @@ Deployed via `/etc/opt/chrome/policies/managed/halyn.json` — the agent cannot
161
161
 
162
162
  | Agent | Type | Integration |
163
163
  |-------|------|-------------|
164
- | Claude (Anthropic) | Cloud | Proxy + MCP |
165
- | GPT-4o / o3 (OpenAI) | Cloud | Proxy |
166
- | Gemini (Google) | Cloud | Proxy |
164
+ | Claude Sonnet 4.6 / Opus 4.6 (Anthropic) | Cloud | Proxy + MCP |
165
+ | GPT-4.1 / o3 (OpenAI) | Cloud | Proxy |
166
+ | Gemini 3.1 Pro / Flash (Google) | Cloud | Proxy |
167
167
  | Ollama | Local | Direct |
168
168
  | LM Studio | Local | Direct |
169
169
  | Jan.ai | Local | Direct |
@@ -19,12 +19,12 @@ Every action intercepted. Every decision auditable. The AI cannot bypass it.
19
19
 
20
20
  ## Why Halyn
21
21
 
22
- AI agents — Claude, GPT, Gemini, local models — act on your machine. They read files, send emails, control browsers, call APIs. With no independent proof of what happened.
22
+ AI agents — Claude, GPT-4.1, Gemini 3.1, local models — act on your machine. They read files, send emails, control browsers, call APIs. With no independent proof of what happened.
23
23
 
24
24
  **Halyn is the independent layer that sits between any AI agent and your system.**
25
25
 
26
26
  ```
27
- Claude / GPT / Gemini / Ollama / Any agent
27
+ Claude / GPT-4.1 / Gemini 3.1 / Ollama / Any agent
28
28
 
29
29
 
30
30
  ┌─────────────────────────────┐
@@ -92,7 +92,7 @@ print(result.allowed) # True
92
92
  Halyn intercepts at three independent layers simultaneously:
93
93
 
94
94
  ### Layer 1 — API Proxy
95
- All LLM API calls (Claude, GPT, Gemini) pass through a local proxy on `127.0.0.1`.
95
+ All LLM API calls (Claude, GPT-4.1, Gemini 3.1, etc.) pass through a local proxy on `127.0.0.1`.
96
96
  Intent is read before transmission. Shield rules apply before the request reaches the provider.
97
97
  Implemented via `iptables REDIRECT` — kernel-level, not a library hook.
98
98
 
@@ -128,9 +128,9 @@ Deployed via `/etc/opt/chrome/policies/managed/halyn.json` — the agent cannot
128
128
 
129
129
  | Agent | Type | Integration |
130
130
  |-------|------|-------------|
131
- | Claude (Anthropic) | Cloud | Proxy + MCP |
132
- | GPT-4o / o3 (OpenAI) | Cloud | Proxy |
133
- | Gemini (Google) | Cloud | Proxy |
131
+ | Claude Sonnet 4.6 / Opus 4.6 (Anthropic) | Cloud | Proxy + MCP |
132
+ | GPT-4.1 / o3 (OpenAI) | Cloud | Proxy |
133
+ | Gemini 3.1 Pro / Flash (Google) | Cloud | Proxy |
134
134
  | Ollama | Local | Direct |
135
135
  | LM Studio | Local | Direct |
136
136
  | Jan.ai | Local | Direct |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "halyn"
3
- version = "2.1.0"
3
+ version = "2.1.1"
4
4
  description = "Halyn — The governance layer for AI agents. Every action intercepted. Every decision auditable."
5
5
  requires-python = ">=3.10"
6
6
  license = {text = "BSL-1.1"}
@@ -9,7 +9,7 @@ Every action intercepted. Every decision auditable.
9
9
  The AI cannot bypass it.
10
10
  """
11
11
 
12
- __version__ = "2.1.0"
12
+ __version__ = "2.1.1"
13
13
  __author__ = "Elmadani SALKA"
14
14
  __license__ = "BSL-1.1"
15
15
  __email__ = "contact@halyn.dev"
@@ -39,7 +39,7 @@ class LLMConnector(ABC):
39
39
  class ClaudeConnector(LLMConnector):
40
40
  """Anthropic Claude API."""
41
41
 
42
- def __init__(self, api_key: str = "", model: str = "claude-sonnet-4-20250514") -> None:
42
+ def __init__(self, api_key: str = "", model: str = "claude-sonnet-4-6") -> None:
43
43
  self.api_key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
44
44
  self.model = model
45
45
  self.endpoint = "https://api.anthropic.com/v1/messages"
@@ -70,7 +70,7 @@ class ClaudeConnector(LLMConnector):
70
70
  class OpenAIConnector(LLMConnector):
71
71
  """OpenAI or any OpenAI-compatible API (vLLM, LiteLLM, etc.)."""
72
72
 
73
- def __init__(self, api_key: str = "", model: str = "gpt-4o",
73
+ def __init__(self, api_key: str = "", model: str = "gpt-4.1",
74
74
  endpoint: str = "https://api.openai.com/v1") -> None:
75
75
  self.api_key = api_key or os.environ.get("OPENAI_API_KEY", "")
76
76
  self.model = model
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: halyn
3
- Version: 2.1.0
3
+ Version: 2.1.1
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
6
  License: BSL-1.1
@@ -52,12 +52,12 @@ Every action intercepted. Every decision auditable. The AI cannot bypass it.
52
52
 
53
53
  ## Why Halyn
54
54
 
55
- AI agents — Claude, GPT, Gemini, local models — act on your machine. They read files, send emails, control browsers, call APIs. With no independent proof of what happened.
55
+ AI agents — Claude, GPT-4.1, Gemini 3.1, local models — act on your machine. They read files, send emails, control browsers, call APIs. With no independent proof of what happened.
56
56
 
57
57
  **Halyn is the independent layer that sits between any AI agent and your system.**
58
58
 
59
59
  ```
60
- Claude / GPT / Gemini / Ollama / Any agent
60
+ Claude / GPT-4.1 / Gemini 3.1 / Ollama / Any agent
61
61
 
62
62
 
63
63
  ┌─────────────────────────────┐
@@ -125,7 +125,7 @@ print(result.allowed) # True
125
125
  Halyn intercepts at three independent layers simultaneously:
126
126
 
127
127
  ### Layer 1 — API Proxy
128
- All LLM API calls (Claude, GPT, Gemini) pass through a local proxy on `127.0.0.1`.
128
+ All LLM API calls (Claude, GPT-4.1, Gemini 3.1, etc.) pass through a local proxy on `127.0.0.1`.
129
129
  Intent is read before transmission. Shield rules apply before the request reaches the provider.
130
130
  Implemented via `iptables REDIRECT` — kernel-level, not a library hook.
131
131
 
@@ -161,9 +161,9 @@ Deployed via `/etc/opt/chrome/policies/managed/halyn.json` — the agent cannot
161
161
 
162
162
  | Agent | Type | Integration |
163
163
  |-------|------|-------------|
164
- | Claude (Anthropic) | Cloud | Proxy + MCP |
165
- | GPT-4o / o3 (OpenAI) | Cloud | Proxy |
166
- | Gemini (Google) | Cloud | Proxy |
164
+ | Claude Sonnet 4.6 / Opus 4.6 (Anthropic) | Cloud | Proxy + MCP |
165
+ | GPT-4.1 / o3 (OpenAI) | Cloud | Proxy |
166
+ | Gemini 3.1 Pro / Flash (Google) | Cloud | Proxy |
167
167
  | Ollama | Local | Direct |
168
168
  | LM Studio | Local | Direct |
169
169
  | Jan.ai | Local | Direct |
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