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 @@
|
|
|
1
|
+
{"version":3,"file":"effect-registry.js","sourceRoot":"","sources":["../../src/engine/effect-registry.ts"],"names":[],"mappings":"AAGA,MAAM,mBAAmB,GAAgC;IACvD,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,CAAC,GAAG;IACnB,oBAAoB,EAAE,GAAG;IACzB,oBAAoB,EAAE,CAAC,GAAG;CAC3B,CAAC;AAOF,MAAM,OAAO,cAAc;IACjB,OAAO,CAAyC;IAChD,QAAQ,CAAyB;IAEzC,YACE,eAAuD,EACvD,WAAmC,EAAE,MAAM,EAAE,IAAI,EAAE;QAEnD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IAED,YAAY,CACV,QAAgB,EAChB,OAAoB,EACpB,SAA2B;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAChF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC5C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ScenarioEventDef } from './mars/events.js';
|
|
2
|
+
export { type ScenarioEventDef } from './mars/events.js';
|
|
3
|
+
export declare class EventTaxonomy {
|
|
4
|
+
private events;
|
|
5
|
+
constructor(definitions: ScenarioEventDef[]);
|
|
6
|
+
get(id: string): ScenarioEventDef | undefined;
|
|
7
|
+
all(): ScenarioEventDef[];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=event-taxonomy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-taxonomy.d.ts","sourceRoot":"","sources":["../../src/engine/event-taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;gBAElC,WAAW,EAAE,gBAAgB,EAAE;IAI3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7C,GAAG,IAAI,gBAAgB,EAAE;CAG1B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class EventTaxonomy {
|
|
2
|
+
events;
|
|
3
|
+
constructor(definitions) {
|
|
4
|
+
this.events = new Map(definitions.map(d => [d.id, d]));
|
|
5
|
+
}
|
|
6
|
+
get(id) {
|
|
7
|
+
return this.events.get(id);
|
|
8
|
+
}
|
|
9
|
+
all() {
|
|
10
|
+
return Array.from(this.events.values());
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=event-taxonomy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-taxonomy.js","sourceRoot":"","sources":["../../src/engine/event-taxonomy.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IAChB,MAAM,CAAgC;IAE9C,YAAY,WAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paracosm Engine — public API
|
|
3
|
+
*
|
|
4
|
+
* Closed-state, turn-based settlement simulation engine.
|
|
5
|
+
* Import scenario packages, registries, and core types.
|
|
6
|
+
*/
|
|
7
|
+
export type { ScenarioPackage, ScenarioLabels, ScenarioTheme, ScenarioSetupSchema, ScenarioWorldSchema, WorldMetricSchema, WorldState, AgentFieldValue, AgentFieldDefinition, DepartmentDefinition, MetricDefinition, EffectDefinition, EventDefinition, ScenarioUiDefinition, KnowledgeCitation, KnowledgeTopic, KnowledgeBundle, ScenarioPolicies, ScenarioPreset, ProgressionHookContext, PromptHookContext, ScenarioHooks, } from './types.js';
|
|
8
|
+
export { EffectRegistry } from './effect-registry.js';
|
|
9
|
+
export { MetricRegistry } from './metric-registry.js';
|
|
10
|
+
export { EventTaxonomy } from './event-taxonomy.js';
|
|
11
|
+
export { SimulationKernel } from './core/kernel.js';
|
|
12
|
+
export { SeededRng } from './core/rng.js';
|
|
13
|
+
export { generateInitialPopulation } from './core/agent-generator.js';
|
|
14
|
+
export { progressBetweenTurns, applyPersonalityDrift, classifyOutcome, classifyOutcomeById } from './core/progression.js';
|
|
15
|
+
export type { Agent, AgentCore, AgentHealth, AgentCareer, AgentSocial, AgentNarrative, AgentMemory, AgentMemoryEntry, WorldSystems, WorldPolitics, SimulationState, SimulationMetadata, HexacoProfile, TurnEvent, TurnOutcome, Department, PromotionRecord, } from './core/state.js';
|
|
16
|
+
export type { KeyPersonnel } from './core/agent-generator.js';
|
|
17
|
+
export type { ColonyPatch, PolicyEffect, SimulationInitOverrides } from './core/kernel.js';
|
|
18
|
+
export type { HexacoSnapshot, LifeEvent } from './core/state.js';
|
|
19
|
+
export type { LeaderConfig, LlmProvider, SimulationModelConfig, Scenario, EventOptionDef, MilestoneEventDef, TurnOutcomeType } from './types.js';
|
|
20
|
+
export type { ScenarioMetric } from './mars/metrics.js';
|
|
21
|
+
export type { ScenarioEventDef } from './mars/events.js';
|
|
22
|
+
export type { OutcomeModifiers } from './effect-registry.js';
|
|
23
|
+
export { marsScenario } from './mars/index.js';
|
|
24
|
+
export { lunarScenario } from './lunar/index.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG1H,YAAY,EACV,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EACtG,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAChE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,GACnE,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGjJ,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paracosm Engine — public API
|
|
3
|
+
*
|
|
4
|
+
* Closed-state, turn-based settlement simulation engine.
|
|
5
|
+
* Import scenario packages, registries, and core types.
|
|
6
|
+
*/
|
|
7
|
+
// Registries
|
|
8
|
+
export { EffectRegistry } from './effect-registry.js';
|
|
9
|
+
export { MetricRegistry } from './metric-registry.js';
|
|
10
|
+
export { EventTaxonomy } from './event-taxonomy.js';
|
|
11
|
+
// Core kernel
|
|
12
|
+
export { SimulationKernel } from './core/kernel.js';
|
|
13
|
+
export { SeededRng } from './core/rng.js';
|
|
14
|
+
export { generateInitialPopulation } from './core/agent-generator.js';
|
|
15
|
+
export { progressBetweenTurns, applyPersonalityDrift, classifyOutcome, classifyOutcomeById } from './core/progression.js';
|
|
16
|
+
// Scenario packages
|
|
17
|
+
export { marsScenario } from './mars/index.js';
|
|
18
|
+
export { lunarScenario } from './lunar/index.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAoB1H,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar outpost category effects.
|
|
3
|
+
* Maps crisis category -> base colony system deltas (applied with outcome multiplier).
|
|
4
|
+
*/
|
|
5
|
+
export declare const LUNAR_CATEGORY_EFFECTS: Record<string, Record<string, number>>;
|
|
6
|
+
export declare const LUNAR_FALLBACK_EFFECT: Record<string, number>;
|
|
7
|
+
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/effects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASzE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAoB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar outpost category effects.
|
|
3
|
+
* Maps crisis category -> base colony system deltas (applied with outcome multiplier).
|
|
4
|
+
*/
|
|
5
|
+
export const LUNAR_CATEGORY_EFFECTS = {
|
|
6
|
+
environmental: { powerKw: 40, morale: 0.06, foodMonthsReserve: 0.5 },
|
|
7
|
+
resource: { foodMonthsReserve: 3, waterLitersPerDay: 80, morale: 0.04 },
|
|
8
|
+
medical: { morale: 0.08, lifeSupportCapacity: 3 },
|
|
9
|
+
psychological: { morale: 0.12 },
|
|
10
|
+
political: { morale: 0.06, infrastructureModules: 1 },
|
|
11
|
+
infrastructure: { infrastructureModules: 1, powerKw: 40, pressurizedVolumeM3: 150 },
|
|
12
|
+
social: { morale: 0.10 },
|
|
13
|
+
technological: { powerKw: 35, scienceOutput: 4, morale: 0.04 },
|
|
14
|
+
};
|
|
15
|
+
export const LUNAR_FALLBACK_EFFECT = { morale: 0.06 };
|
|
16
|
+
//# sourceMappingURL=effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/engine/lunar/effects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA2C;IAC5E,aAAa,EAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE;IACrE,QAAQ,EAAQ,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAC7E,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,MAAM,CAAC,MAAM,qBAAqB,GAA2B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EASrD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const LUNAR_EVENT_DEFINITIONS = [
|
|
2
|
+
{ id: 'crisis', label: 'Crisis', icon: '⚠️', color: '#ef4444' },
|
|
3
|
+
{ id: 'decision', label: 'Decision', icon: '⚡', color: '#f59e0b' },
|
|
4
|
+
{ id: 'birth', label: 'Arrival', icon: '🚀', color: '#22c55e' },
|
|
5
|
+
{ id: 'death', label: 'Casualty', icon: '💀', color: '#6b7280' },
|
|
6
|
+
{ id: 'promotion', label: 'Appointment', icon: '⬆️', color: '#3b82f6' },
|
|
7
|
+
{ id: 'relationship', label: 'Bond', icon: '🤝', color: '#ec4899' },
|
|
8
|
+
{ id: 'tool_forge', label: 'Tool Forged', icon: '🔧', color: '#8b5cf6' },
|
|
9
|
+
{ id: 'system', label: 'System', icon: '⚙️', color: '#64748b' },
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/engine/lunar/events.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,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,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IAC/D,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IAChE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IACvE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IACnE,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,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar-specific timeline fingerprint classification.
|
|
3
|
+
*/
|
|
4
|
+
export declare function lunarFingerprint(finalState: any, outcomeLog: any[], leader: any, toolRegs: Record<string, string[]>, maxTurns: number): Record<string, string>;
|
|
5
|
+
//# sourceMappingURL=fingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/fingerprint.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,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,CAcxB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar-specific timeline fingerprint classification.
|
|
3
|
+
*/
|
|
4
|
+
export function lunarFingerprint(finalState, outcomeLog, leader, toolRegs, maxTurns) {
|
|
5
|
+
const riskyWins = outcomeLog.filter((o) => o.outcome === 'risky_success').length;
|
|
6
|
+
const riskyLosses = outcomeLog.filter((o) => o.outcome === 'risky_failure').length;
|
|
7
|
+
const conservativeWins = outcomeLog.filter((o) => o.outcome === 'conservative_success').length;
|
|
8
|
+
const totalTools = Object.values(toolRegs).flat().length;
|
|
9
|
+
const resilience = finalState.colony.morale > 0.6 ? 'robust' : finalState.colony.morale > 0.35 ? 'stable' : 'fragile';
|
|
10
|
+
const sustainment = finalState.colony.foodMonthsReserve > 12 ? 'self-sustaining' : finalState.colony.foodMonthsReserve > 6 ? 'resupply-dependent' : 'critical';
|
|
11
|
+
const leadership = leader.hexaco.conscientiousness > 0.7 ? 'methodical' : leader.hexaco.openness > 0.7 ? 'pioneering' : 'balanced';
|
|
12
|
+
const riskProfile = riskyWins + riskyLosses > conservativeWins ? 'exploratory' : 'procedural';
|
|
13
|
+
const science = totalTools > maxTurns * 2 ? 'discovery-driven' : totalTools > maxTurns ? 'productive' : 'operational';
|
|
14
|
+
const summary = `${resilience} · ${sustainment} · ${leadership} · ${riskProfile} · ${science}`;
|
|
15
|
+
return { resilience, sustainment, leadership, riskProfile, science, summary };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../src/engine/lunar/fingerprint.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,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,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,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/J,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IACnI,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9F,MAAM,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IACtH,MAAM,OAAO,GAAG,GAAG,UAAU,MAAM,WAAW,MAAM,UAAU,MAAM,WAAW,MAAM,OAAO,EAAE,CAAC;IAE/F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar outpost scenario hooks.
|
|
3
|
+
*/
|
|
4
|
+
export { lunarProgressionHook } from './progression-hooks.js';
|
|
5
|
+
export { lunarDepartmentPromptLines, lunarDirectorInstructions } from './prompts.js';
|
|
6
|
+
export { lunarFingerprint } from './fingerprint.js';
|
|
7
|
+
export { lunarPoliticsHook } from './politics.js';
|
|
8
|
+
export { lunarReactionContext } from './reactions.js';
|
|
9
|
+
export { getLunarMilestoneCrisis } from './milestones.js';
|
|
10
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar outpost scenario hooks.
|
|
3
|
+
*/
|
|
4
|
+
export { lunarProgressionHook } from './progression-hooks.js';
|
|
5
|
+
export { lunarDepartmentPromptLines, lunarDirectorInstructions } from './prompts.js';
|
|
6
|
+
export { lunarFingerprint } from './fingerprint.js';
|
|
7
|
+
export { lunarPoliticsHook } from './politics.js';
|
|
8
|
+
export { lunarReactionContext } from './reactions.js';
|
|
9
|
+
export { getLunarMilestoneCrisis } from './milestones.js';
|
|
10
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/engine/lunar/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar Outpost scenario package.
|
|
3
|
+
* Loads scenario data from scenario.json and attaches runtime hooks.
|
|
4
|
+
*/
|
|
5
|
+
import type { ScenarioPackage } from '../types.js';
|
|
6
|
+
/** Lunar Outpost scenario: 50-person crew at the lunar south pole. */
|
|
7
|
+
export declare const lunarScenario: ScenarioPackage;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAanD,sEAAsE;AACtE,eAAO,MAAM,aAAa,EAAE,eAmC3B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar Outpost scenario package.
|
|
3
|
+
* Loads scenario data from scenario.json and attaches runtime hooks.
|
|
4
|
+
*/
|
|
5
|
+
import scenarioData from './scenario.json' with { type: 'json' };
|
|
6
|
+
import { lunarProgressionHook, lunarDepartmentPromptLines, lunarDirectorInstructions, lunarFingerprint, lunarPoliticsHook, lunarReactionContext, getLunarMilestoneCrisis, } from './hooks.js';
|
|
7
|
+
import { LUNAR_KNOWLEDGE_BUNDLE } from './research-bundle.js';
|
|
8
|
+
/** Lunar Outpost scenario: 50-person crew at the lunar south pole. */
|
|
9
|
+
export const lunarScenario = {
|
|
10
|
+
...scenarioData,
|
|
11
|
+
ui: {
|
|
12
|
+
...scenarioData.ui,
|
|
13
|
+
eventRenderers: Object.fromEntries(scenarioData.events.map(e => [e.id, { icon: e.icon, color: e.color }])),
|
|
14
|
+
},
|
|
15
|
+
effects: [
|
|
16
|
+
{ id: 'category_effects', type: 'category_outcome', label: 'Category Outcome Effects', categoryDefaults: scenarioData.effects },
|
|
17
|
+
],
|
|
18
|
+
world: {
|
|
19
|
+
metrics: {}, capacities: {}, statuses: {}, politics: {},
|
|
20
|
+
environment: {
|
|
21
|
+
surfaceGravity: {
|
|
22
|
+
id: 'surfaceGravity', label: 'Surface Gravity', unit: 'm/s²',
|
|
23
|
+
type: 'number', initial: 1.62, min: 0, category: 'environment',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
knowledge: LUNAR_KNOWLEDGE_BUNDLE,
|
|
28
|
+
hooks: {
|
|
29
|
+
progressionHook: lunarProgressionHook,
|
|
30
|
+
departmentPromptHook: (ctx) => lunarDepartmentPromptLines(ctx.department, ctx.state),
|
|
31
|
+
directorInstructions: lunarDirectorInstructions,
|
|
32
|
+
fingerprintHook: lunarFingerprint,
|
|
33
|
+
politicsHook: lunarPoliticsHook,
|
|
34
|
+
reactionContextHook: lunarReactionContext,
|
|
35
|
+
getMilestoneCrisis: getLunarMilestoneCrisis,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/lunar/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,YAAY,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,GAAG,YAAmB;IAEtB,EAAE,EAAE;QACF,GAAG,YAAY,CAAC,EAAS;QACzB,cAAc,EAAE,MAAM,CAAC,WAAW,CAChC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CACvE;KACF;IAED,OAAO,EAAE;QACP,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,YAAY,CAAC,OAAO,EAAE;KAChI;IAED,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;QACvD,WAAW,EAAE;YACX,cAAc,EAAE;gBACd,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM;gBAC5D,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAsB;aACjF;SACF;KACF;IAED,SAAS,EAAE,sBAAsB;IAEjC,KAAK,EAAE;QACL,eAAe,EAAE,oBAAoB;QACrC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC;QACpF,oBAAoB,EAAE,yBAAyB;QAC/C,eAAe,EAAE,gBAAgB;QACjC,YAAY,EAAE,iBAAiB;QAC/B,mBAAmB,EAAE,oBAAoB;QACzC,kBAAkB,EAAE,uBAAuB;KAC5C;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAS/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAElD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const LUNAR_WORLD_METRICS = [
|
|
2
|
+
{ id: 'population', label: 'Crew', unit: '', type: 'number', initial: 50, min: 0, category: 'metric', showInHeader: true, format: 'number' },
|
|
3
|
+
{ id: 'powerKw', label: 'Power', unit: 'kW', type: 'number', initial: 200, min: 0, category: 'metric', showInHeader: true, format: 'number' },
|
|
4
|
+
{ id: 'foodMonthsReserve', label: 'Food Reserve', unit: 'months', type: 'number', initial: 12, min: 0, category: 'metric', showInHeader: true, format: 'number' },
|
|
5
|
+
{ id: 'waterLitersPerDay', label: 'Water', unit: 'L/day', type: 'number', initial: 400, min: 0, category: 'metric', showInHeader: true, format: 'number' },
|
|
6
|
+
{ id: 'pressurizedVolumeM3', label: 'Volume', unit: 'm³', type: 'number', initial: 1500, min: 0, category: 'metric', showInHeader: false, format: 'number' },
|
|
7
|
+
{ id: 'infrastructureModules', label: 'Modules', unit: '', type: 'number', initial: 2, min: 0, category: 'metric', showInHeader: true, format: 'number' },
|
|
8
|
+
{ id: 'scienceOutput', label: 'Science', unit: '', type: 'number', initial: 0, min: 0, category: 'metric', showInHeader: true, format: 'number' },
|
|
9
|
+
{ id: 'morale', label: 'Morale', unit: '%', type: 'number', initial: 0.80, min: 0, max: 1, category: 'metric', showInHeader: true, format: 'percent' },
|
|
10
|
+
];
|
|
11
|
+
export const LUNAR_CAPACITY_METRICS = [
|
|
12
|
+
{ id: 'lifeSupportCapacity', label: 'Life Support Cap', unit: '', type: 'number', initial: 60, min: 0, category: 'capacity', showInHeader: false, format: 'number' },
|
|
13
|
+
];
|
|
14
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/engine/lunar/metrics.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5I,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC7I,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;IACjK,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC1J,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5J,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;IACzJ,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;IACjJ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;CACvJ,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;CACrK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milestones.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/milestones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiDrD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAIhG"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const LANDING = {
|
|
2
|
+
title: 'Lunar Arrival',
|
|
3
|
+
description: 'Your crew module has entered lunar orbit. Choose a base location for the permanent outpost.',
|
|
4
|
+
crisis: `Your crew module has entered lunar orbit. You must choose a base location for the permanent outpost. Two candidates:
|
|
5
|
+
|
|
6
|
+
OPTION A: Shackleton Crater Rim (south pole, 89.9°S). Near-permanent sunlight for solar power. Access to permanently shadowed craters with confirmed water ice deposits (LCROSS 2009). Challenging terrain with steep slopes.
|
|
7
|
+
|
|
8
|
+
OPTION B: Marius Hills Lava Tube. Natural radiation shielding from the intact lava tube ceiling (up to 50m of basalt). Stable thermal environment. No direct solar power access (requires nuclear or transmitted power). Limited water ice nearby.
|
|
9
|
+
|
|
10
|
+
Both sites offer access to regolith for ISRU construction. Communication with Earth is line-of-sight dependent.`,
|
|
11
|
+
options: [
|
|
12
|
+
{ id: 'option_a', label: 'Shackleton Crater Rim', description: 'Sunlight, water ice, steep terrain', isRisky: false },
|
|
13
|
+
{ id: 'option_b', label: 'Marius Hills Lava Tube', description: 'Natural shielding, no solar, limited water', isRisky: true },
|
|
14
|
+
],
|
|
15
|
+
riskyOptionId: 'option_b',
|
|
16
|
+
riskSuccessProbability: 0.55,
|
|
17
|
+
category: 'infrastructure',
|
|
18
|
+
researchKeywords: ['lunar south pole base', 'Shackleton crater water ice', 'lunar lava tube habitat', 'LCROSS water discovery'],
|
|
19
|
+
relevantDepartments: ['engineering', 'mining'],
|
|
20
|
+
turnSummary: 'Crew in orbit. Solar-powered crater rim or radiation-shielded lava tube: the first decision defines everything.',
|
|
21
|
+
};
|
|
22
|
+
const STATUS_REPORT = {
|
|
23
|
+
title: 'Mission Review',
|
|
24
|
+
description: 'Earth space agencies request a comprehensive status report on your outpost.',
|
|
25
|
+
crisis: `Earth space agencies request a comprehensive status report on your outpost:
|
|
26
|
+
|
|
27
|
+
1. CREW: Current headcount, rotation schedule, health status
|
|
28
|
+
2. INFRASTRUCTURE: Modules, pressurized volume, power generation, mining output
|
|
29
|
+
3. SELF-SUFFICIENCY: Water from ISRU, food production, oxygen generation
|
|
30
|
+
4. SCIENCE: Geological surveys, astronomical observations, technology demonstrations
|
|
31
|
+
5. OPERATIONS: What worked, what failed, what needs redesign
|
|
32
|
+
6. RECOMMENDATION: Should the outpost expand, maintain, or be re-evaluated?
|
|
33
|
+
|
|
34
|
+
Be direct. Your assessment shapes the next decade of lunar policy.`,
|
|
35
|
+
options: [
|
|
36
|
+
{ id: 'option_a', label: 'Factual assessment', description: 'Report data accurately, flag risks', isRisky: false },
|
|
37
|
+
{ id: 'option_b', label: 'Expansion proposal', description: 'Advocate for major expansion based on results', isRisky: true },
|
|
38
|
+
],
|
|
39
|
+
riskyOptionId: 'option_b',
|
|
40
|
+
riskSuccessProbability: 0.5,
|
|
41
|
+
category: 'political',
|
|
42
|
+
researchKeywords: ['lunar base long-term planning', 'Artemis program sustainability'],
|
|
43
|
+
relevantDepartments: ['communications', 'engineering', 'medical', 'mining'],
|
|
44
|
+
turnSummary: 'Earth agencies demand a full status report. The commander must decide: honest assessment or bold expansion pitch.',
|
|
45
|
+
};
|
|
46
|
+
export function getLunarMilestoneCrisis(turn, maxTurns) {
|
|
47
|
+
if (turn === 1)
|
|
48
|
+
return LANDING;
|
|
49
|
+
if (turn === maxTurns)
|
|
50
|
+
return STATUS_REPORT;
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=milestones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milestones.js","sourceRoot":"","sources":["../../../src/engine/lunar/milestones.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAsB;IACjC,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,6FAA6F;IAC1G,MAAM,EAAE;;;;;;gHAMsG;IAC9G,OAAO,EAAE;QACP,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,oCAAoC,EAAE,OAAO,EAAE,KAAK,EAAE;QACrH,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,4CAA4C,EAAE,OAAO,EAAE,IAAI,EAAE;KAC9H;IACD,aAAa,EAAE,UAAU;IACzB,sBAAsB,EAAE,IAAI;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,wBAAwB,CAAC;IAC/H,mBAAmB,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;IAC9C,WAAW,EAAE,iHAAiH;CAC/H,CAAC;AAEF,MAAM,aAAa,GAAsB;IACvC,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,6EAA6E;IAC1F,MAAM,EAAE;;;;;;;;;mEASyD;IACjE,OAAO,EAAE;QACP,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,oCAAoC,EAAE,OAAO,EAAE,KAAK,EAAE;QAClH,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,+CAA+C,EAAE,OAAO,EAAE,IAAI,EAAE;KAC7H;IACD,aAAa,EAAE,UAAU;IACzB,sBAAsB,EAAE,GAAG;IAC3B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,CAAC,+BAA+B,EAAE,gCAAgC,CAAC;IACrF,mBAAmB,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC3E,WAAW,EAAE,mHAAmH;CACjI,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,QAAgB;IACpE,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/B,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/names.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAQ5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAG7B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const LUNAR_FIRST_NAMES = [
|
|
2
|
+
'Sarah', 'James', 'Yuki', 'Chen', 'Maria', 'Ahmed', 'Olga', 'Raj',
|
|
3
|
+
'Emma', 'Lucas', 'Fatima', 'Noah', 'Aiko', 'Omar', 'Sofia', 'Wei',
|
|
4
|
+
'Anna', 'Kai', 'Leila', 'Max', 'Zara', 'Felix', 'Nina', 'Leo',
|
|
5
|
+
'Ava', 'Hugo', 'Mia', 'Sam', 'Iris', 'Theo', 'Luna', 'Alex',
|
|
6
|
+
'Eva', 'Liam', 'Hana', 'Ravi', 'Nora', 'Jin', 'Ella', 'David',
|
|
7
|
+
'Rosa', 'Erik', 'Dina', 'Sven', 'Clio', 'Marco', 'Ines', 'Tao',
|
|
8
|
+
'Ada', 'Leon',
|
|
9
|
+
];
|
|
10
|
+
export const LUNAR_LAST_NAMES = [
|
|
11
|
+
'Anderson', 'Kim', 'Tanaka', 'Mueller', 'Santos', 'Patel', 'Ivanova', 'Chen',
|
|
12
|
+
'Garcia', 'Johansson', 'Singh', 'Petrov', 'Nakamura', 'Fernandez', 'Weber',
|
|
13
|
+
'Ibrahim', 'Park', 'Torres', 'Lindgren', 'Ahmad', 'Costa', 'Volkov', 'Li',
|
|
14
|
+
'Osei', 'Larsson', 'Diallo', 'Sato', 'Rivera', 'Berg', 'Mensah', 'Kato',
|
|
15
|
+
'Morales', 'Holm', 'Yusuf', 'Takahashi', 'Reyes', 'Nkomo', 'Herrera', 'Ito',
|
|
16
|
+
'Mendez', 'Dahl', 'Owusu', 'Yamamoto', 'Cruz', 'Bakker', 'Ali', 'Hansen',
|
|
17
|
+
'Novak', 'Svensson', 'Kowalski',
|
|
18
|
+
];
|
|
19
|
+
export const LUNAR_CHILD_NAMES = [
|
|
20
|
+
'Selene', 'Apollo', 'Luna', 'Artemis', 'Ceres', 'Titan', 'Nova', 'Stella',
|
|
21
|
+
'Orion', 'Helios', 'Lyra', 'Atlas', 'Iris', 'Pax', 'Sol', 'Astra',
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/engine/lunar/names.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;IACjE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;IACjE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;IAC7D,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC3D,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IAC7D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;IAC9D,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAC5E,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO;IAC1E,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI;IACzE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IACvE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK;IAC3E,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ;IACxE,OAAO,EAAE,UAAU,EAAE,UAAU;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;CAClE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar-specific politics delta hook.
|
|
3
|
+
* Lunar outpost politics: agency funding pressure, commercial partnerships.
|
|
4
|
+
*/
|
|
5
|
+
export declare function lunarPoliticsHook(category: string, outcome: string): Record<string, number> | null;
|
|
6
|
+
//# sourceMappingURL=politics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"politics.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/politics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAG/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lunar-specific politics delta hook.
|
|
3
|
+
* Lunar outpost politics: agency funding pressure, commercial partnerships.
|
|
4
|
+
*/
|
|
5
|
+
const POLITICS_CATEGORIES = new Set(['political', 'social']);
|
|
6
|
+
const SUCCESS_DELTA = { independencePressure: 0.03, earthDependencyPct: -2 };
|
|
7
|
+
const FAILURE_DELTA = { independencePressure: -0.02, earthDependencyPct: 3 };
|
|
8
|
+
export function lunarPoliticsHook(category, outcome) {
|
|
9
|
+
if (!POLITICS_CATEGORIES.has(category))
|
|
10
|
+
return null;
|
|
11
|
+
return outcome.includes('success') ? { ...SUCCESS_DELTA } : { ...FAILURE_DELTA };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=politics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"politics.js","sourceRoot":"","sources":["../../../src/engine/lunar/politics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,MAAM,aAAa,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7E,MAAM,aAAa,GAAG,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;AAE7E,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,OAAe;IAEf,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface LunarKeyPersonnel {
|
|
2
|
+
name: string;
|
|
3
|
+
department: string;
|
|
4
|
+
role: string;
|
|
5
|
+
specialization: string;
|
|
6
|
+
age: number;
|
|
7
|
+
featured: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface LunarLeaderPreset {
|
|
10
|
+
name: string;
|
|
11
|
+
archetype: string;
|
|
12
|
+
colony: string;
|
|
13
|
+
hexaco: {
|
|
14
|
+
openness: number;
|
|
15
|
+
conscientiousness: number;
|
|
16
|
+
extraversion: number;
|
|
17
|
+
agreeableness: number;
|
|
18
|
+
emotionality: number;
|
|
19
|
+
honestyHumility: number;
|
|
20
|
+
};
|
|
21
|
+
instructions: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const LUNAR_DEFAULT_KEY_PERSONNEL: LunarKeyPersonnel[];
|
|
24
|
+
export declare const LUNAR_DEFAULT_LEADERS: LunarLeaderPreset[];
|
|
25
|
+
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/presets.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,EAM1D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,EAepD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const LUNAR_DEFAULT_KEY_PERSONNEL = [
|
|
2
|
+
{ name: 'Dr. Sarah Anderson', department: 'medical', role: 'Chief Medical Officer', specialization: 'Aerospace Medicine', age: 42, featured: true },
|
|
3
|
+
{ name: 'James Mueller', department: 'engineering', role: 'Chief Engineer', specialization: 'Structural Systems', age: 48, featured: true },
|
|
4
|
+
{ name: 'Dr. Yuki Nakamura', department: 'mining', role: 'Mining Operations Lead', specialization: 'ISRU Engineering', age: 39, featured: true },
|
|
5
|
+
{ name: 'Chen Wei', department: 'life-support', role: 'Life Support Chief', specialization: 'ECLSS Design', age: 44, featured: true },
|
|
6
|
+
{ name: 'Maria Santos', department: 'communications', role: 'Communications Officer', specialization: 'Deep Space Networks', age: 36, featured: true },
|
|
7
|
+
];
|
|
8
|
+
export const LUNAR_DEFAULT_LEADERS = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Commander Sarah Lindgren',
|
|
11
|
+
archetype: 'The Pioneer',
|
|
12
|
+
colony: 'Shackleton Base',
|
|
13
|
+
hexaco: { openness: 0.85, conscientiousness: 0.60, extraversion: 0.75, agreeableness: 0.65, emotionality: 0.35, honestyHumility: 0.70 },
|
|
14
|
+
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.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: 'Commander Raj Patel',
|
|
18
|
+
archetype: 'The Methodologist',
|
|
19
|
+
colony: 'Artemis Station',
|
|
20
|
+
hexaco: { openness: 0.35, conscientiousness: 0.90, extraversion: 0.40, agreeableness: 0.70, emotionality: 0.60, honestyHumility: 0.85 },
|
|
21
|
+
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.',
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/engine/lunar/presets.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,2BAA2B,GAAwB;IAC9D,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnJ,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3I,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChJ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrI,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,wBAAwB,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;CACvJ,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD;QACE,IAAI,EAAE,0BAA0B;QAChC,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACvI,YAAY,EAAE,uNAAuN;KACtO;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,SAAS,EAAE,mBAAmB;QAC9B,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACvI,YAAY,EAAE,4OAA4O;KAC3P;CACF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProgressionHookContext } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lunar-specific between-turn progression: regolith dust exposure and muscle atrophy.
|
|
4
|
+
* Lunar gravity is 1/6g (vs Mars 0.38g), causing faster muscle/bone loss.
|
|
5
|
+
*/
|
|
6
|
+
export declare function lunarProgressionHook(ctx: ProgressionHookContext): void;
|
|
7
|
+
//# sourceMappingURL=progression-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progression-hooks.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/progression-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAI1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAetE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const LUNAR_REGOLITH_EXPOSURE_PER_YEAR = 45; // arbitrary units, lunar dust toxicity index
|
|
2
|
+
/**
|
|
3
|
+
* Lunar-specific between-turn progression: regolith dust exposure and muscle atrophy.
|
|
4
|
+
* Lunar gravity is 1/6g (vs Mars 0.38g), causing faster muscle/bone loss.
|
|
5
|
+
*/
|
|
6
|
+
export function lunarProgressionHook(ctx) {
|
|
7
|
+
const { agents, yearDelta, year, startYear } = ctx;
|
|
8
|
+
for (const c of agents) {
|
|
9
|
+
if (!c.health.alive)
|
|
10
|
+
continue;
|
|
11
|
+
// Regolith dust exposure (cumulative, like Mars radiation but from toxic lunar dust)
|
|
12
|
+
c.health.cumulativeRadiationMsv = (c.health.cumulativeRadiationMsv ?? 0) + LUNAR_REGOLITH_EXPOSURE_PER_YEAR * yearDelta;
|
|
13
|
+
// Muscle/bone atrophy in 1/6g (faster than Mars 0.38g)
|
|
14
|
+
const lossRate = 0.008; // faster than Mars (0.005) due to lower gravity
|
|
15
|
+
const yearsOnMoon = year - startYear;
|
|
16
|
+
const decayFactor = Math.max(0.4, 1 - lossRate * Math.min(yearsOnMoon, 15));
|
|
17
|
+
c.health.boneDensityPct = Math.max(40, (c.health.boneDensityPct ?? 0) * decayFactor);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=progression-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progression-hooks.js","sourceRoot":"","sources":["../../../src/engine/lunar/progression-hooks.ts"],"names":[],"mappings":"AAEA,MAAM,gCAAgC,GAAG,EAAE,CAAC,CAAC,6CAA6C;AAE1F;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAA2B;IAC9D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAEnD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;YAAE,SAAS;QAE9B,qFAAqF;QACrF,CAAC,CAAC,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,CAAC,CAAC,GAAG,gCAAgC,GAAG,SAAS,CAAC;QAExH,uDAAuD;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,gDAAgD;QACxE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;IACvF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SimulationState } from '../core/state.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lunar-specific department prompt context lines.
|
|
4
|
+
*/
|
|
5
|
+
export declare function lunarDepartmentPromptLines(dept: string, state: SimulationState): string[];
|
|
6
|
+
/**
|
|
7
|
+
* Lunar-specific Crisis Director system instructions.
|
|
8
|
+
*/
|
|
9
|
+
export declare function lunarDirectorInstructions(): string;
|
|
10
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/engine/lunar/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,CA0BzF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA+BlD"}
|