@sharpee/character 0.9.106 → 0.9.107
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/apply.d.ts +29 -7
- package/apply.d.ts.map +1 -1
- package/apply.js +15 -7
- package/apply.js.map +1 -1
- package/character-builder.d.ts +67 -4
- package/character-builder.d.ts.map +1 -1
- package/character-builder.js +116 -7
- package/character-builder.js.map +1 -1
- package/conversation/acl.d.ts +62 -0
- package/conversation/acl.d.ts.map +1 -0
- package/conversation/acl.js +117 -0
- package/conversation/acl.js.map +1 -0
- package/conversation/builder.d.ts +247 -0
- package/conversation/builder.d.ts.map +1 -0
- package/conversation/builder.js +324 -0
- package/conversation/builder.js.map +1 -0
- package/conversation/constraint-evaluator.d.ts +147 -0
- package/conversation/constraint-evaluator.d.ts.map +1 -0
- package/conversation/constraint-evaluator.js +247 -0
- package/conversation/constraint-evaluator.js.map +1 -0
- package/conversation/conversation-messages.d.ts +56 -0
- package/conversation/conversation-messages.d.ts.map +1 -0
- package/conversation/conversation-messages.js +69 -0
- package/conversation/conversation-messages.js.map +1 -0
- package/conversation/dialogue-extension.d.ts +87 -0
- package/conversation/dialogue-extension.d.ts.map +1 -0
- package/conversation/dialogue-extension.js +302 -0
- package/conversation/dialogue-extension.js.map +1 -0
- package/conversation/dialogue-types.d.ts +71 -0
- package/conversation/dialogue-types.d.ts.map +1 -0
- package/conversation/dialogue-types.js +13 -0
- package/conversation/dialogue-types.js.map +1 -0
- package/conversation/index.d.ts +19 -0
- package/conversation/index.d.ts.map +1 -0
- package/conversation/index.js +37 -0
- package/conversation/index.js.map +1 -0
- package/conversation/lifecycle.d.ts +212 -0
- package/conversation/lifecycle.d.ts.map +1 -0
- package/conversation/lifecycle.js +348 -0
- package/conversation/lifecycle.js.map +1 -0
- package/conversation/response-types.d.ts +98 -0
- package/conversation/response-types.d.ts.map +1 -0
- package/conversation/response-types.js +30 -0
- package/conversation/response-types.js.map +1 -0
- package/conversation/topic-registry.d.ts +130 -0
- package/conversation/topic-registry.d.ts.map +1 -0
- package/conversation/topic-registry.js +187 -0
- package/conversation/topic-registry.js.map +1 -0
- package/goals/builder.d.ts +135 -0
- package/goals/builder.d.ts.map +1 -0
- package/goals/builder.js +193 -0
- package/goals/builder.js.map +1 -0
- package/goals/goal-activation.d.ts +99 -0
- package/goals/goal-activation.d.ts.map +1 -0
- package/goals/goal-activation.js +212 -0
- package/goals/goal-activation.js.map +1 -0
- package/goals/goal-types.d.ts +138 -0
- package/goals/goal-types.d.ts.map +1 -0
- package/goals/goal-types.js +20 -0
- package/goals/goal-types.js.map +1 -0
- package/goals/index.d.ts +15 -0
- package/goals/index.d.ts.map +1 -0
- package/goals/index.js +24 -0
- package/goals/index.js.map +1 -0
- package/goals/pathfinding.d.ts +67 -0
- package/goals/pathfinding.d.ts.map +1 -0
- package/goals/pathfinding.js +134 -0
- package/goals/pathfinding.js.map +1 -0
- package/goals/step-evaluator.d.ts +52 -0
- package/goals/step-evaluator.d.ts.map +1 -0
- package/goals/step-evaluator.js +153 -0
- package/goals/step-evaluator.js.map +1 -0
- package/index.d.ts +6 -1
- package/index.d.ts.map +1 -1
- package/index.js +60 -1
- package/index.js.map +1 -1
- package/influence/builder.d.ts +136 -0
- package/influence/builder.d.ts.map +1 -0
- package/influence/builder.js +198 -0
- package/influence/builder.js.map +1 -0
- package/influence/index.d.ts +16 -0
- package/influence/index.d.ts.map +1 -0
- package/influence/index.js +25 -0
- package/influence/index.js.map +1 -0
- package/influence/influence-duration.d.ts +82 -0
- package/influence/influence-duration.d.ts.map +1 -0
- package/influence/influence-duration.js +148 -0
- package/influence/influence-duration.js.map +1 -0
- package/influence/influence-evaluator.d.ts +55 -0
- package/influence/influence-evaluator.d.ts.map +1 -0
- package/influence/influence-evaluator.js +183 -0
- package/influence/influence-evaluator.js.map +1 -0
- package/influence/influence-messages.d.ts +30 -0
- package/influence/influence-messages.d.ts.map +1 -0
- package/influence/influence-messages.js +40 -0
- package/influence/influence-messages.js.map +1 -0
- package/influence/influence-types.d.ts +123 -0
- package/influence/influence-types.d.ts.map +1 -0
- package/influence/influence-types.js +12 -0
- package/influence/influence-types.js.map +1 -0
- package/influence/pc-influence.d.ts +38 -0
- package/influence/pc-influence.d.ts.map +1 -0
- package/influence/pc-influence.js +56 -0
- package/influence/pc-influence.js.map +1 -0
- package/package.json +4 -3
- package/propagation/builder.d.ts +47 -0
- package/propagation/builder.d.ts.map +1 -0
- package/propagation/builder.js +46 -0
- package/propagation/builder.js.map +1 -0
- package/propagation/fact-transfer.d.ts +47 -0
- package/propagation/fact-transfer.d.ts.map +1 -0
- package/propagation/fact-transfer.js +76 -0
- package/propagation/fact-transfer.js.map +1 -0
- package/propagation/index.d.ts +16 -0
- package/propagation/index.d.ts.map +1 -0
- package/propagation/index.js +28 -0
- package/propagation/index.js.map +1 -0
- package/propagation/propagation-evaluator.d.ts +53 -0
- package/propagation/propagation-evaluator.d.ts.map +1 -0
- package/propagation/propagation-evaluator.js +231 -0
- package/propagation/propagation-evaluator.js.map +1 -0
- package/propagation/propagation-messages.d.ts +30 -0
- package/propagation/propagation-messages.d.ts.map +1 -0
- package/propagation/propagation-messages.js +37 -0
- package/propagation/propagation-messages.js.map +1 -0
- package/propagation/propagation-types.d.ts +100 -0
- package/propagation/propagation-types.d.ts.map +1 -0
- package/propagation/propagation-types.js +68 -0
- package/propagation/propagation-types.js.map +1 -0
- package/propagation/visibility.d.ts +46 -0
- package/propagation/visibility.d.ts.map +1 -0
- package/propagation/visibility.js +79 -0
- package/propagation/visibility.js.map +1 -0
- package/tick-phases.d.ts +93 -0
- package/tick-phases.d.ts.map +1 -0
- package/tick-phases.js +433 -0
- package/tick-phases.js.map +1 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CharacterModelDialogue — DialogueExtension implementation (ADR-142)
|
|
4
|
+
*
|
|
5
|
+
* Implements the DialogueExtension interface (ADR-102) using the
|
|
6
|
+
* character model conversation system. Wires topic resolution,
|
|
7
|
+
* constraint evaluation, conversation lifecycle, and the ACL
|
|
8
|
+
* into a single handler for stdlib's ASK/TELL/SAY/TALK TO actions.
|
|
9
|
+
*
|
|
10
|
+
* Public interface: CharacterModelDialogue.
|
|
11
|
+
* Owner context: @sharpee/character / conversation
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.CharacterModelDialogue = void 0;
|
|
15
|
+
const topic_registry_1 = require("./topic-registry");
|
|
16
|
+
const constraint_evaluator_1 = require("./constraint-evaluator");
|
|
17
|
+
const lifecycle_1 = require("./lifecycle");
|
|
18
|
+
const acl_1 = require("./acl");
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// CharacterModelDialogue
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
/**
|
|
23
|
+
* DialogueExtension implementation backed by the character model.
|
|
24
|
+
*
|
|
25
|
+
* Manages per-NPC topic registries, constraint evaluation, conversation
|
|
26
|
+
* lifecycle, and evidence tracking. One instance per game session.
|
|
27
|
+
*/
|
|
28
|
+
class CharacterModelDialogue {
|
|
29
|
+
/** Per-NPC conversation state. */
|
|
30
|
+
npcs = new Map();
|
|
31
|
+
/** Shared constraint evaluator (owns conversation records and evidence). */
|
|
32
|
+
evaluator = new constraint_evaluator_1.ConstraintEvaluator();
|
|
33
|
+
/** Shared conversation lifecycle (owns active conversation state). */
|
|
34
|
+
lifecycle = new lifecycle_1.ConversationLifecycle();
|
|
35
|
+
/** Get the conversation lifecycle for external access. */
|
|
36
|
+
getLifecycle() {
|
|
37
|
+
return this.lifecycle;
|
|
38
|
+
}
|
|
39
|
+
/** Get the constraint evaluator for external access. */
|
|
40
|
+
getEvaluator() {
|
|
41
|
+
return this.evaluator;
|
|
42
|
+
}
|
|
43
|
+
// =========================================================================
|
|
44
|
+
// NPC registration
|
|
45
|
+
// =========================================================================
|
|
46
|
+
/**
|
|
47
|
+
* Register an NPC with its conversation data and character model trait.
|
|
48
|
+
*
|
|
49
|
+
* @param npcId - The NPC entity ID
|
|
50
|
+
* @param data - Compiled conversation data from ConversationBuilder
|
|
51
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
52
|
+
* @param getTurn - Function that returns the current turn number
|
|
53
|
+
*/
|
|
54
|
+
registerNpc(npcId, data, trait, getTurn) {
|
|
55
|
+
// Build topic registry from authored topics
|
|
56
|
+
const topicRegistry = new topic_registry_1.TopicRegistry();
|
|
57
|
+
for (const topicDef of data.topics) {
|
|
58
|
+
topicRegistry.define(topicDef);
|
|
59
|
+
}
|
|
60
|
+
// Register initiative triggers
|
|
61
|
+
for (const initiative of data.initiatives) {
|
|
62
|
+
this.lifecycle.registerInitiative(npcId, initiative.conditions, initiative.messageId);
|
|
63
|
+
}
|
|
64
|
+
this.npcs.set(npcId, {
|
|
65
|
+
trait,
|
|
66
|
+
topicRegistry,
|
|
67
|
+
responses: data.responses,
|
|
68
|
+
getTurn,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// =========================================================================
|
|
72
|
+
// DialogueExtension implementation
|
|
73
|
+
// =========================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Handle ASK [npc] ABOUT [text].
|
|
76
|
+
* Resolves topic, evaluates constraints, records response, builds intent.
|
|
77
|
+
*/
|
|
78
|
+
handleAsk(npcId, aboutText) {
|
|
79
|
+
const npc = this.npcs.get(npcId);
|
|
80
|
+
if (!npc)
|
|
81
|
+
return { handled: false };
|
|
82
|
+
// Ensure conversation is active
|
|
83
|
+
if (!this.lifecycle.isActive() || this.lifecycle.getActiveNpcId() !== npcId) {
|
|
84
|
+
this.lifecycle.begin(npcId);
|
|
85
|
+
}
|
|
86
|
+
// Resolve topic
|
|
87
|
+
const resolution = npc.topicRegistry.resolve(aboutText, npc.trait);
|
|
88
|
+
if (resolution.type === 'none') {
|
|
89
|
+
return {
|
|
90
|
+
handled: true,
|
|
91
|
+
messageId: 'character.conversation.unknown-topic',
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Get the trigger key — for related topics, use the redirect target
|
|
95
|
+
const topicName = resolution.type === 'exact'
|
|
96
|
+
? resolution.topic.name
|
|
97
|
+
: resolution.via.name;
|
|
98
|
+
const trigger = `asked about ${topicName}`;
|
|
99
|
+
// Get authored responses for this trigger
|
|
100
|
+
const authoredResponses = npc.responses.get(trigger);
|
|
101
|
+
if (!authoredResponses || authoredResponses.length === 0) {
|
|
102
|
+
// Topic exists but no responses authored for it
|
|
103
|
+
if (resolution.type === 'related') {
|
|
104
|
+
return {
|
|
105
|
+
handled: true,
|
|
106
|
+
messageId: 'character.conversation.related-redirect',
|
|
107
|
+
params: { topic: topicName, via: resolution.via.name },
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
handled: true,
|
|
112
|
+
messageId: 'character.conversation.no-response',
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// Select and record response, then apply side effects
|
|
116
|
+
const match = this.selectAndRecordResponse(npc, npcId, topicName, authoredResponses);
|
|
117
|
+
if (!match) {
|
|
118
|
+
return {
|
|
119
|
+
handled: true,
|
|
120
|
+
messageId: 'character.conversation.no-matching-response',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
this.applyResponseSideEffects(npc.trait, match.authoredResponse);
|
|
124
|
+
// Build response intent through ACL
|
|
125
|
+
const context = this.lifecycle.getContext()?.contextLabel;
|
|
126
|
+
const intent = (0, acl_1.buildResponseIntent)(match.selected, topicName, npc.trait, context);
|
|
127
|
+
// Handle related topic redirect framing
|
|
128
|
+
if (resolution.type === 'related') {
|
|
129
|
+
return {
|
|
130
|
+
handled: true,
|
|
131
|
+
messageId: intent.messageId,
|
|
132
|
+
params: {
|
|
133
|
+
...intent.params,
|
|
134
|
+
_redirectedFrom: resolution.via.name,
|
|
135
|
+
},
|
|
136
|
+
responseIntent: intent,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
handled: true,
|
|
141
|
+
messageId: intent.messageId,
|
|
142
|
+
params: intent.params,
|
|
143
|
+
responseIntent: intent,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Handle TELL [npc] ABOUT [text].
|
|
148
|
+
* Confrontation path — the player presents information.
|
|
149
|
+
*/
|
|
150
|
+
handleTell(npcId, aboutText) {
|
|
151
|
+
const npc = this.npcs.get(npcId);
|
|
152
|
+
if (!npc)
|
|
153
|
+
return { handled: false };
|
|
154
|
+
// Ensure conversation is active
|
|
155
|
+
if (!this.lifecycle.isActive() || this.lifecycle.getActiveNpcId() !== npcId) {
|
|
156
|
+
this.lifecycle.begin(npcId);
|
|
157
|
+
}
|
|
158
|
+
// Resolve topic
|
|
159
|
+
const resolution = npc.topicRegistry.resolve(aboutText, npc.trait);
|
|
160
|
+
if (resolution.type === 'none') {
|
|
161
|
+
return {
|
|
162
|
+
handled: true,
|
|
163
|
+
messageId: 'character.conversation.unknown-topic',
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
const topicName = resolution.type === 'exact'
|
|
167
|
+
? resolution.topic.name
|
|
168
|
+
: resolution.via.name;
|
|
169
|
+
const trigger = `told about ${topicName}`;
|
|
170
|
+
const turn = npc.getTurn();
|
|
171
|
+
// Record that the player presented this evidence
|
|
172
|
+
this.evaluator.recordEvidence(npcId, topicName, turn);
|
|
173
|
+
// Get authored responses for the confrontation trigger
|
|
174
|
+
const authoredResponses = npc.responses.get(trigger);
|
|
175
|
+
if (!authoredResponses || authoredResponses.length === 0) {
|
|
176
|
+
return {
|
|
177
|
+
handled: true,
|
|
178
|
+
messageId: 'character.conversation.no-response-to-evidence',
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
// Select and record response, then apply side effects
|
|
182
|
+
const match = this.selectAndRecordResponse(npc, npcId, topicName, authoredResponses);
|
|
183
|
+
if (!match) {
|
|
184
|
+
return {
|
|
185
|
+
handled: true,
|
|
186
|
+
messageId: 'character.conversation.no-matching-response',
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
this.applyResponseSideEffects(npc.trait, match.authoredResponse);
|
|
190
|
+
// Build response intent
|
|
191
|
+
const context = this.lifecycle.getContext()?.contextLabel;
|
|
192
|
+
const intent = (0, acl_1.buildResponseIntent)(match.selected, topicName, npc.trait, context);
|
|
193
|
+
return {
|
|
194
|
+
handled: true,
|
|
195
|
+
messageId: intent.messageId,
|
|
196
|
+
params: intent.params,
|
|
197
|
+
responseIntent: intent,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Handle SAY [text] or SAY [text] TO [npc].
|
|
202
|
+
* Routes free speech through topic resolution.
|
|
203
|
+
*/
|
|
204
|
+
handleSay(npcId, spokenText) {
|
|
205
|
+
if (!npcId)
|
|
206
|
+
return { handled: false };
|
|
207
|
+
// Route through handleAsk — SAY is semantically similar
|
|
208
|
+
return this.handleAsk(npcId, spokenText);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Handle TALK TO [npc].
|
|
212
|
+
* Initiates conversation lifecycle.
|
|
213
|
+
*/
|
|
214
|
+
handleTalkTo(npcId) {
|
|
215
|
+
const npc = this.npcs.get(npcId);
|
|
216
|
+
if (!npc)
|
|
217
|
+
return { handled: false };
|
|
218
|
+
// Begin conversation
|
|
219
|
+
this.lifecycle.begin(npcId);
|
|
220
|
+
// Check for initiative triggers
|
|
221
|
+
const triggers = this.lifecycle.getInitiativeTriggers(npcId);
|
|
222
|
+
for (const trigger of triggers) {
|
|
223
|
+
const allMet = trigger.conditions.every(cond => npc.trait.evaluate(cond));
|
|
224
|
+
if (allMet) {
|
|
225
|
+
return {
|
|
226
|
+
handled: true,
|
|
227
|
+
messageId: trigger.messageId,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// Default greeting
|
|
232
|
+
return {
|
|
233
|
+
handled: true,
|
|
234
|
+
messageId: 'character.conversation.greeting',
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
// =========================================================================
|
|
238
|
+
// Private helpers
|
|
239
|
+
// =========================================================================
|
|
240
|
+
/**
|
|
241
|
+
* Select the best response for a topic and record it in the evaluator.
|
|
242
|
+
*
|
|
243
|
+
* Evaluates constraints across all authored responses, picks the best
|
|
244
|
+
* match, and records the interaction.
|
|
245
|
+
*
|
|
246
|
+
* @param npc - NPC conversation state
|
|
247
|
+
* @param npcId - The NPC entity ID
|
|
248
|
+
* @param topicName - The resolved topic name
|
|
249
|
+
* @param authoredResponses - Authored responses for this trigger
|
|
250
|
+
* @returns The selected candidate and its authored response, or null
|
|
251
|
+
*/
|
|
252
|
+
selectAndRecordResponse(npc, npcId, topicName, authoredResponses) {
|
|
253
|
+
const candidates = authoredResponses.map(r => r.candidate);
|
|
254
|
+
const selected = (0, constraint_evaluator_1.evaluateConstraints)(candidates, npc.trait);
|
|
255
|
+
if (!selected)
|
|
256
|
+
return null;
|
|
257
|
+
const authoredResponse = authoredResponses.find(r => r.candidate === selected);
|
|
258
|
+
const turn = npc.getTurn();
|
|
259
|
+
this.evaluator.recordResponse(npcId, topicName, selected.action, turn);
|
|
260
|
+
return { selected, authoredResponse };
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Apply side effects from a selected authored response: state mutations,
|
|
264
|
+
* conversation context, between-turn overrides, and leave-attempt message.
|
|
265
|
+
*
|
|
266
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
267
|
+
* @param authoredResponse - The selected authored response
|
|
268
|
+
*/
|
|
269
|
+
applyResponseSideEffects(trait, authoredResponse) {
|
|
270
|
+
if (authoredResponse.stateMutations) {
|
|
271
|
+
this.applyStateMutations(trait, authoredResponse.stateMutations);
|
|
272
|
+
}
|
|
273
|
+
if (authoredResponse.contextSettings) {
|
|
274
|
+
const ctx = authoredResponse.contextSettings;
|
|
275
|
+
this.lifecycle.setContext(ctx.label, ctx.intent, ctx.strength, ctx.decayThreshold);
|
|
276
|
+
if (authoredResponse.betweenTurnOverrides) {
|
|
277
|
+
for (const override of authoredResponse.betweenTurnOverrides) {
|
|
278
|
+
this.lifecycle.setBetweenTurnOverride(override.turnNumber, override.messageId);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (authoredResponse.onLeaveAttemptMessage) {
|
|
282
|
+
this.lifecycle.setOnLeaveAttemptMessage(authoredResponse.onLeaveAttemptMessage);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/** Apply state mutations to the NPC's character model trait. */
|
|
287
|
+
applyStateMutations(trait, mutations) {
|
|
288
|
+
if (mutations.threat !== undefined) {
|
|
289
|
+
trait.adjustThreat(mutations.threat);
|
|
290
|
+
}
|
|
291
|
+
if (mutations.mood !== undefined) {
|
|
292
|
+
trait.setMood(mutations.mood);
|
|
293
|
+
}
|
|
294
|
+
if (mutations.disposition) {
|
|
295
|
+
for (const [entityId, word] of Object.entries(mutations.disposition)) {
|
|
296
|
+
trait.setDisposition(entityId, word);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
exports.CharacterModelDialogue = CharacterModelDialogue;
|
|
302
|
+
//# sourceMappingURL=dialogue-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogue-extension.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/character/src/conversation/dialogue-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialogue extension types (ADR-102 / ADR-142)
|
|
3
|
+
*
|
|
4
|
+
* Defines the DialogueExtension interface and DialogueResult type
|
|
5
|
+
* from ADR-102. The character model conversation system (ADR-142)
|
|
6
|
+
* implements this interface via CharacterModelDialogue.
|
|
7
|
+
*
|
|
8
|
+
* Public interface: DialogueExtension, DialogueResult.
|
|
9
|
+
* Owner context: @sharpee/character / conversation
|
|
10
|
+
*/
|
|
11
|
+
import { ResponseIntent } from './response-types';
|
|
12
|
+
/**
|
|
13
|
+
* The result of a dialogue extension handling a conversation action.
|
|
14
|
+
* Contains everything the action needs to produce output.
|
|
15
|
+
*/
|
|
16
|
+
export interface DialogueResult {
|
|
17
|
+
/** Whether the extension handled the input. */
|
|
18
|
+
handled: boolean;
|
|
19
|
+
/** Message ID for the action to emit via the reporting phase. */
|
|
20
|
+
messageId?: string;
|
|
21
|
+
/** Parameters for the language layer message. */
|
|
22
|
+
params?: Record<string, unknown>;
|
|
23
|
+
/** The structured response intent (for systems that need it). */
|
|
24
|
+
responseIntent?: ResponseIntent;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Interface for dialogue extensions (ADR-102).
|
|
28
|
+
*
|
|
29
|
+
* Stdlib conversation actions (ASK, TELL, SAY, TALK TO) delegate
|
|
30
|
+
* to a registered DialogueExtension to produce conversation results.
|
|
31
|
+
* The extension resolves free text to topics, evaluates constraints,
|
|
32
|
+
* and returns structured results.
|
|
33
|
+
*/
|
|
34
|
+
export interface DialogueExtension {
|
|
35
|
+
/**
|
|
36
|
+
* Handle ASK [npc] ABOUT [text].
|
|
37
|
+
* Extension resolves text to topic and selects a response.
|
|
38
|
+
*
|
|
39
|
+
* @param npcId - The NPC entity ID
|
|
40
|
+
* @param aboutText - The raw text after "about"
|
|
41
|
+
* @returns Dialogue result
|
|
42
|
+
*/
|
|
43
|
+
handleAsk(npcId: string, aboutText: string): DialogueResult;
|
|
44
|
+
/**
|
|
45
|
+
* Handle TELL [npc] ABOUT [text].
|
|
46
|
+
* Confrontation path — the player presents information.
|
|
47
|
+
*
|
|
48
|
+
* @param npcId - The NPC entity ID
|
|
49
|
+
* @param aboutText - The raw text after "about"
|
|
50
|
+
* @returns Dialogue result
|
|
51
|
+
*/
|
|
52
|
+
handleTell(npcId: string, aboutText: string): DialogueResult;
|
|
53
|
+
/**
|
|
54
|
+
* Handle SAY [text] or SAY [text] TO [npc].
|
|
55
|
+
* Free speech routed through topic resolution.
|
|
56
|
+
*
|
|
57
|
+
* @param npcId - The NPC entity ID, or undefined for untargeted speech
|
|
58
|
+
* @param spokenText - The raw text
|
|
59
|
+
* @returns Dialogue result
|
|
60
|
+
*/
|
|
61
|
+
handleSay(npcId: string | undefined, spokenText: string): DialogueResult;
|
|
62
|
+
/**
|
|
63
|
+
* Handle TALK TO [npc].
|
|
64
|
+
* Initiates conversation lifecycle and fires initiative triggers.
|
|
65
|
+
*
|
|
66
|
+
* @param npcId - The NPC entity ID
|
|
67
|
+
* @returns Dialogue result
|
|
68
|
+
*/
|
|
69
|
+
handleTalkTo(npcId: string): DialogueResult;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=dialogue-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogue-types.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/conversation/dialogue-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IAEjB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,iEAAiE;IACjE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;IAE5D;;;;;;;OAOG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;IAE7D;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;IAEzE;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;CAC7C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dialogue extension types (ADR-102 / ADR-142)
|
|
4
|
+
*
|
|
5
|
+
* Defines the DialogueExtension interface and DialogueResult type
|
|
6
|
+
* from ADR-102. The character model conversation system (ADR-142)
|
|
7
|
+
* implements this interface via CharacterModelDialogue.
|
|
8
|
+
*
|
|
9
|
+
* Public interface: DialogueExtension, DialogueResult.
|
|
10
|
+
* Owner context: @sharpee/character / conversation
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
//# sourceMappingURL=dialogue-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogue-types.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/character/src/conversation/dialogue-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation system exports (ADR-142)
|
|
3
|
+
*
|
|
4
|
+
* Topic registry, constraint evaluation, and response types
|
|
5
|
+
* for the character model conversation system.
|
|
6
|
+
*
|
|
7
|
+
* Public interface: All re-exported types and classes.
|
|
8
|
+
* Owner context: @sharpee/character / conversation
|
|
9
|
+
*/
|
|
10
|
+
export { type ResponseAction, type ResponseCandidate, type ResponseIntent, type ConversationRecord, type ConversationEntry, type EvidenceRecord, type EvidenceEntry, createConversationRecord, createEvidenceRecord, } from './response-types';
|
|
11
|
+
export { type TopicDef, type TopicResolution, TopicRegistry, } from './topic-registry';
|
|
12
|
+
export { type Contradiction, type ConstraintEvaluatorState, evaluateConstraints, ConstraintEvaluator, } from './constraint-evaluator';
|
|
13
|
+
export { type ConversationIntent, type ConversationStrength, type RedirectResult, type ConversationContext, type ContinuationEntry, type InitiativeTrigger, type ConversationLifecycleState, DEFAULT_DECAY_THRESHOLDS, BETWEEN_TURN_DEFAULTS, ConversationLifecycle, } from './lifecycle';
|
|
14
|
+
export { buildResponseIntent, selectMoodVariant, applyCognitiveColoring, } from './acl';
|
|
15
|
+
export { type DialogueExtension, type DialogueResult, } from './dialogue-types';
|
|
16
|
+
export { type ConversationData, type AuthoredResponse, type ResponseContextSettings, type ResponseStateMutation, type BetweenTurnOverride, type OffscreenScene, type WitnessedScene, type DialogueLine, createConversationData, ConversationBuilder, ResponseChainBuilder, } from './builder';
|
|
17
|
+
export { CharacterModelDialogue, } from './dialogue-extension';
|
|
18
|
+
export { ConversationMessages, type ConversationMessageId, } from './conversation-messages';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/conversation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Conversation system exports (ADR-142)
|
|
4
|
+
*
|
|
5
|
+
* Topic registry, constraint evaluation, and response types
|
|
6
|
+
* for the character model conversation system.
|
|
7
|
+
*
|
|
8
|
+
* Public interface: All re-exported types and classes.
|
|
9
|
+
* Owner context: @sharpee/character / conversation
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConversationMessages = exports.CharacterModelDialogue = exports.ResponseChainBuilder = exports.ConversationBuilder = exports.createConversationData = exports.applyCognitiveColoring = exports.selectMoodVariant = exports.buildResponseIntent = exports.ConversationLifecycle = exports.BETWEEN_TURN_DEFAULTS = exports.DEFAULT_DECAY_THRESHOLDS = exports.ConstraintEvaluator = exports.evaluateConstraints = exports.TopicRegistry = exports.createEvidenceRecord = exports.createConversationRecord = void 0;
|
|
13
|
+
var response_types_1 = require("./response-types");
|
|
14
|
+
Object.defineProperty(exports, "createConversationRecord", { enumerable: true, get: function () { return response_types_1.createConversationRecord; } });
|
|
15
|
+
Object.defineProperty(exports, "createEvidenceRecord", { enumerable: true, get: function () { return response_types_1.createEvidenceRecord; } });
|
|
16
|
+
var topic_registry_1 = require("./topic-registry");
|
|
17
|
+
Object.defineProperty(exports, "TopicRegistry", { enumerable: true, get: function () { return topic_registry_1.TopicRegistry; } });
|
|
18
|
+
var constraint_evaluator_1 = require("./constraint-evaluator");
|
|
19
|
+
Object.defineProperty(exports, "evaluateConstraints", { enumerable: true, get: function () { return constraint_evaluator_1.evaluateConstraints; } });
|
|
20
|
+
Object.defineProperty(exports, "ConstraintEvaluator", { enumerable: true, get: function () { return constraint_evaluator_1.ConstraintEvaluator; } });
|
|
21
|
+
var lifecycle_1 = require("./lifecycle");
|
|
22
|
+
Object.defineProperty(exports, "DEFAULT_DECAY_THRESHOLDS", { enumerable: true, get: function () { return lifecycle_1.DEFAULT_DECAY_THRESHOLDS; } });
|
|
23
|
+
Object.defineProperty(exports, "BETWEEN_TURN_DEFAULTS", { enumerable: true, get: function () { return lifecycle_1.BETWEEN_TURN_DEFAULTS; } });
|
|
24
|
+
Object.defineProperty(exports, "ConversationLifecycle", { enumerable: true, get: function () { return lifecycle_1.ConversationLifecycle; } });
|
|
25
|
+
var acl_1 = require("./acl");
|
|
26
|
+
Object.defineProperty(exports, "buildResponseIntent", { enumerable: true, get: function () { return acl_1.buildResponseIntent; } });
|
|
27
|
+
Object.defineProperty(exports, "selectMoodVariant", { enumerable: true, get: function () { return acl_1.selectMoodVariant; } });
|
|
28
|
+
Object.defineProperty(exports, "applyCognitiveColoring", { enumerable: true, get: function () { return acl_1.applyCognitiveColoring; } });
|
|
29
|
+
var builder_1 = require("./builder");
|
|
30
|
+
Object.defineProperty(exports, "createConversationData", { enumerable: true, get: function () { return builder_1.createConversationData; } });
|
|
31
|
+
Object.defineProperty(exports, "ConversationBuilder", { enumerable: true, get: function () { return builder_1.ConversationBuilder; } });
|
|
32
|
+
Object.defineProperty(exports, "ResponseChainBuilder", { enumerable: true, get: function () { return builder_1.ResponseChainBuilder; } });
|
|
33
|
+
var dialogue_extension_1 = require("./dialogue-extension");
|
|
34
|
+
Object.defineProperty(exports, "CharacterModelDialogue", { enumerable: true, get: function () { return dialogue_extension_1.CharacterModelDialogue; } });
|
|
35
|
+
var conversation_messages_1 = require("./conversation-messages");
|
|
36
|
+
Object.defineProperty(exports, "ConversationMessages", { enumerable: true, get: function () { return conversation_messages_1.ConversationMessages; } });
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/character/src/conversation/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,mDAU0B;AAFxB,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AAGtB,mDAI0B;AADxB,+GAAA,aAAa,OAAA;AAGf,+DAKgC;AAF9B,2HAAA,mBAAmB,OAAA;AACnB,2HAAA,mBAAmB,OAAA;AAGrB,yCAWqB;AAHnB,qHAAA,wBAAwB,OAAA;AACxB,kHAAA,qBAAqB,OAAA;AACrB,kHAAA,qBAAqB,OAAA;AAGvB,6BAIe;AAHb,0GAAA,mBAAmB,OAAA;AACnB,wGAAA,iBAAiB,OAAA;AACjB,6GAAA,sBAAsB,OAAA;AAQxB,qCAYmB;AAHjB,iHAAA,sBAAsB,OAAA;AACtB,8GAAA,mBAAmB,OAAA;AACnB,+GAAA,oBAAoB,OAAA;AAGtB,2DAE8B;AAD5B,4HAAA,sBAAsB,OAAA;AAGxB,iEAGiC;AAF/B,6HAAA,oBAAoB,OAAA"}
|