@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
package/apply.d.ts
CHANGED
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Apply compiled character data to an entity (ADR-141)
|
|
2
|
+
* Apply compiled character data to an entity (ADR-141, 144, 145, 146)
|
|
3
3
|
*
|
|
4
4
|
* Convenience function that creates a CharacterModelTrait from compiled
|
|
5
5
|
* builder output, registers custom predicates, and adds the trait to
|
|
6
|
-
* the entity.
|
|
6
|
+
* the entity. Returns the trait plus any compiled configuration
|
|
7
|
+
* (propagation, goals, movement, influence) for the NPC service.
|
|
7
8
|
*
|
|
8
|
-
* Public interface: applyCharacter.
|
|
9
|
+
* Public interface: applyCharacter, AppliedCharacter.
|
|
9
10
|
* Owner context: @sharpee/character
|
|
10
11
|
*/
|
|
11
12
|
import { IFEntity, CharacterModelTrait } from "../world-model/index";
|
|
12
13
|
import { CompiledCharacter } from './character-builder';
|
|
14
|
+
import { PropagationProfile } from './propagation/propagation-types';
|
|
15
|
+
import { GoalDef, MovementProfile } from './goals/goal-types';
|
|
16
|
+
import { InfluenceDef, ResistanceDef } from './influence/influence-types';
|
|
17
|
+
/**
|
|
18
|
+
* Result of applying a compiled character to an entity.
|
|
19
|
+
* Contains the trait plus any behavior configuration for the NPC service.
|
|
20
|
+
*/
|
|
21
|
+
export interface AppliedCharacter {
|
|
22
|
+
/** The CharacterModelTrait added to the entity. */
|
|
23
|
+
trait: CharacterModelTrait;
|
|
24
|
+
/** Propagation profile (ADR-144), if defined. */
|
|
25
|
+
propagationProfile?: PropagationProfile;
|
|
26
|
+
/** Rich goal definitions (ADR-145), if defined. */
|
|
27
|
+
goalDefs?: GoalDef[];
|
|
28
|
+
/** Movement profile (ADR-145), if defined. */
|
|
29
|
+
movementProfile?: MovementProfile;
|
|
30
|
+
/** Influence definitions (ADR-146), if defined. */
|
|
31
|
+
influenceDefs?: InfluenceDef[];
|
|
32
|
+
/** Resistance definitions (ADR-146), if defined. */
|
|
33
|
+
resistanceDefs?: ResistanceDef[];
|
|
34
|
+
}
|
|
13
35
|
/**
|
|
14
36
|
* Apply a compiled character to an entity.
|
|
15
37
|
*
|
|
16
38
|
* Creates the CharacterModelTrait, registers custom predicates,
|
|
17
|
-
* and adds the trait to the entity. Returns the trait
|
|
18
|
-
*
|
|
39
|
+
* and adds the trait to the entity. Returns the trait plus any
|
|
40
|
+
* compiled behavior configuration for the NPC service.
|
|
19
41
|
*
|
|
20
42
|
* @param entity - The NPC entity to apply the character model to
|
|
21
43
|
* @param compiled - Output of CharacterBuilder.compile()
|
|
22
|
-
* @returns The
|
|
44
|
+
* @returns The trait and compiled behavior configuration
|
|
23
45
|
*/
|
|
24
|
-
export declare function applyCharacter(entity: IFEntity, compiled: CompiledCharacter):
|
|
46
|
+
export declare function applyCharacter(entity: IFEntity, compiled: CompiledCharacter): AppliedCharacter;
|
|
25
47
|
//# sourceMappingURL=apply.d.ts.map
|
package/apply.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/character/src/apply.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/character/src/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,QAAQ,EACR,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,KAAK,EAAE,mBAAmB,CAAC;IAE3B,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAErB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,mDAAmD;IACnD,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAE/B,oDAAoD;IACpD,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,iBAAiB,GAC1B,gBAAgB,CAmBlB"}
|
package/apply.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Apply compiled character data to an entity (ADR-141)
|
|
3
|
+
* Apply compiled character data to an entity (ADR-141, 144, 145, 146)
|
|
4
4
|
*
|
|
5
5
|
* Convenience function that creates a CharacterModelTrait from compiled
|
|
6
6
|
* builder output, registers custom predicates, and adds the trait to
|
|
7
|
-
* the entity.
|
|
7
|
+
* the entity. Returns the trait plus any compiled configuration
|
|
8
|
+
* (propagation, goals, movement, influence) for the NPC service.
|
|
8
9
|
*
|
|
9
|
-
* Public interface: applyCharacter.
|
|
10
|
+
* Public interface: applyCharacter, AppliedCharacter.
|
|
10
11
|
* Owner context: @sharpee/character
|
|
11
12
|
*/
|
|
12
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -16,12 +17,12 @@ const world_model_1 = require("../world-model/index.js");
|
|
|
16
17
|
* Apply a compiled character to an entity.
|
|
17
18
|
*
|
|
18
19
|
* Creates the CharacterModelTrait, registers custom predicates,
|
|
19
|
-
* and adds the trait to the entity. Returns the trait
|
|
20
|
-
*
|
|
20
|
+
* and adds the trait to the entity. Returns the trait plus any
|
|
21
|
+
* compiled behavior configuration for the NPC service.
|
|
21
22
|
*
|
|
22
23
|
* @param entity - The NPC entity to apply the character model to
|
|
23
24
|
* @param compiled - Output of CharacterBuilder.compile()
|
|
24
|
-
* @returns The
|
|
25
|
+
* @returns The trait and compiled behavior configuration
|
|
25
26
|
*/
|
|
26
27
|
function applyCharacter(entity, compiled) {
|
|
27
28
|
const trait = new world_model_1.CharacterModelTrait(compiled.traitData);
|
|
@@ -31,6 +32,13 @@ function applyCharacter(entity, compiled) {
|
|
|
31
32
|
}
|
|
32
33
|
// Add trait to entity
|
|
33
34
|
entity.add(trait);
|
|
34
|
-
return
|
|
35
|
+
return {
|
|
36
|
+
trait,
|
|
37
|
+
propagationProfile: compiled.propagationProfile,
|
|
38
|
+
goalDefs: compiled.goalDefs,
|
|
39
|
+
movementProfile: compiled.movementProfile,
|
|
40
|
+
influenceDefs: compiled.influenceDefs,
|
|
41
|
+
resistanceDefs: compiled.resistanceDefs,
|
|
42
|
+
};
|
|
35
43
|
}
|
|
36
44
|
//# sourceMappingURL=apply.js.map
|
package/apply.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/apply.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/apply.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA8CH,wCAsBC;AAlED,sDAG8B;AA8B9B;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAC5B,MAAgB,EAChB,QAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,iCAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE1D,6BAA6B;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACnD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB;IACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAElB,OAAO;QACL,KAAK;QACL,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;KACxC,CAAC;AACJ,CAAC"}
|
package/character-builder.d.ts
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
import { PersonalityExpr, DispositionWord, Mood, ThreatLevel, CognitiveProfile, ConfidenceWord, LucidityConfig, PerceptionFilterConfig, PerceivedEvent, CharacterPredicate, ICharacterModelData } from "../world-model/index";
|
|
12
12
|
import { CognitivePresetName } from './cognitive-presets';
|
|
13
13
|
import { VocabularyExtension } from './vocabulary-extension';
|
|
14
|
+
import { PropagationProfile } from './propagation/propagation-types';
|
|
15
|
+
import { PropagationOptions } from './propagation/builder';
|
|
16
|
+
import { GoalDef, MovementProfile } from './goals/goal-types';
|
|
17
|
+
import { GoalBuilder } from './goals/builder';
|
|
18
|
+
import { InfluenceDef, ResistanceDef } from './influence/influence-types';
|
|
19
|
+
import { InfluenceBuilder } from './influence/builder';
|
|
14
20
|
/** A compiled state mutation triggered by an event or condition. */
|
|
15
21
|
export interface CompiledTrigger {
|
|
16
22
|
triggerName: string;
|
|
@@ -126,6 +132,13 @@ export declare class CharacterBuilder {
|
|
|
126
132
|
private _customPredicates;
|
|
127
133
|
private _activeTriggerBuilder?;
|
|
128
134
|
private _vocabExtension?;
|
|
135
|
+
private _propagationProfile?;
|
|
136
|
+
private _movementProfile?;
|
|
137
|
+
private readonly _goalDefs;
|
|
138
|
+
private _activeGoalBuilder?;
|
|
139
|
+
private readonly _influenceDefs;
|
|
140
|
+
private readonly _resistanceDefs;
|
|
141
|
+
private _activeInfluenceBuilder?;
|
|
129
142
|
/**
|
|
130
143
|
* Create a new character builder.
|
|
131
144
|
*
|
|
@@ -203,13 +216,19 @@ export declare class CharacterBuilder {
|
|
|
203
216
|
resistance?: 'none' | 'reinterprets' | 'ignores';
|
|
204
217
|
}): CharacterBuilder;
|
|
205
218
|
/**
|
|
206
|
-
*
|
|
219
|
+
* Define a goal with a fluent builder chain.
|
|
220
|
+
* Returns a GoalBuilder; call .done() to return to this builder.
|
|
221
|
+
*
|
|
222
|
+
* For simple goals (legacy compatibility), pass a numeric priority
|
|
223
|
+
* as the second argument.
|
|
207
224
|
*
|
|
208
225
|
* @param id - Goal identifier
|
|
209
|
-
* @param priority -
|
|
210
|
-
* @returns
|
|
226
|
+
* @param priority - Optional numeric priority (legacy shorthand)
|
|
227
|
+
* @returns GoalBuilder for fluent chaining, or this if priority provided
|
|
211
228
|
*/
|
|
212
|
-
goal(id: string, priority
|
|
229
|
+
goal(id: string, priority?: number): GoalBuilder<CharacterBuilder> | CharacterBuilder;
|
|
230
|
+
/** @internal Finalize any pending goal builder that wasn't explicitly done(). */
|
|
231
|
+
private _finalizePendingGoalBuilder;
|
|
213
232
|
/**
|
|
214
233
|
* Configure lucidity windows.
|
|
215
234
|
*
|
|
@@ -260,6 +279,40 @@ export declare class CharacterBuilder {
|
|
|
260
279
|
* @returns this for chaining
|
|
261
280
|
*/
|
|
262
281
|
withVocabulary(ext: VocabularyExtension): CharacterBuilder;
|
|
282
|
+
/**
|
|
283
|
+
* Define propagation behavior for this NPC.
|
|
284
|
+
*
|
|
285
|
+
* @param opts - Propagation profile options
|
|
286
|
+
* @returns this for chaining
|
|
287
|
+
*/
|
|
288
|
+
propagation(opts: PropagationOptions): CharacterBuilder;
|
|
289
|
+
/**
|
|
290
|
+
* Define the NPC's movement profile — which rooms they know and can access.
|
|
291
|
+
*
|
|
292
|
+
* @param opts - Movement profile (knows, access)
|
|
293
|
+
* @returns this for chaining
|
|
294
|
+
*/
|
|
295
|
+
movement(opts: MovementProfile): CharacterBuilder;
|
|
296
|
+
/**
|
|
297
|
+
* Define an influence this NPC exerts.
|
|
298
|
+
* Returns an InfluenceBuilder; call .done() to return to this builder.
|
|
299
|
+
*
|
|
300
|
+
* @param name - Author-defined influence name (e.g., 'seduction', 'intimidation')
|
|
301
|
+
* @returns InfluenceBuilder for fluent chaining
|
|
302
|
+
*/
|
|
303
|
+
influence(name: string): InfluenceBuilder<CharacterBuilder>;
|
|
304
|
+
/**
|
|
305
|
+
* Declare resistance to an influence.
|
|
306
|
+
*
|
|
307
|
+
* @param influenceName - The influence name to resist
|
|
308
|
+
* @param opts - Optional except conditions for conditional vulnerability
|
|
309
|
+
* @returns this for chaining
|
|
310
|
+
*/
|
|
311
|
+
resistsInfluence(influenceName: string, opts?: {
|
|
312
|
+
except: string[];
|
|
313
|
+
}): CharacterBuilder;
|
|
314
|
+
/** @internal Finalize any pending influence builder. */
|
|
315
|
+
private _finalizePendingInfluenceBuilder;
|
|
263
316
|
/**
|
|
264
317
|
* Compile the builder state into CharacterModelTrait constructor data,
|
|
265
318
|
* compiled event handlers, and custom predicates.
|
|
@@ -278,5 +331,15 @@ export interface CompiledCharacter {
|
|
|
278
331
|
triggers: CompiledTrigger[];
|
|
279
332
|
/** Custom predicates to register on the trait after construction. */
|
|
280
333
|
customPredicates: Map<string, CharacterPredicate>;
|
|
334
|
+
/** Propagation profile (ADR-144). */
|
|
335
|
+
propagationProfile?: PropagationProfile;
|
|
336
|
+
/** Movement profile (ADR-145). */
|
|
337
|
+
movementProfile?: MovementProfile;
|
|
338
|
+
/** Rich goal definitions (ADR-145). */
|
|
339
|
+
goalDefs?: GoalDef[];
|
|
340
|
+
/** Influence definitions (ADR-146). */
|
|
341
|
+
influenceDefs?: InfluenceDef[];
|
|
342
|
+
/** Resistance definitions (ADR-146). */
|
|
343
|
+
resistanceDefs?: ResistanceDef[];
|
|
281
344
|
}
|
|
282
345
|
//# sourceMappingURL=character-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character-builder.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/character/src/character-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,eAAe,EAGf,eAAe,EAEf,IAAI,EAEJ,WAAW,EAEX,gBAAgB,EAEhB,cAAc,EAEd,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAqB,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"character-builder.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/character/src/character-builder.ts"],"names":[],"mappings":"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"}
|
package/character-builder.js
CHANGED
|
@@ -13,6 +13,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.CharacterBuilder = exports.TriggerBuilder = void 0;
|
|
14
14
|
const world_model_1 = require("../world-model/index.js");
|
|
15
15
|
const cognitive_presets_1 = require("./cognitive-presets");
|
|
16
|
+
const builder_1 = require("./propagation/builder");
|
|
17
|
+
const builder_2 = require("./goals/builder");
|
|
18
|
+
const builder_3 = require("./influence/builder");
|
|
16
19
|
/**
|
|
17
20
|
* Fluent chain for defining state transitions on triggers.
|
|
18
21
|
*
|
|
@@ -136,6 +139,13 @@ class CharacterBuilder {
|
|
|
136
139
|
_customPredicates = new Map();
|
|
137
140
|
_activeTriggerBuilder;
|
|
138
141
|
_vocabExtension;
|
|
142
|
+
_propagationProfile;
|
|
143
|
+
_movementProfile;
|
|
144
|
+
_goalDefs = [];
|
|
145
|
+
_activeGoalBuilder;
|
|
146
|
+
_influenceDefs = [];
|
|
147
|
+
_resistanceDefs = [];
|
|
148
|
+
_activeInfluenceBuilder;
|
|
139
149
|
/**
|
|
140
150
|
* Create a new character builder.
|
|
141
151
|
*
|
|
@@ -283,18 +293,40 @@ class CharacterBuilder {
|
|
|
283
293
|
return this;
|
|
284
294
|
}
|
|
285
295
|
// =========================================================================
|
|
286
|
-
// Goals
|
|
296
|
+
// Goals (ADR-145)
|
|
287
297
|
// =========================================================================
|
|
288
298
|
/**
|
|
289
|
-
*
|
|
299
|
+
* Define a goal with a fluent builder chain.
|
|
300
|
+
* Returns a GoalBuilder; call .done() to return to this builder.
|
|
301
|
+
*
|
|
302
|
+
* For simple goals (legacy compatibility), pass a numeric priority
|
|
303
|
+
* as the second argument.
|
|
290
304
|
*
|
|
291
305
|
* @param id - Goal identifier
|
|
292
|
-
* @param priority -
|
|
293
|
-
* @returns
|
|
306
|
+
* @param priority - Optional numeric priority (legacy shorthand)
|
|
307
|
+
* @returns GoalBuilder for fluent chaining, or this if priority provided
|
|
294
308
|
*/
|
|
295
309
|
goal(id, priority) {
|
|
296
|
-
|
|
297
|
-
|
|
310
|
+
if (priority !== undefined) {
|
|
311
|
+
// Legacy shorthand: .goal(id, priority)
|
|
312
|
+
this._goals.set(id, priority);
|
|
313
|
+
return this;
|
|
314
|
+
}
|
|
315
|
+
// Finalize any pending goal builder
|
|
316
|
+
this._finalizePendingGoalBuilder();
|
|
317
|
+
const gb = new builder_2.GoalBuilder(id, this, (def) => {
|
|
318
|
+
this._goalDefs.push(def);
|
|
319
|
+
this._activeGoalBuilder = undefined;
|
|
320
|
+
});
|
|
321
|
+
this._activeGoalBuilder = gb;
|
|
322
|
+
return gb;
|
|
323
|
+
}
|
|
324
|
+
/** @internal Finalize any pending goal builder that wasn't explicitly done(). */
|
|
325
|
+
_finalizePendingGoalBuilder() {
|
|
326
|
+
if (this._activeGoalBuilder) {
|
|
327
|
+
this._goalDefs.push(this._activeGoalBuilder._buildDef());
|
|
328
|
+
this._activeGoalBuilder = undefined;
|
|
329
|
+
}
|
|
298
330
|
}
|
|
299
331
|
// =========================================================================
|
|
300
332
|
// Lucidity
|
|
@@ -392,6 +424,76 @@ class CharacterBuilder {
|
|
|
392
424
|
return this;
|
|
393
425
|
}
|
|
394
426
|
// =========================================================================
|
|
427
|
+
// Propagation (ADR-144)
|
|
428
|
+
// =========================================================================
|
|
429
|
+
/**
|
|
430
|
+
* Define propagation behavior for this NPC.
|
|
431
|
+
*
|
|
432
|
+
* @param opts - Propagation profile options
|
|
433
|
+
* @returns this for chaining
|
|
434
|
+
*/
|
|
435
|
+
propagation(opts) {
|
|
436
|
+
this._propagationProfile = (0, builder_1.buildPropagationProfile)(opts);
|
|
437
|
+
return this;
|
|
438
|
+
}
|
|
439
|
+
// =========================================================================
|
|
440
|
+
// Movement (ADR-145)
|
|
441
|
+
// =========================================================================
|
|
442
|
+
/**
|
|
443
|
+
* Define the NPC's movement profile — which rooms they know and can access.
|
|
444
|
+
*
|
|
445
|
+
* @param opts - Movement profile (knows, access)
|
|
446
|
+
* @returns this for chaining
|
|
447
|
+
*/
|
|
448
|
+
movement(opts) {
|
|
449
|
+
this._movementProfile = {
|
|
450
|
+
knows: opts.knows === 'all' ? 'all' : [...opts.knows],
|
|
451
|
+
access: opts.access === 'all' ? 'all' : [...opts.access],
|
|
452
|
+
};
|
|
453
|
+
return this;
|
|
454
|
+
}
|
|
455
|
+
// =========================================================================
|
|
456
|
+
// Influence (ADR-146)
|
|
457
|
+
// =========================================================================
|
|
458
|
+
/**
|
|
459
|
+
* Define an influence this NPC exerts.
|
|
460
|
+
* Returns an InfluenceBuilder; call .done() to return to this builder.
|
|
461
|
+
*
|
|
462
|
+
* @param name - Author-defined influence name (e.g., 'seduction', 'intimidation')
|
|
463
|
+
* @returns InfluenceBuilder for fluent chaining
|
|
464
|
+
*/
|
|
465
|
+
influence(name) {
|
|
466
|
+
// Finalize any pending influence builder
|
|
467
|
+
this._finalizePendingInfluenceBuilder();
|
|
468
|
+
const ib = new builder_3.InfluenceBuilder(name, this, (def) => {
|
|
469
|
+
this._influenceDefs.push(def);
|
|
470
|
+
this._activeInfluenceBuilder = undefined;
|
|
471
|
+
});
|
|
472
|
+
this._activeInfluenceBuilder = ib;
|
|
473
|
+
return ib;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Declare resistance to an influence.
|
|
477
|
+
*
|
|
478
|
+
* @param influenceName - The influence name to resist
|
|
479
|
+
* @param opts - Optional except conditions for conditional vulnerability
|
|
480
|
+
* @returns this for chaining
|
|
481
|
+
*/
|
|
482
|
+
resistsInfluence(influenceName, opts) {
|
|
483
|
+
this._resistanceDefs.push({
|
|
484
|
+
influenceName,
|
|
485
|
+
except: opts?.except ? [...opts.except] : undefined,
|
|
486
|
+
});
|
|
487
|
+
return this;
|
|
488
|
+
}
|
|
489
|
+
/** @internal Finalize any pending influence builder. */
|
|
490
|
+
_finalizePendingInfluenceBuilder() {
|
|
491
|
+
if (this._activeInfluenceBuilder) {
|
|
492
|
+
this._influenceDefs.push(this._activeInfluenceBuilder._buildDef());
|
|
493
|
+
this._activeInfluenceBuilder = undefined;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
// =========================================================================
|
|
395
497
|
// Compilation
|
|
396
498
|
// =========================================================================
|
|
397
499
|
/**
|
|
@@ -401,8 +503,10 @@ class CharacterBuilder {
|
|
|
401
503
|
* @returns Compiled character data
|
|
402
504
|
*/
|
|
403
505
|
compile() {
|
|
404
|
-
// Finalize any pending trigger
|
|
506
|
+
// Finalize any pending trigger, goal, or influence builder
|
|
405
507
|
this._finalizePendingTrigger();
|
|
508
|
+
this._finalizePendingGoalBuilder();
|
|
509
|
+
this._finalizePendingInfluenceBuilder();
|
|
406
510
|
// Build personality record
|
|
407
511
|
const personality = {};
|
|
408
512
|
for (const [trait, value] of this._personality) {
|
|
@@ -468,6 +572,11 @@ class CharacterBuilder {
|
|
|
468
572
|
traitData,
|
|
469
573
|
triggers: [...this._triggers],
|
|
470
574
|
customPredicates,
|
|
575
|
+
propagationProfile: this._propagationProfile,
|
|
576
|
+
movementProfile: this._movementProfile,
|
|
577
|
+
goalDefs: this._goalDefs.length > 0 ? [...this._goalDefs] : undefined,
|
|
578
|
+
influenceDefs: this._influenceDefs.length > 0 ? [...this._influenceDefs] : undefined,
|
|
579
|
+
resistanceDefs: this._resistanceDefs.length > 0 ? [...this._resistanceDefs] : undefined,
|
|
471
580
|
};
|
|
472
581
|
}
|
|
473
582
|
}
|
package/character-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character-builder.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/character-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"character-builder.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/character-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anti-corruption layer for conversation responses (ADR-142)
|
|
3
|
+
*
|
|
4
|
+
* Translates between the character model domain (ResponseCandidate,
|
|
5
|
+
* CharacterModelTrait) and the language layer domain (ResponseIntent,
|
|
6
|
+
* message IDs, mood variants). Neither side couples to the other's
|
|
7
|
+
* internal structure.
|
|
8
|
+
*
|
|
9
|
+
* Public interface: buildResponseIntent, selectMoodVariant,
|
|
10
|
+
* applyCognitiveColoring.
|
|
11
|
+
* Owner context: @sharpee/character / conversation
|
|
12
|
+
*/
|
|
13
|
+
import { CharacterModelTrait, Mood, CognitiveProfile } from "../../world-model/index";
|
|
14
|
+
import { ResponseCandidate, ResponseIntent } from './response-types';
|
|
15
|
+
/**
|
|
16
|
+
* Build a ResponseIntent from a selected candidate and the NPC's
|
|
17
|
+
* current character state. This is the primary ACL function — it
|
|
18
|
+
* bridges the constraint evaluation result to the language layer.
|
|
19
|
+
*
|
|
20
|
+
* @param candidate - The selected response candidate
|
|
21
|
+
* @param topic - The resolved topic name
|
|
22
|
+
* @param npcTrait - The NPC's CharacterModelTrait
|
|
23
|
+
* @param context - Optional active conversation context label
|
|
24
|
+
* @returns A fully populated ResponseIntent
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildResponseIntent(candidate: ResponseCandidate, topic: string, npcTrait: CharacterModelTrait, context?: string): ResponseIntent;
|
|
27
|
+
/**
|
|
28
|
+
* Select a mood-specific message variant if one exists.
|
|
29
|
+
* Appends a mood suffix to the base message ID.
|
|
30
|
+
*
|
|
31
|
+
* The language layer registers variants like:
|
|
32
|
+
* 'murder-truth-full' (base)
|
|
33
|
+
* 'murder-truth-full.nervous' (mood variant)
|
|
34
|
+
* 'murder-truth-full.panicked' (mood variant)
|
|
35
|
+
*
|
|
36
|
+
* This function produces the variant key. The language layer
|
|
37
|
+
* falls back to the base if the variant isn't registered.
|
|
38
|
+
*
|
|
39
|
+
* @param baseMessageId - The author-assigned message ID
|
|
40
|
+
* @param mood - The NPC's current mood
|
|
41
|
+
* @returns The mood-suffixed message ID
|
|
42
|
+
*/
|
|
43
|
+
export declare function selectMoodVariant(baseMessageId: string, mood: Mood): string;
|
|
44
|
+
/**
|
|
45
|
+
* Apply cognitive coloring to a response intent based on the NPC's
|
|
46
|
+
* cognitive profile. This modifies the intent to signal to the
|
|
47
|
+
* language layer how to render the text:
|
|
48
|
+
*
|
|
49
|
+
* - fragmented coherence → broken sentence patterns
|
|
50
|
+
* - drifting coherence → mid-sentence topic shifts
|
|
51
|
+
* - fractured selfModel → detached, third-person references
|
|
52
|
+
* - augmented perception → hallucinatory insertions
|
|
53
|
+
*
|
|
54
|
+
* The language layer uses the coherence field and additional markers
|
|
55
|
+
* on the intent to select the appropriate speech pattern.
|
|
56
|
+
*
|
|
57
|
+
* @param intent - The response intent to color
|
|
58
|
+
* @param profile - The NPC's cognitive profile
|
|
59
|
+
* @returns The colored response intent (may be the same object)
|
|
60
|
+
*/
|
|
61
|
+
export declare function applyCognitiveColoring(intent: ResponseIntent, profile: CognitiveProfile): ResponseIntent;
|
|
62
|
+
//# sourceMappingURL=acl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/character/src/conversation/acl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMrE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CA0BhB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAK3E;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,gBAAgB,GACxB,cAAc,CAkBhB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Anti-corruption layer for conversation responses (ADR-142)
|
|
4
|
+
*
|
|
5
|
+
* Translates between the character model domain (ResponseCandidate,
|
|
6
|
+
* CharacterModelTrait) and the language layer domain (ResponseIntent,
|
|
7
|
+
* message IDs, mood variants). Neither side couples to the other's
|
|
8
|
+
* internal structure.
|
|
9
|
+
*
|
|
10
|
+
* Public interface: buildResponseIntent, selectMoodVariant,
|
|
11
|
+
* applyCognitiveColoring.
|
|
12
|
+
* Owner context: @sharpee/character / conversation
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.buildResponseIntent = buildResponseIntent;
|
|
16
|
+
exports.selectMoodVariant = selectMoodVariant;
|
|
17
|
+
exports.applyCognitiveColoring = applyCognitiveColoring;
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Response intent construction
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
/**
|
|
22
|
+
* Build a ResponseIntent from a selected candidate and the NPC's
|
|
23
|
+
* current character state. This is the primary ACL function — it
|
|
24
|
+
* bridges the constraint evaluation result to the language layer.
|
|
25
|
+
*
|
|
26
|
+
* @param candidate - The selected response candidate
|
|
27
|
+
* @param topic - The resolved topic name
|
|
28
|
+
* @param npcTrait - The NPC's CharacterModelTrait
|
|
29
|
+
* @param context - Optional active conversation context label
|
|
30
|
+
* @returns A fully populated ResponseIntent
|
|
31
|
+
*/
|
|
32
|
+
function buildResponseIntent(candidate, topic, npcTrait, context) {
|
|
33
|
+
const mood = npcTrait.getMood();
|
|
34
|
+
const coherence = npcTrait.cognitiveProfile.coherence;
|
|
35
|
+
// Resolve params if present
|
|
36
|
+
let resolvedParams;
|
|
37
|
+
if (candidate.params) {
|
|
38
|
+
resolvedParams = {};
|
|
39
|
+
for (const [key, resolver] of Object.entries(candidate.params)) {
|
|
40
|
+
resolvedParams[key] = resolver();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Build the base intent
|
|
44
|
+
const intent = {
|
|
45
|
+
action: candidate.action,
|
|
46
|
+
topic,
|
|
47
|
+
messageId: selectMoodVariant(candidate.messageId, mood),
|
|
48
|
+
mood,
|
|
49
|
+
coherence,
|
|
50
|
+
context,
|
|
51
|
+
params: resolvedParams,
|
|
52
|
+
};
|
|
53
|
+
// Apply cognitive coloring
|
|
54
|
+
return applyCognitiveColoring(intent, npcTrait.cognitiveProfile);
|
|
55
|
+
}
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
// Mood variant selection
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
/**
|
|
60
|
+
* Select a mood-specific message variant if one exists.
|
|
61
|
+
* Appends a mood suffix to the base message ID.
|
|
62
|
+
*
|
|
63
|
+
* The language layer registers variants like:
|
|
64
|
+
* 'murder-truth-full' (base)
|
|
65
|
+
* 'murder-truth-full.nervous' (mood variant)
|
|
66
|
+
* 'murder-truth-full.panicked' (mood variant)
|
|
67
|
+
*
|
|
68
|
+
* This function produces the variant key. The language layer
|
|
69
|
+
* falls back to the base if the variant isn't registered.
|
|
70
|
+
*
|
|
71
|
+
* @param baseMessageId - The author-assigned message ID
|
|
72
|
+
* @param mood - The NPC's current mood
|
|
73
|
+
* @returns The mood-suffixed message ID
|
|
74
|
+
*/
|
|
75
|
+
function selectMoodVariant(baseMessageId, mood) {
|
|
76
|
+
// Calm is the default tone — no suffix needed
|
|
77
|
+
if (mood === 'calm')
|
|
78
|
+
return baseMessageId;
|
|
79
|
+
return `${baseMessageId}.${mood}`;
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Cognitive coloring
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
/**
|
|
85
|
+
* Apply cognitive coloring to a response intent based on the NPC's
|
|
86
|
+
* cognitive profile. This modifies the intent to signal to the
|
|
87
|
+
* language layer how to render the text:
|
|
88
|
+
*
|
|
89
|
+
* - fragmented coherence → broken sentence patterns
|
|
90
|
+
* - drifting coherence → mid-sentence topic shifts
|
|
91
|
+
* - fractured selfModel → detached, third-person references
|
|
92
|
+
* - augmented perception → hallucinatory insertions
|
|
93
|
+
*
|
|
94
|
+
* The language layer uses the coherence field and additional markers
|
|
95
|
+
* on the intent to select the appropriate speech pattern.
|
|
96
|
+
*
|
|
97
|
+
* @param intent - The response intent to color
|
|
98
|
+
* @param profile - The NPC's cognitive profile
|
|
99
|
+
* @returns The colored response intent (may be the same object)
|
|
100
|
+
*/
|
|
101
|
+
function applyCognitiveColoring(intent, profile) {
|
|
102
|
+
// Coherence is already on the intent from buildResponseIntent.
|
|
103
|
+
// Additional cognitive effects are signaled through message ID suffixes
|
|
104
|
+
// that the language layer can check for.
|
|
105
|
+
// Fractured self-model: append marker so language layer can apply
|
|
106
|
+
// third-person detached speech patterns
|
|
107
|
+
if (profile.selfModel === 'fractured') {
|
|
108
|
+
intent.messageId = `${intent.messageId}#detached`;
|
|
109
|
+
}
|
|
110
|
+
// Augmented perception: append marker so language layer can insert
|
|
111
|
+
// hallucinatory details
|
|
112
|
+
if (profile.perception === 'augmented') {
|
|
113
|
+
intent.messageId = `${intent.messageId}#hallucinating`;
|
|
114
|
+
}
|
|
115
|
+
return intent;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=acl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/character/src/conversation/acl.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAoBH,kDA+BC;AAsBD,8CAKC;AAuBD,wDAqBC;AArHD,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,SAA4B,EAC5B,KAAa,EACb,QAA6B,EAC7B,OAAgB;IAEhB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC;IAEtD,4BAA4B;IAC5B,IAAI,cAAmD,CAAC;IACxD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,cAAc,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,cAAc,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAmB;QAC7B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK;QACL,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC;QACvD,IAAI;QACJ,SAAS;QACT,OAAO;QACP,MAAM,EAAE,cAAc;KACvB,CAAC;IAEF,2BAA2B;IAC3B,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACnE,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,iBAAiB,CAAC,aAAqB,EAAE,IAAU;IACjE,8CAA8C;IAC9C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,aAAa,CAAC;IAE1C,OAAO,GAAG,aAAa,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,sBAAsB,CACpC,MAAsB,EACtB,OAAyB;IAEzB,+DAA+D;IAC/D,wEAAwE;IACxE,yCAAyC;IAEzC,kEAAkE;IAClE,wCAAwC;IACxC,IAAI,OAAO,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,SAAS,WAAW,CAAC;IACpD,CAAC;IAED,mEAAmE;IACnE,wBAAwB;IACxB,IAAI,OAAO,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,SAAS,gBAAgB,CAAC;IACzD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|