@molroo-io/sdk 0.9.0 → 0.9.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.
Files changed (63) hide show
  1. package/dist/cjs/events/types.d.ts +1 -1
  2. package/dist/cjs/events/types.d.ts.map +1 -1
  3. package/dist/cjs/index.d.ts +1 -1
  4. package/dist/cjs/index.d.ts.map +1 -1
  5. package/dist/cjs/llm/resolve.d.ts.map +1 -1
  6. package/dist/cjs/llm/resolve.js +2 -1
  7. package/dist/cjs/llm/schema.d.ts +0 -114
  8. package/dist/cjs/llm/schema.d.ts.map +1 -1
  9. package/dist/cjs/llm/schema.js +1 -44
  10. package/dist/cjs/persona/chat-orchestrator.d.ts +18 -3
  11. package/dist/cjs/persona/chat-orchestrator.d.ts.map +1 -1
  12. package/dist/cjs/persona/chat-orchestrator.js +29 -109
  13. package/dist/cjs/persona/conversation.d.ts +22 -1
  14. package/dist/cjs/persona/conversation.d.ts.map +1 -1
  15. package/dist/cjs/persona/conversation.js +2 -0
  16. package/dist/cjs/persona/memory-pipeline.d.ts.map +1 -1
  17. package/dist/cjs/persona/memory-pipeline.js +30 -4
  18. package/dist/cjs/persona.d.ts +270 -36
  19. package/dist/cjs/persona.d.ts.map +1 -1
  20. package/dist/cjs/persona.js +238 -19
  21. package/dist/cjs/shared/errors.d.ts +5 -1
  22. package/dist/cjs/shared/errors.d.ts.map +1 -1
  23. package/dist/cjs/shared/errors.js +4 -0
  24. package/dist/cjs/types.d.ts +18 -0
  25. package/dist/cjs/types.d.ts.map +1 -1
  26. package/dist/cjs/world/world-persona.d.ts +20 -5
  27. package/dist/cjs/world/world-persona.d.ts.map +1 -1
  28. package/dist/cjs/world/world-persona.js +21 -5
  29. package/dist/cjs/world/world.d.ts +23 -3
  30. package/dist/cjs/world/world.d.ts.map +1 -1
  31. package/dist/cjs/world/world.js +24 -1
  32. package/dist/esm/events/types.d.ts +1 -1
  33. package/dist/esm/events/types.d.ts.map +1 -1
  34. package/dist/esm/index.d.ts +1 -1
  35. package/dist/esm/index.d.ts.map +1 -1
  36. package/dist/esm/llm/resolve.d.ts.map +1 -1
  37. package/dist/esm/llm/resolve.js +2 -1
  38. package/dist/esm/llm/schema.d.ts +0 -114
  39. package/dist/esm/llm/schema.d.ts.map +1 -1
  40. package/dist/esm/llm/schema.js +0 -43
  41. package/dist/esm/persona/chat-orchestrator.d.ts +18 -3
  42. package/dist/esm/persona/chat-orchestrator.d.ts.map +1 -1
  43. package/dist/esm/persona/chat-orchestrator.js +29 -109
  44. package/dist/esm/persona/conversation.d.ts +22 -1
  45. package/dist/esm/persona/conversation.d.ts.map +1 -1
  46. package/dist/esm/persona/conversation.js +2 -0
  47. package/dist/esm/persona/memory-pipeline.d.ts.map +1 -1
  48. package/dist/esm/persona/memory-pipeline.js +30 -4
  49. package/dist/esm/persona.d.ts +270 -36
  50. package/dist/esm/persona.d.ts.map +1 -1
  51. package/dist/esm/persona.js +237 -19
  52. package/dist/esm/shared/errors.d.ts +5 -1
  53. package/dist/esm/shared/errors.d.ts.map +1 -1
  54. package/dist/esm/shared/errors.js +4 -0
  55. package/dist/esm/types.d.ts +18 -0
  56. package/dist/esm/types.d.ts.map +1 -1
  57. package/dist/esm/world/world-persona.d.ts +20 -5
  58. package/dist/esm/world/world-persona.d.ts.map +1 -1
  59. package/dist/esm/world/world-persona.js +21 -5
  60. package/dist/esm/world/world.d.ts +23 -3
  61. package/dist/esm/world/world.d.ts.map +1 -1
  62. package/dist/esm/world/world.js +24 -1
  63. package/package.json +1 -1
@@ -2,6 +2,7 @@
2
2
  import { createWorldClient, unwrap } from './client';
3
3
  import { World } from './world-domain';
4
4
  import { MolrooPersona } from '../persona';
5
+ import { MolrooApiError, MolrooErrorCode } from '../shared/errors';
5
6
  // ---------------------------------------------------------------------------
6
7
  // Internal helper
7
8
  // ---------------------------------------------------------------------------
@@ -53,7 +54,7 @@ export class Molroo {
53
54
  if (typeof input === 'string') {
54
55
  // Description path - requires llm
55
56
  if (!options?.llm) {
56
- throw new Error('LLM adapter is required when using description string');
57
+ throw new MolrooApiError('LLM adapter is required when using description string', MolrooErrorCode.LLM_REQUIRED, 400);
57
58
  }
58
59
  return MolrooPersona.create({ baseUrl: this._baseUrl, apiKey: this._apiKey, ...options, llm: options.llm }, input);
59
60
  }
@@ -62,6 +63,28 @@ export class Molroo {
62
63
  }
63
64
  /**
64
65
  * Connect to an existing persona by ID.
66
+ *
67
+ * LLM adapter is optional. Without it, {@link MolrooPersona.chat | chat()} will throw,
68
+ * but emotion/state APIs ({@link MolrooPersona.hear | hear()},
69
+ * {@link MolrooPersona.getState | getState()},
70
+ * {@link MolrooPersona.getEngineState | getEngineState()},
71
+ * {@link MolrooPersona.perceive | perceive()},
72
+ * {@link MolrooPersona.tick | tick()}) work without LLM.
73
+ *
74
+ * This is the recommended pattern for hybrid apps that build their own prompts
75
+ * and only need SDK for emotion/psychological state computation.
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * // Hybrid: emotion engine only (no LLM needed)
80
+ * const persona = await molroo.connectPersona('persona_abc123');
81
+ * const state = await persona.getEngineState(elapsed);
82
+ * const emotion = await persona.hear(userMessage, 'Alice');
83
+ *
84
+ * // Full: SDK handles everything (LLM required)
85
+ * const persona = await molroo.connectPersona('persona_abc123', { llm });
86
+ * const result = await persona.chat('Hello!');
87
+ * ```
65
88
  */
66
89
  async connectPersona(personaId, options) {
67
90
  return MolrooPersona.connect({ baseUrl: this._baseUrl, apiKey: this._apiKey, ...options }, personaId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molroo-io/sdk",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Unified SDK for molroo emotion engine — persona, world, LLM integration",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",