@molroo-io/sdk 0.8.4 → 0.9.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/errors.d.ts +1 -1
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +2 -1
- package/dist/cjs/index.d.ts +4 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/persona/conversation.d.ts +63 -0
- package/dist/cjs/persona/conversation.d.ts.map +1 -0
- package/dist/cjs/persona/conversation.js +70 -0
- package/dist/cjs/persona.d.ts +187 -2
- package/dist/cjs/persona.d.ts.map +1 -1
- package/dist/cjs/persona.js +195 -2
- package/dist/cjs/shared/errors.d.ts +28 -2
- package/dist/cjs/shared/errors.d.ts.map +1 -1
- package/dist/cjs/shared/errors.js +29 -2
- package/dist/cjs/types.d.ts +52 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +2 -1
- package/dist/cjs/world/world.d.ts +5 -2
- package/dist/cjs/world/world.d.ts.map +1 -1
- package/dist/cjs/world/world.js +5 -2
- package/dist/esm/errors.d.ts +1 -1
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +1 -1
- package/dist/esm/index.d.ts +4 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/persona/conversation.d.ts +63 -0
- package/dist/esm/persona/conversation.d.ts.map +1 -0
- package/dist/esm/persona/conversation.js +66 -0
- package/dist/esm/persona.d.ts +187 -2
- package/dist/esm/persona.d.ts.map +1 -1
- package/dist/esm/persona.js +196 -3
- package/dist/esm/shared/errors.d.ts +28 -2
- package/dist/esm/shared/errors.d.ts.map +1 -1
- package/dist/esm/shared/errors.js +28 -1
- package/dist/esm/types.d.ts +52 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/world/world.d.ts +5 -2
- package/dist/esm/world/world.d.ts.map +1 -1
- package/dist/esm/world/world.js +5 -2
- package/package.json +1 -1
package/dist/cjs/persona.js
CHANGED
|
@@ -39,6 +39,7 @@ const errors_1 = require("./errors");
|
|
|
39
39
|
const api_client_1 = require("./api-client");
|
|
40
40
|
const memory_pipeline_1 = require("./persona/memory-pipeline");
|
|
41
41
|
const chat_orchestrator_1 = require("./persona/chat-orchestrator");
|
|
42
|
+
const conversation_1 = require("./persona/conversation");
|
|
42
43
|
// ── SDK Persona Types ──
|
|
43
44
|
const DEFAULT_BASE_URL = 'https://api.molroo.io';
|
|
44
45
|
// ── MolrooPersona ──
|
|
@@ -60,9 +61,11 @@ class MolrooPersona {
|
|
|
60
61
|
this.appraisalMode = config.appraisalMode ?? 'direct';
|
|
61
62
|
}
|
|
62
63
|
// ── Properties ──
|
|
64
|
+
/** Unique persona instance ID. */
|
|
63
65
|
get id() {
|
|
64
66
|
return this._personaId;
|
|
65
67
|
}
|
|
68
|
+
/** @deprecated Use {@link id} instead. */
|
|
66
69
|
get personaId() {
|
|
67
70
|
return this._personaId;
|
|
68
71
|
}
|
|
@@ -71,7 +74,7 @@ class MolrooPersona {
|
|
|
71
74
|
if (typeof input === 'string') {
|
|
72
75
|
if (!config.llm) {
|
|
73
76
|
throw new errors_1.MolrooApiError('LLM adapter is required when using description string. ' +
|
|
74
|
-
'Provide llm option or use explicit PersonaConfigData.',
|
|
77
|
+
'Provide llm option or use explicit PersonaConfigData.', errors_1.MolrooErrorCode.LLM_REQUIRED, 400);
|
|
75
78
|
}
|
|
76
79
|
const { generatePersona } = await Promise.resolve().then(() => __importStar(require('./generate/persona')));
|
|
77
80
|
const llm = await (0, resolve_1.resolveLLM)(config.llm);
|
|
@@ -106,6 +109,23 @@ class MolrooPersona {
|
|
|
106
109
|
static async generate(config, description) {
|
|
107
110
|
return MolrooPersona.create(config, description);
|
|
108
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Connect to an existing persona by ID.
|
|
114
|
+
*
|
|
115
|
+
* @param config - Connection configuration (apiKey required).
|
|
116
|
+
* @param personaId - The persona instance ID to connect to.
|
|
117
|
+
* @returns A connected MolrooPersona instance.
|
|
118
|
+
*
|
|
119
|
+
* @deprecated Use {@link Molroo.connectPersona} instead.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* const sera = await MolrooPersona.connect(
|
|
124
|
+
* { apiKey: 'mk_...', llm: openaiAdapter },
|
|
125
|
+
* 'persona_abc123'
|
|
126
|
+
* );
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
109
129
|
static async connect(config, personaId) {
|
|
110
130
|
const [llm, engineLlm] = await Promise.all([
|
|
111
131
|
config.llm ? (0, resolve_1.resolveLLM)(config.llm) : undefined,
|
|
@@ -118,6 +138,12 @@ class MolrooPersona {
|
|
|
118
138
|
});
|
|
119
139
|
return persona;
|
|
120
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* List all personas for the authenticated tenant.
|
|
143
|
+
*
|
|
144
|
+
* @param config - API connection config.
|
|
145
|
+
* @returns Paginated list of persona summaries.
|
|
146
|
+
*/
|
|
121
147
|
static async listPersonas(config) {
|
|
122
148
|
const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
123
149
|
const client = (0, api_client_1.createApiClient)(baseUrl, config.apiKey);
|
|
@@ -125,6 +151,14 @@ class MolrooPersona {
|
|
|
125
151
|
return (0, api_client_1.unwrap)(data);
|
|
126
152
|
}
|
|
127
153
|
// ── Runtime ──
|
|
154
|
+
/**
|
|
155
|
+
* Send a stimulus to the persona's emotion engine and get the updated emotional response.
|
|
156
|
+
* This is the low-level API — for common cases, prefer {@link hear}, {@link experience}, or {@link chat}.
|
|
157
|
+
*
|
|
158
|
+
* @param message - The stimulus text (user message, event description, etc.).
|
|
159
|
+
* @param options - Appraisal, source, relationship context, and other options.
|
|
160
|
+
* @returns Emotion engine response with VAD, discrete emotion, and side effects.
|
|
161
|
+
*/
|
|
128
162
|
async perceive(message, options) {
|
|
129
163
|
const eventType = options?.type ?? 'chat_message';
|
|
130
164
|
const sourceName = typeof options?.from === 'string'
|
|
@@ -161,9 +195,92 @@ class MolrooPersona {
|
|
|
161
195
|
}
|
|
162
196
|
return response;
|
|
163
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Send a custom event with a required appraisal vector.
|
|
200
|
+
*
|
|
201
|
+
* @param type - Custom event type (e.g., 'gift_received', 'argument').
|
|
202
|
+
* @param description - Human-readable event description.
|
|
203
|
+
* @param options - Must include a pre-computed appraisal vector.
|
|
204
|
+
* @returns Emotion engine response.
|
|
205
|
+
*/
|
|
164
206
|
async event(type, description, options) {
|
|
165
207
|
return this.perceive(description, { ...options, type });
|
|
166
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Perceive a chat message from another entity. Simplest wrapper over {@link perceive}.
|
|
211
|
+
*
|
|
212
|
+
* @param message - The incoming message text.
|
|
213
|
+
* @param from - Who sent the message (name string or structured context).
|
|
214
|
+
* @returns Emotion engine response.
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* ```typescript
|
|
218
|
+
* const response = await persona.hear('How are you?', 'Alice');
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
async hear(message, from) {
|
|
222
|
+
return this.perceive(message, { from, type: 'chat_message' });
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Perceive an environmental or narrative event with a pre-computed appraisal.
|
|
226
|
+
*
|
|
227
|
+
* @param description - What happened (e.g., 'The sun set over the ocean').
|
|
228
|
+
* @param appraisal - 9-dimensional Scherer CPM appraisal vector.
|
|
229
|
+
* @returns Emotion engine response.
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* const response = await persona.experience('Received a surprise gift', {
|
|
234
|
+
* goal_relevance: 0.8, goal_congruence: 0.9, expectedness: 0.2,
|
|
235
|
+
* controllability: 0.5, agency: 0.3, norm_compatibility: 0.8,
|
|
236
|
+
* internal_standards: 0.7, adjustment_potential: 0.6, urgency: 0.3,
|
|
237
|
+
* });
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
async experience(description, appraisal) {
|
|
241
|
+
return this.perceive(description, { appraisal, type: 'environment' });
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Perceive a social interaction with relationship context for trust/intimacy computation.
|
|
245
|
+
*
|
|
246
|
+
* @param message - The interaction message.
|
|
247
|
+
* @param from - Who the interaction is from.
|
|
248
|
+
* @param relationship - Current relationship state (closeness, trust, familiarity).
|
|
249
|
+
* @returns Emotion engine response including socialUpdates.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* const response = await persona.socialize('I missed you!', 'Bob', {
|
|
254
|
+
* closeness: 0.7, trust: 0.8, familiarity: 0.9, type: 'friend',
|
|
255
|
+
* });
|
|
256
|
+
* console.log(response.socialUpdates); // trust/intimacy deltas
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
async socialize(message, from, relationship) {
|
|
260
|
+
return this.perceive(message, { from, relationshipContext: relationship, type: 'chat_message' });
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Send a message and get an LLM-generated response with emotion processing.
|
|
264
|
+
* This is the primary method for conversational interactions.
|
|
265
|
+
*
|
|
266
|
+
* The system prompt is assembled server-side via {@link getPromptContext} and includes:
|
|
267
|
+
* identity, behavioral instructions, current psychological state, expression style,
|
|
268
|
+
* and consumerSuffix. Do NOT duplicate these in consumerSuffix.
|
|
269
|
+
*
|
|
270
|
+
* @param message - User message to respond to.
|
|
271
|
+
* @param options - Conversation history, source entity, and app-specific suffix.
|
|
272
|
+
* @returns LLM response text, emotion data, and updated conversation history.
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* const result = await persona.chat('Tell me about yourself', {
|
|
277
|
+
* from: 'Alice',
|
|
278
|
+
* history: previousMessages,
|
|
279
|
+
* });
|
|
280
|
+
* console.log(result.text); // LLM response
|
|
281
|
+
* console.log(result.response.emotion); // updated VAD
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
167
284
|
async chat(message, options) {
|
|
168
285
|
const llm = this.requireLLM();
|
|
169
286
|
const deps = {
|
|
@@ -179,6 +296,13 @@ class MolrooPersona {
|
|
|
179
296
|
};
|
|
180
297
|
return (0, chat_orchestrator_1.chat)(deps, message, options);
|
|
181
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* Advance persona simulation time. Triggers idle decay, body budget recovery,
|
|
301
|
+
* need regression, and timeline advancement.
|
|
302
|
+
*
|
|
303
|
+
* @param seconds - Number of seconds to advance (must be >= 1).
|
|
304
|
+
* @returns Any pending internal events generated by threshold checks.
|
|
305
|
+
*/
|
|
182
306
|
async tick(seconds) {
|
|
183
307
|
const { data } = await this.client.POST('/personas/{id}/tick', {
|
|
184
308
|
params: { path: { id: this._personaId } },
|
|
@@ -186,6 +310,12 @@ class MolrooPersona {
|
|
|
186
310
|
});
|
|
187
311
|
return (0, api_client_1.unwrap)(data);
|
|
188
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Override the persona's current emotion to a specific VAD point.
|
|
315
|
+
* Useful for testing or narrative-driven emotion control.
|
|
316
|
+
*
|
|
317
|
+
* @param vad - Partial VAD values to set (V: valence, A: arousal, D: dominance).
|
|
318
|
+
*/
|
|
189
319
|
async setEmotion(vad) {
|
|
190
320
|
await this.client.POST('/personas/{id}/emotion', {
|
|
191
321
|
params: { path: { id: this._personaId } },
|
|
@@ -217,6 +347,13 @@ class MolrooPersona {
|
|
|
217
347
|
* Once set, expression constraints (promptText) are automatically
|
|
218
348
|
* included in getPromptContext() and modulated by current emotion.
|
|
219
349
|
*/
|
|
350
|
+
/**
|
|
351
|
+
* Set a StyleProfile for expression-aware prompt generation.
|
|
352
|
+
* Once set, expression constraints are automatically included in
|
|
353
|
+
* {@link getPromptContext} and modulated by current emotion.
|
|
354
|
+
*
|
|
355
|
+
* @param profile - StyleProfile object (lexical, structural, register features, etc.).
|
|
356
|
+
*/
|
|
220
357
|
async setStyleProfile(profile) {
|
|
221
358
|
await this.client.POST('/personas/{id}/style-profile', {
|
|
222
359
|
params: { path: { id: this._personaId } },
|
|
@@ -240,18 +377,34 @@ class MolrooPersona {
|
|
|
240
377
|
return result.styleProfile;
|
|
241
378
|
}
|
|
242
379
|
// ── State ──
|
|
380
|
+
/**
|
|
381
|
+
* Get the persona's current emotional and psychological state.
|
|
382
|
+
*
|
|
383
|
+
* @returns Current emotion (VAD + discrete), mood, somatic sensations, and narrative.
|
|
384
|
+
*/
|
|
243
385
|
async getState() {
|
|
244
386
|
const { data } = await this.client.GET('/personas/{id}/state', {
|
|
245
387
|
params: { path: { id: this._personaId } },
|
|
246
388
|
});
|
|
247
389
|
return (0, api_client_1.unwrap)(data);
|
|
248
390
|
}
|
|
391
|
+
/**
|
|
392
|
+
* Get a full snapshot of the persona (config + engine state).
|
|
393
|
+
* Useful for backup, migration, or debugging.
|
|
394
|
+
*
|
|
395
|
+
* @returns Full persona snapshot including config and internal state.
|
|
396
|
+
*/
|
|
249
397
|
async getSnapshot() {
|
|
250
398
|
const { data } = await this.client.GET('/personas/{id}/snapshot', {
|
|
251
399
|
params: { path: { id: this._personaId } },
|
|
252
400
|
});
|
|
253
401
|
return (0, api_client_1.unwrap)(data);
|
|
254
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Restore a persona from a snapshot. Overwrites current state entirely.
|
|
405
|
+
*
|
|
406
|
+
* @param snapshot - Full persona snapshot to restore.
|
|
407
|
+
*/
|
|
255
408
|
async putSnapshot(snapshot) {
|
|
256
409
|
await this.client.PUT('/personas/{id}/snapshot', {
|
|
257
410
|
params: { path: { id: this._personaId } },
|
|
@@ -259,6 +412,11 @@ class MolrooPersona {
|
|
|
259
412
|
});
|
|
260
413
|
}
|
|
261
414
|
// ── Config ──
|
|
415
|
+
/**
|
|
416
|
+
* Partially update persona configuration (identity, personality, goals, etc.).
|
|
417
|
+
*
|
|
418
|
+
* @param updates - Fields to update. Only provided fields are changed.
|
|
419
|
+
*/
|
|
262
420
|
async patch(updates) {
|
|
263
421
|
await this.client.PATCH('/personas/{id}', {
|
|
264
422
|
params: { path: { id: this._personaId } },
|
|
@@ -266,6 +424,9 @@ class MolrooPersona {
|
|
|
266
424
|
});
|
|
267
425
|
}
|
|
268
426
|
// ── Lifecycle ──
|
|
427
|
+
/**
|
|
428
|
+
* Soft-delete this persona. Can be restored within retention period via {@link restore}.
|
|
429
|
+
*/
|
|
269
430
|
async destroy() {
|
|
270
431
|
if (this._personaId) {
|
|
271
432
|
await this.client.DELETE('/personas/{id}', {
|
|
@@ -273,6 +434,7 @@ class MolrooPersona {
|
|
|
273
434
|
});
|
|
274
435
|
}
|
|
275
436
|
}
|
|
437
|
+
/** Restore a soft-deleted persona. */
|
|
276
438
|
async restore() {
|
|
277
439
|
if (this._personaId) {
|
|
278
440
|
await this.client.POST('/personas/{id}/restore', {
|
|
@@ -281,6 +443,18 @@ class MolrooPersona {
|
|
|
281
443
|
}
|
|
282
444
|
}
|
|
283
445
|
// ── Prompt / Memory ──
|
|
446
|
+
/**
|
|
447
|
+
* Fetch the server-assembled system prompt for this persona.
|
|
448
|
+
* Includes identity, behavioral instructions, psychological state,
|
|
449
|
+
* expression style (if StyleProfile set), and consumerSuffix.
|
|
450
|
+
*
|
|
451
|
+
* Called internally by {@link chat}. Use directly when building custom LLM pipelines.
|
|
452
|
+
*
|
|
453
|
+
* @param consumerSuffix - App-specific context appended to the system prompt.
|
|
454
|
+
* Do NOT include identity, personality, or emotion — these are already in the prompt.
|
|
455
|
+
* @param sourceEntity - Name of the conversation partner (for interlocutor-aware prompts).
|
|
456
|
+
* @returns System prompt string and structured persona prompt data.
|
|
457
|
+
*/
|
|
284
458
|
async getPromptContext(consumerSuffix, sourceEntity) {
|
|
285
459
|
const { data } = await this.client.POST('/personas/{id}/prompt-context', {
|
|
286
460
|
params: { path: { id: this._personaId } },
|
|
@@ -291,6 +465,25 @@ class MolrooPersona {
|
|
|
291
465
|
});
|
|
292
466
|
return (0, api_client_1.unwrap)(data);
|
|
293
467
|
}
|
|
468
|
+
// ── Conversation ──
|
|
469
|
+
/**
|
|
470
|
+
* Create a conversation session that auto-manages message history.
|
|
471
|
+
* Each `.send()` call automatically appends to the history.
|
|
472
|
+
*
|
|
473
|
+
* @param options - Max messages or custom chat options.
|
|
474
|
+
* @returns A new Conversation instance bound to this persona.
|
|
475
|
+
*
|
|
476
|
+
* @example
|
|
477
|
+
* ```typescript
|
|
478
|
+
* const conv = persona.conversation({ maxMessages: 20 });
|
|
479
|
+
* const r1 = await conv.send('Hello!');
|
|
480
|
+
* const r2 = await conv.send('Tell me more'); // history auto-managed
|
|
481
|
+
* console.log(conv.messages); // full conversation
|
|
482
|
+
* ```
|
|
483
|
+
*/
|
|
484
|
+
conversation(options) {
|
|
485
|
+
return new conversation_1.Conversation(this, options);
|
|
486
|
+
}
|
|
294
487
|
// ── Private ──
|
|
295
488
|
get memoryPipelineDeps() {
|
|
296
489
|
return {
|
|
@@ -303,7 +496,7 @@ class MolrooPersona {
|
|
|
303
496
|
}
|
|
304
497
|
requireLLM() {
|
|
305
498
|
if (!this.llm) {
|
|
306
|
-
throw new errors_1.MolrooApiError('LLM adapter is required for chat(). Provide llm option, or use perceive() directly.',
|
|
499
|
+
throw new errors_1.MolrooApiError('LLM adapter is required for chat(). Provide llm option, or use perceive() directly.', errors_1.MolrooErrorCode.LLM_NOT_CONFIGURED, 400);
|
|
307
500
|
}
|
|
308
501
|
return this.llm;
|
|
309
502
|
}
|
|
@@ -3,14 +3,40 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `instanceof MolrooApiError` catches ALL API errors (persona + world).
|
|
5
5
|
* `instanceof WorldApiError` catches world-only errors.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { MolrooApiError, MolrooErrorCode } from '@molroo-io/sdk';
|
|
10
|
+
*
|
|
11
|
+
* try {
|
|
12
|
+
* await persona.chat('hello');
|
|
13
|
+
* } catch (e) {
|
|
14
|
+
* if (e instanceof MolrooApiError && e.code === MolrooErrorCode.LLM_NOT_CONFIGURED) {
|
|
15
|
+
* console.log('Please provide an LLM adapter');
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
6
19
|
*/
|
|
20
|
+
/** Machine-readable error codes for programmatic error handling. */
|
|
21
|
+
export declare enum MolrooErrorCode {
|
|
22
|
+
/** LLM adapter is required for this operation (e.g., description-based create). */
|
|
23
|
+
LLM_REQUIRED = "LLM_REQUIRED",
|
|
24
|
+
/** LLM adapter was not configured at initialization (e.g., calling chat() without llm). */
|
|
25
|
+
LLM_NOT_CONFIGURED = "LLM_NOT_CONFIGURED",
|
|
26
|
+
/** Requested entity (persona, world, etc.) was not found. */
|
|
27
|
+
ENTITY_NOT_FOUND = "ENTITY_NOT_FOUND",
|
|
28
|
+
/** Authentication failed — invalid or missing API key. */
|
|
29
|
+
UNAUTHORIZED = "UNAUTHORIZED",
|
|
30
|
+
/** API returned an unexpected error not covered by other codes. */
|
|
31
|
+
API_ERROR = "API_ERROR"
|
|
32
|
+
}
|
|
7
33
|
export declare class MolrooApiError extends Error {
|
|
8
|
-
/** Machine-readable error code
|
|
34
|
+
/** Machine-readable error code. Use {@link MolrooErrorCode} for type-safe matching. */
|
|
9
35
|
readonly code: string;
|
|
10
36
|
/** HTTP status code. */
|
|
11
37
|
readonly status: number;
|
|
12
38
|
constructor(message: string,
|
|
13
|
-
/** Machine-readable error code
|
|
39
|
+
/** Machine-readable error code. Use {@link MolrooErrorCode} for type-safe matching. */
|
|
14
40
|
code: string,
|
|
15
41
|
/** HTTP status code. */
|
|
16
42
|
status: number);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,oEAAoE;AACpE,oBAAY,eAAe;IACzB,mFAAmF;IACnF,YAAY,iBAAiB;IAC7B,2FAA2F;IAC3F,kBAAkB,uBAAuB;IACzC,6DAA6D;IAC7D,gBAAgB,qBAAqB;IACrC,0DAA0D;IAC1D,YAAY,iBAAiB;IAC7B,mEAAmE;IACnE,SAAS,cAAc;CACxB;AAED,qBAAa,cAAe,SAAQ,KAAK;IAGrC,uFAAuF;aACvE,IAAI,EAAE,MAAM;IAC5B,wBAAwB;aACR,MAAM,EAAE,MAAM;gBAJ9B,OAAO,EAAE,MAAM;IACf,uFAAuF;IACvE,IAAI,EAAE,MAAM;IAC5B,wBAAwB;IACR,MAAM,EAAE,MAAM;CAKjC;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI1D"}
|
|
@@ -4,12 +4,39 @@
|
|
|
4
4
|
*
|
|
5
5
|
* `instanceof MolrooApiError` catches ALL API errors (persona + world).
|
|
6
6
|
* `instanceof WorldApiError` catches world-only errors.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { MolrooApiError, MolrooErrorCode } from '@molroo-io/sdk';
|
|
11
|
+
*
|
|
12
|
+
* try {
|
|
13
|
+
* await persona.chat('hello');
|
|
14
|
+
* } catch (e) {
|
|
15
|
+
* if (e instanceof MolrooApiError && e.code === MolrooErrorCode.LLM_NOT_CONFIGURED) {
|
|
16
|
+
* console.log('Please provide an LLM adapter');
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
7
20
|
*/
|
|
8
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.WorldApiError = exports.MolrooApiError = void 0;
|
|
22
|
+
exports.WorldApiError = exports.MolrooApiError = exports.MolrooErrorCode = void 0;
|
|
23
|
+
/** Machine-readable error codes for programmatic error handling. */
|
|
24
|
+
var MolrooErrorCode;
|
|
25
|
+
(function (MolrooErrorCode) {
|
|
26
|
+
/** LLM adapter is required for this operation (e.g., description-based create). */
|
|
27
|
+
MolrooErrorCode["LLM_REQUIRED"] = "LLM_REQUIRED";
|
|
28
|
+
/** LLM adapter was not configured at initialization (e.g., calling chat() without llm). */
|
|
29
|
+
MolrooErrorCode["LLM_NOT_CONFIGURED"] = "LLM_NOT_CONFIGURED";
|
|
30
|
+
/** Requested entity (persona, world, etc.) was not found. */
|
|
31
|
+
MolrooErrorCode["ENTITY_NOT_FOUND"] = "ENTITY_NOT_FOUND";
|
|
32
|
+
/** Authentication failed — invalid or missing API key. */
|
|
33
|
+
MolrooErrorCode["UNAUTHORIZED"] = "UNAUTHORIZED";
|
|
34
|
+
/** API returned an unexpected error not covered by other codes. */
|
|
35
|
+
MolrooErrorCode["API_ERROR"] = "API_ERROR";
|
|
36
|
+
})(MolrooErrorCode || (exports.MolrooErrorCode = MolrooErrorCode = {}));
|
|
10
37
|
class MolrooApiError extends Error {
|
|
11
38
|
constructor(message,
|
|
12
|
-
/** Machine-readable error code
|
|
39
|
+
/** Machine-readable error code. Use {@link MolrooErrorCode} for type-safe matching. */
|
|
13
40
|
code,
|
|
14
41
|
/** HTTP status code. */
|
|
15
42
|
status) {
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -21,6 +21,19 @@ export interface InterlocutorContext {
|
|
|
21
21
|
/** Arbitrary key-value extensions rendered as subsections. */
|
|
22
22
|
extensions?: Record<string, string>;
|
|
23
23
|
}
|
|
24
|
+
/** Relationship state between two entities, used for social update computation. */
|
|
25
|
+
export interface RelationshipContext {
|
|
26
|
+
/** Overall closeness/intimacy (0–1). */
|
|
27
|
+
closeness?: number;
|
|
28
|
+
/** Mutual trust level (0–1). */
|
|
29
|
+
trust?: number;
|
|
30
|
+
/** How well they know each other (0–1). */
|
|
31
|
+
familiarity?: number;
|
|
32
|
+
/** Relationship type label. */
|
|
33
|
+
type?: 'friend' | 'romantic' | 'authority' | 'stranger' | string;
|
|
34
|
+
/** Additional relationship-specific fields. */
|
|
35
|
+
[key: string]: unknown;
|
|
36
|
+
}
|
|
24
37
|
type PerceiveBody = RequestBody<'/personas/{id}/perceive', 'post'>;
|
|
25
38
|
export type PerceiveEvent = PerceiveBody['event'];
|
|
26
39
|
export type PerceiveContext = NonNullable<PerceiveBody['context']>;
|
|
@@ -38,7 +51,7 @@ export interface PerceiveOptions {
|
|
|
38
51
|
type?: string;
|
|
39
52
|
/** Low-level stimulus overrides (bodyBudgetDelta, vadOverride, etc.). */
|
|
40
53
|
stimulus?: PerceiveEvent['stimulus'];
|
|
41
|
-
/** Extra payload fields merged into event.payload alongside message. */
|
|
54
|
+
/** Extra payload fields merged into event.payload alongside message (app-specific data). */
|
|
42
55
|
payload?: Record<string, unknown>;
|
|
43
56
|
/** Prior episodic memories for context-aware appraisal. */
|
|
44
57
|
priorEpisodes?: Episode[];
|
|
@@ -46,7 +59,7 @@ export interface PerceiveOptions {
|
|
|
46
59
|
* When provided, the engine computes trust/intimacy/proximity deltas
|
|
47
60
|
* and emits socialUpdates in the response.
|
|
48
61
|
* Typically sourced from World-level storage (D1). */
|
|
49
|
-
relationshipContext?:
|
|
62
|
+
relationshipContext?: RelationshipContext;
|
|
50
63
|
/** Skip saving memoryEpisode to the episode store. Default: false. */
|
|
51
64
|
skipMemory?: boolean;
|
|
52
65
|
}
|
|
@@ -58,7 +71,34 @@ export interface EventAppraisal {
|
|
|
58
71
|
relationship: 'friend' | 'romantic' | 'authority' | 'stranger';
|
|
59
72
|
intensity: number;
|
|
60
73
|
}
|
|
61
|
-
|
|
74
|
+
/** Full dynamic state returned by the persona state endpoint. */
|
|
75
|
+
export interface PersonaDynamicState {
|
|
76
|
+
emotion: {
|
|
77
|
+
vad: VAD;
|
|
78
|
+
discrete?: {
|
|
79
|
+
primary: string;
|
|
80
|
+
secondary?: string;
|
|
81
|
+
intensity: number;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
mood?: {
|
|
85
|
+
vad: VAD;
|
|
86
|
+
};
|
|
87
|
+
somatic?: string[];
|
|
88
|
+
narrative?: {
|
|
89
|
+
tone: number;
|
|
90
|
+
agency: number;
|
|
91
|
+
coherence: number;
|
|
92
|
+
};
|
|
93
|
+
goals?: Goal[];
|
|
94
|
+
bodyBudget?: number;
|
|
95
|
+
soulStage?: {
|
|
96
|
+
id: number;
|
|
97
|
+
name: string;
|
|
98
|
+
};
|
|
99
|
+
/** Additional engine-specific fields. */
|
|
100
|
+
[key: string]: unknown;
|
|
101
|
+
}
|
|
62
102
|
export type BlendRatio = Record<string, number>;
|
|
63
103
|
export interface AgentResponse {
|
|
64
104
|
text?: string;
|
|
@@ -143,7 +183,14 @@ export interface SocialUpdate {
|
|
|
143
183
|
dimension: string;
|
|
144
184
|
delta: number;
|
|
145
185
|
}
|
|
146
|
-
|
|
186
|
+
/** Full persona snapshot including engine state, config, and metadata. */
|
|
187
|
+
export interface PersonaSnapshot {
|
|
188
|
+
config?: PersonaConfigData;
|
|
189
|
+
state?: State;
|
|
190
|
+
engineVersion?: string;
|
|
191
|
+
/** Additional engine-specific fields. */
|
|
192
|
+
[key: string]: unknown;
|
|
193
|
+
}
|
|
147
194
|
/**
|
|
148
195
|
* HEXACO-PI-R personality domain traits (Ashton & Lee, 2007).
|
|
149
196
|
* Each value ranges from 0 (low) to 1 (high).
|
|
@@ -272,5 +319,5 @@ export interface State {
|
|
|
272
319
|
regulation: RegulationState;
|
|
273
320
|
prevMaskIntegrity?: number;
|
|
274
321
|
}
|
|
275
|
-
export { MolrooApiError } from './errors';
|
|
322
|
+
export { MolrooApiError, MolrooErrorCode } from './errors';
|
|
276
323
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAIjF,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,MAAM,KAAK,EACrB,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,OAAO,IAChC,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC,GAC1F,CAAC,GACD,KAAK,CAAC;AAeV;;2EAE2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAID,KAAK,YAAY,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;+FAC2F;IAC3F,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
// Pipeline: Engine Zod schemas → @hono/zod-openapi → OpenAPI JSON → openapi-typescript → api.d.ts
|
|
10
10
|
// ============================================================================
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.MolrooApiError = void 0;
|
|
12
|
+
exports.MolrooErrorCode = exports.MolrooApiError = void 0;
|
|
13
13
|
// ── Error (re-exported from errors.ts) ──
|
|
14
14
|
var errors_1 = require("./errors");
|
|
15
15
|
Object.defineProperty(exports, "MolrooApiError", { enumerable: true, get: function () { return errors_1.MolrooApiError; } });
|
|
16
|
+
Object.defineProperty(exports, "MolrooErrorCode", { enumerable: true, get: function () { return errors_1.MolrooErrorCode; } });
|
|
@@ -99,8 +99,11 @@ export declare class Molroo {
|
|
|
99
99
|
*/
|
|
100
100
|
getWorld(id: string): Promise<World>;
|
|
101
101
|
/**
|
|
102
|
-
* List worlds
|
|
103
|
-
* efficiency when only metadata is needed.
|
|
102
|
+
* List worlds for the authenticated tenant.
|
|
103
|
+
* Returns raw data objects (not World instances) for efficiency when only metadata is needed.
|
|
104
|
+
*
|
|
105
|
+
* @param options - Pagination options (limit, cursor).
|
|
106
|
+
* @returns Paginated list of world data and next cursor.
|
|
104
107
|
*/
|
|
105
108
|
listWorlds(options?: PaginationOptions): Promise<{
|
|
106
109
|
worlds: WorldData[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../../src/world/world.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAiCjB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,wKAAwK;IACxK,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAQD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,MAAM;IACjB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,aAAa;IAalC;;;;;;;;;;;OAWG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GAAG;QAAE,GAAG,EAAE,QAAQ,CAAA;KAAE,GAC1C,OAAO,CAAC,aAAa,CAAC;IAEzB;;;;;;;;;;OAUG;IACG,aAAa,CACjB,aAAa,EAAE,iBAAiB,EAChC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAuBzB;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAOzB;;;OAGG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GAAG;QAAE,GAAG,EAAE,QAAQ,CAAA;KAAE,GAC1C,OAAO,CAAC,aAAa,CAAC;IAIzB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWlF;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAwB9D;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAmB1C
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../../src/world/world.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAiCjB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,wKAAwK;IACxK,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAQD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,MAAM;IACjB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,aAAa;IAalC;;;;;;;;;;;OAWG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GAAG;QAAE,GAAG,EAAE,QAAQ,CAAA;KAAE,GAC1C,OAAO,CAAC,aAAa,CAAC;IAEzB;;;;;;;;;;OAUG;IACG,aAAa,CACjB,aAAa,EAAE,iBAAiB,EAChC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAuBzB;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAOzB;;;OAGG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GAAG;QAAE,GAAG,EAAE,QAAQ,CAAA;KAAE,GAC1C,OAAO,CAAC,aAAa,CAAC;IAIzB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWlF;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAwB9D;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAmB1C;;;;;;OAMG;IACG,UAAU,CACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CA6B/D"}
|
package/dist/cjs/world/world.js
CHANGED
|
@@ -114,8 +114,11 @@ class Molroo {
|
|
|
114
114
|
return new world_domain_1.World(this._client, toWorldData(raw));
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
|
-
* List worlds
|
|
118
|
-
* efficiency when only metadata is needed.
|
|
117
|
+
* List worlds for the authenticated tenant.
|
|
118
|
+
* Returns raw data objects (not World instances) for efficiency when only metadata is needed.
|
|
119
|
+
*
|
|
120
|
+
* @param options - Pagination options (limit, cursor).
|
|
121
|
+
* @returns Paginated list of world data and next cursor.
|
|
119
122
|
*/
|
|
120
123
|
async listWorlds(options) {
|
|
121
124
|
const { data } = await this._client.GET('/worlds', {
|
package/dist/esm/errors.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { MolrooApiError } from './shared/errors';
|
|
1
|
+
export { MolrooApiError, MolrooErrorCode } from './shared/errors';
|
|
2
2
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/esm/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/esm/errors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { MolrooApiError } from './shared/errors';
|
|
1
|
+
export { MolrooApiError, MolrooErrorCode } from './shared/errors';
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -30,14 +30,16 @@
|
|
|
30
30
|
*/
|
|
31
31
|
export { Molroo } from './world/world';
|
|
32
32
|
export type { MolrooOptions, PersonaOptions } from './world/world';
|
|
33
|
-
export { MolrooApiError, WorldApiError } from './shared/errors';
|
|
33
|
+
export { MolrooApiError, WorldApiError, MolrooErrorCode } from './shared/errors';
|
|
34
34
|
export { NEUTRAL_APPRAISAL, toWireAppraisal, fromWireAppraisal } from './shared/appraisal';
|
|
35
35
|
export type { Appraisal } from './shared/appraisal';
|
|
36
36
|
export type { LLMAdapter, Message, GenerateTextOptions, GenerateObjectOptions, } from './llm/adapter';
|
|
37
37
|
export type { LLMInput } from './llm/resolve';
|
|
38
38
|
export type { MemoryAdapter, RecallQuery, SemanticRecallOptions, RecallLimits, Reflection, } from './memory/types';
|
|
39
39
|
export type { PersonaSummary, PersonaState, PersonaChatResult, } from './persona';
|
|
40
|
-
export
|
|
40
|
+
export { Conversation } from './persona/conversation';
|
|
41
|
+
export type { ConversationOptions } from './persona/conversation';
|
|
42
|
+
export type { AppraisalMode, EventAppraisal, InterlocutorContext, RelationshipContext, PerceiveOptions, PerceiveEvent, PerceiveContext, } from './types';
|
|
41
43
|
export type { AgentResponse, VAD, Velocity, AppraisalVector, State, SoulStage, CatastropheState, MetacogState, AffectDynamicsState, InterpersonalState, RegulationState, RegulationStrategy, RegulationPhase, ActiveRegulation, RegulationRecord, EffectivenessRecord, NeedState, Episode, SocialUpdate, ReflectionPrompt, } from './types';
|
|
42
44
|
export type { PersonaSnapshot, PersonaConfigData, PersonalityTraits, Identity, Goal, MotivationContext, } from './types';
|
|
43
45
|
export type { ApiResponse, ApiErrorResponse, PersonaDynamicState, } from './types';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,YAAY,EACV,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,YAAY,EACV,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,aAAa,EACb,GAAG,EACH,QAAQ,EACR,eAAe,EACf,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,OAAO,EACP,YAAY,EACZ,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,IAAI,EACJ,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,SAAS,EACT,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|