@molroo-io/sdk 0.5.3 → 0.7.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 (258) hide show
  1. package/README.md +102 -210
  2. package/dist/cjs/api-client.d.ts +2 -12
  3. package/dist/cjs/api-client.d.ts.map +1 -1
  4. package/dist/cjs/api-client.js +4 -42
  5. package/dist/cjs/errors.d.ts +1 -16
  6. package/dist/cjs/errors.d.ts.map +1 -1
  7. package/dist/cjs/errors.js +2 -18
  8. package/dist/cjs/events/types.d.ts +14 -21
  9. package/dist/cjs/events/types.d.ts.map +1 -1
  10. package/dist/cjs/events/types.js +0 -11
  11. package/dist/cjs/index.d.ts +28 -48
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +31 -52
  14. package/dist/cjs/llm/resolve.d.ts +4 -22
  15. package/dist/cjs/llm/resolve.d.ts.map +1 -1
  16. package/dist/cjs/llm/resolve.js +19 -7
  17. package/dist/cjs/llm/vercel-ai/adapter.d.ts +4 -10
  18. package/dist/cjs/llm/vercel-ai/adapter.d.ts.map +1 -1
  19. package/dist/cjs/llm/vercel-ai/adapter.js +6 -152
  20. package/dist/cjs/llm/vercel-ai/config.d.ts +8 -5
  21. package/dist/cjs/llm/vercel-ai/config.d.ts.map +1 -1
  22. package/dist/cjs/memory/in-memory.d.ts +14 -37
  23. package/dist/cjs/memory/in-memory.d.ts.map +1 -1
  24. package/dist/cjs/memory/in-memory.js +22 -85
  25. package/dist/cjs/memory/recall.d.ts +10 -21
  26. package/dist/cjs/memory/recall.d.ts.map +1 -1
  27. package/dist/cjs/memory/recall.js +12 -91
  28. package/dist/cjs/memory/types.d.ts +46 -186
  29. package/dist/cjs/memory/types.d.ts.map +1 -1
  30. package/dist/cjs/memory/types.js +0 -10
  31. package/dist/cjs/persona/chat-orchestrator.d.ts +46 -0
  32. package/dist/cjs/persona/chat-orchestrator.d.ts.map +1 -0
  33. package/dist/cjs/persona/chat-orchestrator.js +240 -0
  34. package/dist/cjs/persona/event-emitter.d.ts +7 -0
  35. package/dist/cjs/persona/event-emitter.d.ts.map +1 -0
  36. package/dist/cjs/persona/event-emitter.js +53 -0
  37. package/dist/cjs/persona/memory-pipeline.d.ts +26 -0
  38. package/dist/cjs/persona/memory-pipeline.d.ts.map +1 -0
  39. package/dist/cjs/persona/memory-pipeline.js +69 -0
  40. package/dist/cjs/persona.d.ts +66 -171
  41. package/dist/cjs/persona.d.ts.map +1 -1
  42. package/dist/cjs/persona.js +64 -617
  43. package/dist/cjs/shared/appraisal.d.ts +26 -0
  44. package/dist/cjs/shared/appraisal.d.ts.map +1 -0
  45. package/dist/cjs/shared/appraisal.js +45 -0
  46. package/dist/cjs/shared/client-factory.d.ts +23 -0
  47. package/dist/cjs/shared/client-factory.d.ts.map +1 -0
  48. package/dist/cjs/shared/client-factory.js +48 -0
  49. package/dist/cjs/shared/errors.d.ts +21 -0
  50. package/dist/cjs/shared/errors.d.ts.map +1 -0
  51. package/dist/cjs/shared/errors.js +29 -0
  52. package/dist/cjs/world/client.d.ts +5 -12
  53. package/dist/cjs/world/client.d.ts.map +1 -1
  54. package/dist/cjs/world/client.js +10 -37
  55. package/dist/cjs/world/errors.d.ts +1 -8
  56. package/dist/cjs/world/errors.d.ts.map +1 -1
  57. package/dist/cjs/world/errors.js +2 -12
  58. package/dist/cjs/world/index.d.ts +5 -5
  59. package/dist/cjs/world/index.d.ts.map +1 -1
  60. package/dist/cjs/world/index.js +4 -4
  61. package/dist/cjs/world/types.d.ts +10 -8
  62. package/dist/cjs/world/types.d.ts.map +1 -1
  63. package/dist/{esm/world/village.d.ts → cjs/world/world-domain.d.ts} +25 -25
  64. package/dist/cjs/world/world-domain.d.ts.map +1 -0
  65. package/dist/cjs/world/{village.js → world-domain.js} +40 -68
  66. package/dist/cjs/world/world-persona.d.ts +12 -10
  67. package/dist/cjs/world/world-persona.d.ts.map +1 -1
  68. package/dist/cjs/world/world-persona.js +16 -31
  69. package/dist/cjs/world/world.d.ts +84 -17
  70. package/dist/cjs/world/world.d.ts.map +1 -1
  71. package/dist/cjs/world/world.js +72 -27
  72. package/dist/esm/api-client.d.ts +2 -12
  73. package/dist/esm/api-client.d.ts.map +1 -1
  74. package/dist/esm/api-client.js +3 -38
  75. package/dist/esm/errors.d.ts +1 -16
  76. package/dist/esm/errors.d.ts.map +1 -1
  77. package/dist/esm/errors.js +1 -17
  78. package/dist/esm/events/types.d.ts +14 -21
  79. package/dist/esm/events/types.d.ts.map +1 -1
  80. package/dist/esm/events/types.js +0 -11
  81. package/dist/esm/index.d.ts +28 -48
  82. package/dist/esm/index.d.ts.map +1 -1
  83. package/dist/esm/index.js +26 -38
  84. package/dist/esm/llm/resolve.d.ts +4 -22
  85. package/dist/esm/llm/resolve.d.ts.map +1 -1
  86. package/dist/esm/llm/resolve.js +20 -8
  87. package/dist/esm/llm/vercel-ai/adapter.d.ts +4 -10
  88. package/dist/esm/llm/vercel-ai/adapter.d.ts.map +1 -1
  89. package/dist/esm/llm/vercel-ai/adapter.js +6 -119
  90. package/dist/esm/llm/vercel-ai/config.d.ts +8 -5
  91. package/dist/esm/llm/vercel-ai/config.d.ts.map +1 -1
  92. package/dist/esm/memory/in-memory.d.ts +14 -37
  93. package/dist/esm/memory/in-memory.d.ts.map +1 -1
  94. package/dist/esm/memory/in-memory.js +20 -83
  95. package/dist/esm/memory/recall.d.ts +10 -21
  96. package/dist/esm/memory/recall.d.ts.map +1 -1
  97. package/dist/esm/memory/recall.js +12 -91
  98. package/dist/esm/memory/types.d.ts +46 -186
  99. package/dist/esm/memory/types.d.ts.map +1 -1
  100. package/dist/esm/memory/types.js +1 -9
  101. package/dist/esm/persona/chat-orchestrator.d.ts +46 -0
  102. package/dist/esm/persona/chat-orchestrator.d.ts.map +1 -0
  103. package/dist/esm/persona/chat-orchestrator.js +204 -0
  104. package/dist/esm/persona/event-emitter.d.ts +7 -0
  105. package/dist/esm/persona/event-emitter.d.ts.map +1 -0
  106. package/dist/esm/persona/event-emitter.js +50 -0
  107. package/dist/esm/persona/memory-pipeline.d.ts +26 -0
  108. package/dist/esm/persona/memory-pipeline.d.ts.map +1 -0
  109. package/dist/esm/persona/memory-pipeline.js +65 -0
  110. package/dist/esm/persona.d.ts +66 -171
  111. package/dist/esm/persona.d.ts.map +1 -1
  112. package/dist/esm/persona.js +64 -617
  113. package/dist/esm/shared/appraisal.d.ts +26 -0
  114. package/dist/esm/shared/appraisal.d.ts.map +1 -0
  115. package/dist/esm/shared/appraisal.js +40 -0
  116. package/dist/esm/shared/client-factory.d.ts +23 -0
  117. package/dist/esm/shared/client-factory.d.ts.map +1 -0
  118. package/dist/esm/shared/client-factory.js +41 -0
  119. package/dist/esm/shared/errors.d.ts +21 -0
  120. package/dist/esm/shared/errors.d.ts.map +1 -0
  121. package/dist/esm/shared/errors.js +24 -0
  122. package/dist/esm/world/client.d.ts +5 -12
  123. package/dist/esm/world/client.d.ts.map +1 -1
  124. package/dist/esm/world/client.js +9 -33
  125. package/dist/esm/world/errors.d.ts +1 -8
  126. package/dist/esm/world/errors.d.ts.map +1 -1
  127. package/dist/esm/world/errors.js +1 -11
  128. package/dist/esm/world/index.d.ts +5 -5
  129. package/dist/esm/world/index.d.ts.map +1 -1
  130. package/dist/esm/world/index.js +2 -2
  131. package/dist/esm/world/types.d.ts +10 -8
  132. package/dist/esm/world/types.d.ts.map +1 -1
  133. package/dist/{cjs/world/village.d.ts → esm/world/world-domain.d.ts} +25 -25
  134. package/dist/esm/world/world-domain.d.ts.map +1 -0
  135. package/dist/esm/world/{village.js → world-domain.js} +38 -66
  136. package/dist/esm/world/world-persona.d.ts +12 -10
  137. package/dist/esm/world/world-persona.d.ts.map +1 -1
  138. package/dist/esm/world/world-persona.js +16 -31
  139. package/dist/esm/world/world.d.ts +84 -17
  140. package/dist/esm/world/world.d.ts.map +1 -1
  141. package/dist/esm/world/world.js +70 -25
  142. package/package.json +4 -101
  143. package/dist/cjs/embedding/cloudflare.d.ts +0 -15
  144. package/dist/cjs/embedding/cloudflare.d.ts.map +0 -1
  145. package/dist/cjs/embedding/cloudflare.js +0 -16
  146. package/dist/cjs/embedding/cohere.d.ts +0 -8
  147. package/dist/cjs/embedding/cohere.d.ts.map +0 -1
  148. package/dist/cjs/embedding/cohere.js +0 -31
  149. package/dist/cjs/embedding/index.d.ts +0 -9
  150. package/dist/cjs/embedding/index.d.ts.map +0 -1
  151. package/dist/cjs/embedding/index.js +0 -11
  152. package/dist/cjs/embedding/local.d.ts +0 -6
  153. package/dist/cjs/embedding/local.d.ts.map +0 -1
  154. package/dist/cjs/embedding/local.js +0 -28
  155. package/dist/cjs/embedding/openai.d.ts +0 -9
  156. package/dist/cjs/embedding/openai.d.ts.map +0 -1
  157. package/dist/cjs/embedding/openai.js +0 -26
  158. package/dist/cjs/events/console.d.ts +0 -25
  159. package/dist/cjs/events/console.d.ts.map +0 -1
  160. package/dist/cjs/events/console.js +0 -41
  161. package/dist/cjs/events/webhook.d.ts +0 -30
  162. package/dist/cjs/events/webhook.d.ts.map +0 -1
  163. package/dist/cjs/events/webhook.js +0 -79
  164. package/dist/cjs/memory/cloudflare/index.d.ts +0 -3
  165. package/dist/cjs/memory/cloudflare/index.d.ts.map +0 -1
  166. package/dist/cjs/memory/cloudflare/index.js +0 -5
  167. package/dist/cjs/memory/cloudflare/vectorize.d.ts +0 -62
  168. package/dist/cjs/memory/cloudflare/vectorize.d.ts.map +0 -1
  169. package/dist/cjs/memory/cloudflare/vectorize.js +0 -55
  170. package/dist/cjs/memory/in-memory-semantic.d.ts +0 -16
  171. package/dist/cjs/memory/in-memory-semantic.d.ts.map +0 -1
  172. package/dist/cjs/memory/in-memory-semantic.js +0 -57
  173. package/dist/cjs/memory/pinecone/index.d.ts +0 -7
  174. package/dist/cjs/memory/pinecone/index.d.ts.map +0 -1
  175. package/dist/cjs/memory/pinecone/index.js +0 -8
  176. package/dist/cjs/memory/pinecone/memory-adapter.d.ts +0 -62
  177. package/dist/cjs/memory/pinecone/memory-adapter.d.ts.map +0 -1
  178. package/dist/cjs/memory/pinecone/memory-adapter.js +0 -220
  179. package/dist/cjs/memory/pinecone/semantic.d.ts +0 -44
  180. package/dist/cjs/memory/pinecone/semantic.d.ts.map +0 -1
  181. package/dist/cjs/memory/pinecone/semantic.js +0 -90
  182. package/dist/cjs/memory/sqlite/index.d.ts +0 -3
  183. package/dist/cjs/memory/sqlite/index.d.ts.map +0 -1
  184. package/dist/cjs/memory/sqlite/index.js +0 -5
  185. package/dist/cjs/memory/sqlite/memory-adapter.d.ts +0 -58
  186. package/dist/cjs/memory/sqlite/memory-adapter.d.ts.map +0 -1
  187. package/dist/cjs/memory/sqlite/memory-adapter.js +0 -336
  188. package/dist/cjs/memory/sqlite/schema.d.ts +0 -4
  189. package/dist/cjs/memory/sqlite/schema.d.ts.map +0 -1
  190. package/dist/cjs/memory/sqlite/schema.js +0 -91
  191. package/dist/cjs/memory/supabase/index.d.ts +0 -7
  192. package/dist/cjs/memory/supabase/index.d.ts.map +0 -1
  193. package/dist/cjs/memory/supabase/index.js +0 -8
  194. package/dist/cjs/memory/supabase/memory-adapter.d.ts +0 -67
  195. package/dist/cjs/memory/supabase/memory-adapter.d.ts.map +0 -1
  196. package/dist/cjs/memory/supabase/memory-adapter.js +0 -335
  197. package/dist/cjs/memory/supabase/semantic.d.ts +0 -44
  198. package/dist/cjs/memory/supabase/semantic.d.ts.map +0 -1
  199. package/dist/cjs/memory/supabase/semantic.js +0 -72
  200. package/dist/cjs/world/village.d.ts.map +0 -1
  201. package/dist/esm/embedding/cloudflare.d.ts +0 -15
  202. package/dist/esm/embedding/cloudflare.d.ts.map +0 -1
  203. package/dist/esm/embedding/cloudflare.js +0 -13
  204. package/dist/esm/embedding/cohere.d.ts +0 -8
  205. package/dist/esm/embedding/cohere.d.ts.map +0 -1
  206. package/dist/esm/embedding/cohere.js +0 -28
  207. package/dist/esm/embedding/index.d.ts +0 -9
  208. package/dist/esm/embedding/index.d.ts.map +0 -1
  209. package/dist/esm/embedding/index.js +0 -4
  210. package/dist/esm/embedding/local.d.ts +0 -6
  211. package/dist/esm/embedding/local.d.ts.map +0 -1
  212. package/dist/esm/embedding/local.js +0 -25
  213. package/dist/esm/embedding/openai.d.ts +0 -9
  214. package/dist/esm/embedding/openai.d.ts.map +0 -1
  215. package/dist/esm/embedding/openai.js +0 -23
  216. package/dist/esm/events/console.d.ts +0 -25
  217. package/dist/esm/events/console.d.ts.map +0 -1
  218. package/dist/esm/events/console.js +0 -37
  219. package/dist/esm/events/webhook.d.ts +0 -30
  220. package/dist/esm/events/webhook.d.ts.map +0 -1
  221. package/dist/esm/events/webhook.js +0 -75
  222. package/dist/esm/memory/cloudflare/index.d.ts +0 -3
  223. package/dist/esm/memory/cloudflare/index.d.ts.map +0 -1
  224. package/dist/esm/memory/cloudflare/index.js +0 -1
  225. package/dist/esm/memory/cloudflare/vectorize.d.ts +0 -62
  226. package/dist/esm/memory/cloudflare/vectorize.d.ts.map +0 -1
  227. package/dist/esm/memory/cloudflare/vectorize.js +0 -51
  228. package/dist/esm/memory/in-memory-semantic.d.ts +0 -16
  229. package/dist/esm/memory/in-memory-semantic.d.ts.map +0 -1
  230. package/dist/esm/memory/in-memory-semantic.js +0 -53
  231. package/dist/esm/memory/pinecone/index.d.ts +0 -7
  232. package/dist/esm/memory/pinecone/index.d.ts.map +0 -1
  233. package/dist/esm/memory/pinecone/index.js +0 -3
  234. package/dist/esm/memory/pinecone/memory-adapter.d.ts +0 -62
  235. package/dist/esm/memory/pinecone/memory-adapter.d.ts.map +0 -1
  236. package/dist/esm/memory/pinecone/memory-adapter.js +0 -216
  237. package/dist/esm/memory/pinecone/semantic.d.ts +0 -44
  238. package/dist/esm/memory/pinecone/semantic.d.ts.map +0 -1
  239. package/dist/esm/memory/pinecone/semantic.js +0 -86
  240. package/dist/esm/memory/sqlite/index.d.ts +0 -3
  241. package/dist/esm/memory/sqlite/index.d.ts.map +0 -1
  242. package/dist/esm/memory/sqlite/index.js +0 -1
  243. package/dist/esm/memory/sqlite/memory-adapter.d.ts +0 -58
  244. package/dist/esm/memory/sqlite/memory-adapter.d.ts.map +0 -1
  245. package/dist/esm/memory/sqlite/memory-adapter.js +0 -296
  246. package/dist/esm/memory/sqlite/schema.d.ts +0 -4
  247. package/dist/esm/memory/sqlite/schema.d.ts.map +0 -1
  248. package/dist/esm/memory/sqlite/schema.js +0 -86
  249. package/dist/esm/memory/supabase/index.d.ts +0 -7
  250. package/dist/esm/memory/supabase/index.d.ts.map +0 -1
  251. package/dist/esm/memory/supabase/index.js +0 -3
  252. package/dist/esm/memory/supabase/memory-adapter.d.ts +0 -67
  253. package/dist/esm/memory/supabase/memory-adapter.d.ts.map +0 -1
  254. package/dist/esm/memory/supabase/memory-adapter.js +0 -331
  255. package/dist/esm/memory/supabase/semantic.d.ts +0 -44
  256. package/dist/esm/memory/supabase/semantic.d.ts.map +0 -1
  257. package/dist/esm/memory/supabase/semantic.js +0 -68
  258. package/dist/esm/world/village.d.ts.map +0 -1
@@ -0,0 +1,65 @@
1
+ import { emitResponseEvents } from './event-emitter';
2
+ /** Save episode (shared between perceive and chat pipelines). */
3
+ function saveEpisode(deps, response) {
4
+ if (!response.memoryEpisode)
5
+ return;
6
+ if (deps.memoryAdapter) {
7
+ deps.memoryAdapter.saveEpisode(response.memoryEpisode).catch(() => { });
8
+ }
9
+ }
10
+ /** Handle reflection generation (LLM call + save). */
11
+ async function handleReflection(deps, prompt, emotionVad) {
12
+ const reflectionLlm = deps.engineLlm ?? deps.llm;
13
+ if (!reflectionLlm)
14
+ return;
15
+ if (!deps.memoryAdapter)
16
+ return;
17
+ const { text } = await reflectionLlm.generateText({
18
+ system: prompt.system,
19
+ messages: [{ role: 'user', content: prompt.user }],
20
+ });
21
+ const reflection = {
22
+ id: `ref-${Date.now()}`,
23
+ timestamp: Date.now(),
24
+ sourceEntity: deps.personaId,
25
+ content: text,
26
+ trigger: 'interaction',
27
+ emotionSnapshot: emotionVad ?? { V: 0, A: 0, D: 0 },
28
+ };
29
+ if (deps.memoryAdapter.saveReflection) {
30
+ await deps.memoryAdapter.saveReflection(reflection);
31
+ }
32
+ await deps.events?.emit({
33
+ type: 'reflection_generated',
34
+ personaId: deps.personaId,
35
+ timestamp: Date.now(),
36
+ payload: { trigger: 'interaction' },
37
+ });
38
+ }
39
+ /**
40
+ * Post-perceive pipeline: save episode + emit events (no reflection).
41
+ */
42
+ export function postPerceive(deps, response) {
43
+ if (!response.memoryEpisode)
44
+ return;
45
+ saveEpisode(deps, response);
46
+ if (deps.events) {
47
+ emitResponseEvents(deps.events, deps.personaId, response, Date.now()).catch(() => { });
48
+ }
49
+ }
50
+ /**
51
+ * Post-chat pipeline: save episode + reflection + emit events.
52
+ */
53
+ export function postChat(deps, response) {
54
+ const now = Date.now();
55
+ saveEpisode(deps, response);
56
+ // Reflection generation (requires LLM)
57
+ const hasLlm = deps.engineLlm || deps.llm;
58
+ const hasMemory = deps.memoryAdapter;
59
+ if (hasLlm && hasMemory && response.reflectionPrompt) {
60
+ handleReflection(deps, response.reflectionPrompt, response.emotion.vad).catch(() => { });
61
+ }
62
+ if (deps.events) {
63
+ emitResponseEvents(deps.events, deps.personaId, response, now).catch(() => { });
64
+ }
65
+ }
@@ -1,34 +1,28 @@
1
- import type { LLMAdapter } from './llm/adapter';
2
- import type { Message } from './llm/adapter';
1
+ import type { LLMAdapter, Message } from './llm/adapter';
3
2
  import { type LLMInput } from './llm/resolve';
4
- import type { MemoryConfig, MemoryAdapter, RecallLimits } from './memory/types';
3
+ import type { MemoryAdapter, RecallLimits } from './memory/types';
5
4
  import type { EventAdapter } from './events/types';
6
5
  import type { AgentResponse, AppraisalVector, InterlocutorContext, PersonaSnapshot, PersonaConfigData, PerceiveOptions } from './types';
7
6
  /** Configuration for connecting to a standalone persona instance. */
8
7
  export interface MolrooPersonaConfig {
9
- /** Base URL of the molroo API (e.g., 'https://api.molroo.io'). */
10
- baseUrl: string;
8
+ /** Base URL of the molroo API. Defaults to 'https://api.molroo.io'. */
9
+ baseUrl?: string;
11
10
  /** API key for authentication. */
12
11
  apiKey: string;
13
12
  /** Persona instance ID. Set automatically by {@link MolrooPersona.create}. */
14
13
  personaId?: string;
15
14
  /**
16
- * Memory configuration.
15
+ * Memory adapter for advanced memory features.
17
16
  *
18
- * Pass a single `MemoryAdapter` for the simplest setup:
19
- * ```typescript
20
- * memory: new SqliteMemoryAdapter({ dbPath: './memory.db' })
21
- * ```
17
+ * For simple use cases, manage conversation history externally using
18
+ * the `updatedHistory` returned from `chat()`.
22
19
  *
23
- * Or pass a `MemoryConfig` for split-adapter setup:
24
- * ```typescript
25
- * memory: { episodes: adapter, semantic: vectorStore, embedding: embeddingProvider }
26
- * ```
20
+ * For advanced features (semantic search, reflections, emotion-aware storage),
21
+ * implement MemoryAdapter and pass it here.
27
22
  */
28
- memory?: MemoryAdapter | MemoryConfig;
23
+ memory?: MemoryAdapter;
29
24
  /**
30
- * Recall limits when using a single MemoryAdapter.
31
- * Ignored when memory is a MemoryConfig (use `memory.recall` instead).
25
+ * Recall limits when using a MemoryAdapter.
32
26
  */
33
27
  recall?: RecallLimits;
34
28
  /**
@@ -85,35 +79,19 @@ export interface PersonaChatResult {
85
79
  response: AgentResponse;
86
80
  /** Persona state at the time of interaction (if available). */
87
81
  state?: PersonaState;
82
+ /** Updated conversation history including this turn. Manage externally for simple mode. */
83
+ updatedHistory: Message[];
88
84
  }
89
85
  /**
90
86
  * SDK client for interacting with a standalone molroo persona instance.
91
87
  *
92
- * @example
93
- * ```typescript
94
- * // Single adapter (recommended)
95
- * const persona = await MolrooPersona.create(
96
- * { baseUrl: 'https://api.molroo.io', apiKey: 'key', llm,
97
- * memory: new SqliteMemoryAdapter({ dbPath: './memory.db' }) },
98
- * { identity: { name: 'Sera' }, personality: { O: 0.8, C: 0.6, E: 0.7 } },
99
- * );
100
- *
101
- * // Split adapters (advanced)
102
- * const persona = await MolrooPersona.create(
103
- * { baseUrl: 'https://api.molroo.io', apiKey: 'key', llm,
104
- * memory: { episodes: episodeStore, semantic: vectorStore, embedding: embedProvider } },
105
- * { identity: { name: 'Sera' }, personality: { O: 0.8, C: 0.6, E: 0.7 } },
106
- * );
107
- * ```
88
+ * @deprecated Use {@link Molroo} from './world/world' instead.
108
89
  */
109
90
  export declare class MolrooPersona {
110
91
  private client;
111
92
  private llm;
112
93
  private engineLlm;
113
94
  private memoryAdapter;
114
- private episodeStore;
115
- private semanticStore;
116
- private embeddingProvider;
117
95
  private memoryRecallConfig;
118
96
  private events;
119
97
  private _personaId;
@@ -121,206 +99,123 @@ export declare class MolrooPersona {
121
99
  llm?: LLMAdapter;
122
100
  engineLlm?: LLMAdapter;
123
101
  });
124
- /** Unique identifier for this persona instance. */
125
102
  get id(): string;
126
- /** Unique identifier for this persona instance (alias for {@link id}). */
127
103
  get personaId(): string;
128
104
  /**
129
- * Create a new persona on the molroo API and return a connected instance.
105
+ * Create a new persona from a natural language description.
106
+ * Uses LLM to generate HEXACO personality configuration.
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const sera = await MolrooPersona.create(
111
+ * { apiKey: 'mk_...', llm: openaiAdapter },
112
+ * 'A kind and curious barista who remembers customer names'
113
+ * );
114
+ * ```
115
+ */
116
+ static create(config: {
117
+ baseUrl?: string;
118
+ apiKey: string;
119
+ llm: LLMInput;
120
+ engineLlm?: LLMInput;
121
+ memory?: MemoryAdapter;
122
+ recall?: RecallLimits;
123
+ events?: EventAdapter;
124
+ }, description: string): Promise<MolrooPersona>;
125
+ /**
126
+ * Create a new persona with explicit configuration.
130
127
  *
131
- * @param config - API connection config and optional LLM adapter.
132
- * Accepts a full {@link LLMAdapter} or a shorthand config object:
133
- * ```typescript
134
- * llm: { provider: 'openai', apiKey: '...' }
135
- * ```
136
- * @param personaConfig - Persona identity, personality, and goals.
137
- * @returns A connected MolrooPersona instance.
128
+ * @example
129
+ * ```typescript
130
+ * const sera = await MolrooPersona.create(
131
+ * { apiKey: 'mk_...' },
132
+ * { identity: { name: 'Sera' }, personality: { O: 0.8, C: 0.6, E: 0.7, A: 0.5, N: 0.3, H: 0.6 } }
133
+ * );
134
+ * ```
138
135
  */
139
136
  static create(config: {
140
- baseUrl: string;
137
+ baseUrl?: string;
141
138
  apiKey: string;
142
139
  llm?: LLMInput;
143
140
  engineLlm?: LLMInput;
144
- memory?: MemoryAdapter | MemoryConfig;
141
+ memory?: MemoryAdapter;
145
142
  recall?: RecallLimits;
146
143
  events?: EventAdapter;
147
144
  }, personaConfig: PersonaConfigData): Promise<MolrooPersona>;
148
145
  /**
149
- * Connect to an existing persona by ID.
150
- *
151
- * Verifies the persona exists and fetches its configuration.
152
- *
153
- * @param config - API connection config and optional LLM adapter.
154
- * Accepts a full {@link LLMAdapter} or a shorthand config object:
155
- * ```typescript
156
- * llm: { provider: 'openai', apiKey: '...' }
157
- * ```
158
- * @param personaId - The ID of the persona to connect to.
159
- * @returns A connected MolrooPersona instance.
146
+ * Internal implementation for creating persona with resolved config.
147
+ * @internal
148
+ */
149
+ private static createWithConfig;
150
+ /**
151
+ * Generate a persona from description and create it.
152
+ * @deprecated Use `create(config, description)` instead.
160
153
  */
154
+ static generate(config: {
155
+ baseUrl?: string;
156
+ apiKey: string;
157
+ llm: LLMInput;
158
+ engineLlm?: LLMInput;
159
+ memory?: MemoryAdapter;
160
+ recall?: RecallLimits;
161
+ events?: EventAdapter;
162
+ }, description: string): Promise<MolrooPersona>;
161
163
  static connect(config: {
162
- baseUrl: string;
164
+ baseUrl?: string;
163
165
  apiKey: string;
164
166
  llm?: LLMInput;
165
167
  engineLlm?: LLMInput;
166
- memory?: MemoryAdapter | MemoryConfig;
168
+ memory?: MemoryAdapter;
167
169
  recall?: RecallLimits;
168
170
  events?: EventAdapter;
169
171
  }, personaId: string): Promise<MolrooPersona>;
170
- /**
171
- * List all personas for the authenticated tenant.
172
- *
173
- * @param config - API connection config (baseUrl + apiKey).
174
- * @returns List of persona summaries with optional pagination cursor.
175
- */
176
172
  static listPersonas(config: {
177
- baseUrl: string;
173
+ baseUrl?: string;
178
174
  apiKey: string;
179
175
  }): Promise<{
180
176
  personas: PersonaSummary[];
181
177
  nextCursor?: string;
182
178
  }>;
183
- /**
184
- * Send a message to the persona and get an emotion-processed response.
185
- *
186
- * Internally converts the SDK-friendly options into the API wire format
187
- * (`{ event: PerceiveEvent, context?: PerceiveContext }`).
188
- */
189
179
  perceive(message: string, options?: PerceiveOptions): Promise<AgentResponse>;
190
- /**
191
- * Fire a non-chat event and process through the emotion engine.
192
- *
193
- * Unlike chat(), this does not involve LLM generation — it directly
194
- * sends an event to the perceive endpoint with a required appraisal vector.
195
- * The resulting episode is saved to memory and can be recalled during chat().
196
- *
197
- * @param type - Event type identifier (e.g. 'attack', 'gift', 'rest').
198
- * @param description - Human-readable event description (used as message context).
199
- * @param options - Must include `appraisal`. Optionally `from`, `stimulus`, `payload`.
200
- * @returns Emotion engine response.
201
- *
202
- * @example
203
- * ```typescript
204
- * await persona.event('attack', 'goblin attacks with sword', {
205
- * from: 'goblin',
206
- * appraisal: {
207
- * goal_relevance: 0.8,
208
- * goal_congruence: -0.9,
209
- * expectedness: 0.3,
210
- * controllability: 0.4,
211
- * agency: -0.6,
212
- * norm_compatibility: -0.5,
213
- * },
214
- * });
215
- * ```
216
- */
217
180
  event(type: string, description: string, options: Omit<PerceiveOptions, 'type'> & {
218
181
  appraisal: AppraisalVector;
219
182
  }): Promise<AgentResponse>;
220
- /**
221
- * High-level chat: getState → LLM generate → perceive with appraisal.
222
- *
223
- * 1. Calls `getPromptContext()` for the server-assembled system prompt
224
- * 2. Recalls episodic + semantic memories from client-side stores
225
- * 3. Sends to LLM adapter for text generation + appraisal
226
- * 4. Sends the appraisal to the API via `perceive()` for emotion computation
227
- * 5. Runs post-chat pipeline (episode save, reflection, events)
228
- *
229
- * Requires {@link LLMAdapter}. Without one, use {@link perceive} directly
230
- * for emotion-only interaction.
231
- */
232
183
  chat(message: string, options?: {
233
- /** Source entity — a name string or structured {@link InterlocutorContext} with description/extensions injected into the system prompt. Default: `'user'`. */
234
184
  from?: string | InterlocutorContext;
235
185
  history?: Message[];
236
186
  consumerSuffix?: string;
237
- /** Optional callback invoked when the LLM requests a tool call during generation. */
238
187
  onToolCall?: (call: {
239
188
  name: string;
240
189
  args: Record<string, unknown>;
241
190
  result: unknown;
242
191
  }) => void;
243
192
  }): Promise<PersonaChatResult>;
244
- /**
245
- * Advance persona time by the specified number of seconds.
246
- *
247
- * @param seconds - Number of seconds to advance.
248
- * @returns Any pending events that were processed.
249
- */
250
193
  tick(seconds: number): Promise<{
251
194
  pendingEvents?: unknown[];
252
195
  }>;
253
- /**
254
- * Directly set the persona's emotion state in VAD space.
255
- *
256
- * @param vad - Partial VAD values to set (V: -1..1, A: 0..1, D: -1..1).
257
- */
258
196
  setEmotion(vad: Partial<{
259
197
  V: number;
260
198
  A: number;
261
199
  D: number;
262
200
  }>): Promise<void>;
263
- /**
264
- * Get the current emotional and psychological state of the persona.
265
- *
266
- * @returns Current emotion, mood, somatic, and narrative state.
267
- */
268
201
  getState(): Promise<PersonaState>;
269
- /**
270
- * Get a full snapshot of the persona's internal state.
271
- *
272
- * @returns Complete persona snapshot for backup/restore.
273
- */
274
202
  getSnapshot(): Promise<PersonaSnapshot>;
275
- /**
276
- * Restore the persona's internal state from a snapshot.
277
- *
278
- * @param snapshot - The snapshot to restore.
279
- */
280
203
  putSnapshot(snapshot: PersonaSnapshot): Promise<void>;
281
- /**
282
- * Patch the persona's configuration (identity, personality, goals).
283
- *
284
- * @param updates - Configuration updates to apply.
285
- */
286
204
  patch(updates: {
287
205
  config?: PersonaConfigData;
288
206
  }): Promise<void>;
289
- /** Soft-delete this persona. Can be restored with {@link restore}. */
290
207
  destroy(): Promise<void>;
291
- /** Restore a previously soft-deleted persona. */
292
208
  restore(): Promise<void>;
293
- /** Whether memory is available (either single adapter or split stores). */
294
- private get hasMemory();
295
- /**
296
- * Lightweight pipeline for perceive()-only interactions (non-chat events).
297
- * Saves the episode and emits events, but skips LLM reflection.
298
- */
299
- private postPerceivePipeline;
300
- private postChatPipeline;
301
- private handleReflection;
302
- private emitResponseEvents;
303
- private buildAppraisalHint;
304
- private requireLLM;
305
209
  getPromptContext(consumerSuffix?: string, sourceEntity?: string): Promise<{
306
210
  systemPrompt: string;
307
211
  personaPrompt: Record<string, unknown>;
308
212
  tools?: Array<Record<string, unknown>>;
309
213
  }>;
310
- /**
311
- * Search persona's episodic memory via the API.
312
- * Used internally by the tool-use loop.
313
- */
314
214
  searchMemory(query: string, options?: {
315
215
  topK?: number;
316
216
  minImportance?: number;
317
217
  }): Promise<Array<Record<string, unknown>>>;
318
- /**
319
- * LLM generation loop with tool-use support for standalone persona.
320
- * Uses LLMResponseWithToolsSchema which allows the LLM to request
321
- * memory searches via the search_memory field. Capped at 3 iterations.
322
- */
323
- private generateWithToolLoop;
324
- private buildContextBlock;
218
+ private get memoryPipelineDeps();
219
+ private requireLLM;
325
220
  }
326
221
  //# 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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"}