@sharpee/engine 0.9.93 → 0.9.96

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.
@@ -9,8 +9,8 @@
9
9
  *
10
10
  * All event creation is owned by the action components themselves.
11
11
  */
12
- import { ISystemEvent, IGenericEventSource } from "../core/index";
13
- import { IParser, IParsedCommand } from "../world-model/index";
12
+ import { ISystemEvent, IGenericEventSource, Result } from "../core/index";
13
+ import { IParser, IValidatedCommand, IParsedCommand, IValidationError } from "../world-model/index";
14
14
  import { WorldModel } from "../world-model/index";
15
15
  import { EventProcessor } from "../event-processor/index";
16
16
  import { ActionRegistry } from "../stdlib/index";
@@ -33,6 +33,13 @@ export declare class CommandExecutor {
33
33
  private scopeResolver?;
34
34
  private parsedCommandTransformers;
35
35
  constructor(world: WorldModel, actionRegistry: ActionRegistry, eventProcessor: EventProcessor, parser: IParser, systemEvents?: IGenericEventSource<ISystemEvent>);
36
+ /**
37
+ * Validate a parsed command against the world model.
38
+ *
39
+ * @param command - The parsed command to validate
40
+ * @returns Result with validated command or validation error
41
+ */
42
+ validateCommand(command: IParsedCommand): Result<IValidatedCommand, IValidationError>;
36
43
  /**
37
44
  * Register a transformer that can modify parsed commands before validation.
38
45
  * Transformers are called in order of registration.
@@ -1 +1 @@
1
- {"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/command-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAkB,YAAY,EAAE,mBAAmB,EAA0B,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,OAAO,EAAqB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGlF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,cAAc,EAKf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAYhE;;;;;;;;GAQG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,UAAU,KACd,cAAc,CAAC;AAEpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,yBAAyB,CAAkC;gBAGjE,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC;IAgBlD;;;;;OAKG;IACH,gCAAgC,CAAC,WAAW,EAAE,wBAAwB,GAAG,IAAI;IAI7E;;;;;OAKG;IACH,kCAAkC,CAAC,WAAW,EAAE,wBAAwB,GAAG,OAAO;IAS5E,OAAO,CACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,UAAU,CAAC;CA4SvB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,GAC/C,eAAe,CAEjB"}
1
+ {"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/command-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAkB,YAAY,EAAE,mBAAmB,EAA0B,MAAM,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,cAAc,EAKf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWhE;;;;;;;;GAQG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,UAAU,KACd,cAAc,CAAC;AAEpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,yBAAyB,CAAkC;gBAGjE,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC;IAgBlD;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IAIrF;;;;;OAKG;IACH,gCAAgC,CAAC,WAAW,EAAE,wBAAwB,GAAG,IAAI;IAI7E;;;;;OAKG;IACH,kCAAkC,CAAC,WAAW,EAAE,wBAAwB,GAAG,OAAO;IAS5E,OAAO,CACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,UAAU,CAAC;CA8SvB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,GAC/C,eAAe,CAEjB"}
@@ -17,7 +17,6 @@ const core_1 = require("../core/index.js");
17
17
  const parser_interface_1 = require("./parser-interface");
18
18
  const shared_data_keys_1 = require("./shared-data-keys");
19
19
  const stdlib_1 = require("../stdlib/index.js");
20
- const event_sequencer_1 = require("./event-sequencer");
21
20
  const action_context_factory_1 = require("./action-context-factory");
22
21
  const capability_dispatch_helper_1 = require("./capability-dispatch-helper");
23
22
  class CommandExecutor {
@@ -44,6 +43,15 @@ class CommandExecutor {
44
43
  this.actionRegistry = actionRegistry;
45
44
  this.eventProcessor = eventProcessor;
46
45
  }
46
+ /**
47
+ * Validate a parsed command against the world model.
48
+ *
49
+ * @param command - The parsed command to validate
50
+ * @returns Result with validated command or validation error
51
+ */
52
+ validateCommand(command) {
53
+ return this.validator.validate(command);
54
+ }
47
55
  /**
48
56
  * Register a transformer that can modify parsed commands before validation.
49
57
  * Transformers are called in order of registration.
@@ -69,7 +77,6 @@ class CommandExecutor {
69
77
  }
70
78
  async execute(input, world, context, config) {
71
79
  const turn = context.currentTurn;
72
- event_sequencer_1.eventSequencer.resetTurn(turn);
73
80
  // Timing tracking
74
81
  const startTime = config?.collectTiming ? Date.now() : 0;
75
82
  let parseTime = 0;
@@ -88,7 +95,7 @@ class CommandExecutor {
88
95
  parseTime = Date.now() - parseStart;
89
96
  }
90
97
  if (!parseResult.success) {
91
- throw new Error(`Parse failed: ${parseResult.error.code}`);
98
+ throw new Error(`Parse failed: ${parseResult.error?.code || 'UNKNOWN'}`);
92
99
  }
93
100
  // Phase 1.5: Apply parsed command transformers
94
101
  // Allows stories to modify parsed commands before validation
@@ -104,8 +111,11 @@ class CommandExecutor {
104
111
  const details = validationResult.error.details || {};
105
112
  const candidates = details.ambiguousEntities || [];
106
113
  // Emit client.query event for disambiguation
107
- const queryEvent = event_sequencer_1.eventSequencer.sequence({
114
+ const queryEvent = {
115
+ id: `query_disambig_${turn}_${Date.now()}`,
108
116
  type: 'client.query',
117
+ timestamp: Date.now(),
118
+ entities: {},
109
119
  data: {
110
120
  source: core_1.QuerySource.DISAMBIGUATION,
111
121
  type: core_1.QueryType.DISAMBIGUATION,
@@ -114,7 +124,7 @@ class CommandExecutor {
114
124
  searchText: details.searchText,
115
125
  originalCommand: parsedCommand
116
126
  }
117
- }, turn);
127
+ };
118
128
  // Return early with query pending
119
129
  return {
120
130
  turn,
@@ -277,13 +287,11 @@ class CommandExecutor {
277
287
  allEvents = [...events, ...processed.reactions];
278
288
  }
279
289
  }
280
- // Preserve all event properties (including requiresClientAction for platform events)
281
- const sequenced = event_sequencer_1.eventSequencer.sequenceAll(allEvents, turn);
282
290
  const result = {
283
291
  turn,
284
292
  input,
285
293
  success: !events.some(e => e.type === 'action.error'),
286
- events: sequenced,
294
+ events: allEvents,
287
295
  actionId: command.actionId,
288
296
  parsedCommand: command.parsed,
289
297
  validatedCommand: command
@@ -304,10 +312,13 @@ class CommandExecutor {
304
312
  turn,
305
313
  input,
306
314
  success: false,
307
- events: [event_sequencer_1.eventSequencer.sequence({
315
+ events: [{
316
+ id: `cmd_failed_${turn}_${Date.now()}`,
308
317
  type: 'command.failed',
318
+ timestamp: Date.now(),
319
+ entities: {},
309
320
  data: { reason: error.message, input }
310
- }, turn)],
321
+ }],
311
322
  error: error.message
312
323
  };
313
324
  // Add timing data even for errors if requested
@@ -1 +1 @@
1
- {"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/engine/src/command-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/engine/src/command-executor.ts"],"names":[],"mappings":"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"}
package/game-engine.d.ts CHANGED
@@ -11,7 +11,7 @@ import { ITextService } from "../text-service/index";
11
11
  import { ITextBlock } from "../text-blocks/index";
12
12
  import { ISemanticEvent, ISaveRestoreHooks, ISemanticEventSource } from "../core/index";
13
13
  import { PluginRegistry } from "../plugins/index";
14
- import { GameContext, TurnResult, EngineConfig, SequencedEvent } from './types';
14
+ import { GameContext, TurnResult, EngineConfig } from './types';
15
15
  import { Story } from './story';
16
16
  import { NarrativeSettings } from './narrative';
17
17
  import { ParsedCommandTransformer } from './command-executor';
@@ -22,7 +22,7 @@ export interface GameEngineEvents {
22
22
  'turn:start': (turn: number, input: string) => void;
23
23
  'turn:complete': (result: TurnResult) => void;
24
24
  'turn:failed': (error: Error, turn: number) => void;
25
- 'event': (event: SequencedEvent) => void;
25
+ 'event': (event: ISemanticEvent) => void;
26
26
  'state:changed': (context: GameContext) => void;
27
27
  'game:over': (context: GameContext) => void;
28
28
  'text:output': (blocks: ITextBlock[], turn: number) => void;
@@ -209,6 +209,10 @@ export declare class GameEngine {
209
209
  * Register save/restore hooks
210
210
  */
211
211
  registerSaveRestoreHooks(hooks: ISaveRestoreHooks): void;
212
+ /**
213
+ * Get currently registered save/restore hooks
214
+ */
215
+ getSaveRestoreHooks(): ISaveRestoreHooks | undefined;
212
216
  /**
213
217
  * Register a transformer for parsed commands.
214
218
  * Transformers are called after parsing but before validation,
@@ -269,7 +273,7 @@ export declare class GameEngine {
269
273
  /**
270
274
  * Get recent events
271
275
  */
272
- getRecentEvents(count?: number): SequencedEvent[];
276
+ getRecentEvents(count?: number): ISemanticEvent[];
273
277
  /**
274
278
  * Update vocabulary for an entity
275
279
  */
@@ -304,11 +308,6 @@ export declare class GameEngine {
304
308
  * Emit an event to listeners
305
309
  */
306
310
  private emit;
307
- /**
308
- * Dispatch an event to entity handlers (entity.on)
309
- * Entities can define handlers for specific event types
310
- */
311
- private dispatchEntityHandlers;
312
311
  /**
313
312
  * Check if game is over
314
313
  */
@@ -1 +1 @@
1
- {"version":3,"file":"game-engine.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/game-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-engine.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/game-engine.ts"],"names":[],"mappings":"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"}
package/game-engine.js CHANGED
@@ -15,12 +15,12 @@ const plugins_1 = require("../plugins/index.js");
15
15
  const narrative_1 = require("./narrative");
16
16
  const command_executor_1 = require("./command-executor");
17
17
  const action_context_factory_1 = require("./action-context-factory");
18
- const event_sequencer_1 = require("./event-sequencer");
19
- const event_adapter_1 = require("./event-adapter");
18
+ const turn_event_processor_1 = require("./turn-event-processor");
20
19
  const parser_interface_1 = require("./parser-interface");
20
+ const language_provider_interface_1 = require("./language-provider-interface");
21
21
  const vocabulary_manager_1 = require("./vocabulary-manager");
22
22
  const save_restore_service_1 = require("./save-restore-service");
23
- const turn_event_processor_1 = require("./turn-event-processor");
23
+ const turn_event_processor_2 = require("./turn-event-processor");
24
24
  /**
25
25
  * Main game engine
26
26
  */
@@ -95,7 +95,7 @@ class GameEngine {
95
95
  registerHandler: (eventType, handler) => {
96
96
  this.eventProcessor.registerHandler(eventType, (event, _query) => {
97
97
  // The adapted handler doesn't need WorldQuery, it captures world in closure
98
- // Cast to Effect[] since handler returns unknown[] (to avoid circular deps)
98
+ // Cast to Effect[] since wiring handler returns unknown[] (to avoid circular deps)
99
99
  return handler(event);
100
100
  });
101
101
  }
@@ -111,12 +111,10 @@ class GameEngine {
111
111
  this.systemEventSource.subscribe((event) => {
112
112
  this.emit('event', {
113
113
  id: event.id,
114
- timestamp: new Date(event.timestamp),
115
114
  type: `system.${event.type}`,
116
- data: event.data,
117
- sequence: 0,
118
- turn: this.context.currentTurn,
119
- scope: 'global'
115
+ timestamp: event.timestamp,
116
+ entities: {},
117
+ data: event.data
120
118
  });
121
119
  });
122
120
  this.pluginRegistry = new plugins_1.PluginRegistry();
@@ -127,7 +125,7 @@ class GameEngine {
127
125
  this.saveRestoreService = (0, save_restore_service_1.createSaveRestoreService)({
128
126
  maxSnapshots: this.config.maxUndoSnapshots ?? 10
129
127
  });
130
- this.turnEventProcessor = (0, turn_event_processor_1.createTurnEventProcessor)(this.perceptionService);
128
+ this.turnEventProcessor = (0, turn_event_processor_2.createTurnEventProcessor)(this.perceptionService);
131
129
  // Set provided dependencies
132
130
  this.languageProvider = options.language;
133
131
  this.parser = options.parser;
@@ -260,11 +258,11 @@ class GameEngine {
260
258
  this.sessionTurns = 0;
261
259
  this.sessionMoves = 0;
262
260
  // Keep currentTurn as is (already 1 from constructor)
263
- // Get version info from StoryInfoTrait (or fall back to legacy (world as any) for backward compat)
264
- const storyInfoEntities = this.world.findByTrait('storyInfo');
265
- const storyInfoTrait = storyInfoEntities[0]?.get('storyInfo');
266
- const engineVersion = storyInfoTrait?.engineVersion || this.world.versionInfo?.engineVersion;
267
- const clientVersion = storyInfoTrait?.clientVersion || this.world.versionInfo?.clientVersion || this.world.clientVersion;
261
+ // Get version info from StoryInfoTrait
262
+ const storyInfoEntities = this.world.findByTrait(world_model_1.TraitType.STORY_INFO);
263
+ const storyInfoTrait = storyInfoEntities[0]?.get(world_model_1.StoryInfoTrait);
264
+ const engineVersion = storyInfoTrait?.engineVersion;
265
+ const clientVersion = storyInfoTrait?.clientVersion;
268
266
  // Emit game started event
269
267
  const startedEvent = (0, core_1.createGameStartedEvent)({
270
268
  id: this.story?.config.id,
@@ -389,13 +387,16 @@ class GameEngine {
389
387
  const turn = this.context.currentTurn;
390
388
  // Validate input
391
389
  if (input === null || input === undefined) {
392
- const errorEvent = event_sequencer_1.eventSequencer.sequence({
390
+ const errorEvent = {
391
+ id: `cmd_failed_${turn}_${Date.now()}`,
393
392
  type: 'command.failed',
393
+ timestamp: Date.now(),
394
+ entities: {},
394
395
  data: {
395
396
  reason: 'Input cannot be null or undefined',
396
397
  input: input
397
398
  }
398
- }, turn);
399
+ };
399
400
  return {
400
401
  turn,
401
402
  input: input,
@@ -432,7 +433,7 @@ class GameEngine {
432
433
  turn,
433
434
  input: metaResult.input,
434
435
  success: metaResult.success,
435
- events: metaResult.events.map(e => event_sequencer_1.eventSequencer.sequence(e, turn)),
436
+ events: metaResult.events,
436
437
  error: metaResult.error,
437
438
  actionId: metaResult.actionId
438
439
  };
@@ -450,11 +451,8 @@ class GameEngine {
450
451
  playerId: this.context.player.id,
451
452
  locationId: playerLocation
452
453
  };
453
- // Store events for this turn (convert to SemanticEvent and process through pipeline)
454
- let semanticEvents = result.events.map(e => {
455
- const semantic = (0, event_adapter_1.toSemanticEvent)(e);
456
- return (0, event_adapter_1.processEvent)(semantic, enrichmentContext);
457
- });
454
+ // Store events for this turn (process through enrichment pipeline)
455
+ let semanticEvents = result.events.map(e => (0, turn_event_processor_1.processEvent)(e, enrichmentContext));
458
456
  // Apply perception filtering if service is configured
459
457
  // This transforms events based on what the player can perceive
460
458
  if (this.perceptionService) {
@@ -491,9 +489,8 @@ class GameEngine {
491
489
  let victoryDetails = null;
492
490
  for (const event of result.events) {
493
491
  this.emit('event', event);
494
- // NOTE: Entity handlers (entity.on) are already dispatched by the
495
- // event-processor in the command executor, so we don't call
496
- // dispatchEntityHandlers here to avoid duplicate handler invocations.
492
+ // NOTE: Entity `on` handlers removed (ISSUE-068). Story-level handlers
493
+ // are dispatched by the event-processor in the command executor.
497
494
  // Check for story victory event but don't stop immediately
498
495
  // (we're still processing the turn)
499
496
  if (event.type === 'story.victory') {
@@ -545,7 +542,7 @@ class GameEngine {
545
542
  await this.processPlatformOperations(turn);
546
543
  // Update result.events with any platform completion events
547
544
  const allTurnEvents = this.turnEvents.get(turn) || [];
548
- result.events = allTurnEvents; // Platform ops may have added completion events
545
+ result.events = allTurnEvents;
549
546
  }
550
547
  // Process text output (ADR-096, ADR-133)
551
548
  if (this.textService) {
@@ -600,7 +597,7 @@ class GameEngine {
600
597
  const events = [];
601
598
  try {
602
599
  // Validate the command
603
- const validationResult = this.commandExecutor.validator.validate(parsedCommand);
600
+ const validationResult = this.commandExecutor.validateCommand(parsedCommand);
604
601
  if (!validationResult.success) {
605
602
  // Validation failed - emit error event using domain event pattern
606
603
  const errorEvent = {
@@ -956,7 +953,7 @@ class GameEngine {
956
953
  */
957
954
  configureLanguageProviderNarrative(player) {
958
955
  // Check if language provider supports narrative settings
959
- if (!this.languageProvider || !('setNarrativeSettings' in this.languageProvider)) {
956
+ if (!this.languageProvider || !(0, language_provider_interface_1.hasNarrativeSettings)(this.languageProvider)) {
960
957
  return;
961
958
  }
962
959
  // Build narrative context for language provider
@@ -971,16 +968,17 @@ class GameEngine {
971
968
  }
972
969
  else {
973
970
  // Fall back to player entity's ActorTrait
974
- const actorTrait = player.get('actor');
971
+ const actorTrait = player.get(world_model_1.ActorTrait);
975
972
  if (actorTrait?.pronouns) {
976
973
  // Handle both single PronounSet and array of PronounSets
977
- narrativeContext.playerPronouns = Array.isArray(actorTrait.pronouns)
974
+ const pronounSet = Array.isArray(actorTrait.pronouns)
978
975
  ? actorTrait.pronouns[0]
979
976
  : actorTrait.pronouns;
977
+ narrativeContext.playerPronouns = pronounSet;
980
978
  }
981
979
  }
982
980
  }
983
- // Configure language provider
981
+ // Configure language provider (type narrowed by hasNarrativeSettings guard)
984
982
  this.languageProvider.setNarrativeSettings(narrativeContext);
985
983
  }
986
984
  /**
@@ -1036,6 +1034,12 @@ class GameEngine {
1036
1034
  registerSaveRestoreHooks(hooks) {
1037
1035
  this.saveRestoreHooks = hooks;
1038
1036
  }
1037
+ /**
1038
+ * Get currently registered save/restore hooks
1039
+ */
1040
+ getSaveRestoreHooks() {
1041
+ return this.saveRestoreHooks;
1042
+ }
1039
1043
  /**
1040
1044
  * Register a transformer for parsed commands.
1041
1045
  * Transformers are called after parsing but before validation,
@@ -1139,7 +1143,7 @@ class GameEngine {
1139
1143
  playerId: this.context.player.id,
1140
1144
  locationId: playerLocation ?? undefined
1141
1145
  };
1142
- let processed = events.map(e => (0, event_adapter_1.processEvent)(e, enrichmentContext));
1146
+ let processed = events.map(e => (0, turn_event_processor_1.processEvent)(e, enrichmentContext));
1143
1147
  if (this.perceptionService) {
1144
1148
  processed = this.perceptionService.filterEvents(processed, this.context.player, this.world);
1145
1149
  }
@@ -1161,7 +1165,6 @@ class GameEngine {
1161
1165
  }
1162
1166
  for (const event of processed) {
1163
1167
  this.emit('event', event);
1164
- this.dispatchEntityHandlers(event);
1165
1168
  }
1166
1169
  }
1167
1170
  /**
@@ -1205,8 +1208,8 @@ class GameEngine {
1205
1208
  for (const turn of recentTurns) {
1206
1209
  allEvents.push(...turn.events);
1207
1210
  }
1208
- // Sort and return most recent
1209
- return event_sequencer_1.EventSequenceUtils.sort(allEvents).slice(-count);
1211
+ // Return most recent
1212
+ return allEvents.slice(-count);
1210
1213
  }
1211
1214
  /**
1212
1215
  * Update vocabulary for an entity
@@ -1548,19 +1551,7 @@ class GameEngine {
1548
1551
  * (IGameEvent with `payload` is deprecated - see ADR-097)
1549
1552
  */
1550
1553
  emitGameEvent(event) {
1551
- // Create a GameEvent for the sequencer (internal type)
1552
- const gameEvent = {
1553
- type: event.type,
1554
- data: {
1555
- ...(typeof event.data === 'object' && event.data !== null ? event.data : {}),
1556
- id: event.id,
1557
- timestamp: event.timestamp,
1558
- entities: event.entities || {}
1559
- }
1560
- };
1561
- // Sequence and emit
1562
- const sequencedEvent = event_sequencer_1.eventSequencer.sequence(gameEvent, this.context.currentTurn);
1563
- this.emit('event', sequencedEvent);
1554
+ this.emit('event', event);
1564
1555
  // Store in turn events for text-service processing
1565
1556
  if (this.context.currentTurn > 0) {
1566
1557
  const turnEvents = this.turnEvents.get(this.context.currentTurn) || [];
@@ -1584,41 +1575,6 @@ class GameEngine {
1584
1575
  }
1585
1576
  }
1586
1577
  }
1587
- /**
1588
- * Dispatch an event to entity handlers (entity.on)
1589
- * Entities can define handlers for specific event types
1590
- */
1591
- dispatchEntityHandlers(event) {
1592
- // Get all entities that might have handlers
1593
- const entities = this.world.getAllEntities();
1594
- for (const entity of entities) {
1595
- // Check if entity has event handlers defined
1596
- const handlers = entity.on;
1597
- if (!handlers || typeof handlers !== 'object') {
1598
- continue;
1599
- }
1600
- // Check if there's a handler for this event type
1601
- const handler = handlers[event.type];
1602
- if (typeof handler === 'function') {
1603
- try {
1604
- // Call the handler with the event and world
1605
- const result = handler(event, this.world);
1606
- // If handler returns events, add them to the current turn
1607
- if (Array.isArray(result)) {
1608
- const turnEvents = this.turnEvents.get(this.context.currentTurn) || [];
1609
- for (const reactionEvent of result) {
1610
- turnEvents.push(reactionEvent);
1611
- this.emit('event', reactionEvent);
1612
- }
1613
- this.turnEvents.set(this.context.currentTurn, turnEvents);
1614
- }
1615
- }
1616
- catch (error) {
1617
- console.error(`Error in entity handler for ${entity.id} on ${event.type}:`, error);
1618
- }
1619
- }
1620
- }
1621
- }
1622
1578
  /**
1623
1579
  * Check if game is over
1624
1580
  */