@neuroverseos/governance 0.3.0 → 0.3.1

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 (105) hide show
  1. package/README.md +20 -0
  2. package/package.json +16 -3
  3. package/policies/content-moderation-rules.txt +8 -0
  4. package/policies/marketing-rules.txt +8 -0
  5. package/policies/science-research-rules.txt +11 -0
  6. package/policies/social-media-rules.txt +7 -0
  7. package/policies/strict-rules.txt +8 -0
  8. package/policies/trading-rules.txt +8 -0
  9. package/simulate.html +1899 -0
  10. package/dist/adapters/autoresearch.cjs +0 -196
  11. package/dist/adapters/autoresearch.d.cts +0 -103
  12. package/dist/adapters/autoresearch.d.ts +0 -103
  13. package/dist/adapters/autoresearch.js +0 -7
  14. package/dist/adapters/express.cjs +0 -1114
  15. package/dist/adapters/express.d.cts +0 -66
  16. package/dist/adapters/express.d.ts +0 -66
  17. package/dist/adapters/express.js +0 -12
  18. package/dist/adapters/index.cjs +0 -1669
  19. package/dist/adapters/index.d.cts +0 -6
  20. package/dist/adapters/index.d.ts +0 -6
  21. package/dist/adapters/index.js +0 -46
  22. package/dist/adapters/langchain.cjs +0 -1155
  23. package/dist/adapters/langchain.d.cts +0 -89
  24. package/dist/adapters/langchain.d.ts +0 -89
  25. package/dist/adapters/langchain.js +0 -16
  26. package/dist/adapters/openai.cjs +0 -1185
  27. package/dist/adapters/openai.d.cts +0 -99
  28. package/dist/adapters/openai.d.ts +0 -99
  29. package/dist/adapters/openai.js +0 -16
  30. package/dist/adapters/openclaw.cjs +0 -1177
  31. package/dist/adapters/openclaw.d.cts +0 -99
  32. package/dist/adapters/openclaw.d.ts +0 -99
  33. package/dist/adapters/openclaw.js +0 -16
  34. package/dist/bootstrap-GXVDZNF7.js +0 -114
  35. package/dist/build-P42YFKQV.js +0 -339
  36. package/dist/chunk-2NICNKOM.js +0 -100
  37. package/dist/chunk-2PQU3VAN.js +0 -131
  38. package/dist/chunk-4A7LISES.js +0 -324
  39. package/dist/chunk-4JRYGIO7.js +0 -727
  40. package/dist/chunk-4NGDRRQH.js +0 -10
  41. package/dist/chunk-4QXB6PEO.js +0 -232
  42. package/dist/chunk-6CZSKEY5.js +0 -164
  43. package/dist/chunk-7P3S7MAY.js +0 -1090
  44. package/dist/chunk-A5W4GNQO.js +0 -130
  45. package/dist/chunk-AKW5YVCE.js +0 -96
  46. package/dist/chunk-BUWWN2NX.js +0 -192
  47. package/dist/chunk-COT5XS4V.js +0 -109
  48. package/dist/chunk-ER62HNGF.js +0 -139
  49. package/dist/chunk-FYS2CBUW.js +0 -304
  50. package/dist/chunk-GR6DGCZ2.js +0 -340
  51. package/dist/chunk-I3RRAYK2.js +0 -11
  52. package/dist/chunk-JZPQGIKR.js +0 -79
  53. package/dist/chunk-MWDQ4MJB.js +0 -11
  54. package/dist/chunk-NF5POFCI.js +0 -622
  55. package/dist/chunk-OGL7QXZS.js +0 -608
  56. package/dist/chunk-OT6PXH54.js +0 -61
  57. package/dist/chunk-PDOZHZWL.js +0 -225
  58. package/dist/chunk-Q6O7ZLO2.js +0 -62
  59. package/dist/chunk-QPASI2BR.js +0 -187
  60. package/dist/chunk-T5EUJQE5.js +0 -172
  61. package/dist/chunk-XPDMYECO.js +0 -642
  62. package/dist/chunk-YZFATT7X.js +0 -9
  63. package/dist/cli/neuroverse.cjs +0 -11448
  64. package/dist/cli/neuroverse.d.cts +0 -1
  65. package/dist/cli/neuroverse.d.ts +0 -1
  66. package/dist/cli/neuroverse.js +0 -196
  67. package/dist/cli/plan.cjs +0 -1599
  68. package/dist/cli/plan.d.cts +0 -20
  69. package/dist/cli/plan.d.ts +0 -20
  70. package/dist/cli/plan.js +0 -361
  71. package/dist/cli/run.cjs +0 -1746
  72. package/dist/cli/run.d.cts +0 -20
  73. package/dist/cli/run.d.ts +0 -20
  74. package/dist/cli/run.js +0 -143
  75. package/dist/configure-ai-TK67ZWZL.js +0 -132
  76. package/dist/derive-TLIV4OOU.js +0 -152
  77. package/dist/doctor-XPDLEYXN.js +0 -171
  78. package/dist/explain-IDCRWMPX.js +0 -70
  79. package/dist/guard-RV65TT4L.js +0 -96
  80. package/dist/guard-contract-WZx__PmU.d.cts +0 -709
  81. package/dist/guard-contract-WZx__PmU.d.ts +0 -709
  82. package/dist/guard-engine-JLTUARGU.js +0 -10
  83. package/dist/impact-XPECYRLH.js +0 -59
  84. package/dist/improve-GPUBKTEA.js +0 -85
  85. package/dist/index.cjs +0 -6273
  86. package/dist/index.d.cts +0 -1616
  87. package/dist/index.d.ts +0 -1616
  88. package/dist/index.js +0 -379
  89. package/dist/infer-world-7GVZWFX4.js +0 -543
  90. package/dist/init-PKPIYHYE.js +0 -144
  91. package/dist/init-world-VWMQZQC7.js +0 -223
  92. package/dist/mcp-server-FPVSU32Z.js +0 -13
  93. package/dist/model-adapter-BB7G4MFI.js +0 -11
  94. package/dist/playground-E664U4T6.js +0 -550
  95. package/dist/redteam-Z7WREJ44.js +0 -357
  96. package/dist/session-EKTRSR7C.js +0 -14
  97. package/dist/simulate-VDOYQFRO.js +0 -108
  98. package/dist/test-OGXJK4QU.js +0 -217
  99. package/dist/trace-JVF67VR3.js +0 -166
  100. package/dist/validate-LLBWVPGV.js +0 -81
  101. package/dist/validate-engine-UIABSIHD.js +0 -7
  102. package/dist/world-LAXO6DOX.js +0 -378
  103. package/dist/world-loader-HMPTOEA2.js +0 -9
  104. package/dist/worlds/autoresearch.nv-world.md +0 -230
  105. package/dist/worlds/derivation-world.nv-world.md +0 -278
@@ -1,20 +0,0 @@
1
- /**
2
- * neuroverse plan — Plan Enforcement CLI
3
- *
4
- * Subcommands:
5
- * compile Parse plan markdown into plan.json
6
- * check Check an action against a plan (stdin → stdout)
7
- * status Show plan progress
8
- * advance Mark a step as completed
9
- * derive Generate a full world from a plan
10
- *
11
- * Usage:
12
- * neuroverse plan compile <plan.md> [--output plan.json]
13
- * echo '{"intent":"..."}' | neuroverse plan check --plan plan.json [--world ./world/]
14
- * neuroverse plan status --plan plan.json
15
- * neuroverse plan advance <step_id> --plan plan.json
16
- * neuroverse plan derive <plan.md> [--output ./world/]
17
- */
18
- declare function main(args: string[]): Promise<void>;
19
-
20
- export { main };
@@ -1,20 +0,0 @@
1
- /**
2
- * neuroverse plan — Plan Enforcement CLI
3
- *
4
- * Subcommands:
5
- * compile Parse plan markdown into plan.json
6
- * check Check an action against a plan (stdin → stdout)
7
- * status Show plan progress
8
- * advance Mark a step as completed
9
- * derive Generate a full world from a plan
10
- *
11
- * Usage:
12
- * neuroverse plan compile <plan.md> [--output plan.json]
13
- * echo '{"intent":"..."}' | neuroverse plan check --plan plan.json [--world ./world/]
14
- * neuroverse plan status --plan plan.json
15
- * neuroverse plan advance <step_id> --plan plan.json
16
- * neuroverse plan derive <plan.md> [--output ./world/]
17
- */
18
- declare function main(args: string[]): Promise<void>;
19
-
20
- export { main };
package/dist/cli/plan.js DELETED
@@ -1,361 +0,0 @@
1
- import {
2
- PLAN_EXIT_CODES,
3
- parsePlanMarkdown
4
- } from "../chunk-6CZSKEY5.js";
5
- import {
6
- advancePlan,
7
- evaluatePlan,
8
- getPlanProgress
9
- } from "../chunk-4QXB6PEO.js";
10
- import "../chunk-YZFATT7X.js";
11
-
12
- // src/cli/plan.ts
13
- import { readFileSync, writeFileSync } from "fs";
14
- function parseArg(args, flag) {
15
- const idx = args.indexOf(flag);
16
- return idx >= 0 && idx + 1 < args.length ? args[idx + 1] : void 0;
17
- }
18
- function readStdin() {
19
- return new Promise((resolve, reject) => {
20
- let data = "";
21
- process.stdin.setEncoding("utf-8");
22
- process.stdin.on("data", (chunk) => {
23
- data += chunk;
24
- });
25
- process.stdin.on("end", () => resolve(data));
26
- process.stdin.on("error", reject);
27
- });
28
- }
29
- async function compileCommand(args) {
30
- const inputPath = args.find((a) => !a.startsWith("--"));
31
- if (!inputPath) {
32
- process.stderr.write("Usage: neuroverse plan compile <plan.md> [--output plan.json]\n");
33
- process.exit(PLAN_EXIT_CODES.ERROR);
34
- return;
35
- }
36
- const outputPath = parseArg(args, "--output") ?? inputPath.replace(/\.md$/, ".json");
37
- let markdown;
38
- try {
39
- markdown = readFileSync(inputPath, "utf-8");
40
- } catch (err) {
41
- process.stderr.write(`Error reading ${inputPath}: ${err}
42
- `);
43
- process.exit(PLAN_EXIT_CODES.ERROR);
44
- return;
45
- }
46
- const result = parsePlanMarkdown(markdown);
47
- if (!result.success || !result.plan) {
48
- process.stderr.write(`Parse errors:
49
- `);
50
- for (const error of result.errors) {
51
- process.stderr.write(` - ${error}
52
- `);
53
- }
54
- process.exit(PLAN_EXIT_CODES.ERROR);
55
- return;
56
- }
57
- writeFileSync(outputPath, JSON.stringify(result.plan, null, 2) + "\n");
58
- const plan = result.plan;
59
- process.stdout.write(`Plan compiled: ${plan.plan_id}
60
- `);
61
- process.stdout.write(` Objective: ${plan.objective}
62
- `);
63
- process.stdout.write(` Steps: ${plan.steps.length}
64
- `);
65
- process.stdout.write(` Constraints: ${plan.constraints.length}
66
- `);
67
- process.stdout.write(` Sequential: ${plan.sequential}
68
- `);
69
- process.stdout.write(` Completion: ${plan.completion}
70
- `);
71
- if (plan.world_id) process.stdout.write(` World: ${plan.world_id}
72
- `);
73
- if (plan.expires_at) process.stdout.write(` Expires: ${plan.expires_at}
74
- `);
75
- process.stdout.write(` Output: ${outputPath}
76
- `);
77
- }
78
- async function checkCommand(args) {
79
- const planPath = parseArg(args, "--plan");
80
- if (!planPath) {
81
- process.stderr.write(`Usage: echo '{"intent":"..."}' | neuroverse plan check --plan plan.json
82
- `);
83
- process.exit(PLAN_EXIT_CODES.ERROR);
84
- return;
85
- }
86
- let plan;
87
- try {
88
- plan = JSON.parse(readFileSync(planPath, "utf-8"));
89
- } catch (err) {
90
- process.stderr.write(`Error reading plan: ${err}
91
- `);
92
- process.exit(PLAN_EXIT_CODES.ERROR);
93
- return;
94
- }
95
- const stdinData = await readStdin();
96
- let event;
97
- try {
98
- event = JSON.parse(stdinData);
99
- } catch {
100
- process.stderr.write('Error: stdin must be valid JSON with an "intent" field.\n');
101
- process.exit(PLAN_EXIT_CODES.ERROR);
102
- return;
103
- }
104
- if (!event.intent) {
105
- process.stderr.write('Error: event must have an "intent" field.\n');
106
- process.exit(PLAN_EXIT_CODES.ERROR);
107
- return;
108
- }
109
- const worldPath = parseArg(args, "--world");
110
- if (worldPath) {
111
- const { loadWorld } = await import("../world-loader-HMPTOEA2.js");
112
- const { evaluateGuard } = await import("../guard-engine-JLTUARGU.js");
113
- const world = await loadWorld(worldPath);
114
- const verdict2 = evaluateGuard(event, world, { plan });
115
- process.stdout.write(JSON.stringify(verdict2, null, 2) + "\n");
116
- const exitCode2 = verdict2.status === "ALLOW" ? 0 : verdict2.status === "BLOCK" ? 1 : 2;
117
- process.exit(exitCode2);
118
- return;
119
- }
120
- const verdict = evaluatePlan(event, plan);
121
- process.stdout.write(JSON.stringify(verdict, null, 2) + "\n");
122
- const exitCode = PLAN_EXIT_CODES[verdict.status] ?? PLAN_EXIT_CODES.ERROR;
123
- process.exit(exitCode);
124
- }
125
- async function statusCommand(args) {
126
- const planPath = parseArg(args, "--plan");
127
- if (!planPath) {
128
- process.stderr.write("Usage: neuroverse plan status --plan plan.json\n");
129
- process.exit(PLAN_EXIT_CODES.ERROR);
130
- return;
131
- }
132
- let plan;
133
- try {
134
- plan = JSON.parse(readFileSync(planPath, "utf-8"));
135
- } catch (err) {
136
- process.stderr.write(`Error reading plan: ${err}
137
- `);
138
- process.exit(PLAN_EXIT_CODES.ERROR);
139
- return;
140
- }
141
- const progress = getPlanProgress(plan);
142
- process.stdout.write(`Plan: ${plan.plan_id}
143
- `);
144
- process.stdout.write(`Objective: ${plan.objective}
145
- `);
146
- process.stdout.write(`Completion: ${plan.completion ?? "trust"}
147
- `);
148
- process.stdout.write(`Progress: ${progress.completed}/${progress.total} (${progress.percentage}%)
149
- `);
150
- process.stdout.write(`
151
- Steps:
152
- `);
153
- for (const step of plan.steps) {
154
- const status = step.status === "completed" ? "[x]" : step.status === "active" ? "[>]" : step.status === "skipped" ? "[-]" : "[ ]";
155
- let line = ` ${status} ${step.label}`;
156
- if (step.tags?.length) line += ` [tag: ${step.tags.join(", ")}]`;
157
- if (step.verify) line += ` [verify: ${step.verify}]`;
158
- if (step.requires?.length) line += ` (after: ${step.requires.join(", ")})`;
159
- process.stdout.write(line + "\n");
160
- }
161
- if (plan.constraints.length > 0) {
162
- process.stdout.write(`
163
- Constraints:
164
- `);
165
- for (const c of plan.constraints) {
166
- process.stdout.write(` - ${c.description} [${c.type}/${c.enforcement}]
167
- `);
168
- }
169
- }
170
- }
171
- async function advanceCommand(args) {
172
- const stepId = args.find((a) => !a.startsWith("--"));
173
- const planPath = parseArg(args, "--plan");
174
- if (!stepId || !planPath) {
175
- process.stderr.write("Usage: neuroverse plan advance <step_id> --plan plan.json [--evidence <type> --proof <proof>]\n");
176
- process.exit(PLAN_EXIT_CODES.ERROR);
177
- return;
178
- }
179
- let plan;
180
- try {
181
- plan = JSON.parse(readFileSync(planPath, "utf-8"));
182
- } catch (err) {
183
- process.stderr.write(`Error reading plan: ${err}
184
- `);
185
- process.exit(PLAN_EXIT_CODES.ERROR);
186
- return;
187
- }
188
- const evidenceType = parseArg(args, "--evidence");
189
- const evidenceProof = parseArg(args, "--proof");
190
- let evidence;
191
- if (evidenceType && evidenceProof) {
192
- evidence = {
193
- type: evidenceType,
194
- proof: evidenceProof,
195
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
196
- };
197
- } else if (evidenceType || evidenceProof) {
198
- process.stderr.write("Error: --evidence and --proof must both be provided.\n");
199
- process.exit(PLAN_EXIT_CODES.ERROR);
200
- return;
201
- }
202
- const result = advancePlan(plan, stepId, evidence);
203
- if (!result.success) {
204
- process.stderr.write(`Error: ${result.reason}
205
- `);
206
- process.exit(PLAN_EXIT_CODES.ERROR);
207
- return;
208
- }
209
- writeFileSync(planPath, JSON.stringify(result.plan, null, 2) + "\n");
210
- const progress = getPlanProgress(result.plan);
211
- const step = plan.steps.find((s) => s.id === stepId);
212
- process.stdout.write(`Step completed: ${step.label}
213
- `);
214
- if (result.evidence) {
215
- process.stdout.write(`Evidence: ${result.evidence.type} = ${result.evidence.proof}
216
- `);
217
- }
218
- process.stdout.write(`Progress: ${progress.completed}/${progress.total} (${progress.percentage}%)
219
- `);
220
- if (progress.completed === progress.total) {
221
- process.stdout.write(`
222
- Plan complete!
223
- `);
224
- }
225
- }
226
- async function deriveCommand(args) {
227
- const inputPath = args.find((a) => !a.startsWith("--"));
228
- if (!inputPath) {
229
- process.stderr.write("Usage: neuroverse plan derive <plan.md> [--output ./world/]\n");
230
- process.exit(PLAN_EXIT_CODES.ERROR);
231
- return;
232
- }
233
- const outputDir = parseArg(args, "--output") ?? "./derived-world/";
234
- let markdown;
235
- try {
236
- markdown = readFileSync(inputPath, "utf-8");
237
- } catch (err) {
238
- process.stderr.write(`Error reading ${inputPath}: ${err}
239
- `);
240
- process.exit(PLAN_EXIT_CODES.ERROR);
241
- return;
242
- }
243
- const result = parsePlanMarkdown(markdown);
244
- if (!result.success || !result.plan) {
245
- process.stderr.write(`Parse errors:
246
- `);
247
- for (const error of result.errors) {
248
- process.stderr.write(` - ${error}
249
- `);
250
- }
251
- process.exit(PLAN_EXIT_CODES.ERROR);
252
- return;
253
- }
254
- const plan = result.plan;
255
- const { mkdirSync } = await import("fs");
256
- mkdirSync(outputDir, { recursive: true });
257
- const worldJson = {
258
- world_id: `plan_${plan.plan_id}`,
259
- name: `Derived: ${plan.objective}`,
260
- thesis: plan.objective,
261
- version: "1.0.0",
262
- runtime_mode: "COMPLIANCE",
263
- default_assumption_profile: "default",
264
- default_alternative_profile: "default",
265
- modules: ["governance"],
266
- players: { thinking_space: true, experience_space: false, action_space: true }
267
- };
268
- const invariants = plan.constraints.map((c, i) => ({
269
- id: `inv_${c.id}`,
270
- label: c.description,
271
- type: "structural",
272
- enforcement: c.enforcement === "block" ? "hard" : "soft"
273
- }));
274
- const guards = {
275
- intent_vocabulary: {},
276
- guards: plan.steps.map((step) => {
277
- const patternKey = `plan_step_${step.id}`;
278
- return {
279
- id: `guard_${step.id}`,
280
- label: `Plan step: ${step.label}`,
281
- description: `Governs execution of plan step: ${step.label}`,
282
- category: "operational",
283
- enforcement: "warn",
284
- intent_patterns: [patternKey],
285
- appliesTo: step.tools ?? [],
286
- default_enabled: true,
287
- immutable: false
288
- };
289
- })
290
- };
291
- for (const step of plan.steps) {
292
- const keywords = step.label.toLowerCase().split(/\s+/).filter((w) => w.length > 3);
293
- const pattern = keywords.map((k) => `(?=.*${k})`).join("") + ".*";
294
- guards.intent_vocabulary[`plan_step_${step.id}`] = {
295
- pattern,
296
- description: step.label
297
- };
298
- }
299
- writeFileSync(`${outputDir}/world.json`, JSON.stringify(worldJson, null, 2) + "\n");
300
- writeFileSync(`${outputDir}/invariants.json`, JSON.stringify(invariants, null, 2) + "\n");
301
- writeFileSync(`${outputDir}/guards.json`, JSON.stringify(guards, null, 2) + "\n");
302
- process.stdout.write(`World derived from plan: ${plan.plan_id}
303
- `);
304
- process.stdout.write(` Output: ${outputDir}
305
- `);
306
- process.stdout.write(` Files: world.json, invariants.json, guards.json
307
- `);
308
- process.stdout.write(` Guards: ${plan.steps.length} (one per step)
309
- `);
310
- process.stdout.write(` Invariants: ${plan.constraints.length} (one per constraint)
311
- `);
312
- }
313
- var PLAN_USAGE = `
314
- neuroverse plan \u2014 Plan enforcement for AI agents.
315
-
316
- Subcommands:
317
- compile Parse plan markdown into plan.json
318
- check Check an action against a plan (stdin \u2192 stdout)
319
- status Show plan progress
320
- advance Mark a step as completed
321
- derive Generate a full world from a plan
322
-
323
- Usage:
324
- neuroverse plan compile <plan.md> [--output plan.json]
325
- echo '{"intent":"..."}' | neuroverse plan check --plan plan.json [--world ./world/]
326
- neuroverse plan status --plan plan.json
327
- neuroverse plan advance <step_id> --plan plan.json
328
- neuroverse plan derive <plan.md> [--output ./world/]
329
- `.trim();
330
- async function main(args) {
331
- const subcommand = args[0];
332
- const subArgs = args.slice(1);
333
- switch (subcommand) {
334
- case "compile":
335
- return compileCommand(subArgs);
336
- case "check":
337
- return checkCommand(subArgs);
338
- case "status":
339
- return statusCommand(subArgs);
340
- case "advance":
341
- return advanceCommand(subArgs);
342
- case "derive":
343
- return deriveCommand(subArgs);
344
- case "--help":
345
- case "-h":
346
- case "help":
347
- case void 0:
348
- process.stdout.write(PLAN_USAGE + "\n");
349
- process.exit(0);
350
- break;
351
- default:
352
- process.stderr.write(`Unknown plan subcommand: "${subcommand}"
353
-
354
- `);
355
- process.stdout.write(PLAN_USAGE + "\n");
356
- process.exit(1);
357
- }
358
- }
359
- export {
360
- main
361
- };