@molroo-io/sdk 0.9.0 → 0.10.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/dist/cjs/defaults/index.d.ts.map +1 -1
- package/dist/cjs/defaults/index.js +10 -5
- package/dist/cjs/events/types.d.ts +1 -1
- package/dist/cjs/events/types.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/llm/resolve.d.ts.map +1 -1
- package/dist/cjs/llm/resolve.js +2 -1
- package/dist/cjs/llm/schema.d.ts +0 -114
- package/dist/cjs/llm/schema.d.ts.map +1 -1
- package/dist/cjs/llm/schema.js +1 -44
- package/dist/cjs/persona/chat-orchestrator.d.ts +18 -3
- package/dist/cjs/persona/chat-orchestrator.d.ts.map +1 -1
- package/dist/cjs/persona/chat-orchestrator.js +29 -109
- package/dist/cjs/persona/conversation.d.ts +22 -1
- package/dist/cjs/persona/conversation.d.ts.map +1 -1
- package/dist/cjs/persona/conversation.js +2 -0
- package/dist/cjs/persona/memory-pipeline.d.ts.map +1 -1
- package/dist/cjs/persona/memory-pipeline.js +30 -4
- package/dist/cjs/persona.d.ts +330 -36
- package/dist/cjs/persona.d.ts.map +1 -1
- package/dist/cjs/persona.js +302 -19
- package/dist/cjs/shared/errors.d.ts +5 -1
- package/dist/cjs/shared/errors.d.ts.map +1 -1
- package/dist/cjs/shared/errors.js +4 -0
- package/dist/cjs/types.d.ts +18 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/world/world-persona.d.ts +20 -5
- package/dist/cjs/world/world-persona.d.ts.map +1 -1
- package/dist/cjs/world/world-persona.js +21 -5
- package/dist/cjs/world/world.d.ts +23 -3
- package/dist/cjs/world/world.d.ts.map +1 -1
- package/dist/cjs/world/world.js +24 -1
- package/dist/esm/api-client.js +2 -2
- package/dist/esm/defaults/index.d.ts.map +1 -1
- package/dist/esm/defaults/index.js +10 -2
- package/dist/esm/errors.js +1 -1
- package/dist/esm/events/types.d.ts +1 -1
- package/dist/esm/events/types.d.ts.map +1 -1
- package/dist/esm/generate/persona.js +2 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/llm/resolve.d.ts.map +1 -1
- package/dist/esm/llm/resolve.js +3 -2
- package/dist/esm/llm/schema.d.ts +0 -114
- package/dist/esm/llm/schema.d.ts.map +1 -1
- package/dist/esm/llm/schema.js +0 -43
- package/dist/esm/llm/vercel-ai/index.js +2 -2
- package/dist/esm/package.json +1 -0
- package/dist/esm/persona/chat-orchestrator.d.ts +18 -3
- package/dist/esm/persona/chat-orchestrator.d.ts.map +1 -1
- package/dist/esm/persona/chat-orchestrator.js +32 -112
- package/dist/esm/persona/conversation.d.ts +22 -1
- package/dist/esm/persona/conversation.d.ts.map +1 -1
- package/dist/esm/persona/conversation.js +2 -0
- package/dist/esm/persona/memory-pipeline.d.ts.map +1 -1
- package/dist/esm/persona/memory-pipeline.js +31 -5
- package/dist/esm/persona.d.ts +330 -36
- package/dist/esm/persona.d.ts.map +1 -1
- package/dist/esm/persona.js +308 -26
- package/dist/esm/shared/errors.d.ts +5 -1
- package/dist/esm/shared/errors.d.ts.map +1 -1
- package/dist/esm/shared/errors.js +4 -0
- package/dist/esm/types.d.ts +18 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/world/client.js +2 -2
- package/dist/esm/world/errors.js +1 -1
- package/dist/esm/world/index.js +5 -5
- package/dist/esm/world/world-domain.js +3 -3
- package/dist/esm/world/world-persona.d.ts +20 -5
- package/dist/esm/world/world-persona.d.ts.map +1 -1
- package/dist/esm/world/world-persona.js +23 -7
- package/dist/esm/world/world.d.ts +23 -3
- package/dist/esm/world/world.d.ts.map +1 -1
- package/dist/esm/world/world.js +27 -4
- package/package.json +3 -3
- package/dist/cjs/defaults/persona.json +0 -17
- package/dist/esm/defaults/persona.json +0 -17
package/dist/esm/persona.d.ts
CHANGED
|
@@ -2,9 +2,52 @@ import type { LLMAdapter, Message } from './llm/adapter';
|
|
|
2
2
|
import { type LLMInput } from './llm/resolve';
|
|
3
3
|
import type { MemoryAdapter, RecallLimits } from './memory/types';
|
|
4
4
|
import type { EventAdapter } from './events/types';
|
|
5
|
-
import type { AgentResponse,
|
|
5
|
+
import type { AgentResponse, AppraisalVector, InterlocutorContext, RelationshipContext, PersonaSnapshot, PersonaConfigData, PerceiveOptions, PersonaIdentity } from './types';
|
|
6
6
|
import type { StyleProfile } from './expression';
|
|
7
7
|
import { Conversation, type ConversationOptions } from './persona/conversation';
|
|
8
|
+
/**
|
|
9
|
+
* Discriminated input for {@link MolrooPersona.react}. Each kind corresponds
|
|
10
|
+
* to one of the legacy input methods (perceive/hear/experience/event/socialize).
|
|
11
|
+
*/
|
|
12
|
+
export type ReactInput = {
|
|
13
|
+
kind: 'perceive';
|
|
14
|
+
message: string;
|
|
15
|
+
options?: PerceiveOptions;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'hear';
|
|
18
|
+
message: string;
|
|
19
|
+
from?: string | InterlocutorContext;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'experience';
|
|
22
|
+
description: string;
|
|
23
|
+
appraisal: AppraisalVector;
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'event';
|
|
26
|
+
type: string;
|
|
27
|
+
description: string;
|
|
28
|
+
appraisal: AppraisalVector;
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'socialize';
|
|
31
|
+
message: string;
|
|
32
|
+
from: string | InterlocutorContext;
|
|
33
|
+
relationship: RelationshipContext;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Patch shape for {@link MolrooPersona.update}. Any subset of fields may be
|
|
37
|
+
* provided; they are applied in declaration order.
|
|
38
|
+
*/
|
|
39
|
+
export interface PersonaUpdate {
|
|
40
|
+
emotion?: Partial<{
|
|
41
|
+
V: number;
|
|
42
|
+
A: number;
|
|
43
|
+
D: number;
|
|
44
|
+
}>;
|
|
45
|
+
annotation?: string;
|
|
46
|
+
nextResponse?: string;
|
|
47
|
+
styleProfile?: StyleProfile;
|
|
48
|
+
config?: PersonaConfigData;
|
|
49
|
+
snapshot?: PersonaSnapshot;
|
|
50
|
+
}
|
|
8
51
|
/** Configuration for connecting to a standalone persona instance. */
|
|
9
52
|
export interface MolrooPersonaConfig {
|
|
10
53
|
/** Base URL of the molroo API. Defaults to 'https://api.molroo.io'. */
|
|
@@ -32,8 +75,6 @@ export interface MolrooPersonaConfig {
|
|
|
32
75
|
* memory_consolidated, reflection_generated, etc.).
|
|
33
76
|
*/
|
|
34
77
|
events?: EventAdapter;
|
|
35
|
-
/** Appraisal generation mode for `chat()`. Defaults to `direct`. */
|
|
36
|
-
appraisalMode?: AppraisalMode;
|
|
37
78
|
}
|
|
38
79
|
/** Summary of a persona instance, returned by list operations. */
|
|
39
80
|
export interface PersonaSummary {
|
|
@@ -43,37 +84,140 @@ export interface PersonaSummary {
|
|
|
43
84
|
engineVersion: string;
|
|
44
85
|
createdAt: number;
|
|
45
86
|
}
|
|
46
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* Current emotional and psychological state of a persona, as returned by {@link MolrooPersona.getState}.
|
|
89
|
+
*
|
|
90
|
+
* This is the primary data structure apps use to assemble system prompts without relying on
|
|
91
|
+
* `chat()`. All subsystems computed by the emotion engine are included here.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const state = await persona.getState();
|
|
96
|
+
*
|
|
97
|
+
* // Build your own system prompt
|
|
98
|
+
* const systemPrompt = [
|
|
99
|
+
* `You are ${myPersonaName}.`,
|
|
100
|
+
* `Current emotion: ${state.emotion.discrete?.primary} (intensity ${state.emotion.discrete?.intensity.toFixed(2)})`,
|
|
101
|
+
* state.mood ? `Mood: V=${state.mood.V.toFixed(2)} A=${state.mood.A.toFixed(2)}` : '',
|
|
102
|
+
* state.selfEsteem ? `Self-esteem: ${state.selfEsteem.global.toFixed(2)}` : '',
|
|
103
|
+
* ].filter(Boolean).join('\n');
|
|
104
|
+
*
|
|
105
|
+
* const { text } = await myLLM.generate({ system: systemPrompt, messages });
|
|
106
|
+
* await persona.hear(lastUserMessage);
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
47
109
|
export interface PersonaState {
|
|
48
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Current emotion in VAD (Valence-Arousal-Dominance) space with discrete label.
|
|
112
|
+
* Use this to communicate the persona's felt emotional tone to the LLM.
|
|
113
|
+
* - `vad.V`: Valence (−1 = negative, +1 = positive)
|
|
114
|
+
* - `vad.A`: Arousal (0 = calm, 1 = activated)
|
|
115
|
+
* - `vad.D`: Dominance (0 = submissive, 1 = dominant)
|
|
116
|
+
* - `discrete.primary`: Named emotion label (e.g. "joy", "anger", "sadness")
|
|
117
|
+
*/
|
|
49
118
|
emotion: {
|
|
50
119
|
vad: {
|
|
51
120
|
V: number;
|
|
52
121
|
A: number;
|
|
53
122
|
D: number;
|
|
54
123
|
};
|
|
55
|
-
discrete
|
|
124
|
+
discrete: {
|
|
56
125
|
primary: string;
|
|
57
126
|
secondary?: string;
|
|
58
127
|
intensity: number;
|
|
59
128
|
};
|
|
60
129
|
};
|
|
61
|
-
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
130
|
+
/**
|
|
131
|
+
* Soul stage — the persona's current developmental/personality phase.
|
|
132
|
+
* Governs the blending ratio between rational and irrational response styles.
|
|
133
|
+
* Include in prompts to modulate how impulsive or deliberate the persona acts.
|
|
134
|
+
*/
|
|
135
|
+
soulStage: {
|
|
136
|
+
id: number;
|
|
137
|
+
name: string;
|
|
138
|
+
blendTable: {
|
|
139
|
+
rational: number;
|
|
140
|
+
irrational: number;
|
|
67
141
|
};
|
|
142
|
+
turnsInStage: number;
|
|
68
143
|
};
|
|
69
|
-
/**
|
|
70
|
-
|
|
71
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Persona mask — the gap between true emotion and presented face.
|
|
146
|
+
* - `integrity`: 0 (mask fully intact) to 1 (mask broken, raw emotion exposed)
|
|
147
|
+
* - `state`: "stable" | "cracking" | "broken"
|
|
148
|
+
* Low integrity indicates emotional leakage — the persona may show truer feelings.
|
|
149
|
+
*/
|
|
150
|
+
mask: {
|
|
151
|
+
integrity: number;
|
|
152
|
+
state: string;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Background mood — slower-changing than emotion, sets the ambient emotional color.
|
|
156
|
+
* VAD values directly (not nested): `{ V, A, D }`.
|
|
157
|
+
* Useful for setting a sustained tone across a conversation (e.g., melancholy all day).
|
|
158
|
+
*/
|
|
159
|
+
mood?: {
|
|
160
|
+
V: number;
|
|
161
|
+
A: number;
|
|
162
|
+
D: number;
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Active somatic (body) sensations as intensity values.
|
|
166
|
+
* Keys are sensation names (e.g. "chest_tightness", "warmth"), values are 0–1 intensities.
|
|
167
|
+
* Use this to add embodied, physical descriptions to the persona's responses.
|
|
168
|
+
*/
|
|
169
|
+
somatic?: {
|
|
170
|
+
[key: string]: number;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Narrative self-perception — how the persona understands their own story.
|
|
174
|
+
* - `tone`: −1 (tragic) to +1 (hopeful)
|
|
175
|
+
* - `agency`: 0 (helpless) to 1 (in control)
|
|
176
|
+
* - `coherence`: 0 (fragmented) to 1 (integrated)
|
|
177
|
+
* High agency + high tone = optimistic protagonist. Low agency + low tone = victim narrative.
|
|
178
|
+
*/
|
|
72
179
|
narrative?: {
|
|
73
180
|
tone: number;
|
|
74
181
|
agency: number;
|
|
75
182
|
coherence: number;
|
|
76
183
|
};
|
|
184
|
+
/**
|
|
185
|
+
* Active emotion regulation strategy.
|
|
186
|
+
* `null` if the persona is not actively regulating.
|
|
187
|
+
* Include to let the LLM know whether the persona is suppressing, reappraising, etc.
|
|
188
|
+
*/
|
|
189
|
+
regulation?: {
|
|
190
|
+
activeStrategy: string | null;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Global self-esteem level (0–1).
|
|
194
|
+
* Low self-esteem shapes how the persona responds to praise, criticism, and challenges.
|
|
195
|
+
*/
|
|
196
|
+
selfEsteem?: {
|
|
197
|
+
global: number;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Terror Management Theory (TMT) state — existential anxiety subsystem.
|
|
201
|
+
* - `mortalitySalience`: how front-of-mind death awareness is (0–1)
|
|
202
|
+
* - `deathAnxiety`: underlying anxiety level (0–1)
|
|
203
|
+
* - `defenseMode`: "proximal" (denial) | "distal" (worldview defense) | "none"
|
|
204
|
+
*/
|
|
205
|
+
tmt?: {
|
|
206
|
+
mortalitySalience: number;
|
|
207
|
+
deathAnxiety: number;
|
|
208
|
+
defenseMode: 'proximal' | 'distal' | 'none';
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Relationship state with the current interlocutor.
|
|
212
|
+
* - `trust`: 0–1
|
|
213
|
+
* - `intimacy`: 0–1
|
|
214
|
+
* - `attachmentStyle`: e.g. "secure" | "anxious" | "avoidant"
|
|
215
|
+
*/
|
|
216
|
+
relationship?: {
|
|
217
|
+
trust: number;
|
|
218
|
+
intimacy: number;
|
|
219
|
+
attachmentStyle?: string;
|
|
220
|
+
};
|
|
77
221
|
}
|
|
78
222
|
/** Result of a persona chat interaction, including LLM text and emotion data. */
|
|
79
223
|
export interface PersonaChatResult {
|
|
@@ -99,7 +243,6 @@ export declare class MolrooPersona {
|
|
|
99
243
|
private memoryRecallConfig;
|
|
100
244
|
private events;
|
|
101
245
|
private _personaId;
|
|
102
|
-
private appraisalMode;
|
|
103
246
|
constructor(config: MolrooPersonaConfig & {
|
|
104
247
|
llm?: LLMAdapter;
|
|
105
248
|
engineLlm?: LLMAdapter;
|
|
@@ -128,7 +271,6 @@ export declare class MolrooPersona {
|
|
|
128
271
|
memory?: MemoryAdapter;
|
|
129
272
|
recall?: RecallLimits;
|
|
130
273
|
events?: EventAdapter;
|
|
131
|
-
appraisalMode?: AppraisalMode;
|
|
132
274
|
}, description: string): Promise<MolrooPersona>;
|
|
133
275
|
/**
|
|
134
276
|
* Create a new persona with explicit configuration.
|
|
@@ -149,7 +291,6 @@ export declare class MolrooPersona {
|
|
|
149
291
|
memory?: MemoryAdapter;
|
|
150
292
|
recall?: RecallLimits;
|
|
151
293
|
events?: EventAdapter;
|
|
152
|
-
appraisalMode?: AppraisalMode;
|
|
153
294
|
}, personaConfig: PersonaConfigData): Promise<MolrooPersona>;
|
|
154
295
|
/**
|
|
155
296
|
* Internal implementation for creating persona with resolved config.
|
|
@@ -168,7 +309,6 @@ export declare class MolrooPersona {
|
|
|
168
309
|
memory?: MemoryAdapter;
|
|
169
310
|
recall?: RecallLimits;
|
|
170
311
|
events?: EventAdapter;
|
|
171
|
-
appraisalMode?: AppraisalMode;
|
|
172
312
|
}, description: string): Promise<MolrooPersona>;
|
|
173
313
|
/**
|
|
174
314
|
* Connect to an existing persona by ID.
|
|
@@ -195,7 +335,6 @@ export declare class MolrooPersona {
|
|
|
195
335
|
memory?: MemoryAdapter;
|
|
196
336
|
recall?: RecallLimits;
|
|
197
337
|
events?: EventAdapter;
|
|
198
|
-
appraisalMode?: AppraisalMode;
|
|
199
338
|
}, personaId: string): Promise<MolrooPersona>;
|
|
200
339
|
/**
|
|
201
340
|
* List all personas for the authenticated tenant.
|
|
@@ -231,15 +370,41 @@ export declare class MolrooPersona {
|
|
|
231
370
|
appraisal: AppraisalVector;
|
|
232
371
|
}): Promise<AgentResponse>;
|
|
233
372
|
/**
|
|
234
|
-
*
|
|
373
|
+
* Register a received message with the emotion engine and update the persona's emotional state.
|
|
235
374
|
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
375
|
+
* This is the **core API** for the `hear() + getState()` pattern. Apps that build their own
|
|
376
|
+
* LLM prompts should call `hear()` after each user message to keep the emotion engine in sync,
|
|
377
|
+
* then call `getState()` to read updated state for prompt assembly.
|
|
239
378
|
*
|
|
240
|
-
* @
|
|
379
|
+
* Use {@link chat} when you want the SDK to handle prompt assembly and LLM orchestration.
|
|
380
|
+
* Use `hear()` + `getState()` when your app owns the LLM call.
|
|
381
|
+
*
|
|
382
|
+
* @param message - The incoming message text (user utterance, narration, etc.).
|
|
383
|
+
* @param from - Who sent the message. A plain string is used as the source entity name.
|
|
384
|
+
* Pass an {@link InterlocutorContext} object for richer context (description, extensions).
|
|
385
|
+
* @returns Emotion engine response with updated VAD, discrete emotion, and any side effects
|
|
386
|
+
* (memory episodes, social updates, stage transitions, etc.).
|
|
387
|
+
*
|
|
388
|
+
* @example Basic hear + getState pattern
|
|
389
|
+
* ```typescript
|
|
390
|
+
* // Step 1: register message with emotion engine
|
|
391
|
+
* await persona.hear('You did a great job today!', 'Alice');
|
|
392
|
+
*
|
|
393
|
+
* // Step 2: read updated psychological state
|
|
394
|
+
* const state = await persona.getState();
|
|
395
|
+
*
|
|
396
|
+
* // Step 3: assemble your own system prompt
|
|
397
|
+
* const systemPrompt = buildPrompt(myPersonaConfig, state);
|
|
398
|
+
* const { text } = await myLLM.generate({ system: systemPrompt, messages });
|
|
399
|
+
* ```
|
|
400
|
+
*
|
|
401
|
+
* @example With structured interlocutor context
|
|
241
402
|
* ```typescript
|
|
242
|
-
*
|
|
403
|
+
* await persona.hear('I need your help', {
|
|
404
|
+
* name: 'Alice',
|
|
405
|
+
* description: 'A regular customer, slightly anxious',
|
|
406
|
+
* extensions: { mood: 'stressed' },
|
|
407
|
+
* });
|
|
243
408
|
* ```
|
|
244
409
|
*/
|
|
245
410
|
hear(message: string, from?: string | InterlocutorContext): Promise<AgentResponse>;
|
|
@@ -302,7 +467,18 @@ export declare class MolrooPersona {
|
|
|
302
467
|
chat(message: string, options?: {
|
|
303
468
|
from?: string | InterlocutorContext;
|
|
304
469
|
history?: Message[];
|
|
470
|
+
/** Free-form app-specific context appended to the system prompt as-is. */
|
|
305
471
|
consumerSuffix?: string;
|
|
472
|
+
/**
|
|
473
|
+
* Behavioral constraints and absolute rules for this conversation.
|
|
474
|
+
* Examples: "Never break character", "Always respond in Korean".
|
|
475
|
+
*/
|
|
476
|
+
consumerRules?: string;
|
|
477
|
+
/**
|
|
478
|
+
* Few-shot example messages that demonstrate the desired style or behavior.
|
|
479
|
+
* Used to guide the LLM's tone and response format.
|
|
480
|
+
*/
|
|
481
|
+
consumerExamples?: string;
|
|
306
482
|
onToolCall?: (call: {
|
|
307
483
|
name: string;
|
|
308
484
|
args: Record<string, unknown>;
|
|
@@ -366,11 +542,53 @@ export declare class MolrooPersona {
|
|
|
366
542
|
otherMessages?: string[];
|
|
367
543
|
}): Promise<Record<string, unknown>>;
|
|
368
544
|
/**
|
|
369
|
-
*
|
|
545
|
+
* Fetch the full psychological state of this persona from the emotion engine.
|
|
546
|
+
*
|
|
547
|
+
* Returns all active subsystems: emotion, soul stage, mask, mood, somatic sensations,
|
|
548
|
+
* narrative self-perception, emotion regulation, self-esteem, TMT state, and relationship.
|
|
549
|
+
*
|
|
550
|
+
* This is the primary data source for apps that build their own LLM prompts. Combine with
|
|
551
|
+
* `hear()` to implement the recommended `hear() + getState()` pattern:
|
|
552
|
+
*
|
|
553
|
+
* ```
|
|
554
|
+
* user message → hear() → emotion engine updates state → getState() → build prompt → LLM
|
|
555
|
+
* ```
|
|
370
556
|
*
|
|
371
|
-
* @returns
|
|
557
|
+
* @returns All psychological subsystems as a {@link PersonaState} object.
|
|
558
|
+
*
|
|
559
|
+
* @example Building a custom system prompt
|
|
560
|
+
* ```typescript
|
|
561
|
+
* const state = await persona.getState();
|
|
562
|
+
*
|
|
563
|
+
* const lines: string[] = [
|
|
564
|
+
* `You are ${name}.`,
|
|
565
|
+
* `Emotion: ${state.emotion.discrete.primary} (${state.emotion.discrete.intensity.toFixed(2)})`,
|
|
566
|
+
* ];
|
|
567
|
+
*
|
|
568
|
+
* if (state.mood) {
|
|
569
|
+
* lines.push(`Mood: valence=${state.mood.V.toFixed(2)} arousal=${state.mood.A.toFixed(2)}`);
|
|
570
|
+
* }
|
|
571
|
+
* if (state.narrative) {
|
|
572
|
+
* lines.push(`Narrative: agency=${state.narrative.agency.toFixed(2)} tone=${state.narrative.tone.toFixed(2)}`);
|
|
573
|
+
* }
|
|
574
|
+
* if (state.selfEsteem) {
|
|
575
|
+
* lines.push(`Self-esteem: ${state.selfEsteem.global.toFixed(2)}`);
|
|
576
|
+
* }
|
|
577
|
+
* if (state.tmt && state.tmt.mortalitySalience > 0.5) {
|
|
578
|
+
* lines.push(`Existential tension is high. Defense mode: ${state.tmt.defenseMode}`);
|
|
579
|
+
* }
|
|
580
|
+
*
|
|
581
|
+
* const systemPrompt = lines.join('\n');
|
|
582
|
+
* ```
|
|
372
583
|
*/
|
|
373
584
|
getState(): Promise<PersonaState>;
|
|
585
|
+
/**
|
|
586
|
+
* Fetch this persona's identity config (identity, personality, goals).
|
|
587
|
+
*
|
|
588
|
+
* Returns a {@link PersonaIdentity} suitable for passing to {@link buildPrompt}
|
|
589
|
+
* when assembling system prompts entirely client-side.
|
|
590
|
+
*/
|
|
591
|
+
getIdentity(): Promise<PersonaIdentity>;
|
|
374
592
|
/**
|
|
375
593
|
* Get a full snapshot of the persona (config + engine state).
|
|
376
594
|
* Useful for backup, migration, or debugging.
|
|
@@ -400,17 +618,56 @@ export declare class MolrooPersona {
|
|
|
400
618
|
restore(): Promise<void>;
|
|
401
619
|
/**
|
|
402
620
|
* Fetch the server-assembled system prompt for this persona.
|
|
403
|
-
* Includes identity, behavioral instructions, psychological state,
|
|
404
|
-
* expression style (if StyleProfile set), and consumerSuffix.
|
|
405
621
|
*
|
|
406
|
-
*
|
|
622
|
+
* The server builds a complete system prompt from the persona's live state. It includes:
|
|
623
|
+
* 1. **Identity** — name, role, core values, speaking style, description
|
|
624
|
+
* 2. **Behavioral instructions** — stay in character, embody state, match language
|
|
625
|
+
* 3. **Psychological state** — emotion, mood, somatic, narrative, goals (from live engine)
|
|
626
|
+
* 4. **Expression constraints** — message length, formality, patterns (only if StyleProfile set)
|
|
627
|
+
* 5. **consumerRules** — behavioral constraints and absolute rules (e.g., "Never break character")
|
|
628
|
+
* 6. **consumerExamples** — few-shot example messages for style/behavior reference
|
|
629
|
+
* 7. **consumerSuffix** — your app-specific context, appended last
|
|
630
|
+
*
|
|
631
|
+
* This is a **middle-tier API** — between the low-level `getState()` (raw data) and the
|
|
632
|
+
* high-level `chat()` (full orchestration). Use it when you want to drive the LLM yourself
|
|
633
|
+
* but still benefit from server-side prompt assembly.
|
|
634
|
+
*
|
|
635
|
+
* Called automatically by {@link chat}. Call directly when:
|
|
636
|
+
* - You use a custom LLM framework not supported by the SDK
|
|
637
|
+
* - You need to inspect or transform the system prompt before sending
|
|
638
|
+
* - You need prompt + state in a single round-trip (avoids a separate `getState()` call)
|
|
639
|
+
*
|
|
640
|
+
* **Do NOT** include identity, personality, or emotion in `consumerSuffix` — those are
|
|
641
|
+
* already present. Duplicating them wastes tokens and may confuse the LLM.
|
|
407
642
|
*
|
|
408
|
-
* @param
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
* @
|
|
643
|
+
* @param options - Prompt context options.
|
|
644
|
+
* @param options.consumerSuffix - Free-form app-specific context appended to the system prompt as-is.
|
|
645
|
+
* Examples: scene description, available actions, current quest objective.
|
|
646
|
+
* @param options.consumerRules - Behavioral constraints and absolute rules.
|
|
647
|
+
* Examples: "Never break character", "Always respond in Korean", "Do not discuss competitors".
|
|
648
|
+
* @param options.consumerExamples - Few-shot example messages for style/behavior reference.
|
|
649
|
+
* Helps the LLM match a specific tone or response format.
|
|
650
|
+
* @param options.sourceEntity - Name of the conversation partner for interlocutor-aware rendering.
|
|
651
|
+
* @returns `systemPrompt` (ready to pass to LLM), `personaPrompt` (structured breakdown),
|
|
652
|
+
* and optional `tools` (if the persona has tools configured).
|
|
653
|
+
*
|
|
654
|
+
* @example Custom LLM call with server-assembled prompt
|
|
655
|
+
* ```typescript
|
|
656
|
+
* const { systemPrompt } = await persona.getPromptContext({
|
|
657
|
+
* consumerSuffix: 'Available actions: [flee, fight, negotiate]',
|
|
658
|
+
* consumerRules: 'Always respond in English. Never break character.',
|
|
659
|
+
* sourceEntity: 'Alice',
|
|
660
|
+
* });
|
|
661
|
+
* const response = await myLLM.complete({ system: systemPrompt, messages });
|
|
662
|
+
* await persona.hear(userMessage, 'Alice');
|
|
663
|
+
* ```
|
|
412
664
|
*/
|
|
413
|
-
getPromptContext(
|
|
665
|
+
getPromptContext(options?: {
|
|
666
|
+
consumerSuffix?: string;
|
|
667
|
+
consumerRules?: string;
|
|
668
|
+
consumerExamples?: string;
|
|
669
|
+
sourceEntity?: string;
|
|
670
|
+
}): Promise<{
|
|
414
671
|
systemPrompt: string;
|
|
415
672
|
personaPrompt: Record<string, unknown>;
|
|
416
673
|
tools?: Array<Record<string, unknown>>;
|
|
@@ -432,6 +689,43 @@ export declare class MolrooPersona {
|
|
|
432
689
|
*/
|
|
433
690
|
conversation(options?: ConversationOptions): Conversation;
|
|
434
691
|
private get memoryPipelineDeps();
|
|
692
|
+
/**
|
|
693
|
+
* Unified input method. Replaces perceive/event/hear/experience/socialize.
|
|
694
|
+
*
|
|
695
|
+
* @example
|
|
696
|
+
* ```ts
|
|
697
|
+
* await persona.react({ kind: 'hear', message: 'hi', from: 'Alice' });
|
|
698
|
+
* await persona.react({ kind: 'experience', description: 'sun set', appraisal });
|
|
699
|
+
* await persona.react({ kind: 'event', type: 'gift', description: 'got flowers', appraisal });
|
|
700
|
+
* ```
|
|
701
|
+
*/
|
|
702
|
+
react(input: ReactInput, options?: PerceiveOptions): Promise<AgentResponse>;
|
|
703
|
+
/**
|
|
704
|
+
* Unified admin/patch method. Replaces setEmotion, annotate, setNextResponse,
|
|
705
|
+
* setStyleProfile, patch, putSnapshot. Multiple fields can be applied in one
|
|
706
|
+
* call; they run sequentially in declaration order.
|
|
707
|
+
*/
|
|
708
|
+
update(patch: PersonaUpdate): Promise<void>;
|
|
435
709
|
private requireLLM;
|
|
436
710
|
}
|
|
711
|
+
/**
|
|
712
|
+
* Assemble a system prompt entirely client-side from a {@link PersonaIdentity} and
|
|
713
|
+
* {@link PersonaState}.
|
|
714
|
+
*
|
|
715
|
+
* Use this with the `hear() + getState()` pattern when you own the LLM call:
|
|
716
|
+
* ```
|
|
717
|
+
* await persona.hear(userMessage);
|
|
718
|
+
* const [identity, state] = await Promise.all([persona.getIdentity(), persona.getState()]);
|
|
719
|
+
* const systemPrompt = buildPrompt(identity, state, { consumerSuffix: 'Scene: coffee shop.' });
|
|
720
|
+
* ```
|
|
721
|
+
*
|
|
722
|
+
* @param identity - Persona config from {@link MolrooPersona.getIdentity}.
|
|
723
|
+
* @param state - Live emotional state from {@link MolrooPersona.getState}.
|
|
724
|
+
* @param options - Optional consumer-provided context appended to the prompt.
|
|
725
|
+
*/
|
|
726
|
+
export declare function buildPrompt(identity: PersonaIdentity, state: PersonaState, options?: {
|
|
727
|
+
consumerRules?: string;
|
|
728
|
+
consumerExamples?: string;
|
|
729
|
+
consumerSuffix?: string;
|
|
730
|
+
}): string;
|
|
437
731
|
//# sourceMappingURL=persona.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../src/persona.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACV,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../src/persona.ts"],"names":[],"mappings":"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"}
|