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.
Files changed (78) hide show
  1. package/README.md +77 -38
  2. package/dist/cli/pair-runner.d.ts +17 -0
  3. package/dist/cli/pair-runner.d.ts.map +1 -1
  4. package/dist/cli/pair-runner.js +81 -0
  5. package/dist/cli/pair-runner.js.map +1 -1
  6. package/dist/cli/server-app.d.ts.map +1 -1
  7. package/dist/cli/server-app.js +47 -6
  8. package/dist/cli/server-app.js.map +1 -1
  9. package/dist/cli/sim-config.d.ts +23 -0
  10. package/dist/cli/sim-config.d.ts.map +1 -1
  11. package/dist/cli/sim-config.js +10 -1
  12. package/dist/cli/sim-config.js.map +1 -1
  13. package/dist/engine/compiler/scenario-fixture.d.ts +6 -4
  14. package/dist/engine/compiler/scenario-fixture.d.ts.map +1 -1
  15. package/dist/engine/compiler/scenario-fixture.js +21 -0
  16. package/dist/engine/compiler/scenario-fixture.js.map +1 -1
  17. package/dist/engine/compiler/state-shape-block.d.ts +7 -11
  18. package/dist/engine/compiler/state-shape-block.d.ts.map +1 -1
  19. package/dist/engine/compiler/state-shape-block.js +14 -15
  20. package/dist/engine/compiler/state-shape-block.js.map +1 -1
  21. package/dist/engine/compiler/validate.d.ts.map +1 -1
  22. package/dist/engine/compiler/validate.js +2 -0
  23. package/dist/engine/compiler/validate.js.map +1 -1
  24. package/dist/engine/core/kernel.d.ts +38 -0
  25. package/dist/engine/core/kernel.d.ts.map +1 -1
  26. package/dist/engine/core/kernel.js +142 -11
  27. package/dist/engine/core/kernel.js.map +1 -1
  28. package/dist/engine/core/rng.d.ts +10 -2
  29. package/dist/engine/core/rng.d.ts.map +1 -1
  30. package/dist/engine/core/rng.js +20 -6
  31. package/dist/engine/core/rng.js.map +1 -1
  32. package/dist/engine/core/snapshot.d.ts +53 -0
  33. package/dist/engine/core/snapshot.d.ts.map +1 -0
  34. package/dist/engine/core/snapshot.js +6 -0
  35. package/dist/engine/core/snapshot.js.map +1 -0
  36. package/dist/engine/core/state.d.ts +14 -0
  37. package/dist/engine/core/state.d.ts.map +1 -1
  38. package/dist/engine/schema/artifact.d.ts +4 -0
  39. package/dist/engine/schema/artifact.d.ts.map +1 -1
  40. package/dist/engine/schema/primitives.d.ts +4 -0
  41. package/dist/engine/schema/primitives.d.ts.map +1 -1
  42. package/dist/engine/schema/primitives.js +13 -0
  43. package/dist/engine/schema/primitives.js.map +1 -1
  44. package/dist/engine/schema/stream.d.ts +2 -0
  45. package/dist/engine/schema/stream.d.ts.map +1 -1
  46. package/dist/engine/schema/stream.js +14 -0
  47. package/dist/engine/schema/stream.js.map +1 -1
  48. package/dist/runtime/agent-memory.d.ts +1 -1
  49. package/dist/runtime/agent-memory.d.ts.map +1 -1
  50. package/dist/runtime/agent-memory.js +4 -2
  51. package/dist/runtime/agent-memory.js.map +1 -1
  52. package/dist/runtime/agent-reactions.d.ts +6 -1
  53. package/dist/runtime/agent-reactions.d.ts.map +1 -1
  54. package/dist/runtime/agent-reactions.js +3 -1
  55. package/dist/runtime/agent-reactions.js.map +1 -1
  56. package/dist/runtime/build-artifact.d.ts +27 -2
  57. package/dist/runtime/build-artifact.d.ts.map +1 -1
  58. package/dist/runtime/build-artifact.js +26 -3
  59. package/dist/runtime/build-artifact.js.map +1 -1
  60. package/dist/runtime/chat-agents.d.ts +9 -1
  61. package/dist/runtime/chat-agents.d.ts.map +1 -1
  62. package/dist/runtime/chat-agents.js +13 -3
  63. package/dist/runtime/chat-agents.js.map +1 -1
  64. package/dist/runtime/contracts.d.ts +25 -7
  65. package/dist/runtime/contracts.d.ts.map +1 -1
  66. package/dist/runtime/orchestrator.d.ts +27 -0
  67. package/dist/runtime/orchestrator.d.ts.map +1 -1
  68. package/dist/runtime/orchestrator.js +90 -28
  69. package/dist/runtime/orchestrator.js.map +1 -1
  70. package/dist/runtime/reaction-step.d.ts +8 -0
  71. package/dist/runtime/reaction-step.d.ts.map +1 -1
  72. package/dist/runtime/reaction-step.js +1 -0
  73. package/dist/runtime/reaction-step.js.map +1 -1
  74. package/dist/runtime/world-model/index.d.ts +261 -0
  75. package/dist/runtime/world-model/index.d.ts.map +1 -0
  76. package/dist/runtime/world-model/index.js +285 -0
  77. package/dist/runtime/world-model/index.js.map +1 -0
  78. 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 nested
5
- * access patterns like `state.systems.hull.integrity` or access bags
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
- * Important: paracosm's runtime `SimulationState` has ONLY `systems`,
9
- * `politics`, `agents`, and `metadata` at the top level — not
10
- * `capacities`, `statuses`, or `environment`. The latter three are
11
- * scenario-declaration vocabulary only; they do not produce runtime
12
- * state bags. Keys declared under `world.metrics` AND `world.capacities`
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
- // Both world.metrics and world.capacities flatten into state.systems at
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;;;;;;;;;;;;;;;;;GAiBG;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,wEAAwE;IACxE,sEAAsE;IACtE,0CAA0C;IAC1C,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;IAE1C,OAAO;;;mBAGU,UAAU,CAAC,WAAW,CAAC;;;mBAGvB,UAAU,CAAC,YAAY,CAAC;;;;;;;;wBAQnB,QAAQ,mBAAmB,cAAc,qDAAqD,CAAC;AACvH,CAAC"}
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,CAoBzG;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"}
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;AAE9D,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpF,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;KACnC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,GAAG,CAAY;gBAEX,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,IAAI,GAAE,uBAA4B;IAgC5G,QAAQ,IAAI,eAAe;IAI3B,iBAAiB,IAAI,KAAK,EAAE;IAI5B,cAAc,IAAI,KAAK,EAAE;IAIzB,aAAa,IAAI,MAAM;IAIvB,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;;;;IAWjC,2DAA2D;IAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAmCvC,+DAA+D;IAC/D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,GAAG,eAAe;IAiBhM,OAAO,CAAC,oBAAoB;IAY5B,uEAAuE;IACvE,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAE,MAAU,GAAG,KAAK,EAAE;IAc1D,oDAAoD;IACpD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAuBvF,oEAAoE;IACpE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,GAAE,SAAS,EAAO,GAAG,IAAI;IAgBhF,+CAA+C;IAC/C,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,GAAE,SAAS,EAAO,GAAG,IAAI;IAYnF,yDAAyD;IACzD,UAAU,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOhG,+DAA+D;IAC/D,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IA+B3J,MAAM,IAAI,eAAe;CAC1B"}
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: init.startingResources?.powerKw ?? 400,
20
- foodMonthsReserve: init.startingResources?.foodMonthsReserve ?? 18,
21
- waterLitersPerDay: init.startingResources?.waterLitersPerDay ?? 800,
22
- pressurizedVolumeM3: init.startingResources?.pressurizedVolumeM3 ?? 3000,
23
- lifeSupportCapacity: init.startingResources?.lifeSupportCapacity ?? 120,
24
- infrastructureModules: init.startingResources?.infrastructureModules ?? 3,
25
- scienceOutput: init.startingResources?.scienceOutput ?? 0,
26
- morale: init.startingResources?.morale ?? 0.85,
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: init.startingPolitics?.earthDependencyPct ?? 95,
31
- governanceStatus: init.startingPolitics?.governanceStatus ?? 'earth-governed',
32
- independencePressure: init.startingPolitics?.independencePressure ?? 0.05,
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 — fast 32-bit seeded PRNG.
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 state;
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,KAAK,CAAS;gBAEV,IAAI,EAAE,MAAM;IAIxB,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"}
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"}
@@ -1,16 +1,30 @@
1
1
  /**
2
- * Mulberry32 — fast 32-bit seeded PRNG.
2
+ * Mulberry32: fast 32-bit seeded PRNG.
3
3
  * Deterministic: same seed always produces same sequence.
4
4
  */
5
5
  export class SeededRng {
6
- state;
6
+ _state;
7
7
  constructor(seed) {
8
- this.state = seed | 0;
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.state = (this.state + 0x6d2b79f5) | 0;
13
- let t = Math.imul(this.state ^ (this.state >>> 15), 1 | this.state);
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.state ^ (turn * 2654435761));
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,KAAK,CAAS;IAEtB,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,iCAAiC;IACjC,IAAI;QACF,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,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,KAAK,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC;CACF"}
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,6 @@
1
+ /**
2
+ * Current snapshot format version. Bump + add a migration in
3
+ * `fromSnapshot` when the shape changes.
4
+ */
5
+ export const CURRENT_SNAPSHOT_VERSION = 1;
6
+ //# sourceMappingURL=snapshot.js.map
@@ -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