@sharpee/story-loader 3.1.0 → 3.5.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 +40 -0
- package/chain-map.d.ts.map +1 -0
- package/chain-map.js +39 -0
- package/chain-map.js.map +1 -0
- package/evaluator.d.ts +16 -0
- package/evaluator.d.ts.map +1 -1
- package/evaluator.js +56 -21
- package/evaluator.js.map +1 -1
- package/event-contract.d.ts +18 -0
- package/event-contract.d.ts.map +1 -1
- package/event-contract.js +28 -1
- package/event-contract.js.map +1 -1
- package/event-id-map.d.ts +42 -0
- package/event-id-map.d.ts.map +1 -0
- package/event-id-map.js +62 -0
- package/event-id-map.js.map +1 -0
- package/extension-registry.d.ts +57 -0
- package/extension-registry.d.ts.map +1 -0
- package/extension-registry.js +90 -0
- package/extension-registry.js.map +1 -0
- package/index.d.ts +9 -7
- package/index.d.ts.map +1 -1
- package/index.js +28 -25
- package/index.js.map +1 -1
- package/loader.d.ts +122 -6
- package/loader.d.ts.map +1 -1
- package/loader.js +967 -119
- package/loader.js.map +1 -1
- package/message-alias-map.d.ts +25 -0
- package/message-alias-map.d.ts.map +1 -0
- package/message-alias-map.js +830 -0
- package/message-alias-map.js.map +1 -0
- package/package.json +13 -9
- package/phrasebook-data.d.ts +27 -0
- package/phrasebook-data.d.ts.map +1 -0
- package/phrasebook-data.js +6 -0
- package/phrasebook-data.js.map +1 -0
- package/runtime.d.ts +139 -19
- package/runtime.d.ts.map +1 -1
- package/runtime.js +692 -166
- package/runtime.js.map +1 -1
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
|
package/chain-map.js.map
ADDED
|
@@ -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
|
package/evaluator.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
7
|
-
const
|
|
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
|
|
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(
|
|
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.
|
|
@@ -167,7 +188,7 @@ class Evaluator {
|
|
|
167
188
|
}
|
|
168
189
|
const irId = this.ids.irIdOf(subject);
|
|
169
190
|
if (irId !== undefined) {
|
|
170
|
-
const state = ctx.world.getStateValue(
|
|
191
|
+
const state = ctx.world.getStateValue(state_keys_js_1.CHORD_STATE_PREFIX + irId);
|
|
171
192
|
if (state !== undefined && state === symbol)
|
|
172
193
|
return true;
|
|
173
194
|
}
|
|
@@ -234,25 +255,25 @@ class Evaluator {
|
|
|
234
255
|
return this.playerId(ctx.world);
|
|
235
256
|
case 'it': {
|
|
236
257
|
if (!ctx.it)
|
|
237
|
-
throw new
|
|
258
|
+
throw new errors_js_1.LoadError('`it` used outside an entity-scoped clause.');
|
|
238
259
|
return this.requireWorldId(ctx.it);
|
|
239
260
|
}
|
|
240
261
|
case 'story':
|
|
241
262
|
// The story object is not an entity — only `change` targets it.
|
|
242
|
-
throw new
|
|
263
|
+
throw new errors_js_1.LoadError('The story object has no entity value — use `change the story to <state>`.');
|
|
243
264
|
case 'entity':
|
|
244
265
|
return this.requireWorldId(value.id);
|
|
245
266
|
case 'field': {
|
|
246
267
|
const base = this.evalValue(value.base, ctx);
|
|
247
268
|
if (typeof base !== 'string') {
|
|
248
|
-
throw new
|
|
269
|
+
throw new errors_js_1.LoadError(`Cannot read \`${value.field}\` of a non-entity value.`);
|
|
249
270
|
}
|
|
250
271
|
return this.readField(base, value.field, ctx);
|
|
251
272
|
}
|
|
252
273
|
case 'slot': {
|
|
253
274
|
const bound = ctx.slots?.[value.name];
|
|
254
275
|
if (!bound) {
|
|
255
|
-
throw new
|
|
276
|
+
throw new errors_js_1.LoadError(`Context value \`${value.name}\` is not bound here.`);
|
|
256
277
|
}
|
|
257
278
|
return bound;
|
|
258
279
|
}
|
|
@@ -260,7 +281,7 @@ class Evaluator {
|
|
|
260
281
|
// The `each`-block binder (ratchet E3) — the analyzer's
|
|
261
282
|
// match-outside-each gate makes an unbound read a loader bug.
|
|
262
283
|
if (!ctx.match)
|
|
263
|
-
throw new
|
|
284
|
+
throw new errors_js_1.LoadError('`the match` used outside an `each` block.');
|
|
264
285
|
return this.requireWorldId(ctx.match);
|
|
265
286
|
}
|
|
266
287
|
}
|
|
@@ -270,7 +291,7 @@ class Evaluator {
|
|
|
270
291
|
namedCondition(name) {
|
|
271
292
|
const named = this.conditions.get(name);
|
|
272
293
|
if (!named)
|
|
273
|
-
throw new
|
|
294
|
+
throw new errors_js_1.LoadError(`Unknown condition \`${name}\` at evaluation time.`);
|
|
274
295
|
return named;
|
|
275
296
|
}
|
|
276
297
|
/** True when some domain entity satisfies the open condition (short-circuit). */
|
|
@@ -293,7 +314,7 @@ class Evaluator {
|
|
|
293
314
|
entityValue(value, ctx) {
|
|
294
315
|
const result = this.evalValue(value, ctx);
|
|
295
316
|
if (typeof result !== 'string' || !ctx.world.getEntity(result)) {
|
|
296
|
-
throw new
|
|
317
|
+
throw new errors_js_1.LoadError(`Expected an entity, got \`${String(result)}\`.`);
|
|
297
318
|
}
|
|
298
319
|
return result;
|
|
299
320
|
}
|
|
@@ -304,8 +325,8 @@ class Evaluator {
|
|
|
304
325
|
case 'state': {
|
|
305
326
|
const irId = this.ids.irIdOf(worldId);
|
|
306
327
|
if (irId === undefined)
|
|
307
|
-
throw new
|
|
308
|
-
return ctx.world.getStateValue(
|
|
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);
|
|
309
330
|
}
|
|
310
331
|
default: {
|
|
311
332
|
// Chord trait data fields (Phase B): stored as own properties on
|
|
@@ -322,7 +343,7 @@ class Evaluator {
|
|
|
322
343
|
}
|
|
323
344
|
return value.value;
|
|
324
345
|
}
|
|
325
|
-
throw new
|
|
346
|
+
throw new errors_js_1.LoadError(`Field \`${field}\` is not supported here.`);
|
|
326
347
|
}
|
|
327
348
|
}
|
|
328
349
|
}
|
|
@@ -332,11 +353,11 @@ class Evaluator {
|
|
|
332
353
|
if (!entity)
|
|
333
354
|
return undefined;
|
|
334
355
|
for (const trait of entity.traits.values()) {
|
|
335
|
-
if (!trait.type.startsWith(
|
|
356
|
+
if (!trait.type.startsWith(state_keys_js_1.CHORD_TRAIT_PREFIX))
|
|
336
357
|
continue;
|
|
337
358
|
const record = trait;
|
|
338
359
|
if (field in record) {
|
|
339
|
-
const traitName = trait.type.slice(
|
|
360
|
+
const traitName = trait.type.slice(state_keys_js_1.CHORD_TRAIT_PREFIX.length);
|
|
340
361
|
return { value: record[field], isEntityField: this.entityFields.get(traitName)?.has(field) ?? false };
|
|
341
362
|
}
|
|
342
363
|
}
|
|
@@ -346,13 +367,13 @@ class Evaluator {
|
|
|
346
367
|
playerId(world) {
|
|
347
368
|
const id = world.getPlayer()?.id ?? this.ids.playerWorldId();
|
|
348
369
|
if (!id)
|
|
349
|
-
throw new
|
|
370
|
+
throw new errors_js_1.LoadError('No player entity exists yet.');
|
|
350
371
|
return id;
|
|
351
372
|
}
|
|
352
373
|
requireWorldId(irId) {
|
|
353
374
|
const id = this.ids.entityId(irId);
|
|
354
375
|
if (!id)
|
|
355
|
-
throw new
|
|
376
|
+
throw new errors_js_1.LoadError(`Entity \`${irId}\` has no world instance.`);
|
|
356
377
|
return id;
|
|
357
378
|
}
|
|
358
379
|
/** True when `thing` is located inside `container` at any depth. */
|
|
@@ -373,13 +394,27 @@ class Evaluator {
|
|
|
373
394
|
drawChance(n, world) {
|
|
374
395
|
if (n <= 1)
|
|
375
396
|
return true;
|
|
376
|
-
const stored = world.getStateValue(
|
|
397
|
+
const stored = world.getStateValue(state_keys_js_1.CHORD_RNG_KEY);
|
|
377
398
|
if (typeof stored === 'number')
|
|
378
399
|
this.rng.setSeed(stored);
|
|
379
400
|
const hit = this.rng.int(1, n) === 1;
|
|
380
|
-
world.setStateValue(
|
|
401
|
+
world.setStateValue(state_keys_js_1.CHORD_RNG_KEY, this.rng.getSeed());
|
|
381
402
|
return hit;
|
|
382
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
|
+
}
|
|
383
418
|
}
|
|
384
419
|
exports.Evaluator = Evaluator;
|
|
385
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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"}
|
package/event-contract.d.ts
CHANGED
|
@@ -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
|
package/event-contract.d.ts.map
CHANGED
|
@@ -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
|
package/event-contract.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/event-id-map.js
ADDED
|
@@ -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"}
|