paracosm 0.7.409 → 0.7.431

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 (146) hide show
  1. package/README.md +79 -14
  2. package/dist/cli/compile.d.ts +1 -1
  3. package/dist/cli/compile.js +4 -4
  4. package/dist/cli/fetch-seed-url.d.ts +48 -0
  5. package/dist/cli/fetch-seed-url.d.ts.map +1 -0
  6. package/dist/cli/fetch-seed-url.js +109 -0
  7. package/dist/cli/fetch-seed-url.js.map +1 -0
  8. package/dist/cli/fork-preconditions.d.ts +17 -0
  9. package/dist/cli/fork-preconditions.d.ts.map +1 -0
  10. package/dist/cli/fork-preconditions.js +51 -0
  11. package/dist/cli/fork-preconditions.js.map +1 -0
  12. package/dist/cli/init-templates.d.ts +43 -0
  13. package/dist/cli/init-templates.d.ts.map +1 -0
  14. package/dist/cli/init-templates.js +141 -0
  15. package/dist/cli/init-templates.js.map +1 -0
  16. package/dist/cli/init.d.ts +46 -0
  17. package/dist/cli/init.d.ts.map +1 -0
  18. package/dist/cli/init.js +207 -0
  19. package/dist/cli/init.js.map +1 -0
  20. package/dist/cli/pair-runner.d.ts +25 -2
  21. package/dist/cli/pair-runner.d.ts.map +1 -1
  22. package/dist/cli/pair-runner.js +141 -5
  23. package/dist/cli/pair-runner.js.map +1 -1
  24. package/dist/cli/quickstart-routes.d.ts +35 -0
  25. package/dist/cli/quickstart-routes.d.ts.map +1 -0
  26. package/dist/cli/quickstart-routes.js +100 -0
  27. package/dist/cli/quickstart-routes.js.map +1 -0
  28. package/dist/cli/run.js +8 -0
  29. package/dist/cli/run.js.map +1 -1
  30. package/dist/cli/server/enrich-run-record.d.ts +22 -0
  31. package/dist/cli/server/enrich-run-record.d.ts.map +1 -0
  32. package/dist/cli/server/enrich-run-record.js +27 -0
  33. package/dist/cli/server/enrich-run-record.js.map +1 -0
  34. package/dist/cli/server/routes/platform-api.d.ts +19 -3
  35. package/dist/cli/server/routes/platform-api.d.ts.map +1 -1
  36. package/dist/cli/server/routes/platform-api.js +174 -5
  37. package/dist/cli/server/routes/platform-api.js.map +1 -1
  38. package/dist/cli/server/run-history-store.d.ts +27 -1
  39. package/dist/cli/server/run-history-store.d.ts.map +1 -1
  40. package/dist/cli/server/run-history-store.js +5 -0
  41. package/dist/cli/server/run-history-store.js.map +1 -1
  42. package/dist/cli/server/run-record.d.ts +13 -0
  43. package/dist/cli/server/run-record.d.ts.map +1 -1
  44. package/dist/cli/server/run-record.js.map +1 -1
  45. package/dist/cli/server/sqlite-run-history-store.d.ts +6 -0
  46. package/dist/cli/server/sqlite-run-history-store.d.ts.map +1 -0
  47. package/dist/cli/server/sqlite-run-history-store.js +226 -0
  48. package/dist/cli/server/sqlite-run-history-store.js.map +1 -0
  49. package/dist/cli/server-app.d.ts +73 -2
  50. package/dist/cli/server-app.d.ts.map +1 -1
  51. package/dist/cli/server-app.js +409 -159
  52. package/dist/cli/server-app.js.map +1 -1
  53. package/dist/cli/session-title.js +1 -1
  54. package/dist/cli/sim-config.d.ts +13 -0
  55. package/dist/cli/sim-config.d.ts.map +1 -1
  56. package/dist/cli/sim-config.js +8 -1
  57. package/dist/cli/sim-config.js.map +1 -1
  58. package/dist/cli/simulate-route.d.ts +103 -0
  59. package/dist/cli/simulate-route.d.ts.map +1 -0
  60. package/dist/cli/simulate-route.js +95 -0
  61. package/dist/cli/simulate-route.js.map +1 -0
  62. package/dist/engine/compiler/cache.d.ts +2 -2
  63. package/dist/engine/compiler/cache.js +2 -2
  64. package/dist/engine/compiler/compile-from-seed.d.ts +78 -0
  65. package/dist/engine/compiler/compile-from-seed.d.ts.map +1 -0
  66. package/dist/engine/compiler/compile-from-seed.js +93 -0
  67. package/dist/engine/compiler/compile-from-seed.js.map +1 -0
  68. package/dist/engine/compiler/generate-fingerprint.d.ts.map +1 -1
  69. package/dist/engine/compiler/generate-fingerprint.js +3 -6
  70. package/dist/engine/compiler/generate-fingerprint.js.map +1 -1
  71. package/dist/engine/compiler/generate-politics.d.ts.map +1 -1
  72. package/dist/engine/compiler/generate-politics.js +3 -6
  73. package/dist/engine/compiler/generate-politics.js.map +1 -1
  74. package/dist/engine/compiler/generate-progression.d.ts +10 -1
  75. package/dist/engine/compiler/generate-progression.d.ts.map +1 -1
  76. package/dist/engine/compiler/generate-progression.js +15 -15
  77. package/dist/engine/compiler/generate-progression.js.map +1 -1
  78. package/dist/engine/compiler/generate-prompts.d.ts.map +1 -1
  79. package/dist/engine/compiler/generate-prompts.js +4 -7
  80. package/dist/engine/compiler/generate-prompts.js.map +1 -1
  81. package/dist/engine/compiler/generate-reactions.d.ts.map +1 -1
  82. package/dist/engine/compiler/generate-reactions.js +3 -6
  83. package/dist/engine/compiler/generate-reactions.js.map +1 -1
  84. package/dist/engine/compiler/index.d.ts +9 -6
  85. package/dist/engine/compiler/index.d.ts.map +1 -1
  86. package/dist/engine/compiler/index.js +9 -6
  87. package/dist/engine/compiler/index.js.map +1 -1
  88. package/dist/engine/compiler/sandbox-runner.d.ts +40 -0
  89. package/dist/engine/compiler/sandbox-runner.d.ts.map +1 -0
  90. package/dist/engine/compiler/sandbox-runner.js +278 -0
  91. package/dist/engine/compiler/sandbox-runner.js.map +1 -0
  92. package/dist/engine/compiler/scenario-fixture.d.ts +4 -4
  93. package/dist/engine/compiler/scenario-fixture.js +4 -4
  94. package/dist/engine/compiler/seed-ingestion.d.ts +2 -2
  95. package/dist/engine/compiler/seed-ingestion.js +2 -2
  96. package/dist/engine/compiler/state-shape-block.d.ts +1 -1
  97. package/dist/engine/compiler/state-shape-block.js +5 -5
  98. package/dist/engine/compiler/types.d.ts +2 -2
  99. package/dist/engine/compiler/types.d.ts.map +1 -1
  100. package/dist/engine/compiler/validate.js +1 -1
  101. package/dist/engine/core/kernel.d.ts +4 -4
  102. package/dist/engine/core/kernel.js +6 -6
  103. package/dist/engine/core/progression.d.ts +3 -3
  104. package/dist/engine/core/progression.js +21 -21
  105. package/dist/engine/core/state.d.ts +7 -5
  106. package/dist/engine/core/state.d.ts.map +1 -1
  107. package/dist/engine/digital-twin/index.d.ts +41 -0
  108. package/dist/engine/digital-twin/index.d.ts.map +1 -0
  109. package/dist/engine/digital-twin/index.js +40 -0
  110. package/dist/engine/digital-twin/index.js.map +1 -0
  111. package/dist/engine/index.d.ts +1 -1
  112. package/dist/engine/leader-presets.d.ts +39 -0
  113. package/dist/engine/leader-presets.d.ts.map +1 -0
  114. package/dist/engine/leader-presets.js +118 -0
  115. package/dist/engine/leader-presets.js.map +1 -0
  116. package/dist/engine/lunar/fingerprint.js +2 -2
  117. package/dist/engine/lunar/prompts.js +2 -2
  118. package/dist/engine/mars/fingerprint.js +1 -1
  119. package/dist/engine/mars/metrics.d.ts +2 -2
  120. package/dist/engine/mars/metrics.js +2 -2
  121. package/dist/engine/mars/prompts.js +3 -3
  122. package/dist/runtime/build-artifact.d.ts +2 -1
  123. package/dist/runtime/build-artifact.d.ts.map +1 -1
  124. package/dist/runtime/build-artifact.js +2 -1
  125. package/dist/runtime/build-artifact.js.map +1 -1
  126. package/dist/runtime/canonical-json.d.ts +25 -0
  127. package/dist/runtime/canonical-json.d.ts.map +1 -0
  128. package/dist/runtime/canonical-json.js +46 -0
  129. package/dist/runtime/canonical-json.js.map +1 -0
  130. package/dist/runtime/contracts.d.ts +1 -1
  131. package/dist/runtime/departments.js +1 -1
  132. package/dist/runtime/orchestrator.d.ts +44 -4
  133. package/dist/runtime/orchestrator.d.ts.map +1 -1
  134. package/dist/runtime/orchestrator.js +125 -33
  135. package/dist/runtime/orchestrator.js.map +1 -1
  136. package/dist/runtime/parsers.js +5 -5
  137. package/dist/runtime/reaction-step.js +2 -2
  138. package/dist/runtime/world-model/index.d.ts +172 -18
  139. package/dist/runtime/world-model/index.d.ts.map +1 -1
  140. package/dist/runtime/world-model/index.js +242 -4
  141. package/dist/runtime/world-model/index.js.map +1 -1
  142. package/dist/runtime/world-snapshot.d.ts +13 -0
  143. package/dist/runtime/world-snapshot.d.ts.map +1 -0
  144. package/dist/runtime/world-snapshot.js +19 -0
  145. package/dist/runtime/world-snapshot.js.map +1 -0
  146. package/package.json +19 -4
@@ -1,9 +1,12 @@
1
1
  /**
2
2
  * Paracosm Scenario Compiler
3
3
  *
4
- * Takes a raw scenario JSON (the data portion of a ScenarioPackage) and generates
5
- * all runtime hooks via LLM calls. Returns a complete ScenarioPackage ready to
6
- * pass to runSimulation().
4
+ * Takes a canonical scenario JSON draft (the data portion of a ScenarioPackage)
5
+ * and generates all runtime hooks via LLM calls. Natural-language prompts,
6
+ * briefs, and URLs enter today through CompileOptions.seedText / seedUrl,
7
+ * which ground the draft before hook generation. A prompt-only authoring API
8
+ * should be a wrapper that first emits this same JSON contract, then calls this
9
+ * compiler.
7
10
  *
8
11
  * @example
9
12
  * ```typescript
@@ -22,10 +25,10 @@ export type { CompileOptions, GenerateTextFn };
22
25
  export { ingestSeed, ingestFromUrl } from './seed-ingestion.js';
23
26
  export type { SeedIngestionOptions } from './seed-ingestion.js';
24
27
  /**
25
- * Compile a scenario JSON into a complete ScenarioPackage with generated hooks.
28
+ * Compile a scenario JSON draft into a complete ScenarioPackage with generated hooks.
26
29
  *
27
- * @param scenarioJson - The data portion of a scenario (labels, departments, metrics, effects, etc.)
28
- * @param options - Compiler options (provider, model, cache settings)
30
+ * @param scenarioJson - Canonical world draft (labels, departments, metrics, effects, etc.)
31
+ * @param options - Compiler options (provider, model, cache settings, seed text / URL grounding)
29
32
  * @returns A complete ScenarioPackage ready for runSimulation()
30
33
  */
31
34
  export declare function compileScenario(scenarioJson: Record<string, unknown>, options?: CompileOptions): Promise<ScenarioPackage>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAajE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoFhE;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAiM1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAajE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoFhE;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAiM1B"}
@@ -1,9 +1,12 @@
1
1
  /**
2
2
  * Paracosm Scenario Compiler
3
3
  *
4
- * Takes a raw scenario JSON (the data portion of a ScenarioPackage) and generates
5
- * all runtime hooks via LLM calls. Returns a complete ScenarioPackage ready to
6
- * pass to runSimulation().
4
+ * Takes a canonical scenario JSON draft (the data portion of a ScenarioPackage)
5
+ * and generates all runtime hooks via LLM calls. Natural-language prompts,
6
+ * briefs, and URLs enter today through CompileOptions.seedText / seedUrl,
7
+ * which ground the draft before hook generation. A prompt-only authoring API
8
+ * should be a wrapper that first emits this same JSON contract, then calls this
9
+ * compiler.
7
10
  *
8
11
  * @example
9
12
  * ```typescript
@@ -111,10 +114,10 @@ function restoreHookFromCache(hookName, source) {
111
114
  }
112
115
  }
113
116
  /**
114
- * Compile a scenario JSON into a complete ScenarioPackage with generated hooks.
117
+ * Compile a scenario JSON draft into a complete ScenarioPackage with generated hooks.
115
118
  *
116
- * @param scenarioJson - The data portion of a scenario (labels, departments, metrics, effects, etc.)
117
- * @param options - Compiler options (provider, model, cache settings)
119
+ * @param scenarioJson - Canonical world draft (labels, departments, metrics, effects, etc.)
120
+ * @param options - Compiler options (provider, model, cache settings, seed text / URL grounding)
118
121
  * @returns A complete ScenarioPackage ready for runSimulation()
119
122
  */
120
123
  export async function compileScenario(scenarioJson, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/compiler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/compiler/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Error thrown by sandbox-runner. Distinct class so callers can detect
3
+ * sandbox-specific failures vs ordinary user-code exceptions.
4
+ */
5
+ export declare class SandboxRunnerError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ /**
9
+ * Validate that the user-supplied arrow-function code does not contain
10
+ * any always-banned pattern. Throws SandboxRunnerError on the first hit.
11
+ *
12
+ * Static regex validation alone is bypassable via obfuscation (Unicode
13
+ * escapes, string concatenation, constructor reflection). The runtime
14
+ * sandbox closes those gaps; this check is defense in depth and produces
15
+ * clearer error messages than the runtime would.
16
+ */
17
+ export declare function validateHookCode(code: string): void;
18
+ /**
19
+ * Run an LLM-generated arrow function `(...args) => result` inside the
20
+ * hardened sandbox and return the result. Throws SandboxRunnerError on
21
+ * validation failure, escape attempt, timeout, or thrown exception.
22
+ *
23
+ * Args are JSON-serialized into the sandbox source so the user code
24
+ * only sees sandbox-realm objects.
25
+ */
26
+ export declare function runArrowSync<TArgs extends unknown[], TReturn>(userArrowCode: string, args: TArgs): TReturn;
27
+ /**
28
+ * ProgressionFn-shaped hook variant: the user fn returns void and is
29
+ * expected to mutate `ctx.agents` in place. Sandbox-side, the input is
30
+ * JSON-cloned (so mutations land on a sandbox-realm copy), the user fn
31
+ * is invoked for its side effects, then the mutated agents array is
32
+ * returned to host. Host-side, this function merges each cloned agent's
33
+ * fields back onto the original agent object so external references
34
+ * stay stable.
35
+ */
36
+ export declare function runProgressionSync(userArrowCode: string, ctx: {
37
+ agents: Array<Record<string, unknown>>;
38
+ [k: string]: unknown;
39
+ }): void;
40
+ //# sourceMappingURL=sandbox-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-runner.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/sandbox-runner.ts"],"names":[],"mappings":"AA6EA;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMnD;AAwFD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EAC3D,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,KAAK,GACV,OAAO,CA+BT;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACpE,IAAI,CAqDN"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Hardened synchronous node:vm wrapper for paracosm's compiled hooks.
3
+ *
4
+ * Replaces the raw `new Function()` evaluation that previously executed
5
+ * LLM-generated arrow functions in the host process. Each invocation
6
+ * runs the user code in a fresh node:vm context with:
7
+ *
8
+ * - `codeGeneration: { strings: false, wasm: false }` blocks runtime
9
+ * `eval` and `Function()` reflection that bypass static regex validation.
10
+ * - Frozen console + explicit `process` / `globalThis` / `require` /
11
+ * `setTimeout` / `setInterval` / `fetch` set to undefined.
12
+ * - Wall-clock `timeout` enforced via vm.runInContext.
13
+ *
14
+ * The sandbox is intentionally synchronous (paracosm's runtime calls these
15
+ * hooks per-turn from sync code paths in kernel / orchestrator). Mirrors
16
+ * the hardenings in `@framers/agentos`'s `CodeSandbox.executeJavaScript`,
17
+ * which is async-only. Candidate for upstream consolidation when the
18
+ * runtime allows an async refactor.
19
+ *
20
+ * Inputs are JSON-round-tripped into the sandbox so the user code only
21
+ * sees sandbox-realm objects (host-realm prototype chain reflection
22
+ * cannot reach a host `Function` constructor with permissive
23
+ * codeGeneration).
24
+ *
25
+ * @module paracosm/engine/compiler/sandbox-runner
26
+ */
27
+ import * as vm from 'node:vm';
28
+ /**
29
+ * Keys that must NEVER be exposed inside the sandbox even if a future
30
+ * caller passes extras. Drops them silently to keep the hardening intact.
31
+ */
32
+ /**
33
+ * Mirror of @framers/agentos CodeSandbox DANGEROUS_GLOBAL_KEYS so paracosm's
34
+ * sandbox-runner has the same hardening surface as the agentos forge sandbox.
35
+ *
36
+ * Categorized:
37
+ * - Host-state escape: process, global, globalThis, require
38
+ * - Code-generation reflection: eval, Function
39
+ * - Realm-reflection / introspection: Reflect, Proxy
40
+ * - Memory side-channels (Spectre family): SharedArrayBuffer, Atomics
41
+ * - Native compilation surface: WebAssembly
42
+ */
43
+ const DANGEROUS_GLOBAL_KEYS = new Set([
44
+ 'process',
45
+ 'global',
46
+ 'globalThis',
47
+ 'require',
48
+ 'eval',
49
+ 'Function',
50
+ 'Reflect',
51
+ 'Proxy',
52
+ 'WebAssembly',
53
+ 'SharedArrayBuffer',
54
+ 'Atomics',
55
+ ]);
56
+ /**
57
+ * Static regex blocklist applied before any code reaches the runtime.
58
+ * Catches the common literal-pattern attempts; codeGeneration: false at
59
+ * runtime catches the obfuscated reflection variants.
60
+ */
61
+ const ALWAYS_BANNED_PATTERNS = [
62
+ [/\beval\s*\(/, 'eval() is forbidden'],
63
+ [/\bFunction\s*\(/, 'Function() is forbidden'],
64
+ [/\bnew\s+Function\s*\(/, 'new Function() is forbidden'],
65
+ [/\brequire\s*\(/, 'require() is forbidden'],
66
+ [/\bimport\s+/, 'import statements are forbidden'],
67
+ [/\bimport\s*\(/, 'dynamic import() is forbidden'],
68
+ [/\bprocess\s*\./, 'process access is forbidden'],
69
+ [/\bchild_process\b/, 'child_process access is forbidden'],
70
+ [/\bfs\s*\./, 'fs access is forbidden'],
71
+ ];
72
+ /** Wall-clock timeout per hook invocation in milliseconds. */
73
+ const HOOK_TIMEOUT_MS = 1000;
74
+ /**
75
+ * Error thrown by sandbox-runner. Distinct class so callers can detect
76
+ * sandbox-specific failures vs ordinary user-code exceptions.
77
+ */
78
+ export class SandboxRunnerError extends Error {
79
+ constructor(message) {
80
+ super(message);
81
+ this.name = 'SandboxRunnerError';
82
+ }
83
+ }
84
+ /**
85
+ * Validate that the user-supplied arrow-function code does not contain
86
+ * any always-banned pattern. Throws SandboxRunnerError on the first hit.
87
+ *
88
+ * Static regex validation alone is bypassable via obfuscation (Unicode
89
+ * escapes, string concatenation, constructor reflection). The runtime
90
+ * sandbox closes those gaps; this check is defense in depth and produces
91
+ * clearer error messages than the runtime would.
92
+ */
93
+ export function validateHookCode(code) {
94
+ for (const [pattern, message] of ALWAYS_BANNED_PATTERNS) {
95
+ if (pattern.test(code)) {
96
+ throw new SandboxRunnerError(`Sandbox validation failed: ${message}`);
97
+ }
98
+ }
99
+ }
100
+ /**
101
+ * Build the hardened global context object for the sandbox. Provides only
102
+ * safe builtins plus a frozen console stub. All dangerous globals are
103
+ * explicitly nulled so any reference inside the sandbox throws a clear
104
+ * `undefined` error rather than leaking host state.
105
+ *
106
+ * The `extras` parameter (currently used only for the JSON-stringified
107
+ * args bundle and the wrapped user function) is filtered against
108
+ * DANGEROUS_GLOBAL_KEYS before merging.
109
+ */
110
+ function buildContext(extras = {}) {
111
+ /* eslint-disable @typescript-eslint/no-explicit-any */
112
+ const ctx = {
113
+ JSON,
114
+ Math,
115
+ Date,
116
+ Number,
117
+ String,
118
+ Boolean,
119
+ Array,
120
+ Object,
121
+ Map,
122
+ Set,
123
+ RegExp,
124
+ Error,
125
+ TypeError,
126
+ RangeError,
127
+ Promise,
128
+ parseInt,
129
+ parseFloat,
130
+ isNaN,
131
+ isFinite,
132
+ encodeURI,
133
+ decodeURI,
134
+ encodeURIComponent,
135
+ decodeURIComponent,
136
+ console: Object.freeze({
137
+ log: () => { },
138
+ warn: () => { },
139
+ error: () => { },
140
+ info: () => { },
141
+ debug: () => { },
142
+ }),
143
+ // Hardened-undefined: any reference inside the sandbox surfaces as
144
+ // a clear `undefined` rather than leaking the host equivalents.
145
+ process: undefined,
146
+ global: undefined,
147
+ globalThis: undefined,
148
+ require: undefined,
149
+ fetch: undefined,
150
+ setTimeout: undefined,
151
+ setInterval: undefined,
152
+ setImmediate: undefined,
153
+ clearTimeout: undefined,
154
+ clearInterval: undefined,
155
+ clearImmediate: undefined,
156
+ queueMicrotask: undefined,
157
+ // Realm intrinsics paracosm hooks have no legitimate need for. Blocks
158
+ // Reflect.construct(Function,...) and Proxy-based prototype attacks
159
+ // that would otherwise sidestep codeGeneration: { strings: false }.
160
+ // SharedArrayBuffer/Atomics close the Spectre side-channel surface;
161
+ // WebAssembly is already blocked via codeGeneration: { wasm: false }
162
+ // but nulled here for belt-and-suspenders.
163
+ Reflect: undefined,
164
+ Proxy: undefined,
165
+ WebAssembly: undefined,
166
+ SharedArrayBuffer: undefined,
167
+ Atomics: undefined,
168
+ };
169
+ for (const [key, value] of Object.entries(extras)) {
170
+ if (!DANGEROUS_GLOBAL_KEYS.has(key)) {
171
+ ctx[key] = value;
172
+ }
173
+ }
174
+ return ctx;
175
+ }
176
+ /**
177
+ * Translate node:vm errors into SandboxRunnerError so callers can catch
178
+ * a single class. Preserves the underlying message for debugging.
179
+ */
180
+ function rethrowAsSandboxError(err) {
181
+ const message = err instanceof Error ? err.message : String(err);
182
+ throw new SandboxRunnerError(`Sandbox execution failed: ${message}`);
183
+ }
184
+ /**
185
+ * Run an LLM-generated arrow function `(...args) => result` inside the
186
+ * hardened sandbox and return the result. Throws SandboxRunnerError on
187
+ * validation failure, escape attempt, timeout, or thrown exception.
188
+ *
189
+ * Args are JSON-serialized into the sandbox source so the user code
190
+ * only sees sandbox-realm objects.
191
+ */
192
+ export function runArrowSync(userArrowCode, args) {
193
+ validateHookCode(userArrowCode);
194
+ const context = vm.createContext(buildContext(), {
195
+ name: 'paracosm-hook-sandbox',
196
+ codeGeneration: { strings: false, wasm: false },
197
+ });
198
+ const wrappedCode = `
199
+ const __userFn = (${userArrowCode});
200
+ const __args = ${JSON.stringify(args)};
201
+ __userFn(...__args)
202
+ `;
203
+ let sandboxResult;
204
+ try {
205
+ sandboxResult = vm.runInContext(wrappedCode, context, {
206
+ timeout: HOOK_TIMEOUT_MS,
207
+ breakOnSigint: false,
208
+ });
209
+ }
210
+ catch (err) {
211
+ rethrowAsSandboxError(err);
212
+ }
213
+ // JSON round-trip rebases the result onto host-realm prototypes so
214
+ // host-side equality checks (deepStrictEqual, instanceof Object)
215
+ // behave normally. Safe for paracosm's plain-data hook outputs.
216
+ if (sandboxResult === undefined || typeof sandboxResult !== 'object') {
217
+ return sandboxResult;
218
+ }
219
+ return JSON.parse(JSON.stringify(sandboxResult));
220
+ }
221
+ /**
222
+ * ProgressionFn-shaped hook variant: the user fn returns void and is
223
+ * expected to mutate `ctx.agents` in place. Sandbox-side, the input is
224
+ * JSON-cloned (so mutations land on a sandbox-realm copy), the user fn
225
+ * is invoked for its side effects, then the mutated agents array is
226
+ * returned to host. Host-side, this function merges each cloned agent's
227
+ * fields back onto the original agent object so external references
228
+ * stay stable.
229
+ */
230
+ export function runProgressionSync(userArrowCode, ctx) {
231
+ validateHookCode(userArrowCode);
232
+ const context = vm.createContext(buildContext(), {
233
+ name: 'paracosm-hook-progression-sandbox',
234
+ codeGeneration: { strings: false, wasm: false },
235
+ });
236
+ const wrappedCode = `
237
+ const __userFn = (${userArrowCode});
238
+ const __ctx = ${JSON.stringify(ctx)};
239
+ __userFn(__ctx);
240
+ __ctx.agents
241
+ `;
242
+ let mutatedAgents;
243
+ try {
244
+ mutatedAgents = vm.runInContext(wrappedCode, context, {
245
+ timeout: HOOK_TIMEOUT_MS,
246
+ breakOnSigint: false,
247
+ });
248
+ }
249
+ catch (err) {
250
+ rethrowAsSandboxError(err);
251
+ }
252
+ if (!Array.isArray(mutatedAgents)) {
253
+ throw new SandboxRunnerError('Progression hook did not return a mutated agents array');
254
+ }
255
+ // Field-level merge back into the host agents. Preserves the host's
256
+ // array + object identities so other runtime references stay stable.
257
+ for (let i = 0; i < ctx.agents.length; i++) {
258
+ const original = ctx.agents[i];
259
+ const updated = mutatedAgents[i];
260
+ if (!original || !updated)
261
+ continue;
262
+ for (const key of Object.keys(updated)) {
263
+ const updatedField = updated[key];
264
+ const originalField = original[key];
265
+ if (originalField &&
266
+ updatedField &&
267
+ typeof originalField === 'object' &&
268
+ typeof updatedField === 'object' &&
269
+ !Array.isArray(originalField)) {
270
+ Object.assign(originalField, updatedField);
271
+ }
272
+ else {
273
+ original[key] = updatedField;
274
+ }
275
+ }
276
+ }
277
+ }
278
+ //# sourceMappingURL=sandbox-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-runner.js","sourceRoot":"","sources":["../../../src/engine/compiler/sandbox-runner.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Runtime `SimulationState` has `systems`, `politics`, `statuses`,
9
9
  * `environment`, `agents`, `metadata` at the top level. `world.metrics`
10
- * AND `world.capacities` both flatten into `state.systems`;
10
+ * AND `world.capacities` both flatten into `state.metrics`;
11
11
  * `world.politics` / `world.statuses` / `world.environment` each map
12
12
  * to their own runtime bag. The fixture mirrors that shape exactly.
13
13
  *
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { Agent } from '../core/state.js';
17
17
  export interface ScenarioFixture {
18
- systems: Record<string, number>;
18
+ metrics: Record<string, number>;
19
19
  politics: Record<string, number | string | boolean>;
20
20
  statuses: Record<string, string | boolean>;
21
21
  environment: Record<string, number | string | boolean>;
@@ -32,9 +32,9 @@ export interface ScenarioFixture {
32
32
  }
33
33
  /**
34
34
  * Build a runtime-accurate `SimulationState`-shaped fixture from a
35
- * scenario JSON. `state.systems` is a FLAT bag merged from the scenario's
35
+ * scenario JSON. `state.metrics` is a FLAT bag merged from the scenario's
36
36
  * `world.metrics` AND `world.capacities` declarations (both map to
37
- * runtime numbers under `state.systems`). `state.politics` carries
37
+ * runtime numbers under `state.metrics`). `state.politics` carries
38
38
  * `world.politics`. Mars-heritage defaults (population, morale) are
39
39
  * overlaid so hooks that reference those still validate.
40
40
  *
@@ -99,9 +99,9 @@ function buildSyntheticAgent(startTime) {
99
99
  }
100
100
  /**
101
101
  * Build a runtime-accurate `SimulationState`-shaped fixture from a
102
- * scenario JSON. `state.systems` is a FLAT bag merged from the scenario's
102
+ * scenario JSON. `state.metrics` is a FLAT bag merged from the scenario's
103
103
  * `world.metrics` AND `world.capacities` declarations (both map to
104
- * runtime numbers under `state.systems`). `state.politics` carries
104
+ * runtime numbers under `state.metrics`). `state.politics` carries
105
105
  * `world.politics`. Mars-heritage defaults (population, morale) are
106
106
  * overlaid so hooks that reference those still validate.
107
107
  *
@@ -125,9 +125,9 @@ export function buildScenarioFixture(scenarioJson) {
125
125
  population: 100,
126
126
  morale: 0.75,
127
127
  };
128
- const systems = { ...marsHeritageSystems, ...mergeBagsNumeric(world.metrics, world.capacities) };
128
+ const metrics = { ...marsHeritageSystems, ...mergeBagsNumeric(world.metrics, world.capacities) };
129
129
  return {
130
- systems,
130
+ metrics,
131
131
  politics: buildPoliticsBag(world.politics),
132
132
  statuses: buildStatusesBag(world.statuses),
133
133
  environment: buildEnvironmentBag(world.environment),
@@ -26,9 +26,9 @@ export interface SeedIngestionOptions {
26
26
  onProgress?: (step: string, status: 'start' | 'done') => void;
27
27
  }
28
28
  /**
29
- * Ingest a seed document and produce a KnowledgeBundle for a scenario.
29
+ * Ingest prompt, brief, or document text and produce a KnowledgeBundle for a scenario.
30
30
  *
31
- * @param seedText - The raw text content of the seed document
31
+ * @param seedText - The raw text content of the prompt, brief, or document
32
32
  * @param options - Ingestion options (LLM function, web search toggle)
33
33
  * @returns A KnowledgeBundle ready to merge into a ScenarioPackage
34
34
  */
@@ -168,9 +168,9 @@ function assembleKnowledgeBundle(extracted, searchResults) {
168
168
  return { topics, categoryMapping };
169
169
  }
170
170
  /**
171
- * Ingest a seed document and produce a KnowledgeBundle for a scenario.
171
+ * Ingest prompt, brief, or document text and produce a KnowledgeBundle for a scenario.
172
172
  *
173
- * @param seedText - The raw text content of the seed document
173
+ * @param seedText - The raw text content of the prompt, brief, or document
174
174
  * @param options - Ingestion options (LLM function, web search toggle)
175
175
  * @returns A KnowledgeBundle ready to merge into a ScenarioPackage
176
176
  */
@@ -7,7 +7,7 @@
7
7
  * Paracosm's runtime `SimulationState` carries `systems`, `politics`,
8
8
  * `statuses`, `environment`, `agents`, `metadata` at the top level.
9
9
  * Scenario-declared keys under `world.metrics` + `world.capacities`
10
- * both flatten into `state.systems`. `world.politics` / `world.statuses`
10
+ * both flatten into `state.metrics`. `world.politics` / `world.statuses`
11
11
  * / `world.environment` each have their own runtime bag.
12
12
  *
13
13
  * @module paracosm/engine/compiler/state-shape-block
@@ -7,7 +7,7 @@
7
7
  * Paracosm's runtime `SimulationState` carries `systems`, `politics`,
8
8
  * `statuses`, `environment`, `agents`, `metadata` at the top level.
9
9
  * Scenario-declared keys under `world.metrics` + `world.capacities`
10
- * both flatten into `state.systems`. `world.politics` / `world.statuses`
10
+ * both flatten into `state.metrics`. `world.politics` / `world.statuses`
11
11
  * / `world.environment` each have their own runtime bag.
12
12
  *
13
13
  * @module paracosm/engine/compiler/state-shape-block
@@ -23,14 +23,14 @@ export function buildStateShapeBlock(scenarioJson) {
23
23
  const labels = (scenarioJson.labels ?? {});
24
24
  const timeUnit = labels.timeUnitNoun ?? 'tick';
25
25
  const timeUnitPlural = labels.timeUnitNounPlural ?? 'ticks';
26
- // world.metrics and world.capacities both flatten into state.systems at runtime.
26
+ // world.metrics and world.capacities both flatten into state.metrics at runtime.
27
27
  const systemsKeys = Array.from(new Set([...keys(world.metrics), ...keys(world.capacities)]));
28
28
  const politicsKeys = keys(world.politics);
29
29
  const statusesKeys = keys(world.statuses);
30
30
  const environmentKeys = keys(world.environment);
31
31
  return `AVAILABLE STATE SHAPE (read-only, flat):
32
32
 
33
- state.systems = Record<string, number>
33
+ state.metrics = Record<string, number>
34
34
  declared keys: ${listOrNone(systemsKeys)}
35
35
  (population + morale also present as Mars-heritage defaults; scenario may omit them.)
36
36
  state.politics = Record<string, number | string | boolean>
@@ -43,8 +43,8 @@ state.agents = Array<{ core, health, career, social, narrative, hexaco, promotio
43
43
  state.metadata = { simulationId, leaderId, seed, startTime, currentTime, currentTurn }
44
44
 
45
45
  RULES:
46
- - Access pattern is state.<bag>.<key> — flat, never nested. state.systems.<key> is always a number.
47
- - Only reference keys in the declared lists above. Unknown keys are undefined and will throw on .toFixed() / nested property access. Defensive access like \`(state.systems.foo ?? 0)\` is safer than bare \`state.systems.foo\`.
46
+ - Access pattern is state.<bag>.<key> — flat, never nested. state.metrics.<key> is always a number.
47
+ - Only reference keys in the declared lists above. Unknown keys are undefined and will throw on .toFixed() / nested property access. Defensive access like \`(state.metrics.foo ?? 0)\` is safer than bare \`state.metrics.foo\`.
48
48
  - Time is measured in ${timeUnit} units (plural: ${timeUnitPlural}). Use that vocabulary in any user-visible strings.`;
49
49
  }
50
50
  //# sourceMappingURL=state-shape-block.js.map
@@ -43,9 +43,9 @@ export interface CompileOptions {
43
43
  generateText?: GenerateTextFn;
44
44
  /** Progress callback for each hook being generated. */
45
45
  onProgress?: (hookName: string, status: 'generating' | 'cached' | 'done' | 'fallback') => void;
46
- /** Seed text to ingest into the scenario's knowledge bundle via LLM extraction + optional web search. */
46
+ /** Prompt, brief, or document text to ingest into the scenario's knowledge bundle via LLM extraction + optional web search. */
47
47
  seedText?: string;
48
- /** Seed URL to fetch and ingest. If set, seedText is ignored. */
48
+ /** URL to fetch and ingest as source material. If set, seedText is ignored. */
49
49
  seedUrl?: string;
50
50
  /** Enable live web search during seed ingestion. Requires search API keys. Default: true. */
51
51
  webSearch?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,eAAe,EACX,MAAM,GACN;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KACF,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;IAC/F,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,eAAe,EACX,MAAM,GACN;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KACF,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;IAC/F,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B"}
@@ -90,7 +90,7 @@ export function validateFingerprint(fn) {
90
90
  try {
91
91
  const mockState = {
92
92
  agents: [makeTestColonist()],
93
- systems: { morale: 0.6, population: 80, foodMonthsReserve: 6, powerKw: 300, infrastructureModules: 10, scienceOutput: 5, lifeSupportCapacity: 100, pressurizedVolumeM3: 2000, waterLitersPerDay: 500 },
93
+ metrics: { morale: 0.6, population: 80, foodMonthsReserve: 6, powerKw: 300, infrastructureModules: 10, scienceOutput: 5, lifeSupportCapacity: 100, pressurizedVolumeM3: 2000, waterLitersPerDay: 500 },
94
94
  politics: { earthDependencyPct: 50, governanceStatus: 'earth-governed', independencePressure: 0.3 },
95
95
  statuses: {},
96
96
  environment: {},
@@ -1,10 +1,10 @@
1
1
  import type { SimulationState, Agent, TurnEvent, HexacoProfile, TurnOutcome, Department } from './state.js';
2
- import type { WorldSystems, WorldPolitics } from './state.js';
2
+ import type { WorldMetrics, WorldPolitics } from './state.js';
3
3
  import type { ScenarioPackage } from '../types.js';
4
4
  import { type KeyPersonnel } from './agent-generator.js';
5
5
  import type { KernelSnapshot } from './snapshot.js';
6
6
  export interface SystemsPatch {
7
- systems?: Partial<WorldSystems>;
7
+ metrics?: Partial<WorldMetrics>;
8
8
  politics?: Partial<WorldPolitics>;
9
9
  agentUpdates?: Array<{
10
10
  agentId: string;
@@ -27,7 +27,7 @@ export interface SimulationInitOverrides {
27
27
  * hardcoded defaults only.
28
28
  */
29
29
  scenario?: ScenarioPackage;
30
- startingResources?: Partial<WorldSystems>;
30
+ startingResources?: Partial<WorldMetrics>;
31
31
  startingPolitics?: Partial<WorldPolitics>;
32
32
  startingStatuses?: Record<string, string | boolean>;
33
33
  startingEnvironment?: Record<string, number | string | boolean>;
@@ -90,7 +90,7 @@ export declare class SimulationKernel {
90
90
  /** Promote a colonist to a department head role. */
91
91
  promoteAgent(agentId: string, dept: Department, role: string, promotedBy: string): void;
92
92
  /** Apply additive deltas to world systems (not absolute values). */
93
- applySystemDeltas(deltas: Partial<WorldSystems>, events?: TurnEvent[]): void;
93
+ applySystemDeltas(deltas: Partial<WorldMetrics>, events?: TurnEvent[]): void;
94
94
  /** Apply additive deltas to world politics. */
95
95
  applyPoliticsDeltas(deltas: Partial<WorldPolitics>, events?: TurnEvent[]): void;
96
96
  /** Apply personality drift to all promoted colonists. */