paracosm 0.0.1 → 0.2.0
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/LICENSE +190 -0
- package/README.md +224 -0
- package/dist/cli/sim-config.d.ts +100 -0
- package/dist/cli/sim-config.d.ts.map +1 -0
- package/dist/cli/sim-config.js +124 -0
- package/dist/cli/sim-config.js.map +1 -0
- package/dist/cli/types.d.ts +73 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/engine/_template/index.d.ts +9 -0
- package/dist/engine/_template/index.d.ts.map +1 -0
- package/dist/engine/_template/index.js +91 -0
- package/dist/engine/_template/index.js.map +1 -0
- package/dist/engine/compiler/cache.d.ts +12 -0
- package/dist/engine/compiler/cache.d.ts.map +1 -0
- package/dist/engine/compiler/cache.js +75 -0
- package/dist/engine/compiler/cache.js.map +1 -0
- package/dist/engine/compiler/generate-director.d.ts +9 -0
- package/dist/engine/compiler/generate-director.d.ts.map +1 -0
- package/dist/engine/compiler/generate-director.js +57 -0
- package/dist/engine/compiler/generate-director.js.map +1 -0
- package/dist/engine/compiler/generate-fingerprint.d.ts +12 -0
- package/dist/engine/compiler/generate-fingerprint.d.ts.map +1 -0
- package/dist/engine/compiler/generate-fingerprint.js +86 -0
- package/dist/engine/compiler/generate-fingerprint.js.map +1 -0
- package/dist/engine/compiler/generate-milestones.d.ts +11 -0
- package/dist/engine/compiler/generate-milestones.d.ts.map +1 -0
- package/dist/engine/compiler/generate-milestones.js +121 -0
- package/dist/engine/compiler/generate-milestones.js.map +1 -0
- package/dist/engine/compiler/generate-politics.d.ts +11 -0
- package/dist/engine/compiler/generate-politics.d.ts.map +1 -0
- package/dist/engine/compiler/generate-politics.js +85 -0
- package/dist/engine/compiler/generate-politics.js.map +1 -0
- package/dist/engine/compiler/generate-progression.d.ts +15 -0
- package/dist/engine/compiler/generate-progression.d.ts.map +1 -0
- package/dist/engine/compiler/generate-progression.js +104 -0
- package/dist/engine/compiler/generate-progression.js.map +1 -0
- package/dist/engine/compiler/generate-prompts.d.ts +11 -0
- package/dist/engine/compiler/generate-prompts.d.ts.map +1 -0
- package/dist/engine/compiler/generate-prompts.js +90 -0
- package/dist/engine/compiler/generate-prompts.js.map +1 -0
- package/dist/engine/compiler/generate-reactions.d.ts +12 -0
- package/dist/engine/compiler/generate-reactions.d.ts.map +1 -0
- package/dist/engine/compiler/generate-reactions.js +90 -0
- package/dist/engine/compiler/generate-reactions.js.map +1 -0
- package/dist/engine/compiler/index.d.ts +34 -0
- package/dist/engine/compiler/index.d.ts.map +1 -0
- package/dist/engine/compiler/index.js +270 -0
- package/dist/engine/compiler/index.js.map +1 -0
- package/dist/engine/compiler/seed-ingestion.d.ts +40 -0
- package/dist/engine/compiler/seed-ingestion.d.ts.map +1 -0
- package/dist/engine/compiler/seed-ingestion.js +232 -0
- package/dist/engine/compiler/seed-ingestion.js.map +1 -0
- package/dist/engine/compiler/types.d.ts +30 -0
- package/dist/engine/compiler/types.d.ts.map +1 -0
- package/dist/engine/compiler/types.js +5 -0
- package/dist/engine/compiler/types.js.map +1 -0
- package/dist/engine/compiler/validate.d.ts +37 -0
- package/dist/engine/compiler/validate.d.ts.map +1 -0
- package/dist/engine/compiler/validate.js +141 -0
- package/dist/engine/compiler/validate.js.map +1 -0
- package/dist/engine/core/agent-generator.d.ts +11 -0
- package/dist/engine/core/agent-generator.d.ts.map +1 -0
- package/dist/engine/core/agent-generator.js +85 -0
- package/dist/engine/core/agent-generator.js.map +1 -0
- package/dist/engine/core/kernel.d.ts +69 -0
- package/dist/engine/core/kernel.d.ts.map +1 -0
- package/dist/engine/core/kernel.js +223 -0
- package/dist/engine/core/kernel.js.map +1 -0
- package/dist/engine/core/progression.d.ts +38 -0
- package/dist/engine/core/progression.d.ts.map +1 -0
- package/dist/engine/core/progression.js +292 -0
- package/dist/engine/core/progression.js.map +1 -0
- package/dist/engine/core/rng.d.ts +19 -0
- package/dist/engine/core/rng.d.ts.map +1 -0
- package/dist/engine/core/rng.js +34 -0
- package/dist/engine/core/rng.js.map +1 -0
- package/dist/engine/core/state.d.ts +144 -0
- package/dist/engine/core/state.d.ts.map +1 -0
- package/dist/engine/core/state.js +5 -0
- package/dist/engine/core/state.js.map +1 -0
- package/dist/engine/effect-registry.d.ts +14 -0
- package/dist/engine/effect-registry.d.ts.map +1 -0
- package/dist/engine/effect-registry.js +28 -0
- package/dist/engine/effect-registry.js.map +1 -0
- package/dist/engine/event-taxonomy.d.ts +9 -0
- package/dist/engine/event-taxonomy.d.ts.map +1 -0
- package/dist/engine/event-taxonomy.js +13 -0
- package/dist/engine/event-taxonomy.js.map +1 -0
- package/dist/engine/index.d.ts +25 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +19 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/lunar/effects.d.ts +7 -0
- package/dist/engine/lunar/effects.d.ts.map +1 -0
- package/dist/engine/lunar/effects.js +16 -0
- package/dist/engine/lunar/effects.js.map +1 -0
- package/dist/engine/lunar/events.d.ts +3 -0
- package/dist/engine/lunar/events.d.ts.map +1 -0
- package/dist/engine/lunar/events.js +11 -0
- package/dist/engine/lunar/events.js.map +1 -0
- package/dist/engine/lunar/fingerprint.d.ts +5 -0
- package/dist/engine/lunar/fingerprint.d.ts.map +1 -0
- package/dist/engine/lunar/fingerprint.js +17 -0
- package/dist/engine/lunar/fingerprint.js.map +1 -0
- package/dist/engine/lunar/hooks.d.ts +10 -0
- package/dist/engine/lunar/hooks.d.ts.map +1 -0
- package/dist/engine/lunar/hooks.js +10 -0
- package/dist/engine/lunar/hooks.js.map +1 -0
- package/dist/engine/lunar/index.d.ts +8 -0
- package/dist/engine/lunar/index.d.ts.map +1 -0
- package/dist/engine/lunar/index.js +38 -0
- package/dist/engine/lunar/index.js.map +1 -0
- package/dist/engine/lunar/metrics.d.ts +4 -0
- package/dist/engine/lunar/metrics.d.ts.map +1 -0
- package/dist/engine/lunar/metrics.js +14 -0
- package/dist/engine/lunar/metrics.js.map +1 -0
- package/dist/engine/lunar/milestones.d.ts +3 -0
- package/dist/engine/lunar/milestones.d.ts.map +1 -0
- package/dist/engine/lunar/milestones.js +53 -0
- package/dist/engine/lunar/milestones.js.map +1 -0
- package/dist/engine/lunar/names.d.ts +4 -0
- package/dist/engine/lunar/names.d.ts.map +1 -0
- package/dist/engine/lunar/names.js +23 -0
- package/dist/engine/lunar/names.js.map +1 -0
- package/dist/engine/lunar/politics.d.ts +6 -0
- package/dist/engine/lunar/politics.d.ts.map +1 -0
- package/dist/engine/lunar/politics.js +13 -0
- package/dist/engine/lunar/politics.js.map +1 -0
- package/dist/engine/lunar/presets.d.ts +25 -0
- package/dist/engine/lunar/presets.d.ts.map +1 -0
- package/dist/engine/lunar/presets.js +24 -0
- package/dist/engine/lunar/presets.js.map +1 -0
- package/dist/engine/lunar/progression-hooks.d.ts +7 -0
- package/dist/engine/lunar/progression-hooks.d.ts.map +1 -0
- package/dist/engine/lunar/progression-hooks.js +20 -0
- package/dist/engine/lunar/progression-hooks.js.map +1 -0
- package/dist/engine/lunar/prompts.d.ts +10 -0
- package/dist/engine/lunar/prompts.d.ts.map +1 -0
- package/dist/engine/lunar/prompts.js +64 -0
- package/dist/engine/lunar/prompts.js.map +1 -0
- package/dist/engine/lunar/reactions.d.ts +5 -0
- package/dist/engine/lunar/reactions.d.ts.map +1 -0
- package/dist/engine/lunar/reactions.js +15 -0
- package/dist/engine/lunar/reactions.js.map +1 -0
- package/dist/engine/lunar/research-bundle.d.ts +8 -0
- package/dist/engine/lunar/research-bundle.d.ts.map +1 -0
- package/dist/engine/lunar/research-bundle.js +157 -0
- package/dist/engine/lunar/research-bundle.js.map +1 -0
- package/dist/engine/lunar/scenario.json +117 -0
- package/dist/engine/mars/effects.d.ts +18 -0
- package/dist/engine/mars/effects.d.ts.map +1 -0
- package/dist/engine/mars/effects.js +21 -0
- package/dist/engine/mars/effects.js.map +1 -0
- package/dist/engine/mars/events.d.ts +9 -0
- package/dist/engine/mars/events.d.ts.map +1 -0
- package/dist/engine/mars/events.js +12 -0
- package/dist/engine/mars/events.js.map +1 -0
- package/dist/engine/mars/fingerprint.d.ts +6 -0
- package/dist/engine/mars/fingerprint.d.ts.map +1 -0
- package/dist/engine/mars/fingerprint.js +21 -0
- package/dist/engine/mars/fingerprint.js.map +1 -0
- package/dist/engine/mars/hooks.d.ts +11 -0
- package/dist/engine/mars/hooks.d.ts.map +1 -0
- package/dist/engine/mars/hooks.js +11 -0
- package/dist/engine/mars/hooks.js.map +1 -0
- package/dist/engine/mars/index.d.ts +8 -0
- package/dist/engine/mars/index.d.ts.map +1 -0
- package/dist/engine/mars/index.js +44 -0
- package/dist/engine/mars/index.js.map +1 -0
- package/dist/engine/mars/metrics.d.ts +21 -0
- package/dist/engine/mars/metrics.d.ts.map +1 -0
- package/dist/engine/mars/metrics.js +25 -0
- package/dist/engine/mars/metrics.js.map +1 -0
- package/dist/engine/mars/milestones.d.ts +15 -0
- package/dist/engine/mars/milestones.d.ts.map +1 -0
- package/dist/engine/mars/milestones.js +72 -0
- package/dist/engine/mars/milestones.js.map +1 -0
- package/dist/engine/mars/names.d.ts +12 -0
- package/dist/engine/mars/names.d.ts.map +1 -0
- package/dist/engine/mars/names.js +45 -0
- package/dist/engine/mars/names.js.map +1 -0
- package/dist/engine/mars/politics.d.ts +7 -0
- package/dist/engine/mars/politics.d.ts.map +1 -0
- package/dist/engine/mars/politics.js +14 -0
- package/dist/engine/mars/politics.js.map +1 -0
- package/dist/engine/mars/presets.d.ts +29 -0
- package/dist/engine/mars/presets.d.ts.map +1 -0
- package/dist/engine/mars/presets.js +28 -0
- package/dist/engine/mars/presets.js.map +1 -0
- package/dist/engine/mars/progression-hooks.d.ts +8 -0
- package/dist/engine/mars/progression-hooks.d.ts.map +1 -0
- package/dist/engine/mars/progression-hooks.js +21 -0
- package/dist/engine/mars/progression-hooks.js.map +1 -0
- package/dist/engine/mars/prompts.d.ts +12 -0
- package/dist/engine/mars/prompts.d.ts.map +1 -0
- package/dist/engine/mars/prompts.js +75 -0
- package/dist/engine/mars/prompts.js.map +1 -0
- package/dist/engine/mars/reactions.d.ts +7 -0
- package/dist/engine/mars/reactions.d.ts.map +1 -0
- package/dist/engine/mars/reactions.js +24 -0
- package/dist/engine/mars/reactions.js.map +1 -0
- package/dist/engine/mars/research-bundle.d.ts +7 -0
- package/dist/engine/mars/research-bundle.d.ts.map +1 -0
- package/dist/engine/mars/research-bundle.js +174 -0
- package/dist/engine/mars/research-bundle.js.map +1 -0
- package/dist/engine/mars/scenario.json +118 -0
- package/dist/engine/metric-registry.d.ts +12 -0
- package/dist/engine/metric-registry.d.ts.map +1 -0
- package/dist/engine/metric-registry.js +26 -0
- package/dist/engine/metric-registry.js.map +1 -0
- package/dist/engine/types.d.ts +349 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +7 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/runtime/agent-memory.d.ts +43 -0
- package/dist/runtime/agent-memory.d.ts.map +1 -0
- package/dist/runtime/agent-memory.js +201 -0
- package/dist/runtime/agent-memory.js.map +1 -0
- package/dist/runtime/agent-reactions.d.ts +55 -0
- package/dist/runtime/agent-reactions.d.ts.map +1 -0
- package/dist/runtime/agent-reactions.js +136 -0
- package/dist/runtime/agent-reactions.js.map +1 -0
- package/dist/runtime/batch.d.ts +43 -0
- package/dist/runtime/batch.d.ts.map +1 -0
- package/dist/runtime/batch.js +49 -0
- package/dist/runtime/batch.js.map +1 -0
- package/dist/runtime/contracts.d.ts +127 -0
- package/dist/runtime/contracts.d.ts.map +1 -0
- package/dist/runtime/contracts.js +2 -0
- package/dist/runtime/contracts.js.map +1 -0
- package/dist/runtime/departments.d.ts +28 -0
- package/dist/runtime/departments.d.ts.map +1 -0
- package/dist/runtime/departments.js +111 -0
- package/dist/runtime/departments.js.map +1 -0
- package/dist/runtime/director.d.ts +92 -0
- package/dist/runtime/director.d.ts.map +1 -0
- package/dist/runtime/director.js +220 -0
- package/dist/runtime/director.js.map +1 -0
- package/dist/runtime/index.d.ts +16 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +12 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/orchestrator.d.ts +66 -0
- package/dist/runtime/orchestrator.d.ts.map +1 -0
- package/dist/runtime/orchestrator.js +821 -0
- package/dist/runtime/orchestrator.js.map +1 -0
- package/dist/runtime/research/knowledge-base.d.ts +14 -0
- package/dist/runtime/research/knowledge-base.d.ts.map +1 -0
- package/dist/runtime/research/knowledge-base.js +229 -0
- package/dist/runtime/research/knowledge-base.js.map +1 -0
- package/dist/runtime/research/research-memory.d.ts +21 -0
- package/dist/runtime/research/research-memory.d.ts.map +1 -0
- package/dist/runtime/research/research-memory.js +118 -0
- package/dist/runtime/research/research-memory.js.map +1 -0
- package/dist/runtime/research/research.d.ts +4 -0
- package/dist/runtime/research/research.d.ts.map +1 -0
- package/dist/runtime/research/research.js +138 -0
- package/dist/runtime/research/research.js.map +1 -0
- package/dist/runtime/research/scenario-research.d.ts +13 -0
- package/dist/runtime/research/scenario-research.d.ts.map +1 -0
- package/dist/runtime/research/scenario-research.js +58 -0
- package/dist/runtime/research/scenario-research.js.map +1 -0
- package/dist/runtime/research/scenarios.d.ts +3 -0
- package/dist/runtime/research/scenarios.d.ts.map +1 -0
- package/dist/runtime/research/scenarios.js +252 -0
- package/dist/runtime/research/scenarios.js.map +1 -0
- package/dist/runtime/runtime-helpers.d.ts +12 -0
- package/dist/runtime/runtime-helpers.d.ts.map +1 -0
- package/dist/runtime/runtime-helpers.js +33 -0
- package/dist/runtime/runtime-helpers.js.map +1 -0
- package/package.json +78 -4
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar-specific department prompt context lines.
|
|
3
|
+
*/
|
|
4
|
+
export function lunarDepartmentPromptLines(dept, state) {
|
|
5
|
+
const alive = state.agents.filter(c => c.health.alive);
|
|
6
|
+
const lines = [];
|
|
7
|
+
switch (dept) {
|
|
8
|
+
case 'medical': {
|
|
9
|
+
const avgDust = alive.length ? alive.reduce((s, c) => s + (c.health.cumulativeRadiationMsv ?? 0), 0) / alive.length : 0;
|
|
10
|
+
const avgBone = alive.length ? alive.reduce((s, c) => s + (c.health.boneDensityPct ?? 0), 0) / alive.length : 0;
|
|
11
|
+
lines.push('HEALTH:', `Avg regolith exposure: ${avgDust.toFixed(0)} | Avg bone/muscle: ${avgBone.toFixed(1)}%`, '');
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case 'engineering':
|
|
15
|
+
lines.push('INFRASTRUCTURE:', `Modules: ${state.colony.infrastructureModules} | Power: ${state.colony.powerKw}kW (solar + nuclear) | Life support: ${state.colony.lifeSupportCapacity}/${state.colony.population} | Volume: ${state.colony.pressurizedVolumeM3}m³`);
|
|
16
|
+
break;
|
|
17
|
+
case 'mining':
|
|
18
|
+
lines.push('MINING:', `Ice extraction active in permanently shadowed craters. Regolith processing for construction materials. ISRU capacity scales with power.`);
|
|
19
|
+
break;
|
|
20
|
+
case 'life-support':
|
|
21
|
+
lines.push('LIFE SUPPORT:', `Reserves: ${state.colony.foodMonthsReserve.toFixed(1)}mo | Water: ${state.colony.waterLitersPerDay}L/day | O2 from electrolysis. Crew to support: ${state.colony.population}`);
|
|
22
|
+
break;
|
|
23
|
+
case 'communications':
|
|
24
|
+
lines.push('COMMS:', `Earth visible from crater rim during ~70% of lunar day. Direct line-of-sight link. 1.3s signal delay. Relay satellite for far-side coverage.`);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
return lines;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Lunar-specific Crisis Director system instructions.
|
|
31
|
+
*/
|
|
32
|
+
export function lunarDirectorInstructions() {
|
|
33
|
+
return `You are the Crisis Director for a lunar outpost simulation. You observe outpost state and generate crises that test the crew's weaknesses, exploit consequences of prior decisions, and create narrative tension.
|
|
34
|
+
|
|
35
|
+
RULES:
|
|
36
|
+
1. Each crisis has exactly 2-3 options with stable IDs (option_a, option_b, option_c)
|
|
37
|
+
2. Exactly one option must be marked isRisky: true (higher upside, higher downside)
|
|
38
|
+
3. Crises must reference real lunar science (regolith toxicity, 1/6g effects, solar power cycles, ISRU)
|
|
39
|
+
4. Never repeat a crisis category from the immediately previous turn
|
|
40
|
+
5. Escalate: later crises should reference consequences of earlier decisions
|
|
41
|
+
6. Calibrate difficulty to outpost state
|
|
42
|
+
7. Include actual numbers in the crisis description
|
|
43
|
+
8. Specify which departments should analyze (2-4 departments per crisis)
|
|
44
|
+
|
|
45
|
+
CRISIS CATEGORIES:
|
|
46
|
+
- environmental: micrometeorites, thermal cycling, seismic activity, solar storms
|
|
47
|
+
- resource: water ice, regolith, power, oxygen shortage
|
|
48
|
+
- medical: dust toxicity, muscle atrophy, bone loss, radiation from solar events
|
|
49
|
+
- psychological: isolation, Earth-homesickness, crew tension, monotony
|
|
50
|
+
- political: Earth agency relations, commercial interests, international partners
|
|
51
|
+
- infrastructure: habitat damage, power systems, communications, mining equipment
|
|
52
|
+
- social: crew rotation, family separation, cultural friction
|
|
53
|
+
- technological: equipment failure, software, autonomous systems
|
|
54
|
+
|
|
55
|
+
AVAILABLE DEPARTMENTS (use ONLY these exact names):
|
|
56
|
+
- medical
|
|
57
|
+
- engineering
|
|
58
|
+
- mining
|
|
59
|
+
- life-support
|
|
60
|
+
- communications
|
|
61
|
+
|
|
62
|
+
Return ONLY valid JSON matching the standard crisis format.`;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/engine/lunar/prompts.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,KAAsB;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxH,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChH,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpH,MAAM;QACR,CAAC;QACD,KAAK,aAAa;YAChB,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,KAAK,CAAC,MAAM,CAAC,qBAAqB,aAAa,KAAK,CAAC,MAAM,CAAC,OAAO,wCAAwC,KAAK,CAAC,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,cAAc,KAAK,CAAC,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC;YACpQ,MAAM;QACR,KAAK,QAAQ;YACX,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,yIAAyI,CAAC,CAAC;YACjK,MAAM;QACR,KAAK,cAAc;YACjB,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,iBAAiB,kDAAkD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5M,MAAM;QACR,KAAK,gBAAgB;YACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,8IAA8I,CAAC,CAAC;YACrK,MAAM;IACV,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DA6BmD,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/reactions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAYpE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar-specific colonist reaction context.
|
|
3
|
+
*/
|
|
4
|
+
export function lunarReactionContext(colonist, ctx) {
|
|
5
|
+
const lines = [];
|
|
6
|
+
lines.push(`Stationed at lunar outpost. ${ctx.year - 2030} years on the Moon.`);
|
|
7
|
+
if (colonist.health?.boneDensityPct < 65) {
|
|
8
|
+
lines.push('Severe muscle and bone atrophy from 1/6g.');
|
|
9
|
+
}
|
|
10
|
+
if (colonist.health?.cumulativeRadiationMsv > 100) {
|
|
11
|
+
lines.push('Significant regolith dust exposure.');
|
|
12
|
+
}
|
|
13
|
+
return lines.join(' ');
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=reactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactions.js","sourceRoot":"","sources":["../../../src/engine/lunar/reactions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAa,EAAE,GAAQ;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,+BAA+B,GAAG,CAAC,IAAI,GAAG,IAAI,qBAAqB,CAAC,CAAC;IAEhF,IAAI,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,EAAE,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,GAAG,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { KnowledgeBundle } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lunar Outpost knowledge bundle. DOI-linked citations organized by topic.
|
|
4
|
+
* Covers Artemis program science, regolith toxicology, ISRU, low-gravity
|
|
5
|
+
* physiology, power systems, communications, and habitat engineering.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LUNAR_KNOWLEDGE_BUNDLE: KnowledgeBundle;
|
|
8
|
+
//# sourceMappingURL=research-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-bundle.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/research-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAsJpC,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar Outpost knowledge bundle. DOI-linked citations organized by topic.
|
|
3
|
+
* Covers Artemis program science, regolith toxicology, ISRU, low-gravity
|
|
4
|
+
* physiology, power systems, communications, and habitat engineering.
|
|
5
|
+
*/
|
|
6
|
+
export const LUNAR_KNOWLEDGE_BUNDLE = {
|
|
7
|
+
topics: {
|
|
8
|
+
'water-ice': {
|
|
9
|
+
canonicalFacts: [
|
|
10
|
+
{ claim: 'LCROSS mission confirmed water ice in permanently shadowed craters at the lunar south pole', source: 'Colaprete et al. 2010, Science', url: 'https://doi.org/10.1126/science.1186986', doi: '10.1126/science.1186986' },
|
|
11
|
+
{ claim: 'Chandrayaan-1 Moon Mineralogy Mapper detected widespread hydroxyl/water on the lunar surface', source: 'Pieters et al. 2009, Science', url: 'https://doi.org/10.1126/science.1178658', doi: '10.1126/science.1178658' },
|
|
12
|
+
{ claim: 'Neutron spectrometer data from Lunar Prospector mapped hydrogen concentrations in polar cold traps', source: 'Feldman et al. 1998, Science', url: 'https://doi.org/10.1126/science.281.5382.1496', doi: '10.1126/science.281.5382.1496' },
|
|
13
|
+
{ claim: 'ISRU water extraction from lunar regolith could yield 100-1000 kg per excavation cycle', source: 'Sanders & Larson 2015, NASA ISRU Roadmap', url: 'https://www.nasa.gov/isru' },
|
|
14
|
+
],
|
|
15
|
+
counterpoints: [
|
|
16
|
+
{ claim: 'Permanently shadowed crater temperatures reach 40K, requiring heated extraction equipment', source: 'Paige et al. 2010, Science', url: 'https://doi.org/10.1126/science.1187726' },
|
|
17
|
+
{ claim: 'Ice deposits may be mixed with regolith at low concentrations (1-10% by weight), complicating extraction', source: 'Li et al. 2018, PNAS', url: 'https://doi.org/10.1073/pnas.1802345115' },
|
|
18
|
+
],
|
|
19
|
+
departmentNotes: {
|
|
20
|
+
mining: 'Water ice extraction requires operating in permanently shadowed craters at 40K. Heated drills and volatile capture systems needed.',
|
|
21
|
+
'life-support': 'Water budget: 2.5L per person per day drinking, 25L total with recycling losses.',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
regolith: {
|
|
25
|
+
canonicalFacts: [
|
|
26
|
+
{ claim: 'Lunar regolith contains nano-scale iron particles and is abrasive and electrostatically charged', source: 'Taylor et al. 2005', url: 'https://doi.org/10.1016/j.asr.2005.01.020', doi: '10.1016/j.asr.2005.01.020' },
|
|
27
|
+
{ claim: 'Apollo astronauts reported regolith irritation: eye, skin, and respiratory symptoms after EVA', source: 'NASA Apollo Lessons Learned', url: 'https://www.nasa.gov/artemis' },
|
|
28
|
+
{ claim: 'Lunar dust adheres to all surfaces via van der Waals forces and triboelectric charging', source: 'Abbas et al. 2007, JGR', url: 'https://doi.org/10.1029/2005JE002625', doi: '10.1029/2005JE002625' },
|
|
29
|
+
{ claim: 'Simulated lunar dust causes inflammation and DNA damage in human lung cells in vitro', source: 'Lam et al. 2013, Inhalation Toxicology', url: 'https://doi.org/10.3109/08958378.2013.803614', doi: '10.3109/08958378.2013.803614' },
|
|
30
|
+
],
|
|
31
|
+
counterpoints: [
|
|
32
|
+
{ claim: 'No established occupational exposure limits exist for lunar dust; Apollo exposures were brief', source: 'Cain 2010, Acta Astronautica', url: 'https://doi.org/10.1016/j.actaastro.2010.01.012' },
|
|
33
|
+
],
|
|
34
|
+
departmentNotes: {
|
|
35
|
+
medical: 'Regolith dust is a respiratory and ocular hazard. Chronic exposure effects unknown. No safe dose established.',
|
|
36
|
+
engineering: 'Airlock dust mitigation is critical. Electrostatic precipitation and magnetic filtration under development.',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
'low-gravity': {
|
|
40
|
+
canonicalFacts: [
|
|
41
|
+
{ claim: 'Lunar gravity is 1.62 m/s2 (1/6 Earth). Long-term partial gravity physiological effects are unknown.', source: 'NASA Human Research Program', url: 'https://www.nasa.gov/hrp' },
|
|
42
|
+
{ claim: 'ISS bone density studies show 1-2% loss per month in microgravity; partial gravity effects are modeled but untested', source: 'Sibonga et al. 2019, npj Microgravity', url: 'https://doi.org/10.1038/s41526-019-0075-2', doi: '10.1038/s41526-019-0075-2' },
|
|
43
|
+
{ claim: 'Muscle atrophy in microgravity averages 5% per week without countermeasures', source: 'Fitts et al. 2010, J Physiol', url: 'https://doi.org/10.1113/jphysiol.2009.178517', doi: '10.1113/jphysiol.2009.178517' },
|
|
44
|
+
{ claim: 'Cardiovascular deconditioning occurs within days of reduced gravity exposure', source: 'Hughson et al. 2018, CMAJ', url: 'https://doi.org/10.1503/cmaj.180343', doi: '10.1503/cmaj.180343' },
|
|
45
|
+
],
|
|
46
|
+
counterpoints: [
|
|
47
|
+
{ claim: 'Centrifuge-based artificial gravity countermeasures remain experimental and unproven for partial-g stays', source: 'Clément 2017', url: 'https://doi.org/10.1007/s12217-017-9544-3' },
|
|
48
|
+
],
|
|
49
|
+
departmentNotes: {
|
|
50
|
+
medical: 'Exercise countermeasures designed for 0g may be insufficient for 1/6g long-duration stays. Children born in 1/6g may never tolerate Earth gravity.',
|
|
51
|
+
'life-support': 'Fluid systems behave differently in 1/6g. Waste processing and water recycling require redesign.',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
power: {
|
|
55
|
+
canonicalFacts: [
|
|
56
|
+
{ claim: 'Lunar south pole peaks of eternal light receive near-continuous sunlight for solar power', source: 'Bussey et al. 2010, Icarus', url: 'https://doi.org/10.1016/j.icarus.2010.08.005', doi: '10.1016/j.icarus.2010.08.005' },
|
|
57
|
+
{ claim: 'NASA Kilopower fission reactor designed for 1-10 kW lunar surface power', source: 'NASA STMD Kilopower', url: 'https://www.nasa.gov/kilopower' },
|
|
58
|
+
{ claim: 'Lunar south pole illumination varies from 80-90% annually at optimal ridge locations', source: 'Mazarico et al. 2011, Icarus', url: 'https://doi.org/10.1016/j.icarus.2010.10.030', doi: '10.1016/j.icarus.2010.10.030' },
|
|
59
|
+
],
|
|
60
|
+
counterpoints: [
|
|
61
|
+
{ claim: 'Lunar night at non-polar locations lasts 14 Earth days, requiring energy storage or nuclear backup', source: 'Engineering analysis', url: 'https://www.nasa.gov/artemis' },
|
|
62
|
+
{ claim: 'Solar panel degradation from micrometeorite impacts and regolith coating reduces efficiency over time', source: 'Katzan & Edwards 1991, NASA', url: 'https://ntrs.nasa.gov/citations/19910013747' },
|
|
63
|
+
],
|
|
64
|
+
departmentNotes: {
|
|
65
|
+
engineering: 'Solar viable at poles. Nuclear required for non-polar or lava tube locations. Redundancy critical.',
|
|
66
|
+
mining: 'Mining operations at permanently shadowed craters require independent power (no solar).',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
communications: {
|
|
70
|
+
canonicalFacts: [
|
|
71
|
+
{ claim: 'Earth-Moon signal delay is approximately 1.3 seconds one-way', source: 'NASA', url: 'https://moon.nasa.gov/' },
|
|
72
|
+
{ claim: 'Lunar far side requires relay satellite for Earth communication (Queqiao relay for Chang\'e 4)', source: 'ESA/CNSA', url: 'https://www.esa.int/Science_Exploration/Human_and_Robotic_Exploration/Exploration/Gateway' },
|
|
73
|
+
{ claim: 'NASA LunaNet will provide lunar communication and navigation infrastructure', source: 'NASA LunaNet', url: 'https://esc.gsfc.nasa.gov/projects/LunaNet' },
|
|
74
|
+
],
|
|
75
|
+
counterpoints: [
|
|
76
|
+
{ claim: 'South pole topology creates line-of-sight gaps between crater floor operations and rim-mounted antennas', source: 'Lunar terrain analysis', url: 'https://www.nasa.gov/artemis' },
|
|
77
|
+
],
|
|
78
|
+
departmentNotes: {
|
|
79
|
+
communications: 'Near-real-time communication possible from south pole rim. Crater floor ops need local relay network.',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
infrastructure: {
|
|
83
|
+
canonicalFacts: [
|
|
84
|
+
{ claim: 'Lunar lava tubes can be hundreds of meters wide, providing natural radiation shielding', source: 'Haruyama et al. 2009, GRL', url: 'https://doi.org/10.1029/2009GL040635', doi: '10.1029/2009GL040635' },
|
|
85
|
+
{ claim: 'In-situ resource utilization (ISRU) can produce construction materials from lunar regolith', source: 'NASA ISRU', url: 'https://www.nasa.gov/isru' },
|
|
86
|
+
{ claim: 'Regolith sintering at 1100C produces structural bricks without imported binder', source: 'Meurisse et al. 2018, Acta Astronautica', url: 'https://doi.org/10.1016/j.actaastro.2017.11.005', doi: '10.1016/j.actaastro.2017.11.005' },
|
|
87
|
+
{ claim: 'ESA demonstrated 3D-printed structures using simulated lunar regolith', source: 'ESA 3D Printing on the Moon', url: 'https://www.esa.int/Enabling_Support/Space_Engineering_Technology/Building_a_lunar_base_with_3D_printing' },
|
|
88
|
+
],
|
|
89
|
+
counterpoints: [
|
|
90
|
+
{ claim: 'Micrometeorite flux on the lunar surface averages 1 impact/m2/year for particles >1mm', source: 'Grun et al. 2011', url: 'https://doi.org/10.1016/j.pss.2011.04.011' },
|
|
91
|
+
],
|
|
92
|
+
departmentNotes: {
|
|
93
|
+
engineering: 'Regolith sintering and 3D printing for habitat construction under active development. Lava tubes offer pre-built volume.',
|
|
94
|
+
mining: 'Construction material extraction from regolith reduces Earth supply dependency.',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
radiation: {
|
|
98
|
+
canonicalFacts: [
|
|
99
|
+
{ claim: 'Lunar surface receives approximately 380 mSv/year from galactic cosmic rays (no magnetic field or atmosphere)', source: 'Reitz et al. 2012, Planetary and Space Science', url: 'https://doi.org/10.1016/j.pss.2012.02.005', doi: '10.1016/j.pss.2012.02.005' },
|
|
100
|
+
{ claim: 'Solar particle events can deliver 100+ mSv in hours on the unshielded lunar surface', source: 'Townsend et al. 2011', url: 'https://doi.org/10.1016/j.asr.2011.04.017', doi: '10.1016/j.asr.2011.04.017' },
|
|
101
|
+
{ claim: 'CRaTER instrument on LRO measured lunar surface dose equivalent of 57-75 mrad/day', source: 'Spence et al. 2010, Space Science Reviews', url: 'https://doi.org/10.1007/s11214-009-9584-8', doi: '10.1007/s11214-009-9584-8' },
|
|
102
|
+
],
|
|
103
|
+
counterpoints: [],
|
|
104
|
+
departmentNotes: {
|
|
105
|
+
medical: 'Career dose limits may be reached within 2-3 years of surface exposure without adequate shielding.',
|
|
106
|
+
engineering: '2-3 meters of regolith shielding reduces radiation to near-Earth-surface levels.',
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
psychology: {
|
|
110
|
+
canonicalFacts: [
|
|
111
|
+
{ claim: 'Antarctic overwinter crews exhibit depression rates of 20-60% during isolation periods', source: 'Palinkas & Suedfeld 2008', url: 'https://doi.org/10.1146/annurev.psych.58.110405.085726', doi: '10.1146/annurev.psych.58.110405.085726' },
|
|
112
|
+
{ claim: 'Mars-500 520-day isolation study documented psychological decline, altered sleep, and interpersonal conflict', source: 'Basner et al. 2014, PNAS', url: 'https://doi.org/10.1073/pnas.1212646110', doi: '10.1073/pnas.1212646110' },
|
|
113
|
+
{ claim: 'Circadian disruption from lack of natural daylight cycle affects cognition and mood', source: 'Barger et al. 2014, Lancet Neurology', url: 'https://doi.org/10.1016/S1474-4422(14)70122-X', doi: '10.1016/S1474-4422(14)70122-X' },
|
|
114
|
+
],
|
|
115
|
+
counterpoints: [],
|
|
116
|
+
departmentNotes: {
|
|
117
|
+
medical: 'Lunar day/night cycle (29.5 Earth days) disrupts circadian rhythms. Artificial lighting protocol essential.',
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
mining: {
|
|
121
|
+
canonicalFacts: [
|
|
122
|
+
{ claim: 'Lunar regolith contains ilmenite (FeTiO3) which can be reduced to produce oxygen', source: 'Allen et al. 1996, JGR', url: 'https://doi.org/10.1029/96JE00141', doi: '10.1029/96JE00141' },
|
|
123
|
+
{ claim: 'Helium-3 concentrations in lunar regolith estimated at 20-30 ppb, potentially valuable for fusion energy', source: 'Wittenberg et al. 1986, Fusion Technology', url: 'https://doi.org/10.13182/FST86-A24972', doi: '10.13182/FST86-A24972' },
|
|
124
|
+
{ claim: 'Rare earth elements in lunar highland anorthosite accessible via simple beneficiation', source: 'Crawford 2015, Progress in Physical Geography', url: 'https://doi.org/10.1177/0309133314567585', doi: '10.1177/0309133314567585' },
|
|
125
|
+
],
|
|
126
|
+
counterpoints: [
|
|
127
|
+
{ claim: 'Lunar mining economics depend on in-situ use; export to Earth is unlikely to be cost-effective', source: 'Duke et al. 2006, Acta Astronautica', url: 'https://doi.org/10.1016/j.actaastro.2006.02.029' },
|
|
128
|
+
],
|
|
129
|
+
departmentNotes: {
|
|
130
|
+
mining: 'Priority resources: water ice (life support), oxygen (from ilmenite), construction regolith.',
|
|
131
|
+
engineering: 'Mining equipment must handle abrasive regolith, low gravity, and vacuum conditions.',
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
artemis: {
|
|
135
|
+
canonicalFacts: [
|
|
136
|
+
{ claim: 'Artemis program targets sustained lunar presence by late 2020s with Gateway orbital station', source: 'NASA Artemis', url: 'https://www.nasa.gov/artemis' },
|
|
137
|
+
{ claim: 'Lunar Gateway will orbit in near-rectilinear halo orbit (NRHO) providing south pole access', source: 'NASA Gateway', url: 'https://www.nasa.gov/gateway' },
|
|
138
|
+
{ claim: 'Artemis Base Camp concept envisions a 30-day surface habitation capability at the south pole', source: 'NASA Artemis Plan 2020', url: 'https://www.nasa.gov/artemis' },
|
|
139
|
+
],
|
|
140
|
+
counterpoints: [],
|
|
141
|
+
departmentNotes: {
|
|
142
|
+
communications: 'Gateway relay enables continuous comms with south pole surface elements.',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
categoryMapping: {
|
|
147
|
+
environmental: ['regolith', 'radiation', 'power'],
|
|
148
|
+
resource: ['water-ice', 'power', 'mining', 'regolith'],
|
|
149
|
+
medical: ['low-gravity', 'regolith', 'radiation', 'psychology'],
|
|
150
|
+
psychological: ['psychology', 'communications'],
|
|
151
|
+
political: ['communications', 'artemis'],
|
|
152
|
+
infrastructure: ['infrastructure', 'power', 'mining'],
|
|
153
|
+
social: ['psychology', 'communications', 'low-gravity'],
|
|
154
|
+
technological: ['infrastructure', 'communications', 'mining', 'artemis'],
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=research-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-bundle.js","sourceRoot":"","sources":["../../../src/engine/lunar/research-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "lunar-outpost",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"engineArchetype": "closed_turn_based_settlement",
|
|
5
|
+
"labels": {
|
|
6
|
+
"name": "Lunar Outpost",
|
|
7
|
+
"shortName": "lunar",
|
|
8
|
+
"populationNoun": "crew members",
|
|
9
|
+
"settlementNoun": "outpost",
|
|
10
|
+
"currency": "credits"
|
|
11
|
+
},
|
|
12
|
+
"theme": {
|
|
13
|
+
"primaryColor": "#6366f1",
|
|
14
|
+
"accentColor": "#a5b4fc",
|
|
15
|
+
"cssVariables": {
|
|
16
|
+
"--bg-primary": "#0a0a14",
|
|
17
|
+
"--bg-secondary": "#10101f",
|
|
18
|
+
"--text-primary": "#e0e0f0",
|
|
19
|
+
"--accent": "#6366f1"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"setup": {
|
|
23
|
+
"defaultTurns": 8,
|
|
24
|
+
"defaultSeed": 1200,
|
|
25
|
+
"defaultStartYear": 2030,
|
|
26
|
+
"defaultPopulation": 50,
|
|
27
|
+
"configurableSections": ["leaders", "personnel", "resources", "departments", "events", "models", "advanced"]
|
|
28
|
+
},
|
|
29
|
+
"departments": [
|
|
30
|
+
{ "id": "medical", "label": "Medical", "role": "Chief Medical Officer", "icon": "🏥", "defaultModel": "gpt-5.4-mini", "instructions": "You are the Chief Medical Officer of a lunar outpost. You analyze crew health: regolith dust exposure, muscle atrophy in 1/6g, bone density loss, psychological wellbeing." },
|
|
31
|
+
{ "id": "engineering", "label": "Engineering", "role": "Chief Engineer", "icon": "⚙️", "defaultModel": "gpt-5.4-mini", "instructions": "You are the Chief Engineer of a lunar outpost. You analyze infrastructure: habitat integrity, power systems (solar + nuclear), thermal management, construction." },
|
|
32
|
+
{ "id": "mining", "label": "Mining", "role": "Mining Operations Lead", "icon": "⛏️", "defaultModel": "gpt-5.4-mini", "instructions": "You are the Mining Operations Lead. You analyze ISRU: water ice extraction from shadowed craters, regolith processing, construction material production." },
|
|
33
|
+
{ "id": "life-support", "label": "Life Support", "role": "Life Support Chief", "icon": "🫧", "defaultModel": "gpt-5.4-mini", "instructions": "You are the Life Support Chief. You analyze ECLSS: oxygen from electrolysis, water recycling, food production, atmospheric management." },
|
|
34
|
+
{ "id": "communications", "label": "Communications", "role": "Communications Officer", "icon": "📡", "defaultModel": "gpt-5.4-mini", "instructions": "You are the Communications Officer. You analyze Earth link: signal scheduling, relay satellite status, data transmission, crew morale through connectivity." }
|
|
35
|
+
],
|
|
36
|
+
"metrics": [
|
|
37
|
+
{ "id": "population", "label": "Crew", "source": "metrics.population", "format": "number" },
|
|
38
|
+
{ "id": "morale", "label": "Morale", "source": "metrics.morale", "format": "percent" },
|
|
39
|
+
{ "id": "foodMonthsReserve", "label": "Food", "source": "metrics.foodMonthsReserve", "format": "number" },
|
|
40
|
+
{ "id": "powerKw", "label": "Power", "source": "metrics.powerKw", "format": "number" },
|
|
41
|
+
{ "id": "infrastructureModules", "label": "Modules", "source": "metrics.infrastructureModules", "format": "number" },
|
|
42
|
+
{ "id": "scienceOutput", "label": "Science", "source": "metrics.scienceOutput", "format": "number" }
|
|
43
|
+
],
|
|
44
|
+
"events": [
|
|
45
|
+
{ "id": "crisis", "label": "Crisis", "icon": "⚠️", "color": "#ef4444" },
|
|
46
|
+
{ "id": "decision", "label": "Decision", "icon": "⚡", "color": "#f59e0b" },
|
|
47
|
+
{ "id": "birth", "label": "Arrival", "icon": "🚀", "color": "#22c55e" },
|
|
48
|
+
{ "id": "death", "label": "Casualty", "icon": "💀", "color": "#6b7280" },
|
|
49
|
+
{ "id": "promotion", "label": "Appointment", "icon": "⬆️", "color": "#3b82f6" },
|
|
50
|
+
{ "id": "relationship", "label": "Bond", "icon": "🤝", "color": "#ec4899" },
|
|
51
|
+
{ "id": "tool_forge", "label": "Tool Forged", "icon": "🔧", "color": "#8b5cf6" },
|
|
52
|
+
{ "id": "system", "label": "System", "icon": "⚙️", "color": "#64748b" }
|
|
53
|
+
],
|
|
54
|
+
"effects": {
|
|
55
|
+
"environmental": { "powerKw": 40, "morale": 0.06, "foodMonthsReserve": 0.5 },
|
|
56
|
+
"resource": { "foodMonthsReserve": 3, "waterLitersPerDay": 80, "morale": 0.04 },
|
|
57
|
+
"medical": { "morale": 0.08, "lifeSupportCapacity": 3 },
|
|
58
|
+
"psychological": { "morale": 0.12 },
|
|
59
|
+
"political": { "morale": 0.06, "infrastructureModules": 1 },
|
|
60
|
+
"infrastructure": { "infrastructureModules": 1, "powerKw": 40, "pressurizedVolumeM3": 150 },
|
|
61
|
+
"social": { "morale": 0.10 },
|
|
62
|
+
"technological": { "powerKw": 35, "scienceOutput": 4, "morale": 0.04 }
|
|
63
|
+
},
|
|
64
|
+
"ui": {
|
|
65
|
+
"headerMetrics": [
|
|
66
|
+
{ "id": "population", "format": "number" },
|
|
67
|
+
{ "id": "morale", "format": "percent" },
|
|
68
|
+
{ "id": "foodMonthsReserve", "format": "number" },
|
|
69
|
+
{ "id": "powerKw", "format": "number" },
|
|
70
|
+
{ "id": "infrastructureModules", "format": "number" },
|
|
71
|
+
{ "id": "scienceOutput", "format": "number" }
|
|
72
|
+
],
|
|
73
|
+
"tooltipFields": ["boneDensityPct", "cumulativeRadiationMsv", "psychScore"],
|
|
74
|
+
"reportSections": ["crisis", "departments", "decision", "outcome"],
|
|
75
|
+
"departmentIcons": { "medical": "🏥", "engineering": "⚙️", "mining": "⛏️", "life-support": "🫧", "communications": "📡" },
|
|
76
|
+
"setupSections": ["leaders", "personnel", "resources", "departments", "events", "models", "advanced"]
|
|
77
|
+
},
|
|
78
|
+
"policies": {
|
|
79
|
+
"toolForging": { "enabled": true, "requiredPerDepartment": true },
|
|
80
|
+
"liveSearch": { "enabled": false, "mode": "off" },
|
|
81
|
+
"bulletin": { "enabled": true },
|
|
82
|
+
"characterChat": { "enabled": true },
|
|
83
|
+
"sandbox": { "timeoutMs": 10000, "memoryMB": 128 }
|
|
84
|
+
},
|
|
85
|
+
"presets": [
|
|
86
|
+
{
|
|
87
|
+
"id": "default",
|
|
88
|
+
"label": "Default Lunar Outpost",
|
|
89
|
+
"leaders": [
|
|
90
|
+
{
|
|
91
|
+
"name": "Commander Sarah Lindgren",
|
|
92
|
+
"archetype": "The Pioneer",
|
|
93
|
+
"hexaco": { "openness": 0.85, "conscientiousness": 0.60, "extraversion": 0.75, "agreeableness": 0.65, "emotionality": 0.35, "honestyHumility": 0.70 },
|
|
94
|
+
"instructions": "You are Commander Sarah Lindgren, \"The Pioneer.\" You balance ambition with crew safety. You push boundaries but respect engineering limits. You communicate openly. Your HEXACO profile drives your leadership style."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "Commander Raj Patel",
|
|
98
|
+
"archetype": "The Methodologist",
|
|
99
|
+
"hexaco": { "openness": 0.35, "conscientiousness": 0.90, "extraversion": 0.40, "agreeableness": 0.70, "emotionality": 0.60, "honestyHumility": 0.85 },
|
|
100
|
+
"instructions": "You are Commander Raj Patel, \"The Methodologist.\" You follow procedures. You document everything. You prioritize crew welfare over discovery timelines. Cautious, thorough, transparent. Your HEXACO profile drives your leadership style."
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"personnel": [
|
|
104
|
+
{ "name": "Dr. Sarah Anderson", "department": "medical", "role": "Chief Medical Officer", "specialization": "Aerospace Medicine", "age": 42, "featured": true },
|
|
105
|
+
{ "name": "James Mueller", "department": "engineering", "role": "Chief Engineer", "specialization": "Structural Systems", "age": 48, "featured": true },
|
|
106
|
+
{ "name": "Dr. Yuki Nakamura", "department": "mining", "role": "Mining Operations Lead", "specialization": "ISRU Engineering", "age": 39, "featured": true },
|
|
107
|
+
{ "name": "Chen Wei", "department": "life-support", "role": "Life Support Chief", "specialization": "ECLSS Design", "age": 44, "featured": true },
|
|
108
|
+
{ "name": "Maria Santos", "department": "communications", "role": "Communications Officer", "specialization": "Deep Space Networks", "age": 36, "featured": true }
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"names": {
|
|
113
|
+
"first": ["Sarah", "James", "Yuki", "Chen", "Maria", "Ahmed", "Olga", "Raj", "Emma", "Lucas", "Fatima", "Noah", "Aiko", "Omar", "Sofia", "Wei", "Anna", "Kai", "Leila", "Max", "Zara", "Felix", "Nina", "Leo", "Ava", "Hugo", "Mia", "Sam", "Iris", "Theo", "Luna", "Alex", "Eva", "Liam", "Hana", "Ravi", "Nora", "Jin", "Ella", "David", "Rosa", "Erik", "Dina", "Sven", "Clio", "Marco", "Ines", "Tao", "Ada", "Leon"],
|
|
114
|
+
"last": ["Anderson", "Kim", "Tanaka", "Mueller", "Santos", "Patel", "Ivanova", "Chen", "Garcia", "Johansson", "Singh", "Petrov", "Nakamura", "Fernandez", "Weber", "Ibrahim", "Park", "Torres", "Lindgren", "Ahmad", "Costa", "Volkov", "Li", "Osei", "Larsson", "Diallo", "Sato", "Rivera", "Berg", "Mensah", "Kato", "Morales", "Holm", "Yusuf", "Takahashi", "Reyes", "Nkomo", "Herrera", "Ito", "Mendez", "Dahl", "Owusu", "Yamamoto", "Cruz", "Bakker", "Ali", "Hansen", "Novak", "Svensson", "Kowalski"],
|
|
115
|
+
"child": ["Selene", "Apollo", "Luna", "Artemis", "Ceres", "Titan", "Nova", "Stella", "Orion", "Helios", "Lyra", "Atlas", "Iris", "Pax", "Sol", "Astra"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars-specific category effects. Extracted from orchestrator.ts hardcoded categoryEffects.
|
|
3
|
+
* Maps crisis category -> base colony system deltas (applied with outcome multiplier).
|
|
4
|
+
*/
|
|
5
|
+
export declare const MARS_CATEGORY_EFFECTS: Record<string, Record<string, number>>;
|
|
6
|
+
/** Default fallback effect when the category is unknown */
|
|
7
|
+
export declare const MARS_FALLBACK_EFFECT: Record<string, number>;
|
|
8
|
+
/** Crisis categories that trigger politics deltas */
|
|
9
|
+
export declare const MARS_POLITICS_CATEGORIES: Set<string>;
|
|
10
|
+
export declare const MARS_POLITICS_SUCCESS_DELTA: {
|
|
11
|
+
independencePressure: number;
|
|
12
|
+
earthDependencyPct: number;
|
|
13
|
+
};
|
|
14
|
+
export declare const MARS_POLITICS_FAILURE_DELTA: {
|
|
15
|
+
independencePressure: number;
|
|
16
|
+
earthDependencyPct: number;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../src/engine/mars/effects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxE,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAoB,CAAC;AAE7E,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,aAAmC,CAAC;AAEzE,eAAO,MAAM,2BAA2B;;;CAAyD,CAAC;AAClG,eAAO,MAAM,2BAA2B;;;CAAyD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars-specific category effects. Extracted from orchestrator.ts hardcoded categoryEffects.
|
|
3
|
+
* Maps crisis category -> base colony system deltas (applied with outcome multiplier).
|
|
4
|
+
*/
|
|
5
|
+
export const MARS_CATEGORY_EFFECTS = {
|
|
6
|
+
environmental: { powerKw: 50, morale: 0.08, foodMonthsReserve: 1 },
|
|
7
|
+
resource: { foodMonthsReserve: 4, waterLitersPerDay: 100, morale: 0.05 },
|
|
8
|
+
medical: { morale: 0.10, lifeSupportCapacity: 5 },
|
|
9
|
+
psychological: { morale: 0.15 },
|
|
10
|
+
political: { morale: 0.08, infrastructureModules: 1 },
|
|
11
|
+
infrastructure: { infrastructureModules: 2, powerKw: 60, pressurizedVolumeM3: 200 },
|
|
12
|
+
social: { morale: 0.12 },
|
|
13
|
+
technological: { powerKw: 50, scienceOutput: 3, morale: 0.05 },
|
|
14
|
+
};
|
|
15
|
+
/** Default fallback effect when the category is unknown */
|
|
16
|
+
export const MARS_FALLBACK_EFFECT = { morale: 0.08 };
|
|
17
|
+
/** Crisis categories that trigger politics deltas */
|
|
18
|
+
export const MARS_POLITICS_CATEGORIES = new Set(['political', 'social']);
|
|
19
|
+
export const MARS_POLITICS_SUCCESS_DELTA = { independencePressure: 0.05, earthDependencyPct: -3 };
|
|
20
|
+
export const MARS_POLITICS_FAILURE_DELTA = { independencePressure: -0.03, earthDependencyPct: 2 };
|
|
21
|
+
//# sourceMappingURL=effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/engine/mars/effects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IAC3E,aAAa,EAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;IACnE,QAAQ,EAAQ,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAC9E,OAAO,EAAS,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE;IACxD,aAAa,EAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,SAAS,EAAO,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,EAAE;IAC1D,cAAc,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE;IACnF,MAAM,EAAU,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,aAAa,EAAG,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;CAChE,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAA2B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE7E,qDAAqD;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC;AAClG,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ScenarioEventDef {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
icon: string;
|
|
5
|
+
color: string;
|
|
6
|
+
}
|
|
7
|
+
/** Mars event type definitions matching TurnEvent['type'] from kernel/state.ts */
|
|
8
|
+
export declare const MARS_EVENT_DEFINITIONS: ScenarioEventDef[];
|
|
9
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/engine/mars/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,EASpD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Mars event type definitions matching TurnEvent['type'] from kernel/state.ts */
|
|
2
|
+
export const MARS_EVENT_DEFINITIONS = [
|
|
3
|
+
{ id: 'crisis', label: 'Crisis', icon: '⚠️', color: '#ef4444' },
|
|
4
|
+
{ id: 'decision', label: 'Decision', icon: '⚡', color: '#f59e0b' },
|
|
5
|
+
{ id: 'birth', label: 'Birth', icon: '👶', color: '#22c55e' },
|
|
6
|
+
{ id: 'death', label: 'Death', icon: '💀', color: '#6b7280' },
|
|
7
|
+
{ id: 'promotion', label: 'Promotion', icon: '⬆️', color: '#3b82f6' },
|
|
8
|
+
{ id: 'relationship', label: 'Relationship', icon: '💕', color: '#ec4899' },
|
|
9
|
+
{ id: 'tool_forge', label: 'Tool Forged', icon: '🔧', color: '#8b5cf6' },
|
|
10
|
+
{ id: 'system', label: 'System', icon: '⚙️', color: '#64748b' },
|
|
11
|
+
];
|
|
12
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/engine/mars/events.ts"],"names":[],"mappings":"AAOA,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAAuB;IACxD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IAC/D,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAClE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IAC7D,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IAC7D,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IACrE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3E,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IACxE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;CAChE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars-specific timeline fingerprint classification.
|
|
3
|
+
* Extracted from orchestrator.ts lines 820-843.
|
|
4
|
+
*/
|
|
5
|
+
export declare function marsFingerprint(finalState: any, outcomeLog: any[], leader: any, toolRegs: Record<string, string[]>, maxTurns: number): Record<string, string>;
|
|
6
|
+
//# sourceMappingURL=fingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../../src/engine/mars/fingerprint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,GAAG,EACf,UAAU,EAAE,GAAG,EAAE,EACjB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAClC,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars-specific timeline fingerprint classification.
|
|
3
|
+
* Extracted from orchestrator.ts lines 820-843.
|
|
4
|
+
*/
|
|
5
|
+
export function marsFingerprint(finalState, outcomeLog, leader, toolRegs, maxTurns) {
|
|
6
|
+
const riskyWins = outcomeLog.filter((o) => o.outcome === 'risky_success').length;
|
|
7
|
+
const riskyLosses = outcomeLog.filter((o) => o.outcome === 'risky_failure').length;
|
|
8
|
+
const conservativeWins = outcomeLog.filter((o) => o.outcome === 'conservative_success').length;
|
|
9
|
+
const aliveCount = finalState.agents.filter((c) => c.health.alive).length;
|
|
10
|
+
const marsBorn = finalState.agents.filter((c) => c.health.alive && c.core.marsborn).length;
|
|
11
|
+
const totalTools = Object.values(toolRegs).flat().length;
|
|
12
|
+
const resilience = finalState.colony.morale > 0.6 ? 'antifragile' : finalState.colony.morale > 0.35 ? 'resilient' : 'brittle';
|
|
13
|
+
const autonomy = finalState.politics.earthDependencyPct < 40 ? 'autonomous' : finalState.politics.earthDependencyPct < 70 ? 'transitioning' : 'Earth-tethered';
|
|
14
|
+
const governance = leader.hexaco.extraversion > 0.7 ? 'charismatic' : leader.hexaco.conscientiousness > 0.7 ? 'technocratic' : 'communal';
|
|
15
|
+
const riskProfile = riskyWins + riskyLosses > conservativeWins ? 'expansionist' : 'conservative';
|
|
16
|
+
const identity = marsBorn > aliveCount * 0.3 ? 'Martian' : 'Earth-diaspora';
|
|
17
|
+
const innovation = totalTools > maxTurns * 2 ? 'innovative' : totalTools > maxTurns ? 'adaptive' : 'conventional';
|
|
18
|
+
const summary = `${resilience} · ${autonomy} · ${governance} · ${riskProfile} · ${identity} · ${innovation}`;
|
|
19
|
+
return { resilience, autonomy, governance, riskProfile, identity, innovation, summary };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../src/engine/mars/fingerprint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAe,EACf,UAAiB,EACjB,MAAW,EACX,QAAkC,EAClC,QAAgB;IAEhB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC;IACtF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC;IACxF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,sBAAsB,CAAC,CAAC,MAAM,CAAC;IACpG,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IAEzD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9H,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC/J,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1I,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IACjG,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC5E,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;IAClH,MAAM,OAAO,GAAG,GAAG,UAAU,MAAM,QAAQ,MAAM,UAAU,MAAM,WAAW,MAAM,QAAQ,MAAM,UAAU,EAAE,CAAC;IAE7G,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars scenario hooks. These are the functions that can't be serialized to JSON.
|
|
3
|
+
* They inject Mars-specific domain logic into the generic engine.
|
|
4
|
+
*/
|
|
5
|
+
export { marsProgressionHook } from './progression-hooks.js';
|
|
6
|
+
export { marsDepartmentPromptLines, marsDirectorInstructions } from './prompts.js';
|
|
7
|
+
export { marsFingerprint } from './fingerprint.js';
|
|
8
|
+
export { marsPoliticsHook } from './politics.js';
|
|
9
|
+
export { marsReactionContext } from './reactions.js';
|
|
10
|
+
export { getMarsMilestoneCrisis } from './milestones.js';
|
|
11
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/engine/mars/hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars scenario hooks. These are the functions that can't be serialized to JSON.
|
|
3
|
+
* They inject Mars-specific domain logic into the generic engine.
|
|
4
|
+
*/
|
|
5
|
+
export { marsProgressionHook } from './progression-hooks.js';
|
|
6
|
+
export { marsDepartmentPromptLines, marsDirectorInstructions } from './prompts.js';
|
|
7
|
+
export { marsFingerprint } from './fingerprint.js';
|
|
8
|
+
export { marsPoliticsHook } from './politics.js';
|
|
9
|
+
export { marsReactionContext } from './reactions.js';
|
|
10
|
+
export { getMarsMilestoneCrisis } from './milestones.js';
|
|
11
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/engine/mars/hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars Genesis scenario package.
|
|
3
|
+
* Loads scenario data from scenario.json and attaches runtime hooks.
|
|
4
|
+
*/
|
|
5
|
+
import type { ScenarioPackage } from '../types.js';
|
|
6
|
+
/** Mars Genesis scenario: 100-colonist Mars colony over 50 simulated years. */
|
|
7
|
+
export declare const marsScenario: ScenarioPackage;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/mars/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAcnD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,EAAE,eAwC1B,CAAC"}
|