@sharpee/engine 0.9.107 → 0.9.113
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/capability-dispatch-helper.js +1 -1
- package/capability-dispatch-helper.js.map +1 -1
- package/command-executor.d.ts +35 -0
- package/command-executor.d.ts.map +1 -1
- package/command-executor.js +26 -0
- package/command-executor.js.map +1 -1
- package/game-engine.d.ts +20 -2
- package/game-engine.d.ts.map +1 -1
- package/game-engine.js +141 -8
- package/game-engine.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +4 -1
- package/index.js.map +1 -1
- package/package.json +13 -12
- package/save-restore-service.d.ts +17 -23
- package/save-restore-service.d.ts.map +1 -1
- package/save-restore-service.js +79 -138
- package/save-restore-service.js.map +1 -1
- package/scene-evaluation-plugin.d.ts +25 -0
- package/scene-evaluation-plugin.d.ts.map +1 -0
- package/scene-evaluation-plugin.js +106 -0
- package/scene-evaluation-plugin.js.map +1 -0
- package/types.d.ts +84 -0
- package/types.d.ts.map +1 -1
package/save-restore-service.js
CHANGED
|
@@ -1,15 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Save/Restore Service
|
|
3
|
+
* Save/Restore Service — manages game state persistence and undo.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Public interface: {@link SaveRestoreService} class — `createSaveData`,
|
|
6
|
+
* `loadSaveData`, plus undo helpers (`createUndoSnapshot`, `undo`,
|
|
7
|
+
* `canUndo`, `getUndoLevels`, `clearUndoSnapshots`).
|
|
8
|
+
*
|
|
9
|
+
* Bounded context: `@sharpee/engine` runtime. Every Sharpee host (CLI,
|
|
10
|
+
* platform-browser, multi-user sandbox) routes saves through this
|
|
11
|
+
* service.
|
|
12
|
+
*
|
|
13
|
+
* Save format v2.0.0 (one-shot cutover from v1.0.0; v1 saves rejected):
|
|
14
|
+
* - `IEngineState.worldSnapshot` carries the verbatim
|
|
15
|
+
* `WorldModel.toJSON()` output, gzipped, then base64-encoded for
|
|
16
|
+
* JSON-safety. Hydration: base64-decode → gunzip → `world.loadJSON()`.
|
|
17
|
+
* - This replaces v1's partial `spatialIndex` serializer, which
|
|
18
|
+
* captured only entity traits + room contents and silently dropped
|
|
19
|
+
* the ScoreLedger, capabilities, world state values, relationships,
|
|
20
|
+
* ID counters, and sub-container containment.
|
|
7
21
|
*/
|
|
8
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
23
|
exports.SaveRestoreService = void 0;
|
|
10
24
|
exports.createSaveRestoreService = createSaveRestoreService;
|
|
11
|
-
const
|
|
25
|
+
const fflate_1 = require("fflate");
|
|
12
26
|
const core_1 = require("../core/index.js");
|
|
27
|
+
/**
|
|
28
|
+
* Save format version. Bumped from `1.0.0` → `2.0.0` when the partial
|
|
29
|
+
* `spatialIndex` serializer was replaced with the full `worldSnapshot`
|
|
30
|
+
* (gzipped `WorldModel.toJSON()`). v1 saves are rejected — they are
|
|
31
|
+
* known-broken (drop score / capabilities / state values / relationships)
|
|
32
|
+
* and the codebase is greenfield, so no migration shim ships.
|
|
33
|
+
*/
|
|
34
|
+
const SAVE_FORMAT_VERSION = '2.0.0';
|
|
35
|
+
/**
|
|
36
|
+
* Encode a `Uint8Array` to a base64 string. Chunked to stay under the
|
|
37
|
+
* call-argument limit on `String.fromCharCode.apply` for snapshots in
|
|
38
|
+
* the hundreds of KB.
|
|
39
|
+
*/
|
|
40
|
+
function uint8ToBase64(bytes) {
|
|
41
|
+
const CHUNK = 0x8000;
|
|
42
|
+
let binary = '';
|
|
43
|
+
for (let i = 0; i < bytes.length; i += CHUNK) {
|
|
44
|
+
const slice = bytes.subarray(i, i + CHUNK);
|
|
45
|
+
binary += String.fromCharCode.apply(null, slice);
|
|
46
|
+
}
|
|
47
|
+
return btoa(binary);
|
|
48
|
+
}
|
|
49
|
+
/** Decode a base64 string to a `Uint8Array`. Inverse of `uint8ToBase64`. */
|
|
50
|
+
function base64ToUint8(b64) {
|
|
51
|
+
const binary = atob(b64);
|
|
52
|
+
const out = new Uint8Array(binary.length);
|
|
53
|
+
for (let i = 0; i < binary.length; i++)
|
|
54
|
+
out[i] = binary.charCodeAt(i);
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Compress a JSON string with gzip and base64-encode the result so it
|
|
59
|
+
* can ride the `ISaveData` JSON envelope without escaping.
|
|
60
|
+
*/
|
|
61
|
+
function compressWorldSnapshot(json) {
|
|
62
|
+
return uint8ToBase64((0, fflate_1.gzipSync)((0, fflate_1.strToU8)(json)));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Inverse of {@link compressWorldSnapshot}. Throws if the snapshot is
|
|
66
|
+
* malformed (bad base64 or invalid gzip stream); the caller surfaces
|
|
67
|
+
* the failure rather than partially restoring.
|
|
68
|
+
*/
|
|
69
|
+
function decompressWorldSnapshot(b64) {
|
|
70
|
+
return (0, fflate_1.strFromU8)((0, fflate_1.gunzipSync)(base64ToUint8(b64)));
|
|
71
|
+
}
|
|
13
72
|
/**
|
|
14
73
|
* Service for managing save/restore and undo functionality
|
|
15
74
|
*/
|
|
@@ -91,13 +150,13 @@ class SaveRestoreService {
|
|
|
91
150
|
};
|
|
92
151
|
const engineState = {
|
|
93
152
|
eventSource: this.serializeEventSource(eventSource),
|
|
94
|
-
|
|
153
|
+
worldSnapshot: compressWorldSnapshot(world.toJSON()),
|
|
95
154
|
turnHistory: this.serializeTurnHistory(context.history),
|
|
96
155
|
parserState: this.serializeParserState(parser),
|
|
97
156
|
pluginStates: pluginRegistry.getStates()
|
|
98
157
|
};
|
|
99
158
|
return {
|
|
100
|
-
version:
|
|
159
|
+
version: SAVE_FORMAT_VERSION,
|
|
101
160
|
timestamp: Date.now(),
|
|
102
161
|
metadata,
|
|
103
162
|
engineState,
|
|
@@ -117,8 +176,9 @@ class SaveRestoreService {
|
|
|
117
176
|
*/
|
|
118
177
|
loadSaveData(saveData, provider) {
|
|
119
178
|
const story = provider.getStory();
|
|
120
|
-
// Validate save compatibility
|
|
121
|
-
|
|
179
|
+
// Validate save compatibility. v1 saves are rejected outright (no
|
|
180
|
+
// migration shim — see SAVE_FORMAT_VERSION docs above).
|
|
181
|
+
if (saveData.version !== SAVE_FORMAT_VERSION) {
|
|
122
182
|
throw new Error(`Unsupported save version: ${saveData.version}`);
|
|
123
183
|
}
|
|
124
184
|
if (saveData.storyConfig?.id &&
|
|
@@ -126,16 +186,22 @@ class SaveRestoreService {
|
|
|
126
186
|
saveData.storyConfig.id !== story.config.id) {
|
|
127
187
|
throw new Error(`Save is for different story: ${saveData.storyConfig.id}`);
|
|
128
188
|
}
|
|
129
|
-
// Restore event source
|
|
189
|
+
// Restore event source.
|
|
130
190
|
const eventSource = this.deserializeEventSource(saveData.engineState.eventSource);
|
|
131
|
-
// Restore
|
|
191
|
+
// Restore world state. The full WorldModel state — entity traits,
|
|
192
|
+
// spatial containment graph, ScoreLedger, capabilities, state
|
|
193
|
+
// values, relationships, ID counters — rides the `worldSnapshot`
|
|
194
|
+
// field. `WorldModel.loadJSON` clears the existing world and
|
|
195
|
+
// rebuilds, so the fresh-engine entities created by `setStory` are
|
|
196
|
+
// replaced wholesale by the saved entities.
|
|
132
197
|
const world = provider.getWorld();
|
|
133
|
-
|
|
134
|
-
// Restore plugin states if present (ADR-120)
|
|
198
|
+
world.loadJSON(decompressWorldSnapshot(saveData.engineState.worldSnapshot));
|
|
199
|
+
// Restore plugin states if present (ADR-120).
|
|
135
200
|
if (saveData.engineState.pluginStates) {
|
|
136
201
|
provider.getPluginRegistry().setStates(saveData.engineState.pluginStates);
|
|
137
202
|
}
|
|
138
|
-
// Clear undo snapshots after restore
|
|
203
|
+
// Clear undo snapshots after restore — they were taken against the
|
|
204
|
+
// pre-restore world and are no longer meaningful.
|
|
139
205
|
this.clearUndoSnapshots();
|
|
140
206
|
return {
|
|
141
207
|
eventSource,
|
|
@@ -223,75 +289,6 @@ class SaveRestoreService {
|
|
|
223
289
|
}
|
|
224
290
|
return deserialized;
|
|
225
291
|
}
|
|
226
|
-
/**
|
|
227
|
-
* Serialize spatial index (world state)
|
|
228
|
-
*/
|
|
229
|
-
serializeSpatialIndex(world) {
|
|
230
|
-
const entities = {};
|
|
231
|
-
const locations = {};
|
|
232
|
-
const relationships = {};
|
|
233
|
-
// Serialize all entities
|
|
234
|
-
for (const entity of world.getAllEntities()) {
|
|
235
|
-
const traits = {};
|
|
236
|
-
// Serialize each trait
|
|
237
|
-
for (const [name, trait] of entity.traits) {
|
|
238
|
-
traits[name] = this.serializeTrait(trait);
|
|
239
|
-
}
|
|
240
|
-
entities[entity.id] = {
|
|
241
|
-
id: entity.id,
|
|
242
|
-
traits,
|
|
243
|
-
entityType: entity.constructor.name
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
// Serialize locations and their contents
|
|
247
|
-
const allLocations = world.getAllEntities().filter((e) => e.type === 'room' || e.type === 'location' || e.has('if.trait.room'));
|
|
248
|
-
for (const location of allLocations) {
|
|
249
|
-
const contents = world.getContents(location.id);
|
|
250
|
-
locations[location.id] = {
|
|
251
|
-
id: location.id,
|
|
252
|
-
properties: {
|
|
253
|
-
name: location.get(world_model_1.TraitType.IDENTITY)?.name || 'Unknown',
|
|
254
|
-
description: location.get(world_model_1.TraitType.IDENTITY)?.description || ''
|
|
255
|
-
},
|
|
256
|
-
contents: contents.map((e) => e.id),
|
|
257
|
-
connections: this.extractConnections(location, world)
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
return { entities, locations, relationships };
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Deserialize spatial index
|
|
264
|
-
*/
|
|
265
|
-
deserializeSpatialIndex(index, world) {
|
|
266
|
-
// Note: Full deserialization would need to clear and recreate the world
|
|
267
|
-
// For now, this restores entity traits and locations
|
|
268
|
-
// Restore entity traits
|
|
269
|
-
for (const [id, data] of Object.entries(index.entities)) {
|
|
270
|
-
const entity = world.getEntity(id);
|
|
271
|
-
if (entity) {
|
|
272
|
-
// Restore traits
|
|
273
|
-
for (const [name, traitData] of Object.entries(data.traits)) {
|
|
274
|
-
const trait = this.deserializeTrait(name, traitData);
|
|
275
|
-
if (trait) {
|
|
276
|
-
// Remove existing trait if present, then add the restored one
|
|
277
|
-
if (entity.has(name)) {
|
|
278
|
-
entity.remove(name);
|
|
279
|
-
}
|
|
280
|
-
entity.add(trait);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
// Restore locations and contents
|
|
286
|
-
for (const [locationId, data] of Object.entries(index.locations)) {
|
|
287
|
-
for (const entityId of data.contents) {
|
|
288
|
-
const entity = world.getEntity(entityId);
|
|
289
|
-
if (entity) {
|
|
290
|
-
world.moveEntity(entity.id, locationId);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
292
|
/**
|
|
296
293
|
* Serialize turn history
|
|
297
294
|
*/
|
|
@@ -335,62 +332,6 @@ class SaveRestoreService {
|
|
|
335
332
|
// For now, return empty object
|
|
336
333
|
return {};
|
|
337
334
|
}
|
|
338
|
-
/**
|
|
339
|
-
* Serialize a trait
|
|
340
|
-
*/
|
|
341
|
-
serializeTrait(trait) {
|
|
342
|
-
if (typeof trait === 'object' && trait !== null) {
|
|
343
|
-
return { ...trait };
|
|
344
|
-
}
|
|
345
|
-
return trait;
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Deserialize a trait
|
|
349
|
-
*/
|
|
350
|
-
deserializeTrait(name, data) {
|
|
351
|
-
if (data && typeof data === 'object') {
|
|
352
|
-
return { type: name, ...data };
|
|
353
|
-
}
|
|
354
|
-
return null;
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Extract connections from a location entity
|
|
358
|
-
*/
|
|
359
|
-
extractConnections(location, world) {
|
|
360
|
-
const connections = {};
|
|
361
|
-
// Check for ROOM trait with exits
|
|
362
|
-
const roomTrait = location.get('if.trait.room');
|
|
363
|
-
if (roomTrait?.exits) {
|
|
364
|
-
Object.entries(roomTrait.exits).forEach(([direction, exit]) => {
|
|
365
|
-
if (exit.destination) {
|
|
366
|
-
connections[direction] = exit.destination;
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
// Check for doors in this location
|
|
371
|
-
const contents = world.getContents(location.id);
|
|
372
|
-
contents.forEach((entity) => {
|
|
373
|
-
const doorTrait = entity.get('if.trait.door');
|
|
374
|
-
if (doorTrait) {
|
|
375
|
-
const otherRoom = doorTrait.room1 === location.id ? doorTrait.room2 : doorTrait.room1;
|
|
376
|
-
if (otherRoom) {
|
|
377
|
-
// Try to determine direction from door name
|
|
378
|
-
const name = entity.name?.toLowerCase() || '';
|
|
379
|
-
if (name.includes('north'))
|
|
380
|
-
connections.north = otherRoom;
|
|
381
|
-
else if (name.includes('south'))
|
|
382
|
-
connections.south = otherRoom;
|
|
383
|
-
else if (name.includes('east'))
|
|
384
|
-
connections.east = otherRoom;
|
|
385
|
-
else if (name.includes('west'))
|
|
386
|
-
connections.west = otherRoom;
|
|
387
|
-
else
|
|
388
|
-
connections.door = otherRoom;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
});
|
|
392
|
-
return connections;
|
|
393
|
-
}
|
|
394
335
|
}
|
|
395
336
|
exports.SaveRestoreService = SaveRestoreService;
|
|
396
337
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-restore-service.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/engine/src/save-restore-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"save-restore-service.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/engine/src/save-restore-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene evaluation turn plugin (ADR-149).
|
|
3
|
+
*
|
|
4
|
+
* Evaluates scene begin/end conditions each turn. Runs after NPC turns
|
|
5
|
+
* and state machines, before daemons/fuses (priority 60).
|
|
6
|
+
*
|
|
7
|
+
* For each registered scene:
|
|
8
|
+
* - If state='waiting' and begin() returns true → activate, emit scene_began
|
|
9
|
+
* - If state='active' and end() returns true → end (or reset if recurring), emit scene_ended
|
|
10
|
+
* - If state='active' → increment activeTurns
|
|
11
|
+
*
|
|
12
|
+
* Public interface: SceneEvaluationPlugin (TurnPlugin implementation).
|
|
13
|
+
* Owner context: @sharpee/engine — turn cycle
|
|
14
|
+
*/
|
|
15
|
+
import { ISemanticEvent } from "../core/index";
|
|
16
|
+
import type { TurnPlugin, TurnPluginContext } from "../plugins/index";
|
|
17
|
+
export declare class SceneEvaluationPlugin implements TurnPlugin {
|
|
18
|
+
id: string;
|
|
19
|
+
priority: number;
|
|
20
|
+
/**
|
|
21
|
+
* Evaluates all registered scene conditions after a successful action.
|
|
22
|
+
*/
|
|
23
|
+
onAfterAction(context: TurnPluginContext): ISemanticEvent[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=scene-evaluation-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-evaluation-plugin.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/scene-evaluation-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAiBtE,qBAAa,qBAAsB,YAAW,UAAU;IACtD,EAAE,SAA8B;IAChC,QAAQ,SAAM;IAEd;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,EAAE;CAmE5D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Scene evaluation turn plugin (ADR-149).
|
|
4
|
+
*
|
|
5
|
+
* Evaluates scene begin/end conditions each turn. Runs after NPC turns
|
|
6
|
+
* and state machines, before daemons/fuses (priority 60).
|
|
7
|
+
*
|
|
8
|
+
* For each registered scene:
|
|
9
|
+
* - If state='waiting' and begin() returns true → activate, emit scene_began
|
|
10
|
+
* - If state='active' and end() returns true → end (or reset if recurring), emit scene_ended
|
|
11
|
+
* - If state='active' → increment activeTurns
|
|
12
|
+
*
|
|
13
|
+
* Public interface: SceneEvaluationPlugin (TurnPlugin implementation).
|
|
14
|
+
* Owner context: @sharpee/engine — turn cycle
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SceneEvaluationPlugin = void 0;
|
|
18
|
+
const world_model_1 = require("../world-model/index.js");
|
|
19
|
+
let eventCounter = 0;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a minimal ISemanticEvent with the given type and data.
|
|
22
|
+
*/
|
|
23
|
+
function sceneEvent(type, data) {
|
|
24
|
+
return {
|
|
25
|
+
id: `scene-${++eventCounter}-${Date.now()}`,
|
|
26
|
+
type,
|
|
27
|
+
timestamp: Date.now(),
|
|
28
|
+
entities: {},
|
|
29
|
+
data,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
class SceneEvaluationPlugin {
|
|
33
|
+
id = 'sharpee.scene-evaluation';
|
|
34
|
+
priority = 60;
|
|
35
|
+
/**
|
|
36
|
+
* Evaluates all registered scene conditions after a successful action.
|
|
37
|
+
*/
|
|
38
|
+
onAfterAction(context) {
|
|
39
|
+
const { world, turn } = context;
|
|
40
|
+
const conditions = world.getAllSceneConditions();
|
|
41
|
+
if (conditions.size === 0)
|
|
42
|
+
return [];
|
|
43
|
+
const events = [];
|
|
44
|
+
for (const [sceneId, conds] of conditions) {
|
|
45
|
+
const entity = world.getEntity(sceneId);
|
|
46
|
+
if (!entity)
|
|
47
|
+
continue;
|
|
48
|
+
const trait = entity.get(world_model_1.TraitType.SCENE);
|
|
49
|
+
if (!trait)
|
|
50
|
+
continue;
|
|
51
|
+
if (trait.state === 'waiting') {
|
|
52
|
+
// Evaluate begin condition
|
|
53
|
+
try {
|
|
54
|
+
if (conds.begin(world)) {
|
|
55
|
+
trait.state = 'active';
|
|
56
|
+
trait.activeTurns = 1;
|
|
57
|
+
trait.beganAtTurn = turn;
|
|
58
|
+
events.push(sceneEvent('if.event.scene_began', {
|
|
59
|
+
sceneId,
|
|
60
|
+
sceneName: trait.name,
|
|
61
|
+
turn,
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Condition threw — leave scene in waiting state
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (trait.state === 'active') {
|
|
70
|
+
// Evaluate end condition
|
|
71
|
+
let ended = false;
|
|
72
|
+
try {
|
|
73
|
+
ended = conds.end(world);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Condition threw — don't end the scene
|
|
77
|
+
}
|
|
78
|
+
if (ended) {
|
|
79
|
+
const totalTurns = trait.activeTurns;
|
|
80
|
+
trait.endedAtTurn = turn;
|
|
81
|
+
if (trait.recurring) {
|
|
82
|
+
trait.state = 'waiting';
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
trait.state = 'ended';
|
|
86
|
+
}
|
|
87
|
+
trait.activeTurns = 0;
|
|
88
|
+
events.push(sceneEvent('if.event.scene_ended', {
|
|
89
|
+
sceneId,
|
|
90
|
+
sceneName: trait.name,
|
|
91
|
+
turn,
|
|
92
|
+
totalTurns,
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Scene still active — increment turn counter
|
|
97
|
+
trait.activeTurns++;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// state === 'ended' and not recurring: skip
|
|
101
|
+
}
|
|
102
|
+
return events;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.SceneEvaluationPlugin = SceneEvaluationPlugin;
|
|
106
|
+
//# sourceMappingURL=scene-evaluation-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-evaluation-plugin.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/engine/src/scene-evaluation-plugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAGH,sDAA6D;AAG7D,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,IAA6B;IAC7D,OAAO;QACL,EAAE,EAAE,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAC3C,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,EAAE;QACZ,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAa,qBAAqB;IAChC,EAAE,GAAG,0BAA0B,CAAC;IAChC,QAAQ,GAAG,EAAE,CAAC;IAEd;;OAEG;IACH,aAAa,CAAC,OAA0B;QACtC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAa,uBAAS,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,2BAA2B;gBAC3B,IAAI,CAAC;oBACH,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACvB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;wBACtB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;wBAEzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;4BAC7C,OAAO;4BACP,SAAS,EAAE,KAAK,CAAC,IAAI;4BACrB,IAAI;yBACL,CAAC,CAAC,CAAC;oBACN,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,iDAAiD;gBACnD,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACpC,yBAAyB;gBACzB,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC;oBACH,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,wCAAwC;gBAC1C,CAAC;gBAED,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;oBACrC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;oBAEzB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;oBACxB,CAAC;oBACD,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;oBAEtB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;wBAC7C,OAAO;wBACP,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,IAAI;wBACJ,UAAU;qBACX,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,4CAA4C;QAC9C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA1ED,sDA0EC"}
|
package/types.d.ts
CHANGED
|
@@ -220,4 +220,88 @@ export interface EngineConfig {
|
|
|
220
220
|
*/
|
|
221
221
|
maxUndoSnapshots?: number;
|
|
222
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Summary of a registered action, suitable for JSON serialization.
|
|
225
|
+
* Produced by GameEngine.introspect().
|
|
226
|
+
*/
|
|
227
|
+
export interface ActionSummary {
|
|
228
|
+
/** Action identifier (e.g., "if.action.taking" or "dungeo.action.say"). */
|
|
229
|
+
id: string;
|
|
230
|
+
/** Semantic group (e.g., "inventory", "container"). */
|
|
231
|
+
group: string | null;
|
|
232
|
+
/** Pattern matching priority. */
|
|
233
|
+
priority: number;
|
|
234
|
+
/** True for stdlib actions (if.action.* prefix). */
|
|
235
|
+
isStandard: boolean;
|
|
236
|
+
/** Verb patterns from the language provider (e.g., ["take :item", "get :item"]). */
|
|
237
|
+
patterns: string[];
|
|
238
|
+
/** Help text from the language provider, if available. */
|
|
239
|
+
help: {
|
|
240
|
+
description: string;
|
|
241
|
+
verbs: string[];
|
|
242
|
+
examples: string[];
|
|
243
|
+
} | null;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Summary of a trait type in use across all entities.
|
|
247
|
+
* Produced by GameEngine.introspect().
|
|
248
|
+
*/
|
|
249
|
+
export interface TraitSummary {
|
|
250
|
+
/** Trait type identifier (e.g., "container", "dungeo.trait.troll_axe"). */
|
|
251
|
+
type: string;
|
|
252
|
+
/** True for world-model/stdlib traits, false for story-defined traits. */
|
|
253
|
+
isStandard: boolean;
|
|
254
|
+
/** Number of entities that have this trait. */
|
|
255
|
+
entityCount: number;
|
|
256
|
+
/** Entity IDs that have this trait. */
|
|
257
|
+
entityIds: string[];
|
|
258
|
+
/** Property names from a sample trait instance. */
|
|
259
|
+
properties: string[];
|
|
260
|
+
/** Capability action IDs this trait declares (from static capabilities). */
|
|
261
|
+
capabilities: string[];
|
|
262
|
+
/** Interceptor action IDs this trait declares (from static interceptors). */
|
|
263
|
+
interceptors: string[];
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Summary of a capability behavior binding (trait + action + phases).
|
|
267
|
+
* Produced by GameEngine.introspect().
|
|
268
|
+
*/
|
|
269
|
+
export interface BehaviorBindingSummary {
|
|
270
|
+
/** Trait type this behavior is registered on. */
|
|
271
|
+
traitType: string;
|
|
272
|
+
/** Action/capability ID this behavior handles. */
|
|
273
|
+
actionId: string;
|
|
274
|
+
/** Registration priority (higher = checked first). */
|
|
275
|
+
priority: number;
|
|
276
|
+
/** Which 4-phase methods the behavior implements. */
|
|
277
|
+
phases: string[];
|
|
278
|
+
/** "capability" for CapabilityBehavior, "interceptor" for ActionInterceptor. */
|
|
279
|
+
kind: 'capability' | 'interceptor';
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Summary of a registered message ID and its text.
|
|
283
|
+
* Produced by GameEngine.introspect().
|
|
284
|
+
*/
|
|
285
|
+
export interface MessageSummary {
|
|
286
|
+
/** Full message ID (e.g., "if.action.taking.taken" or "dungeo.thief.appears"). */
|
|
287
|
+
id: string;
|
|
288
|
+
/** The message text or template string. */
|
|
289
|
+
text: string;
|
|
290
|
+
/** "platform" for stdlib/engine messages, "story" for story-registered messages. */
|
|
291
|
+
source: 'platform' | 'story';
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Serializable snapshot of engine state for tooling (VS Code extension, CLI).
|
|
295
|
+
* Returned by GameEngine.introspect().
|
|
296
|
+
*/
|
|
297
|
+
export interface EngineIntrospection {
|
|
298
|
+
/** All registered actions with patterns and metadata. */
|
|
299
|
+
actions: ActionSummary[];
|
|
300
|
+
/** All trait types in use with usage counts and metadata. */
|
|
301
|
+
traits: TraitSummary[];
|
|
302
|
+
/** All capability behavior and interceptor bindings. */
|
|
303
|
+
behaviors: BehaviorBindingSummary[];
|
|
304
|
+
/** All registered message IDs with text and source classification. */
|
|
305
|
+
messages: MessageSummary[];
|
|
306
|
+
}
|
|
223
307
|
//# sourceMappingURL=types.d.ts.map
|
package/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/engine/src/types.ts"],"names":[],"mappings":"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"}
|