@neuroverseos/governance 0.4.0 → 0.4.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/dist/adapters/autoresearch.d.cts +2 -1
  2. package/dist/adapters/autoresearch.d.ts +2 -1
  3. package/dist/adapters/autoresearch.js +2 -2
  4. package/dist/adapters/deep-agents.d.cts +3 -2
  5. package/dist/adapters/deep-agents.d.ts +3 -2
  6. package/dist/adapters/deep-agents.js +2 -2
  7. package/dist/adapters/express.d.cts +2 -1
  8. package/dist/adapters/express.d.ts +2 -1
  9. package/dist/adapters/express.js +2 -2
  10. package/dist/adapters/index.cjs +66 -1
  11. package/dist/adapters/index.d.cts +4 -278
  12. package/dist/adapters/index.d.ts +4 -278
  13. package/dist/adapters/index.js +33 -33
  14. package/dist/adapters/langchain.d.cts +3 -2
  15. package/dist/adapters/langchain.d.ts +3 -2
  16. package/dist/adapters/langchain.js +2 -2
  17. package/dist/adapters/mentraos.cjs +2181 -0
  18. package/dist/adapters/mentraos.d.cts +319 -0
  19. package/dist/adapters/mentraos.d.ts +319 -0
  20. package/dist/{mentraos-YFS7FMJH.js → adapters/mentraos.js} +6 -6
  21. package/dist/adapters/openai.d.cts +3 -2
  22. package/dist/adapters/openai.d.ts +3 -2
  23. package/dist/adapters/openai.js +2 -2
  24. package/dist/adapters/openclaw.d.cts +3 -2
  25. package/dist/adapters/openclaw.d.ts +3 -2
  26. package/dist/adapters/openclaw.js +2 -2
  27. package/dist/{add-LYHDZ5RL.js → add-XSANI3FK.js} +1 -1
  28. package/dist/bootstrap-contract-DcV6t-8M.d.cts +216 -0
  29. package/dist/bootstrap-contract-DcV6t-8M.d.ts +216 -0
  30. package/dist/{build-THUEYMVT.js → build-EGBGZFIJ.js} +5 -5
  31. package/dist/{chunk-MFKHTE5R.js → chunk-3AYKQHYI.js} +1 -1
  32. package/dist/chunk-3S5AD4AB.js +421 -0
  33. package/dist/{chunk-V4FZHJQX.js → chunk-A7SHG75T.js} +1 -1
  34. package/dist/{chunk-JKGPSFGH.js → chunk-AV7XJJWK.js} +1 -1
  35. package/dist/{chunk-Y6WXAPKY.js → chunk-DA5MHFRR.js} +1 -1
  36. package/dist/{chunk-7D7PZLB7.js → chunk-FS2UUJJO.js} +3 -3
  37. package/dist/{chunk-TD5GKIHP.js → chunk-FVOGUCB6.js} +1 -1
  38. package/dist/{chunk-APU4OZIP.js → chunk-GTPV2XGO.js} +67 -2
  39. package/dist/{chunk-BXLTEUS4.js → chunk-I4RTIMLX.js} +2 -2
  40. package/dist/{chunk-5JUZ4HL7.js → chunk-J2IZBHXJ.js} +3 -3
  41. package/dist/{chunk-YNYCQECH.js → chunk-QMVQ6KPL.js} +1 -1
  42. package/dist/{chunk-25XHSTPT.js → chunk-RDA7ISWC.js} +1 -1
  43. package/dist/{chunk-DWHUZUEY.js → chunk-YJ34R5NB.js} +1 -1
  44. package/dist/{chunk-UTH7OXTM.js → chunk-ZEIT2QLM.js} +3 -3
  45. package/dist/cli/neuroverse.cjs +580 -28
  46. package/dist/cli/neuroverse.js +21 -21
  47. package/dist/cli/plan.js +2 -2
  48. package/dist/cli/run.js +2 -2
  49. package/dist/{demo-66MMJTEH.js → demo-6OQYWRR6.js} +3 -3
  50. package/dist/{derive-5LOMN7GO.js → derive-7Y7YWVLU.js} +4 -4
  51. package/dist/{doctor-WIO4FLA3.js → doctor-NHXI7OQW.js} +3 -2
  52. package/dist/engine/bootstrap-emitter.cjs +241 -0
  53. package/dist/engine/bootstrap-emitter.d.cts +27 -0
  54. package/dist/engine/bootstrap-emitter.d.ts +27 -0
  55. package/dist/{bootstrap-emitter-GIMOJFOC.js → engine/bootstrap-emitter.js} +2 -2
  56. package/dist/engine/bootstrap-parser.cjs +560 -0
  57. package/dist/engine/bootstrap-parser.d.cts +96 -0
  58. package/dist/engine/bootstrap-parser.d.ts +96 -0
  59. package/dist/{bootstrap-parser-LBLGVEMU.js → engine/bootstrap-parser.js} +2 -2
  60. package/dist/engine/guard-engine.cjs +1116 -0
  61. package/dist/engine/guard-engine.d.cts +60 -0
  62. package/dist/engine/guard-engine.d.ts +60 -0
  63. package/dist/{guard-engine-N7TUIUU7.js → engine/guard-engine.js} +3 -3
  64. package/dist/engine/simulate-engine.cjs +390 -0
  65. package/dist/engine/simulate-engine.d.cts +105 -0
  66. package/dist/engine/simulate-engine.d.ts +105 -0
  67. package/dist/engine/simulate-engine.js +9 -0
  68. package/dist/{equity-penalties-WWC7UDQD.js → equity-penalties-NVBAB5WL.js} +2 -2
  69. package/dist/{explain-MUSGDT67.js → explain-HDFN4ION.js} +1 -1
  70. package/dist/github-TIKTWOGU.js +27 -0
  71. package/dist/{guard-W3BMQPBJ.js → guard-6KSCWT2W.js} +2 -2
  72. package/dist/{guard-contract-CLBbTGK_.d.cts → guard-contract-C991HDZp.d.cts} +2 -369
  73. package/dist/{guard-contract-CLBbTGK_.d.ts → guard-contract-hHjTTjtR.d.ts} +2 -369
  74. package/dist/{improve-PJDAWW4Q.js → improve-2PWGGO5B.js} +3 -3
  75. package/dist/index.cjs +452 -0
  76. package/dist/index.d.cts +231 -492
  77. package/dist/index.d.ts +231 -492
  78. package/dist/index.js +76 -55
  79. package/dist/{lens-IP6GIZ2Q.js → lens-MHMUDCMQ.js} +92 -25
  80. package/dist/{mcp-server-OG3PPVD2.js → mcp-server-TNIWZ7B5.js} +2 -2
  81. package/dist/{playground-4BK2XQ47.js → playground-3FLDGBET.js} +2 -2
  82. package/dist/{redteam-BRZALBPP.js → redteam-HV6LMKEH.js} +2 -2
  83. package/dist/{session-SGRUT2UH.js → session-XZP2754M.js} +2 -2
  84. package/dist/{shared-BGzmYP5g.d.cts → shared-DGnn1jiS.d.cts} +1 -1
  85. package/dist/{shared-CwGpPheR.d.ts → shared-U405h52W.d.ts} +1 -1
  86. package/dist/{simulate-FGXKIH7V.js → simulate-VT437EEL.js} +2 -2
  87. package/dist/spatial/index.cjs +682 -0
  88. package/dist/spatial/index.d.cts +517 -0
  89. package/dist/spatial/index.d.ts +517 -0
  90. package/dist/spatial/index.js +633 -0
  91. package/dist/{test-PT44BSYG.js → test-4WTX6RKQ.js} +2 -2
  92. package/dist/types.cjs +18 -0
  93. package/dist/types.d.cts +370 -0
  94. package/dist/types.d.ts +370 -0
  95. package/dist/types.js +0 -0
  96. package/dist/{validate-Q5O5TGLT.js → validate-M52DX22Y.js} +1 -1
  97. package/dist/{world-V52ZMH26.js → world-O4HTQPDP.js} +1 -1
  98. package/dist/{world-loader-C4D3VPP3.js → world-loader-YTYFOP7D.js} +1 -1
  99. package/dist/worlds/mentraos-spatial.nv-world.md +68 -0
  100. package/package.json +46 -3
  101. package/dist/{behavioral-SPWPGYXL.js → behavioral-SLW7ALEK.js} +3 -3
  102. package/dist/{bootstrap-IP5QMC3Q.js → bootstrap-2OW5ZLBL.js} +3 -3
  103. package/dist/{chunk-7QIAF377.js → chunk-CYDMUJVZ.js} +0 -0
  104. package/dist/{chunk-QZ666FCV.js → chunk-FHXXD2TI.js} +6 -6
  105. package/dist/{configure-ai-5MP5DWTT.js → configure-ai-LL3VAPQW.js} +3 -3
@@ -100,23 +100,23 @@ async function main() {
100
100
  const subArgs = args.slice(1);
101
101
  switch (command) {
102
102
  case "add": {
103
- const { main: addMain } = await import("../add-LYHDZ5RL.js");
103
+ const { main: addMain } = await import("../add-XSANI3FK.js");
104
104
  return addMain(subArgs);
105
105
  }
106
106
  case "build": {
107
- const { main: buildMain } = await import("../build-THUEYMVT.js");
107
+ const { main: buildMain } = await import("../build-EGBGZFIJ.js");
108
108
  return buildMain(subArgs);
109
109
  }
110
110
  case "explain": {
111
- const { main: explainMain } = await import("../explain-MUSGDT67.js");
111
+ const { main: explainMain } = await import("../explain-HDFN4ION.js");
112
112
  return explainMain(subArgs);
113
113
  }
114
114
  case "simulate": {
115
- const { main: simulateMain } = await import("../simulate-FGXKIH7V.js");
115
+ const { main: simulateMain } = await import("../simulate-VT437EEL.js");
116
116
  return simulateMain(subArgs);
117
117
  }
118
118
  case "improve": {
119
- const { main: improveMain } = await import("../improve-PJDAWW4Q.js");
119
+ const { main: improveMain } = await import("../improve-2PWGGO5B.js");
120
120
  return improveMain(subArgs);
121
121
  }
122
122
  case "init": {
@@ -132,35 +132,35 @@ async function main() {
132
132
  return inferWorldMain(subArgs);
133
133
  }
134
134
  case "bootstrap": {
135
- const { main: bootstrapMain } = await import("../bootstrap-IP5QMC3Q.js");
135
+ const { main: bootstrapMain } = await import("../bootstrap-2OW5ZLBL.js");
136
136
  return bootstrapMain(subArgs);
137
137
  }
138
138
  case "validate": {
139
- const { main: validateMain } = await import("../validate-Q5O5TGLT.js");
139
+ const { main: validateMain } = await import("../validate-M52DX22Y.js");
140
140
  return validateMain(subArgs);
141
141
  }
142
142
  case "guard": {
143
- const { main: guardMain } = await import("../guard-W3BMQPBJ.js");
143
+ const { main: guardMain } = await import("../guard-6KSCWT2W.js");
144
144
  return guardMain(subArgs);
145
145
  }
146
146
  case "test": {
147
- const { main: testMain } = await import("../test-PT44BSYG.js");
147
+ const { main: testMain } = await import("../test-4WTX6RKQ.js");
148
148
  return testMain(subArgs);
149
149
  }
150
150
  case "redteam": {
151
- const { main: redteamMain } = await import("../redteam-BRZALBPP.js");
151
+ const { main: redteamMain } = await import("../redteam-HV6LMKEH.js");
152
152
  return redteamMain(subArgs);
153
153
  }
154
154
  case "demo": {
155
- const { main: demoMain } = await import("../demo-66MMJTEH.js");
155
+ const { main: demoMain } = await import("../demo-6OQYWRR6.js");
156
156
  return demoMain(subArgs);
157
157
  }
158
158
  case "doctor": {
159
- const { main: doctorMain } = await import("../doctor-WIO4FLA3.js");
159
+ const { main: doctorMain } = await import("../doctor-NHXI7OQW.js");
160
160
  return doctorMain(subArgs);
161
161
  }
162
162
  case "playground": {
163
- const { main: playgroundMain } = await import("../playground-4BK2XQ47.js");
163
+ const { main: playgroundMain } = await import("../playground-3FLDGBET.js");
164
164
  return playgroundMain(subArgs);
165
165
  }
166
166
  case "plan": {
@@ -172,11 +172,11 @@ async function main() {
172
172
  return runMain(subArgs);
173
173
  }
174
174
  case "mcp": {
175
- const { startMcpServer } = await import("../mcp-server-OG3PPVD2.js");
175
+ const { startMcpServer } = await import("../mcp-server-TNIWZ7B5.js");
176
176
  return startMcpServer(subArgs);
177
177
  }
178
178
  case "worlds": {
179
- const { main: worldMain } = await import("../world-V52ZMH26.js");
179
+ const { main: worldMain } = await import("../world-O4HTQPDP.js");
180
180
  return worldMain(["list", ...subArgs]);
181
181
  }
182
182
  case "trace": {
@@ -188,15 +188,15 @@ async function main() {
188
188
  return impactMain(subArgs);
189
189
  }
190
190
  case "behavioral": {
191
- const { main: behavioralMain } = await import("../behavioral-SPWPGYXL.js");
191
+ const { main: behavioralMain } = await import("../behavioral-SLW7ALEK.js");
192
192
  return behavioralMain(subArgs);
193
193
  }
194
194
  case "world": {
195
- const { main: worldMain } = await import("../world-V52ZMH26.js");
195
+ const { main: worldMain } = await import("../world-O4HTQPDP.js");
196
196
  return worldMain(subArgs);
197
197
  }
198
198
  case "derive": {
199
- const { main: deriveMain } = await import("../derive-5LOMN7GO.js");
199
+ const { main: deriveMain } = await import("../derive-7Y7YWVLU.js");
200
200
  return deriveMain(subArgs);
201
201
  }
202
202
  case "decision-flow": {
@@ -204,11 +204,11 @@ async function main() {
204
204
  return decisionFlowMain(subArgs);
205
205
  }
206
206
  case "equity-penalties": {
207
- const { main: equityPenaltiesMain } = await import("../equity-penalties-WWC7UDQD.js");
207
+ const { main: equityPenaltiesMain } = await import("../equity-penalties-NVBAB5WL.js");
208
208
  return equityPenaltiesMain(subArgs);
209
209
  }
210
210
  case "configure-ai": {
211
- const { main: configureAiMain } = await import("../configure-ai-5MP5DWTT.js");
211
+ const { main: configureAiMain } = await import("../configure-ai-LL3VAPQW.js");
212
212
  return configureAiMain(subArgs);
213
213
  }
214
214
  case "configure-world": {
@@ -216,7 +216,7 @@ async function main() {
216
216
  return configureWorldMain(subArgs);
217
217
  }
218
218
  case "lens": {
219
- const { main: lensMain } = await import("../lens-IP6GIZ2Q.js");
219
+ const { main: lensMain } = await import("../lens-MHMUDCMQ.js");
220
220
  return lensMain(subArgs);
221
221
  }
222
222
  case "--help":
package/dist/cli/plan.js CHANGED
@@ -100,8 +100,8 @@ async function checkCommand(args) {
100
100
  }
101
101
  const worldPath = parseArg(args, "--world");
102
102
  if (worldPath) {
103
- const { loadWorld } = await import("../world-loader-C4D3VPP3.js");
104
- const { evaluateGuard } = await import("../guard-engine-N7TUIUU7.js");
103
+ const { loadWorld } = await import("../world-loader-YTYFOP7D.js");
104
+ const { evaluateGuard } = await import("../engine/guard-engine.js");
105
105
  const world = await loadWorld(worldPath);
106
106
  const verdict2 = evaluateGuard(event, world, { plan });
107
107
  process.stdout.write(JSON.stringify(verdict2, null, 2) + "\n");
package/dist/cli/run.js CHANGED
@@ -92,7 +92,7 @@ async function main(args) {
92
92
  return;
93
93
  }
94
94
  const { resolveProvider, ModelAdapter } = await import("../model-adapter-VXEKB4LS.js");
95
- const { runInteractiveMode } = await import("../session-SGRUT2UH.js");
95
+ const { runInteractiveMode } = await import("../session-XZP2754M.js");
96
96
  const modelConfig = resolveProvider(providerName, {
97
97
  model: parseArg(args, "--model"),
98
98
  apiKey: parseArg(args, "--api-key")
@@ -126,7 +126,7 @@ async function main(args) {
126
126
  model
127
127
  );
128
128
  } else if (isPipeMode) {
129
- const { runPipeMode } = await import("../session-SGRUT2UH.js");
129
+ const { runPipeMode } = await import("../session-XZP2754M.js");
130
130
  await runPipeMode({
131
131
  worldPath,
132
132
  plan,
@@ -6,7 +6,7 @@ import {
6
6
  handleListPresets,
7
7
  handleReasonRequest,
8
8
  writeTempWorld
9
- } from "./chunk-JKGPSFGH.js";
9
+ } from "./chunk-AV7XJJWK.js";
10
10
  import {
11
11
  adaptationFromVerdict,
12
12
  detectBehavioralPatterns,
@@ -16,12 +16,12 @@ import {
16
16
  resolveWorldPath
17
17
  } from "./chunk-AKW5YVCE.js";
18
18
  import "./chunk-ZAF6JH23.js";
19
- import "./chunk-QLPTHTVB.js";
20
19
  import {
21
20
  DEFAULT_BUNDLED_WORLD,
22
21
  loadBundledWorld,
23
22
  loadWorld
24
- } from "./chunk-BXLTEUS4.js";
23
+ } from "./chunk-I4RTIMLX.js";
24
+ import "./chunk-QLPTHTVB.js";
25
25
  import {
26
26
  __require
27
27
  } from "./chunk-QWGCMQQD.js";
@@ -2,15 +2,15 @@ import {
2
2
  DeriveInputError,
3
3
  DeriveProviderError,
4
4
  deriveWorld
5
- } from "./chunk-QZ666FCV.js";
5
+ } from "./chunk-FHXXD2TI.js";
6
6
  import {
7
7
  DERIVE_EXIT_CODES
8
8
  } from "./chunk-FMSTRBBS.js";
9
- import "./chunk-OT6PXH54.js";
10
9
  import "./chunk-INWQHLPS.js";
10
+ import "./chunk-OT6PXH54.js";
11
11
  import "./chunk-7P3S7MAY.js";
12
- import "./chunk-3NZMMSOW.js";
13
12
  import "./chunk-YPCVY4GS.js";
13
+ import "./chunk-3NZMMSOW.js";
14
14
  import "./chunk-QWGCMQQD.js";
15
15
 
16
16
  // src/cli/derive.ts
@@ -121,7 +121,7 @@ Normalization: ${n.fixCount} fix(es) applied
121
121
  process.stderr.write(`
122
122
  Bootstrapping to ${args.bootstrapDir}...
123
123
  `);
124
- const { main: bootstrapMain } = await import("./bootstrap-IP5QMC3Q.js");
124
+ const { main: bootstrapMain } = await import("./bootstrap-2OW5ZLBL.js");
125
125
  await bootstrapMain([
126
126
  "--input",
127
127
  result.outputPath,
@@ -10,9 +10,10 @@ var globImport_adapters = __glob({
10
10
  "../adapters/autoresearch.ts": () => import("./adapters/autoresearch.js"),
11
11
  "../adapters/deep-agents.ts": () => import("./adapters/deep-agents.js"),
12
12
  "../adapters/express.ts": () => import("./adapters/express.js"),
13
+ "../adapters/github.ts": () => import("./github-TIKTWOGU.js"),
13
14
  "../adapters/index.ts": () => import("./adapters/index.js"),
14
15
  "../adapters/langchain.ts": () => import("./adapters/langchain.js"),
15
- "../adapters/mentraos.ts": () => import("./mentraos-YFS7FMJH.js"),
16
+ "../adapters/mentraos.ts": () => import("./adapters/mentraos.js"),
16
17
  "../adapters/openai.ts": () => import("./adapters/openai.js"),
17
18
  "../adapters/openclaw.ts": () => import("./adapters/openclaw.js"),
18
19
  "../adapters/shared.ts": () => import("./shared-7RLUHNMU.js")
@@ -104,7 +105,7 @@ async function main(argv) {
104
105
  });
105
106
  }
106
107
  try {
107
- const { evaluateGuard } = await import("./guard-engine-N7TUIUU7.js");
108
+ const { evaluateGuard } = await import("./engine/guard-engine.js");
108
109
  checks.push({
109
110
  label: "Guard engine",
110
111
  status: typeof evaluateGuard === "function" ? "pass" : "fail",
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/engine/bootstrap-emitter.ts
21
+ var bootstrap_emitter_exports = {};
22
+ __export(bootstrap_emitter_exports, {
23
+ emitWorldDefinition: () => emitWorldDefinition
24
+ });
25
+ module.exports = __toCommonJS(bootstrap_emitter_exports);
26
+ var GATE_DEFAULTS = {
27
+ THRIVING: { color: "#0f6b3a", icon: "\u2726" },
28
+ STABLE: { color: "#1856b8", icon: "\u25CF" },
29
+ COMPRESSED: { color: "#a16207", icon: "\u25B2" },
30
+ CRITICAL: { color: "#b91c1c", icon: "\u26A0" },
31
+ MODEL_COLLAPSES: { color: "#7f1d1d", icon: "\u2715" }
32
+ };
33
+ function emitWorldDefinition(parsed) {
34
+ const issues = [];
35
+ const fm = parsed.frontmatter;
36
+ const defaultProfile = fm.default_profile ?? parsed.assumptions[0]?.id ?? "baseline";
37
+ const altProfile = fm.alternative_profile ?? parsed.assumptions[1]?.id ?? "alternative";
38
+ const world = {
39
+ world_id: fm.world_id,
40
+ name: fm.name,
41
+ thesis: parsed.thesis,
42
+ version: fm.version ?? "1.0.0",
43
+ runtime_mode: fm.runtime_mode ?? "SIMULATION",
44
+ default_assumption_profile: defaultProfile,
45
+ default_alternative_profile: altProfile,
46
+ modules: parsed.rules.map((r) => r.id),
47
+ players: {
48
+ thinking_space: true,
49
+ experience_space: true,
50
+ action_space: true
51
+ }
52
+ };
53
+ const invariants = parsed.invariants.map((inv) => ({
54
+ id: inv.id,
55
+ label: inv.label,
56
+ enforcement: inv.enforcement === "prompt" ? "prompt" : "structural",
57
+ mutable: false
58
+ }));
59
+ const profiles = {};
60
+ const parameterDefinitions = {};
61
+ for (let i = 0; i < parsed.assumptions.length; i++) {
62
+ const profile = parsed.assumptions[i];
63
+ const params = {};
64
+ for (const [key, val] of Object.entries(profile.parameters)) {
65
+ params[key] = String(val);
66
+ if (!parameterDefinitions[key]) {
67
+ parameterDefinitions[key] = {
68
+ type: typeof val === "boolean" ? "boolean" : typeof val === "number" ? "number" : "enum",
69
+ label: key.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()),
70
+ description: `Parameter: ${key}`
71
+ };
72
+ }
73
+ }
74
+ profiles[profile.id] = {
75
+ name: profile.name,
76
+ description: profile.description,
77
+ is_default_baseline: i === 0 || profile.id === defaultProfile,
78
+ is_default_alternative: i === 1 || profile.id === altProfile,
79
+ parameters: params
80
+ };
81
+ }
82
+ const assumptions = { profiles, parameter_definitions: parameterDefinitions };
83
+ const variables = {};
84
+ for (const v of parsed.stateVariables) {
85
+ const stateVar = {
86
+ type: v.type,
87
+ default: v.default,
88
+ mutable: true,
89
+ label: v.label,
90
+ description: v.description
91
+ };
92
+ if (v.type === "number") {
93
+ if (v.min !== void 0) stateVar.min = v.min;
94
+ if (v.max !== void 0) stateVar.max = v.max;
95
+ if (v.step !== void 0) stateVar.step = v.step;
96
+ }
97
+ if (v.type === "enum" && v.options) {
98
+ stateVar.options = v.options;
99
+ }
100
+ variables[v.id] = stateVar;
101
+ }
102
+ const stateSchema = { variables, presets: {} };
103
+ const rules = parsed.rules.map((r) => {
104
+ const triggers = r.triggers.map((t) => ({
105
+ field: t.field,
106
+ operator: t.operator,
107
+ value: t.value,
108
+ source: t.source
109
+ }));
110
+ const effects = r.effects.map((e) => ({
111
+ target: e.target,
112
+ operation: e.operation,
113
+ value: e.value
114
+ }));
115
+ let collapse_check;
116
+ if (r.collapse_check) {
117
+ collapse_check = {
118
+ field: r.collapse_check.field,
119
+ operator: r.collapse_check.operator,
120
+ value: r.collapse_check.value,
121
+ result: "MODEL_COLLAPSES"
122
+ };
123
+ }
124
+ const causal_translation = r.causal_translation ?? {
125
+ trigger_text: "",
126
+ rule_text: "",
127
+ shift_text: "",
128
+ effect_text: ""
129
+ };
130
+ const rule = {
131
+ id: r.id,
132
+ severity: r.severity,
133
+ label: r.label,
134
+ description: r.description ?? r.label,
135
+ order: r.order,
136
+ triggers,
137
+ effects: effects.length > 0 ? effects : void 0,
138
+ collapse_check,
139
+ causal_translation
140
+ };
141
+ return rule;
142
+ });
143
+ const viabilityClassification = parsed.gates.map((g) => {
144
+ const defaults = GATE_DEFAULTS[g.status] ?? { color: "#5c5a52", icon: "\u25CF" };
145
+ return {
146
+ status: g.status,
147
+ field: g.field,
148
+ operator: g.operator,
149
+ value: g.value,
150
+ color: defaults.color,
151
+ icon: defaults.icon
152
+ };
153
+ });
154
+ const gates = {
155
+ viability_classification: viabilityClassification,
156
+ structural_override: {
157
+ description: "Rules with severity=structural and triggered collapse_check force MODEL_COLLAPSES regardless of final margin.",
158
+ enforcement: "mandatory"
159
+ },
160
+ sustainability_threshold: 0.1,
161
+ collapse_visual: {
162
+ background: "#1c1917",
163
+ text: "#fef2f2",
164
+ border: "#b91c1c",
165
+ label: "Structural Failure"
166
+ }
167
+ };
168
+ const computedOutcomes = parsed.outcomes.map((o) => {
169
+ const outcome = {
170
+ id: o.id,
171
+ type: o.type,
172
+ label: o.label,
173
+ show_in_comparison: true
174
+ };
175
+ if (o.range) outcome.range = o.range;
176
+ if (o.display) outcome.display_as = o.display;
177
+ if (o.primary) outcome.primary = o.primary;
178
+ if (o.assignment) outcome.assignment = o.assignment;
179
+ return outcome;
180
+ });
181
+ const outcomes = {
182
+ computed_outcomes: computedOutcomes,
183
+ comparison_layout: {
184
+ primary_card: computedOutcomes.find((o) => o.primary)?.id ?? computedOutcomes[0]?.id ?? "",
185
+ status_badge: "viability_status",
186
+ structural_indicators: rules.filter((r) => r.severity === "structural").map((r) => r.id)
187
+ }
188
+ };
189
+ const validScopes = /* @__PURE__ */ new Set(["response_framing", "language_style", "content_filtering", "value_emphasis", "behavior_shaping"]);
190
+ const lensConfigs = parsed.lenses.map((pl) => {
191
+ const directives = pl.directives.map((d) => ({
192
+ id: d.id,
193
+ scope: validScopes.has(d.scope) ? d.scope : "behavior_shaping",
194
+ instruction: d.instruction
195
+ }));
196
+ return {
197
+ id: pl.id,
198
+ name: pl.name,
199
+ tagline: pl.tagline,
200
+ description: pl.description,
201
+ tags: pl.tags,
202
+ tone: {
203
+ formality: pl.formality || "neutral",
204
+ verbosity: pl.verbosity || "balanced",
205
+ emotion: pl.emotion || "neutral",
206
+ confidence: pl.confidence || "balanced"
207
+ },
208
+ directives,
209
+ defaultForRoles: pl.defaultForRoles,
210
+ priority: pl.priority,
211
+ stackable: pl.stackable
212
+ };
213
+ });
214
+ const lensesConfig = lensConfigs.length > 0 ? {
215
+ lenses: lensConfigs,
216
+ ...parsed.lensPolicy ? { policy: parsed.lensPolicy } : {},
217
+ ...parsed.lensLockPin ? { lockPin: parsed.lensLockPin } : {}
218
+ } : void 0;
219
+ const metadata = {
220
+ format_version: "1.0.0",
221
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
222
+ last_modified: (/* @__PURE__ */ new Date()).toISOString(),
223
+ authoring_method: "manual-authoring"
224
+ };
225
+ const worldDefinition = {
226
+ world,
227
+ invariants,
228
+ assumptions,
229
+ stateSchema,
230
+ rules,
231
+ gates,
232
+ outcomes,
233
+ ...lensesConfig ? { lenses: lensesConfig } : {},
234
+ metadata
235
+ };
236
+ return { world: worldDefinition, issues };
237
+ }
238
+ // Annotate the CommonJS export names for ESM import in node:
239
+ 0 && (module.exports = {
240
+ emitWorldDefinition
241
+ });
@@ -0,0 +1,27 @@
1
+ import { P as ParsedWorld, a as ParseIssue } from '../bootstrap-contract-DcV6t-8M.cjs';
2
+ import { WorldDefinition } from '../types.cjs';
3
+
4
+ /**
5
+ * Bootstrap Emitter — ParsedWorld → WorldDefinition
6
+ *
7
+ * Converts the intermediate representation from the parser
8
+ * into a proper WorldDefinition that the guard engine, validate engine,
9
+ * and compileWorldToZip() all consume.
10
+ *
11
+ * Fills in sensible defaults for optional fields.
12
+ * Reports issues when the parsed data can't cleanly map to the target type.
13
+ *
14
+ * Deterministic. Same parsed input → same WorldDefinition output.
15
+ */
16
+
17
+ /**
18
+ * Convert a ParsedWorld into a WorldDefinition.
19
+ *
20
+ * Returns the world definition and any issues encountered during emission.
21
+ */
22
+ declare function emitWorldDefinition(parsed: ParsedWorld): {
23
+ world: WorldDefinition;
24
+ issues: ParseIssue[];
25
+ };
26
+
27
+ export { emitWorldDefinition };
@@ -0,0 +1,27 @@
1
+ import { P as ParsedWorld, a as ParseIssue } from '../bootstrap-contract-DcV6t-8M.js';
2
+ import { WorldDefinition } from '../types.js';
3
+
4
+ /**
5
+ * Bootstrap Emitter — ParsedWorld → WorldDefinition
6
+ *
7
+ * Converts the intermediate representation from the parser
8
+ * into a proper WorldDefinition that the guard engine, validate engine,
9
+ * and compileWorldToZip() all consume.
10
+ *
11
+ * Fills in sensible defaults for optional fields.
12
+ * Reports issues when the parsed data can't cleanly map to the target type.
13
+ *
14
+ * Deterministic. Same parsed input → same WorldDefinition output.
15
+ */
16
+
17
+ /**
18
+ * Convert a ParsedWorld into a WorldDefinition.
19
+ *
20
+ * Returns the world definition and any issues encountered during emission.
21
+ */
22
+ declare function emitWorldDefinition(parsed: ParsedWorld): {
23
+ world: WorldDefinition;
24
+ issues: ParseIssue[];
25
+ };
26
+
27
+ export { emitWorldDefinition };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  emitWorldDefinition
3
- } from "./chunk-YPCVY4GS.js";
4
- import "./chunk-QWGCMQQD.js";
3
+ } from "../chunk-YPCVY4GS.js";
4
+ import "../chunk-QWGCMQQD.js";
5
5
  export {
6
6
  emitWorldDefinition
7
7
  };