@neuroverseos/governance 0.3.1 → 0.3.4

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 (133) hide show
  1. package/.well-known/ai-plugin.json +34 -9
  2. package/AGENTS.md +72 -24
  3. package/README.md +343 -248
  4. package/dist/adapters/autoresearch.cjs +1345 -0
  5. package/dist/adapters/autoresearch.d.cts +111 -0
  6. package/dist/adapters/autoresearch.d.ts +111 -0
  7. package/dist/adapters/autoresearch.js +12 -0
  8. package/dist/adapters/deep-agents.cjs +1528 -0
  9. package/dist/adapters/deep-agents.d.cts +181 -0
  10. package/dist/adapters/deep-agents.d.ts +181 -0
  11. package/dist/adapters/deep-agents.js +17 -0
  12. package/dist/adapters/express.cjs +1253 -0
  13. package/dist/adapters/express.d.cts +66 -0
  14. package/dist/adapters/express.d.ts +66 -0
  15. package/dist/adapters/express.js +12 -0
  16. package/dist/adapters/index.cjs +2112 -0
  17. package/dist/adapters/index.d.cts +8 -0
  18. package/dist/adapters/index.d.ts +8 -0
  19. package/dist/adapters/index.js +68 -0
  20. package/dist/adapters/langchain.cjs +1315 -0
  21. package/dist/adapters/langchain.d.cts +89 -0
  22. package/dist/adapters/langchain.d.ts +89 -0
  23. package/dist/adapters/langchain.js +17 -0
  24. package/dist/adapters/openai.cjs +1345 -0
  25. package/dist/adapters/openai.d.cts +99 -0
  26. package/dist/adapters/openai.d.ts +99 -0
  27. package/dist/adapters/openai.js +17 -0
  28. package/dist/adapters/openclaw.cjs +1337 -0
  29. package/dist/adapters/openclaw.d.cts +99 -0
  30. package/dist/adapters/openclaw.d.ts +99 -0
  31. package/dist/adapters/openclaw.js +17 -0
  32. package/dist/add-ROOZLU62.js +314 -0
  33. package/dist/behavioral-MJO34S6Q.js +118 -0
  34. package/dist/bootstrap-CQRZVOXK.js +116 -0
  35. package/dist/bootstrap-emitter-Q7UIJZ2O.js +7 -0
  36. package/dist/bootstrap-parser-EEF36XDU.js +7 -0
  37. package/dist/browser.global.js +941 -0
  38. package/dist/build-ZHPMX5AZ.js +342 -0
  39. package/dist/chunk-3WQLXYTP.js +91 -0
  40. package/dist/chunk-4FLICVVA.js +119 -0
  41. package/dist/chunk-4NGDRRQH.js +10 -0
  42. package/dist/chunk-5TPFNWRU.js +215 -0
  43. package/dist/chunk-5U2MQO5P.js +57 -0
  44. package/dist/chunk-6CZSKEY5.js +164 -0
  45. package/dist/chunk-7P3S7MAY.js +1090 -0
  46. package/dist/chunk-A5W4GNQO.js +130 -0
  47. package/dist/chunk-A7GKPPU7.js +226 -0
  48. package/dist/chunk-AKW5YVCE.js +96 -0
  49. package/dist/chunk-B6OXJLJ5.js +622 -0
  50. package/dist/chunk-BNKJPUPQ.js +113 -0
  51. package/dist/chunk-BQZMOEML.js +43 -0
  52. package/dist/chunk-CNSO6XW5.js +207 -0
  53. package/dist/chunk-CTZHONLA.js +135 -0
  54. package/dist/chunk-D2UCV5AK.js +326 -0
  55. package/dist/chunk-EMQDLDAF.js +458 -0
  56. package/dist/chunk-F66BVUYB.js +340 -0
  57. package/dist/chunk-FMSTRBBS.js +17 -0
  58. package/dist/chunk-G7DJ6VOD.js +101 -0
  59. package/dist/chunk-I3RRAYK2.js +11 -0
  60. package/dist/chunk-INWQHLPS.js +47 -0
  61. package/dist/chunk-IS4WUH6Y.js +363 -0
  62. package/dist/chunk-O5ABKEA7.js +304 -0
  63. package/dist/chunk-OT6PXH54.js +61 -0
  64. package/dist/chunk-PVTQQS3Y.js +186 -0
  65. package/dist/chunk-QLPTHTVB.js +253 -0
  66. package/dist/chunk-QWGCMQQD.js +16 -0
  67. package/dist/chunk-QXBFT7NI.js +201 -0
  68. package/dist/chunk-TG6SEF24.js +246 -0
  69. package/dist/chunk-U6U7EJZL.js +177 -0
  70. package/dist/chunk-VXHSMA3I.js +166 -0
  71. package/dist/chunk-W7LLXRGY.js +830 -0
  72. package/dist/chunk-YEKMVDWK.js +624 -0
  73. package/dist/chunk-ZJTDUCC2.js +194 -0
  74. package/dist/chunk-ZWI3NIXK.js +314 -0
  75. package/dist/cli/neuroverse.cjs +14379 -0
  76. package/dist/cli/neuroverse.d.cts +1 -0
  77. package/dist/cli/neuroverse.d.ts +1 -0
  78. package/dist/cli/neuroverse.js +227 -0
  79. package/dist/cli/plan.cjs +2439 -0
  80. package/dist/cli/plan.d.cts +20 -0
  81. package/dist/cli/plan.d.ts +20 -0
  82. package/dist/cli/plan.js +353 -0
  83. package/dist/cli/run.cjs +2001 -0
  84. package/dist/cli/run.d.cts +20 -0
  85. package/dist/cli/run.d.ts +20 -0
  86. package/dist/cli/run.js +143 -0
  87. package/dist/configure-ai-5MP5DWTT.js +134 -0
  88. package/dist/decision-flow-M63D47LO.js +61 -0
  89. package/dist/demo-G43RLCPK.js +469 -0
  90. package/dist/derive-LMDUTXDD.js +154 -0
  91. package/dist/doctor-6BC6X2VO.js +173 -0
  92. package/dist/equity-penalties-SG5IZQ7I.js +244 -0
  93. package/dist/explain-RHBU2GBR.js +51 -0
  94. package/dist/guard-AEEJNWLD.js +126 -0
  95. package/dist/guard-contract-B7lplwm9.d.cts +837 -0
  96. package/dist/guard-contract-B7lplwm9.d.ts +837 -0
  97. package/dist/guard-engine-PNR6MHCM.js +10 -0
  98. package/dist/impact-3XVDSCBU.js +59 -0
  99. package/dist/improve-TQP4ECSY.js +66 -0
  100. package/dist/index.cjs +7738 -0
  101. package/dist/index.d.cts +2350 -0
  102. package/dist/index.d.ts +2350 -0
  103. package/dist/index.js +479 -0
  104. package/dist/infer-world-IFXCACJ5.js +543 -0
  105. package/dist/init-FYPV4SST.js +144 -0
  106. package/dist/init-world-TI7ARHBT.js +223 -0
  107. package/dist/mcp-server-5Y3ZM7TV.js +13 -0
  108. package/dist/model-adapter-VXEKB4LS.js +11 -0
  109. package/dist/playground-VZBNPPBO.js +560 -0
  110. package/dist/redteam-MZPZD3EF.js +357 -0
  111. package/dist/session-JYOARW54.js +15 -0
  112. package/dist/shared-7RLUHNMU.js +16 -0
  113. package/dist/shared-C_zpdvBm.d.cts +60 -0
  114. package/dist/shared-Cf7yxx4-.d.ts +60 -0
  115. package/dist/simulate-LJXYBC6M.js +83 -0
  116. package/dist/test-BOOR4A5F.js +217 -0
  117. package/dist/trace-PKV4KX56.js +166 -0
  118. package/dist/validate-RALX7CZS.js +81 -0
  119. package/dist/validate-engine-7ZXFVGF2.js +7 -0
  120. package/dist/viz/assets/index-B8SaeJZZ.js +23 -0
  121. package/dist/viz/index.html +23 -0
  122. package/dist/world-BIP4GZBZ.js +376 -0
  123. package/dist/world-loader-Y6HMQH2D.js +13 -0
  124. package/dist/worlds/autoresearch.nv-world.md +230 -0
  125. package/dist/worlds/coding-agent.nv-world.md +211 -0
  126. package/dist/worlds/derivation-world.nv-world.md +278 -0
  127. package/dist/worlds/research-agent.nv-world.md +169 -0
  128. package/dist/worlds/social-media.nv-world.md +198 -0
  129. package/dist/worlds/trading-agent.nv-world.md +218 -0
  130. package/examples/social-media-sim/bridge.py +209 -0
  131. package/examples/social-media-sim/simulation.py +927 -0
  132. package/package.json +16 -3
  133. package/simulate.html +4 -336
@@ -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
- "world_governance": {
12
- "description": "Full governance engine with invariants, guards, roles, kernel rules, and audit trails.",
13
- "input": "GuardEvent JSON",
14
- "output": "ALLOW / BLOCK / PAUSE verdict with trace"
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 a plan markdown file.",
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
- ```javascript
18
- const { evaluateGuard, loadWorld } = require('@neuroverseos/governance');
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
- ```javascript
28
- const { evaluatePlan, parsePlanMarkdown } = require('@neuroverseos/governance');
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
- ```javascript
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
- ```javascript
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
- ```javascript
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
- ```javascript
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
- ```javascript
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
- ```javascript
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
- ```javascript
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
- - 0 = ALLOW / ON_PLAN / SUCCESS
203
- - 1 = BLOCK / OFF_PLAN / FAIL
204
- - 2 = PAUSE / CONSTRAINT_VIOLATED
205
- - 3 = ERROR
206
- - 4 = PLAN_COMPLETE
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