Skip to content

Commit f16e28d

Browse files
committed
fix: clarify leaders are not limited to two, API supports any number
1 parent 285c86b commit f16e28d

1 file changed

Lines changed: 37 additions & 32 deletions

File tree

src/cli/dashboard/landing.html

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ <h1>PARACOSM</h1>
381381
}</div>
382382
</div>
383383
<div class="code-block">
384-
<div class="code-header"><span>3. Compile the world, define two leaders, run them in parallel</span><button class="code-copy" onclick="copyCode(this, document.getElementById('api-code').textContent)">Copy</button></div>
384+
<div class="code-header"><span>3. Compile, define leaders, run</span><button class="code-copy" onclick="copyCode(this, document.getElementById('api-code').textContent)">Copy</button></div>
385385
<div class="code-body" id="api-code"><span class="kw">import</span> { compileScenario } <span class="kw">from</span> <span class="str">'paracosm/compiler'</span>;
386386
<span class="kw">import</span> { runSimulation } <span class="kw">from</span> <span class="str">'paracosm/runtime'</span>;
387387
<span class="kw">import</span> worldJson <span class="kw">from</span> <span class="str">'./my-world.json'</span>;
@@ -392,37 +392,42 @@ <h1>PARACOSM</h1>
392392
model: <span class="str">'claude-sonnet-4-6'</span>,
393393
});
394394

395-
<span class="cm">// 2. Define two commanders with different HEXACO personalities</span>
396-
<span class="cm">// Same world, same crises — different decisions</span>
397-
<span class="kw">const</span> leaderA = {
398-
name: <span class="str">'Captain Reyes'</span>,
399-
archetype: <span class="str">'The Pragmatist'</span>,
400-
colony: <span class="str">'Station Alpha'</span>,
401-
hexaco: { openness: <span class="num">0.4</span>, conscientiousness: <span class="num">0.9</span>,
402-
extraversion: <span class="num">0.3</span>, agreeableness: <span class="num">0.6</span>,
403-
emotionality: <span class="num">0.5</span>, honestyHumility: <span class="num">0.8</span> },
404-
instructions: <span class="str">'You lead by protocol. Safety margins first.'</span>,
405-
};
406-
407-
<span class="kw">const</span> leaderB = {
408-
name: <span class="str">'Captain Okafor'</span>,
409-
archetype: <span class="str">'The Innovator'</span>,
410-
colony: <span class="str">'Station Beta'</span>,
411-
hexaco: { openness: <span class="num">0.9</span>, conscientiousness: <span class="num">0.4</span>,
412-
extraversion: <span class="num">0.8</span>, agreeableness: <span class="num">0.5</span>,
413-
emotionality: <span class="num">0.3</span>, honestyHumility: <span class="num">0.6</span> },
414-
instructions: <span class="str">'You lead by experimentation. Push boundaries.'</span>,
415-
};
416-
417-
<span class="cm">// 3. Run both in parallel — same seed, same crises, different outcomes</span>
418-
<span class="kw">const</span> [resultA, resultB] = <span class="kw">await</span> Promise.<span class="fn">all</span>([
419-
<span class="fn">runSimulation</span>(leaderA, [], { scenario, maxTurns: <span class="num">8</span>, seed: <span class="num">42</span>,
420-
<span class="fn">onEvent</span>(e) { console.<span class="fn">log</span>(<span class="str">'A:'</span>, e.type, e.data?.title); } }),
421-
<span class="fn">runSimulation</span>(leaderB, [], { scenario, maxTurns: <span class="num">8</span>, seed: <span class="num">42</span>,
422-
<span class="fn">onEvent</span>(e) { console.<span class="fn">log</span>(<span class="str">'B:'</span>, e.type, e.data?.title); } }),
423-
]);
424-
425-
<span class="cm">// resultA.finalState vs resultB.finalState — the divergence</span></div>
395+
<span class="cm">// 2. Define leaders with HEXACO personality profiles</span>
396+
<span class="cm">// Each leader is one simulation run. Run one, two, or many.</span>
397+
<span class="cm">// The dashboard runs two side-by-side for comparison,</span>
398+
<span class="cm">// but the API has no limit.</span>
399+
<span class="kw">const</span> leaders = [
400+
{
401+
name: <span class="str">'Captain Reyes'</span>,
402+
archetype: <span class="str">'The Pragmatist'</span>,
403+
colony: <span class="str">'Station Alpha'</span>,
404+
hexaco: { openness: <span class="num">0.4</span>, conscientiousness: <span class="num">0.9</span>,
405+
extraversion: <span class="num">0.3</span>, agreeableness: <span class="num">0.6</span>,
406+
emotionality: <span class="num">0.5</span>, honestyHumility: <span class="num">0.8</span> },
407+
instructions: <span class="str">'You lead by protocol. Safety margins first.'</span>,
408+
},
409+
{
410+
name: <span class="str">'Captain Okafor'</span>,
411+
archetype: <span class="str">'The Innovator'</span>,
412+
colony: <span class="str">'Station Beta'</span>,
413+
hexaco: { openness: <span class="num">0.9</span>, conscientiousness: <span class="num">0.4</span>,
414+
extraversion: <span class="num">0.8</span>, agreeableness: <span class="num">0.5</span>,
415+
emotionality: <span class="num">0.3</span>, honestyHumility: <span class="num">0.6</span> },
416+
instructions: <span class="str">'You lead by experimentation. Push boundaries.'</span>,
417+
},
418+
];
419+
420+
<span class="cm">// 3. Run in parallel: same seed, same crises, different outcomes</span>
421+
<span class="kw">const</span> results = <span class="kw">await</span> Promise.<span class="fn">all</span>(
422+
leaders.<span class="fn">map</span>(leader =>
423+
<span class="fn">runSimulation</span>(leader, [], {
424+
scenario,
425+
maxTurns: <span class="num">8</span>,
426+
seed: <span class="num">42</span>,
427+
<span class="fn">onEvent</span>(e) { console.<span class="fn">log</span>(leader.name, e.type, e.data?.title); },
428+
})
429+
)
430+
);</div>
426431
</div>
427432
<div class="code-block">
428433
<div class="code-header"><span>Or: quick start with the dashboard</span><button class="code-copy" onclick="copyCode(this, document.getElementById('dash-code').textContent)">Copy</button></div>

0 commit comments

Comments
 (0)