@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.
Files changed (80) hide show
  1. package/dist/cjs/defaults/index.d.ts.map +1 -1
  2. package/dist/cjs/defaults/index.js +10 -5
  3. package/dist/cjs/events/types.d.ts +1 -1
  4. package/dist/cjs/events/types.d.ts.map +1 -1
  5. package/dist/cjs/index.d.ts +2 -2
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/llm/resolve.d.ts.map +1 -1
  8. package/dist/cjs/llm/resolve.js +2 -1
  9. package/dist/cjs/llm/schema.d.ts +0 -114
  10. package/dist/cjs/llm/schema.d.ts.map +1 -1
  11. package/dist/cjs/llm/schema.js +1 -44
  12. package/dist/cjs/persona/chat-orchestrator.d.ts +18 -3
  13. package/dist/cjs/persona/chat-orchestrator.d.ts.map +1 -1
  14. package/dist/cjs/persona/chat-orchestrator.js +29 -109
  15. package/dist/cjs/persona/conversation.d.ts +22 -1
  16. package/dist/cjs/persona/conversation.d.ts.map +1 -1
  17. package/dist/cjs/persona/conversation.js +2 -0
  18. package/dist/cjs/persona/memory-pipeline.d.ts.map +1 -1
  19. package/dist/cjs/persona/memory-pipeline.js +30 -4
  20. package/dist/cjs/persona.d.ts +330 -36
  21. package/dist/cjs/persona.d.ts.map +1 -1
  22. package/dist/cjs/persona.js +302 -19
  23. package/dist/cjs/shared/errors.d.ts +5 -1
  24. package/dist/cjs/shared/errors.d.ts.map +1 -1
  25. package/dist/cjs/shared/errors.js +4 -0
  26. package/dist/cjs/types.d.ts +18 -0
  27. package/dist/cjs/types.d.ts.map +1 -1
  28. package/dist/cjs/world/world-persona.d.ts +20 -5
  29. package/dist/cjs/world/world-persona.d.ts.map +1 -1
  30. package/dist/cjs/world/world-persona.js +21 -5
  31. package/dist/cjs/world/world.d.ts +23 -3
  32. package/dist/cjs/world/world.d.ts.map +1 -1
  33. package/dist/cjs/world/world.js +24 -1
  34. package/dist/esm/api-client.js +2 -2
  35. package/dist/esm/defaults/index.d.ts.map +1 -1
  36. package/dist/esm/defaults/index.js +10 -2
  37. package/dist/esm/errors.js +1 -1
  38. package/dist/esm/events/types.d.ts +1 -1
  39. package/dist/esm/events/types.d.ts.map +1 -1
  40. package/dist/esm/generate/persona.js +2 -2
  41. package/dist/esm/index.d.ts +2 -2
  42. package/dist/esm/index.d.ts.map +1 -1
  43. package/dist/esm/index.js +6 -6
  44. package/dist/esm/llm/resolve.d.ts.map +1 -1
  45. package/dist/esm/llm/resolve.js +3 -2
  46. package/dist/esm/llm/schema.d.ts +0 -114
  47. package/dist/esm/llm/schema.d.ts.map +1 -1
  48. package/dist/esm/llm/schema.js +0 -43
  49. package/dist/esm/llm/vercel-ai/index.js +2 -2
  50. package/dist/esm/package.json +1 -0
  51. package/dist/esm/persona/chat-orchestrator.d.ts +18 -3
  52. package/dist/esm/persona/chat-orchestrator.d.ts.map +1 -1
  53. package/dist/esm/persona/chat-orchestrator.js +32 -112
  54. package/dist/esm/persona/conversation.d.ts +22 -1
  55. package/dist/esm/persona/conversation.d.ts.map +1 -1
  56. package/dist/esm/persona/conversation.js +2 -0
  57. package/dist/esm/persona/memory-pipeline.d.ts.map +1 -1
  58. package/dist/esm/persona/memory-pipeline.js +31 -5
  59. package/dist/esm/persona.d.ts +330 -36
  60. package/dist/esm/persona.d.ts.map +1 -1
  61. package/dist/esm/persona.js +308 -26
  62. package/dist/esm/shared/errors.d.ts +5 -1
  63. package/dist/esm/shared/errors.d.ts.map +1 -1
  64. package/dist/esm/shared/errors.js +4 -0
  65. package/dist/esm/types.d.ts +18 -0
  66. package/dist/esm/types.d.ts.map +1 -1
  67. package/dist/esm/types.js +1 -1
  68. package/dist/esm/world/client.js +2 -2
  69. package/dist/esm/world/errors.js +1 -1
  70. package/dist/esm/world/index.js +5 -5
  71. package/dist/esm/world/world-domain.js +3 -3
  72. package/dist/esm/world/world-persona.d.ts +20 -5
  73. package/dist/esm/world/world-persona.d.ts.map +1 -1
  74. package/dist/esm/world/world-persona.js +23 -7
  75. package/dist/esm/world/world.d.ts +23 -3
  76. package/dist/esm/world/world.d.ts.map +1 -1
  77. package/dist/esm/world/world.js +27 -4
  78. package/package.json +3 -3
  79. package/dist/cjs/defaults/persona.json +0 -17
  80. package/dist/esm/defaults/persona.json +0 -17
@@ -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, AppraisalMode, AppraisalVector, InterlocutorContext, RelationshipContext, PersonaSnapshot, PersonaConfigData, PerceiveOptions } from './types';
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
- /** Current emotional and psychological state of a persona. */
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
- /** Current emotion in VAD (Valence-Arousal-Dominance) space with discrete label. */
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
- /** Background mood (slower-changing than emotion). */
62
- mood?: {
63
- vad: {
64
- V: number;
65
- A: number;
66
- D: number;
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
- /** Active somatic (body) sensations. */
70
- somatic?: string[];
71
- /** Narrative self-perception (tone, agency, coherence). */
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
- * Perceive a chat message from another entity. Simplest wrapper over {@link perceive}.
373
+ * Register a received message with the emotion engine and update the persona's emotional state.
235
374
  *
236
- * @param message - The incoming message text.
237
- * @param from - Who sent the message (name string or structured context).
238
- * @returns Emotion engine response.
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
- * @example
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
- * const response = await persona.hear('How are you?', 'Alice');
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
- * Get the persona's current emotional and psychological state.
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 Current emotion (VAD + discrete), mood, somatic sensations, and narrative.
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
- * Called internally by {@link chat}. Use directly when building custom LLM pipelines.
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 consumerSuffix - App-specific context appended to the system prompt.
409
- * Do NOT include identity, personality, or emotion these are already in the prompt.
410
- * @param sourceEntity - Name of the conversation partner (for interlocutor-aware prompts).
411
- * @returns System prompt string and structured persona prompt data.
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(consumerSuffix?: string, sourceEntity?: string): Promise<{
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":"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"}
1
+ {"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../src/persona.ts"],"names":[],"mappings":"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"}