sernixa-cli 0.4.2__tar.gz → 0.4.4__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 (42) hide show
  1. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/PKG-INFO +80 -12
  2. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/README.md +78 -10
  3. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/pyproject.toml +16 -2
  4. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/__init__.py +1 -1
  5. sernixa_cli-0.4.4/sernixa_cli/claude_marketplace/.claude-plugin/marketplace.json +18 -0
  6. sernixa_cli-0.4.4/sernixa_cli/claude_marketplace/plugins/sernixa/.claude-plugin/plugin.json +17 -0
  7. sernixa_cli-0.4.4/sernixa_cli/claude_marketplace/plugins/sernixa/.mcp.json +11 -0
  8. sernixa_cli-0.4.4/sernixa_cli/claude_marketplace/plugins/sernixa/hooks/hooks.json +130 -0
  9. sernixa_cli-0.4.4/sernixa_cli/claude_marketplace/plugins/sernixa/skills/sernixa-protection/SKILL.md +19 -0
  10. sernixa_cli-0.4.4/sernixa_cli/claude_plugin.py +162 -0
  11. sernixa_cli-0.4.4/sernixa_cli/codex_marketplace/.agents/plugins/marketplace.json +20 -0
  12. sernixa_cli-0.4.4/sernixa_cli/codex_marketplace/plugins/sernixa/.codex-plugin/plugin.json +25 -0
  13. sernixa_cli-0.4.4/sernixa_cli/codex_marketplace/plugins/sernixa/.mcp.json +11 -0
  14. sernixa_cli-0.4.4/sernixa_cli/codex_marketplace/plugins/sernixa/hooks/hooks.json +95 -0
  15. sernixa_cli-0.4.4/sernixa_cli/codex_marketplace/plugins/sernixa/skills/sernixa-protection/SKILL.md +19 -0
  16. sernixa_cli-0.4.4/sernixa_cli/codex_plugin.py +158 -0
  17. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/config.py +50 -0
  18. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/local_agent_targets.py +92 -1
  19. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/main.py +435 -3
  20. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/mcp_server.py +41 -2
  21. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli.egg-info/PKG-INFO +80 -12
  22. sernixa_cli-0.4.4/sernixa_cli.egg-info/SOURCES.txt +39 -0
  23. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli.egg-info/requires.txt +1 -1
  24. sernixa_cli-0.4.4/tests/test_claude_plugin.py +164 -0
  25. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/tests/test_cli.py +236 -2
  26. sernixa_cli-0.4.4/tests/test_codex_plugin.py +99 -0
  27. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/tests/test_mcp_server.py +99 -0
  28. sernixa_cli-0.4.2/sernixa_cli.egg-info/SOURCES.txt +0 -25
  29. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/__main__.py +0 -0
  30. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/adapters.py +0 -0
  31. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/discovery.py +0 -0
  32. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/formatting.py +0 -0
  33. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/hooks.py +0 -0
  34. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/lifecycle.py +0 -0
  35. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli/native_launcher.py +0 -0
  36. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli.egg-info/dependency_links.txt +0 -0
  37. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli.egg-info/entry_points.txt +0 -0
  38. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/sernixa_cli.egg-info/top_level.txt +0 -0
  39. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/setup.cfg +0 -0
  40. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/tests/test_discovery.py +0 -0
  41. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/tests/test_local_agent_targets.py +0 -0
  42. {sernixa_cli-0.4.2 → sernixa_cli-0.4.4}/tests/test_native_launcher.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sernixa-cli
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: Official Sernixa CLI for policy-governed local AI agent actions
5
5
  Author: Sernixa Team
6
6
  License-Expression: MIT
@@ -22,7 +22,7 @@ Description-Content-Type: text/markdown
22
22
  Requires-Dist: platformdirs>=4.0.0
23
23
  Requires-Dist: prompt-toolkit>=3.0.48
24
24
  Requires-Dist: rich>=13.8.0
25
- Requires-Dist: sernixa>=0.4.1
25
+ Requires-Dist: sernixa>=0.4.3
26
26
  Requires-Dist: sernixa-agent>=1.6.1
27
27
  Requires-Dist: typer>=0.12.0
28
28
 
@@ -37,8 +37,8 @@ macOS and Linux:
37
37
  ```bash
38
38
  python3 -m pip install --upgrade sernixa-cli
39
39
  sernixa auth login
40
- sernixa setup
41
- sernixa doctor --strict
40
+ sernixa protect
41
+ sernixa protect --status
42
42
  ```
43
43
 
44
44
  Windows PowerShell:
@@ -46,8 +46,8 @@ Windows PowerShell:
46
46
  ```powershell
47
47
  py -m pip install --upgrade sernixa-cli
48
48
  sernixa auth login
49
- sernixa setup
50
- sernixa doctor --strict
49
+ sernixa protect
50
+ sernixa protect --status
51
51
  ```
52
52
 
53
53
  `sernixa auth login` opens the Sernixa sign-in page, displays a short confirmation
@@ -74,6 +74,7 @@ Then run `sernixa` by itself to open the persistent governance console. Type
74
74
  ```text
75
75
  sernixa › @status
76
76
  sernixa › @discover
77
+ sernixa › @protect
77
78
  sernixa › @integrations
78
79
  sernixa › @events
79
80
  sernixa › @approvals
@@ -82,7 +83,31 @@ sernixa › @exit
82
83
 
83
84
  The console is project-aware, remains open across commands, supports tab completion and private local history, and dispatches only Sernixa commands. The palette shows only actions available on the authenticated plan; direct commands are still checked by the backend. `@` is the primary command-palette prefix and slash-prefixed forms remain compatible. Every normal command such as `validate request.json` also works inside it. Bare `sernixa` remains concise when stdout or stdin is not a terminal, so scripts and CI never hang; `sernixa shell` is the explicit interactive entry point.
84
85
 
85
- `sernixa setup` configures Claude Code, Claude Desktop, Codex, and Cursor, preserves unrelated entries, backs up changed files, registers the bounded `sernixa://` dashboard launcher, and reports host restart or hook-trust steps. Preview without changing files:
86
+ `sernixa protect` is the recommended first run. It detects installed Codex,
87
+ Claude, and Cursor hosts, validates live organization policy access, installs
88
+ Sernixa as a first-class Codex and Claude Code plugin, configures the supported
89
+ Cursor boundary, and prints the actual coverage limitations instead of claiming
90
+ control over host events that were never emitted:
91
+
92
+ ```bash
93
+ sernixa protect
94
+ sernixa protect --status
95
+ sernixa protect --target codex --target claude
96
+ sernixa protect --dry-run --json
97
+ ```
98
+
99
+ After installation, restart open agent hosts. In Codex, open `/plugins`; in
100
+ Claude Code, open `/plugin`. Select **Sernixa Security** and trust its hook and
101
+ MCP server when prompted. Once each plugin is visible, Sernixa removes only its
102
+ own older standalone hook/MCP blocks (with backups), so the same enforcement
103
+ command is not registered twice.
104
+ The plugin still contains a hook because pre-tool blocking requires one; it is
105
+ owned and displayed as part of the plugin rather than user config.
106
+ `sernixa setup` remains
107
+ available for the broader developer setup, including Claude Desktop and the
108
+ bounded `sernixa://` dashboard launcher. It preserves unrelated entries, backs
109
+ up changed files, and reports host restart or hook-trust steps. Preview it
110
+ without changing files:
86
111
 
87
112
  ```bash
88
113
  sernixa setup --dry-run
@@ -117,12 +142,28 @@ Discovery candidates are observations for review. Enrollment is inventory. An ac
117
142
 
118
143
  Supported global targets:
119
144
 
120
- - `claude`: Claude Code enforcement and lifecycle hooks in `~/.claude/settings.json`, plus the Sernixa MCP server in `~/.claude.json`.
145
+ - `claude`: a visible **Sernixa Security** plugin containing enforcement/lifecycle hooks, the Sernixa MCP server, and a protection skill. Users can inspect it from `/plugin`.
121
146
  - `claude-desktop`: real stdio MCP server in the OS-specific Claude Desktop configuration.
122
- - `codex`: enforcement and lifecycle hooks plus the Sernixa MCP server in `~/.codex`. Hooks are effective by default unless `[features].hooks = false`; users still review/trust new non-managed hooks in Codex.
147
+ - `codex`: a visible **Sernixa Security** plugin containing the enforcement hook, Sernixa MCP server, and protection skill. Users review/trust the plugin hook, and can inspect it from `/plugins`.
123
148
  - `cursor`: global MCP entry in `~/.cursor/mcp.json`, shared by Cursor IDE and CLI.
124
149
 
125
- Install or repair an individual integration:
150
+ `sernixa protect` is the supported automatic installer. Anyone can also add the
151
+ public repository marketplace directly:
152
+
153
+ ```bash
154
+ codex plugin marketplace add abhishekdhull63/Sernixa.ai-Web
155
+ codex plugin add sernixa@sernixa
156
+
157
+ claude plugin marketplace add abhishekdhull63/Sernixa.ai-Web
158
+ claude plugin install sernixa@sernixa --scope user
159
+ ```
160
+
161
+ Inside Claude Code, the equivalent interactive commands are
162
+ `/plugin marketplace add abhishekdhull63/Sernixa.ai-Web`,
163
+ `/plugin install sernixa@sernixa`, and `/reload-plugins`.
164
+
165
+ The legacy config installer remains available for Claude Desktop, Cursor, and
166
+ older host builds:
126
167
 
127
168
  ```bash
128
169
  sernixa hook install claude
@@ -130,7 +171,7 @@ sernixa hook install claude-desktop
130
171
  sernixa hook install codex
131
172
  sernixa hook install cursor
132
173
 
133
- sernixa hook repair codex
174
+ sernixa hook repair cursor
134
175
  sernixa hook status
135
176
  ```
136
177
 
@@ -138,14 +179,41 @@ Claude Code and Codex hooks call `sernixa hook run <provider>` before tool execu
138
179
 
139
180
  Hook handlers allow 35 seconds for the live policy request; the CLI request budget is 30 seconds. This prevents slow semantic evaluations from being killed by a shorter host-hook timeout.
140
181
 
141
- Claude Code, Claude Desktop, Codex, and Cursor run `sernixa mcp serve`. The stdio MCP server exposes three non-mutating tools:
182
+ Claude Code, Claude Desktop, Codex, and Cursor run `sernixa mcp serve`. The stdio MCP server exposes four non-mutating tools:
142
183
 
143
184
  - `sernixa_policy_check`: evaluate one proposed action.
144
185
  - `sernixa_plan_check`: evaluate a declared multi-step plan.
186
+ - `sernixa_execution_passport`: issue and persist a signed, exact-step Execution Passport for an allowed plan.
145
187
  - `sernixa_identity`: validate auth and return non-secret principal metadata.
146
188
 
147
189
  MCP tools provide explicit model capabilities; the installed hooks are the local tool-call enforcement points.
148
190
 
191
+ ### Execution Passports
192
+
193
+ An approved plan is not a reusable local “allow.” Sernixa signs each exact
194
+ tool/action/arguments/resource binding, and the API atomically consumes the
195
+ matching proof once before execution. Changed arguments, undeclared tools,
196
+ expired tokens, and replayed steps fail closed.
197
+
198
+ Issue or inspect a passport directly:
199
+
200
+ ```bash
201
+ sernixa passport issue --agent-type codex plan.json
202
+ sernixa passport status
203
+ sernixa passport clear
204
+ ```
205
+
206
+ In Codex, Claude, Cursor, or another MCP host, ask the model to call
207
+ `sernixa_execution_passport` with its complete intended plan before it begins
208
+ tool use. The installed Codex/Claude pre-tool hook then consumes the matching
209
+ proof for each emitted tool event. The passport authorizes only the declared
210
+ steps; it never executes them and never bypasses native host permissions.
211
+
212
+ Coverage remains explicit: no integration can block a capability that the host
213
+ does not expose through a hook or MCP call. On current Codex Windows builds,
214
+ Sernixa remains available as a plugin and MCP policy/passport layer, while
215
+ pre-tool blocking depends on Codex adding Windows hook support.
216
+
149
217
  ## Governance and execution
150
218
 
151
219
  ```bash
@@ -9,8 +9,8 @@ macOS and Linux:
9
9
  ```bash
10
10
  python3 -m pip install --upgrade sernixa-cli
11
11
  sernixa auth login
12
- sernixa setup
13
- sernixa doctor --strict
12
+ sernixa protect
13
+ sernixa protect --status
14
14
  ```
15
15
 
16
16
  Windows PowerShell:
@@ -18,8 +18,8 @@ Windows PowerShell:
18
18
  ```powershell
19
19
  py -m pip install --upgrade sernixa-cli
20
20
  sernixa auth login
21
- sernixa setup
22
- sernixa doctor --strict
21
+ sernixa protect
22
+ sernixa protect --status
23
23
  ```
24
24
 
25
25
  `sernixa auth login` opens the Sernixa sign-in page, displays a short confirmation
@@ -46,6 +46,7 @@ Then run `sernixa` by itself to open the persistent governance console. Type
46
46
  ```text
47
47
  sernixa › @status
48
48
  sernixa › @discover
49
+ sernixa › @protect
49
50
  sernixa › @integrations
50
51
  sernixa › @events
51
52
  sernixa › @approvals
@@ -54,7 +55,31 @@ sernixa › @exit
54
55
 
55
56
  The console is project-aware, remains open across commands, supports tab completion and private local history, and dispatches only Sernixa commands. The palette shows only actions available on the authenticated plan; direct commands are still checked by the backend. `@` is the primary command-palette prefix and slash-prefixed forms remain compatible. Every normal command such as `validate request.json` also works inside it. Bare `sernixa` remains concise when stdout or stdin is not a terminal, so scripts and CI never hang; `sernixa shell` is the explicit interactive entry point.
56
57
 
57
- `sernixa setup` configures Claude Code, Claude Desktop, Codex, and Cursor, preserves unrelated entries, backs up changed files, registers the bounded `sernixa://` dashboard launcher, and reports host restart or hook-trust steps. Preview without changing files:
58
+ `sernixa protect` is the recommended first run. It detects installed Codex,
59
+ Claude, and Cursor hosts, validates live organization policy access, installs
60
+ Sernixa as a first-class Codex and Claude Code plugin, configures the supported
61
+ Cursor boundary, and prints the actual coverage limitations instead of claiming
62
+ control over host events that were never emitted:
63
+
64
+ ```bash
65
+ sernixa protect
66
+ sernixa protect --status
67
+ sernixa protect --target codex --target claude
68
+ sernixa protect --dry-run --json
69
+ ```
70
+
71
+ After installation, restart open agent hosts. In Codex, open `/plugins`; in
72
+ Claude Code, open `/plugin`. Select **Sernixa Security** and trust its hook and
73
+ MCP server when prompted. Once each plugin is visible, Sernixa removes only its
74
+ own older standalone hook/MCP blocks (with backups), so the same enforcement
75
+ command is not registered twice.
76
+ The plugin still contains a hook because pre-tool blocking requires one; it is
77
+ owned and displayed as part of the plugin rather than user config.
78
+ `sernixa setup` remains
79
+ available for the broader developer setup, including Claude Desktop and the
80
+ bounded `sernixa://` dashboard launcher. It preserves unrelated entries, backs
81
+ up changed files, and reports host restart or hook-trust steps. Preview it
82
+ without changing files:
58
83
 
59
84
  ```bash
60
85
  sernixa setup --dry-run
@@ -89,12 +114,28 @@ Discovery candidates are observations for review. Enrollment is inventory. An ac
89
114
 
90
115
  Supported global targets:
91
116
 
92
- - `claude`: Claude Code enforcement and lifecycle hooks in `~/.claude/settings.json`, plus the Sernixa MCP server in `~/.claude.json`.
117
+ - `claude`: a visible **Sernixa Security** plugin containing enforcement/lifecycle hooks, the Sernixa MCP server, and a protection skill. Users can inspect it from `/plugin`.
93
118
  - `claude-desktop`: real stdio MCP server in the OS-specific Claude Desktop configuration.
94
- - `codex`: enforcement and lifecycle hooks plus the Sernixa MCP server in `~/.codex`. Hooks are effective by default unless `[features].hooks = false`; users still review/trust new non-managed hooks in Codex.
119
+ - `codex`: a visible **Sernixa Security** plugin containing the enforcement hook, Sernixa MCP server, and protection skill. Users review/trust the plugin hook, and can inspect it from `/plugins`.
95
120
  - `cursor`: global MCP entry in `~/.cursor/mcp.json`, shared by Cursor IDE and CLI.
96
121
 
97
- Install or repair an individual integration:
122
+ `sernixa protect` is the supported automatic installer. Anyone can also add the
123
+ public repository marketplace directly:
124
+
125
+ ```bash
126
+ codex plugin marketplace add abhishekdhull63/Sernixa.ai-Web
127
+ codex plugin add sernixa@sernixa
128
+
129
+ claude plugin marketplace add abhishekdhull63/Sernixa.ai-Web
130
+ claude plugin install sernixa@sernixa --scope user
131
+ ```
132
+
133
+ Inside Claude Code, the equivalent interactive commands are
134
+ `/plugin marketplace add abhishekdhull63/Sernixa.ai-Web`,
135
+ `/plugin install sernixa@sernixa`, and `/reload-plugins`.
136
+
137
+ The legacy config installer remains available for Claude Desktop, Cursor, and
138
+ older host builds:
98
139
 
99
140
  ```bash
100
141
  sernixa hook install claude
@@ -102,7 +143,7 @@ sernixa hook install claude-desktop
102
143
  sernixa hook install codex
103
144
  sernixa hook install cursor
104
145
 
105
- sernixa hook repair codex
146
+ sernixa hook repair cursor
106
147
  sernixa hook status
107
148
  ```
108
149
 
@@ -110,14 +151,41 @@ Claude Code and Codex hooks call `sernixa hook run <provider>` before tool execu
110
151
 
111
152
  Hook handlers allow 35 seconds for the live policy request; the CLI request budget is 30 seconds. This prevents slow semantic evaluations from being killed by a shorter host-hook timeout.
112
153
 
113
- Claude Code, Claude Desktop, Codex, and Cursor run `sernixa mcp serve`. The stdio MCP server exposes three non-mutating tools:
154
+ Claude Code, Claude Desktop, Codex, and Cursor run `sernixa mcp serve`. The stdio MCP server exposes four non-mutating tools:
114
155
 
115
156
  - `sernixa_policy_check`: evaluate one proposed action.
116
157
  - `sernixa_plan_check`: evaluate a declared multi-step plan.
158
+ - `sernixa_execution_passport`: issue and persist a signed, exact-step Execution Passport for an allowed plan.
117
159
  - `sernixa_identity`: validate auth and return non-secret principal metadata.
118
160
 
119
161
  MCP tools provide explicit model capabilities; the installed hooks are the local tool-call enforcement points.
120
162
 
163
+ ### Execution Passports
164
+
165
+ An approved plan is not a reusable local “allow.” Sernixa signs each exact
166
+ tool/action/arguments/resource binding, and the API atomically consumes the
167
+ matching proof once before execution. Changed arguments, undeclared tools,
168
+ expired tokens, and replayed steps fail closed.
169
+
170
+ Issue or inspect a passport directly:
171
+
172
+ ```bash
173
+ sernixa passport issue --agent-type codex plan.json
174
+ sernixa passport status
175
+ sernixa passport clear
176
+ ```
177
+
178
+ In Codex, Claude, Cursor, or another MCP host, ask the model to call
179
+ `sernixa_execution_passport` with its complete intended plan before it begins
180
+ tool use. The installed Codex/Claude pre-tool hook then consumes the matching
181
+ proof for each emitted tool event. The passport authorizes only the declared
182
+ steps; it never executes them and never bypasses native host permissions.
183
+
184
+ Coverage remains explicit: no integration can block a capability that the host
185
+ does not expose through a hook or MCP call. On current Codex Windows builds,
186
+ Sernixa remains available as a plugin and MCP policy/passport layer, while
187
+ pre-tool blocking depends on Codex adding Windows hook support.
188
+
121
189
  ## Governance and execution
122
190
 
123
191
  ```bash
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sernixa-cli"
3
- version = "0.4.2"
3
+ version = "0.4.4"
4
4
  description = "Official Sernixa CLI for policy-governed local AI agent actions"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -21,7 +21,7 @@ dependencies = [
21
21
  "platformdirs>=4.0.0",
22
22
  "prompt-toolkit>=3.0.48",
23
23
  "rich>=13.8.0",
24
- "sernixa>=0.4.1",
24
+ "sernixa>=0.4.3",
25
25
  "sernixa-agent>=1.6.1",
26
26
  "typer>=0.12.0",
27
27
  ]
@@ -42,6 +42,20 @@ build-backend = "setuptools.build_meta"
42
42
  [tool.setuptools.packages.find]
43
43
  include = ["sernixa_cli*"]
44
44
 
45
+ [tool.setuptools.package-data]
46
+ sernixa_cli = [
47
+ "claude_marketplace/.claude-plugin/marketplace.json",
48
+ "claude_marketplace/plugins/sernixa/.claude-plugin/plugin.json",
49
+ "claude_marketplace/plugins/sernixa/.mcp.json",
50
+ "claude_marketplace/plugins/sernixa/hooks/hooks.json",
51
+ "claude_marketplace/plugins/sernixa/skills/sernixa-protection/SKILL.md",
52
+ "codex_marketplace/.agents/plugins/marketplace.json",
53
+ "codex_marketplace/plugins/sernixa/.codex-plugin/plugin.json",
54
+ "codex_marketplace/plugins/sernixa/.mcp.json",
55
+ "codex_marketplace/plugins/sernixa/hooks/hooks.json",
56
+ "codex_marketplace/plugins/sernixa/skills/sernixa-protection/SKILL.md",
57
+ ]
58
+
45
59
  [tool.pytest.ini_options]
46
60
  testpaths = ["tests"]
47
61
  pythonpath = ["."]
@@ -1,3 +1,3 @@
1
1
  """Official Sernixa command-line client."""
2
2
 
3
- __version__ = "0.4.2"
3
+ __version__ = "0.4.4"
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
+ "name": "sernixa",
4
+ "version": "0.4.4",
5
+ "description": "Sernixa policy enforcement and signed Execution Passports for AI agent actions.",
6
+ "owner": {
7
+ "name": "Sernixa Team"
8
+ },
9
+ "plugins": [
10
+ {
11
+ "name": "sernixa",
12
+ "description": "Govern Claude actions with live organization policy and one-time exact-step proofs.",
13
+ "version": "0.4.4",
14
+ "source": "./plugins/sernixa",
15
+ "category": "security"
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
+ "name": "sernixa",
4
+ "displayName": "Sernixa Security",
5
+ "version": "0.4.4",
6
+ "description": "Server-authoritative policy and signed, one-time Execution Passports for Claude Code.",
7
+ "author": {
8
+ "name": "Sernixa Team",
9
+ "url": "https://sernixa.com"
10
+ },
11
+ "homepage": "https://sernixa.com",
12
+ "repository": "https://github.com/abhishekdhull63/Sernixa.ai-Web",
13
+ "license": "MIT",
14
+ "keywords": ["ai-security", "governance", "policy", "execution-passport"],
15
+ "skills": "./skills/",
16
+ "mcpServers": "./.mcp.json"
17
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "sernixa-governance": {
4
+ "command": "sernixa",
5
+ "args": ["mcp", "serve"],
6
+ "env": {
7
+ "SERNIXA_AGENT_TYPE": "claude"
8
+ }
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "matcher": "startup|resume|clear|compact",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "sernixa hook run claude",
10
+ "timeout": 35
11
+ }
12
+ ]
13
+ }
14
+ ],
15
+ "UserPromptSubmit": [
16
+ {
17
+ "hooks": [
18
+ {
19
+ "type": "command",
20
+ "command": "sernixa hook run claude",
21
+ "timeout": 35
22
+ }
23
+ ]
24
+ }
25
+ ],
26
+ "PreToolUse": [
27
+ {
28
+ "matcher": "*",
29
+ "hooks": [
30
+ {
31
+ "type": "command",
32
+ "command": "sernixa hook run claude",
33
+ "timeout": 35,
34
+ "statusMessage": "Checking Sernixa policy and Execution Passport"
35
+ }
36
+ ]
37
+ }
38
+ ],
39
+ "PostToolUse": [
40
+ {
41
+ "matcher": "*",
42
+ "hooks": [
43
+ {
44
+ "type": "command",
45
+ "command": "sernixa hook run claude",
46
+ "timeout": 35
47
+ }
48
+ ]
49
+ }
50
+ ],
51
+ "PostToolUseFailure": [
52
+ {
53
+ "matcher": "*",
54
+ "hooks": [
55
+ {
56
+ "type": "command",
57
+ "command": "sernixa hook run claude",
58
+ "timeout": 35
59
+ }
60
+ ]
61
+ }
62
+ ],
63
+ "SubagentStart": [
64
+ {
65
+ "hooks": [
66
+ {
67
+ "type": "command",
68
+ "command": "sernixa hook run claude",
69
+ "timeout": 35
70
+ }
71
+ ]
72
+ }
73
+ ],
74
+ "SubagentStop": [
75
+ {
76
+ "hooks": [
77
+ {
78
+ "type": "command",
79
+ "command": "sernixa hook run claude",
80
+ "timeout": 35
81
+ }
82
+ ]
83
+ }
84
+ ],
85
+ "PreCompact": [
86
+ {
87
+ "hooks": [
88
+ {
89
+ "type": "command",
90
+ "command": "sernixa hook run claude",
91
+ "timeout": 35
92
+ }
93
+ ]
94
+ }
95
+ ],
96
+ "PostCompact": [
97
+ {
98
+ "hooks": [
99
+ {
100
+ "type": "command",
101
+ "command": "sernixa hook run claude",
102
+ "timeout": 35
103
+ }
104
+ ]
105
+ }
106
+ ],
107
+ "Stop": [
108
+ {
109
+ "hooks": [
110
+ {
111
+ "type": "command",
112
+ "command": "sernixa hook run claude",
113
+ "timeout": 35
114
+ }
115
+ ]
116
+ }
117
+ ],
118
+ "SessionEnd": [
119
+ {
120
+ "hooks": [
121
+ {
122
+ "type": "command",
123
+ "command": "sernixa hook run claude",
124
+ "timeout": 35
125
+ }
126
+ ]
127
+ }
128
+ ]
129
+ }
130
+ }
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: sernixa-protection
3
+ description: Use when a Claude plan should be checked and bound to Sernixa policy before tool execution, or when explaining a Sernixa denial.
4
+ ---
5
+
6
+ # Sernixa protection
7
+
8
+ Before a multi-step tool workflow:
9
+
10
+ 1. Call `sernixa_identity` to verify the active organization context.
11
+ 2. Build exact steps with `tool_name`, canonical `action`, `arguments`, and
12
+ `resource`.
13
+ 3. Call `sernixa_execution_passport` once with the complete plan.
14
+ 4. Do not change tool arguments after the passport is issued. If the plan
15
+ changes, issue a new passport.
16
+ 5. Treat any missing, expired, replayed, or mismatched proof as blocked.
17
+
18
+ Sernixa policy never replaces Claude permissions or user approval. Both
19
+ boundaries must allow the action.