paracosm 0.7.407 → 0.7.409
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -38
- package/dist/cli/pair-runner.d.ts +17 -0
- package/dist/cli/pair-runner.d.ts.map +1 -1
- package/dist/cli/pair-runner.js +81 -0
- package/dist/cli/pair-runner.js.map +1 -1
- package/dist/cli/server-app.d.ts.map +1 -1
- package/dist/cli/server-app.js +47 -6
- package/dist/cli/server-app.js.map +1 -1
- package/dist/cli/sim-config.d.ts +23 -0
- package/dist/cli/sim-config.d.ts.map +1 -1
- package/dist/cli/sim-config.js +10 -1
- package/dist/cli/sim-config.js.map +1 -1
- package/dist/engine/compiler/scenario-fixture.d.ts +6 -4
- package/dist/engine/compiler/scenario-fixture.d.ts.map +1 -1
- package/dist/engine/compiler/scenario-fixture.js +21 -0
- package/dist/engine/compiler/scenario-fixture.js.map +1 -1
- package/dist/engine/compiler/state-shape-block.d.ts +7 -11
- package/dist/engine/compiler/state-shape-block.d.ts.map +1 -1
- package/dist/engine/compiler/state-shape-block.js +14 -15
- package/dist/engine/compiler/state-shape-block.js.map +1 -1
- package/dist/engine/compiler/validate.d.ts.map +1 -1
- package/dist/engine/compiler/validate.js +2 -0
- package/dist/engine/compiler/validate.js.map +1 -1
- package/dist/engine/core/kernel.d.ts +38 -0
- package/dist/engine/core/kernel.d.ts.map +1 -1
- package/dist/engine/core/kernel.js +142 -11
- package/dist/engine/core/kernel.js.map +1 -1
- package/dist/engine/core/rng.d.ts +10 -2
- package/dist/engine/core/rng.d.ts.map +1 -1
- package/dist/engine/core/rng.js +20 -6
- package/dist/engine/core/rng.js.map +1 -1
- package/dist/engine/core/snapshot.d.ts +53 -0
- package/dist/engine/core/snapshot.d.ts.map +1 -0
- package/dist/engine/core/snapshot.js +6 -0
- package/dist/engine/core/snapshot.js.map +1 -0
- package/dist/engine/core/state.d.ts +14 -0
- package/dist/engine/core/state.d.ts.map +1 -1
- package/dist/engine/schema/artifact.d.ts +4 -0
- package/dist/engine/schema/artifact.d.ts.map +1 -1
- package/dist/engine/schema/primitives.d.ts +4 -0
- package/dist/engine/schema/primitives.d.ts.map +1 -1
- package/dist/engine/schema/primitives.js +13 -0
- package/dist/engine/schema/primitives.js.map +1 -1
- package/dist/engine/schema/stream.d.ts +2 -0
- package/dist/engine/schema/stream.d.ts.map +1 -1
- package/dist/engine/schema/stream.js +14 -0
- package/dist/engine/schema/stream.js.map +1 -1
- package/dist/runtime/agent-memory.d.ts +1 -1
- package/dist/runtime/agent-memory.d.ts.map +1 -1
- package/dist/runtime/agent-memory.js +4 -2
- package/dist/runtime/agent-memory.js.map +1 -1
- package/dist/runtime/agent-reactions.d.ts +6 -1
- package/dist/runtime/agent-reactions.d.ts.map +1 -1
- package/dist/runtime/agent-reactions.js +3 -1
- package/dist/runtime/agent-reactions.js.map +1 -1
- package/dist/runtime/build-artifact.d.ts +27 -2
- package/dist/runtime/build-artifact.d.ts.map +1 -1
- package/dist/runtime/build-artifact.js +26 -3
- package/dist/runtime/build-artifact.js.map +1 -1
- package/dist/runtime/chat-agents.d.ts +9 -1
- package/dist/runtime/chat-agents.d.ts.map +1 -1
- package/dist/runtime/chat-agents.js +13 -3
- package/dist/runtime/chat-agents.js.map +1 -1
- package/dist/runtime/contracts.d.ts +25 -7
- package/dist/runtime/contracts.d.ts.map +1 -1
- package/dist/runtime/orchestrator.d.ts +27 -0
- package/dist/runtime/orchestrator.d.ts.map +1 -1
- package/dist/runtime/orchestrator.js +90 -28
- package/dist/runtime/orchestrator.js.map +1 -1
- package/dist/runtime/reaction-step.d.ts +8 -0
- package/dist/runtime/reaction-step.d.ts.map +1 -1
- package/dist/runtime/reaction-step.js +1 -0
- package/dist/runtime/reaction-step.js.map +1 -1
- package/dist/runtime/world-model/index.d.ts +261 -0
- package/dist/runtime/world-model/index.d.ts.map +1 -0
- package/dist/runtime/world-model/index.js +285 -0
- package/dist/runtime/world-model/index.js.map +1 -0
- package/package.json +15 -2
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build the "AVAILABLE STATE SHAPE" block that every state-accessing
|
|
3
3
|
* generator's system prompt includes. Declares the exact flat key list
|
|
4
|
-
* on each state bag so the LLM cannot silently hallucinate
|
|
5
|
-
* access patterns
|
|
6
|
-
* that don't exist at runtime.
|
|
4
|
+
* on each runtime state bag so the LLM cannot silently hallucinate
|
|
5
|
+
* nested access patterns.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* are both expected to land under `state.systems` when the kernel is
|
|
14
|
-
* extended via `startingResources`; `world.statuses` / `world.environment`
|
|
15
|
-
* are purely documentation today and have no runtime projection.
|
|
7
|
+
* Paracosm's runtime `SimulationState` carries `systems`, `politics`,
|
|
8
|
+
* `statuses`, `environment`, `agents`, `metadata` at the top level.
|
|
9
|
+
* Scenario-declared keys under `world.metrics` + `world.capacities`
|
|
10
|
+
* both flatten into `state.systems`. `world.politics` / `world.statuses`
|
|
11
|
+
* / `world.environment` each have their own runtime bag.
|
|
16
12
|
*
|
|
17
13
|
* @module paracosm/engine/compiler/state-shape-block
|
|
18
14
|
*/
|
|
@@ -27,11 +23,11 @@ export function buildStateShapeBlock(scenarioJson) {
|
|
|
27
23
|
const labels = (scenarioJson.labels ?? {});
|
|
28
24
|
const timeUnit = labels.timeUnitNoun ?? 'tick';
|
|
29
25
|
const timeUnitPlural = labels.timeUnitNounPlural ?? 'ticks';
|
|
30
|
-
//
|
|
31
|
-
// runtime. Union them in the declared-key list so the LLM knows every
|
|
32
|
-
// number it can read under state.systems.
|
|
26
|
+
// world.metrics and world.capacities both flatten into state.systems at runtime.
|
|
33
27
|
const systemsKeys = Array.from(new Set([...keys(world.metrics), ...keys(world.capacities)]));
|
|
34
28
|
const politicsKeys = keys(world.politics);
|
|
29
|
+
const statusesKeys = keys(world.statuses);
|
|
30
|
+
const environmentKeys = keys(world.environment);
|
|
35
31
|
return `AVAILABLE STATE SHAPE (read-only, flat):
|
|
36
32
|
|
|
37
33
|
state.systems = Record<string, number>
|
|
@@ -39,12 +35,15 @@ state.systems = Record<string, number>
|
|
|
39
35
|
(population + morale also present as Mars-heritage defaults; scenario may omit them.)
|
|
40
36
|
state.politics = Record<string, number | string | boolean>
|
|
41
37
|
declared keys: ${listOrNone(politicsKeys)}
|
|
38
|
+
state.statuses = Record<string, string | boolean>
|
|
39
|
+
declared keys: ${listOrNone(statusesKeys)}
|
|
40
|
+
state.environment = Record<string, number | string | boolean>
|
|
41
|
+
declared keys: ${listOrNone(environmentKeys)}
|
|
42
42
|
state.agents = Array<{ core, health, career, social, narrative, hexaco, promotion?, hexacoHistory, memory }>
|
|
43
43
|
state.metadata = { simulationId, leaderId, seed, startTime, currentTime, currentTurn }
|
|
44
44
|
|
|
45
45
|
RULES:
|
|
46
46
|
- Access pattern is state.<bag>.<key> — flat, never nested. state.systems.<key> is always a number.
|
|
47
|
-
- state.capacities, state.statuses, state.environment DO NOT EXIST at runtime — they are scenario-declaration vocabulary only. Any access to state.capacities.anything throws.
|
|
48
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\`.
|
|
49
48
|
- Time is measured in ${timeUnit} units (plural: ${timeUnitPlural}). Use that vocabulary in any user-visible strings.`;
|
|
50
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-shape-block.js","sourceRoot":"","sources":["../../../src/engine/compiler/state-shape-block.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"state-shape-block.js","sourceRoot":"","sources":["../../../src/engine/compiler/state-shape-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,SAAS,IAAI,CAAC,GAA0C;IACtD,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,EAAY;IAC9B,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,YAAqC;IACxE,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAA0D,CAAC;IAClG,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAA2D,CAAC;IACrG,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,IAAI,OAAO,CAAC;IAE5D,iFAAiF;IACjF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEhD,OAAO;;;mBAGU,UAAU,CAAC,WAAW,CAAC;;;mBAGvB,UAAU,CAAC,YAAY,CAAC;;mBAExB,UAAU,CAAC,YAAY,CAAC;;mBAExB,UAAU,CAAC,eAAe,CAAC;;;;;;;wBAOtB,QAAQ,mBAAmB,cAAc,qDAAqD,CAAC;AACvH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAA0B,aAAa,EAAE,MAAM,aAAa,CAAC;AAczE,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB/G;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAa9I;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoB5H;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/engine/compiler/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAA0B,aAAa,EAAE,MAAM,aAAa,CAAC;AAczE,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB/G;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAa9I;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoB5H;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBzG;AAED,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAanG;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CASjH"}
|
|
@@ -92,6 +92,8 @@ export function validateFingerprint(fn) {
|
|
|
92
92
|
agents: [makeTestColonist()],
|
|
93
93
|
systems: { 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
|
+
statuses: {},
|
|
96
|
+
environment: {},
|
|
95
97
|
metadata: { simulationId: 'test', leaderId: 'test', seed: 100, startTime: 2035, currentTime: 2070, currentTurn: 8 },
|
|
96
98
|
eventLog: [],
|
|
97
99
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/engine/compiler/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/engine/compiler/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { SimulationState, Agent, TurnEvent, HexacoProfile, TurnOutcome, Department } from './state.js';
|
|
2
2
|
import type { WorldSystems, WorldPolitics } from './state.js';
|
|
3
|
+
import type { ScenarioPackage } from '../types.js';
|
|
3
4
|
import { type KeyPersonnel } from './agent-generator.js';
|
|
5
|
+
import type { KernelSnapshot } from './snapshot.js';
|
|
4
6
|
export interface SystemsPatch {
|
|
5
7
|
systems?: Partial<WorldSystems>;
|
|
6
8
|
politics?: Partial<WorldPolitics>;
|
|
@@ -18,14 +20,50 @@ export interface PolicyEffect {
|
|
|
18
20
|
export interface SimulationInitOverrides {
|
|
19
21
|
startTime?: number;
|
|
20
22
|
initialPopulation?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Source for scenario-declared world bag initials. When present, the
|
|
25
|
+
* kernel seeds each runtime bag from `scenario.world.*` before
|
|
26
|
+
* applying the explicit overlay fields below. Absent → Mars-heritage
|
|
27
|
+
* hardcoded defaults only.
|
|
28
|
+
*/
|
|
29
|
+
scenario?: ScenarioPackage;
|
|
21
30
|
startingResources?: Partial<WorldSystems>;
|
|
22
31
|
startingPolitics?: Partial<WorldPolitics>;
|
|
32
|
+
startingStatuses?: Record<string, string | boolean>;
|
|
33
|
+
startingEnvironment?: Record<string, number | string | boolean>;
|
|
23
34
|
}
|
|
24
35
|
export declare class SimulationKernel {
|
|
25
36
|
private state;
|
|
26
37
|
private rng;
|
|
27
38
|
constructor(seed: number, leaderId: string, keyPersonnel: KeyPersonnel[], init?: SimulationInitOverrides);
|
|
28
39
|
getState(): SimulationState;
|
|
40
|
+
/**
|
|
41
|
+
* Capture a {@link KernelSnapshot} bundle. The returned object is
|
|
42
|
+
* plain JSON-safe data: `JSON.stringify(snap)` + `JSON.parse` +
|
|
43
|
+
* `SimulationKernel.fromSnapshot(parsed, scenarioId)` round-trips
|
|
44
|
+
* to a new kernel in the same state. Used by
|
|
45
|
+
* `WorldModel.snapshot()` + `fork()` for mid-run counterfactuals.
|
|
46
|
+
*
|
|
47
|
+
* @param scenarioId - Scenario id the snapshot is being taken
|
|
48
|
+
* against. Stamped into the snapshot so `fromSnapshot` can
|
|
49
|
+
* verify the target WorldModel's scenario matches.
|
|
50
|
+
*/
|
|
51
|
+
toSnapshot(scenarioId: string): KernelSnapshot;
|
|
52
|
+
/**
|
|
53
|
+
* Reverse of {@link SimulationKernel.toSnapshot}. Constructs a
|
|
54
|
+
* fresh kernel positioned at the snapshot's turn, with simulation
|
|
55
|
+
* state + PRNG state + metadata fully restored. The returned
|
|
56
|
+
* kernel is indistinguishable from the one that produced the
|
|
57
|
+
* snapshot as far as subsequent `advanceTurn` calls are concerned.
|
|
58
|
+
*
|
|
59
|
+
* @param snap - The captured snapshot.
|
|
60
|
+
* @param expectedScenarioId - Scenario id the caller expects the
|
|
61
|
+
* snapshot to match. Throws when they differ; this is the gate
|
|
62
|
+
* against accidental cross-scenario forks.
|
|
63
|
+
* @throws Error when `snap.snapshotVersion !== 1` or when
|
|
64
|
+
* `snap.scenarioId !== expectedScenarioId`.
|
|
65
|
+
*/
|
|
66
|
+
static fromSnapshot(snap: KernelSnapshot, expectedScenarioId: string): SimulationKernel;
|
|
29
67
|
getFeaturedAgents(): Agent[];
|
|
30
68
|
getAliveAgents(): Agent[];
|
|
31
69
|
getAliveCount(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../src/engine/core/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../src/engine/core/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,50 @@
|
|
|
1
1
|
import { SeededRng } from './rng.js';
|
|
2
2
|
import { generateInitialPopulation } from './agent-generator.js';
|
|
3
3
|
import { progressBetweenTurns, applyPersonalityDrift, ROLE_ACTIVATIONS } from './progression.js';
|
|
4
|
+
import { CURRENT_SNAPSHOT_VERSION } from './snapshot.js';
|
|
5
|
+
/** Pick the declared initial value; fall back to a type-appropriate zero. */
|
|
6
|
+
function declaredInitial(def) {
|
|
7
|
+
if (def.initial !== undefined)
|
|
8
|
+
return def.initial;
|
|
9
|
+
switch (def.type) {
|
|
10
|
+
case 'string': return '';
|
|
11
|
+
case 'boolean': return false;
|
|
12
|
+
case 'number':
|
|
13
|
+
default: return 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Project a scenario bag declaration to a runtime record, coerced per type. */
|
|
17
|
+
function seedNumericBag(bag) {
|
|
18
|
+
const out = {};
|
|
19
|
+
if (!bag)
|
|
20
|
+
return out;
|
|
21
|
+
for (const [key, def] of Object.entries(bag)) {
|
|
22
|
+
const v = declaredInitial(def);
|
|
23
|
+
if (typeof v === 'number')
|
|
24
|
+
out[key] = v;
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
function seedStringOrBooleanBag(bag) {
|
|
29
|
+
const out = {};
|
|
30
|
+
if (!bag)
|
|
31
|
+
return out;
|
|
32
|
+
for (const [key, def] of Object.entries(bag)) {
|
|
33
|
+
const v = declaredInitial(def);
|
|
34
|
+
if (typeof v === 'string' || typeof v === 'boolean')
|
|
35
|
+
out[key] = v;
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
function seedAnyBag(bag) {
|
|
40
|
+
const out = {};
|
|
41
|
+
if (!bag)
|
|
42
|
+
return out;
|
|
43
|
+
for (const [key, def] of Object.entries(bag)) {
|
|
44
|
+
out[key] = declaredInitial(def);
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
4
48
|
export class SimulationKernel {
|
|
5
49
|
state;
|
|
6
50
|
rng;
|
|
@@ -8,6 +52,17 @@ export class SimulationKernel {
|
|
|
8
52
|
this.rng = new SeededRng(seed);
|
|
9
53
|
const startTime = init.startTime ?? 2035;
|
|
10
54
|
const agents = generateInitialPopulation(seed, startTime, keyPersonnel, init.initialPopulation ?? 100);
|
|
55
|
+
// Layer sources: Mars-heritage defaults → scenario declarations →
|
|
56
|
+
// caller overlays (last writer wins). Scenario declarations flow
|
|
57
|
+
// through `init.scenario?.world.*`; absent → bag is empty.
|
|
58
|
+
const scenarioWorld = (init.scenario?.world ?? {});
|
|
59
|
+
const scenarioSystems = {
|
|
60
|
+
...seedNumericBag(scenarioWorld.metrics),
|
|
61
|
+
...seedNumericBag(scenarioWorld.capacities),
|
|
62
|
+
};
|
|
63
|
+
const scenarioPolitics = seedAnyBag(scenarioWorld.politics);
|
|
64
|
+
const scenarioStatuses = seedStringOrBooleanBag(scenarioWorld.statuses);
|
|
65
|
+
const scenarioEnvironment = seedAnyBag(scenarioWorld.environment);
|
|
11
66
|
this.state = {
|
|
12
67
|
metadata: {
|
|
13
68
|
simulationId: `sim-${seed}-${leaderId.toLowerCase().replace(/\s+/g, '-')}`,
|
|
@@ -15,26 +70,102 @@ export class SimulationKernel {
|
|
|
15
70
|
startTime, currentTime: startTime, currentTurn: 0,
|
|
16
71
|
},
|
|
17
72
|
systems: {
|
|
73
|
+
// Mars-heritage numerics
|
|
18
74
|
population: agents.length,
|
|
19
|
-
powerKw:
|
|
20
|
-
foodMonthsReserve:
|
|
21
|
-
waterLitersPerDay:
|
|
22
|
-
pressurizedVolumeM3:
|
|
23
|
-
lifeSupportCapacity:
|
|
24
|
-
infrastructureModules:
|
|
25
|
-
scienceOutput:
|
|
26
|
-
morale:
|
|
75
|
+
powerKw: 400,
|
|
76
|
+
foodMonthsReserve: 18,
|
|
77
|
+
waterLitersPerDay: 800,
|
|
78
|
+
pressurizedVolumeM3: 3000,
|
|
79
|
+
lifeSupportCapacity: 120,
|
|
80
|
+
infrastructureModules: 3,
|
|
81
|
+
scienceOutput: 0,
|
|
82
|
+
morale: 0.85,
|
|
83
|
+
// Scenario declarations (metrics + capacities flattened)
|
|
84
|
+
...scenarioSystems,
|
|
85
|
+
// Caller overlay wins
|
|
86
|
+
...init.startingResources,
|
|
27
87
|
},
|
|
28
88
|
agents,
|
|
29
89
|
politics: {
|
|
30
|
-
earthDependencyPct:
|
|
31
|
-
governanceStatus:
|
|
32
|
-
independencePressure:
|
|
90
|
+
earthDependencyPct: 95,
|
|
91
|
+
governanceStatus: 'earth-governed',
|
|
92
|
+
independencePressure: 0.05,
|
|
93
|
+
...scenarioPolitics,
|
|
94
|
+
...init.startingPolitics,
|
|
95
|
+
},
|
|
96
|
+
statuses: {
|
|
97
|
+
...scenarioStatuses,
|
|
98
|
+
...init.startingStatuses,
|
|
99
|
+
},
|
|
100
|
+
environment: {
|
|
101
|
+
...scenarioEnvironment,
|
|
102
|
+
...init.startingEnvironment,
|
|
33
103
|
},
|
|
34
104
|
eventLog: [],
|
|
35
105
|
};
|
|
36
106
|
}
|
|
37
107
|
getState() { return structuredClone(this.state); }
|
|
108
|
+
/**
|
|
109
|
+
* Capture a {@link KernelSnapshot} bundle. The returned object is
|
|
110
|
+
* plain JSON-safe data: `JSON.stringify(snap)` + `JSON.parse` +
|
|
111
|
+
* `SimulationKernel.fromSnapshot(parsed, scenarioId)` round-trips
|
|
112
|
+
* to a new kernel in the same state. Used by
|
|
113
|
+
* `WorldModel.snapshot()` + `fork()` for mid-run counterfactuals.
|
|
114
|
+
*
|
|
115
|
+
* @param scenarioId - Scenario id the snapshot is being taken
|
|
116
|
+
* against. Stamped into the snapshot so `fromSnapshot` can
|
|
117
|
+
* verify the target WorldModel's scenario matches.
|
|
118
|
+
*/
|
|
119
|
+
toSnapshot(scenarioId) {
|
|
120
|
+
return {
|
|
121
|
+
snapshotVersion: CURRENT_SNAPSHOT_VERSION,
|
|
122
|
+
scenarioId,
|
|
123
|
+
turn: this.state.metadata.currentTurn,
|
|
124
|
+
time: this.state.metadata.currentTime,
|
|
125
|
+
state: structuredClone(this.state),
|
|
126
|
+
rngState: this.rng.getState(),
|
|
127
|
+
startTime: this.state.metadata.startTime,
|
|
128
|
+
seed: this.state.metadata.seed,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Reverse of {@link SimulationKernel.toSnapshot}. Constructs a
|
|
133
|
+
* fresh kernel positioned at the snapshot's turn, with simulation
|
|
134
|
+
* state + PRNG state + metadata fully restored. The returned
|
|
135
|
+
* kernel is indistinguishable from the one that produced the
|
|
136
|
+
* snapshot as far as subsequent `advanceTurn` calls are concerned.
|
|
137
|
+
*
|
|
138
|
+
* @param snap - The captured snapshot.
|
|
139
|
+
* @param expectedScenarioId - Scenario id the caller expects the
|
|
140
|
+
* snapshot to match. Throws when they differ; this is the gate
|
|
141
|
+
* against accidental cross-scenario forks.
|
|
142
|
+
* @throws Error when `snap.snapshotVersion !== 1` or when
|
|
143
|
+
* `snap.scenarioId !== expectedScenarioId`.
|
|
144
|
+
*/
|
|
145
|
+
static fromSnapshot(snap, expectedScenarioId) {
|
|
146
|
+
if (snap.snapshotVersion !== 1) {
|
|
147
|
+
throw new Error(`KernelSnapshot.snapshotVersion=${snap.snapshotVersion} is not supported; ` +
|
|
148
|
+
`this paracosm build only restores version 1.`);
|
|
149
|
+
}
|
|
150
|
+
if (snap.scenarioId !== expectedScenarioId) {
|
|
151
|
+
throw new Error(`KernelSnapshot scenarioId mismatch: snapshot was taken against ` +
|
|
152
|
+
`'${snap.scenarioId}' but the caller expects '${expectedScenarioId}'. ` +
|
|
153
|
+
`Cross-scenario forks are not supported.`);
|
|
154
|
+
}
|
|
155
|
+
// Build a minimal kernel shell via the existing constructor, then
|
|
156
|
+
// overwrite its state + rng with the snapshot. The constructor
|
|
157
|
+
// allocates a fresh SimulationState (including a generated agent
|
|
158
|
+
// roster); we throw that away and graft on the snapshot's
|
|
159
|
+
// deep-cloned one. This costs one allocation that we discard but
|
|
160
|
+
// keeps the kernel's invariants (rng seeded, metadata populated)
|
|
161
|
+
// intact for the same-shape grafting.
|
|
162
|
+
const kernel = new SimulationKernel(snap.seed, snap.state.metadata.leaderId, [], {
|
|
163
|
+
startTime: snap.startTime,
|
|
164
|
+
});
|
|
165
|
+
kernel.state = structuredClone(snap.state);
|
|
166
|
+
kernel.rng = SeededRng.fromState(snap.rngState);
|
|
167
|
+
return kernel;
|
|
168
|
+
}
|
|
38
169
|
getFeaturedAgents() {
|
|
39
170
|
return this.state.agents.filter(c => c.narrative.featured && c.health.alive);
|
|
40
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/engine/core/kernel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/engine/core/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Mulberry32
|
|
2
|
+
* Mulberry32: fast 32-bit seeded PRNG.
|
|
3
3
|
* Deterministic: same seed always produces same sequence.
|
|
4
4
|
*/
|
|
5
5
|
export declare class SeededRng {
|
|
6
|
-
private
|
|
6
|
+
private _state;
|
|
7
7
|
constructor(seed: number);
|
|
8
|
+
/** Current PRNG state, as a 32-bit integer. Captured into snapshots
|
|
9
|
+
* and restored via `fromState` for deterministic resume. */
|
|
10
|
+
getState(): number;
|
|
11
|
+
/** Construct a SeededRng positioned at a specific internal state.
|
|
12
|
+
* Different from the seed-based constructor: the returned RNG
|
|
13
|
+
* produces the same sequence as the source did AT THE MOMENT
|
|
14
|
+
* getState() was captured. */
|
|
15
|
+
static fromState(state: number): SeededRng;
|
|
8
16
|
/** Returns a float in [0, 1). */
|
|
9
17
|
next(): number;
|
|
10
18
|
/** Returns an integer in [min, max] inclusive. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../../../src/engine/core/rng.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../../../src/engine/core/rng.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,MAAM;IAIxB;iEAC6D;IAC7D,QAAQ,IAAI,MAAM;IAIlB;;;mCAG+B;IAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAM1C,iCAAiC;IACjC,IAAI,IAAI,MAAM;IAOd,kDAAkD;IAClD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrC,qDAAqD;IACrD,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIpC,4CAA4C;IAC5C,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC;IAI7B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;CAGlC"}
|
package/dist/engine/core/rng.js
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Mulberry32
|
|
2
|
+
* Mulberry32: fast 32-bit seeded PRNG.
|
|
3
3
|
* Deterministic: same seed always produces same sequence.
|
|
4
4
|
*/
|
|
5
5
|
export class SeededRng {
|
|
6
|
-
|
|
6
|
+
_state;
|
|
7
7
|
constructor(seed) {
|
|
8
|
-
this.
|
|
8
|
+
this._state = seed | 0;
|
|
9
|
+
}
|
|
10
|
+
/** Current PRNG state, as a 32-bit integer. Captured into snapshots
|
|
11
|
+
* and restored via `fromState` for deterministic resume. */
|
|
12
|
+
getState() {
|
|
13
|
+
return this._state;
|
|
14
|
+
}
|
|
15
|
+
/** Construct a SeededRng positioned at a specific internal state.
|
|
16
|
+
* Different from the seed-based constructor: the returned RNG
|
|
17
|
+
* produces the same sequence as the source did AT THE MOMENT
|
|
18
|
+
* getState() was captured. */
|
|
19
|
+
static fromState(state) {
|
|
20
|
+
const rng = new SeededRng(0);
|
|
21
|
+
rng._state = state | 0;
|
|
22
|
+
return rng;
|
|
9
23
|
}
|
|
10
24
|
/** Returns a float in [0, 1). */
|
|
11
25
|
next() {
|
|
12
|
-
this.
|
|
13
|
-
let t = Math.imul(this.
|
|
26
|
+
this._state = (this._state + 0x6d2b79f5) | 0;
|
|
27
|
+
let t = Math.imul(this._state ^ (this._state >>> 15), 1 | this._state);
|
|
14
28
|
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
|
|
15
29
|
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
16
30
|
}
|
|
@@ -28,7 +42,7 @@ export class SeededRng {
|
|
|
28
42
|
}
|
|
29
43
|
/** Derives a child RNG for a specific turn (deterministic sub-stream). */
|
|
30
44
|
turnSeed(turn) {
|
|
31
|
-
return new SeededRng(this.
|
|
45
|
+
return new SeededRng(this._state ^ (turn * 2654435761));
|
|
32
46
|
}
|
|
33
47
|
}
|
|
34
48
|
//# sourceMappingURL=rng.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rng.js","sourceRoot":"","sources":["../../../src/engine/core/rng.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,SAAS;IACZ,
|
|
1
|
+
{"version":3,"file":"rng.js","sourceRoot":"","sources":["../../../src/engine/core/rng.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,SAAS;IACZ,MAAM,CAAS;IAEvB,YAAY,IAAY;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;iEAC6D;IAC7D,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;mCAG+B;IAC/B,MAAM,CAAC,SAAS,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iCAAiC;IACjC,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC;IAED,kDAAkD;IAClD,GAAG,CAAC,GAAW,EAAE,GAAW;QAC1B,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,WAAmB;QACxB,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAI,GAAiB;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,0EAA0E;IAC1E,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializable kernel-state bundle. Captured by
|
|
3
|
+
* `SimulationKernel.toSnapshot` and consumed by
|
|
4
|
+
* `SimulationKernel.fromSnapshot` to round-trip a kernel through
|
|
5
|
+
* JSON + disk for mid-run counterfactual forks.
|
|
6
|
+
*
|
|
7
|
+
* @module paracosm/core/snapshot
|
|
8
|
+
*/
|
|
9
|
+
import type { SimulationState } from './state.js';
|
|
10
|
+
/**
|
|
11
|
+
* Serializable kernel snapshot. Every field is a plain JSON-safe
|
|
12
|
+
* type; the whole object round-trips through JSON.stringify + parse
|
|
13
|
+
* without data loss. Versioned via `snapshotVersion` so future shape
|
|
14
|
+
* changes can migrate without silent drift.
|
|
15
|
+
*/
|
|
16
|
+
export interface KernelSnapshot {
|
|
17
|
+
/** Format discriminator. Bump when the shape changes. Version 1 is
|
|
18
|
+
* the shape defined here and documented in the Tier 2 Spec 2A
|
|
19
|
+
* design doc. `fromSnapshot` throws on any other value. */
|
|
20
|
+
snapshotVersion: 1;
|
|
21
|
+
/** Scenario id the snapshot was taken against. `WorldModel.fork`
|
|
22
|
+
* asserts a match between the snapshot and the target WorldModel's
|
|
23
|
+
* scenario before restoring; cross-scenario forks throw. */
|
|
24
|
+
scenarioId: string;
|
|
25
|
+
/** Turn index the snapshot captures state at the end of. A snapshot
|
|
26
|
+
* taken after `kernel.advanceTurn(3, ...)` has `turn = 3` and
|
|
27
|
+
* represents the state going into turn 4. */
|
|
28
|
+
turn: number;
|
|
29
|
+
/** Simulation wall-clock time that corresponds to `turn`. Used by
|
|
30
|
+
* SimulationMetadata reconstruction so resumed kernels report the
|
|
31
|
+
* same origin as the parent run. */
|
|
32
|
+
time: number;
|
|
33
|
+
/** Full five-bag SimulationState (metrics/capacities/statuses/
|
|
34
|
+
* politics/environment + agents + eventLog + metadata),
|
|
35
|
+
* deep-cloned at capture time. */
|
|
36
|
+
state: SimulationState;
|
|
37
|
+
/** Mulberry32 PRNG state integer at capture. Resumed verbatim via
|
|
38
|
+
* `SeededRng.fromState`. */
|
|
39
|
+
rngState: number;
|
|
40
|
+
/** Scenario's original start time. Restored into
|
|
41
|
+
* SimulationMetadata so resumed kernels keep the same origin. */
|
|
42
|
+
startTime: number;
|
|
43
|
+
/** Original seed integer. The restored SeededRng is seeded from
|
|
44
|
+
* this value then forced to the captured `rngState`; keeping the
|
|
45
|
+
* original seed in the snapshot preserves audit-trail context. */
|
|
46
|
+
seed: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Current snapshot format version. Bump + add a migration in
|
|
50
|
+
* `fromSnapshot` when the shape changes.
|
|
51
|
+
*/
|
|
52
|
+
export declare const CURRENT_SNAPSHOT_VERSION: 1;
|
|
53
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/engine/core/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;gEAE4D;IAC5D,eAAe,EAAE,CAAC,CAAC;IACnB;;iEAE6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB;;kDAE8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb;;yCAEqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;uCAEmC;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB;iCAC6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB;sEACkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB;;uEAEmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/engine/core/snapshot.ts"],"names":[],"mappings":"AAiDA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC"}
|
|
@@ -196,6 +196,20 @@ export interface SimulationState {
|
|
|
196
196
|
systems: WorldSystems;
|
|
197
197
|
agents: Agent[];
|
|
198
198
|
politics: WorldPolitics;
|
|
199
|
+
/**
|
|
200
|
+
* Categorical state from `world.statuses` declarations
|
|
201
|
+
* (governance state, faction alignment, funding round, etc.).
|
|
202
|
+
* Keys are scenario-declared; always present (empty object when
|
|
203
|
+
* the scenario declares no statuses).
|
|
204
|
+
*/
|
|
205
|
+
statuses: Record<string, string | boolean>;
|
|
206
|
+
/**
|
|
207
|
+
* Environment conditions from `world.environment` declarations
|
|
208
|
+
* (external context: market growth pct, radiation, depth, etc.).
|
|
209
|
+
* Keys are scenario-declared; always present (empty object when
|
|
210
|
+
* the scenario declares no environment fields).
|
|
211
|
+
*/
|
|
212
|
+
environment: Record<string, number | string | boolean>;
|
|
199
213
|
eventLog: TurnEvent[];
|
|
200
214
|
}
|
|
201
215
|
//# sourceMappingURL=state.d.ts.map
|