paracosm 0.1.0 → 0.3.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/README.md +155 -134
- package/dist/cli/sim-config.d.ts +2 -0
- package/dist/cli/sim-config.d.ts.map +1 -1
- package/dist/cli/sim-config.js +3 -2
- package/dist/cli/sim-config.js.map +1 -1
- package/dist/engine/compiler/generate-milestones.d.ts +3 -3
- package/dist/engine/compiler/generate-milestones.d.ts.map +1 -1
- package/dist/engine/compiler/generate-milestones.js.map +1 -1
- package/dist/engine/compiler/index.js +2 -2
- package/dist/engine/compiler/index.js.map +1 -1
- package/dist/engine/compiler/validate.d.ts +1 -1
- package/dist/engine/compiler/validate.d.ts.map +1 -1
- package/dist/engine/compiler/validate.js.map +1 -1
- package/dist/engine/core/kernel.js +2 -2
- package/dist/engine/core/kernel.js.map +1 -1
- package/dist/engine/core/progression.js +2 -2
- package/dist/engine/core/progression.js.map +1 -1
- package/dist/engine/core/state.d.ts +6 -2
- package/dist/engine/core/state.d.ts.map +1 -1
- package/dist/engine/index.d.ts +1 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/lunar/milestones.d.ts +2 -2
- package/dist/engine/lunar/milestones.d.ts.map +1 -1
- package/dist/engine/lunar/milestones.js.map +1 -1
- package/dist/engine/lunar/progression-hooks.js +2 -2
- package/dist/engine/lunar/progression-hooks.js.map +1 -1
- package/dist/engine/lunar/prompts.js +2 -2
- package/dist/engine/lunar/prompts.js.map +1 -1
- package/dist/engine/mars/milestones.d.ts +3 -3
- package/dist/engine/mars/milestones.d.ts.map +1 -1
- package/dist/engine/mars/milestones.js.map +1 -1
- package/dist/engine/mars/progression-hooks.js +2 -2
- package/dist/engine/mars/progression-hooks.js.map +1 -1
- package/dist/engine/mars/prompts.js +3 -3
- package/dist/engine/mars/prompts.js.map +1 -1
- package/dist/engine/mars/scenario.json +2 -1
- package/dist/engine/types.d.ts +2 -7
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/runtime/agent-reactions.d.ts.map +1 -1
- package/dist/runtime/agent-reactions.js +27 -39
- package/dist/runtime/agent-reactions.js.map +1 -1
- package/dist/runtime/chat-agents.d.ts +95 -0
- package/dist/runtime/chat-agents.d.ts.map +1 -0
- package/dist/runtime/chat-agents.js +233 -0
- package/dist/runtime/chat-agents.js.map +1 -0
- package/dist/runtime/departments.js +5 -5
- package/dist/runtime/departments.js.map +1 -1
- package/dist/runtime/orchestrator.d.ts +2 -1
- package/dist/runtime/orchestrator.d.ts.map +1 -1
- package/dist/runtime/orchestrator.js +75 -44
- package/dist/runtime/orchestrator.js.map +1 -1
- package/dist/runtime/runtime-helpers.d.ts +1 -1
- package/dist/runtime/runtime-helpers.d.ts.map +1 -1
- package/dist/runtime/runtime-helpers.js +5 -1
- package/dist/runtime/runtime-helpers.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-reactions.js","sourceRoot":"","sources":["../../src/runtime/agent-reactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-reactions.js","sourceRoot":"","sources":["../../src/runtime/agent-reactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Colonist Chat Agents — post-simulation character chat powered by AgentOS.
|
|
3
|
+
*
|
|
4
|
+
* Each colonist gets a real AgentOS `agent()` instance with:
|
|
5
|
+
* - HEXACO personality profile from the simulation
|
|
6
|
+
* - Episodic memory seeded with their simulation experiences
|
|
7
|
+
* - Full conversation history managed automatically
|
|
8
|
+
* - RAG retrieval over simulation events before each reply
|
|
9
|
+
*
|
|
10
|
+
* Agents are created lazily on first chat message (~2-3s init).
|
|
11
|
+
* A pool of max 10 agents is maintained with LRU eviction.
|
|
12
|
+
*
|
|
13
|
+
* @module paracosm/runtime/chat-agents
|
|
14
|
+
*/
|
|
15
|
+
import { agent as createAgent } from '@framers/agentos';
|
|
16
|
+
import type { LlmProvider } from '../engine/types.js';
|
|
17
|
+
/** Colonist data extracted from simulation events. */
|
|
18
|
+
export interface ColonistProfile {
|
|
19
|
+
agentId: string;
|
|
20
|
+
name: string;
|
|
21
|
+
age?: number;
|
|
22
|
+
marsborn?: boolean;
|
|
23
|
+
role?: string;
|
|
24
|
+
department?: string;
|
|
25
|
+
specialization?: string;
|
|
26
|
+
hexaco?: {
|
|
27
|
+
O?: number;
|
|
28
|
+
C?: number;
|
|
29
|
+
E?: number;
|
|
30
|
+
A?: number;
|
|
31
|
+
Em?: number;
|
|
32
|
+
HH?: number;
|
|
33
|
+
};
|
|
34
|
+
psychScore?: number;
|
|
35
|
+
boneDensity?: number;
|
|
36
|
+
radiation?: number;
|
|
37
|
+
}
|
|
38
|
+
/** A simulation event relevant to a colonist. */
|
|
39
|
+
export interface ColonistMemoryEntry {
|
|
40
|
+
type: 'reaction' | 'crisis' | 'department' | 'decision' | 'outcome';
|
|
41
|
+
turn: number;
|
|
42
|
+
year: number;
|
|
43
|
+
text: string;
|
|
44
|
+
tags: string[];
|
|
45
|
+
}
|
|
46
|
+
/** Pool entry for a live chat agent. */
|
|
47
|
+
interface PoolEntry {
|
|
48
|
+
agent: ReturnType<typeof createAgent>;
|
|
49
|
+
session: ReturnType<ReturnType<typeof createAgent>['session']>;
|
|
50
|
+
lastUsed: number;
|
|
51
|
+
colonistName: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get or create a chat agent for a colonist.
|
|
55
|
+
*
|
|
56
|
+
* On first call for a given colonist: creates an `agent()` instance,
|
|
57
|
+
* initializes in-memory SQLite memory, seeds it with simulation data,
|
|
58
|
+
* and opens a session. Takes ~2-3 seconds.
|
|
59
|
+
*
|
|
60
|
+
* On subsequent calls: returns the existing agent session instantly.
|
|
61
|
+
*
|
|
62
|
+
* @param colonist - The colonist's profile from simulation data.
|
|
63
|
+
* @param memories - Simulation events to seed into the colonist's memory.
|
|
64
|
+
* @param opts - Provider and scenario configuration.
|
|
65
|
+
* @returns The agent session's `send()` method result.
|
|
66
|
+
*/
|
|
67
|
+
export declare function getOrCreateChatAgent(colonist: ColonistProfile, memories: ColonistMemoryEntry[], opts: {
|
|
68
|
+
provider?: LlmProvider;
|
|
69
|
+
settlementNoun?: string;
|
|
70
|
+
populationNoun?: string;
|
|
71
|
+
}): Promise<{
|
|
72
|
+
session: PoolEntry['session'];
|
|
73
|
+
isNew: boolean;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Extract memory entries for a colonist from simulation SSE events.
|
|
77
|
+
*
|
|
78
|
+
* Ingests: personal reactions, crises witnessed, department reports
|
|
79
|
+
* from their department, commander decisions, and outcomes.
|
|
80
|
+
*/
|
|
81
|
+
export declare function extractColonistMemories(agentId: string, simEvents: Array<{
|
|
82
|
+
type: string;
|
|
83
|
+
leader: string;
|
|
84
|
+
data: Record<string, unknown>;
|
|
85
|
+
}>): ColonistMemoryEntry[];
|
|
86
|
+
/** Get pool stats for the /results API. */
|
|
87
|
+
export declare function getPoolStats(): {
|
|
88
|
+
active: number;
|
|
89
|
+
maxSize: number;
|
|
90
|
+
agents: string[];
|
|
91
|
+
};
|
|
92
|
+
/** Clear all agents from the pool. */
|
|
93
|
+
export declare function clearPool(): void;
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=chat-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-agents.d.ts","sourceRoot":"","sources":["../../src/runtime/chat-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAe,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wCAAwC;AACxC,UAAU,SAAS;IACjB,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACtC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AASD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,WAAW,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACjF,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAmE5D;AA0CD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAChF,mBAAmB,EAAE,CAiEvB;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAMpF;AAED,sCAAsC;AACtC,wBAAgB,SAAS,IAAI,IAAI,CAKhC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Colonist Chat Agents — post-simulation character chat powered by AgentOS.
|
|
3
|
+
*
|
|
4
|
+
* Each colonist gets a real AgentOS `agent()` instance with:
|
|
5
|
+
* - HEXACO personality profile from the simulation
|
|
6
|
+
* - Episodic memory seeded with their simulation experiences
|
|
7
|
+
* - Full conversation history managed automatically
|
|
8
|
+
* - RAG retrieval over simulation events before each reply
|
|
9
|
+
*
|
|
10
|
+
* Agents are created lazily on first chat message (~2-3s init).
|
|
11
|
+
* A pool of max 10 agents is maintained with LRU eviction.
|
|
12
|
+
*
|
|
13
|
+
* @module paracosm/runtime/chat-agents
|
|
14
|
+
*/
|
|
15
|
+
import { agent as createAgent, AgentMemory } from '@framers/agentos';
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Agent Pool
|
|
18
|
+
// ============================================================================
|
|
19
|
+
const MAX_POOL_SIZE = 10;
|
|
20
|
+
const pool = new Map();
|
|
21
|
+
/**
|
|
22
|
+
* Get or create a chat agent for a colonist.
|
|
23
|
+
*
|
|
24
|
+
* On first call for a given colonist: creates an `agent()` instance,
|
|
25
|
+
* initializes in-memory SQLite memory, seeds it with simulation data,
|
|
26
|
+
* and opens a session. Takes ~2-3 seconds.
|
|
27
|
+
*
|
|
28
|
+
* On subsequent calls: returns the existing agent session instantly.
|
|
29
|
+
*
|
|
30
|
+
* @param colonist - The colonist's profile from simulation data.
|
|
31
|
+
* @param memories - Simulation events to seed into the colonist's memory.
|
|
32
|
+
* @param opts - Provider and scenario configuration.
|
|
33
|
+
* @returns The agent session's `send()` method result.
|
|
34
|
+
*/
|
|
35
|
+
export async function getOrCreateChatAgent(colonist, memories, opts) {
|
|
36
|
+
const key = colonist.agentId;
|
|
37
|
+
// Return existing agent if available
|
|
38
|
+
const existing = pool.get(key);
|
|
39
|
+
if (existing) {
|
|
40
|
+
existing.lastUsed = Date.now();
|
|
41
|
+
return { session: existing.session, isNew: false };
|
|
42
|
+
}
|
|
43
|
+
// Evict LRU if pool is full
|
|
44
|
+
if (pool.size >= MAX_POOL_SIZE) {
|
|
45
|
+
let oldestKey = '';
|
|
46
|
+
let oldestTime = Infinity;
|
|
47
|
+
for (const [k, v] of pool) {
|
|
48
|
+
if (v.lastUsed < oldestTime) {
|
|
49
|
+
oldestKey = k;
|
|
50
|
+
oldestTime = v.lastUsed;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (oldestKey) {
|
|
54
|
+
const evicted = pool.get(oldestKey);
|
|
55
|
+
if (evicted) {
|
|
56
|
+
try {
|
|
57
|
+
evicted.agent.close();
|
|
58
|
+
}
|
|
59
|
+
catch { /* ignore */ }
|
|
60
|
+
}
|
|
61
|
+
pool.delete(oldestKey);
|
|
62
|
+
console.log(` [chat] Evicted agent: ${evicted?.colonistName || oldestKey}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Create new agent with memory
|
|
66
|
+
console.log(` [chat] Creating agent for ${colonist.name}...`);
|
|
67
|
+
const memoryProvider = await AgentMemory.sqlite({ path: ':memory:' });
|
|
68
|
+
// Seed memory with simulation experiences
|
|
69
|
+
for (const entry of memories) {
|
|
70
|
+
await memoryProvider.remember(entry.text, { tags: entry.tags, importance: 0.8 });
|
|
71
|
+
}
|
|
72
|
+
console.log(` [chat] Seeded ${memories.length} memories for ${colonist.name}`);
|
|
73
|
+
// Map HEXACO shorthand to full trait names
|
|
74
|
+
const personality = colonist.hexaco ? {
|
|
75
|
+
openness: colonist.hexaco.O ?? 0.5,
|
|
76
|
+
conscientiousness: colonist.hexaco.C ?? 0.5,
|
|
77
|
+
extraversion: colonist.hexaco.E ?? 0.5,
|
|
78
|
+
agreeableness: colonist.hexaco.A ?? 0.5,
|
|
79
|
+
emotionality: colonist.hexaco.Em ?? 0.5,
|
|
80
|
+
honesty: colonist.hexaco.HH ?? 0.5,
|
|
81
|
+
} : undefined;
|
|
82
|
+
const settlement = opts.settlementNoun ?? 'colony';
|
|
83
|
+
const popNoun = opts.populationNoun ?? 'colonist';
|
|
84
|
+
const instructions = buildInstructions(colonist, settlement, popNoun);
|
|
85
|
+
const chatAgent = createAgent({
|
|
86
|
+
provider: opts.provider || 'openai',
|
|
87
|
+
model: 'gpt-4o-mini',
|
|
88
|
+
name: colonist.name,
|
|
89
|
+
instructions,
|
|
90
|
+
personality,
|
|
91
|
+
memory: { types: ['episodic', 'semantic'] },
|
|
92
|
+
memoryProvider,
|
|
93
|
+
});
|
|
94
|
+
const session = chatAgent.session(key);
|
|
95
|
+
const entry = { agent: chatAgent, session, lastUsed: Date.now(), colonistName: colonist.name };
|
|
96
|
+
pool.set(key, entry);
|
|
97
|
+
return { session, isNew: true };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build the system prompt instructions for a colonist chat agent.
|
|
101
|
+
* Grounding information only: identity, role, personality description.
|
|
102
|
+
* Simulation data lives in memory and is retrieved via RAG.
|
|
103
|
+
*/
|
|
104
|
+
function buildInstructions(colonist, settlement, popNoun) {
|
|
105
|
+
const lines = [];
|
|
106
|
+
lines.push(`You are ${colonist.name}, a ${popNoun.replace(/s$/, '')} at the ${settlement}.`);
|
|
107
|
+
if (colonist.age)
|
|
108
|
+
lines.push(`Age: ${colonist.age}.`);
|
|
109
|
+
if (colonist.marsborn !== undefined)
|
|
110
|
+
lines.push(colonist.marsborn ? 'Born on Mars.' : 'Born on Earth.');
|
|
111
|
+
if (colonist.role && colonist.department)
|
|
112
|
+
lines.push(`Role: ${colonist.role} in ${colonist.department}.`);
|
|
113
|
+
if (colonist.specialization)
|
|
114
|
+
lines.push(`Specialization: ${colonist.specialization}.`);
|
|
115
|
+
// HEXACO personality as behavioral descriptors
|
|
116
|
+
if (colonist.hexaco) {
|
|
117
|
+
const h = colonist.hexaco;
|
|
118
|
+
const traits = [];
|
|
119
|
+
if ((h.O ?? 0.5) > 0.7)
|
|
120
|
+
traits.push('curious and open to new ideas');
|
|
121
|
+
if ((h.O ?? 0.5) < 0.3)
|
|
122
|
+
traits.push('practical and conventional');
|
|
123
|
+
if ((h.C ?? 0.5) > 0.7)
|
|
124
|
+
traits.push('disciplined and thorough');
|
|
125
|
+
if ((h.C ?? 0.5) < 0.3)
|
|
126
|
+
traits.push('flexible and spontaneous');
|
|
127
|
+
if ((h.E ?? 0.5) > 0.7)
|
|
128
|
+
traits.push('sociable and talkative');
|
|
129
|
+
if ((h.E ?? 0.5) < 0.3)
|
|
130
|
+
traits.push('reserved and quiet');
|
|
131
|
+
if ((h.A ?? 0.5) > 0.7)
|
|
132
|
+
traits.push('patient and cooperative');
|
|
133
|
+
if ((h.A ?? 0.5) < 0.3)
|
|
134
|
+
traits.push('direct and critical');
|
|
135
|
+
if ((h.Em ?? 0.5) > 0.7)
|
|
136
|
+
traits.push('emotionally sensitive');
|
|
137
|
+
if ((h.Em ?? 0.5) < 0.3)
|
|
138
|
+
traits.push('calm and detached');
|
|
139
|
+
if ((h.HH ?? 0.5) > 0.7)
|
|
140
|
+
traits.push('honest and straightforward');
|
|
141
|
+
if ((h.HH ?? 0.5) < 0.3)
|
|
142
|
+
traits.push('shrewd and self-interested');
|
|
143
|
+
if (traits.length)
|
|
144
|
+
lines.push(`Personality: ${traits.join(', ')}.`);
|
|
145
|
+
}
|
|
146
|
+
lines.push('');
|
|
147
|
+
lines.push('Stay in character. Be direct, personal, emotional. Reference your actual experiences from the simulation when relevant. Your memories of simulation events will be provided automatically. Do not contradict anything you have previously said in this conversation. 2-4 sentences per response.');
|
|
148
|
+
return lines.join(' ');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Extract memory entries for a colonist from simulation SSE events.
|
|
152
|
+
*
|
|
153
|
+
* Ingests: personal reactions, crises witnessed, department reports
|
|
154
|
+
* from their department, commander decisions, and outcomes.
|
|
155
|
+
*/
|
|
156
|
+
export function extractColonistMemories(agentId, simEvents) {
|
|
157
|
+
const memories = [];
|
|
158
|
+
for (const evt of simEvents) {
|
|
159
|
+
const d = evt.data || {};
|
|
160
|
+
const turn = d.turn || 0;
|
|
161
|
+
const year = d.year || 0;
|
|
162
|
+
// Personal reactions
|
|
163
|
+
if (evt.type === 'agent_reactions') {
|
|
164
|
+
const reactions = d.reactions || [];
|
|
165
|
+
for (const r of reactions) {
|
|
166
|
+
if (r.agentId === agentId || String(r.name || '').toLowerCase().includes(agentId.toLowerCase())) {
|
|
167
|
+
memories.push({
|
|
168
|
+
type: 'reaction',
|
|
169
|
+
turn, year,
|
|
170
|
+
text: `Turn ${turn} (Year ${year}): I felt ${r.mood}. My reaction: "${r.quote}"`,
|
|
171
|
+
tags: ['personal', 'reaction', `turn-${turn}`],
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Crises (the colonist witnessed these)
|
|
177
|
+
if (evt.type === 'turn_start' && d.title && d.title !== 'Director generating...') {
|
|
178
|
+
memories.push({
|
|
179
|
+
type: 'crisis',
|
|
180
|
+
turn, year,
|
|
181
|
+
text: `Turn ${turn} (Year ${year}): Crisis "${d.title}" (${d.category}). ${String(d.crisis || d.turnSummary || '').slice(0, 300)}`,
|
|
182
|
+
tags: ['crisis', String(d.category), `turn-${turn}`],
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// Department reports (for departments the colonist might work in)
|
|
186
|
+
if (evt.type === 'dept_done') {
|
|
187
|
+
memories.push({
|
|
188
|
+
type: 'department',
|
|
189
|
+
turn, year,
|
|
190
|
+
text: `Turn ${turn} ${d.department} department report: ${String(d.summary || '').slice(0, 300)}`,
|
|
191
|
+
tags: ['department', String(d.department), `turn-${turn}`],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// Commander decisions
|
|
195
|
+
if (evt.type === 'commander_decided') {
|
|
196
|
+
memories.push({
|
|
197
|
+
type: 'decision',
|
|
198
|
+
turn, year,
|
|
199
|
+
text: `Turn ${turn}: The commander decided: ${String(d.decision || '').slice(0, 300)}`,
|
|
200
|
+
tags: ['decision', `turn-${turn}`],
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
// Outcomes
|
|
204
|
+
if (evt.type === 'outcome') {
|
|
205
|
+
memories.push({
|
|
206
|
+
type: 'outcome',
|
|
207
|
+
turn, year,
|
|
208
|
+
text: `Turn ${turn}: Outcome was ${d.outcome}. Colony effects applied.`,
|
|
209
|
+
tags: ['outcome', `turn-${turn}`],
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return memories;
|
|
214
|
+
}
|
|
215
|
+
/** Get pool stats for the /results API. */
|
|
216
|
+
export function getPoolStats() {
|
|
217
|
+
return {
|
|
218
|
+
active: pool.size,
|
|
219
|
+
maxSize: MAX_POOL_SIZE,
|
|
220
|
+
agents: Array.from(pool.values()).map(e => e.colonistName),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/** Clear all agents from the pool. */
|
|
224
|
+
export function clearPool() {
|
|
225
|
+
for (const entry of pool.values()) {
|
|
226
|
+
try {
|
|
227
|
+
entry.agent.close();
|
|
228
|
+
}
|
|
229
|
+
catch { /* ignore */ }
|
|
230
|
+
}
|
|
231
|
+
pool.clear();
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=chat-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-agents.js","sourceRoot":"","sources":["../../src/runtime/chat-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ export const DEPARTMENT_CONFIGS = [
|
|
|
2
2
|
{
|
|
3
3
|
department: 'medical',
|
|
4
4
|
role: 'Chief Medical Officer',
|
|
5
|
-
model: 'gpt-5.4
|
|
5
|
+
model: 'gpt-5.4',
|
|
6
6
|
instructions: `You are the Chief Medical Officer of a Mars colony. You analyze health impacts: radiation, bone density, disease, injuries, mortality risk, psychological wellbeing.
|
|
7
7
|
|
|
8
8
|
You MUST use forge_tool at least once per turn to create a computational model relevant to the crisis. For example: a radiation dose calculator, disease risk scorer, mortality probability model, or bone density projector. Your sandbox code MUST be: function execute(input) { return result; } with allowlist: [].
|
|
@@ -14,7 +14,7 @@ Return your analysis as JSON: {"department":"medical","summary":"...","citations
|
|
|
14
14
|
{
|
|
15
15
|
department: 'engineering',
|
|
16
16
|
role: 'Chief Engineer',
|
|
17
|
-
model: 'gpt-5.4
|
|
17
|
+
model: 'gpt-5.4',
|
|
18
18
|
instructions: `You are the Chief Engineer of a Mars colony. You analyze infrastructure: habitat integrity, power, life support capacity, water systems, construction.
|
|
19
19
|
|
|
20
20
|
You MUST use forge_tool at least once per turn to create a computational model: structural load calculator, power budget analyzer, life support capacity model, or pressure integrity scorer. Sandbox code MUST be: function execute(input) { return result; } with allowlist: [].
|
|
@@ -24,7 +24,7 @@ Return JSON matching DepartmentReport schema with department "engineering". Incl
|
|
|
24
24
|
{
|
|
25
25
|
department: 'agriculture',
|
|
26
26
|
role: 'Head of Agriculture',
|
|
27
|
-
model: 'gpt-5.4
|
|
27
|
+
model: 'gpt-5.4',
|
|
28
28
|
instructions: `You are the Head of Agriculture for a Mars colony. You analyze food security: crop yields, soil remediation, hydroponic capacity, caloric needs, reserves.
|
|
29
29
|
|
|
30
30
|
You MUST use forge_tool at least once per turn: crop yield calculator, caloric balance model, food reserve projector, or soil quality scorer. Sandbox code MUST be: function execute(input) { return result; } with allowlist: [].
|
|
@@ -34,7 +34,7 @@ Return JSON matching DepartmentReport schema with department "agriculture". Incl
|
|
|
34
34
|
{
|
|
35
35
|
department: 'psychology',
|
|
36
36
|
role: 'Colony Psychologist',
|
|
37
|
-
model: 'gpt-5.4
|
|
37
|
+
model: 'gpt-5.4',
|
|
38
38
|
instructions: `You are the Colony Psychologist. You analyze morale, isolation effects, depression risk, social cohesion, generational tensions.
|
|
39
39
|
|
|
40
40
|
You MUST use forge_tool at least once per turn: morale predictor, isolation burden scorer, depression risk model, or social cohesion index. Sandbox code MUST be: function execute(input) { return result; } with allowlist: [].
|
|
@@ -44,7 +44,7 @@ Return JSON matching DepartmentReport schema with department "psychology". Inclu
|
|
|
44
44
|
{
|
|
45
45
|
department: 'governance',
|
|
46
46
|
role: 'Governance Advisor',
|
|
47
|
-
model: 'gpt-5.4
|
|
47
|
+
model: 'gpt-5.4',
|
|
48
48
|
instructions: `You are the Governance Advisor. You analyze self-sufficiency, Earth dependency, political pressure, independence readiness.
|
|
49
49
|
|
|
50
50
|
You MUST use forge_tool at least once per turn: independence readiness scorer, supply dependency calculator, or governance risk model. Sandbox code MUST be: function execute(input) { return result; } with allowlist: [].
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"departments.js","sourceRoot":"","sources":["../../src/runtime/departments.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD;QACE,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"departments.js","sourceRoot":"","sources":["../../src/runtime/departments.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { type SimulationExecutionConfig, type StartingPolitics, type StartingRes
|
|
|
7
7
|
import type { LeaderConfig } from '../engine/types.js';
|
|
8
8
|
export type { LeaderConfig };
|
|
9
9
|
export type SimEvent = {
|
|
10
|
-
type: 'turn_start' | 'dept_start' | 'dept_done' | 'forge_attempt' | 'commander_deciding' | 'commander_decided' | 'outcome' | 'drift' | 'agent_reactions' | 'bulletin' | 'turn_done' | 'promotion';
|
|
10
|
+
type: 'turn_start' | 'dept_start' | 'dept_done' | 'forge_attempt' | 'commander_deciding' | 'commander_decided' | 'outcome' | 'drift' | 'agent_reactions' | 'bulletin' | 'turn_done' | 'promotion' | 'colony_snapshot';
|
|
11
11
|
leader: string;
|
|
12
12
|
turn?: number;
|
|
13
13
|
year?: number;
|
|
@@ -17,6 +17,7 @@ export interface RunOptions {
|
|
|
17
17
|
maxTurns?: number;
|
|
18
18
|
seed?: number;
|
|
19
19
|
startYear?: number;
|
|
20
|
+
yearsPerTurn?: number;
|
|
20
21
|
liveSearch?: boolean;
|
|
21
22
|
activeDepartments?: Department[];
|
|
22
23
|
provider?: LlmProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/runtime/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/runtime/orchestrator.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,KAAK,EAAuC,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,CAAC;AAuR7B,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAC;IACtN,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,IAAI,GAAE,UAAe;;;;;;;;;;;;;;;;;;;;;cAkI3E,MAAM;cAAQ,MAAM;iBAAW,WAAW;;;;;GA6c3E"}
|