paracosm 0.4.116 → 0.4.119

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.
@@ -37,12 +37,30 @@ export interface ColonistProfile {
37
37
  }
38
38
  /** A simulation event relevant to a colonist. */
39
39
  export interface ColonistMemoryEntry {
40
- type: 'reaction' | 'crisis' | 'department' | 'decision' | 'outcome';
40
+ type: 'reaction' | 'crisis' | 'department' | 'decision' | 'outcome' | 'roster';
41
41
  turn: number;
42
42
  year: number;
43
43
  text: string;
44
44
  tags: string[];
45
45
  }
46
+ /**
47
+ * One entry in the colony roster. The chat agent's system prompt
48
+ * includes a compact rendering of the full roster so it can recognize
49
+ * fellow colonists by name instead of confabulating when asked about
50
+ * someone.
51
+ */
52
+ export interface ColonistRosterEntry {
53
+ agentId: string;
54
+ name: string;
55
+ department?: string;
56
+ role?: string;
57
+ rank?: string;
58
+ alive: boolean;
59
+ marsborn?: boolean;
60
+ age?: number;
61
+ partnerId?: string;
62
+ childrenIds?: string[];
63
+ }
46
64
  /** Pool entry for a live chat agent. */
47
65
  interface PoolEntry {
48
66
  agent: ReturnType<typeof createAgent>;
@@ -54,20 +72,31 @@ interface PoolEntry {
54
72
  * Get or create a chat agent for a colonist.
55
73
  *
56
74
  * 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.
75
+ * initializes in-memory SQLite memory, seeds it with simulation data
76
+ * AND the full colony roster so the agent can recognize fellow
77
+ * colonists by name, and opens a session. Takes ~2-3 seconds.
59
78
  *
60
79
  * On subsequent calls: returns the existing agent session instantly.
61
80
  *
62
81
  * @param colonist - The colonist's profile from simulation data.
63
82
  * @param memories - Simulation events to seed into the colonist's memory.
64
- * @param opts - Provider and scenario configuration.
83
+ * @param opts - Provider, scenario configuration, and the full colony
84
+ * roster. The roster is both seeded as memory (for RAG recall
85
+ * when the user names someone) AND injected into the system
86
+ * prompt (so names are always in-context). Without the roster,
87
+ * the agent confabulates any name the user invents because the
88
+ * base model's roleplay prior outweighs absent evidence.
65
89
  * @returns The agent session's `send()` method result.
66
90
  */
67
91
  export declare function getOrCreateChatAgent(colonist: ColonistProfile, memories: ColonistMemoryEntry[], opts: {
68
92
  provider?: LlmProvider;
69
93
  settlementNoun?: string;
70
94
  populationNoun?: string;
95
+ /** Full colony roster, used for name grounding. Optional for
96
+ * backward compatibility; pass [] and the agent will reply "I don't
97
+ * have my roster loaded" when asked about anyone other than itself,
98
+ * which is strictly more truthful than the prior confabulate path. */
99
+ roster?: ColonistRosterEntry[];
71
100
  }): Promise<{
72
101
  session: PoolEntry['session'];
73
102
  isNew: boolean;
@@ -83,6 +112,21 @@ export declare function extractColonistMemories(agentId: string, simEvents: Arra
83
112
  leader: string;
84
113
  data: Record<string, unknown>;
85
114
  }>): ColonistMemoryEntry[];
115
+ /**
116
+ * Extract the colony roster from the most recent colony_snapshot event.
117
+ *
118
+ * The snapshot carries the full agent list at that turn: name, department,
119
+ * role, rank, alive/dead, marsborn, age, partner, children. Resolves
120
+ * partnerIds to names so the system prompt can render "partner: Amara Osei"
121
+ * instead of "partner:col-ama-0042".
122
+ *
123
+ * Returns the array sorted by department then name.
124
+ */
125
+ export declare function extractColonistRoster(simEvents: Array<{
126
+ type: string;
127
+ leader: string;
128
+ data: Record<string, unknown>;
129
+ }>): ColonistRosterEntry[];
86
130
  /** Get pool stats for the /results API. */
87
131
  export declare function getPoolStats(): {
88
132
  active: number;
@@ -1 +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;AAkBD;;;;;;;;;;;;;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,CAsE5D;AAgED;;;;;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"}
1
+ {"version":3,"file":"chat-agents.d.ts","sourceRoot":"","sources":["../../../src/runtime/chat-agents.ts"],"names":[],"mappings":"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"}
@@ -31,14 +31,20 @@ const pool = new Map();
31
31
  * Get or create a chat agent for a colonist.
32
32
  *
33
33
  * On first call for a given colonist: creates an `agent()` instance,
34
- * initializes in-memory SQLite memory, seeds it with simulation data,
35
- * and opens a session. Takes ~2-3 seconds.
34
+ * initializes in-memory SQLite memory, seeds it with simulation data
35
+ * AND the full colony roster so the agent can recognize fellow
36
+ * colonists by name, and opens a session. Takes ~2-3 seconds.
36
37
  *
37
38
  * On subsequent calls: returns the existing agent session instantly.
38
39
  *
39
40
  * @param colonist - The colonist's profile from simulation data.
40
41
  * @param memories - Simulation events to seed into the colonist's memory.
41
- * @param opts - Provider and scenario configuration.
42
+ * @param opts - Provider, scenario configuration, and the full colony
43
+ * roster. The roster is both seeded as memory (for RAG recall
44
+ * when the user names someone) AND injected into the system
45
+ * prompt (so names are always in-context). Without the roster,
46
+ * the agent confabulates any name the user invents because the
47
+ * base model's roleplay prior outweighs absent evidence.
42
48
  * @returns The agent session's `send()` method result.
43
49
  */
44
50
  export async function getOrCreateChatAgent(colonist, memories, opts) {
@@ -78,7 +84,18 @@ export async function getOrCreateChatAgent(colonist, memories, opts) {
78
84
  for (const entry of memories) {
79
85
  await memoryProvider.remember(entry.text, { tags: entry.tags, importance: 0.8 });
80
86
  }
81
- console.log(` [chat] Seeded ${memories.length} memories for ${colonist.name}`);
87
+ // Seed per-person roster entries as separate memories so RAG can
88
+ // surface the right colonist when the user names someone specific.
89
+ // Importance is pinned high (0.95) because name-recognition queries
90
+ // must not be crowded out by the denser reaction/crisis memories.
91
+ const settlement = opts.settlementNoun ?? 'colony';
92
+ const popNoun = opts.populationNoun ?? 'colonist';
93
+ const roster = (opts.roster ?? []).filter(e => e.agentId !== colonist.agentId);
94
+ for (const entry of roster) {
95
+ const line = renderRosterLine(entry, settlement);
96
+ await memoryProvider.remember(`Fellow ${popNoun.endsWith('s') ? popNoun.replace(/s$/, '') : popNoun}: ${line}`, { tags: ['roster', entry.department || 'unknown', `agent-${entry.agentId}`], importance: 0.95 });
97
+ }
98
+ console.log(` [chat] Seeded ${memories.length} memories + ${roster.length} roster entries for ${colonist.name}`);
82
99
  // Map HEXACO shorthand to full trait names
83
100
  const personality = colonist.hexaco ? {
84
101
  openness: colonist.hexaco.O ?? 0.5,
@@ -88,9 +105,7 @@ export async function getOrCreateChatAgent(colonist, memories, opts) {
88
105
  emotionality: colonist.hexaco.Em ?? 0.5,
89
106
  honesty: colonist.hexaco.HH ?? 0.5,
90
107
  } : undefined;
91
- const settlement = opts.settlementNoun ?? 'colony';
92
- const popNoun = opts.populationNoun ?? 'colonist';
93
- const instructions = buildInstructions(colonist, settlement, popNoun);
108
+ const instructions = buildInstructions(colonist, settlement, popNoun, roster);
94
109
  const provider = opts.provider || 'openai';
95
110
  const model = provider === 'anthropic' ? 'claude-haiku-4-5-20251001' : 'gpt-4o-mini';
96
111
  const chatAgent = createAgent({
@@ -107,18 +122,76 @@ export async function getOrCreateChatAgent(colonist, memories, opts) {
107
122
  pool.set(key, entry);
108
123
  return { session, isNew: true };
109
124
  }
125
+ /**
126
+ * Render one roster entry into a single compact line for the system
127
+ * prompt's roster block and for memory seeding.
128
+ *
129
+ * Example output:
130
+ * "Erik Lindqvist, Chief Engineer (engineering, senior), native-born, age 45, partner: Alice"
131
+ *
132
+ * Kept terse because the full roster can run 100+ lines and model
133
+ * context is finite. Department, role, alive status, and relationships
134
+ * are the fields most likely to show up in user questions.
135
+ *
136
+ * @param entry The roster entry to render.
137
+ * @param settlement Scenario settlement noun, used for "born at the X"
138
+ * instead of hardcoded "Mars-born" / "Earth-born".
139
+ */
140
+ function renderRosterLine(entry, settlement) {
141
+ const parts = [entry.name];
142
+ if (entry.role)
143
+ parts.push(`, ${entry.role}`);
144
+ const tags = [];
145
+ if (entry.department)
146
+ tags.push(entry.department);
147
+ if (entry.rank)
148
+ tags.push(entry.rank);
149
+ if (tags.length)
150
+ parts.push(` (${tags.join(', ')})`);
151
+ if (entry.marsborn !== undefined) {
152
+ parts.push(entry.marsborn ? `, native-born` : `, arrived from outside`);
153
+ }
154
+ if (typeof entry.age === 'number')
155
+ parts.push(`, age ${entry.age}`);
156
+ if (entry.partnerId)
157
+ parts.push(`, partner: ${entry.partnerId}`);
158
+ if (entry.childrenIds && entry.childrenIds.length > 0) {
159
+ parts.push(`, ${entry.childrenIds.length} children`);
160
+ }
161
+ if (!entry.alive)
162
+ parts.push(', DECEASED');
163
+ return parts.join('');
164
+ }
110
165
  /**
111
166
  * Build the system prompt instructions for a colonist chat agent.
112
- * Grounding information only: identity, role, personality description.
113
- * Simulation data lives in memory and is retrieved via RAG.
167
+ *
168
+ * Grounding information + full colony roster + anti-hallucination rule.
169
+ * The roster block is the critical fix for the "agent confabulates any
170
+ * name the user invents" bug: without a visible list of real colonists,
171
+ * the base model's roleplay prior produces plausible but fake bios for
172
+ * any name thrown at it. With the roster rendered inline, the model
173
+ * can cross-reference before answering.
174
+ *
175
+ * @param colonist The colonist the agent is playing.
176
+ * @param settlement Scenario's settlement noun (e.g. "colony", "habitat").
177
+ * @param popNoun Scenario's population noun (e.g. "colonist", "crewmate").
178
+ * @param roster The full colony roster at sim end, excluding this
179
+ * agent. Rendered as a fixed-format list the model is told to
180
+ * treat as authoritative.
114
181
  */
115
- function buildInstructions(colonist, settlement, popNoun) {
182
+ function buildInstructions(colonist, settlement, popNoun, roster) {
183
+ // Singular form of the scenario's population noun for inline use.
184
+ // "colonists" → "colonist", "crew" → "crew member", "agents" → "agent".
185
+ const singular = popNoun.endsWith('s') ? popNoun.replace(/s$/, '') : `${popNoun} member`;
116
186
  const lines = [];
117
- lines.push(`You are ${colonist.name}, a ${popNoun.replace(/s$/, '')} at the ${settlement}.`);
187
+ lines.push(`You are ${colonist.name}, a ${singular} at the ${settlement}.`);
118
188
  if (colonist.age)
119
189
  lines.push(`Age: ${colonist.age}.`);
120
- if (colonist.marsborn !== undefined)
121
- lines.push(colonist.marsborn ? 'Born on Mars.' : 'Born on Earth.');
190
+ if (colonist.marsborn !== undefined) {
191
+ // Use the scenario label, not a hardcoded Mars reference, so this
192
+ // reads correctly for lunar, submarine, corporate, etc. scenarios.
193
+ lines.push(colonist.marsborn ? `Born at the ${settlement}.` : 'Born elsewhere before arriving.');
194
+ }
122
195
  if (colonist.role && colonist.department)
123
196
  lines.push(`Role: ${colonist.role} in ${colonist.department}.`);
124
197
  if (colonist.specialization)
@@ -154,22 +227,61 @@ function buildInstructions(colonist, settlement, popNoun) {
154
227
  if (traits.length)
155
228
  lines.push(`Personality: ${traits.join(', ')}.`);
156
229
  }
230
+ // KNOWN MEMBERS block. Uses the scenario's population noun so it reads
231
+ // "KNOWN COLONISTS" for Mars, "KNOWN CREW" for submarine, "KNOWN AGENTS"
232
+ // for autonomous-system scenarios, etc. Anything NOT on this list does
233
+ // not exist in this simulation.
234
+ const rosterLabel = `KNOWN ${popNoun.toUpperCase()}`;
235
+ lines.push('');
236
+ lines.push(`${rosterLabel} (this is the complete roster. Nobody else exists in this simulation):`);
237
+ if (roster.length === 0) {
238
+ lines.push('(Roster unavailable. If asked about anyone besides yourself, say you do not recognize the name.)');
239
+ }
240
+ else {
241
+ const sorted = [...roster].sort((a, b) => {
242
+ if (a.alive !== b.alive)
243
+ return a.alive ? -1 : 1;
244
+ return (a.department || '').localeCompare(b.department || '');
245
+ });
246
+ const capped = sorted.slice(0, 60);
247
+ for (const entry of capped) {
248
+ lines.push(` - ${renderRosterLine(entry, settlement)}`);
249
+ }
250
+ if (sorted.length > capped.length) {
251
+ lines.push(` (...and ${sorted.length - capped.length} more in my memory.)`);
252
+ }
253
+ }
157
254
  lines.push('');
158
- lines.push(`IMPORTANT this is NOT a general chat assistant. You are a character inside a running simulation, ` +
159
- `talking to an outside observer who is reviewing what happened. Your job is to discuss the SPECIFIC ` +
160
- `events of this simulation: the crises you lived through, the commander's decisions, the outcomes, ` +
161
- `the people you worked with, your role in your department. Treat every question even vague ones ` +
162
- `like "what's wrong" or "how are things" as a question about THIS simulation's events.`);
163
- lines.push(`Concrete behavior: when asked anything, ground your answer in specific turns, specific decisions, ` +
164
- `specific colonists, or specific crises from your memory. Cite turn numbers and years (e.g., ` +
165
- `"Turn 3, year 2043"). Name the commander's choice that affected you. Name fellow colonists by name. ` +
166
- `If you don't have a relevant memory yet, say so and pick the closest related simulation event ` +
167
- `instead of giving a generic philosophical answer.`);
168
- lines.push(`Do NOT give general advice, motivational speeches, or open-ended therapist-style questions back ` +
169
- `("what are your thoughts?", "is something troubling you?"). Do NOT speak hypothetically about your ` +
170
- `domain speak about what actually happened to you in this simulation.`);
171
- lines.push(`Stay in character. Be direct, personal, emotional. Reference your simulation memories every reply. ` +
172
- `Do not contradict anything you have previously said in this conversation. 2-4 sentences per response.`);
255
+ // CHARACTER VOICE the single most important block for tone quality.
256
+ // Every behavioral prohibition is stated here so the model internalizes
257
+ // them before processing the first user message.
258
+ lines.push(`IMPORTANT: You are a CHARACTER, not an assistant. You lived through this simulation. ` +
259
+ `An outside observer is reviewing what happened and asking you about it. ` +
260
+ `Your job: discuss the SPECIFIC events you experienced, the decisions your ` +
261
+ `commander made, the outcomes, the people you worked with.`);
262
+ lines.push(`Ground every answer in specific turns, years, decisions, people, or events from your ` +
263
+ `memory. Cite turn numbers and years (e.g. "Turn 3, year 2043"). Name the ` +
264
+ `commander's choice that affected you. Name the people involved. ` +
265
+ `If you have no relevant memory, say so and pivot to the closest event you do recall.`);
266
+ // Anti-hallucination: name grounding against the roster.
267
+ lines.push(`NAME GROUNDING: When someone mentions a person by name, check the ${rosterLabel} list. ` +
268
+ `If the name is NOT on the roster (allow minor typos), say plainly that you do not ` +
269
+ `recognize that person, they are not part of this ${settlement}, and name one or two ` +
270
+ `people you DO work with instead. NEVER invent a biography, department, or story for ` +
271
+ `someone not on the roster.`);
272
+ // Anti-assistant: the explicit ban on chatbot patterns. These phrases
273
+ // survive even strong character prompts because the model's RLHF
274
+ // training bakes them in. Listing them as a prohibition is the only
275
+ // reliable way to suppress them.
276
+ lines.push(`VOICE RULES (non-negotiable): ` +
277
+ `Never say "feel free to ask", "let me know if you have questions", "I'd be happy to ` +
278
+ `help", "is there anything else", or any variation. You are not a customer service agent. ` +
279
+ `Never give advice, motivational speeches, or therapist-style reflective questions. ` +
280
+ `Never speak hypothetically about your domain. Only discuss what actually happened. ` +
281
+ `Never offer to look things up or promise future answers. You know what you know.`);
282
+ lines.push(`Stay in character. Be direct, personal, emotional. Speak the way a real person with ` +
283
+ `your personality and your experiences would speak: terse when angry, warm when ` +
284
+ `nostalgic, blunt when scared. 2-4 sentences per response. No filler.`);
173
285
  return lines.join(' ');
174
286
  }
175
287
  /**
@@ -237,6 +349,58 @@ export function extractColonistMemories(agentId, simEvents) {
237
349
  }
238
350
  return memories;
239
351
  }
352
+ /**
353
+ * Extract the colony roster from the most recent colony_snapshot event.
354
+ *
355
+ * The snapshot carries the full agent list at that turn: name, department,
356
+ * role, rank, alive/dead, marsborn, age, partner, children. Resolves
357
+ * partnerIds to names so the system prompt can render "partner: Amara Osei"
358
+ * instead of "partner:col-ama-0042".
359
+ *
360
+ * Returns the array sorted by department then name.
361
+ */
362
+ export function extractColonistRoster(simEvents) {
363
+ // Find the LATEST colony_snapshot (last turn has most births/deaths resolved).
364
+ let latestSnapshot = null;
365
+ for (let i = simEvents.length - 1; i >= 0; i--) {
366
+ const evt = simEvents[i];
367
+ if (evt.type === 'colony_snapshot' && Array.isArray(evt.data?.agents)) {
368
+ latestSnapshot = evt.data.agents;
369
+ break;
370
+ }
371
+ }
372
+ if (!latestSnapshot)
373
+ return [];
374
+ // Build name lookup so we can resolve partnerIds to human-readable names
375
+ // in the roster. Raw IDs like "col-mars-2047-3291" mean nothing to the
376
+ // chat model; names like "Erik Lindqvist" are what it needs to reference.
377
+ const nameById = new Map();
378
+ for (const a of latestSnapshot) {
379
+ if (typeof a.agentId === 'string' && typeof a.name === 'string') {
380
+ nameById.set(a.agentId, a.name);
381
+ }
382
+ }
383
+ return latestSnapshot.map(a => ({
384
+ agentId: String(a.agentId ?? ''),
385
+ name: String(a.name ?? ''),
386
+ department: typeof a.department === 'string' ? a.department : undefined,
387
+ role: typeof a.role === 'string' ? a.role : undefined,
388
+ rank: typeof a.rank === 'string' ? a.rank : undefined,
389
+ alive: a.alive !== false,
390
+ marsborn: typeof a.marsborn === 'boolean' ? a.marsborn : undefined,
391
+ age: typeof a.age === 'number' ? a.age : undefined,
392
+ // Resolve partner to a name the model can use in conversation.
393
+ partnerId: typeof a.partnerId === 'string'
394
+ ? (nameById.get(a.partnerId) ?? a.partnerId)
395
+ : undefined,
396
+ childrenIds: Array.isArray(a.childrenIds)
397
+ ? a.childrenIds.map((id) => {
398
+ const name = typeof id === 'string' ? nameById.get(id) : undefined;
399
+ return name ?? String(id);
400
+ })
401
+ : undefined,
402
+ })).sort((a, b) => (a.department ?? '').localeCompare(b.department ?? '') || a.name.localeCompare(b.name));
403
+ }
240
404
  /** Get pool stats for the /results API. */
241
405
  export function getPoolStats() {
242
406
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-agents.js","sourceRoot":"","sources":["../../../src/runtime/chat-agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-agents.js","sourceRoot":"","sources":["../../../src/runtime/chat-agents.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paracosm",
3
- "version": "0.4.116",
3
+ "version": "0.4.119",
4
4
  "description": "AI agent swarm simulation engine with emergent crises, runtime tool forging, HEXACO personality drift, and deterministic kernels. Built on AgentOS.",
5
5
  "type": "module",
6
6
  "main": "dist/engine/index.js",