@sharpee/if-domain 0.9.66-beta → 0.9.67-beta
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/changes.d.ts +8 -0
- package/changes.d.ts.map +1 -0
- package/changes.js +6 -0
- package/changes.js.map +1 -0
- package/contracts.d.ts +270 -0
- package/contracts.d.ts.map +1 -0
- package/contracts.js +6 -0
- package/contracts.js.map +1 -0
- package/events.d.ts +124 -0
- package/events.d.ts.map +1 -0
- package/events.js +123 -0
- package/events.js.map +1 -0
- package/grammar/grammar-builder.d.ts +507 -0
- package/grammar/grammar-builder.d.ts.map +1 -0
- package/grammar/grammar-builder.js +47 -0
- package/grammar/grammar-builder.js.map +1 -0
- package/grammar/grammar-engine.d.ts +65 -0
- package/grammar/grammar-engine.d.ts.map +1 -0
- package/grammar/grammar-engine.js +370 -0
- package/grammar/grammar-engine.js.map +1 -0
- package/grammar/index.d.ts +10 -0
- package/grammar/index.d.ts.map +1 -0
- package/grammar/index.js +26 -0
- package/grammar/index.js.map +1 -0
- package/grammar/pattern-compiler.d.ts +38 -0
- package/grammar/pattern-compiler.d.ts.map +1 -0
- package/grammar/pattern-compiler.js +22 -0
- package/grammar/pattern-compiler.js.map +1 -0
- package/grammar/scope-builder.d.ts +26 -0
- package/grammar/scope-builder.d.ts.map +1 -0
- package/grammar/scope-builder.js +67 -0
- package/grammar/scope-builder.js.map +1 -0
- package/grammar/vocabulary-provider.d.ts +163 -0
- package/grammar/vocabulary-provider.d.ts.map +1 -0
- package/grammar/vocabulary-provider.js +89 -0
- package/grammar/vocabulary-provider.js.map +1 -0
- package/index.d.ts +16 -0
- package/index.d.ts.map +1 -0
- package/index.js +40 -0
- package/index.js.map +1 -0
- package/language-provider.d.ts +106 -0
- package/language-provider.d.ts.map +1 -0
- package/language-provider.js +14 -0
- package/language-provider.js.map +1 -0
- package/package.json +1 -10
- package/parser-contracts/index.d.ts +10 -0
- package/parser-contracts/index.d.ts.map +1 -0
- package/parser-contracts/index.js +26 -0
- package/parser-contracts/index.js.map +1 -0
- package/parser-contracts/parser-factory.d.ts +46 -0
- package/parser-contracts/parser-factory.d.ts.map +1 -0
- package/parser-contracts/parser-factory.js +78 -0
- package/parser-contracts/parser-factory.js.map +1 -0
- package/parser-contracts/parser-internals.d.ts +125 -0
- package/parser-contracts/parser-internals.d.ts.map +1 -0
- package/parser-contracts/parser-internals.js +26 -0
- package/parser-contracts/parser-internals.js.map +1 -0
- package/parser-contracts/parser-types.d.ts +128 -0
- package/parser-contracts/parser-types.d.ts.map +1 -0
- package/parser-contracts/parser-types.js +9 -0
- package/parser-contracts/parser-types.js.map +1 -0
- package/parser-language-provider.d.ts +158 -0
- package/parser-language-provider.d.ts.map +1 -0
- package/parser-language-provider.js +10 -0
- package/parser-language-provider.js.map +1 -0
- package/sequencing.d.ts +53 -0
- package/sequencing.d.ts.map +1 -0
- package/sequencing.js +6 -0
- package/sequencing.js.map +1 -0
- package/vocabulary-contracts/index.d.ts +7 -0
- package/vocabulary-contracts/index.d.ts.map +1 -0
- package/vocabulary-contracts/index.js +23 -0
- package/vocabulary-contracts/index.js.map +1 -0
- package/vocabulary-contracts/vocabulary-adapters.d.ts +19 -0
- package/vocabulary-contracts/vocabulary-adapters.d.ts.map +1 -0
- package/vocabulary-contracts/vocabulary-adapters.js +73 -0
- package/vocabulary-contracts/vocabulary-adapters.js.map +1 -0
- package/vocabulary-contracts/vocabulary-registry.d.ts +98 -0
- package/vocabulary-contracts/vocabulary-registry.d.ts.map +1 -0
- package/vocabulary-contracts/vocabulary-registry.js +383 -0
- package/vocabulary-contracts/vocabulary-registry.js.map +1 -0
- package/vocabulary-contracts/vocabulary-types.d.ts +240 -0
- package/vocabulary-contracts/vocabulary-types.d.ts.map +1 -0
- package/vocabulary-contracts/vocabulary-types.js +64 -0
- package/vocabulary-contracts/vocabulary-types.js.map +1 -0
package/changes.d.ts
ADDED
package/changes.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../../../mnt/c/repotemp/sharpee/packages/if-domain/src/changes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC"}
|
package/changes.js
ADDED
package/changes.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../../../../../../../../mnt/c/repotemp/sharpee/packages/if-domain/src/changes.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/contracts.d.ts
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain contracts for world state changes and event processing
|
|
3
|
+
*/
|
|
4
|
+
import { ISemanticEvent, IEntity } from "./src/index";
|
|
5
|
+
/**
|
|
6
|
+
* Represents a change to the world state
|
|
7
|
+
*/
|
|
8
|
+
export interface WorldChange {
|
|
9
|
+
type: 'move' | 'create' | 'delete' | 'modify' | 'relate' | 'unrelate';
|
|
10
|
+
entityId: string;
|
|
11
|
+
field?: string;
|
|
12
|
+
oldValue?: unknown;
|
|
13
|
+
newValue?: unknown;
|
|
14
|
+
details?: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for world model behavior
|
|
18
|
+
*/
|
|
19
|
+
export interface WorldConfig {
|
|
20
|
+
enableSpatialIndex?: boolean;
|
|
21
|
+
maxDepth?: number;
|
|
22
|
+
strictMode?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* World state storage
|
|
26
|
+
*/
|
|
27
|
+
export interface WorldState {
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Options for finding entities
|
|
32
|
+
*/
|
|
33
|
+
export interface FindOptions {
|
|
34
|
+
includeScenery?: boolean;
|
|
35
|
+
includeInvisible?: boolean;
|
|
36
|
+
maxDepth?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Options for getting contents
|
|
40
|
+
*/
|
|
41
|
+
export interface ContentsOptions {
|
|
42
|
+
recursive?: boolean;
|
|
43
|
+
includeWorn?: boolean;
|
|
44
|
+
visibleOnly?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Result of processing events
|
|
48
|
+
*/
|
|
49
|
+
export interface ProcessedEvents {
|
|
50
|
+
/**
|
|
51
|
+
* Events that were successfully applied
|
|
52
|
+
*/
|
|
53
|
+
applied: ISemanticEvent[];
|
|
54
|
+
/**
|
|
55
|
+
* Events that failed validation
|
|
56
|
+
*/
|
|
57
|
+
failed: Array<{
|
|
58
|
+
event: ISemanticEvent;
|
|
59
|
+
reason: string;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* World changes that occurred
|
|
63
|
+
*/
|
|
64
|
+
changes: WorldChange[];
|
|
65
|
+
/**
|
|
66
|
+
* Events generated as reactions to the processed events
|
|
67
|
+
*/
|
|
68
|
+
reactions: ISemanticEvent[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Options for event processing
|
|
72
|
+
*/
|
|
73
|
+
export interface ProcessorOptions {
|
|
74
|
+
/**
|
|
75
|
+
* Whether to validate events before applying them
|
|
76
|
+
*/
|
|
77
|
+
validate?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Whether to preview changes before applying
|
|
80
|
+
*/
|
|
81
|
+
preview?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Maximum depth for reaction processing
|
|
84
|
+
*/
|
|
85
|
+
maxReactionDepth?: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Simple command input for actions
|
|
89
|
+
*
|
|
90
|
+
* This is what actions receive - no parser internals, just the essentials.
|
|
91
|
+
* The rich parsing data stays in world-model where it belongs.
|
|
92
|
+
*/
|
|
93
|
+
export interface CommandInput {
|
|
94
|
+
/** The action being executed */
|
|
95
|
+
actionId: string;
|
|
96
|
+
/** Direct object if present */
|
|
97
|
+
directObject?: EntityReference;
|
|
98
|
+
/** Indirect object if present */
|
|
99
|
+
indirectObject?: EntityReference;
|
|
100
|
+
/** Preposition used (if any) - raw text for backward compatibility */
|
|
101
|
+
preposition?: string;
|
|
102
|
+
/** Semantic properties derived from grammar */
|
|
103
|
+
semantics?: CommandSemantics;
|
|
104
|
+
/** Original input text for reference */
|
|
105
|
+
inputText: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Semantic properties derived from grammar rules
|
|
109
|
+
*
|
|
110
|
+
* These replace the need for actions to inspect verb.text, preposition variations,
|
|
111
|
+
* or modify parsed commands. The grammar rules provide normalized semantic meaning.
|
|
112
|
+
*/
|
|
113
|
+
export interface CommandSemantics {
|
|
114
|
+
/** How the action should be performed */
|
|
115
|
+
manner?: 'normal' | 'careful' | 'careless' | 'forceful' | 'stealthy' | 'quick';
|
|
116
|
+
/** Spatial relationship (normalized from preposition variations) */
|
|
117
|
+
spatialRelation?: 'in' | 'on' | 'under' | 'behind' | 'beside' | 'above' | 'below';
|
|
118
|
+
/** Movement direction (normalized from direction variations) */
|
|
119
|
+
direction?: 'north' | 'south' | 'east' | 'west' | 'up' | 'down' | 'northeast' | 'northwest' | 'southeast' | 'southwest' | 'in' | 'out';
|
|
120
|
+
/** Whether a preposition was implicit in the grammar */
|
|
121
|
+
implicitPreposition?: boolean;
|
|
122
|
+
/** Whether a direction was implicit */
|
|
123
|
+
implicitDirection?: boolean;
|
|
124
|
+
/** Action-specific semantics */
|
|
125
|
+
custom?: Record<string, any>;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Reference to an entity in a command
|
|
129
|
+
*/
|
|
130
|
+
export interface EntityReference {
|
|
131
|
+
/** The resolved entity */
|
|
132
|
+
entity: IEntity;
|
|
133
|
+
/** The text that matched this entity */
|
|
134
|
+
matchedText: string;
|
|
135
|
+
/** How the entity was referenced */
|
|
136
|
+
referenceType?: 'name' | 'pronoun' | 'definite' | 'indefinite';
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Validation result from an action
|
|
140
|
+
*/
|
|
141
|
+
export interface ValidationResult {
|
|
142
|
+
/** Whether the action can proceed */
|
|
143
|
+
valid: boolean;
|
|
144
|
+
/** Error code if validation failed */
|
|
145
|
+
error?: string;
|
|
146
|
+
/** Parameters for error message formatting */
|
|
147
|
+
params?: Record<string, any>;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Context provided to actions
|
|
151
|
+
*
|
|
152
|
+
* This is the contract for what actions can access.
|
|
153
|
+
* No world-model internals, no parser details.
|
|
154
|
+
*/
|
|
155
|
+
export interface IActionContext {
|
|
156
|
+
/** The player entity */
|
|
157
|
+
readonly player: IEntity;
|
|
158
|
+
/** The player's current location */
|
|
159
|
+
readonly currentLocation: IEntity;
|
|
160
|
+
/** The command being executed */
|
|
161
|
+
readonly command: CommandInput;
|
|
162
|
+
/** The action being executed */
|
|
163
|
+
readonly action: IAction;
|
|
164
|
+
/**
|
|
165
|
+
* Check if an entity is visible to the player
|
|
166
|
+
*/
|
|
167
|
+
canSee(entity: IEntity): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Check if an entity is reachable by the player
|
|
170
|
+
*/
|
|
171
|
+
canReach(entity: IEntity): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Check if an entity can be taken by the player
|
|
174
|
+
*/
|
|
175
|
+
canTake(entity: IEntity): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Check if an entity is in scope for the player
|
|
178
|
+
*/
|
|
179
|
+
isInScope(entity: IEntity): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Get all visible entities
|
|
182
|
+
*/
|
|
183
|
+
getVisible(): IEntity[];
|
|
184
|
+
/**
|
|
185
|
+
* Get all entities in scope
|
|
186
|
+
*/
|
|
187
|
+
getInScope(): IEntity[];
|
|
188
|
+
/**
|
|
189
|
+
* Get an entity by ID
|
|
190
|
+
*/
|
|
191
|
+
getEntity(entityId: string): IEntity | undefined;
|
|
192
|
+
/**
|
|
193
|
+
* Get an entity's location
|
|
194
|
+
*/
|
|
195
|
+
getEntityLocation(entityId: string): string | undefined;
|
|
196
|
+
/**
|
|
197
|
+
* Get entities contained within an entity
|
|
198
|
+
*/
|
|
199
|
+
getEntityContents(entityId: string): IEntity[];
|
|
200
|
+
/**
|
|
201
|
+
* Get the room containing an entity
|
|
202
|
+
*/
|
|
203
|
+
getContainingRoom(entityId: string): IEntity | undefined;
|
|
204
|
+
/**
|
|
205
|
+
* Get a world capability (scoring, etc.)
|
|
206
|
+
*/
|
|
207
|
+
getWorldCapability(name: string): any;
|
|
208
|
+
/**
|
|
209
|
+
* Move an entity to a new location
|
|
210
|
+
*/
|
|
211
|
+
moveEntity(entityId: string, newLocationId: string): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Create an event
|
|
214
|
+
*/
|
|
215
|
+
event(type: string, data: any): ISemanticEvent;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Action contract
|
|
219
|
+
*
|
|
220
|
+
* Actions implement game verbs. They validate and execute commands.
|
|
221
|
+
*/
|
|
222
|
+
export interface IAction {
|
|
223
|
+
/** Unique identifier */
|
|
224
|
+
id: string;
|
|
225
|
+
/** Validate if the action can be executed */
|
|
226
|
+
validate(context: IActionContext): ValidationResult;
|
|
227
|
+
/** Execute the action and return events */
|
|
228
|
+
execute(context: IActionContext): ISemanticEvent[];
|
|
229
|
+
/** Required message IDs for this action */
|
|
230
|
+
requiredMessages?: string[];
|
|
231
|
+
/** Optional description for help/documentation */
|
|
232
|
+
descriptionMessageId?: string;
|
|
233
|
+
/** Optional examples for help/documentation */
|
|
234
|
+
examplesMessageId?: string;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Action registry contract
|
|
238
|
+
*/
|
|
239
|
+
export interface IActionRegistry {
|
|
240
|
+
/** Register an action */
|
|
241
|
+
register(action: IAction): void;
|
|
242
|
+
/** Get an action by ID */
|
|
243
|
+
get(actionId: string): IAction | undefined;
|
|
244
|
+
/** Get all registered actions */
|
|
245
|
+
getAll(): IAction[];
|
|
246
|
+
/** Check if an action exists */
|
|
247
|
+
has(actionId: string): boolean;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Scope levels for entity visibility and accessibility
|
|
251
|
+
*/
|
|
252
|
+
export type ScopeLevel = 'carried' | 'reachable' | 'visible' | 'audible' | 'detectable' | 'out_of_scope';
|
|
253
|
+
/**
|
|
254
|
+
* Basic scope resolver interface for actions
|
|
255
|
+
*/
|
|
256
|
+
export interface IScopeResolver {
|
|
257
|
+
/**
|
|
258
|
+
* Get the highest level of scope for a target entity
|
|
259
|
+
*/
|
|
260
|
+
getScope(actor: IEntity, target: IEntity): ScopeLevel;
|
|
261
|
+
/**
|
|
262
|
+
* Check if actor can see the target
|
|
263
|
+
*/
|
|
264
|
+
canSee(actor: IEntity, target: IEntity): boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Check if actor can physically reach the target
|
|
267
|
+
*/
|
|
268
|
+
canReach(actor: IEntity, target: IEntity): boolean;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../../mnt/c/repotemp/sharpee/packages/if-domain/src/contracts.ts"],"names":[],"mappings":"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"}
|
package/contracts.js
ADDED
package/contracts.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../../../../../mnt/c/repotemp/sharpee/packages/if-domain/src/contracts.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/events.d.ts
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Interactive Fiction events.
|
|
3
|
+
*
|
|
4
|
+
* These are the core events that can occur in the IF world model.
|
|
5
|
+
* Extensions can add their own events using namespaced identifiers.
|
|
6
|
+
*/
|
|
7
|
+
export declare const IFEvents: {
|
|
8
|
+
readonly TAKEN: "taken";
|
|
9
|
+
readonly DROPPED: "dropped";
|
|
10
|
+
readonly MOVED: "moved";
|
|
11
|
+
readonly EXAMINED: "examined";
|
|
12
|
+
readonly PUT_IN: "put_in";
|
|
13
|
+
readonly PUT_ON: "put_on";
|
|
14
|
+
readonly REMOVED_FROM: "removed_from";
|
|
15
|
+
readonly ITEM_PUT_ON: "item_put_on";
|
|
16
|
+
readonly ITEM_REMOVED_FROM: "item_removed_from";
|
|
17
|
+
readonly CONTAINER_EMPTIED: "container_emptied";
|
|
18
|
+
readonly CONTAINER_NOT_OPEN: "container_not_open";
|
|
19
|
+
readonly NOT_A_CONTAINER: "not_a_container";
|
|
20
|
+
readonly NOT_A_SUPPORTER: "not_a_supporter";
|
|
21
|
+
readonly DOESNT_FIT: "doesnt_fit";
|
|
22
|
+
readonly OPENED: "opened";
|
|
23
|
+
readonly CLOSED: "closed";
|
|
24
|
+
readonly NOT_OPENABLE: "not_openable";
|
|
25
|
+
readonly LOCKED: "locked";
|
|
26
|
+
readonly UNLOCKED: "unlocked";
|
|
27
|
+
readonly CONTAINER_LOCKED: "container_locked";
|
|
28
|
+
readonly CONTAINER_UNLOCKED: "container_unlocked";
|
|
29
|
+
readonly ALREADY_LOCKED: "already_locked";
|
|
30
|
+
readonly ALREADY_UNLOCKED: "already_unlocked";
|
|
31
|
+
readonly UNLOCK_FAILED: "unlock_failed";
|
|
32
|
+
readonly NOT_LOCKABLE: "not_lockable";
|
|
33
|
+
readonly SWITCHED_ON: "switched_on";
|
|
34
|
+
readonly SWITCHED_OFF: "switched_off";
|
|
35
|
+
readonly DEVICE_SWITCHED_ON: "device_switched_on";
|
|
36
|
+
readonly DEVICE_SWITCHED_OFF: "device_switched_off";
|
|
37
|
+
readonly DEVICE_ACTIVATED: "device_activated";
|
|
38
|
+
readonly WORN: "worn";
|
|
39
|
+
readonly REMOVED: "removed";
|
|
40
|
+
readonly EATEN: "eaten";
|
|
41
|
+
readonly DRUNK: "drunk";
|
|
42
|
+
readonly ITEM_EATEN: "item_eaten";
|
|
43
|
+
readonly ITEM_DRUNK: "item_drunk";
|
|
44
|
+
readonly ITEM_DESTROYED: "item_destroyed";
|
|
45
|
+
readonly ACTOR_MOVED: "actor_moved";
|
|
46
|
+
readonly ACTOR_ENTERED: "actor_entered";
|
|
47
|
+
readonly ACTOR_EXITED: "actor_exited";
|
|
48
|
+
readonly MOVEMENT_BLOCKED: "movement_blocked";
|
|
49
|
+
readonly ENTERED: "entered";
|
|
50
|
+
readonly EXITED: "exited";
|
|
51
|
+
readonly EVACUATED: "evacuated";
|
|
52
|
+
readonly CLIMBED: "climbed";
|
|
53
|
+
readonly ROOM_ENTERED: "room_entered";
|
|
54
|
+
readonly ROOM_EXITED: "room_exited";
|
|
55
|
+
readonly ROOM_DESCRIBED: "room_described";
|
|
56
|
+
readonly ROOM_FIRST_ENTERED: "room_first_entered";
|
|
57
|
+
readonly ROOM_ILLUMINATED: "room_illuminated";
|
|
58
|
+
readonly ROOM_DARKENED: "room_darkened";
|
|
59
|
+
readonly NEW_EXIT_REVEALED: "new_exit_revealed";
|
|
60
|
+
readonly LIGHT_CHANGED: "light_changed";
|
|
61
|
+
readonly LOCATION_ILLUMINATED: "location_illuminated";
|
|
62
|
+
readonly LOCATION_DARKENED: "location_darkened";
|
|
63
|
+
readonly FUEL_DEPLETED: "fuel_depleted";
|
|
64
|
+
readonly FUEL_LOW: "fuel_low";
|
|
65
|
+
readonly REFUELED: "refueled";
|
|
66
|
+
readonly READ: "read";
|
|
67
|
+
readonly SEARCHED: "searched";
|
|
68
|
+
readonly LISTENED: "listened";
|
|
69
|
+
readonly SMELLED: "smelled";
|
|
70
|
+
readonly TOUCHED: "touched";
|
|
71
|
+
readonly GIVEN: "given";
|
|
72
|
+
readonly SHOWN: "shown";
|
|
73
|
+
readonly THROWN: "thrown";
|
|
74
|
+
readonly PUSHED: "pushed";
|
|
75
|
+
readonly PULLED: "pulled";
|
|
76
|
+
readonly TURNED: "turned";
|
|
77
|
+
readonly USED: "used";
|
|
78
|
+
readonly CUSTOM_MESSAGE: "custom_message";
|
|
79
|
+
readonly VISIBILITY_CHANGED: "visibility_changed";
|
|
80
|
+
readonly ACTION_PREVENTED: "action_prevented";
|
|
81
|
+
readonly ACTION_FAILED: "action_failed";
|
|
82
|
+
readonly ACTION_SUCCEEDED: "action_succeeded";
|
|
83
|
+
readonly WAITED: "waited";
|
|
84
|
+
readonly SCORE_DISPLAYED: "score_displayed";
|
|
85
|
+
readonly HELP_DISPLAYED: "help_displayed";
|
|
86
|
+
readonly ABOUT_DISPLAYED: "about_displayed";
|
|
87
|
+
readonly SCORE_GAINED: "if.event.score_gained";
|
|
88
|
+
readonly SCORE_LOST: "if.event.score_lost";
|
|
89
|
+
};
|
|
90
|
+
export type IFEventType = typeof IFEvents[keyof typeof IFEvents];
|
|
91
|
+
/**
|
|
92
|
+
* Event categories for filtering and handling
|
|
93
|
+
*/
|
|
94
|
+
export declare const IFEventCategory: {
|
|
95
|
+
readonly MANIPULATION: "manipulation";
|
|
96
|
+
readonly MOVEMENT: "movement";
|
|
97
|
+
readonly STATE_CHANGE: "state_change";
|
|
98
|
+
readonly PERCEPTION: "perception";
|
|
99
|
+
readonly META: "meta";
|
|
100
|
+
};
|
|
101
|
+
export type IFEventCategoryType = typeof IFEventCategory[keyof typeof IFEventCategory];
|
|
102
|
+
/**
|
|
103
|
+
* Event processor wiring types (ADR-086)
|
|
104
|
+
*
|
|
105
|
+
* These types allow WorldModel to wire its event handlers to the engine's
|
|
106
|
+
* EventProcessor without creating a circular dependency.
|
|
107
|
+
*/
|
|
108
|
+
import type { ISemanticEvent } from "./src/index";
|
|
109
|
+
/**
|
|
110
|
+
* Callback for registering a handler with the event processor.
|
|
111
|
+
* The handler returns an array (Effect[] in practice, but typed loosely to avoid circular deps).
|
|
112
|
+
*/
|
|
113
|
+
export type EventProcessorRegisterFn = (eventType: string, handler: (event: ISemanticEvent) => unknown[]) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Interface for wiring WorldModel handlers to EventProcessor.
|
|
116
|
+
* WorldModel receives this during engine initialization.
|
|
117
|
+
*/
|
|
118
|
+
export interface IEventProcessorWiring {
|
|
119
|
+
/**
|
|
120
|
+
* Register a handler with the event processor
|
|
121
|
+
*/
|
|
122
|
+
registerHandler: EventProcessorRegisterFn;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=events.d.ts.map
|
package/events.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../mnt/c/repotemp/sharpee/packages/if-domain/src/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHX,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEvF;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,EAAE,KAC1C,IAAI,CAAC;AAEV;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,eAAe,EAAE,wBAAwB,CAAC;CAC3C"}
|
package/events.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Standard Interactive Fiction events.
|
|
4
|
+
*
|
|
5
|
+
* These are the core events that can occur in the IF world model.
|
|
6
|
+
* Extensions can add their own events using namespaced identifiers.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.IFEventCategory = exports.IFEvents = void 0;
|
|
10
|
+
exports.IFEvents = {
|
|
11
|
+
// Core object manipulation
|
|
12
|
+
TAKEN: 'taken',
|
|
13
|
+
DROPPED: 'dropped',
|
|
14
|
+
MOVED: 'moved',
|
|
15
|
+
EXAMINED: 'examined',
|
|
16
|
+
// Container/supporter events
|
|
17
|
+
PUT_IN: 'put_in',
|
|
18
|
+
PUT_ON: 'put_on',
|
|
19
|
+
REMOVED_FROM: 'removed_from',
|
|
20
|
+
ITEM_PUT_ON: 'item_put_on',
|
|
21
|
+
ITEM_REMOVED_FROM: 'item_removed_from',
|
|
22
|
+
CONTAINER_EMPTIED: 'container_emptied',
|
|
23
|
+
CONTAINER_NOT_OPEN: 'container_not_open',
|
|
24
|
+
NOT_A_CONTAINER: 'not_a_container',
|
|
25
|
+
NOT_A_SUPPORTER: 'not_a_supporter',
|
|
26
|
+
DOESNT_FIT: 'doesnt_fit',
|
|
27
|
+
// Openable events
|
|
28
|
+
OPENED: 'opened',
|
|
29
|
+
CLOSED: 'closed',
|
|
30
|
+
NOT_OPENABLE: 'not_openable',
|
|
31
|
+
// Lockable events
|
|
32
|
+
LOCKED: 'locked',
|
|
33
|
+
UNLOCKED: 'unlocked',
|
|
34
|
+
CONTAINER_LOCKED: 'container_locked',
|
|
35
|
+
CONTAINER_UNLOCKED: 'container_unlocked',
|
|
36
|
+
ALREADY_LOCKED: 'already_locked',
|
|
37
|
+
ALREADY_UNLOCKED: 'already_unlocked',
|
|
38
|
+
UNLOCK_FAILED: 'unlock_failed',
|
|
39
|
+
NOT_LOCKABLE: 'not_lockable',
|
|
40
|
+
// Switchable events
|
|
41
|
+
SWITCHED_ON: 'switched_on',
|
|
42
|
+
SWITCHED_OFF: 'switched_off',
|
|
43
|
+
DEVICE_SWITCHED_ON: 'device_switched_on',
|
|
44
|
+
DEVICE_SWITCHED_OFF: 'device_switched_off',
|
|
45
|
+
DEVICE_ACTIVATED: 'device_activated',
|
|
46
|
+
// Wearable events
|
|
47
|
+
WORN: 'worn',
|
|
48
|
+
REMOVED: 'removed',
|
|
49
|
+
// Edible events
|
|
50
|
+
EATEN: 'eaten',
|
|
51
|
+
DRUNK: 'drunk',
|
|
52
|
+
ITEM_EATEN: 'item_eaten',
|
|
53
|
+
ITEM_DRUNK: 'item_drunk',
|
|
54
|
+
ITEM_DESTROYED: 'item_destroyed',
|
|
55
|
+
// Movement events
|
|
56
|
+
ACTOR_MOVED: 'actor_moved',
|
|
57
|
+
ACTOR_ENTERED: 'actor_entered',
|
|
58
|
+
ACTOR_EXITED: 'actor_exited',
|
|
59
|
+
MOVEMENT_BLOCKED: 'movement_blocked',
|
|
60
|
+
// Entry/exit events
|
|
61
|
+
ENTERED: 'entered',
|
|
62
|
+
EXITED: 'exited',
|
|
63
|
+
EVACUATED: 'evacuated',
|
|
64
|
+
CLIMBED: 'climbed',
|
|
65
|
+
// Room events
|
|
66
|
+
ROOM_ENTERED: 'room_entered',
|
|
67
|
+
ROOM_EXITED: 'room_exited',
|
|
68
|
+
ROOM_DESCRIBED: 'room_described',
|
|
69
|
+
ROOM_FIRST_ENTERED: 'room_first_entered',
|
|
70
|
+
ROOM_ILLUMINATED: 'room_illuminated',
|
|
71
|
+
ROOM_DARKENED: 'room_darkened',
|
|
72
|
+
NEW_EXIT_REVEALED: 'new_exit_revealed',
|
|
73
|
+
// Light events
|
|
74
|
+
LIGHT_CHANGED: 'light_changed',
|
|
75
|
+
LOCATION_ILLUMINATED: 'location_illuminated',
|
|
76
|
+
LOCATION_DARKENED: 'location_darkened',
|
|
77
|
+
FUEL_DEPLETED: 'fuel_depleted',
|
|
78
|
+
FUEL_LOW: 'fuel_low',
|
|
79
|
+
REFUELED: 'refueled',
|
|
80
|
+
// Reading events
|
|
81
|
+
READ: 'read',
|
|
82
|
+
// Observation events
|
|
83
|
+
SEARCHED: 'searched',
|
|
84
|
+
LISTENED: 'listened',
|
|
85
|
+
SMELLED: 'smelled',
|
|
86
|
+
TOUCHED: 'touched',
|
|
87
|
+
// Social/interaction events
|
|
88
|
+
GIVEN: 'given',
|
|
89
|
+
SHOWN: 'shown',
|
|
90
|
+
THROWN: 'thrown',
|
|
91
|
+
// Device manipulation events
|
|
92
|
+
PUSHED: 'pushed',
|
|
93
|
+
PULLED: 'pulled',
|
|
94
|
+
TURNED: 'turned',
|
|
95
|
+
USED: 'used',
|
|
96
|
+
// General message events
|
|
97
|
+
CUSTOM_MESSAGE: 'custom_message',
|
|
98
|
+
// Visibility events
|
|
99
|
+
VISIBILITY_CHANGED: 'visibility_changed',
|
|
100
|
+
// Action meta-events
|
|
101
|
+
ACTION_PREVENTED: 'action_prevented',
|
|
102
|
+
ACTION_FAILED: 'action_failed',
|
|
103
|
+
ACTION_SUCCEEDED: 'action_succeeded',
|
|
104
|
+
// Meta action events
|
|
105
|
+
WAITED: 'waited',
|
|
106
|
+
SCORE_DISPLAYED: 'score_displayed',
|
|
107
|
+
HELP_DISPLAYED: 'help_displayed',
|
|
108
|
+
ABOUT_DISPLAYED: 'about_displayed',
|
|
109
|
+
// Scoring events (ADR-085)
|
|
110
|
+
SCORE_GAINED: 'if.event.score_gained',
|
|
111
|
+
SCORE_LOST: 'if.event.score_lost',
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Event categories for filtering and handling
|
|
115
|
+
*/
|
|
116
|
+
exports.IFEventCategory = {
|
|
117
|
+
MANIPULATION: 'manipulation',
|
|
118
|
+
MOVEMENT: 'movement',
|
|
119
|
+
STATE_CHANGE: 'state_change',
|
|
120
|
+
PERCEPTION: 'perception',
|
|
121
|
+
META: 'meta',
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=events.js.map
|
package/events.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../../../../../mnt/c/repotemp/sharpee/packages/if-domain/src/events.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,QAAQ,GAAG;IACtB,2BAA2B;IAC3B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IAEpB,+BAA+B;IAC/B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,YAAY;IAExB,kBAAkB;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAE5B,kBAAkB;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAE5B,oBAAoB;IACpB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,kBAAkB;IAEpC,kBAAkB;IAClB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAElB,gBAAgB;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAEhC,kBAAkB;IAClB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IAEpC,oBAAoB;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAElB,cAAc;IACd,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IAEtC,eAAe;IACf,aAAa,EAAE,eAAe;IAC9B,oBAAoB,EAAE,sBAAsB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IAEpB,iBAAiB;IACjB,IAAI,EAAE,MAAM;IAEZ,qBAAqB;IACrB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAElB,4BAA4B;IAC5B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAEhB,6BAA6B;IAC7B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IAEZ,yBAAyB;IACzB,cAAc,EAAE,gBAAgB;IAEhC,oBAAoB;IACpB,kBAAkB,EAAE,oBAAoB;IAExC,qBAAqB;IACrB,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IAEpC,qBAAqB;IACrB,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAElC,2BAA2B;IAC3B,YAAY,EAAE,uBAAuB;IACrC,UAAU,EAAE,qBAAqB;CACzB,CAAC;AAIX;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACJ,CAAC"}
|