@sharpee/story-loader 3.0.0 → 3.3.0

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/chain-map.d.ts ADDED
@@ -0,0 +1,40 @@
1
+ /**
2
+ * chain-map.ts — Chord chain-alias → platform chain registration (ADR-094 + the
3
+ * `define chain … from` hatch).
4
+ *
5
+ * Purpose: a Chord author replaces a stdlib event chain by its curated kebab
6
+ * alias (`define chain opened-revealed from "./reveal.ts"`); the compiler keeps
7
+ * the alias platform-free (validated against `STDLIB_CHAIN_NAMES` in chord's
8
+ * catalog). This module is the single place that knows the dotted platform
9
+ * facts — the chain KEY (so the author's handler REPLACES the stdlib one via
10
+ * `world.chainEvent`, same key), the TRIGGER event type, and the stdlib PRIORITY.
11
+ *
12
+ * Public interface: `resolveChain(alias)`. `CHORD_CHAIN_MAP` is exported for the
13
+ * conformance test, which pins the key against stdlib's `OPENED_REVEALED_CHAIN_KEY`.
14
+ *
15
+ * Owner context: @sharpee/story-loader (Chord-IR → platform bindings), the same
16
+ * Interface-Contract seam as `event-id-map.ts` / `message-alias-map.ts`.
17
+ */
18
+ /** The platform registration for one replaceable stdlib chain. */
19
+ export interface ChainRegistration {
20
+ /** Dotted platform chain key — matching it makes the hatch REPLACE the stdlib chain. */
21
+ key: string;
22
+ /** The event type the chain fires on (`world.chainEvent` trigger). */
23
+ trigger: string;
24
+ /** The stdlib priority for this chain (kept identical so replacement is in-place). */
25
+ priority: number;
26
+ }
27
+ /**
28
+ * Chord chain alias (dotless, as authored + validated by chord's `STDLIB_CHAIN_NAMES`)
29
+ * → its platform registration. One stdlib chain exists today (ADR-094 opened→revealed);
30
+ * the conformance test pins `opened-revealed`'s key against `OPENED_REVEALED_CHAIN_KEY`.
31
+ */
32
+ export declare const CHORD_CHAIN_MAP: Readonly<Record<string, ChainRegistration>>;
33
+ /**
34
+ * Resolve a Chord chain alias to its platform registration.
35
+ * @param alias the dotless chain alias from a `define chain` hatch
36
+ * @returns the `{ key, trigger, priority }`, or undefined for an unknown alias
37
+ * (the chord analyzer's `analysis.unknown-chain` gate catches this first)
38
+ */
39
+ export declare function resolveChain(alias: string): ChainRegistration | undefined;
40
+ //# sourceMappingURL=chain-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-map.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/chain-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEvE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEzE"}
package/chain-map.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * chain-map.ts — Chord chain-alias → platform chain registration (ADR-094 + the
4
+ * `define chain … from` hatch).
5
+ *
6
+ * Purpose: a Chord author replaces a stdlib event chain by its curated kebab
7
+ * alias (`define chain opened-revealed from "./reveal.ts"`); the compiler keeps
8
+ * the alias platform-free (validated against `STDLIB_CHAIN_NAMES` in chord's
9
+ * catalog). This module is the single place that knows the dotted platform
10
+ * facts — the chain KEY (so the author's handler REPLACES the stdlib one via
11
+ * `world.chainEvent`, same key), the TRIGGER event type, and the stdlib PRIORITY.
12
+ *
13
+ * Public interface: `resolveChain(alias)`. `CHORD_CHAIN_MAP` is exported for the
14
+ * conformance test, which pins the key against stdlib's `OPENED_REVEALED_CHAIN_KEY`.
15
+ *
16
+ * Owner context: @sharpee/story-loader (Chord-IR → platform bindings), the same
17
+ * Interface-Contract seam as `event-id-map.ts` / `message-alias-map.ts`.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.CHORD_CHAIN_MAP = void 0;
21
+ exports.resolveChain = resolveChain;
22
+ /**
23
+ * Chord chain alias (dotless, as authored + validated by chord's `STDLIB_CHAIN_NAMES`)
24
+ * → its platform registration. One stdlib chain exists today (ADR-094 opened→revealed);
25
+ * the conformance test pins `opened-revealed`'s key against `OPENED_REVEALED_CHAIN_KEY`.
26
+ */
27
+ exports.CHORD_CHAIN_MAP = {
28
+ 'opened-revealed': { key: 'stdlib.chain.opened-revealed', trigger: 'if.event.opened', priority: 100 },
29
+ };
30
+ /**
31
+ * Resolve a Chord chain alias to its platform registration.
32
+ * @param alias the dotless chain alias from a `define chain` hatch
33
+ * @returns the `{ key, trigger, priority }`, or undefined for an unknown alias
34
+ * (the chord analyzer's `analysis.unknown-chain` gate catches this first)
35
+ */
36
+ function resolveChain(alias) {
37
+ return exports.CHORD_CHAIN_MAP[alias];
38
+ }
39
+ //# sourceMappingURL=chain-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-map.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/chain-map.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AA2BH,oCAEC;AAjBD;;;;GAIG;AACU,QAAA,eAAe,GAAgD;IAC1E,iBAAiB,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE;CACtG,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,uBAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
package/evaluator.d.ts CHANGED
@@ -56,6 +56,15 @@ export declare class Evaluator {
56
56
  */
57
57
  private readonly irEntities;
58
58
  private readonly irEntityById;
59
+ /**
60
+ * Live client-capability source for `client has` (ADR-216) — set by the
61
+ * loader at engine-ready from the engine's negotiated capabilities.
62
+ * Null (load time, headless tests) means the text-only default: every
63
+ * gateable flag reads false.
64
+ */
65
+ private capabilitiesProvider;
66
+ /** Wire the live capability source (loader-only; ADR-216). */
67
+ setCapabilitiesProvider(provider: () => Record<string, unknown> | undefined): void;
59
68
  constructor(ir: StoryIR, ids: EntityIdResolver, seed?: number);
60
69
  evalCondition(cond: IRCondition, ctx: EvalContext): boolean;
61
70
  private evalPredicate;
@@ -98,5 +107,12 @@ export declare class Evaluator {
98
107
  * resume the stream (AC-6).
99
108
  */
100
109
  private drawChance;
110
+ /**
111
+ * Pick a 0-based index in [0, n) through the seeded story RNG (the same
112
+ * world-state seed chain `chance` uses — deterministic under a fixed
113
+ * seed, AC-5 class). Used by `randomly`/`sticky` phrase selection at
114
+ * point of use (ADR-240's live blocked-message resolution).
115
+ */
116
+ pickIndex(n: number, world: WorldModel): number;
101
117
  }
102
118
  //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAQL,UAAU,EACX,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,8EAA8E;IAC9E,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,SAAS;IAkBlB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAjBtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;gBAG1D,EAAE,EAAE,OAAO,EACM,GAAG,EAAE,gBAAgB,EACtC,IAAI,CAAC,EAAE,MAAM;IAgBf,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAyC3D,OAAO,CAAC,aAAa;IA2ErB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IA0CpD,yDAAyD;IACzD,OAAO,CAAC,cAAc;IAMtB,iFAAiF;IACjF,OAAO,CAAC,SAAS;IAOjB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE;IAOnD,0DAA0D;IAC1D,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM;IAQrD,OAAO,CAAC,SAAS;IA4BjB,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,cAAc;IAMtB,oEAAoE;IACpE,OAAO,CAAC,QAAQ;IAShB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAQnB"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAQL,UAAU,EACX,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,8EAA8E;IAC9E,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,SAAS;IA+BlB,OAAO,CAAC,QAAQ,CAAC,GAAG;IA9BtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB,CAA4D;IAExF,8DAA8D;IAC9D,uBAAuB,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI;gBAKhF,EAAE,EAAE,OAAO,EACM,GAAG,EAAE,gBAAgB,EACtC,IAAI,CAAC,EAAE,MAAM;IAgBf,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAkD3D,OAAO,CAAC,aAAa;IA2ErB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IA0CpD,yDAAyD;IACzD,OAAO,CAAC,cAAc;IAMtB,iFAAiF;IACjF,OAAO,CAAC,SAAS;IAOjB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE;IAOnD,0DAA0D;IAC1D,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM;IAQrD,OAAO,CAAC,SAAS;IA4BjB,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,cAAc;IAMtB,oEAAoE;IACpE,OAAO,CAAC,QAAQ;IAShB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IASlB;;;;;OAKG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;CAOhD"}
package/evaluator.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Evaluator = void 0;
4
4
  const core_1 = require("@sharpee/core");
5
5
  const world_model_1 = require("@sharpee/world-model");
6
- const errors_1 = require("./errors");
7
- const state_keys_1 = require("./state-keys");
6
+ const errors_js_1 = require("./errors.js");
7
+ const state_keys_js_1 = require("./state-keys.js");
8
8
  class Evaluator {
9
9
  ids;
10
10
  conditions = new Map();
@@ -19,6 +19,17 @@ class Evaluator {
19
19
  */
20
20
  irEntities;
21
21
  irEntityById = new Map();
22
+ /**
23
+ * Live client-capability source for `client has` (ADR-216) — set by the
24
+ * loader at engine-ready from the engine's negotiated capabilities.
25
+ * Null (load time, headless tests) means the text-only default: every
26
+ * gateable flag reads false.
27
+ */
28
+ capabilitiesProvider = null;
29
+ /** Wire the live capability source (loader-only; ADR-216). */
30
+ setCapabilitiesProvider(provider) {
31
+ this.capabilitiesProvider = provider;
32
+ }
22
33
  constructor(ir, ids, seed) {
23
34
  this.ids = ids;
24
35
  for (const c of ir.conditions)
@@ -45,12 +56,22 @@ class Evaluator {
45
56
  case 'condition': {
46
57
  const named = this.conditions.get(cond.name);
47
58
  if (!named)
48
- throw new errors_1.LoadError(`Unknown condition \`${cond.name}\` at evaluation time.`);
59
+ throw new errors_js_1.LoadError(`Unknown condition \`${cond.name}\` at evaluation time.`);
49
60
  return this.evalCondition(named, ctx);
50
61
  }
51
62
  case 'story-state':
52
63
  // The story object's phase (`while after-hours`, ratchet D2).
53
- return ctx.world.getStateValue(state_keys_1.CHORD_STORY_STATE_KEY) === cond.state;
64
+ return ctx.world.getStateValue(state_keys_js_1.CHORD_STORY_STATE_KEY) === cond.state;
65
+ case 'client-has': {
66
+ // ADR-216: the live negotiated client capability. Without a
67
+ // provider (load time, headless tests) the engine's text-only
68
+ // default applies: only `text` is true, and `text` cannot be
69
+ // written in a `client has` (the compiler's closed flag set).
70
+ const capabilities = this.capabilitiesProvider?.();
71
+ if (!capabilities)
72
+ return false;
73
+ return capabilities[cond.capability] === true;
74
+ }
54
75
  case 'any-of':
55
76
  // E1 (ratchet 2026-07-12): true iff some entity satisfies the
56
77
  // named open condition; false over the empty set. Short-circuits.
@@ -161,12 +182,13 @@ class Evaluator {
161
182
  const entity = ctx.world.getEntity(subject);
162
183
  if (entity) {
163
184
  if (symbol === 'dark') {
164
- const room = entity.get(world_model_1.TraitType.ROOM);
165
- return room?.isDark === true;
185
+ // Effective darkness is owned by VisibilityBehavior — it also accounts
186
+ // for a carried lit light source — never the raw `requiresLight` field.
187
+ return world_model_1.VisibilityBehavior.isDark(entity, ctx.world);
166
188
  }
167
189
  const irId = this.ids.irIdOf(subject);
168
190
  if (irId !== undefined) {
169
- const state = ctx.world.getStateValue(state_keys_1.CHORD_STATE_PREFIX + irId);
191
+ const state = ctx.world.getStateValue(state_keys_js_1.CHORD_STATE_PREFIX + irId);
170
192
  if (state !== undefined && state === symbol)
171
193
  return true;
172
194
  }
@@ -233,25 +255,25 @@ class Evaluator {
233
255
  return this.playerId(ctx.world);
234
256
  case 'it': {
235
257
  if (!ctx.it)
236
- throw new errors_1.LoadError('`it` used outside an entity-scoped clause.');
258
+ throw new errors_js_1.LoadError('`it` used outside an entity-scoped clause.');
237
259
  return this.requireWorldId(ctx.it);
238
260
  }
239
261
  case 'story':
240
262
  // The story object is not an entity — only `change` targets it.
241
- throw new errors_1.LoadError('The story object has no entity value — use `change the story to <state>`.');
263
+ throw new errors_js_1.LoadError('The story object has no entity value — use `change the story to <state>`.');
242
264
  case 'entity':
243
265
  return this.requireWorldId(value.id);
244
266
  case 'field': {
245
267
  const base = this.evalValue(value.base, ctx);
246
268
  if (typeof base !== 'string') {
247
- throw new errors_1.LoadError(`Cannot read \`${value.field}\` of a non-entity value.`);
269
+ throw new errors_js_1.LoadError(`Cannot read \`${value.field}\` of a non-entity value.`);
248
270
  }
249
271
  return this.readField(base, value.field, ctx);
250
272
  }
251
273
  case 'slot': {
252
274
  const bound = ctx.slots?.[value.name];
253
275
  if (!bound) {
254
- throw new errors_1.LoadError(`Context value \`${value.name}\` is not bound here.`);
276
+ throw new errors_js_1.LoadError(`Context value \`${value.name}\` is not bound here.`);
255
277
  }
256
278
  return bound;
257
279
  }
@@ -259,7 +281,7 @@ class Evaluator {
259
281
  // The `each`-block binder (ratchet E3) — the analyzer's
260
282
  // match-outside-each gate makes an unbound read a loader bug.
261
283
  if (!ctx.match)
262
- throw new errors_1.LoadError('`the match` used outside an `each` block.');
284
+ throw new errors_js_1.LoadError('`the match` used outside an `each` block.');
263
285
  return this.requireWorldId(ctx.match);
264
286
  }
265
287
  }
@@ -269,7 +291,7 @@ class Evaluator {
269
291
  namedCondition(name) {
270
292
  const named = this.conditions.get(name);
271
293
  if (!named)
272
- throw new errors_1.LoadError(`Unknown condition \`${name}\` at evaluation time.`);
294
+ throw new errors_js_1.LoadError(`Unknown condition \`${name}\` at evaluation time.`);
273
295
  return named;
274
296
  }
275
297
  /** True when some domain entity satisfies the open condition (short-circuit). */
@@ -292,7 +314,7 @@ class Evaluator {
292
314
  entityValue(value, ctx) {
293
315
  const result = this.evalValue(value, ctx);
294
316
  if (typeof result !== 'string' || !ctx.world.getEntity(result)) {
295
- throw new errors_1.LoadError(`Expected an entity, got \`${String(result)}\`.`);
317
+ throw new errors_js_1.LoadError(`Expected an entity, got \`${String(result)}\`.`);
296
318
  }
297
319
  return result;
298
320
  }
@@ -303,8 +325,8 @@ class Evaluator {
303
325
  case 'state': {
304
326
  const irId = this.ids.irIdOf(worldId);
305
327
  if (irId === undefined)
306
- throw new errors_1.LoadError('Cannot read `state` of a non-story entity.');
307
- return ctx.world.getStateValue(state_keys_1.CHORD_STATE_PREFIX + irId);
328
+ throw new errors_js_1.LoadError('Cannot read `state` of a non-story entity.');
329
+ return ctx.world.getStateValue(state_keys_js_1.CHORD_STATE_PREFIX + irId);
308
330
  }
309
331
  default: {
310
332
  // Chord trait data fields (Phase B): stored as own properties on
@@ -321,7 +343,7 @@ class Evaluator {
321
343
  }
322
344
  return value.value;
323
345
  }
324
- throw new errors_1.LoadError(`Field \`${field}\` is not supported here.`);
346
+ throw new errors_js_1.LoadError(`Field \`${field}\` is not supported here.`);
325
347
  }
326
348
  }
327
349
  }
@@ -331,11 +353,11 @@ class Evaluator {
331
353
  if (!entity)
332
354
  return undefined;
333
355
  for (const trait of entity.traits.values()) {
334
- if (!trait.type.startsWith(state_keys_1.CHORD_TRAIT_PREFIX))
356
+ if (!trait.type.startsWith(state_keys_js_1.CHORD_TRAIT_PREFIX))
335
357
  continue;
336
358
  const record = trait;
337
359
  if (field in record) {
338
- const traitName = trait.type.slice(state_keys_1.CHORD_TRAIT_PREFIX.length);
360
+ const traitName = trait.type.slice(state_keys_js_1.CHORD_TRAIT_PREFIX.length);
339
361
  return { value: record[field], isEntityField: this.entityFields.get(traitName)?.has(field) ?? false };
340
362
  }
341
363
  }
@@ -345,13 +367,13 @@ class Evaluator {
345
367
  playerId(world) {
346
368
  const id = world.getPlayer()?.id ?? this.ids.playerWorldId();
347
369
  if (!id)
348
- throw new errors_1.LoadError('No player entity exists yet.');
370
+ throw new errors_js_1.LoadError('No player entity exists yet.');
349
371
  return id;
350
372
  }
351
373
  requireWorldId(irId) {
352
374
  const id = this.ids.entityId(irId);
353
375
  if (!id)
354
- throw new errors_1.LoadError(`Entity \`${irId}\` has no world instance.`);
376
+ throw new errors_js_1.LoadError(`Entity \`${irId}\` has no world instance.`);
355
377
  return id;
356
378
  }
357
379
  /** True when `thing` is located inside `container` at any depth. */
@@ -372,13 +394,27 @@ class Evaluator {
372
394
  drawChance(n, world) {
373
395
  if (n <= 1)
374
396
  return true;
375
- const stored = world.getStateValue(state_keys_1.CHORD_RNG_KEY);
397
+ const stored = world.getStateValue(state_keys_js_1.CHORD_RNG_KEY);
376
398
  if (typeof stored === 'number')
377
399
  this.rng.setSeed(stored);
378
400
  const hit = this.rng.int(1, n) === 1;
379
- world.setStateValue(state_keys_1.CHORD_RNG_KEY, this.rng.getSeed());
401
+ world.setStateValue(state_keys_js_1.CHORD_RNG_KEY, this.rng.getSeed());
380
402
  return hit;
381
403
  }
404
+ /**
405
+ * Pick a 0-based index in [0, n) through the seeded story RNG (the same
406
+ * world-state seed chain `chance` uses — deterministic under a fixed
407
+ * seed, AC-5 class). Used by `randomly`/`sticky` phrase selection at
408
+ * point of use (ADR-240's live blocked-message resolution).
409
+ */
410
+ pickIndex(n, world) {
411
+ const stored = world.getStateValue(state_keys_js_1.CHORD_RNG_KEY);
412
+ if (typeof stored === 'number')
413
+ this.rng.setSeed(stored);
414
+ const pick = this.rng.int(1, n) - 1;
415
+ world.setStateValue(state_keys_js_1.CHORD_RNG_KEY, this.rng.getSeed());
416
+ return pick;
417
+ }
382
418
  }
383
419
  exports.Evaluator = Evaluator;
384
420
  //# sourceMappingURL=evaluator.js.map
package/evaluator.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"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"}
@@ -36,4 +36,22 @@ export declare const EVENT_PAYLOAD_FIELDS: {
36
36
  * @returns the destination room id, or undefined when absent/mis-shaped
37
37
  */
38
38
  export declare function enteringDestination(data: unknown): ActorMovedEventData['toRoom'] | undefined;
39
+ /**
40
+ * Chord event verb → crossing event type when the clause owner is a REGION
41
+ * (ADR-236 D6): going.ts emits one event per boundary actually crossed
42
+ * (`getRegionCrossings` is the source of truth), so nesting transitivity —
43
+ * a parent's reaction fires only when the parent boundary is crossed — is
44
+ * the emitter's guarantee, not a runtime filter.
45
+ */
46
+ export declare const REGION_EVENT_TRIGGERS: Record<string, string>;
47
+ /**
48
+ * Type-guarded read of a crossing event's region — which region's boundary
49
+ * was crossed (the WORLD entity id going.ts stamps as `regionId`). No
50
+ * stdlib payload type exists for the crossing events (going.ts emits
51
+ * inline objects), so the runtime pin is tests/event-selector.test.ts plus
52
+ * the region-crossing REAL-PATH suite.
53
+ * @param data the raw event payload (unknown shape at the seam)
54
+ * @returns the crossed region's world entity id, or undefined
55
+ */
56
+ export declare function crossingRegionId(data: unknown): string | undefined;
39
57
  //# sourceMappingURL=event-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-contract.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE;IAAE,QAAQ,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAA;CAElF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAI5F"}
1
+ {"version":3,"file":"event-contract.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE;IAAE,QAAQ,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAA;CAElF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAI5F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGxD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE"}
package/event-contract.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EVENT_PAYLOAD_FIELDS = exports.EVENT_TRIGGERS = void 0;
3
+ exports.REGION_EVENT_TRIGGERS = exports.EVENT_PAYLOAD_FIELDS = exports.EVENT_TRIGGERS = void 0;
4
4
  exports.enteringDestination = enteringDestination;
5
+ exports.crossingRegionId = crossingRegionId;
5
6
  /**
6
7
  * Chord event verb → stdlib event type it binds to. Gerund register since
7
8
  * the ownership package (ratchet D3): entity clauses read `after entering
@@ -32,4 +33,30 @@ function enteringDestination(data) {
32
33
  const value = data[exports.EVENT_PAYLOAD_FIELDS.entering];
33
34
  return typeof value === 'string' ? value : undefined;
34
35
  }
36
+ /**
37
+ * Chord event verb → crossing event type when the clause owner is a REGION
38
+ * (ADR-236 D6): going.ts emits one event per boundary actually crossed
39
+ * (`getRegionCrossings` is the source of truth), so nesting transitivity —
40
+ * a parent's reaction fires only when the parent boundary is crossed — is
41
+ * the emitter's guarantee, not a runtime filter.
42
+ */
43
+ exports.REGION_EVENT_TRIGGERS = {
44
+ entering: 'if.event.region_entered',
45
+ leaving: 'if.event.region_exited', // ratchet R3 — the verb exists only for regions
46
+ };
47
+ /**
48
+ * Type-guarded read of a crossing event's region — which region's boundary
49
+ * was crossed (the WORLD entity id going.ts stamps as `regionId`). No
50
+ * stdlib payload type exists for the crossing events (going.ts emits
51
+ * inline objects), so the runtime pin is tests/event-selector.test.ts plus
52
+ * the region-crossing REAL-PATH suite.
53
+ * @param data the raw event payload (unknown shape at the seam)
54
+ * @returns the crossed region's world entity id, or undefined
55
+ */
56
+ function crossingRegionId(data) {
57
+ if (typeof data !== 'object' || data === null)
58
+ return undefined;
59
+ const value = data['regionId'];
60
+ return typeof value === 'string' ? value : undefined;
61
+ }
35
62
  //# sourceMappingURL=event-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-contract.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":";;;AA0CA,kDAIC;AA9BD;;;;GAIG;AACU,QAAA,cAAc,GAA2B;IACpD,QAAQ,EAAE,sBAAsB;CACjC,CAAC;AAEF;;;;GAIG;AACU,QAAA,oBAAoB,GAAuD;IACtF,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,KAAK,GAAI,IAAgC,CAAC,4BAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/E,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"event-contract.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":";;;AA0CA,kDAIC;AAuBD,4CAIC;AAzDD;;;;GAIG;AACU,QAAA,cAAc,GAA2B;IACpD,QAAQ,EAAE,sBAAsB;CACjC,CAAC;AAEF;;;;GAIG;AACU,QAAA,oBAAoB,GAAuD;IACtF,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,KAAK,GAAI,IAAgC,CAAC,4BAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/E,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACU,QAAA,qBAAqB,GAA2B;IAC3D,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,wBAAwB,EAAE,gDAAgD;CACpF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,KAAK,GAAI,IAAgC,CAAC,UAAU,CAAC,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * event-id-map.ts — Chord-event-id → platform-event-id translation (ADR-256).
3
+ *
4
+ * Purpose: Chord is dotless (ADR-254) — an author writes `emit media-sound-play`
5
+ * — but the TS platform keeps its dotted `media.*` event ids untouched. This
6
+ * module is the single place that knows both spellings, so the Chord compiler
7
+ * stays platform-free (ADR-256 D1) and no rename lands in stdlib/engine.
8
+ *
9
+ * Public interface: `translateEventId(chordId)` — forward-translate a Chord IR
10
+ * event id to the runtime event type applied at all three event seams (emit,
11
+ * channel `from event`, machine `when event`). `CHORD_TO_PLATFORM_EVENT_ID` —
12
+ * the pinned map, exported for the conformance test only.
13
+ *
14
+ * Owner context: @sharpee/story-loader (Chord-IR → platform bindings). The map
15
+ * is a runtime table, distinct from `event-contract.ts` (a compile-time drift
16
+ * guard); a `media.*` rename in stdlib is caught by `event-id-map.test.ts`.
17
+ */
18
+ /**
19
+ * Chord event id (dotless, as it appears in the compiled IR) → platform event
20
+ * id (dotted, unchanged, as stdlib's channels consume it). Only Chord↔platform
21
+ * events appear here; a story's own author events (`chord-compass-updated`,
22
+ * `gatehouse-watch-report`, …) are emitted and consumed within Chord as their
23
+ * kebab string and are deliberately absent — `translateEventId` passes them
24
+ * through (ADR-256 D3).
25
+ *
26
+ * The initial set is stdlib's `media.*` registry (`stdlib/channels/media.ts`).
27
+ * Each entry is the platform id with `.` → `-`; the conformance test pins this
28
+ * table against the live `MEDIA_EVENT_TYPES` so a platform rename fails the build.
29
+ */
30
+ export declare const CHORD_TO_PLATFORM_EVENT_ID: Readonly<Record<string, string>>;
31
+ /**
32
+ * Forward-translate a Chord IR event id to the platform runtime event type.
33
+ * A mapped Chord↔platform event (the `media.*` set) resolves to its dotted
34
+ * platform id; an author event with no entry passes through unchanged. Applied
35
+ * identically at every event seam so emit and subscribe always agree.
36
+ *
37
+ * @param chordId the event id as it appears in the compiled Chord IR (dotless)
38
+ * @returns the platform runtime event type (dotted for platform events, the
39
+ * unchanged kebab id for author events)
40
+ */
41
+ export declare function translateEventId(chordId: string): string;
42
+ //# sourceMappingURL=event-id-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-id-map.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-id-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcvE,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /**
3
+ * event-id-map.ts — Chord-event-id → platform-event-id translation (ADR-256).
4
+ *
5
+ * Purpose: Chord is dotless (ADR-254) — an author writes `emit media-sound-play`
6
+ * — but the TS platform keeps its dotted `media.*` event ids untouched. This
7
+ * module is the single place that knows both spellings, so the Chord compiler
8
+ * stays platform-free (ADR-256 D1) and no rename lands in stdlib/engine.
9
+ *
10
+ * Public interface: `translateEventId(chordId)` — forward-translate a Chord IR
11
+ * event id to the runtime event type applied at all three event seams (emit,
12
+ * channel `from event`, machine `when event`). `CHORD_TO_PLATFORM_EVENT_ID` —
13
+ * the pinned map, exported for the conformance test only.
14
+ *
15
+ * Owner context: @sharpee/story-loader (Chord-IR → platform bindings). The map
16
+ * is a runtime table, distinct from `event-contract.ts` (a compile-time drift
17
+ * guard); a `media.*` rename in stdlib is caught by `event-id-map.test.ts`.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.CHORD_TO_PLATFORM_EVENT_ID = void 0;
21
+ exports.translateEventId = translateEventId;
22
+ /**
23
+ * Chord event id (dotless, as it appears in the compiled IR) → platform event
24
+ * id (dotted, unchanged, as stdlib's channels consume it). Only Chord↔platform
25
+ * events appear here; a story's own author events (`chord-compass-updated`,
26
+ * `gatehouse-watch-report`, …) are emitted and consumed within Chord as their
27
+ * kebab string and are deliberately absent — `translateEventId` passes them
28
+ * through (ADR-256 D3).
29
+ *
30
+ * The initial set is stdlib's `media.*` registry (`stdlib/channels/media.ts`).
31
+ * Each entry is the platform id with `.` → `-`; the conformance test pins this
32
+ * table against the live `MEDIA_EVENT_TYPES` so a platform rename fails the build.
33
+ */
34
+ exports.CHORD_TO_PLATFORM_EVENT_ID = {
35
+ 'media-sound-play': 'media.sound.play',
36
+ 'media-image-show': 'media.image.show',
37
+ 'media-image-hide': 'media.image.hide',
38
+ 'media-image-preload': 'media.image.preload',
39
+ 'media-music-play': 'media.music.play',
40
+ 'media-music-stop': 'media.music.stop',
41
+ 'media-ambient-play': 'media.ambient.play',
42
+ 'media-ambient-stop': 'media.ambient.stop',
43
+ 'media-animation-play': 'media.animation.play',
44
+ 'media-animate': 'media.animate',
45
+ 'media-transition': 'media.transition',
46
+ 'media-layout-configure': 'media.layout.configure',
47
+ 'media-clear': 'media.clear',
48
+ };
49
+ /**
50
+ * Forward-translate a Chord IR event id to the platform runtime event type.
51
+ * A mapped Chord↔platform event (the `media.*` set) resolves to its dotted
52
+ * platform id; an author event with no entry passes through unchanged. Applied
53
+ * identically at every event seam so emit and subscribe always agree.
54
+ *
55
+ * @param chordId the event id as it appears in the compiled Chord IR (dotless)
56
+ * @returns the platform runtime event type (dotted for platform events, the
57
+ * unchanged kebab id for author events)
58
+ */
59
+ function translateEventId(chordId) {
60
+ return exports.CHORD_TO_PLATFORM_EVENT_ID[chordId] ?? chordId;
61
+ }
62
+ //# sourceMappingURL=event-id-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-id-map.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-id-map.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAwCH,4CAEC;AAxCD;;;;;;;;;;;GAWG;AACU,QAAA,0BAA0B,GAAqC;IAC1E,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,qBAAqB,EAAE,qBAAqB;IAC5C,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,oBAAoB,EAAE,oBAAoB;IAC1C,oBAAoB,EAAE,oBAAoB;IAC1C,sBAAsB,EAAE,sBAAsB;IAC9C,eAAe,EAAE,eAAe;IAChC,kBAAkB,EAAE,kBAAkB;IACtC,wBAAwB,EAAE,wBAAwB;IAClD,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,kCAA0B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;AACxD,CAAC"}