@sharpee/stdlib 0.9.105 → 0.9.106
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/npc/character-messages.d.ts +30 -0
- package/npc/character-messages.d.ts.map +1 -0
- package/npc/character-messages.js +35 -0
- package/npc/character-messages.js.map +1 -0
- package/npc/character-observer.d.ts +76 -0
- package/npc/character-observer.d.ts.map +1 -0
- package/npc/character-observer.js +207 -0
- package/npc/character-observer.js.map +1 -0
- package/npc/index.d.ts +3 -0
- package/npc/index.d.ts.map +1 -1
- package/npc/index.js +12 -1
- package/npc/index.js.map +1 -1
- package/npc/lucidity-decay.d.ts +45 -0
- package/npc/lucidity-decay.d.ts.map +1 -0
- package/npc/lucidity-decay.js +97 -0
- package/npc/lucidity-decay.js.map +1 -0
- package/npc/npc-service.d.ts.map +1 -1
- package/npc/npc-service.js +6 -0
- package/npc/npc-service.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character model message IDs (ADR-141)
|
|
3
|
+
*
|
|
4
|
+
* Semantic message IDs for character state change events.
|
|
5
|
+
* Actual text is provided by the language layer.
|
|
6
|
+
*
|
|
7
|
+
* Public interface: CharacterMessages const, CharacterMessageId type.
|
|
8
|
+
* Owner context: stdlib / npc
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Message IDs for character model state change events.
|
|
12
|
+
*
|
|
13
|
+
* These are emitted as observable behavior events when an NPC's
|
|
14
|
+
* cognitive or emotional state changes. Silent by default — authors
|
|
15
|
+
* opt in per NPC to surface them to the player.
|
|
16
|
+
*/
|
|
17
|
+
export declare const CharacterMessages: {
|
|
18
|
+
readonly LUCIDITY_SHIFT: "npc.character.lucidity_shift";
|
|
19
|
+
readonly LUCIDITY_BASELINE_RESTORED: "npc.character.lucidity_baseline_restored";
|
|
20
|
+
readonly HALLUCINATION_ONSET: "npc.character.hallucination_onset";
|
|
21
|
+
readonly MOOD_CHANGED: "npc.character.mood_changed";
|
|
22
|
+
readonly THREAT_CHANGED: "npc.character.threat_changed";
|
|
23
|
+
readonly DISPOSITION_CHANGED: "npc.character.disposition_changed";
|
|
24
|
+
readonly FACT_LEARNED: "npc.character.fact_learned";
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Type for character model message IDs.
|
|
28
|
+
*/
|
|
29
|
+
export type CharacterMessageId = (typeof CharacterMessages)[keyof typeof CharacterMessages];
|
|
30
|
+
//# sourceMappingURL=character-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-messages.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/character-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;CAmBpB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Character model message IDs (ADR-141)
|
|
4
|
+
*
|
|
5
|
+
* Semantic message IDs for character state change events.
|
|
6
|
+
* Actual text is provided by the language layer.
|
|
7
|
+
*
|
|
8
|
+
* Public interface: CharacterMessages const, CharacterMessageId type.
|
|
9
|
+
* Owner context: stdlib / npc
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CharacterMessages = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Message IDs for character model state change events.
|
|
15
|
+
*
|
|
16
|
+
* These are emitted as observable behavior events when an NPC's
|
|
17
|
+
* cognitive or emotional state changes. Silent by default — authors
|
|
18
|
+
* opt in per NPC to surface them to the player.
|
|
19
|
+
*/
|
|
20
|
+
exports.CharacterMessages = {
|
|
21
|
+
// Lucidity transitions
|
|
22
|
+
LUCIDITY_SHIFT: 'npc.character.lucidity_shift',
|
|
23
|
+
LUCIDITY_BASELINE_RESTORED: 'npc.character.lucidity_baseline_restored',
|
|
24
|
+
// Cognitive events
|
|
25
|
+
HALLUCINATION_ONSET: 'npc.character.hallucination_onset',
|
|
26
|
+
// Mood changes
|
|
27
|
+
MOOD_CHANGED: 'npc.character.mood_changed',
|
|
28
|
+
// Threat changes
|
|
29
|
+
THREAT_CHANGED: 'npc.character.threat_changed',
|
|
30
|
+
// Disposition changes
|
|
31
|
+
DISPOSITION_CHANGED: 'npc.character.disposition_changed',
|
|
32
|
+
// Knowledge
|
|
33
|
+
FACT_LEARNED: 'npc.character.fact_learned',
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=character-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-messages.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/character-messages.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG;IAC/B,uBAAuB;IACvB,cAAc,EAAE,8BAA8B;IAC9C,0BAA0B,EAAE,0CAA0C;IAEtE,mBAAmB;IACnB,mBAAmB,EAAE,mCAAmC;IAExD,eAAe;IACf,YAAY,EAAE,4BAA4B;IAE1C,iBAAiB;IACjB,cAAc,EAAE,8BAA8B;IAE9C,sBAAsB;IACtB,mBAAmB,EAAE,mCAAmC;IAExD,YAAY;IACZ,YAAY,EAAE,4BAA4B;CAClC,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character observation handler (ADR-141)
|
|
3
|
+
*
|
|
4
|
+
* Processes events witnessed by NPCs through the cognitive profile filter
|
|
5
|
+
* and updates character model state accordingly.
|
|
6
|
+
*
|
|
7
|
+
* Public interface: observeEvent(), DefaultStateTransitions.
|
|
8
|
+
* Owner context: stdlib / npc
|
|
9
|
+
*/
|
|
10
|
+
import { ISemanticEvent, EntityId } from "../../core/index";
|
|
11
|
+
import { IFEntity, WorldModel, CharacterModelTrait } from "../../world-model/index";
|
|
12
|
+
/** A default state transition triggered by an event type. */
|
|
13
|
+
export interface StateTransitionRule {
|
|
14
|
+
/** Event type pattern to match (exact string match). */
|
|
15
|
+
eventType: string;
|
|
16
|
+
/** Threat delta when this event is observed. */
|
|
17
|
+
threatDelta?: number;
|
|
18
|
+
/** Mood valence delta. */
|
|
19
|
+
moodValenceDelta?: number;
|
|
20
|
+
/** Mood arousal delta. */
|
|
21
|
+
moodArousalDelta?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Disposition delta toward the event's actor.
|
|
24
|
+
* Only applied when the event has an actor entity.
|
|
25
|
+
*/
|
|
26
|
+
dispositionDelta?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Default state transition rules.
|
|
30
|
+
*
|
|
31
|
+
* Stories can override by providing their own rules array
|
|
32
|
+
* to observeEvent(). These are sensible defaults per ADR-141:
|
|
33
|
+
* violence increases threat, gifts improve disposition, etc.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DefaultStateTransitions: StateTransitionRule[];
|
|
36
|
+
/**
|
|
37
|
+
* Filter an event through the NPC's cognitive profile.
|
|
38
|
+
*
|
|
39
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
40
|
+
* @param event - The incoming event
|
|
41
|
+
* @returns 'pass' if the event should be processed, 'miss' if filtered out,
|
|
42
|
+
* 'amplify' if the event should be processed with heightened impact
|
|
43
|
+
*/
|
|
44
|
+
export declare function filterPerception(trait: CharacterModelTrait, event: ISemanticEvent): 'pass' | 'miss' | 'amplify';
|
|
45
|
+
/**
|
|
46
|
+
* Inject hallucinated facts for an NPC with augmented perception.
|
|
47
|
+
*
|
|
48
|
+
* Only injects when the NPC's current lucidity state matches
|
|
49
|
+
* the perceived event's `when` condition.
|
|
50
|
+
*
|
|
51
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
52
|
+
* @param npcId - The NPC entity ID
|
|
53
|
+
* @param turn - Current turn number
|
|
54
|
+
* @returns Array of hallucination events (may be empty)
|
|
55
|
+
*/
|
|
56
|
+
export declare function injectHallucinations(trait: CharacterModelTrait, npcId: EntityId, turn: number): ISemanticEvent[];
|
|
57
|
+
/**
|
|
58
|
+
* Process an event observed by an NPC through the character model.
|
|
59
|
+
*
|
|
60
|
+
* 1. Checks for CharacterModelTrait (returns early if absent — opt-in).
|
|
61
|
+
* 2. Filters event through cognitive profile perception mode.
|
|
62
|
+
* 3. Adds witnessed fact to knowledge.
|
|
63
|
+
* 4. Applies default state transition rules.
|
|
64
|
+
* 5. Checks lucidity triggers.
|
|
65
|
+
* 6. Injects hallucinated facts (augmented perception).
|
|
66
|
+
* 7. Emits observable behavior events for state changes.
|
|
67
|
+
*
|
|
68
|
+
* @param npc - The NPC entity
|
|
69
|
+
* @param event - The observed event
|
|
70
|
+
* @param world - The world model
|
|
71
|
+
* @param turn - Current turn number
|
|
72
|
+
* @param rules - State transition rules (defaults to DefaultStateTransitions)
|
|
73
|
+
* @returns Array of observable behavior events emitted by state changes
|
|
74
|
+
*/
|
|
75
|
+
export declare function observeEvent(npc: IFEntity, event: ISemanticEvent, world: WorldModel, turn: number, rules?: StateTransitionRule[]): ISemanticEvent[];
|
|
76
|
+
//# sourceMappingURL=character-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-observer.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/character-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,UAAU,EAEV,mBAAmB,EAGpB,MAAM,sBAAsB,CAAC;AAO9B,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,EAcxD,CAAC;AA0BF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,cAAc,GACpB,MAAM,GAAG,MAAM,GAAG,SAAS,CA4B7B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,MAAM,GACX,cAAc,EAAE,CAoBlB;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,mBAAmB,EAA4B,GACrD,cAAc,EAAE,CA+FlB"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Character observation handler (ADR-141)
|
|
4
|
+
*
|
|
5
|
+
* Processes events witnessed by NPCs through the cognitive profile filter
|
|
6
|
+
* and updates character model state accordingly.
|
|
7
|
+
*
|
|
8
|
+
* Public interface: observeEvent(), DefaultStateTransitions.
|
|
9
|
+
* Owner context: stdlib / npc
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DefaultStateTransitions = void 0;
|
|
13
|
+
exports.filterPerception = filterPerception;
|
|
14
|
+
exports.injectHallucinations = injectHallucinations;
|
|
15
|
+
exports.observeEvent = observeEvent;
|
|
16
|
+
const world_model_1 = require("../../world-model/index.js");
|
|
17
|
+
const character_messages_1 = require("./character-messages");
|
|
18
|
+
/**
|
|
19
|
+
* Default state transition rules.
|
|
20
|
+
*
|
|
21
|
+
* Stories can override by providing their own rules array
|
|
22
|
+
* to observeEvent(). These are sensible defaults per ADR-141:
|
|
23
|
+
* violence increases threat, gifts improve disposition, etc.
|
|
24
|
+
*/
|
|
25
|
+
exports.DefaultStateTransitions = [
|
|
26
|
+
// Violence
|
|
27
|
+
{ eventType: 'npc.attacked', threatDelta: 30, moodValenceDelta: -0.3, moodArousalDelta: 0.3 },
|
|
28
|
+
{ eventType: 'if.action.attacking', threatDelta: 20, moodValenceDelta: -0.2, moodArousalDelta: 0.2 },
|
|
29
|
+
{ eventType: 'npc.killed', threatDelta: 40, moodValenceDelta: -0.5, moodArousalDelta: 0.4 },
|
|
30
|
+
// Kindness
|
|
31
|
+
{ eventType: 'if.action.giving', dispositionDelta: 10, moodValenceDelta: 0.1 },
|
|
32
|
+
// Theft
|
|
33
|
+
{ eventType: 'if.action.taking', dispositionDelta: -5 },
|
|
34
|
+
// Speech
|
|
35
|
+
{ eventType: 'npc.spoke', moodArousalDelta: 0.05 },
|
|
36
|
+
];
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Event creation helper
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
let eventCounter = 0;
|
|
41
|
+
function createCharacterEvent(type, npcId, data) {
|
|
42
|
+
return {
|
|
43
|
+
id: `char_${++eventCounter}_${Date.now()}`,
|
|
44
|
+
type,
|
|
45
|
+
timestamp: Date.now(),
|
|
46
|
+
entities: { actor: npcId },
|
|
47
|
+
data,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Perception filter
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Filter an event through the NPC's cognitive profile.
|
|
55
|
+
*
|
|
56
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
57
|
+
* @param event - The incoming event
|
|
58
|
+
* @returns 'pass' if the event should be processed, 'miss' if filtered out,
|
|
59
|
+
* 'amplify' if the event should be processed with heightened impact
|
|
60
|
+
*/
|
|
61
|
+
function filterPerception(trait, event) {
|
|
62
|
+
const mode = trait.cognitiveProfile.perception;
|
|
63
|
+
if (mode === 'accurate')
|
|
64
|
+
return 'pass';
|
|
65
|
+
if (mode === 'filtered') {
|
|
66
|
+
const filters = trait.perceptionFilters;
|
|
67
|
+
if (!filters)
|
|
68
|
+
return 'pass';
|
|
69
|
+
const eventType = event.type;
|
|
70
|
+
const eventTags = event.tags ?? [];
|
|
71
|
+
const allTokens = [eventType, ...eventTags];
|
|
72
|
+
// Check misses
|
|
73
|
+
for (const pattern of filters.misses) {
|
|
74
|
+
if (allTokens.some(t => t.includes(pattern)))
|
|
75
|
+
return 'miss';
|
|
76
|
+
}
|
|
77
|
+
// Check amplifies
|
|
78
|
+
for (const pattern of filters.amplifies) {
|
|
79
|
+
if (allTokens.some(t => t.includes(pattern)))
|
|
80
|
+
return 'amplify';
|
|
81
|
+
}
|
|
82
|
+
return 'pass';
|
|
83
|
+
}
|
|
84
|
+
// augmented — events pass through; hallucinations are injected separately
|
|
85
|
+
return 'pass';
|
|
86
|
+
}
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
// Hallucination injection
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
/**
|
|
91
|
+
* Inject hallucinated facts for an NPC with augmented perception.
|
|
92
|
+
*
|
|
93
|
+
* Only injects when the NPC's current lucidity state matches
|
|
94
|
+
* the perceived event's `when` condition.
|
|
95
|
+
*
|
|
96
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
97
|
+
* @param npcId - The NPC entity ID
|
|
98
|
+
* @param turn - Current turn number
|
|
99
|
+
* @returns Array of hallucination events (may be empty)
|
|
100
|
+
*/
|
|
101
|
+
function injectHallucinations(trait, npcId, turn) {
|
|
102
|
+
if (trait.cognitiveProfile.perception !== 'augmented')
|
|
103
|
+
return [];
|
|
104
|
+
const events = [];
|
|
105
|
+
for (const [topic, perceived] of Object.entries(trait.perceivedEvents)) {
|
|
106
|
+
if (trait.currentLucidityState === perceived.when) {
|
|
107
|
+
// Only inject once — don't re-hallucinate known facts
|
|
108
|
+
if (!trait.knows(topic)) {
|
|
109
|
+
trait.addFact(topic, 'hallucinated', 'certain', turn);
|
|
110
|
+
events.push(createCharacterEvent(character_messages_1.CharacterMessages.HALLUCINATION_ONSET, npcId, { topic, content: perceived.content }));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return events;
|
|
115
|
+
}
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
// Main observation handler
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
/**
|
|
120
|
+
* Process an event observed by an NPC through the character model.
|
|
121
|
+
*
|
|
122
|
+
* 1. Checks for CharacterModelTrait (returns early if absent — opt-in).
|
|
123
|
+
* 2. Filters event through cognitive profile perception mode.
|
|
124
|
+
* 3. Adds witnessed fact to knowledge.
|
|
125
|
+
* 4. Applies default state transition rules.
|
|
126
|
+
* 5. Checks lucidity triggers.
|
|
127
|
+
* 6. Injects hallucinated facts (augmented perception).
|
|
128
|
+
* 7. Emits observable behavior events for state changes.
|
|
129
|
+
*
|
|
130
|
+
* @param npc - The NPC entity
|
|
131
|
+
* @param event - The observed event
|
|
132
|
+
* @param world - The world model
|
|
133
|
+
* @param turn - Current turn number
|
|
134
|
+
* @param rules - State transition rules (defaults to DefaultStateTransitions)
|
|
135
|
+
* @returns Array of observable behavior events emitted by state changes
|
|
136
|
+
*/
|
|
137
|
+
function observeEvent(npc, event, world, turn, rules = exports.DefaultStateTransitions) {
|
|
138
|
+
const trait = npc.get(world_model_1.TraitType.CHARACTER_MODEL);
|
|
139
|
+
if (!trait)
|
|
140
|
+
return [];
|
|
141
|
+
const emittedEvents = [];
|
|
142
|
+
// 1. Perception filter
|
|
143
|
+
const perception = filterPerception(trait, event);
|
|
144
|
+
if (perception === 'miss')
|
|
145
|
+
return [];
|
|
146
|
+
const amplify = perception === 'amplify' ? 2.0 : 1.0;
|
|
147
|
+
// 2. Add witnessed fact
|
|
148
|
+
const factTopic = event.type;
|
|
149
|
+
if (!trait.knows(factTopic)) {
|
|
150
|
+
trait.addFact(factTopic, 'witnessed', 'certain', turn);
|
|
151
|
+
emittedEvents.push(createCharacterEvent(character_messages_1.CharacterMessages.FACT_LEARNED, npc.id, { topic: factTopic, source: 'witnessed' }));
|
|
152
|
+
}
|
|
153
|
+
// 3. Apply state transition rules
|
|
154
|
+
const previousMood = trait.getMood();
|
|
155
|
+
const previousThreat = trait.getThreat();
|
|
156
|
+
for (const rule of rules) {
|
|
157
|
+
if (rule.eventType !== event.type)
|
|
158
|
+
continue;
|
|
159
|
+
if (rule.threatDelta) {
|
|
160
|
+
trait.adjustThreat(rule.threatDelta * amplify);
|
|
161
|
+
}
|
|
162
|
+
if (rule.moodValenceDelta) {
|
|
163
|
+
trait.adjustMood(rule.moodValenceDelta * amplify, 0);
|
|
164
|
+
}
|
|
165
|
+
if (rule.moodArousalDelta) {
|
|
166
|
+
trait.adjustMood(0, rule.moodArousalDelta * amplify);
|
|
167
|
+
}
|
|
168
|
+
if (rule.dispositionDelta && event.entities.actor) {
|
|
169
|
+
trait.adjustDisposition(event.entities.actor, rule.dispositionDelta * amplify);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Emit mood change event if mood word changed
|
|
173
|
+
const newMood = trait.getMood();
|
|
174
|
+
if (newMood !== previousMood) {
|
|
175
|
+
emittedEvents.push(createCharacterEvent(character_messages_1.CharacterMessages.MOOD_CHANGED, npc.id, { from: previousMood, to: newMood }));
|
|
176
|
+
}
|
|
177
|
+
// Emit threat change event if threat word changed
|
|
178
|
+
const newThreat = trait.getThreat();
|
|
179
|
+
if (newThreat !== previousThreat) {
|
|
180
|
+
emittedEvents.push(createCharacterEvent(character_messages_1.CharacterMessages.THREAT_CHANGED, npc.id, { from: previousThreat, to: newThreat }));
|
|
181
|
+
}
|
|
182
|
+
// 4. Check lucidity triggers
|
|
183
|
+
if (trait.lucidityConfig) {
|
|
184
|
+
const previousState = trait.currentLucidityState;
|
|
185
|
+
for (const [triggerName, trigger] of Object.entries(trait.lucidityConfig.triggers)) {
|
|
186
|
+
// Trigger names can reference event types or predicate names
|
|
187
|
+
if (event.type === triggerName || (trait.hasPredicate(triggerName) && trait.evaluate(triggerName))) {
|
|
188
|
+
if (trigger.transition === 'immediate') {
|
|
189
|
+
trait.enterLucidityState(trigger.target);
|
|
190
|
+
}
|
|
191
|
+
// 'next turn' transitions are handled by lucidity decay / tick processing
|
|
192
|
+
// We store them as pending for the next tick cycle
|
|
193
|
+
if (trigger.transition === 'next turn' && trait.currentLucidityState !== trigger.target) {
|
|
194
|
+
trait.enterLucidityState(trigger.target);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (trait.currentLucidityState !== previousState) {
|
|
199
|
+
emittedEvents.push(createCharacterEvent(character_messages_1.CharacterMessages.LUCIDITY_SHIFT, npc.id, { from: previousState, to: trait.currentLucidityState }));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// 5. Inject hallucinations (augmented perception)
|
|
203
|
+
const hallucinationEvents = injectHallucinations(trait, npc.id, turn);
|
|
204
|
+
emittedEvents.push(...hallucinationEvents);
|
|
205
|
+
return emittedEvents;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=character-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-observer.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/character-observer.ts"],"names":[],"mappings":"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"}
|
package/npc/index.d.ts
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export * from './types';
|
|
7
7
|
export * from './npc-messages';
|
|
8
|
+
export * from './character-messages';
|
|
8
9
|
export { NpcService, createNpcService, registerNpcCombatResolver, clearNpcCombatResolver, type INpcService, type NpcCombatResolver, } from './npc-service';
|
|
10
|
+
export { observeEvent, filterPerception, injectHallucinations, DefaultStateTransitions, type StateTransitionRule, } from './character-observer';
|
|
11
|
+
export { processLucidityDecay, enterLucidityWindow, DECAY_RATE_TURNS, } from './lucidity-decay';
|
|
9
12
|
export { guardBehavior, passiveBehavior, createWandererBehavior, createFollowerBehavior, createPatrolBehavior, } from './behaviors';
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
package/npc/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
package/npc/index.js
CHANGED
|
@@ -19,17 +19,28 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.createPatrolBehavior = exports.createFollowerBehavior = exports.createWandererBehavior = exports.passiveBehavior = exports.guardBehavior = exports.clearNpcCombatResolver = exports.registerNpcCombatResolver = exports.createNpcService = exports.NpcService = void 0;
|
|
22
|
+
exports.createPatrolBehavior = exports.createFollowerBehavior = exports.createWandererBehavior = exports.passiveBehavior = exports.guardBehavior = exports.DECAY_RATE_TURNS = exports.enterLucidityWindow = exports.processLucidityDecay = exports.DefaultStateTransitions = exports.injectHallucinations = exports.filterPerception = exports.observeEvent = exports.clearNpcCombatResolver = exports.registerNpcCombatResolver = exports.createNpcService = exports.NpcService = void 0;
|
|
23
23
|
// Types
|
|
24
24
|
__exportStar(require("./types"), exports);
|
|
25
25
|
// Message IDs
|
|
26
26
|
__exportStar(require("./npc-messages"), exports);
|
|
27
|
+
__exportStar(require("./character-messages"), exports);
|
|
27
28
|
// Service
|
|
28
29
|
var npc_service_1 = require("./npc-service");
|
|
29
30
|
Object.defineProperty(exports, "NpcService", { enumerable: true, get: function () { return npc_service_1.NpcService; } });
|
|
30
31
|
Object.defineProperty(exports, "createNpcService", { enumerable: true, get: function () { return npc_service_1.createNpcService; } });
|
|
31
32
|
Object.defineProperty(exports, "registerNpcCombatResolver", { enumerable: true, get: function () { return npc_service_1.registerNpcCombatResolver; } });
|
|
32
33
|
Object.defineProperty(exports, "clearNpcCombatResolver", { enumerable: true, get: function () { return npc_service_1.clearNpcCombatResolver; } });
|
|
34
|
+
// Character model observation and lucidity (ADR-141)
|
|
35
|
+
var character_observer_1 = require("./character-observer");
|
|
36
|
+
Object.defineProperty(exports, "observeEvent", { enumerable: true, get: function () { return character_observer_1.observeEvent; } });
|
|
37
|
+
Object.defineProperty(exports, "filterPerception", { enumerable: true, get: function () { return character_observer_1.filterPerception; } });
|
|
38
|
+
Object.defineProperty(exports, "injectHallucinations", { enumerable: true, get: function () { return character_observer_1.injectHallucinations; } });
|
|
39
|
+
Object.defineProperty(exports, "DefaultStateTransitions", { enumerable: true, get: function () { return character_observer_1.DefaultStateTransitions; } });
|
|
40
|
+
var lucidity_decay_1 = require("./lucidity-decay");
|
|
41
|
+
Object.defineProperty(exports, "processLucidityDecay", { enumerable: true, get: function () { return lucidity_decay_1.processLucidityDecay; } });
|
|
42
|
+
Object.defineProperty(exports, "enterLucidityWindow", { enumerable: true, get: function () { return lucidity_decay_1.enterLucidityWindow; } });
|
|
43
|
+
Object.defineProperty(exports, "DECAY_RATE_TURNS", { enumerable: true, get: function () { return lucidity_decay_1.DECAY_RATE_TURNS; } });
|
|
33
44
|
// Standard behaviors
|
|
34
45
|
var behaviors_1 = require("./behaviors");
|
|
35
46
|
Object.defineProperty(exports, "guardBehavior", { enumerable: true, get: function () { return behaviors_1.guardBehavior; } });
|
package/npc/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,0CAAwB;AAExB,cAAc;AACd,iDAA+B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,0CAAwB;AAExB,cAAc;AACd,iDAA+B;AAC/B,uDAAqC;AAErC,UAAU;AACV,6CAOuB;AANrB,yGAAA,UAAU,OAAA;AACV,+GAAA,gBAAgB,OAAA;AAChB,wHAAA,yBAAyB,OAAA;AACzB,qHAAA,sBAAsB,OAAA;AAKxB,qDAAqD;AACrD,2DAM8B;AAL5B,kHAAA,YAAY,OAAA;AACZ,sHAAA,gBAAgB,OAAA;AAChB,0HAAA,oBAAoB,OAAA;AACpB,6HAAA,uBAAuB,OAAA;AAGzB,mDAI0B;AAHxB,sHAAA,oBAAoB,OAAA;AACpB,qHAAA,mBAAmB,OAAA;AACnB,kHAAA,gBAAgB,OAAA;AAGlB,qBAAqB;AACrB,yCAMqB;AALnB,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,mHAAA,sBAAsB,OAAA;AACtB,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lucidity decay processing (ADR-141)
|
|
3
|
+
*
|
|
4
|
+
* End-of-turn processing for NPC lucidity windows.
|
|
5
|
+
* When an NPC is in a lucid window with no sustaining trigger active,
|
|
6
|
+
* lucidity decays and eventually returns to baseline.
|
|
7
|
+
*
|
|
8
|
+
* Public interface: processLucidityDecay(), DECAY_RATE_TURNS.
|
|
9
|
+
* Owner context: stdlib / npc
|
|
10
|
+
*/
|
|
11
|
+
import { ISemanticEvent } from "../../core/index";
|
|
12
|
+
import { IFEntity, WorldModel, CharacterModelTrait, DecayRate } from "../../world-model/index";
|
|
13
|
+
/**
|
|
14
|
+
* Maps decay rate words to number of turns before baseline is restored.
|
|
15
|
+
* These are the window durations when no sustaining trigger is active.
|
|
16
|
+
*/
|
|
17
|
+
export declare const DECAY_RATE_TURNS: Record<DecayRate, number>;
|
|
18
|
+
/**
|
|
19
|
+
* Process end-of-turn lucidity decay for a single NPC.
|
|
20
|
+
*
|
|
21
|
+
* If the NPC has a CharacterModelTrait with an active lucidity window,
|
|
22
|
+
* decrements the window counter. When it reaches zero, the cognitive
|
|
23
|
+
* profile returns to baseline and a LUCIDITY_BASELINE_RESTORED event
|
|
24
|
+
* is emitted.
|
|
25
|
+
*
|
|
26
|
+
* If no lucidity config or no active window, returns empty array.
|
|
27
|
+
*
|
|
28
|
+
* @param npc - The NPC entity
|
|
29
|
+
* @param world - The world model (unused in current impl, reserved for future)
|
|
30
|
+
* @param turn - Current turn number (unused in current impl, reserved for future)
|
|
31
|
+
* @returns Array of events emitted (baseline restored, or empty)
|
|
32
|
+
*/
|
|
33
|
+
export declare function processLucidityDecay(npc: IFEntity, world: WorldModel, turn: number): ISemanticEvent[];
|
|
34
|
+
/**
|
|
35
|
+
* Initialize a lucidity window with the appropriate turn count
|
|
36
|
+
* based on the NPC's configured decay rate.
|
|
37
|
+
*
|
|
38
|
+
* Call this when entering a lucidity state via a trigger, so the
|
|
39
|
+
* window has the correct duration based on decayRate.
|
|
40
|
+
*
|
|
41
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
42
|
+
* @param targetState - The lucidity state to enter
|
|
43
|
+
*/
|
|
44
|
+
export declare function enterLucidityWindow(trait: CharacterModelTrait, targetState: string): void;
|
|
45
|
+
//# sourceMappingURL=lucidity-decay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucidity-decay.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/lucidity-decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,UAAU,EAEV,mBAAmB,EACnB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAO9B;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAItD,CAAC;AA0BF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,GACX,cAAc,EAAE,CAsBlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,MAAM,GAClB,IAAI,CAQN"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Lucidity decay processing (ADR-141)
|
|
4
|
+
*
|
|
5
|
+
* End-of-turn processing for NPC lucidity windows.
|
|
6
|
+
* When an NPC is in a lucid window with no sustaining trigger active,
|
|
7
|
+
* lucidity decays and eventually returns to baseline.
|
|
8
|
+
*
|
|
9
|
+
* Public interface: processLucidityDecay(), DECAY_RATE_TURNS.
|
|
10
|
+
* Owner context: stdlib / npc
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DECAY_RATE_TURNS = void 0;
|
|
14
|
+
exports.processLucidityDecay = processLucidityDecay;
|
|
15
|
+
exports.enterLucidityWindow = enterLucidityWindow;
|
|
16
|
+
const world_model_1 = require("../../world-model/index.js");
|
|
17
|
+
const character_messages_1 = require("./character-messages");
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Decay rate mapping
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
/**
|
|
22
|
+
* Maps decay rate words to number of turns before baseline is restored.
|
|
23
|
+
* These are the window durations when no sustaining trigger is active.
|
|
24
|
+
*/
|
|
25
|
+
exports.DECAY_RATE_TURNS = {
|
|
26
|
+
slow: 8,
|
|
27
|
+
moderate: 4,
|
|
28
|
+
fast: 2,
|
|
29
|
+
};
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Event helper
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
let decayEventCounter = 0;
|
|
34
|
+
function createDecayEvent(type, npcId, data) {
|
|
35
|
+
return {
|
|
36
|
+
id: `decay_${++decayEventCounter}_${Date.now()}`,
|
|
37
|
+
type,
|
|
38
|
+
timestamp: Date.now(),
|
|
39
|
+
entities: { actor: npcId },
|
|
40
|
+
data,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Main decay function
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
/**
|
|
47
|
+
* Process end-of-turn lucidity decay for a single NPC.
|
|
48
|
+
*
|
|
49
|
+
* If the NPC has a CharacterModelTrait with an active lucidity window,
|
|
50
|
+
* decrements the window counter. When it reaches zero, the cognitive
|
|
51
|
+
* profile returns to baseline and a LUCIDITY_BASELINE_RESTORED event
|
|
52
|
+
* is emitted.
|
|
53
|
+
*
|
|
54
|
+
* If no lucidity config or no active window, returns empty array.
|
|
55
|
+
*
|
|
56
|
+
* @param npc - The NPC entity
|
|
57
|
+
* @param world - The world model (unused in current impl, reserved for future)
|
|
58
|
+
* @param turn - Current turn number (unused in current impl, reserved for future)
|
|
59
|
+
* @returns Array of events emitted (baseline restored, or empty)
|
|
60
|
+
*/
|
|
61
|
+
function processLucidityDecay(npc, world, turn) {
|
|
62
|
+
const trait = npc.get(world_model_1.TraitType.CHARACTER_MODEL);
|
|
63
|
+
if (!trait)
|
|
64
|
+
return [];
|
|
65
|
+
if (!trait.lucidityConfig)
|
|
66
|
+
return [];
|
|
67
|
+
// No active window
|
|
68
|
+
if (trait.lucidityWindowTurns <= 0)
|
|
69
|
+
return [];
|
|
70
|
+
const previousState = trait.currentLucidityState;
|
|
71
|
+
const expired = trait.decayLucidity();
|
|
72
|
+
if (expired) {
|
|
73
|
+
return [
|
|
74
|
+
createDecayEvent(character_messages_1.CharacterMessages.LUCIDITY_BASELINE_RESTORED, npc.id, { from: previousState, to: trait.currentLucidityState }),
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Initialize a lucidity window with the appropriate turn count
|
|
81
|
+
* based on the NPC's configured decay rate.
|
|
82
|
+
*
|
|
83
|
+
* Call this when entering a lucidity state via a trigger, so the
|
|
84
|
+
* window has the correct duration based on decayRate.
|
|
85
|
+
*
|
|
86
|
+
* @param trait - The NPC's CharacterModelTrait
|
|
87
|
+
* @param targetState - The lucidity state to enter
|
|
88
|
+
*/
|
|
89
|
+
function enterLucidityWindow(trait, targetState) {
|
|
90
|
+
if (!trait.lucidityConfig) {
|
|
91
|
+
trait.enterLucidityState(targetState);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const turns = exports.DECAY_RATE_TURNS[trait.lucidityConfig.decayRate];
|
|
95
|
+
trait.enterLucidityState(targetState, turns);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=lucidity-decay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucidity-decay.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/lucidity-decay.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAiEH,oDA0BC;AAYD,kDAWC;AA/GD,sDAM8B;AAC9B,6DAAyD;AAEzD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;GAGG;AACU,QAAA,gBAAgB,GAA8B;IACzD,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B,SAAS,gBAAgB,CACvB,IAAY,EACZ,KAAe,EACf,IAA6B;IAE7B,OAAO;QACL,EAAE,EAAE,SAAS,EAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAChD,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,IAAI;KACL,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAClC,GAAa,EACb,KAAiB,EACjB,IAAY;IAEZ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,eAAe,CAAoC,CAAC;IACpF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAErC,mBAAmB;IACnB,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9C,MAAM,aAAa,GAAG,KAAK,CAAC,oBAAoB,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IAEtC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,gBAAgB,CACd,sCAAiB,CAAC,0BAA0B,EAC5C,GAAG,CAAC,EAAE,EACN,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,oBAAoB,EAAE,CACxD;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CACjC,KAA0B,EAC1B,WAAmB;IAEnB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,wBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/D,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC"}
|
package/npc/npc-service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npc-service.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/npc-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"npc-service.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/npc/npc-service.ts"],"names":[],"mappings":"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"}
|
package/npc/npc-service.js
CHANGED
|
@@ -11,6 +11,7 @@ exports.clearNpcCombatResolver = clearNpcCombatResolver;
|
|
|
11
11
|
exports.createNpcService = createNpcService;
|
|
12
12
|
const world_model_1 = require("../../world-model/index.js");
|
|
13
13
|
const npc_messages_1 = require("./npc-messages");
|
|
14
|
+
const lucidity_decay_1 = require("./lucidity-decay");
|
|
14
15
|
/**
|
|
15
16
|
* Module-level NPC combat resolver. Set via registerNpcCombatResolver().
|
|
16
17
|
* Uses globalThis to share across module boundaries (same pattern as interceptor registry).
|
|
@@ -91,6 +92,11 @@ class NpcService {
|
|
|
91
92
|
const actions = behavior.onTurn(npcContext);
|
|
92
93
|
const actionEvents = this.executeActions(npc, actions, world, random);
|
|
93
94
|
events.push(...actionEvents);
|
|
95
|
+
// Process lucidity decay for NPCs with character model (ADR-141)
|
|
96
|
+
if (npc.has(world_model_1.TraitType.CHARACTER_MODEL)) {
|
|
97
|
+
const decayEvents = (0, lucidity_decay_1.processLucidityDecay)(npc, world, turn);
|
|
98
|
+
events.push(...decayEvents);
|
|
99
|
+
}
|
|
94
100
|
}
|
|
95
101
|
return events;
|
|
96
102
|
}
|
package/npc/npc-service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npc-service.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/npc-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npc-service.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/npc/npc-service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA4CH,8DAEC;AAKD,wDAEC;AAimBD,4CAEC;AArpBD,sDAA2I;AAM3I,iDAA6C;AAC7C,qDAAwD;AAgBxD;;;GAGG;AACH,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAElE,SAAS,oBAAoB;IAC3B,OAAQ,UAAsC,CAAC,uBAAuB,CAAkC,CAAC;AAC3G,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CAAC,QAA2B;IAClE,UAAsC,CAAC,uBAAuB,CAAC,GAAG,QAAQ,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAQ,UAAsC,CAAC,uBAAuB,CAAC,CAAC;AAC1E,CAAC;AAgED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,IAAY,EACZ,IAA6B,EAC7B,KAAgB;IAEhB,OAAO;QACL,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC;QACxB,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;QACvC,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAa,UAAU;IACb,SAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;IAExD,gBAAgB,CAAC,QAAqB;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAuB;QAC1B,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAElE,6BAA6B;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvC,mBAAmB;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;YACpD,oEAAoE;YACpE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,SAAS;YAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAC;YAEF,mBAAmB;YACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAE7B,iEAAiE;YACjE,IAAI,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,IAAA,qCAAoB,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAAiB,EACjB,MAAgB,EAChB,MAAoB,EACpB,IAAY;QAEZ,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAE7C,uBAAuB;QACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;YACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,SAAS;YAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,EAAE,cAAc;gBAAE,SAAS;YAExC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAAiB,EACjB,MAAgB,EAChB,MAAoB,EACpB,IAAY;QAEZ,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEzD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;YACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,SAAS;YAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,EAAE,cAAc;gBAAE,SAAS;YAExC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,cAAc,EACd,MAAM,CACP,CAAC;YAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAAiB,EACjB,KAAe,EACf,KAAa,EACb,MAAoB,EACpB,IAAY;QAEZ,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;QACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC1B,iCAAiC;YACjC,OAAO;gBACL,WAAW,CACT,WAAW,EACX;oBACE,GAAG,EAAE,KAAK;oBACV,SAAS,EAAE,0BAAW,CAAC,eAAe;oBACtC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;iBAC5B,EACD,KAAK,CACN;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,aAAa,CACX,KAAiB,EACjB,KAAe,EACf,UAAoB,EACpB,MAAoB,EACpB,IAAY;QAEZ,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;QACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,UAAU;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,4DAA4D;IAEpD,aAAa,CAAC,KAAiB;QACrC,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;YAClD,wFAAwF;YACxF,OAAO,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,GAAa;QACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAEO,gBAAgB,CACtB,GAAa,EACb,KAAiB,EACjB,MAAoB,EACpB,IAAY,EACZ,cAAwB,EACxB,WAAqB;QAErB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE/C,OAAO;YACL,GAAG;YACH,KAAK;YACL,MAAM;YACN,SAAS,EAAE,IAAI;YACf,cAAc;YACd,WAAW;YACX,YAAY;YACZ,aAAa,EAAE,WAAW,KAAK,cAAc;YAC7C,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC;YACvD,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC;SACxE,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,KAAiB,EACjB,MAAgB,EAChB,GAAa;QAEb,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,KAAK;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,uBAAS,CAAC,GAAG,CAAa,CAAC;QACpD,MAAM,KAAK,GAA0D,EAAE,CAAC;QAExE,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAiB,CAAC;YACnC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,4EAA4E;gBAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,OAAO;oBAAE,SAAS;gBAChC,IAAI,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACtD,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAE7E,KAAK,CAAC,IAAI,CAAC;oBACT,SAAS,EAAE,SAA0B;oBACrC,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CACpB,GAAa,EACb,OAAoB,EACpB,KAAiB,EACjB,MAAoB;QAEpB,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CACnB,GAAa,EACb,MAAiB,EACjB,KAAiB,EACjB,MAAoB;QAEpB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAExD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEvD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAErD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAErD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAE/D,KAAK,OAAO;gBACV,OAAO;oBACL,WAAW,CACT,WAAW,EACX;wBACE,GAAG,EAAE,GAAG,CAAC,EAAE;wBACX,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,MAAM,EAAE,MAAM,CAAC,IAAI;qBACpB,EACD,GAAG,CAAC,EAAE,CACP;iBACF,CAAC;YAEJ,KAAK,OAAO;gBACV,OAAO;oBACL,WAAW,CACT,YAAY,EACZ;wBACE,GAAG,EAAE,GAAG,CAAC,EAAE;wBACX,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,MAAM,EAAE,MAAM,CAAC,IAAI;qBACpB,EACD,GAAG,CAAC,EAAE,CACP;iBACF,CAAC;YAEJ,KAAK,MAAM;gBACT,OAAO,EAAE,CAAC,CAAC,wBAAwB;YAErC,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;YAE1B;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,WAAW,CACjB,GAAa,EACb,SAAwB,EACxB,KAAiB;QAEjB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAE5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,uBAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,CAAC;QAE9C,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;QAC3D,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAE5B,eAAe;QACf,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEtC,OAAO;YACL,WAAW,CACT,WAAW,EACX;gBACE,GAAG,EAAE,GAAG,CAAC,EAAE;gBACX,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,WAAW;gBACf,SAAS;aACV,EACD,GAAG,CAAC,EAAE,CACP;SACF,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,GAAa,EACb,MAAgB,EAChB,KAAiB;QAEjB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAEhC,eAAe;QACf,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEjC,OAAO;YACL,WAAW,CACT,WAAW,EACX;gBACE,GAAG,EAAE,GAAG,CAAC,EAAE;gBACX,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,MAAM;aACX,EACD,GAAG,CAAC,EAAE,CACP;SACF,CAAC;IACJ,CAAC;IAEO,WAAW,CACjB,GAAa,EACb,QAAkB,EAClB,KAAiB;QAEjB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,+BAA+B;QAC/B,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAEnC,OAAO;YACL,WAAW,CACT,UAAU,EACV;gBACE,GAAG,EAAE,GAAG,CAAC,EAAE;gBACX,MAAM,EAAE,QAAQ;aACjB,EACD,GAAG,CAAC,EAAE,CACP;SACF,CAAC;IACJ,CAAC;IAEO,WAAW,CACjB,GAAa,EACb,QAAkB,EAClB,KAAiB;QAEjB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAE5B,8BAA8B;QAC9B,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAExC,OAAO;YACL,WAAW,CACT,aAAa,EACb;gBACE,GAAG,EAAE,GAAG,CAAC,EAAE;gBACX,MAAM,EAAE,QAAQ;aACjB,EACD,GAAG,CAAC,EAAE,CACP;SACF,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,GAAa,EACb,QAAkB,EAClB,KAAiB,EACjB,MAAoB;QAEpB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,sDAAsD;QACtD,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,yEAAyE;QACzE,OAAO;YACL,WAAW,CACT,cAAc,EACd;gBACE,GAAG,EAAE,GAAG,CAAC,EAAE;gBACX,MAAM,EAAE,QAAQ;aACjB,EACD,GAAG,CAAC,EAAE,CACP;SACF,CAAC;IACJ,CAAC;CACF;AAjgBD,gCAigBC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/stdlib",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.106",
|
|
4
4
|
"description": "Standard library for Sharpee IF Platform - actions, commands, and game mechanics",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@sharpee/core": "^0.9.
|
|
16
|
-
"@sharpee/if-domain": "^0.9.
|
|
17
|
-
"@sharpee/if-services": "^0.9.
|
|
18
|
-
"@sharpee/lang-en-us": "^0.9.
|
|
19
|
-
"@sharpee/world-model": "^0.9.
|
|
15
|
+
"@sharpee/core": "^0.9.106",
|
|
16
|
+
"@sharpee/if-domain": "^0.9.106",
|
|
17
|
+
"@sharpee/if-services": "^0.9.106",
|
|
18
|
+
"@sharpee/lang-en-us": "^0.9.106",
|
|
19
|
+
"@sharpee/world-model": "^0.9.106"
|
|
20
20
|
},
|
|
21
21
|
"keywords": [
|
|
22
22
|
"interactive-fiction",
|