@neuroverseos/governance 0.3.0 → 0.3.3
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.
- package/.well-known/ai-plugin.json +34 -9
- package/AGENTS.md +72 -24
- package/README.md +352 -237
- package/dist/adapters/autoresearch.cjs +1152 -3
- package/dist/adapters/autoresearch.d.cts +11 -3
- package/dist/adapters/autoresearch.d.ts +11 -3
- package/dist/adapters/autoresearch.js +9 -4
- package/dist/adapters/deep-agents.cjs +1528 -0
- package/dist/adapters/deep-agents.d.cts +181 -0
- package/dist/adapters/deep-agents.d.ts +181 -0
- package/dist/adapters/deep-agents.js +17 -0
- package/dist/adapters/express.cjs +171 -32
- package/dist/adapters/express.d.cts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.js +5 -5
- package/dist/adapters/index.cjs +564 -121
- package/dist/adapters/index.d.cts +3 -1
- package/dist/adapters/index.d.ts +3 -1
- package/dist/adapters/index.js +38 -16
- package/dist/adapters/langchain.cjs +217 -57
- package/dist/adapters/langchain.d.cts +5 -5
- package/dist/adapters/langchain.d.ts +5 -5
- package/dist/adapters/langchain.js +6 -5
- package/dist/adapters/openai.cjs +219 -59
- package/dist/adapters/openai.d.cts +5 -5
- package/dist/adapters/openai.d.ts +5 -5
- package/dist/adapters/openai.js +6 -5
- package/dist/adapters/openclaw.cjs +217 -57
- package/dist/adapters/openclaw.d.cts +6 -6
- package/dist/adapters/openclaw.d.ts +6 -6
- package/dist/adapters/openclaw.js +6 -5
- package/dist/add-ROOZLU62.js +314 -0
- package/dist/behavioral-MJO34S6Q.js +118 -0
- package/dist/{bootstrap-GXVDZNF7.js → bootstrap-CQRZVOXK.js} +6 -4
- package/dist/bootstrap-emitter-Q7UIJZ2O.js +7 -0
- package/dist/bootstrap-parser-EEF36XDU.js +7 -0
- package/dist/browser.global.js +941 -0
- package/dist/{build-P42YFKQV.js → build-QKOBBC23.js} +7 -5
- package/dist/{chunk-COT5XS4V.js → chunk-3WQLXYTP.js} +17 -35
- package/dist/{chunk-ER62HNGF.js → chunk-4FLICVVA.js} +17 -37
- package/dist/chunk-5TPFNWRU.js +215 -0
- package/dist/chunk-5U2MQO5P.js +57 -0
- package/dist/{chunk-NF5POFCI.js → chunk-6S5CFQXY.js} +6 -4
- package/dist/{chunk-QPASI2BR.js → chunk-A7GKPPU7.js} +49 -10
- package/dist/{chunk-OGL7QXZS.js → chunk-B6OXJLJ5.js} +17 -3
- package/dist/{chunk-2PQU3VAN.js → chunk-BNKJPUPQ.js} +17 -35
- package/dist/chunk-BQZMOEML.js +43 -0
- package/dist/chunk-CNSO6XW5.js +207 -0
- package/dist/{chunk-JZPQGIKR.js → chunk-CTZHONLA.js} +65 -9
- package/dist/chunk-D2UCV5AK.js +326 -0
- package/dist/{chunk-XPDMYECO.js → chunk-EMQDLDAF.js} +1 -185
- package/dist/{chunk-GR6DGCZ2.js → chunk-F66BVUYB.js} +3 -3
- package/dist/{chunk-2NICNKOM.js → chunk-G7DJ6VOD.js} +5 -4
- package/dist/{chunk-4A7LISES.js → chunk-IS4WUH6Y.js} +45 -6
- package/dist/{chunk-MWDQ4MJB.js → chunk-MH7BT4VH.js} +5 -1
- package/dist/chunk-O5ABKEA7.js +304 -0
- package/dist/chunk-PVTQQS3Y.js +186 -0
- package/dist/{chunk-4QXB6PEO.js → chunk-QLPTHTVB.js} +37 -16
- package/dist/chunk-QWGCMQQD.js +16 -0
- package/dist/{chunk-T5EUJQE5.js → chunk-QXBFT7NI.js} +31 -2
- package/dist/{chunk-PDOZHZWL.js → chunk-TG6SEF24.js} +25 -4
- package/dist/chunk-U6U7EJZL.js +177 -0
- package/dist/{chunk-4JRYGIO7.js → chunk-W7LLXRGY.js} +110 -7
- package/dist/{chunk-BUWWN2NX.js → chunk-ZJTDUCC2.js} +9 -7
- package/dist/{chunk-FYS2CBUW.js → chunk-ZWI3NIXK.js} +10 -0
- package/dist/cli/neuroverse.cjs +5091 -2348
- package/dist/cli/neuroverse.js +52 -21
- package/dist/cli/plan.cjs +881 -41
- package/dist/cli/plan.js +7 -15
- package/dist/cli/run.cjs +289 -34
- package/dist/cli/run.js +4 -4
- package/dist/{configure-ai-TK67ZWZL.js → configure-ai-6TZ3MCSI.js} +1 -1
- package/dist/decision-flow-M63D47LO.js +61 -0
- package/dist/demo-G43RLCPK.js +469 -0
- package/dist/{derive-TLIV4OOU.js → derive-FJZVIPUZ.js} +5 -4
- package/dist/{doctor-XPDLEYXN.js → doctor-6BC6X2VO.js} +6 -4
- package/dist/equity-penalties-SG5IZQ7I.js +244 -0
- package/dist/{explain-IDCRWMPX.js → explain-RHBU2GBR.js} +6 -25
- package/dist/{guard-RV65TT4L.js → guard-AJCCGZMF.js} +8 -12
- package/dist/{guard-contract-WZx__PmU.d.cts → guard-contract-DqFcTScd.d.cts} +117 -5
- package/dist/{guard-contract-WZx__PmU.d.ts → guard-contract-DqFcTScd.d.ts} +117 -5
- package/dist/{guard-engine-JLTUARGU.js → guard-engine-PNR6MHCM.js} +3 -3
- package/dist/{impact-XPECYRLH.js → impact-3XVDSCBU.js} +5 -5
- package/dist/{improve-GPUBKTEA.js → improve-TQP4ECSY.js} +7 -26
- package/dist/index.cjs +5597 -4279
- package/dist/index.d.cts +597 -18
- package/dist/index.d.ts +597 -18
- package/dist/index.js +134 -41
- package/dist/{infer-world-7GVZWFX4.js → infer-world-IFXCACJ5.js} +1 -1
- package/dist/{init-PKPIYHYE.js → init-FYPV4SST.js} +1 -1
- package/dist/{init-world-VWMQZQC7.js → init-world-TI7ARHBT.js} +1 -1
- package/dist/mcp-server-5Y3ZM7TV.js +13 -0
- package/dist/{model-adapter-BB7G4MFI.js → model-adapter-VXEKB4LS.js} +1 -1
- package/dist/{playground-E664U4T6.js → playground-VZBNPPBO.js} +29 -19
- package/dist/{redteam-Z7WREJ44.js → redteam-MZPZD3EF.js} +4 -4
- package/dist/session-JYOARW54.js +15 -0
- package/dist/shared-7RLUHNMU.js +16 -0
- package/dist/shared-B8dvUUD8.d.cts +60 -0
- package/dist/shared-Dr5Wiay8.d.ts +60 -0
- package/dist/{simulate-VDOYQFRO.js → simulate-LJXYBC6M.js} +8 -33
- package/dist/{test-OGXJK4QU.js → test-BOOR4A5F.js} +4 -4
- package/dist/{trace-JVF67VR3.js → trace-PKV4KX56.js} +4 -4
- package/dist/{validate-LLBWVPGV.js → validate-RALX7CZS.js} +2 -2
- package/dist/{validate-engine-UIABSIHD.js → validate-engine-7ZXFVGF2.js} +1 -1
- package/dist/viz/assets/index-B8SaeJZZ.js +23 -0
- package/dist/viz/index.html +23 -0
- package/dist/{world-LAXO6DOX.js → world-BIP4GZBZ.js} +9 -11
- package/dist/world-loader-Y6HMQH2D.js +13 -0
- package/dist/worlds/coding-agent.nv-world.md +211 -0
- package/dist/worlds/research-agent.nv-world.md +169 -0
- package/dist/worlds/social-media.nv-world.md +198 -0
- package/dist/worlds/trading-agent.nv-world.md +218 -0
- package/examples/social-media-sim/bridge.py +209 -0
- package/examples/social-media-sim/simulation.py +927 -0
- package/package.json +30 -4
- package/policies/content-moderation-rules.txt +8 -0
- package/policies/marketing-rules.txt +8 -0
- package/policies/science-research-rules.txt +11 -0
- package/policies/social-media-rules.txt +7 -0
- package/policies/strict-rules.txt +8 -0
- package/policies/trading-rules.txt +8 -0
- package/simulate.html +1567 -0
- package/dist/chunk-YZFATT7X.js +0 -9
- package/dist/mcp-server-FPVSU32Z.js +0 -13
- package/dist/session-EKTRSR7C.js +0 -14
- package/dist/world-loader-HMPTOEA2.js +0 -9
|
@@ -3,24 +3,49 @@
|
|
|
3
3
|
"name": "neuroverse-governance",
|
|
4
4
|
"description": "Enforce governance rules on AI agent actions. Turn plans into enforceable constraints. Deterministic evaluation — no LLM in the loop.",
|
|
5
5
|
"capabilities": {
|
|
6
|
+
"world_governance": {
|
|
7
|
+
"description": "Full governance engine with invariants, guards, roles, kernel rules, and audit trails. Multi-phase evaluation pipeline: safety, plan, roles, guards, kernel, level.",
|
|
8
|
+
"input": "GuardEvent JSON",
|
|
9
|
+
"output": "ALLOW / BLOCK / PAUSE / MODIFY / PENALIZE / REWARD / NEUTRAL verdict with trace"
|
|
10
|
+
},
|
|
6
11
|
"plan_enforcement": {
|
|
7
|
-
"description": "Compile a plan into enforceable rules. Block actions outside the plan. Track progress.",
|
|
12
|
+
"description": "Compile a plan into enforceable rules. Block actions outside the plan. Track progress. Verified completion mode with evidence.",
|
|
8
13
|
"input": "Plan markdown or JSON",
|
|
9
14
|
"output": "ON_PLAN / OFF_PLAN / CONSTRAINT_VIOLATED / PLAN_COMPLETE verdict with evidence"
|
|
10
15
|
},
|
|
11
|
-
"
|
|
12
|
-
"description": "
|
|
13
|
-
"input": "
|
|
14
|
-
"output": "
|
|
16
|
+
"validation": {
|
|
17
|
+
"description": "12 static analysis checks: completeness, referential integrity, guard coverage, semantic coverage, contradictions, shadows, fail-closed surfaces, reachability, state coverage, orphans, schema violations, governance health.",
|
|
18
|
+
"input": "WorldDefinition (directory path)",
|
|
19
|
+
"output": "Validation report with findings, severity, and governance health score"
|
|
20
|
+
},
|
|
21
|
+
"red_team": {
|
|
22
|
+
"description": "28 adversarial attacks across 6 categories: prompt injection, tool escalation, scope escape, data exfiltration, identity manipulation, constraint bypass.",
|
|
23
|
+
"input": "WorldDefinition (directory path)",
|
|
24
|
+
"output": "Containment report with per-category scores"
|
|
25
|
+
},
|
|
26
|
+
"simulation": {
|
|
27
|
+
"description": "Step-by-step state evolution under assumption profiles. Tracks rule firing, effects, collapse detection, and viability classification.",
|
|
28
|
+
"input": "WorldDefinition + assumption profile",
|
|
29
|
+
"output": "SimulationResult with state history and collapse triggers"
|
|
30
|
+
},
|
|
31
|
+
"behavioral_analysis": {
|
|
32
|
+
"description": "Classify agent adaptations, detect network-level behavioral patterns (coordinated silence, misinfo suppression, reward cascades), generate narratives.",
|
|
33
|
+
"input": "GuardVerdict[] from audit log",
|
|
34
|
+
"output": "BehavioralPattern[] with narrative prose"
|
|
35
|
+
},
|
|
36
|
+
"impact_analysis": {
|
|
37
|
+
"description": "Counterfactual governance impact report. Shows what would have happened without governance.",
|
|
38
|
+
"input": "Audit log file",
|
|
39
|
+
"output": "Impact report with redirection rate, behavioral shifts, and net pressure"
|
|
15
40
|
},
|
|
16
41
|
"plan_derive": {
|
|
17
|
-
"description": "Generate a full governance world from
|
|
18
|
-
"input": "Plan markdown",
|
|
19
|
-
"output": "World definition files (world.json, invariants.json, guards.json)"
|
|
42
|
+
"description": "AI-assisted world synthesis from any markdown. Generate a full governance world from natural language.",
|
|
43
|
+
"input": "Plan markdown or freeform description",
|
|
44
|
+
"output": "World definition files (world.json, invariants.json, guards.json, etc.)"
|
|
20
45
|
}
|
|
21
46
|
},
|
|
22
47
|
"install": "npm install @neuroverseos/governance",
|
|
23
|
-
"adapters": ["openclaw", "langchain", "openai", "express"],
|
|
48
|
+
"adapters": ["openclaw", "langchain", "openai", "express", "deep-agents", "autoresearch"],
|
|
24
49
|
"cli": "neuroverse",
|
|
25
50
|
"repository": "https://github.com/NeuroverseOS/Neuroverseos-governance"
|
|
26
51
|
}
|
package/AGENTS.md
CHANGED
|
@@ -14,8 +14,8 @@ npm install @neuroverseos/governance
|
|
|
14
14
|
|
|
15
15
|
### Enforce a world (permanent rules)
|
|
16
16
|
|
|
17
|
-
```
|
|
18
|
-
|
|
17
|
+
```typescript
|
|
18
|
+
import { evaluateGuard, loadWorld } from '@neuroverseos/governance';
|
|
19
19
|
|
|
20
20
|
const world = await loadWorld('./world/');
|
|
21
21
|
const verdict = evaluateGuard({ intent: 'delete user', tool: 'db' }, world);
|
|
@@ -24,8 +24,8 @@ const verdict = evaluateGuard({ intent: 'delete user', tool: 'db' }, world);
|
|
|
24
24
|
|
|
25
25
|
### Enforce a plan (temporary task scope)
|
|
26
26
|
|
|
27
|
-
```
|
|
28
|
-
|
|
27
|
+
```typescript
|
|
28
|
+
import { evaluatePlan, parsePlanMarkdown } from '@neuroverseos/governance';
|
|
29
29
|
|
|
30
30
|
const plan = parsePlanMarkdown(planMarkdownString);
|
|
31
31
|
const verdict = evaluatePlan({ intent: 'send email', tool: 'smtp' }, plan.plan);
|
|
@@ -34,7 +34,7 @@ const verdict = evaluatePlan({ intent: 'send email', tool: 'smtp' }, plan.plan);
|
|
|
34
34
|
|
|
35
35
|
### Enforce both (plan on top of world)
|
|
36
36
|
|
|
37
|
-
```
|
|
37
|
+
```typescript
|
|
38
38
|
const verdict = evaluateGuard(event, world, { plan });
|
|
39
39
|
// Plan rules AND world rules both apply
|
|
40
40
|
// Plan can only restrict, never expand
|
|
@@ -42,10 +42,53 @@ const verdict = evaluateGuard(event, world, { plan });
|
|
|
42
42
|
|
|
43
43
|
### Guard with trace (see what fired)
|
|
44
44
|
|
|
45
|
-
```
|
|
45
|
+
```typescript
|
|
46
46
|
const verdict = evaluateGuard(event, world, { trace: true, level: 'strict' });
|
|
47
47
|
// verdict.trace contains:
|
|
48
|
-
// safetyChecks, guardChecks, kernelRuleChecks, levelChecks, invariantChecks
|
|
48
|
+
// safetyChecks, planCheck, roleChecks, guardChecks, kernelRuleChecks, levelChecks, invariantChecks
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Guard Event Input
|
|
52
|
+
|
|
53
|
+
The `GuardEvent` is what you send to the engine:
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
{
|
|
57
|
+
intent: string; // Required — what the agent wants to do
|
|
58
|
+
tool?: string; // Tool being called (e.g., 'database', 'filesystem')
|
|
59
|
+
scope?: string; // Resource path or domain (e.g., '/etc/passwd', 'production')
|
|
60
|
+
roleId?: string; // Agent role for multi-agent governance
|
|
61
|
+
direction?: 'input' | 'output'; // Is this an incoming request or outgoing response?
|
|
62
|
+
actionCategory?: 'read' | 'write' | 'delete' | 'network' | 'shell' | 'browser' | 'other';
|
|
63
|
+
riskLevel?: 'low' | 'medium' | 'high' | 'critical';
|
|
64
|
+
irreversible?: boolean; // Flag destructive actions for stricter checking
|
|
65
|
+
payload?: string; // Raw content for injection detection
|
|
66
|
+
args?: Record<string, unknown>; // Tool arguments (supports dot-notation access in rules)
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Guard Verdict Output
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
{
|
|
74
|
+
status: 'ALLOW' | 'BLOCK' | 'PAUSE' | 'MODIFY' | 'PENALIZE' | 'REWARD' | 'NEUTRAL';
|
|
75
|
+
reason?: string; // Why the action was blocked/paused
|
|
76
|
+
ruleId?: string; // Which rule decided
|
|
77
|
+
warning?: string; // Advisory for ALLOW verdicts
|
|
78
|
+
consequence?: object; // Details when PENALIZE (cooldown, influence reduction)
|
|
79
|
+
reward?: object; // Details when REWARD (priority boost, influence increase)
|
|
80
|
+
evidence: { // Always present — audit trail
|
|
81
|
+
worldId: string;
|
|
82
|
+
worldName: string;
|
|
83
|
+
worldVersion: string;
|
|
84
|
+
timestamp: number;
|
|
85
|
+
invariantCoverage: { satisfied: number; total: number };
|
|
86
|
+
matchedGuards: string[];
|
|
87
|
+
matchedRules: string[];
|
|
88
|
+
enforcementLevel: string;
|
|
89
|
+
};
|
|
90
|
+
trace?: EvaluationTrace; // Full pipeline trace when trace: true
|
|
91
|
+
}
|
|
49
92
|
```
|
|
50
93
|
|
|
51
94
|
## Available Commands
|
|
@@ -63,6 +106,7 @@ neuroverse playground --world <dir> Interactive web demo at localhost:4242
|
|
|
63
106
|
neuroverse explain <world> Human-readable world summary
|
|
64
107
|
neuroverse simulate <world> State evolution simulation
|
|
65
108
|
neuroverse improve <world> Actionable improvement suggestions
|
|
109
|
+
neuroverse impact --log <path> Counterfactual impact report
|
|
66
110
|
neuroverse plan compile <plan.md> Parse plan markdown into plan.json
|
|
67
111
|
neuroverse plan check --plan plan.json Check action against plan (stdin)
|
|
68
112
|
neuroverse plan status --plan plan.json Show plan progress
|
|
@@ -71,7 +115,6 @@ neuroverse plan derive <plan.md> Generate a full world from a plan
|
|
|
71
115
|
neuroverse run --world <dir> Governed runtime (pipe or interactive)
|
|
72
116
|
neuroverse mcp --world <dir> MCP governance server
|
|
73
117
|
neuroverse trace --log <path> Action audit log
|
|
74
|
-
neuroverse impact --log <path> Counterfactual impact report
|
|
75
118
|
neuroverse world status|diff|snapshot|rollback World management
|
|
76
119
|
neuroverse worlds List available worlds
|
|
77
120
|
neuroverse derive --input <path> AI-assisted world synthesis
|
|
@@ -105,7 +148,7 @@ completion: verified
|
|
|
105
148
|
- `completion: trust` (default) — caller says "done", step advances
|
|
106
149
|
- `completion: verified` — steps with `[verify: ...]` require evidence to advance
|
|
107
150
|
|
|
108
|
-
```
|
|
151
|
+
```typescript
|
|
109
152
|
// Trust mode — just advance
|
|
110
153
|
const result = advancePlan(plan, 'write_announcement_blog_post');
|
|
111
154
|
// → { success: true, plan: <updated> }
|
|
@@ -125,8 +168,8 @@ const result = advancePlan(plan, 'publish_github_release');
|
|
|
125
168
|
## Governance Model
|
|
126
169
|
|
|
127
170
|
```
|
|
128
|
-
Safety checks → Plan enforcement → Role rules → Guards → Kernel
|
|
129
|
-
(country laws) (mom's trip rules) (driving laws) (domain) (boundaries)
|
|
171
|
+
Safety checks → Plan enforcement → Role rules → Guards → Kernel → Level
|
|
172
|
+
(country laws) (mom's trip rules) (driving laws) (domain) (boundaries) (strictness)
|
|
130
173
|
```
|
|
131
174
|
|
|
132
175
|
Plans are temporary guard overlays. They define task scope.
|
|
@@ -137,12 +180,12 @@ Both layers must pass for an action to be allowed.
|
|
|
137
180
|
|
|
138
181
|
Every action passes through 6 phases:
|
|
139
182
|
|
|
140
|
-
1. **Safety** — prompt injection, scope escape, data exfil detection (always on)
|
|
183
|
+
1. **Safety** — prompt injection, scope escape, data exfil detection (always on, 12 pattern categories)
|
|
141
184
|
2. **Plan** — is the action within the current mission scope?
|
|
142
|
-
3. **Roles** — does the actor have permission?
|
|
185
|
+
3. **Roles** — does the actor have permission? (role-based access control)
|
|
143
186
|
4. **Guards** — do domain-specific rules allow it?
|
|
144
|
-
5. **Kernel** — does it violate LLM boundary rules?
|
|
145
|
-
6. **Level** — does enforcement strictness allow it?
|
|
187
|
+
5. **Kernel** — does it violate LLM boundary rules? (input/output forbidden patterns)
|
|
188
|
+
6. **Level** — does enforcement strictness allow it? (basic, standard, strict)
|
|
146
189
|
|
|
147
190
|
First BLOCK wins. If nothing blocks, ALLOW.
|
|
148
191
|
|
|
@@ -150,7 +193,7 @@ First BLOCK wins. If nothing blocks, ALLOW.
|
|
|
150
193
|
|
|
151
194
|
### OpenAI
|
|
152
195
|
|
|
153
|
-
```
|
|
196
|
+
```typescript
|
|
154
197
|
import { createGovernedToolExecutor } from '@neuroverseos/governance/adapters/openai';
|
|
155
198
|
|
|
156
199
|
const executor = await createGovernedToolExecutor('./world/', { trace: true, plan });
|
|
@@ -160,7 +203,7 @@ const result = await executor.execute(toolCall, myToolRunner);
|
|
|
160
203
|
|
|
161
204
|
### LangChain
|
|
162
205
|
|
|
163
|
-
```
|
|
206
|
+
```typescript
|
|
164
207
|
import { createNeuroVerseCallbackHandler } from '@neuroverseos/governance/adapters/langchain';
|
|
165
208
|
|
|
166
209
|
const handler = await createNeuroVerseCallbackHandler('./world/', {
|
|
@@ -172,7 +215,7 @@ const agent = new AgentExecutor({ ..., callbacks: [handler] });
|
|
|
172
215
|
|
|
173
216
|
### OpenClaw
|
|
174
217
|
|
|
175
|
-
```
|
|
218
|
+
```typescript
|
|
176
219
|
import { createNeuroVersePlugin } from '@neuroverseos/governance/adapters/openclaw';
|
|
177
220
|
|
|
178
221
|
const plugin = await createNeuroVersePlugin('./world/', { plan });
|
|
@@ -181,7 +224,7 @@ agent.use(plugin.hooks());
|
|
|
181
224
|
|
|
182
225
|
### Express / Fastify
|
|
183
226
|
|
|
184
|
-
```
|
|
227
|
+
```typescript
|
|
185
228
|
import { createGovernanceMiddleware } from '@neuroverseos/governance/adapters/express';
|
|
186
229
|
|
|
187
230
|
const middleware = await createGovernanceMiddleware('./world/', { level: 'strict' });
|
|
@@ -199,11 +242,16 @@ Exposes governed tools over Model Context Protocol. Works with Claude, Cursor, a
|
|
|
199
242
|
|
|
200
243
|
## Exit Codes
|
|
201
244
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
245
|
+
| Code | Status | Meaning |
|
|
246
|
+
|------|--------|---------|
|
|
247
|
+
| 0 | ALLOW | Action permitted |
|
|
248
|
+
| 1 | BLOCK | Action denied |
|
|
249
|
+
| 2 | PAUSE | Held for human approval |
|
|
250
|
+
| 3 | ERROR | Evaluation failed |
|
|
251
|
+
| 4 | MODIFY | Action transformed |
|
|
252
|
+
| 5 | PENALIZE | Consequence applied |
|
|
253
|
+
| 6 | REWARD | Incentive applied |
|
|
254
|
+
| 7 | NEUTRAL | Informational only |
|
|
207
255
|
|
|
208
256
|
## Containment Testing
|
|
209
257
|
|