@molroo-io/sdk 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -194
- package/dist/cjs/api-client.d.ts +2 -12
- package/dist/cjs/api-client.d.ts.map +1 -1
- package/dist/cjs/api-client.js +4 -42
- package/dist/cjs/errors.d.ts +1 -16
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +2 -18
- package/dist/cjs/events/types.d.ts +14 -21
- package/dist/cjs/events/types.d.ts.map +1 -1
- package/dist/cjs/events/types.js +0 -11
- package/dist/cjs/index.d.ts +26 -48
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +29 -52
- package/dist/cjs/llm/resolve.d.ts +4 -22
- package/dist/cjs/llm/resolve.d.ts.map +1 -1
- package/dist/cjs/llm/resolve.js +19 -7
- package/dist/cjs/llm/vercel-ai/adapter.d.ts +4 -10
- package/dist/cjs/llm/vercel-ai/adapter.d.ts.map +1 -1
- package/dist/cjs/llm/vercel-ai/adapter.js +6 -152
- package/dist/cjs/llm/vercel-ai/config.d.ts +8 -5
- package/dist/cjs/llm/vercel-ai/config.d.ts.map +1 -1
- package/dist/cjs/memory/in-memory.d.ts +14 -37
- package/dist/cjs/memory/in-memory.d.ts.map +1 -1
- package/dist/cjs/memory/in-memory.js +22 -85
- package/dist/cjs/memory/recall.d.ts +10 -21
- package/dist/cjs/memory/recall.d.ts.map +1 -1
- package/dist/cjs/memory/recall.js +12 -91
- package/dist/cjs/memory/types.d.ts +46 -186
- package/dist/cjs/memory/types.d.ts.map +1 -1
- package/dist/cjs/memory/types.js +0 -10
- package/dist/cjs/persona/chat-orchestrator.d.ts +46 -0
- package/dist/cjs/persona/chat-orchestrator.d.ts.map +1 -0
- package/dist/cjs/persona/chat-orchestrator.js +240 -0
- package/dist/cjs/persona/event-emitter.d.ts +7 -0
- package/dist/cjs/persona/event-emitter.d.ts.map +1 -0
- package/dist/cjs/persona/event-emitter.js +53 -0
- package/dist/cjs/persona/memory-pipeline.d.ts +26 -0
- package/dist/cjs/persona/memory-pipeline.d.ts.map +1 -0
- package/dist/cjs/persona/memory-pipeline.js +69 -0
- package/dist/cjs/persona.d.ts +56 -187
- package/dist/cjs/persona.d.ts.map +1 -1
- package/dist/cjs/persona.js +62 -638
- package/dist/cjs/shared/appraisal.d.ts +26 -0
- package/dist/cjs/shared/appraisal.d.ts.map +1 -0
- package/dist/cjs/shared/appraisal.js +45 -0
- package/dist/cjs/shared/client-factory.d.ts +23 -0
- package/dist/cjs/shared/client-factory.d.ts.map +1 -0
- package/dist/cjs/shared/client-factory.js +48 -0
- package/dist/cjs/shared/errors.d.ts +21 -0
- package/dist/cjs/shared/errors.d.ts.map +1 -0
- package/dist/cjs/shared/errors.js +29 -0
- package/dist/cjs/world/client.d.ts +2 -9
- package/dist/cjs/world/client.d.ts.map +1 -1
- package/dist/cjs/world/client.js +7 -34
- package/dist/cjs/world/errors.d.ts +1 -8
- package/dist/cjs/world/errors.d.ts.map +1 -1
- package/dist/cjs/world/errors.js +2 -12
- package/dist/cjs/world/index.d.ts +2 -2
- package/dist/cjs/world/index.d.ts.map +1 -1
- package/dist/cjs/world/types.d.ts +32 -5
- package/dist/cjs/world/types.d.ts.map +1 -1
- package/dist/cjs/world/world-domain.d.ts.map +1 -1
- package/dist/cjs/world/world-domain.js +4 -32
- package/dist/cjs/world/world-persona.d.ts +17 -12
- package/dist/cjs/world/world-persona.d.ts.map +1 -1
- package/dist/cjs/world/world-persona.js +6 -18
- package/dist/cjs/world/world.d.ts +28 -5
- package/dist/cjs/world/world.d.ts.map +1 -1
- package/dist/cjs/world/world.js +13 -11
- package/dist/esm/api-client.d.ts +2 -12
- package/dist/esm/api-client.d.ts.map +1 -1
- package/dist/esm/api-client.js +3 -38
- package/dist/esm/errors.d.ts +1 -16
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +1 -17
- package/dist/esm/events/types.d.ts +14 -21
- package/dist/esm/events/types.d.ts.map +1 -1
- package/dist/esm/events/types.js +0 -11
- package/dist/esm/index.d.ts +26 -48
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +25 -38
- package/dist/esm/llm/resolve.d.ts +4 -22
- package/dist/esm/llm/resolve.d.ts.map +1 -1
- package/dist/esm/llm/resolve.js +20 -8
- package/dist/esm/llm/vercel-ai/adapter.d.ts +4 -10
- package/dist/esm/llm/vercel-ai/adapter.d.ts.map +1 -1
- package/dist/esm/llm/vercel-ai/adapter.js +6 -119
- package/dist/esm/llm/vercel-ai/config.d.ts +8 -5
- package/dist/esm/llm/vercel-ai/config.d.ts.map +1 -1
- package/dist/esm/memory/in-memory.d.ts +14 -37
- package/dist/esm/memory/in-memory.d.ts.map +1 -1
- package/dist/esm/memory/in-memory.js +20 -83
- package/dist/esm/memory/recall.d.ts +10 -21
- package/dist/esm/memory/recall.d.ts.map +1 -1
- package/dist/esm/memory/recall.js +12 -91
- package/dist/esm/memory/types.d.ts +46 -186
- package/dist/esm/memory/types.d.ts.map +1 -1
- package/dist/esm/memory/types.js +1 -9
- package/dist/esm/persona/chat-orchestrator.d.ts +46 -0
- package/dist/esm/persona/chat-orchestrator.d.ts.map +1 -0
- package/dist/esm/persona/chat-orchestrator.js +204 -0
- package/dist/esm/persona/event-emitter.d.ts +7 -0
- package/dist/esm/persona/event-emitter.d.ts.map +1 -0
- package/dist/esm/persona/event-emitter.js +50 -0
- package/dist/esm/persona/memory-pipeline.d.ts +26 -0
- package/dist/esm/persona/memory-pipeline.d.ts.map +1 -0
- package/dist/esm/persona/memory-pipeline.js +65 -0
- package/dist/esm/persona.d.ts +56 -187
- package/dist/esm/persona.d.ts.map +1 -1
- package/dist/esm/persona.js +62 -638
- package/dist/esm/shared/appraisal.d.ts +26 -0
- package/dist/esm/shared/appraisal.d.ts.map +1 -0
- package/dist/esm/shared/appraisal.js +40 -0
- package/dist/esm/shared/client-factory.d.ts +23 -0
- package/dist/esm/shared/client-factory.d.ts.map +1 -0
- package/dist/esm/shared/client-factory.js +41 -0
- package/dist/esm/shared/errors.d.ts +21 -0
- package/dist/esm/shared/errors.d.ts.map +1 -0
- package/dist/esm/shared/errors.js +24 -0
- package/dist/esm/world/client.d.ts +2 -9
- package/dist/esm/world/client.d.ts.map +1 -1
- package/dist/esm/world/client.js +6 -30
- package/dist/esm/world/errors.d.ts +1 -8
- package/dist/esm/world/errors.d.ts.map +1 -1
- package/dist/esm/world/errors.js +1 -11
- package/dist/esm/world/index.d.ts +2 -2
- package/dist/esm/world/index.d.ts.map +1 -1
- package/dist/esm/world/types.d.ts +32 -5
- package/dist/esm/world/types.d.ts.map +1 -1
- package/dist/esm/world/world-domain.d.ts.map +1 -1
- package/dist/esm/world/world-domain.js +4 -32
- package/dist/esm/world/world-persona.d.ts +17 -12
- package/dist/esm/world/world-persona.d.ts.map +1 -1
- package/dist/esm/world/world-persona.js +6 -18
- package/dist/esm/world/world.d.ts +28 -5
- package/dist/esm/world/world.d.ts.map +1 -1
- package/dist/esm/world/world.js +13 -11
- package/package.json +4 -101
- package/dist/cjs/embedding/cloudflare.d.ts +0 -15
- package/dist/cjs/embedding/cloudflare.d.ts.map +0 -1
- package/dist/cjs/embedding/cloudflare.js +0 -16
- package/dist/cjs/embedding/cohere.d.ts +0 -8
- package/dist/cjs/embedding/cohere.d.ts.map +0 -1
- package/dist/cjs/embedding/cohere.js +0 -31
- package/dist/cjs/embedding/index.d.ts +0 -9
- package/dist/cjs/embedding/index.d.ts.map +0 -1
- package/dist/cjs/embedding/index.js +0 -11
- package/dist/cjs/embedding/local.d.ts +0 -6
- package/dist/cjs/embedding/local.d.ts.map +0 -1
- package/dist/cjs/embedding/local.js +0 -28
- package/dist/cjs/embedding/openai.d.ts +0 -9
- package/dist/cjs/embedding/openai.d.ts.map +0 -1
- package/dist/cjs/embedding/openai.js +0 -26
- package/dist/cjs/events/console.d.ts +0 -25
- package/dist/cjs/events/console.d.ts.map +0 -1
- package/dist/cjs/events/console.js +0 -41
- package/dist/cjs/events/webhook.d.ts +0 -30
- package/dist/cjs/events/webhook.d.ts.map +0 -1
- package/dist/cjs/events/webhook.js +0 -79
- package/dist/cjs/memory/cloudflare/index.d.ts +0 -3
- package/dist/cjs/memory/cloudflare/index.d.ts.map +0 -1
- package/dist/cjs/memory/cloudflare/index.js +0 -5
- package/dist/cjs/memory/cloudflare/vectorize.d.ts +0 -62
- package/dist/cjs/memory/cloudflare/vectorize.d.ts.map +0 -1
- package/dist/cjs/memory/cloudflare/vectorize.js +0 -55
- package/dist/cjs/memory/in-memory-semantic.d.ts +0 -16
- package/dist/cjs/memory/in-memory-semantic.d.ts.map +0 -1
- package/dist/cjs/memory/in-memory-semantic.js +0 -57
- package/dist/cjs/memory/pinecone/index.d.ts +0 -7
- package/dist/cjs/memory/pinecone/index.d.ts.map +0 -1
- package/dist/cjs/memory/pinecone/index.js +0 -8
- package/dist/cjs/memory/pinecone/memory-adapter.d.ts +0 -62
- package/dist/cjs/memory/pinecone/memory-adapter.d.ts.map +0 -1
- package/dist/cjs/memory/pinecone/memory-adapter.js +0 -220
- package/dist/cjs/memory/pinecone/semantic.d.ts +0 -44
- package/dist/cjs/memory/pinecone/semantic.d.ts.map +0 -1
- package/dist/cjs/memory/pinecone/semantic.js +0 -90
- package/dist/cjs/memory/sqlite/index.d.ts +0 -3
- package/dist/cjs/memory/sqlite/index.d.ts.map +0 -1
- package/dist/cjs/memory/sqlite/index.js +0 -5
- package/dist/cjs/memory/sqlite/memory-adapter.d.ts +0 -58
- package/dist/cjs/memory/sqlite/memory-adapter.d.ts.map +0 -1
- package/dist/cjs/memory/sqlite/memory-adapter.js +0 -336
- package/dist/cjs/memory/sqlite/schema.d.ts +0 -4
- package/dist/cjs/memory/sqlite/schema.d.ts.map +0 -1
- package/dist/cjs/memory/sqlite/schema.js +0 -91
- package/dist/cjs/memory/supabase/index.d.ts +0 -7
- package/dist/cjs/memory/supabase/index.d.ts.map +0 -1
- package/dist/cjs/memory/supabase/index.js +0 -8
- package/dist/cjs/memory/supabase/memory-adapter.d.ts +0 -67
- package/dist/cjs/memory/supabase/memory-adapter.d.ts.map +0 -1
- package/dist/cjs/memory/supabase/memory-adapter.js +0 -335
- package/dist/cjs/memory/supabase/semantic.d.ts +0 -44
- package/dist/cjs/memory/supabase/semantic.d.ts.map +0 -1
- package/dist/cjs/memory/supabase/semantic.js +0 -72
- package/dist/esm/embedding/cloudflare.d.ts +0 -15
- package/dist/esm/embedding/cloudflare.d.ts.map +0 -1
- package/dist/esm/embedding/cloudflare.js +0 -13
- package/dist/esm/embedding/cohere.d.ts +0 -8
- package/dist/esm/embedding/cohere.d.ts.map +0 -1
- package/dist/esm/embedding/cohere.js +0 -28
- package/dist/esm/embedding/index.d.ts +0 -9
- package/dist/esm/embedding/index.d.ts.map +0 -1
- package/dist/esm/embedding/index.js +0 -4
- package/dist/esm/embedding/local.d.ts +0 -6
- package/dist/esm/embedding/local.d.ts.map +0 -1
- package/dist/esm/embedding/local.js +0 -25
- package/dist/esm/embedding/openai.d.ts +0 -9
- package/dist/esm/embedding/openai.d.ts.map +0 -1
- package/dist/esm/embedding/openai.js +0 -23
- package/dist/esm/events/console.d.ts +0 -25
- package/dist/esm/events/console.d.ts.map +0 -1
- package/dist/esm/events/console.js +0 -37
- package/dist/esm/events/webhook.d.ts +0 -30
- package/dist/esm/events/webhook.d.ts.map +0 -1
- package/dist/esm/events/webhook.js +0 -75
- package/dist/esm/memory/cloudflare/index.d.ts +0 -3
- package/dist/esm/memory/cloudflare/index.d.ts.map +0 -1
- package/dist/esm/memory/cloudflare/index.js +0 -1
- package/dist/esm/memory/cloudflare/vectorize.d.ts +0 -62
- package/dist/esm/memory/cloudflare/vectorize.d.ts.map +0 -1
- package/dist/esm/memory/cloudflare/vectorize.js +0 -51
- package/dist/esm/memory/in-memory-semantic.d.ts +0 -16
- package/dist/esm/memory/in-memory-semantic.d.ts.map +0 -1
- package/dist/esm/memory/in-memory-semantic.js +0 -53
- package/dist/esm/memory/pinecone/index.d.ts +0 -7
- package/dist/esm/memory/pinecone/index.d.ts.map +0 -1
- package/dist/esm/memory/pinecone/index.js +0 -3
- package/dist/esm/memory/pinecone/memory-adapter.d.ts +0 -62
- package/dist/esm/memory/pinecone/memory-adapter.d.ts.map +0 -1
- package/dist/esm/memory/pinecone/memory-adapter.js +0 -216
- package/dist/esm/memory/pinecone/semantic.d.ts +0 -44
- package/dist/esm/memory/pinecone/semantic.d.ts.map +0 -1
- package/dist/esm/memory/pinecone/semantic.js +0 -86
- package/dist/esm/memory/sqlite/index.d.ts +0 -3
- package/dist/esm/memory/sqlite/index.d.ts.map +0 -1
- package/dist/esm/memory/sqlite/index.js +0 -1
- package/dist/esm/memory/sqlite/memory-adapter.d.ts +0 -58
- package/dist/esm/memory/sqlite/memory-adapter.d.ts.map +0 -1
- package/dist/esm/memory/sqlite/memory-adapter.js +0 -296
- package/dist/esm/memory/sqlite/schema.d.ts +0 -4
- package/dist/esm/memory/sqlite/schema.d.ts.map +0 -1
- package/dist/esm/memory/sqlite/schema.js +0 -86
- package/dist/esm/memory/supabase/index.d.ts +0 -7
- package/dist/esm/memory/supabase/index.d.ts.map +0 -1
- package/dist/esm/memory/supabase/index.js +0 -3
- package/dist/esm/memory/supabase/memory-adapter.d.ts +0 -67
- package/dist/esm/memory/supabase/memory-adapter.d.ts.map +0 -1
- package/dist/esm/memory/supabase/memory-adapter.js +0 -331
- package/dist/esm/memory/supabase/semantic.d.ts +0 -44
- package/dist/esm/memory/supabase/semantic.d.ts.map +0 -1
- package/dist/esm/memory/supabase/semantic.js +0 -68
|
@@ -11,22 +11,7 @@ exports.WorldPersona = void 0;
|
|
|
11
11
|
* 제공하되, 내부적으로 World API 엔드포인트를 사용한다.
|
|
12
12
|
*/
|
|
13
13
|
const client_1 = require("./client");
|
|
14
|
-
|
|
15
|
-
// Internal helpers
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
function toApiAppraisal(v) {
|
|
18
|
-
return {
|
|
19
|
-
goal_relevance: v.goalRelevance,
|
|
20
|
-
goal_congruence: v.goalCongruence,
|
|
21
|
-
expectedness: v.expectedness,
|
|
22
|
-
controllability: v.controllability,
|
|
23
|
-
agency: v.agency,
|
|
24
|
-
norm_compatibility: v.normCompatibility,
|
|
25
|
-
internal_standards: v.internalStandards,
|
|
26
|
-
adjustment_potential: v.adjustmentPotential,
|
|
27
|
-
urgency: v.urgency,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
14
|
+
const appraisal_1 = require("../shared/appraisal");
|
|
30
15
|
class WorldPersona {
|
|
31
16
|
/** @internal — use World.persona() instead. */
|
|
32
17
|
constructor(client, worldId, personaId, options) {
|
|
@@ -62,7 +47,10 @@ class WorldPersona {
|
|
|
62
47
|
/** Get current emotion/mood/somatic state. */
|
|
63
48
|
async getState() {
|
|
64
49
|
const detail = await this.getDetail();
|
|
65
|
-
return detail.state ?? {
|
|
50
|
+
return detail.state ?? {
|
|
51
|
+
emotion: { vad: { V: 0, A: 0.5, D: 0 }, label: 'calm', secondary_label: null, intensity: 0 },
|
|
52
|
+
somatic: [],
|
|
53
|
+
};
|
|
66
54
|
}
|
|
67
55
|
/** Get speaking style from persona config (identity.speakingStyle). */
|
|
68
56
|
async getSpeakingStyle() {
|
|
@@ -91,7 +79,7 @@ class WorldPersona {
|
|
|
91
79
|
action_name: action || undefined,
|
|
92
80
|
action_label: action || undefined,
|
|
93
81
|
stimulus_description: options?.stimulusDescription,
|
|
94
|
-
appraisal_vector: options?.appraisal ?
|
|
82
|
+
appraisal_vector: options?.appraisal ? (0, appraisal_1.toWireAppraisal)(options.appraisal) : undefined,
|
|
95
83
|
actor_id: options?.actor,
|
|
96
84
|
actor_type: options?.actorType,
|
|
97
85
|
},
|
|
@@ -4,7 +4,7 @@ import { MolrooPersona } from '../persona';
|
|
|
4
4
|
import type { PersonaSummary } from '../persona';
|
|
5
5
|
import type { PersonaConfigData } from '../types';
|
|
6
6
|
import type { LLMInput } from '../llm/resolve';
|
|
7
|
-
import type { MemoryAdapter,
|
|
7
|
+
import type { MemoryAdapter, RecallLimits } from '../memory/types';
|
|
8
8
|
import type { EventAdapter } from '../events/types';
|
|
9
9
|
import type { WorldData, CreateWorldOptions, PaginationOptions } from './types';
|
|
10
10
|
export interface MolrooOptions {
|
|
@@ -15,7 +15,7 @@ export interface MolrooOptions {
|
|
|
15
15
|
export interface PersonaOptions {
|
|
16
16
|
llm?: LLMInput;
|
|
17
17
|
engineLlm?: LLMInput;
|
|
18
|
-
memory?: MemoryAdapter
|
|
18
|
+
memory?: MemoryAdapter;
|
|
19
19
|
recall?: RecallLimits;
|
|
20
20
|
events?: EventAdapter;
|
|
21
21
|
}
|
|
@@ -44,7 +44,30 @@ export declare class Molroo {
|
|
|
44
44
|
private readonly _apiKey;
|
|
45
45
|
constructor(options: MolrooOptions);
|
|
46
46
|
/**
|
|
47
|
-
* Create a new persona
|
|
47
|
+
* Create a new persona from a natural language description.
|
|
48
|
+
* Uses LLM to generate HEXACO personality configuration.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const sera = await molroo.createPersona(
|
|
53
|
+
* 'A kind and curious barista who remembers customer names',
|
|
54
|
+
* { llm: openaiAdapter }
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
createPersona(description: string, options: PersonaOptions & {
|
|
59
|
+
llm: LLMInput;
|
|
60
|
+
}): Promise<MolrooPersona>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a new persona with explicit configuration.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const sera = await molroo.createPersona(
|
|
67
|
+
* { identity: { name: 'Sera' }, personality: { O: 0.8, C: 0.6, E: 0.7, A: 0.5, N: 0.3, H: 0.6 } },
|
|
68
|
+
* { llm: openaiAdapter }
|
|
69
|
+
* );
|
|
70
|
+
* ```
|
|
48
71
|
*/
|
|
49
72
|
createPersona(personaConfig: PersonaConfigData, options?: PersonaOptions): Promise<MolrooPersona>;
|
|
50
73
|
/**
|
|
@@ -52,8 +75,8 @@ export declare class Molroo {
|
|
|
52
75
|
*/
|
|
53
76
|
connectPersona(personaId: string, options?: PersonaOptions): Promise<MolrooPersona>;
|
|
54
77
|
/**
|
|
55
|
-
* Generate a persona from a natural-language description
|
|
56
|
-
*
|
|
78
|
+
* Generate a persona from a natural-language description.
|
|
79
|
+
* @deprecated Use `createPersona(description, options)` instead.
|
|
57
80
|
*/
|
|
58
81
|
generatePersona(description: string, options: PersonaOptions & {
|
|
59
82
|
llm: LLMInput;
|
|
@@ -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,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,
|
|
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,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,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;CACvB;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;;;OAGG;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
|
@@ -52,14 +52,16 @@ class Molroo {
|
|
|
52
52
|
apiKey: this._apiKey,
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
async createPersona(input, options) {
|
|
56
|
+
if (typeof input === 'string') {
|
|
57
|
+
// Description path - requires llm
|
|
58
|
+
if (!options?.llm) {
|
|
59
|
+
throw new Error('LLM adapter is required when using description string');
|
|
60
|
+
}
|
|
61
|
+
return persona_1.MolrooPersona.create({ baseUrl: this._baseUrl, apiKey: this._apiKey, ...options, llm: options.llm }, input);
|
|
62
|
+
}
|
|
63
|
+
// Config path
|
|
64
|
+
return persona_1.MolrooPersona.create({ baseUrl: this._baseUrl, apiKey: this._apiKey, ...options }, input);
|
|
63
65
|
}
|
|
64
66
|
/**
|
|
65
67
|
* Connect to an existing persona by ID.
|
|
@@ -68,11 +70,11 @@ class Molroo {
|
|
|
68
70
|
return persona_1.MolrooPersona.connect({ baseUrl: this._baseUrl, apiKey: this._apiKey, ...options }, personaId);
|
|
69
71
|
}
|
|
70
72
|
/**
|
|
71
|
-
* Generate a persona from a natural-language description
|
|
72
|
-
*
|
|
73
|
+
* Generate a persona from a natural-language description.
|
|
74
|
+
* @deprecated Use `createPersona(description, options)` instead.
|
|
73
75
|
*/
|
|
74
76
|
async generatePersona(description, options) {
|
|
75
|
-
return
|
|
77
|
+
return this.createPersona(description, options);
|
|
76
78
|
}
|
|
77
79
|
/**
|
|
78
80
|
* List all personas for the authenticated tenant.
|
package/dist/esm/api-client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { paths } from './generated/api';
|
|
2
|
+
import { unwrap } from './shared/client-factory';
|
|
2
3
|
/**
|
|
3
4
|
* Create a typed openapi-fetch client for the molroo API.
|
|
4
5
|
*
|
|
@@ -8,16 +9,5 @@ import type { paths } from './generated/api';
|
|
|
8
9
|
*/
|
|
9
10
|
export declare function createApiClient(baseUrl: string, apiKey: string): import("openapi-fetch").Client<paths, `${string}/${string}`>;
|
|
10
11
|
export type ApiClient = ReturnType<typeof createApiClient>;
|
|
11
|
-
|
|
12
|
-
* Unwrap the `{ result: T }` envelope from API responses.
|
|
13
|
-
*
|
|
14
|
-
* Many API endpoints return `ResultWrapper` (typed as `{ result?: unknown }`)
|
|
15
|
-
* in the OpenAPI spec. This helper extracts the `result` field and casts it
|
|
16
|
-
* to the expected type.
|
|
17
|
-
*
|
|
18
|
-
* For endpoints with properly-typed response schemas, use `data.result` directly.
|
|
19
|
-
*/
|
|
20
|
-
export declare function unwrap<T>(data: {
|
|
21
|
-
result?: unknown;
|
|
22
|
-
} | undefined): T;
|
|
12
|
+
export { unwrap };
|
|
23
13
|
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/api-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAqB,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gEAE9D;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/esm/api-client.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
import createClient from 'openapi-fetch';
|
|
2
1
|
import { MolrooApiError } from './errors';
|
|
3
|
-
|
|
4
|
-
* Middleware: throw MolrooApiError on non-OK responses.
|
|
5
|
-
*
|
|
6
|
-
* Reads the error body `{ error: { code, message } }` and converts it
|
|
7
|
-
* into a typed MolrooApiError before openapi-fetch processes the response.
|
|
8
|
-
*/
|
|
9
|
-
const errorMiddleware = {
|
|
10
|
-
async onResponse({ response }) {
|
|
11
|
-
if (!response.ok) {
|
|
12
|
-
const body = await response.clone().json().catch(() => ({}));
|
|
13
|
-
const err = body;
|
|
14
|
-
throw new MolrooApiError(err.error?.message ?? `API error ${response.status}`, err.error?.code ?? 'UNKNOWN', response.status);
|
|
15
|
-
}
|
|
16
|
-
// Return undefined to let openapi-fetch handle the response unchanged
|
|
17
|
-
},
|
|
18
|
-
};
|
|
2
|
+
import { createTypedClient, unwrap } from './shared/client-factory';
|
|
19
3
|
/**
|
|
20
4
|
* Create a typed openapi-fetch client for the molroo API.
|
|
21
5
|
*
|
|
@@ -24,25 +8,6 @@ const errorMiddleware = {
|
|
|
24
8
|
* @returns A fully-typed openapi-fetch client instance.
|
|
25
9
|
*/
|
|
26
10
|
export function createApiClient(baseUrl, apiKey) {
|
|
27
|
-
|
|
28
|
-
baseUrl: baseUrl.replace(/\/$/, ''),
|
|
29
|
-
headers: {
|
|
30
|
-
'Content-Type': 'application/json',
|
|
31
|
-
'X-API-Key': apiKey,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
client.use(errorMiddleware);
|
|
35
|
-
return client;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Unwrap the `{ result: T }` envelope from API responses.
|
|
39
|
-
*
|
|
40
|
-
* Many API endpoints return `ResultWrapper` (typed as `{ result?: unknown }`)
|
|
41
|
-
* in the OpenAPI spec. This helper extracts the `result` field and casts it
|
|
42
|
-
* to the expected type.
|
|
43
|
-
*
|
|
44
|
-
* For endpoints with properly-typed response schemas, use `data.result` directly.
|
|
45
|
-
*/
|
|
46
|
-
export function unwrap(data) {
|
|
47
|
-
return (data?.result ?? {});
|
|
11
|
+
return createTypedClient({ baseUrl, apiKey, ErrorClass: MolrooApiError });
|
|
48
12
|
}
|
|
13
|
+
export { unwrap };
|
package/dist/esm/errors.d.ts
CHANGED
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Error thrown when the molroo API returns a non-OK response.
|
|
3
|
-
*
|
|
4
|
-
* Contains the API error code and HTTP status for programmatic handling.
|
|
5
|
-
*/
|
|
6
|
-
export declare class MolrooApiError extends Error {
|
|
7
|
-
/** Machine-readable error code (e.g., 'ENTITY_NOT_FOUND', 'UNAUTHORIZED'). */
|
|
8
|
-
code: string;
|
|
9
|
-
/** HTTP status code. */
|
|
10
|
-
status: number;
|
|
11
|
-
constructor(message: string,
|
|
12
|
-
/** Machine-readable error code (e.g., 'ENTITY_NOT_FOUND', 'UNAUTHORIZED'). */
|
|
13
|
-
code: string,
|
|
14
|
-
/** HTTP status code. */
|
|
15
|
-
status: number);
|
|
16
|
-
}
|
|
1
|
+
export { MolrooApiError } from './shared/errors';
|
|
17
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
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/esm/errors.js
CHANGED
|
@@ -1,17 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Error thrown when the molroo API returns a non-OK response.
|
|
3
|
-
*
|
|
4
|
-
* Contains the API error code and HTTP status for programmatic handling.
|
|
5
|
-
*/
|
|
6
|
-
export class MolrooApiError extends Error {
|
|
7
|
-
constructor(message,
|
|
8
|
-
/** Machine-readable error code (e.g., 'ENTITY_NOT_FOUND', 'UNAUTHORIZED'). */
|
|
9
|
-
code,
|
|
10
|
-
/** HTTP status code. */
|
|
11
|
-
status) {
|
|
12
|
-
super(message);
|
|
13
|
-
this.code = code;
|
|
14
|
-
this.status = status;
|
|
15
|
-
this.name = 'MolrooApiError';
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
export { MolrooApiError } from './shared/errors';
|
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Event
|
|
3
|
-
*
|
|
4
|
-
* Abstracts event emission so consumers can:
|
|
5
|
-
* - Log emotion changes, relationship updates, stage transitions
|
|
6
|
-
* - Send webhooks, push notifications, analytics events
|
|
7
|
-
* - Build reactive UIs that respond to persona state changes
|
|
8
|
-
*
|
|
9
|
-
* Events are derived from API response data (AgentResponse fields).
|
|
10
|
-
* Implementations are provided by the consumer — SDK only defines the interface.
|
|
2
|
+
* Event adapter interface for emitting persona-scoped events.
|
|
3
|
+
* Consumers can implement this to react to emotion changes, memory events, etc.
|
|
11
4
|
*/
|
|
12
|
-
/** Persona-scoped event types — emitted from persona state changes. */
|
|
13
|
-
export type PersonaEventType = 'emotion_changed' | 'relationship_changed' | 'memory_consolidated' | 'reflection_generated' | 'stage_transition' | 'mask_exposure' | 'goal_changed';
|
|
14
|
-
export type SDKEventType = PersonaEventType;
|
|
15
|
-
export interface SDKEvent {
|
|
16
|
-
type: SDKEventType;
|
|
17
|
-
/** Present for persona-scoped events. Absent for world-scoped events. */
|
|
18
|
-
personaId?: string;
|
|
19
|
-
timestamp: number;
|
|
20
|
-
payload: Record<string, unknown>;
|
|
21
|
-
}
|
|
22
5
|
export interface EventAdapter {
|
|
23
|
-
/** Emit a single event. */
|
|
24
6
|
emit(event: SDKEvent): Promise<void>;
|
|
25
|
-
/**
|
|
7
|
+
/** Optional batch emit for efficiency. Falls back to individual emit() if not provided. */
|
|
26
8
|
emitBatch?(events: SDKEvent[]): Promise<void>;
|
|
27
9
|
}
|
|
10
|
+
/** Base event shape. */
|
|
11
|
+
export interface SDKEvent {
|
|
12
|
+
type: string;
|
|
13
|
+
personaId?: string;
|
|
14
|
+
timestamp: number;
|
|
15
|
+
payload?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/** Event type categories. */
|
|
18
|
+
export type SDKEventType = 'emotion_changed' | 'memory_consolidated' | 'reflection_generated' | PersonaEventType;
|
|
19
|
+
/** Persona-specific event types. */
|
|
20
|
+
export type PersonaEventType = 'chat' | 'perceive' | 'emotion_update' | 'state_change' | 'memory_created' | 'reflection_created';
|
|
28
21
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2FAA2F;IAC3F,SAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,wBAAwB;AACxB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;AAEjH,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,oBAAoB,CAAC"}
|
package/dist/esm/events/types.js
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event Adapter interface for molroo SDK.
|
|
3
|
-
*
|
|
4
|
-
* Abstracts event emission so consumers can:
|
|
5
|
-
* - Log emotion changes, relationship updates, stage transitions
|
|
6
|
-
* - Send webhooks, push notifications, analytics events
|
|
7
|
-
* - Build reactive UIs that respond to persona state changes
|
|
8
|
-
*
|
|
9
|
-
* Events are derived from API response data (AgentResponse fields).
|
|
10
|
-
* Implementations are provided by the consumer — SDK only defines the interface.
|
|
11
|
-
*/
|
|
12
1
|
export {};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,68 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @molroo-io/sdk - Thin Client SDK for molroo emotion engine
|
|
3
3
|
*
|
|
4
|
-
* ##
|
|
5
|
-
* - **LLM calls happen HERE** — consumer's API key, consumer's model.
|
|
6
|
-
* - **Appraisal generation happens HERE** — LLM produces appraisal, SDK sends to API.
|
|
7
|
-
* - **Memory recall happens HERE** — episodic/semantic/reflections from client stores.
|
|
8
|
-
* - **Prompt composition**: API returns persona fragment → SDK adds memory context.
|
|
4
|
+
* ## Quick Start
|
|
9
5
|
*
|
|
10
|
-
* The API/engine never call LLM. This SDK is the bridge.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
6
|
* ```typescript
|
|
14
|
-
* import {
|
|
15
|
-
* import {
|
|
7
|
+
* import { Molroo } from '@molroo-io/sdk';
|
|
8
|
+
* import { createOpenAI } from '@ai-sdk/openai';
|
|
9
|
+
*
|
|
10
|
+
* const molroo = new Molroo({ apiKey: 'mk_live_...' });
|
|
11
|
+
*
|
|
12
|
+
* const openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY! });
|
|
16
13
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* }
|
|
14
|
+
* // Create persona from description
|
|
15
|
+
* const sera = await molroo.createPersona(
|
|
16
|
+
* 'A kind and curious barista named Sera',
|
|
17
|
+
* { llm: openai }
|
|
18
|
+
* );
|
|
21
19
|
*
|
|
22
|
-
* const
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* }, {
|
|
27
|
-
* config: { identity: { name: 'Sera' }, personality: { O: 0.7, C: 0.6, E: 0.8, A: 0.5, N: 0.3, H: 0.6 } },
|
|
28
|
-
* });
|
|
20
|
+
* const result = await sera.chat('Hello!');
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## Advanced: World Simulation
|
|
29
24
|
*
|
|
30
|
-
*
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const world = await molroo.createWorld({ name: 'Cafe' });
|
|
27
|
+
* const sera = await molroo.createPersona('Barista Sera', { llm: openai });
|
|
28
|
+
* await world.addPersona({ personaConfigId: sera.id, config: {...} });
|
|
31
29
|
* ```
|
|
32
30
|
*/
|
|
33
31
|
export { Molroo } from './world/world';
|
|
34
32
|
export type { MolrooOptions, PersonaOptions } from './world/world';
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
33
|
+
export { MolrooApiError, WorldApiError } from './shared/errors';
|
|
34
|
+
export { NEUTRAL_APPRAISAL, toWireAppraisal, fromWireAppraisal } from './shared/appraisal';
|
|
35
|
+
export type { Appraisal } from './shared/appraisal';
|
|
37
36
|
export type { LLMAdapter, Message, GenerateTextOptions, GenerateObjectOptions, } from './llm/adapter';
|
|
38
|
-
export type {
|
|
39
|
-
export {
|
|
40
|
-
export type {
|
|
41
|
-
export type { MemoryAdapter, RecallQuery, SemanticRecallOptions, RecallLimits, } from './memory/types';
|
|
42
|
-
export { isMemoryConfig } from './memory/types';
|
|
43
|
-
export type { EpisodeAdapter, EpisodeQuery, SemanticAdapter, SemanticEntry, SemanticQuery, SemanticResult, EmbeddingAdapter, MemoryConfig, Reflection, } from './memory/types';
|
|
44
|
-
export { InMemoryEpisodeAdapter } from './memory/in-memory';
|
|
45
|
-
export type { RecallConfig } from './memory/recall';
|
|
46
|
-
export type { SemanticMemory, SearchOptions, SearchResult } from './memory/semantic';
|
|
47
|
-
export { InMemorySemanticMemory } from './memory/in-memory-semantic';
|
|
48
|
-
export type { EpisodeStore, SemanticStore, EmbeddingProvider } from './memory/types';
|
|
49
|
-
export { InMemoryEpisodeStore } from './memory/in-memory';
|
|
50
|
-
export type { EventAdapter, SDKEvent, SDKEventType, PersonaEventType } from './events/types';
|
|
51
|
-
export { ConsoleEventAdapter } from './events/console';
|
|
52
|
-
export type { ConsoleEventAdapterOptions } from './events/console';
|
|
53
|
-
export { WebhookEventAdapter } from './events/webhook';
|
|
54
|
-
export type { WebhookEventAdapterOptions } from './events/webhook';
|
|
55
|
-
export { generatePersona } from './generate/persona';
|
|
56
|
-
export { GeneratePersonaSchema } from './generate/schema';
|
|
57
|
-
export type { GeneratePersonaSchemaOutput } from './generate/schema';
|
|
58
|
-
export type { MolrooPersonaConfig, PersonaSummary, PersonaState, PersonaChatResult, } from './persona';
|
|
37
|
+
export type { LLMInput } from './llm/resolve';
|
|
38
|
+
export type { MemoryAdapter, RecallQuery, SemanticRecallOptions, RecallLimits, Reflection, } from './memory/types';
|
|
39
|
+
export type { PersonaSummary, PersonaState, PersonaChatResult, } from './persona';
|
|
59
40
|
export type { InterlocutorContext, PerceiveOptions, PerceiveEvent, PerceiveContext, } from './types';
|
|
60
41
|
export type { AgentResponse, VAD, Velocity, AppraisalVector, State, SoulStage, CatastropheState, MetacogState, AffectDynamicsState, InterpersonalState, RegulationState, RegulationStrategy, RegulationPhase, ActiveRegulation, RegulationRecord, EffectivenessRecord, NeedState, Episode, SocialUpdate, ReflectionPrompt, } from './types';
|
|
61
42
|
export type { PersonaSnapshot, PersonaConfigData, PersonalityTraits, Identity, Goal, MotivationContext, } from './types';
|
|
62
43
|
export type { ApiResponse, ApiErrorResponse, PersonaDynamicState, } from './types';
|
|
63
|
-
export { AppraisalVectorSchema, LLMResponseSchema, LLMResponseWithToolsSchema, } from './llm/schema';
|
|
64
|
-
export type { LLMResponseOutput, LLMResponseWithToolsOutput } from './llm/schema';
|
|
65
44
|
export type { LLMPrompt, LLMResponse, } from './llm/types';
|
|
66
|
-
export type { ChatMessage } from './llm/types';
|
|
67
45
|
export { DEFAULT_PERSONA, withDefaults } from './defaults';
|
|
68
46
|
//# sourceMappingURL=index.d.ts.map
|
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
|
|
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;AAGhE,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,YAAY,EACV,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,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,50 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @molroo-io/sdk - Thin Client SDK for molroo emotion engine
|
|
3
3
|
*
|
|
4
|
-
* ##
|
|
5
|
-
* - **LLM calls happen HERE** — consumer's API key, consumer's model.
|
|
6
|
-
* - **Appraisal generation happens HERE** — LLM produces appraisal, SDK sends to API.
|
|
7
|
-
* - **Memory recall happens HERE** — episodic/semantic/reflections from client stores.
|
|
8
|
-
* - **Prompt composition**: API returns persona fragment → SDK adds memory context.
|
|
4
|
+
* ## Quick Start
|
|
9
5
|
*
|
|
10
|
-
*
|
|
6
|
+
* ```typescript
|
|
7
|
+
* import { Molroo } from '@molroo-io/sdk';
|
|
8
|
+
* import { createOpenAI } from '@ai-sdk/openai';
|
|
9
|
+
*
|
|
10
|
+
* const molroo = new Molroo({ apiKey: 'mk_live_...' });
|
|
11
|
+
*
|
|
12
|
+
* const openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY! });
|
|
13
|
+
*
|
|
14
|
+
* // Create persona from description
|
|
15
|
+
* const sera = await molroo.createPersona(
|
|
16
|
+
* 'A kind and curious barista named Sera',
|
|
17
|
+
* { llm: openai }
|
|
18
|
+
* );
|
|
19
|
+
*
|
|
20
|
+
* const result = await sera.chat('Hello!');
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## Advanced: World Simulation
|
|
11
24
|
*
|
|
12
|
-
* @example
|
|
13
25
|
* ```typescript
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* const llm = createVercelAIAdapter({
|
|
18
|
-
* provider: 'openai',
|
|
19
|
-
* apiKey: process.env.OPENAI_API_KEY!,
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
22
|
-
* const persona = await MolrooPersona.create({
|
|
23
|
-
* baseUrl: 'https://api.molroo.io',
|
|
24
|
-
* apiKey: 'your_api_key',
|
|
25
|
-
* llm,
|
|
26
|
-
* }, {
|
|
27
|
-
* config: { identity: { name: 'Sera' }, personality: { O: 0.7, C: 0.6, E: 0.8, A: 0.5, N: 0.3, H: 0.6 } },
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* const result = await persona.chat('Hello!');
|
|
26
|
+
* const world = await molroo.createWorld({ name: 'Cafe' });
|
|
27
|
+
* const sera = await molroo.createPersona('Barista Sera', { llm: openai });
|
|
28
|
+
* await world.addPersona({ personaConfigId: sera.id, config: {...} });
|
|
31
29
|
* ```
|
|
32
30
|
*/
|
|
33
31
|
// ── Main exports ──
|
|
34
32
|
export { Molroo } from './world/world';
|
|
35
|
-
export {
|
|
36
|
-
|
|
37
|
-
export {
|
|
38
|
-
export { isMemoryConfig } from './memory/types';
|
|
39
|
-
export { InMemoryEpisodeAdapter } from './memory/in-memory';
|
|
40
|
-
export { InMemorySemanticMemory } from './memory/in-memory-semantic';
|
|
41
|
-
export { InMemoryEpisodeStore } from './memory/in-memory';
|
|
42
|
-
export { ConsoleEventAdapter } from './events/console';
|
|
43
|
-
export { WebhookEventAdapter } from './events/webhook';
|
|
44
|
-
// ── Generate ──
|
|
45
|
-
export { generatePersona } from './generate/persona';
|
|
46
|
-
export { GeneratePersonaSchema } from './generate/schema';
|
|
47
|
-
// ── LLM types & schemas ──
|
|
48
|
-
export { AppraisalVectorSchema, LLMResponseSchema, LLMResponseWithToolsSchema, } from './llm/schema';
|
|
33
|
+
export { MolrooApiError, WorldApiError } from './shared/errors';
|
|
34
|
+
// ── Shared utilities ──
|
|
35
|
+
export { NEUTRAL_APPRAISAL, toWireAppraisal, fromWireAppraisal } from './shared/appraisal';
|
|
49
36
|
// ── Defaults ──
|
|
50
37
|
export { DEFAULT_PERSONA, withDefaults } from './defaults';
|
|
@@ -1,28 +1,10 @@
|
|
|
1
1
|
import type { LLMAdapter } from './adapter';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* const persona = await MolrooPersona.create({
|
|
8
|
-
* baseUrl, apiKey,
|
|
9
|
-
* llm: { provider: 'openai', apiKey: '...' },
|
|
10
|
-
* }, config);
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
export interface LLMShorthand {
|
|
14
|
-
provider: 'openai' | 'anthropic' | 'vertex' | 'openrouter';
|
|
15
|
-
apiKey: string;
|
|
16
|
-
model?: string;
|
|
17
|
-
baseUrl?: string;
|
|
18
|
-
projectId?: string;
|
|
19
|
-
location?: string;
|
|
20
|
-
}
|
|
21
|
-
/** LLM adapter or shorthand config. */
|
|
22
|
-
export type LLMInput = LLMAdapter | LLMShorthand;
|
|
2
|
+
import type { LanguageModel } from 'ai';
|
|
3
|
+
/** LLM adapter or Vercel AI SDK provider instance. */
|
|
4
|
+
export type LLMInput = LLMAdapter | LanguageModel;
|
|
23
5
|
/**
|
|
24
6
|
* Resolve an LLMInput to an LLMAdapter.
|
|
25
|
-
* If a
|
|
7
|
+
* If a Vercel AI SDK provider is given, wraps it in VercelAIAdapter.
|
|
26
8
|
*/
|
|
27
9
|
export declare function resolveLLM(input: LLMInput): Promise<LLMAdapter>;
|
|
28
10
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/llm/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/llm/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,sDAAsD;AACtD,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAelD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBrE"}
|
package/dist/esm/llm/resolve.js
CHANGED
|
@@ -1,17 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { VercelAIAdapter } from './vercel-ai';
|
|
2
|
+
/**
|
|
3
|
+
* Check if input is a Vercel AI SDK provider instance.
|
|
4
|
+
* Provider instances have a `doGenerate` method.
|
|
5
|
+
*/
|
|
6
|
+
function isVercelProvider(input) {
|
|
3
7
|
return (input != null &&
|
|
4
8
|
typeof input === 'object' &&
|
|
5
|
-
'
|
|
6
|
-
|
|
7
|
-
!('generateText' in input));
|
|
9
|
+
'doGenerate' in input &&
|
|
10
|
+
typeof input.doGenerate === 'function');
|
|
8
11
|
}
|
|
9
12
|
/**
|
|
10
13
|
* Resolve an LLMInput to an LLMAdapter.
|
|
11
|
-
* If a
|
|
14
|
+
* If a Vercel AI SDK provider is given, wraps it in VercelAIAdapter.
|
|
12
15
|
*/
|
|
13
16
|
export async function resolveLLM(input) {
|
|
14
|
-
if
|
|
17
|
+
// Check if it's an adapter first
|
|
18
|
+
if (input != null &&
|
|
19
|
+
typeof input === 'object' &&
|
|
20
|
+
'generateText' in input &&
|
|
21
|
+
'generateObject' in input) {
|
|
15
22
|
return input;
|
|
16
|
-
|
|
23
|
+
}
|
|
24
|
+
// Vercel AI SDK provider instance - wrap it
|
|
25
|
+
if (isVercelProvider(input)) {
|
|
26
|
+
return new VercelAIAdapter({ provider: input });
|
|
27
|
+
}
|
|
28
|
+
throw new Error('Invalid LLM input. Expected LLMAdapter or Vercel AI SDK provider instance.');
|
|
17
29
|
}
|