@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.
- package/README.md +102 -210
- 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 +28 -48
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +31 -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 +66 -171
- package/dist/cjs/persona.d.ts.map +1 -1
- package/dist/cjs/persona.js +64 -617
- 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 +5 -12
- package/dist/cjs/world/client.d.ts.map +1 -1
- package/dist/cjs/world/client.js +10 -37
- 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 +5 -5
- package/dist/cjs/world/index.d.ts.map +1 -1
- package/dist/cjs/world/index.js +4 -4
- package/dist/cjs/world/types.d.ts +10 -8
- package/dist/cjs/world/types.d.ts.map +1 -1
- package/dist/{esm/world/village.d.ts → cjs/world/world-domain.d.ts} +25 -25
- package/dist/cjs/world/world-domain.d.ts.map +1 -0
- package/dist/cjs/world/{village.js → world-domain.js} +40 -68
- package/dist/cjs/world/world-persona.d.ts +12 -10
- package/dist/cjs/world/world-persona.d.ts.map +1 -1
- package/dist/cjs/world/world-persona.js +16 -31
- package/dist/cjs/world/world.d.ts +84 -17
- package/dist/cjs/world/world.d.ts.map +1 -1
- package/dist/cjs/world/world.js +72 -27
- 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 +28 -48
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +26 -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 +66 -171
- package/dist/esm/persona.d.ts.map +1 -1
- package/dist/esm/persona.js +64 -617
- 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 +5 -12
- package/dist/esm/world/client.d.ts.map +1 -1
- package/dist/esm/world/client.js +9 -33
- 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 +5 -5
- package/dist/esm/world/index.d.ts.map +1 -1
- package/dist/esm/world/index.js +2 -2
- package/dist/esm/world/types.d.ts +10 -8
- package/dist/esm/world/types.d.ts.map +1 -1
- package/dist/{cjs/world/village.d.ts → esm/world/world-domain.d.ts} +25 -25
- package/dist/esm/world/world-domain.d.ts.map +1 -0
- package/dist/esm/world/{village.js → world-domain.js} +38 -66
- package/dist/esm/world/world-persona.d.ts +12 -10
- package/dist/esm/world/world-persona.d.ts.map +1 -1
- package/dist/esm/world/world-persona.js +16 -31
- package/dist/esm/world/world.d.ts +84 -17
- package/dist/esm/world/world.d.ts.map +1 -1
- package/dist/esm/world/world.js +70 -25
- 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/cjs/world/village.d.ts.map +0 -1
- 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
- package/dist/esm/world/village.d.ts.map +0 -1
|
@@ -1,49 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
// INFO: @F001 Domain class wrapping
|
|
3
|
+
exports.World = void 0;
|
|
4
|
+
// INFO: @F001 Domain class wrapping World API — see plan step 3
|
|
5
5
|
const client_1 = require("./client");
|
|
6
6
|
const world_persona_1 = require("./world-persona");
|
|
7
|
+
const appraisal_1 = require("../shared/appraisal");
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
|
-
//
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
function toApiAppraisal(v) {
|
|
11
|
-
return {
|
|
12
|
-
goal_relevance: v.goalRelevance,
|
|
13
|
-
goal_congruence: v.goalCongruence,
|
|
14
|
-
expectedness: v.expectedness,
|
|
15
|
-
controllability: v.controllability,
|
|
16
|
-
agency: v.agency,
|
|
17
|
-
norm_compatibility: v.normCompatibility,
|
|
18
|
-
internal_standards: v.internalStandards,
|
|
19
|
-
adjustment_potential: v.adjustmentPotential,
|
|
20
|
-
urgency: v.urgency,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function fromApiAppraisal(raw) {
|
|
24
|
-
return {
|
|
25
|
-
goalRelevance: raw.goal_relevance,
|
|
26
|
-
goalCongruence: raw.goal_congruence,
|
|
27
|
-
expectedness: raw.expectedness,
|
|
28
|
-
controllability: raw.controllability,
|
|
29
|
-
agency: raw.agency,
|
|
30
|
-
normCompatibility: raw.norm_compatibility,
|
|
31
|
-
internalStandards: raw.internal_standards,
|
|
32
|
-
adjustmentPotential: raw.adjustment_potential,
|
|
33
|
-
urgency: raw.urgency,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
// ---------------------------------------------------------------------------
|
|
37
|
-
// Village class
|
|
9
|
+
// World class (domain)
|
|
38
10
|
// ---------------------------------------------------------------------------
|
|
39
11
|
/**
|
|
40
|
-
* Represents a
|
|
12
|
+
* Represents a world and exposes domain methods for personas, actions,
|
|
41
13
|
* relationships, interactions, and events.
|
|
42
14
|
*
|
|
43
|
-
* Instances are obtained via {@link
|
|
15
|
+
* Instances are obtained via {@link Molroo.createWorld} or {@link Molroo.getWorld}.
|
|
44
16
|
*/
|
|
45
|
-
class
|
|
46
|
-
/** @internal — use
|
|
17
|
+
class World {
|
|
18
|
+
/** @internal — use Molroo.createWorld / Molroo.getWorld instead. */
|
|
47
19
|
constructor(client, data) {
|
|
48
20
|
this._client = client;
|
|
49
21
|
this._data = { ...data };
|
|
@@ -64,16 +36,16 @@ class Village {
|
|
|
64
36
|
get responseRule() {
|
|
65
37
|
return this._data.responseRule;
|
|
66
38
|
}
|
|
67
|
-
/** Returns a readonly snapshot of the
|
|
39
|
+
/** Returns a readonly snapshot of the world data. */
|
|
68
40
|
get data() {
|
|
69
41
|
return this._data;
|
|
70
42
|
}
|
|
71
|
-
// --
|
|
43
|
+
// -- World CRUD ---------------------------------------------------------
|
|
72
44
|
/**
|
|
73
|
-
* Update
|
|
45
|
+
* Update world properties. Applies an optimistic local update on success.
|
|
74
46
|
*/
|
|
75
47
|
async update(options) {
|
|
76
|
-
await this._client.PATCH('/
|
|
48
|
+
await this._client.PATCH('/worlds/{id}', {
|
|
77
49
|
params: { path: { id: this.id } },
|
|
78
50
|
body: {
|
|
79
51
|
name: options.name,
|
|
@@ -92,9 +64,9 @@ class Village {
|
|
|
92
64
|
if (options.responseRule !== undefined)
|
|
93
65
|
this._data.responseRule = options.responseRule;
|
|
94
66
|
}
|
|
95
|
-
/** Soft-delete this
|
|
67
|
+
/** Soft-delete this world. */
|
|
96
68
|
async delete() {
|
|
97
|
-
await this._client.DELETE('/
|
|
69
|
+
await this._client.DELETE('/worlds/{id}', {
|
|
98
70
|
params: { path: { id: this.id } },
|
|
99
71
|
});
|
|
100
72
|
}
|
|
@@ -124,7 +96,7 @@ class Village {
|
|
|
124
96
|
};
|
|
125
97
|
}
|
|
126
98
|
}
|
|
127
|
-
const { data } = await this._client.POST('/
|
|
99
|
+
const { data } = await this._client.POST('/worlds/{id}/personas', {
|
|
128
100
|
params: { path: { id: this.id } },
|
|
129
101
|
body: body,
|
|
130
102
|
});
|
|
@@ -135,9 +107,9 @@ class Village {
|
|
|
135
107
|
createdAt: raw.created_at,
|
|
136
108
|
};
|
|
137
109
|
}
|
|
138
|
-
/** List all personas in this
|
|
110
|
+
/** List all personas in this world. */
|
|
139
111
|
async listPersonas() {
|
|
140
|
-
const { data } = await this._client.GET('/
|
|
112
|
+
const { data } = await this._client.GET('/worlds/{id}/personas', {
|
|
141
113
|
params: { path: { id: this.id } },
|
|
142
114
|
});
|
|
143
115
|
const raw = (0, client_1.unwrap)(data);
|
|
@@ -145,14 +117,14 @@ class Village {
|
|
|
145
117
|
}
|
|
146
118
|
/** Get a single persona by ID. */
|
|
147
119
|
async getPersona(personaId) {
|
|
148
|
-
const { data } = await this._client.GET('/
|
|
120
|
+
const { data } = await this._client.GET('/worlds/{id}/personas/{pid}', {
|
|
149
121
|
params: { path: { id: this.id, pid: personaId } },
|
|
150
122
|
});
|
|
151
123
|
return (0, client_1.unwrap)(data);
|
|
152
124
|
}
|
|
153
|
-
/** Remove a persona from this
|
|
125
|
+
/** Remove a persona from this world. */
|
|
154
126
|
async removePersona(personaId) {
|
|
155
|
-
await this._client.DELETE('/
|
|
127
|
+
await this._client.DELETE('/worlds/{id}/personas/{pid}', {
|
|
156
128
|
params: { path: { id: this.id, pid: personaId } },
|
|
157
129
|
});
|
|
158
130
|
}
|
|
@@ -165,7 +137,7 @@ class Village {
|
|
|
165
137
|
*
|
|
166
138
|
* @example
|
|
167
139
|
* ```typescript
|
|
168
|
-
* const mina =
|
|
140
|
+
* const mina = world.persona('mina', { llm: adapter });
|
|
169
141
|
* const r = await mina.react('flirt', {
|
|
170
142
|
* actor: 'yongjun',
|
|
171
143
|
* prompt: '거실에서 용준이 민아에게 윙크했다.',
|
|
@@ -176,42 +148,42 @@ class Village {
|
|
|
176
148
|
return new world_persona_1.WorldPersona(this._client, this.id, personaId, options);
|
|
177
149
|
}
|
|
178
150
|
// -- Actions --------------------------------------------------------------
|
|
179
|
-
/** Create a custom action in this
|
|
151
|
+
/** Create a custom action in this world. */
|
|
180
152
|
async createAction(options) {
|
|
181
|
-
const { data } = await this._client.POST('/
|
|
153
|
+
const { data } = await this._client.POST('/worlds/{id}/actions', {
|
|
182
154
|
params: { path: { id: this.id } },
|
|
183
155
|
body: {
|
|
184
156
|
name: options.name,
|
|
185
157
|
description: options.description,
|
|
186
|
-
appraisal_vector:
|
|
158
|
+
appraisal_vector: (0, appraisal_1.toWireAppraisal)(options.appraisalVector),
|
|
187
159
|
},
|
|
188
160
|
});
|
|
189
161
|
const raw = (0, client_1.unwrap)(data);
|
|
190
162
|
return { id: raw.id, name: raw.name };
|
|
191
163
|
}
|
|
192
|
-
/** List all actions (defaults + custom) in this
|
|
164
|
+
/** List all actions (defaults + custom) in this world. */
|
|
193
165
|
async listActions() {
|
|
194
|
-
const { data } = await this._client.GET('/
|
|
166
|
+
const { data } = await this._client.GET('/worlds/{id}/actions', {
|
|
195
167
|
params: { path: { id: this.id } },
|
|
196
168
|
});
|
|
197
169
|
const raw = (0, client_1.unwrap)(data);
|
|
198
170
|
return (raw.actions ?? []).map((a) => ({
|
|
199
171
|
name: a.name,
|
|
200
172
|
description: a.description,
|
|
201
|
-
appraisalVector:
|
|
173
|
+
appraisalVector: (0, appraisal_1.fromWireAppraisal)(a.appraisal_vector),
|
|
202
174
|
isDefault: a.is_default,
|
|
203
175
|
}));
|
|
204
176
|
}
|
|
205
|
-
/** Delete a custom action from this
|
|
177
|
+
/** Delete a custom action from this world. */
|
|
206
178
|
async deleteAction(actionId) {
|
|
207
|
-
await this._client.DELETE('/
|
|
179
|
+
await this._client.DELETE('/worlds/{id}/actions/{aid}', {
|
|
208
180
|
params: { path: { id: this.id, aid: actionId } },
|
|
209
181
|
});
|
|
210
182
|
}
|
|
211
183
|
// -- Relationships --------------------------------------------------------
|
|
212
|
-
/** Set (upsert) a relationship in this
|
|
184
|
+
/** Set (upsert) a relationship in this world. */
|
|
213
185
|
async setRelationship(options) {
|
|
214
|
-
await this._client.PUT('/
|
|
186
|
+
await this._client.PUT('/worlds/{id}/relationships', {
|
|
215
187
|
params: { path: { id: this.id } },
|
|
216
188
|
body: {
|
|
217
189
|
source_type: options.source.type,
|
|
@@ -225,9 +197,9 @@ class Village {
|
|
|
225
197
|
},
|
|
226
198
|
});
|
|
227
199
|
}
|
|
228
|
-
/** List all relationships in this
|
|
200
|
+
/** List all relationships in this world. */
|
|
229
201
|
async listRelationships() {
|
|
230
|
-
const { data } = await this._client.GET('/
|
|
202
|
+
const { data } = await this._client.GET('/worlds/{id}/relationships', {
|
|
231
203
|
params: { path: { id: this.id } },
|
|
232
204
|
});
|
|
233
205
|
const raw = (0, client_1.unwrap)(data);
|
|
@@ -235,21 +207,21 @@ class Village {
|
|
|
235
207
|
}
|
|
236
208
|
/** Delete a relationship by ID. */
|
|
237
209
|
async deleteRelationship(relationshipId) {
|
|
238
|
-
await this._client.DELETE('/
|
|
210
|
+
await this._client.DELETE('/worlds/{id}/relationships/{rid}', {
|
|
239
211
|
params: { path: { id: this.id, rid: relationshipId } },
|
|
240
212
|
});
|
|
241
213
|
}
|
|
242
214
|
// -- Interaction ----------------------------------------------------------
|
|
243
|
-
/** Execute an interaction in this
|
|
215
|
+
/** Execute an interaction in this world. */
|
|
244
216
|
async interact(options) {
|
|
245
|
-
const { data } = await this._client.POST('/
|
|
217
|
+
const { data } = await this._client.POST('/worlds/{id}/interact', {
|
|
246
218
|
params: { path: { id: this.id } },
|
|
247
219
|
body: {
|
|
248
220
|
target_persona_id: options.target,
|
|
249
221
|
action_name: options.action,
|
|
250
222
|
action_label: options.actionLabel,
|
|
251
223
|
stimulus_description: options.stimulusDescription,
|
|
252
|
-
appraisal_vector: options.appraisal ?
|
|
224
|
+
appraisal_vector: options.appraisal ? (0, appraisal_1.toWireAppraisal)(options.appraisal) : undefined,
|
|
253
225
|
actor_id: options.actor,
|
|
254
226
|
actor_type: options.actorType,
|
|
255
227
|
},
|
|
@@ -257,9 +229,9 @@ class Village {
|
|
|
257
229
|
return (0, client_1.unwrap)(data);
|
|
258
230
|
}
|
|
259
231
|
// -- Events ---------------------------------------------------------------
|
|
260
|
-
/** Retrieve the event log for this
|
|
232
|
+
/** Retrieve the event log for this world. */
|
|
261
233
|
async getEvents(options) {
|
|
262
|
-
const { data } = await this._client.GET('/
|
|
234
|
+
const { data } = await this._client.GET('/worlds/{id}/events', {
|
|
263
235
|
params: {
|
|
264
236
|
path: { id: this.id },
|
|
265
237
|
query: {
|
|
@@ -275,4 +247,4 @@ class Village {
|
|
|
275
247
|
};
|
|
276
248
|
}
|
|
277
249
|
}
|
|
278
|
-
exports.
|
|
250
|
+
exports.World = World;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* WorldPersona — a persona handle within a
|
|
2
|
+
* WorldPersona — a persona handle within a world.
|
|
3
3
|
*
|
|
4
4
|
* "누가 말하는가? 페르소나가 말한다."
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* 제공하되, 내부적으로 World API 엔드포인트를 사용한다.
|
|
9
9
|
*/
|
|
10
10
|
import { type ApiClient } from './client';
|
|
11
|
-
import type {
|
|
11
|
+
import type { Appraisal } from './types';
|
|
12
12
|
import type { LLMAdapter } from '../llm/adapter';
|
|
13
13
|
export type LLMMessage = {
|
|
14
14
|
role: 'user' | 'assistant' | 'system';
|
|
@@ -35,7 +35,7 @@ export interface PersonaEmotion {
|
|
|
35
35
|
D: number;
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
export interface
|
|
38
|
+
export interface WorldPersonaState {
|
|
39
39
|
emotion: PersonaEmotion;
|
|
40
40
|
mood?: {
|
|
41
41
|
vad: {
|
|
@@ -46,6 +46,8 @@ export interface PersonaState {
|
|
|
46
46
|
};
|
|
47
47
|
somatic?: string[];
|
|
48
48
|
}
|
|
49
|
+
/** @deprecated Use {@link WorldPersonaState} instead. */
|
|
50
|
+
export type PersonaState = WorldPersonaState;
|
|
49
51
|
export interface PromptContext {
|
|
50
52
|
systemPrompt: string;
|
|
51
53
|
promptContext: Record<string, string>;
|
|
@@ -67,7 +69,7 @@ export interface PersonaDetail {
|
|
|
67
69
|
goals?: unknown[];
|
|
68
70
|
[key: string]: unknown;
|
|
69
71
|
};
|
|
70
|
-
state:
|
|
72
|
+
state: WorldPersonaState | null;
|
|
71
73
|
}
|
|
72
74
|
export interface ReactOptions {
|
|
73
75
|
/** Who is performing the action (e.g. 'yongjun'). */
|
|
@@ -100,18 +102,18 @@ export interface WorldPersonaOptions {
|
|
|
100
102
|
}
|
|
101
103
|
export declare class WorldPersona {
|
|
102
104
|
private readonly _client;
|
|
103
|
-
private readonly
|
|
105
|
+
private readonly _worldId;
|
|
104
106
|
private readonly _personaId;
|
|
105
107
|
private readonly _llm?;
|
|
106
108
|
/** Cached persona detail (config + state). Invalidated on interact(). */
|
|
107
109
|
private _detailCache;
|
|
108
|
-
/** @internal — use
|
|
109
|
-
constructor(client: ApiClient,
|
|
110
|
+
/** @internal — use World.persona() instead. */
|
|
111
|
+
constructor(client: ApiClient, worldId: string, personaId: string, options?: WorldPersonaOptions);
|
|
110
112
|
get id(): string;
|
|
111
113
|
/** Fetch full persona detail (config + state). Cached per-instance. */
|
|
112
114
|
getDetail(): Promise<PersonaDetail>;
|
|
113
115
|
/** Get current emotion/mood/somatic state. */
|
|
114
|
-
getState(): Promise<
|
|
116
|
+
getState(): Promise<WorldPersonaState>;
|
|
115
117
|
/** Get speaking style from persona config (identity.speakingStyle). */
|
|
116
118
|
getSpeakingStyle(): Promise<string | undefined>;
|
|
117
119
|
/** Get LLM system prompt assembled from all persona subsystems + world context. */
|
|
@@ -123,7 +125,7 @@ export declare class WorldPersona {
|
|
|
123
125
|
interact(action: string, options?: {
|
|
124
126
|
actor?: string;
|
|
125
127
|
actorType?: 'user' | 'persona';
|
|
126
|
-
appraisal?:
|
|
128
|
+
appraisal?: Appraisal;
|
|
127
129
|
stimulusDescription?: string;
|
|
128
130
|
}): Promise<{
|
|
129
131
|
emotion: PersonaEmotion;
|
|
@@ -155,7 +157,7 @@ export declare class WorldPersona {
|
|
|
155
157
|
*
|
|
156
158
|
* @example
|
|
157
159
|
* ```typescript
|
|
158
|
-
* const mina =
|
|
160
|
+
* const mina = world.persona('mina', { llm: adapter });
|
|
159
161
|
*
|
|
160
162
|
* // Plain text reaction
|
|
161
163
|
* const r1 = await mina.react('flirt', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-persona.d.ts","sourceRoot":"","sources":["../../../src/world/world-persona.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"world-persona.d.ts","sourceRoot":"","sources":["../../../src/world/world-persona.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WorldPersona = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* WorldPersona — a persona handle within a
|
|
5
|
+
* WorldPersona — a persona handle within a world.
|
|
6
6
|
*
|
|
7
7
|
* "누가 말하는가? 페르소나가 말한다."
|
|
8
8
|
*
|
|
@@ -11,29 +11,14 @@ 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
|
-
/** @internal — use
|
|
32
|
-
constructor(client,
|
|
16
|
+
/** @internal — use World.persona() instead. */
|
|
17
|
+
constructor(client, worldId, personaId, options) {
|
|
33
18
|
/** Cached persona detail (config + state). Invalidated on interact(). */
|
|
34
19
|
this._detailCache = null;
|
|
35
20
|
this._client = client;
|
|
36
|
-
this.
|
|
21
|
+
this._worldId = worldId;
|
|
37
22
|
this._personaId = personaId;
|
|
38
23
|
this._llm = options?.llm;
|
|
39
24
|
}
|
|
@@ -45,8 +30,8 @@ class WorldPersona {
|
|
|
45
30
|
async getDetail() {
|
|
46
31
|
if (this._detailCache)
|
|
47
32
|
return this._detailCache;
|
|
48
|
-
const { data } = await this._client.GET('/
|
|
49
|
-
params: { path: { id: this.
|
|
33
|
+
const { data } = await this._client.GET('/worlds/{id}/personas/{pid}', {
|
|
34
|
+
params: { path: { id: this._worldId, pid: this._personaId } },
|
|
50
35
|
});
|
|
51
36
|
const raw = (0, client_1.unwrap)(data);
|
|
52
37
|
const config = typeof raw.config === 'string' ? JSON.parse(raw.config) : raw.config;
|
|
@@ -71,8 +56,8 @@ class WorldPersona {
|
|
|
71
56
|
}
|
|
72
57
|
/** Get LLM system prompt assembled from all persona subsystems + world context. */
|
|
73
58
|
async getPromptContext(sourceEntity) {
|
|
74
|
-
const { data } = await this._client.POST('/
|
|
75
|
-
params: { path: { id: this.
|
|
59
|
+
const { data } = await this._client.POST('/worlds/{id}/personas/{pid}/prompt-context', {
|
|
60
|
+
params: { path: { id: this._worldId, pid: this._personaId } },
|
|
76
61
|
body: sourceEntity ? { sourceEntity } : {},
|
|
77
62
|
});
|
|
78
63
|
return (0, client_1.unwrap)(data);
|
|
@@ -84,14 +69,14 @@ class WorldPersona {
|
|
|
84
69
|
*/
|
|
85
70
|
async interact(action, options) {
|
|
86
71
|
this._detailCache = null; // invalidate
|
|
87
|
-
const { data } = await this._client.POST('/
|
|
88
|
-
params: { path: { id: this.
|
|
72
|
+
const { data } = await this._client.POST('/worlds/{id}/interact', {
|
|
73
|
+
params: { path: { id: this._worldId } },
|
|
89
74
|
body: {
|
|
90
75
|
target_persona_id: this._personaId,
|
|
91
76
|
action_name: action || undefined,
|
|
92
77
|
action_label: action || undefined,
|
|
93
78
|
stimulus_description: options?.stimulusDescription,
|
|
94
|
-
appraisal_vector: options?.appraisal ?
|
|
79
|
+
appraisal_vector: options?.appraisal ? (0, appraisal_1.toWireAppraisal)(options.appraisal) : undefined,
|
|
95
80
|
actor_id: options?.actor,
|
|
96
81
|
actor_type: options?.actorType,
|
|
97
82
|
},
|
|
@@ -110,8 +95,8 @@ class WorldPersona {
|
|
|
110
95
|
*/
|
|
111
96
|
async tick(seconds) {
|
|
112
97
|
this._detailCache = null; // invalidate — state changes after tick
|
|
113
|
-
const { data } = await this._client.POST('/
|
|
114
|
-
params: { path: { id: this.
|
|
98
|
+
const { data } = await this._client.POST('/worlds/{id}/personas/{pid}/tick', {
|
|
99
|
+
params: { path: { id: this._worldId, pid: this._personaId } },
|
|
115
100
|
body: { seconds },
|
|
116
101
|
});
|
|
117
102
|
return (0, client_1.unwrap)(data);
|
|
@@ -125,7 +110,7 @@ class WorldPersona {
|
|
|
125
110
|
*
|
|
126
111
|
* @example
|
|
127
112
|
* ```typescript
|
|
128
|
-
* const mina =
|
|
113
|
+
* const mina = world.persona('mina', { llm: adapter });
|
|
129
114
|
*
|
|
130
115
|
* // Plain text reaction
|
|
131
116
|
* const r1 = await mina.react('flirt', {
|
|
@@ -149,7 +134,7 @@ class WorldPersona {
|
|
|
149
134
|
*/
|
|
150
135
|
async react(action, options) {
|
|
151
136
|
if (!this._llm) {
|
|
152
|
-
throw new Error('WorldPersona.react() requires an LLM adapter. Pass { llm } to
|
|
137
|
+
throw new Error('WorldPersona.react() requires an LLM adapter. Pass { llm } to world.persona().');
|
|
153
138
|
}
|
|
154
139
|
// 1. Interact — emotion engine processes the action
|
|
155
140
|
const interactResult = await this.interact(action, {
|
|
@@ -1,40 +1,107 @@
|
|
|
1
1
|
import { type ApiClient } from './client';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
2
|
+
import { World } from './world-domain';
|
|
3
|
+
import { MolrooPersona } from '../persona';
|
|
4
|
+
import type { PersonaSummary } from '../persona';
|
|
5
|
+
import type { PersonaConfigData } from '../types';
|
|
6
|
+
import type { LLMInput } from '../llm/resolve';
|
|
7
|
+
import type { MemoryAdapter, RecallLimits } from '../memory/types';
|
|
8
|
+
import type { EventAdapter } from '../events/types';
|
|
9
|
+
import type { WorldData, CreateWorldOptions, PaginationOptions } from './types';
|
|
10
|
+
export interface MolrooOptions {
|
|
5
11
|
apiKey: string;
|
|
6
12
|
baseUrl?: string;
|
|
7
13
|
}
|
|
14
|
+
/** Per-persona options passed when creating/connecting personas via the Molroo client. */
|
|
15
|
+
export interface PersonaOptions {
|
|
16
|
+
llm?: LLMInput;
|
|
17
|
+
engineLlm?: LLMInput;
|
|
18
|
+
memory?: MemoryAdapter;
|
|
19
|
+
recall?: RecallLimits;
|
|
20
|
+
events?: EventAdapter;
|
|
21
|
+
}
|
|
8
22
|
/**
|
|
9
|
-
*
|
|
23
|
+
* Unified entry point for the molroo SDK.
|
|
10
24
|
*
|
|
11
25
|
* @example
|
|
12
26
|
* ```typescript
|
|
13
|
-
* import {
|
|
27
|
+
* import { Molroo } from '@molroo-io/sdk/world';
|
|
28
|
+
*
|
|
29
|
+
* const molroo = new Molroo({ apiKey: 'mk_live_...' });
|
|
14
30
|
*
|
|
15
|
-
*
|
|
16
|
-
* const
|
|
17
|
-
*
|
|
31
|
+
* // Persona
|
|
32
|
+
* const sera = await molroo.createPersona({ identity: { name: 'Sera' }, ... }, { llm });
|
|
33
|
+
* await sera.chat('Hello!');
|
|
34
|
+
*
|
|
35
|
+
* // World
|
|
36
|
+
* const world = await molroo.createWorld({ name: 'Cafe' });
|
|
37
|
+
* await world.addPersona({ personaConfigId: sera.id, config: {...} });
|
|
18
38
|
* ```
|
|
19
39
|
*/
|
|
20
|
-
export declare class
|
|
40
|
+
export declare class Molroo {
|
|
21
41
|
/** @internal — exposed for advanced use only. */
|
|
22
42
|
readonly _client: ApiClient;
|
|
23
|
-
|
|
43
|
+
private readonly _baseUrl;
|
|
44
|
+
private readonly _apiKey;
|
|
45
|
+
constructor(options: MolrooOptions);
|
|
46
|
+
/**
|
|
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
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
createPersona(personaConfig: PersonaConfigData, options?: PersonaOptions): Promise<MolrooPersona>;
|
|
73
|
+
/**
|
|
74
|
+
* Connect to an existing persona by ID.
|
|
75
|
+
*/
|
|
76
|
+
connectPersona(personaId: string, options?: PersonaOptions): Promise<MolrooPersona>;
|
|
77
|
+
/**
|
|
78
|
+
* Generate a persona from a natural-language description.
|
|
79
|
+
* @deprecated Use `createPersona(description, options)` instead.
|
|
80
|
+
*/
|
|
81
|
+
generatePersona(description: string, options: PersonaOptions & {
|
|
82
|
+
llm: LLMInput;
|
|
83
|
+
}): Promise<MolrooPersona>;
|
|
84
|
+
/**
|
|
85
|
+
* List all personas for the authenticated tenant.
|
|
86
|
+
*/
|
|
87
|
+
listPersonas(): Promise<{
|
|
88
|
+
personas: PersonaSummary[];
|
|
89
|
+
nextCursor?: string;
|
|
90
|
+
}>;
|
|
24
91
|
/**
|
|
25
|
-
* Create a new
|
|
92
|
+
* Create a new world and return a {@link World} instance.
|
|
26
93
|
*/
|
|
27
|
-
|
|
94
|
+
createWorld(options: CreateWorldOptions): Promise<World>;
|
|
28
95
|
/**
|
|
29
|
-
* Fetch an existing
|
|
96
|
+
* Fetch an existing world by ID and return a {@link World} instance.
|
|
30
97
|
*/
|
|
31
|
-
|
|
98
|
+
getWorld(id: string): Promise<World>;
|
|
32
99
|
/**
|
|
33
|
-
* List
|
|
100
|
+
* List worlds. Returns raw data objects (not World instances) for
|
|
34
101
|
* efficiency when only metadata is needed.
|
|
35
102
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
103
|
+
listWorlds(options?: PaginationOptions): Promise<{
|
|
104
|
+
worlds: WorldData[];
|
|
38
105
|
nextCursor: string | null;
|
|
39
106
|
}>;
|
|
40
107
|
}
|
|
@@ -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,OAAO,EAAE,MAAM,
|
|
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"}
|