@sharpee/story-loader 3.0.0 → 3.1.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/evaluator.d.ts.map +1 -1
- package/evaluator.js +3 -2
- package/evaluator.js.map +1 -1
- package/loader.d.ts +45 -1
- package/loader.d.ts.map +1 -1
- package/loader.js +216 -5
- package/loader.js.map +1 -1
- package/package.json +9 -9
- package/runtime.d.ts +20 -1
- package/runtime.d.ts.map +1 -1
- package/runtime.js +172 -21
- package/runtime.js.map +1 -1
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;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;
|
|
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;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;CAQnB"}
|
package/evaluator.js
CHANGED
|
@@ -161,8 +161,9 @@ class Evaluator {
|
|
|
161
161
|
const entity = ctx.world.getEntity(subject);
|
|
162
162
|
if (entity) {
|
|
163
163
|
if (symbol === 'dark') {
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
// Effective darkness is owned by VisibilityBehavior — it also accounts
|
|
165
|
+
// for a carried lit light source — never the raw `requiresLight` field.
|
|
166
|
+
return world_model_1.VisibilityBehavior.isDark(entity, ctx.world);
|
|
166
167
|
}
|
|
167
168
|
const irId = this.ids.irIdOf(subject);
|
|
168
169
|
if (irId !== undefined) {
|
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":";;;AAoBA,wCAAiE;AACjE,sDAS8B;AAC9B,qCAAqC;AACrC,6CAA4G;AA2B5G,MAAa,SAAS;IAkBD;IAjBF,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,GAAG,CAAe;IAEnC,+EAA+E;IAC9D,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE/D;;;;;OAKG;IACc,UAAU,CAAa;IACvB,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE5D,YACE,EAAW,EACM,GAAqB,EACtC,IAAa;QADI,QAAG,GAAH,GAAG,CAAkB;QAGtC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,KAAK,CAAC,IAAI,EACV,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,0EAA0E;IAE1E,aAAa,CAAC,IAAiB,EAAE,GAAgB;QAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChE,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/D,KAAK,KAAK;gBACR,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAChD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,kBAAS,CAAC,uBAAuB,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,aAAa;gBAChB,8DAA8D;gBAC9D,OAAO,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,kCAAqB,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;YACvE,KAAK,QAAQ;gBACX,8DAA8D;gBAC9D,kEAAkE;gBAClE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7C,KAAK,SAAS;gBACZ,yDAAyD;gBACzD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC9C,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,iEAAiE;gBACjE,+DAA+D;gBAC/D,+DAA+D;gBAC/D,iEAAiE;gBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;gBACrC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,aAAa,CACnB,IAAiD,EACjD,GAAgB;QAEhB,MAAM,GAAG,GAAG,CAAC,MAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAClC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,mEAAmE;gBACnE,8DAA8D;gBAC9D,gDAAgD;gBAChD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9E,IAAI,CAAC,QAAQ;oBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9F,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACnD,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,6DAA6D;gBAC7D,mEAAmE;gBACnE,2DAA2D;gBAC3D,2DAA2D;gBAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,QAAQ;oBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,SAAS,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAChG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,uBAAS,CAAC,IAAI,CAAC;oBAAE,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;gBAC9F,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACnG,OAAO,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,UAAU,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACjD,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;YAChD,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAA8B,CAAC;gBAC9E,OAAO,QAAQ,EAAE,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;YAC/D,CAAC;YACD,KAAK,SAAS,CAAC;YACf,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,8DAA8D;gBAC9D,+DAA+D;gBAC/D,wDAAwD;gBACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACnG,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAChG,OAAO,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,UAAU,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,OAAgB,EAAE,MAAc,EAAE,GAAgB;QACpE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,8DAA8D;YAC9D,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,IAAI,CAA0B,CAAC;oBACjE,OAAO,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;gBAC/B,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,+BAAkB,GAAG,IAAI,CAAC,CAAC;oBACjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;wBAAE,OAAO,IAAI,CAAC;gBAC3D,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC3D,IAAI,SAAS,KAAK,IAAI;oBAAE,OAAO,SAAS,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,MAAwD,EAAE,MAAc;QAClG,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAA8B,CAAC;gBAC7E,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC3B,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC;YACjF,CAAC;YACD,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAA8B,CAAC;gBAC7E,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC3B,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;YACvF,CAAC;YACD,KAAK,IAAI,CAAC;YACV,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,UAAU,CAAgC,CAAC;gBACnF,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAC7B,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC;YAC/E,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAA8B,CAAC;gBAC7E,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC3B,OAAO,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;YAChC,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,YAAY,CAAiC,CAAC;gBAClF,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACzB,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;YAC/B,CAAC;YACD;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,SAAS,CAAC,KAAc,EAAE,GAAgB;QACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1E,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,IAAI,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,MAAM,IAAI,kBAAS,CAAC,4CAA4C,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,KAAK,OAAO;gBACV,gEAAgE;gBAChE,MAAM,IAAI,kBAAS,CAAC,2EAA2E,CAAC,CAAC;YACnG,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,IAAI,kBAAS,CAAC,iBAAiB,KAAK,CAAC,KAAK,2BAA2B,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,kBAAS,CAAC,mBAAmB,KAAK,CAAC,IAAI,uBAAuB,CAAC,CAAC;gBAC5E,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,wDAAwD;gBACxD,8DAA8D;gBAC9D,IAAI,CAAC,GAAG,CAAC,KAAK;oBAAE,MAAM,IAAI,kBAAS,CAAC,2CAA2C,CAAC,CAAC;gBACjF,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,2EAA2E;IAE3E,yDAAyD;IACjD,cAAc,CAAC,IAAY;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAS,CAAC,uBAAuB,IAAI,wBAAwB,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iFAAiF;IACzE,SAAS,CAAC,IAAY,EAAE,GAAgB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAChG,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAY,EAAE,GAAgB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aACvG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,0DAA0D;IAC1D,WAAW,CAAC,KAAc,EAAE,GAAgB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,kBAAS,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,GAAgB;QAChE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,UAAU;gBACb,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,IAAI,kBAAS,CAAC,4CAA4C,CAAC,CAAC;gBAC1F,OAAO,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,+BAAkB,GAAG,IAAI,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,iEAAiE;gBACjE,gEAAgE;gBAChE,kEAAkE;gBAClE,mEAAmE;gBACnE,yCAAyC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,KAAK,CAAC,aAAa,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChD,IAAI,QAAQ;4BAAE,OAAO,QAAQ,CAAC;oBAChC,CAAC;oBACD,OAAO,KAAK,CAAC,KAAK,CAAC;gBACrB,CAAC;gBACD,MAAM,IAAI,kBAAS,CAAC,WAAW,KAAK,2BAA2B,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IACvE,mBAAmB,CACzB,OAAe,EACf,KAAa,EACb,GAAgB;QAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,+BAAkB,CAAC;gBAAE,SAAS;YACzD,MAAM,MAAM,GAAG,KAA2C,CAAC;YAC3D,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,+BAAkB,CAAC,MAAM,CAAC,CAAC;gBAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACxG,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0EAA0E;IAElE,QAAQ,CAAC,KAAiB;QAChC,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC7D,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,kBAAS,CAAC,8BAA8B,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,kBAAS,CAAC,YAAY,IAAI,2BAA2B,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oEAAoE;IAC5D,QAAQ,CAAC,KAAiB,EAAE,KAAa,EAAE,SAAiB;QAClE,IAAI,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACvC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,CAAS,EAAE,KAAiB;QAC7C,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,0BAAa,CAAC,CAAC;QAClD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,KAAK,CAAC,aAAa,CAAC,0BAAa,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA/XD,8BA+XC"}
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"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"}
|
package/loader.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ import type { Phrase } from '@sharpee/if-domain';
|
|
|
25
25
|
import type { ISemanticEvent } from '@sharpee/core';
|
|
26
26
|
import type { LanguageProvider, PhraseProducer, StoryEndingKind } from '@sharpee/if-domain';
|
|
27
27
|
import type { CustomVocabulary, Story, StoryConfig } from '@sharpee/engine';
|
|
28
|
-
import { CapabilityBehavior, IFEntity, ITrait, WorldModel } from '@sharpee/world-model';
|
|
28
|
+
import { CapabilityBehavior, IFEntity, IParsedCommand, ITrait, WorldModel } from '@sharpee/world-model';
|
|
29
29
|
import { ChordRuntime } from './runtime';
|
|
30
30
|
/**
|
|
31
31
|
* Marker trait for entities carrying loader-compiled `detail` providers
|
|
@@ -92,6 +92,25 @@ export declare class ChordStory implements Story {
|
|
|
92
92
|
private readonly evaluator;
|
|
93
93
|
/** IR entity ID → world entity ID (populated by initializeWorld/createPlayer). */
|
|
94
94
|
private readonly worldIds;
|
|
95
|
+
/**
|
|
96
|
+
* Trait-config entity references awaiting world-id resolution (ADR-230
|
|
97
|
+
* D3c / Phase 9a): `cuttable with tool the knife`, `lockable with key the
|
|
98
|
+
* brass key` may name entities built AFTER their owner, so trait fields
|
|
99
|
+
* are stamped once every entity exists — config values are NEVER left as
|
|
100
|
+
* raw display-name strings.
|
|
101
|
+
*/
|
|
102
|
+
private readonly pendingEntityRefs;
|
|
103
|
+
/** Resolve a trait-config entity NAME to an IR entity and queue the
|
|
104
|
+
* world-id application (throws LoadError when nothing matches). */
|
|
105
|
+
private entityRefFor;
|
|
106
|
+
/**
|
|
107
|
+
* Deadly exits (ADR-227): world room id → DIRECTION → derived
|
|
108
|
+
* cause/messageId (both the phrase key). Lowered in `onEngineReady` to ONE
|
|
109
|
+
* pre-validate command transformer redirecting to the platform's generic
|
|
110
|
+
* deadly-death action — a deadly exit need not exist in the room graph, so
|
|
111
|
+
* no destination-resolved interceptor could ever fire.
|
|
112
|
+
*/
|
|
113
|
+
private readonly deadlyExits;
|
|
95
114
|
/** World entity ID → IR entity ID (state lookups in the evaluator). */
|
|
96
115
|
private readonly irIds;
|
|
97
116
|
private world;
|
|
@@ -135,7 +154,15 @@ export declare class ChordStory implements Story {
|
|
|
135
154
|
register(plugin: unknown): void;
|
|
136
155
|
};
|
|
137
156
|
registerSlotEntry?(entry: ChordSlotEntry): void;
|
|
157
|
+
registerParsedCommandTransformer?(t: (parsed: IParsedCommand, world: WorldModel) => IParsedCommand): void;
|
|
138
158
|
}): void;
|
|
159
|
+
/**
|
|
160
|
+
* The deadly-exit command transformer (ADR-227). Redirects `going
|
|
161
|
+
* <deadly-direction>` from a room with declared deadly exits to
|
|
162
|
+
* `DEADLY_ROOM_DEATH_ACTION_ID`, threading the phrase-derived
|
|
163
|
+
* cause/messageId through extras. Pass-through otherwise.
|
|
164
|
+
*/
|
|
165
|
+
private buildDeadlyExitTransformer;
|
|
139
166
|
/**
|
|
140
167
|
* Z3 `present` channel → ADR-212 slot entries. One `registerSlotEntry`
|
|
141
168
|
* call per authoring entity: `slotKey: 'here'`, owner = the entity,
|
|
@@ -163,6 +190,23 @@ export declare class ChordStory implements Story {
|
|
|
163
190
|
*/
|
|
164
191
|
triggerEnding(world: WorldModel, ending: StoryEndingKind, messageId?: string): ISemanticEvent;
|
|
165
192
|
private buildEntity;
|
|
193
|
+
/**
|
|
194
|
+
* Resolve trait-config entity references (`with tool X`, `with key X`)
|
|
195
|
+
* to world entity ids (ADR-230 D3c / Phase 9a) — runs once, after every
|
|
196
|
+
* entity is built.
|
|
197
|
+
*/
|
|
198
|
+
private resolvePendingEntityRefs;
|
|
199
|
+
/**
|
|
200
|
+
* ADR-230 D3c load-time check (PIN 3, dual-surface re-pin, 2026-07-17):
|
|
201
|
+
* every cuttable entity must register exactly ONE cut implementation —
|
|
202
|
+
* an `on cutting it` clause (entity- or trait-level, loads as an
|
|
203
|
+
* ADR-228 interceptor) or an ADR-090 capability behavior for
|
|
204
|
+
* `if.action.cutting` (TS/hatch surface). Zero implementations would
|
|
205
|
+
* silently no-op at runtime; two would double-fire (ADR-228 D6 spirit).
|
|
206
|
+
* Chord surfaces are counted from the IR (precise per entity); the
|
|
207
|
+
* capability surface from the live world.
|
|
208
|
+
*/
|
|
209
|
+
private checkCuttableImplementations;
|
|
166
210
|
private applyTraitAdjectives;
|
|
167
211
|
/**
|
|
168
212
|
* Initial values for a `define trait` instance: declared `starts`
|
package/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAOL,OAAO,EACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAmB,MAAM,EAAgB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/loader.ts"],"names":[],"mappings":"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"}
|
package/loader.js
CHANGED
|
@@ -84,6 +84,32 @@ class ChordStory {
|
|
|
84
84
|
evaluator;
|
|
85
85
|
/** IR entity ID → world entity ID (populated by initializeWorld/createPlayer). */
|
|
86
86
|
worldIds = new Map();
|
|
87
|
+
/**
|
|
88
|
+
* Trait-config entity references awaiting world-id resolution (ADR-230
|
|
89
|
+
* D3c / Phase 9a): `cuttable with tool the knife`, `lockable with key the
|
|
90
|
+
* brass key` may name entities built AFTER their owner, so trait fields
|
|
91
|
+
* are stamped once every entity exists — config values are NEVER left as
|
|
92
|
+
* raw display-name strings.
|
|
93
|
+
*/
|
|
94
|
+
pendingEntityRefs = [];
|
|
95
|
+
/** Resolve a trait-config entity NAME to an IR entity and queue the
|
|
96
|
+
* world-id application (throws LoadError when nothing matches). */
|
|
97
|
+
entityRefFor(name, configKey, owner, span, apply) {
|
|
98
|
+
const lower = name.toLowerCase();
|
|
99
|
+
const target = this.ir.entities.find((e) => e.name.toLowerCase() === lower || e.aka.includes(lower));
|
|
100
|
+
if (!target) {
|
|
101
|
+
throw new errors_1.LoadError(`\`${name}\` (config \`${configKey}\`) names no entity.`, span);
|
|
102
|
+
}
|
|
103
|
+
return { irRefId: target.id, ownerName: owner.name, span, apply };
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Deadly exits (ADR-227): world room id → DIRECTION → derived
|
|
107
|
+
* cause/messageId (both the phrase key). Lowered in `onEngineReady` to ONE
|
|
108
|
+
* pre-validate command transformer redirecting to the platform's generic
|
|
109
|
+
* deadly-death action — a deadly exit need not exist in the room graph, so
|
|
110
|
+
* no destination-resolved interceptor could ever fire.
|
|
111
|
+
*/
|
|
112
|
+
deadlyExits = new Map();
|
|
87
113
|
/** World entity ID → IR entity ID (state lookups in the evaluator). */
|
|
88
114
|
irIds = new Map();
|
|
89
115
|
world = null;
|
|
@@ -198,6 +224,27 @@ class ChordStory {
|
|
|
198
224
|
world_model_1.RoomBehavior.blockExit(entity, toDirection(blocked.direction, irEntity), this.phraseText(blocked.phraseKey));
|
|
199
225
|
}
|
|
200
226
|
}
|
|
227
|
+
// ADR-227: `deadly: <phrase>` — the no-escape room marker lowers to
|
|
228
|
+
// DeadlyRoomTrait (safeVerbs default look/examine); the ENGINE
|
|
229
|
+
// auto-registers the deadly-room transformer, so no runtime code here.
|
|
230
|
+
// Cause and messageId both derive from the phrase key.
|
|
231
|
+
if (irEntity.deadly) {
|
|
232
|
+
entity.add(new world_model_1.DeadlyRoomTrait({
|
|
233
|
+
cause: irEntity.deadly.phraseKey,
|
|
234
|
+
messageId: irEntity.deadly.phraseKey,
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
// ADR-227: `<direction> is deadly: <phrase>` — collected here, lowered
|
|
238
|
+
// to one command transformer in onEngineReady.
|
|
239
|
+
for (const deadly of irEntity.deadlyExits) {
|
|
240
|
+
if (deadly.condition !== null) {
|
|
241
|
+
throw new errors_1.LoadError('`is deadly while <condition>` is not wired yet — the conditional deadly exit is post-scope (mirror: role-bound trait clauses). Use an unconditional `is deadly:` or an `on going` clause with `kill the player when <condition>`.', deadly.span);
|
|
242
|
+
}
|
|
243
|
+
const direction = toDirection(deadly.direction, irEntity);
|
|
244
|
+
const byRoom = this.deadlyExits.get(entity.id) ?? new Map();
|
|
245
|
+
byRoom.set(String(direction).toUpperCase(), { cause: deadly.phraseKey, messageId: deadly.phraseKey });
|
|
246
|
+
this.deadlyExits.set(entity.id, byRoom);
|
|
247
|
+
}
|
|
201
248
|
if (irEntity.states.length > 0) {
|
|
202
249
|
world.setStateValue(state_keys_1.CHORD_STATE_PREFIX + irEntity.id, irEntity.states[0]);
|
|
203
250
|
}
|
|
@@ -223,9 +270,15 @@ class ChordStory {
|
|
|
223
270
|
// Z3b: gated `detail` blocks — shipped trait fields where the condition
|
|
224
271
|
// matches them, a loader-owned state-clause provider for everything else.
|
|
225
272
|
this.compileDetailChannels(world);
|
|
273
|
+
// ADR-230 D3c / Phase 9a: stamp trait-config entity references (tools,
|
|
274
|
+
// keys) now that every entity exists (forward references resolve here).
|
|
275
|
+
this.resolvePendingEntityRefs();
|
|
226
276
|
// Bind the turn-by-turn runtime: rules, on-clause interceptors,
|
|
227
277
|
// derived-property chains (all per-world, keyed — ADR-207/208).
|
|
228
278
|
this.runtime.bind(world);
|
|
279
|
+
// ADR-230 D3c (PIN 3, dual-surface re-pin): an unimplemented cuttable
|
|
280
|
+
// is an authoring error at load, never a silent runtime no-op.
|
|
281
|
+
this.checkCuttableImplementations(world);
|
|
229
282
|
this.worldBuilt = true;
|
|
230
283
|
// Engine order (GameEngine.setStory): createPlayer ran before world
|
|
231
284
|
// content existed — the player can be placed and equipped only now.
|
|
@@ -276,6 +329,10 @@ class ChordStory {
|
|
|
276
329
|
if (startIr) {
|
|
277
330
|
world.moveEntity(player.id, this.requireWorldId(startIr, irPlayer ?? undefined));
|
|
278
331
|
}
|
|
332
|
+
// Carried items: into inventory (ADR-230 Phase 6 — `carries the X`).
|
|
333
|
+
for (const carriedIrId of irPlayer?.carries ?? []) {
|
|
334
|
+
world.moveEntity(this.requireWorldId(carriedIrId, irPlayer ?? undefined), player.id);
|
|
335
|
+
}
|
|
279
336
|
// Worn items: into inventory, marked worn.
|
|
280
337
|
for (const wornIrId of irPlayer?.wears ?? []) {
|
|
281
338
|
const wornId = this.requireWorldId(wornIrId, irPlayer ?? undefined);
|
|
@@ -330,11 +387,62 @@ class ChordStory {
|
|
|
330
387
|
for (const daemon of daemons)
|
|
331
388
|
scheduler.registerDaemon(daemon);
|
|
332
389
|
}
|
|
390
|
+
// ADR-227: `<direction> is deadly:` — one pre-validate transformer over
|
|
391
|
+
// the collected deadly-exit map, redirecting a matching going command to
|
|
392
|
+
// the platform's generic extras-driven deadly-death action (the same
|
|
393
|
+
// seam stdlib's own deadly-room transformer uses).
|
|
394
|
+
if (this.deadlyExits.size > 0 && engine.registerParsedCommandTransformer) {
|
|
395
|
+
engine.registerParsedCommandTransformer(this.buildDeadlyExitTransformer());
|
|
396
|
+
}
|
|
333
397
|
// Z3 (ADR-212 §5): every `phrase present:` block compiles to ONE
|
|
334
398
|
// declarative slot entry — no synthesized closures; the platform's
|
|
335
399
|
// built-in contributor evaluates them.
|
|
336
400
|
this.registerPresentEntries(engine);
|
|
337
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* The deadly-exit command transformer (ADR-227). Redirects `going
|
|
404
|
+
* <deadly-direction>` from a room with declared deadly exits to
|
|
405
|
+
* `DEADLY_ROOM_DEATH_ACTION_ID`, threading the phrase-derived
|
|
406
|
+
* cause/messageId through extras. Pass-through otherwise.
|
|
407
|
+
*/
|
|
408
|
+
buildDeadlyExitTransformer() {
|
|
409
|
+
const deadlyExits = this.deadlyExits;
|
|
410
|
+
// Single-letter direction abbreviations some parsers surface in extras.
|
|
411
|
+
const ABBREV = {
|
|
412
|
+
N: 'NORTH', S: 'SOUTH', E: 'EAST', W: 'WEST',
|
|
413
|
+
NE: 'NORTHEAST', NW: 'NORTHWEST', SE: 'SOUTHEAST', SW: 'SOUTHWEST',
|
|
414
|
+
U: 'UP', D: 'DOWN',
|
|
415
|
+
};
|
|
416
|
+
return (parsed, world) => {
|
|
417
|
+
const actionId = parsed.action?.toLowerCase() ?? '';
|
|
418
|
+
if (actionId !== 'if.action.going' && actionId !== 'going')
|
|
419
|
+
return parsed;
|
|
420
|
+
const player = world.getPlayer();
|
|
421
|
+
if (!player)
|
|
422
|
+
return parsed;
|
|
423
|
+
const roomId = world.getLocation(player.id);
|
|
424
|
+
if (!roomId)
|
|
425
|
+
return parsed;
|
|
426
|
+
const byRoom = deadlyExits.get(roomId);
|
|
427
|
+
if (!byRoom)
|
|
428
|
+
return parsed;
|
|
429
|
+
const raw = String(parsed.extras?.direction ?? '').toUpperCase();
|
|
430
|
+
const direction = ABBREV[raw] ?? raw;
|
|
431
|
+
const hit = byRoom.get(direction);
|
|
432
|
+
if (!hit)
|
|
433
|
+
return parsed;
|
|
434
|
+
return {
|
|
435
|
+
...parsed,
|
|
436
|
+
action: stdlib_1.DEADLY_ROOM_DEATH_ACTION_ID,
|
|
437
|
+
extras: {
|
|
438
|
+
...parsed.extras,
|
|
439
|
+
[stdlib_1.DEADLY_ROOM_CAUSE_KEY]: hit.cause,
|
|
440
|
+
[stdlib_1.DEADLY_ROOM_MESSAGE_KEY]: hit.messageId,
|
|
441
|
+
originalAction: parsed.action,
|
|
442
|
+
},
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
}
|
|
338
446
|
/**
|
|
339
447
|
* Z3 `present` channel → ADR-212 slot entries. One `registerSlotEntry`
|
|
340
448
|
* call per authoring entity: `slotKey: 'here'`, owner = the entity,
|
|
@@ -469,8 +577,9 @@ class ChordStory {
|
|
|
469
577
|
builder.aliases(...irEntity.aka);
|
|
470
578
|
if (irEntity.traits.some((t) => t.name === 'openable'))
|
|
471
579
|
builder.openable();
|
|
472
|
-
|
|
473
|
-
|
|
580
|
+
// NOTE: no `builder.lockable()` pre-add — applyTraitAdjectives owns
|
|
581
|
+
// the lockable composition so `with key X` config is never dropped
|
|
582
|
+
// (ADR-230 Phase 9a: the keyless pre-add made the keyed re-add skip).
|
|
474
583
|
entity = builder.build();
|
|
475
584
|
this.applyContainerConfig(entity, irEntity.kinds[0]);
|
|
476
585
|
break;
|
|
@@ -513,6 +622,70 @@ class ChordStory {
|
|
|
513
622
|
this.irIds.set(entity.id, irEntity.id);
|
|
514
623
|
return entity;
|
|
515
624
|
}
|
|
625
|
+
/**
|
|
626
|
+
* Resolve trait-config entity references (`with tool X`, `with key X`)
|
|
627
|
+
* to world entity ids (ADR-230 D3c / Phase 9a) — runs once, after every
|
|
628
|
+
* entity is built.
|
|
629
|
+
*/
|
|
630
|
+
resolvePendingEntityRefs() {
|
|
631
|
+
for (const pending of this.pendingEntityRefs) {
|
|
632
|
+
const worldId = this.worldIds.get(pending.irRefId);
|
|
633
|
+
if (!worldId) {
|
|
634
|
+
throw new errors_1.LoadError(`\`${pending.ownerName}\`: a trait-config entity reference was never built.`, pending.span);
|
|
635
|
+
}
|
|
636
|
+
pending.apply(worldId);
|
|
637
|
+
}
|
|
638
|
+
this.pendingEntityRefs.length = 0;
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* ADR-230 D3c load-time check (PIN 3, dual-surface re-pin, 2026-07-17):
|
|
642
|
+
* every cuttable entity must register exactly ONE cut implementation —
|
|
643
|
+
* an `on cutting it` clause (entity- or trait-level, loads as an
|
|
644
|
+
* ADR-228 interceptor) or an ADR-090 capability behavior for
|
|
645
|
+
* `if.action.cutting` (TS/hatch surface). Zero implementations would
|
|
646
|
+
* silently no-op at runtime; two would double-fire (ADR-228 D6 spirit).
|
|
647
|
+
* Chord surfaces are counted from the IR (precise per entity); the
|
|
648
|
+
* capability surface from the live world.
|
|
649
|
+
*/
|
|
650
|
+
checkCuttableImplementations(world) {
|
|
651
|
+
const toolGatedGerunds = [
|
|
652
|
+
{ adjective: 'cuttable', gerund: 'cutting', actionId: 'if.action.cutting' },
|
|
653
|
+
{ adjective: 'diggable', gerund: 'digging', actionId: 'if.action.digging' }, // ADR-230 Phase 6
|
|
654
|
+
];
|
|
655
|
+
for (const { adjective, gerund, actionId } of toolGatedGerunds) {
|
|
656
|
+
for (const irEntity of this.ir.entities) {
|
|
657
|
+
if (!irEntity.traits.some((t) => t.name === adjective))
|
|
658
|
+
continue;
|
|
659
|
+
const worldId = this.worldIds.get(irEntity.id);
|
|
660
|
+
const entity = worldId ? world.getEntity(worldId) : undefined;
|
|
661
|
+
if (!entity)
|
|
662
|
+
continue;
|
|
663
|
+
let surfaces = 0;
|
|
664
|
+
// Entity-level `on <gerund> it` clause.
|
|
665
|
+
if (irEntity.onClauses.some((c) => c.clauseKind === 'on' && c.action === gerund && c.binding !== 'every-turn')) {
|
|
666
|
+
surfaces++;
|
|
667
|
+
}
|
|
668
|
+
// Composed `define trait` with an `on <gerund> it` clause.
|
|
669
|
+
for (const comp of irEntity.traits) {
|
|
670
|
+
const def = this.ir.traits.find((t) => t.name === comp.name);
|
|
671
|
+
if (def?.onClauses.some((c) => c.clauseKind === 'on' && c.action === gerund && c.binding !== 'every-turn')) {
|
|
672
|
+
surfaces++;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
// ADR-090 capability behavior (TS/hatch surface).
|
|
676
|
+
const capabilityTrait = (0, world_model_1.findTraitWithCapability)(entity, actionId);
|
|
677
|
+
if (capabilityTrait && world.getBehaviorForCapability(capabilityTrait, actionId)) {
|
|
678
|
+
surfaces++;
|
|
679
|
+
}
|
|
680
|
+
if (surfaces === 0) {
|
|
681
|
+
throw new errors_1.LoadError(`\`${irEntity.name}\` is ${adjective} but registers no ${gerund} implementation — add \`on ${gerund} it:\` (or compose a trait that has one).`, irEntity.span);
|
|
682
|
+
}
|
|
683
|
+
if (surfaces > 1) {
|
|
684
|
+
throw new errors_1.LoadError(`\`${irEntity.name}\` has ${surfaces} ${gerund} implementations — a ${adjective} entity registers exactly one (one \`on ${gerund} it\` clause or one capability behavior).`, irEntity.span);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|
|
516
689
|
applyTraitAdjectives(entity, irEntity, kind) {
|
|
517
690
|
for (const trait of irEntity.traits) {
|
|
518
691
|
if (trait.condition !== null) {
|
|
@@ -545,16 +718,54 @@ class ChordStory {
|
|
|
545
718
|
if (!entity.has(world_model_1.TraitType.OPENABLE))
|
|
546
719
|
entity.add(new world_model_1.OpenableTrait());
|
|
547
720
|
break;
|
|
548
|
-
case 'lockable':
|
|
549
|
-
|
|
550
|
-
|
|
721
|
+
case 'lockable': {
|
|
722
|
+
// ADR-230 Phase 9a: `with key X` resolves name → world id through
|
|
723
|
+
// the shared pending mechanism (forward refs legal) — the raw
|
|
724
|
+
// display-name string never reaches LockableTrait.keyId.
|
|
725
|
+
if (entity.has(world_model_1.TraitType.LOCKABLE))
|
|
726
|
+
break;
|
|
727
|
+
const lockable = new world_model_1.LockableTrait({});
|
|
728
|
+
const keyName = configValue(trait, 'key');
|
|
729
|
+
if (keyName !== undefined) {
|
|
730
|
+
this.pendingEntityRefs.push(this.entityRefFor(keyName, 'key', irEntity, trait.span, (worldId) => {
|
|
731
|
+
lockable.keyId = worldId;
|
|
732
|
+
}));
|
|
733
|
+
}
|
|
734
|
+
entity.add(lockable);
|
|
735
|
+
break;
|
|
736
|
+
}
|
|
737
|
+
case 'cuttable':
|
|
738
|
+
case 'diggable': {
|
|
739
|
+
// ADR-230 D3c / Phase 6. Tool names resolve name → IR entity here
|
|
740
|
+
// and IR → world id after every entity is built (forward refs are
|
|
741
|
+
// legal) — do NOT copy the lockable raw-string config bug.
|
|
742
|
+
const traitType = trait.name === 'cuttable' ? world_model_1.TraitType.CUTTABLE : world_model_1.TraitType.DIGGABLE;
|
|
743
|
+
if (entity.has(traitType))
|
|
744
|
+
break;
|
|
745
|
+
const toolGated = trait.name === 'cuttable' ? new world_model_1.CuttableTrait() : new world_model_1.DiggableTrait();
|
|
746
|
+
const toolName = configValue(trait, 'tool');
|
|
747
|
+
if (toolName !== undefined) {
|
|
748
|
+
this.pendingEntityRefs.push(this.entityRefFor(toolName, 'tool', irEntity, trait.span, (worldId) => {
|
|
749
|
+
toolGated.toolId = worldId;
|
|
750
|
+
}));
|
|
751
|
+
}
|
|
752
|
+
entity.add(toolGated);
|
|
551
753
|
break;
|
|
754
|
+
}
|
|
552
755
|
case 'switchable':
|
|
553
756
|
entity.add(new world_model_1.SwitchableTrait());
|
|
554
757
|
break;
|
|
555
758
|
case 'edible':
|
|
556
759
|
entity.add(new world_model_1.EdibleTrait());
|
|
557
760
|
break;
|
|
761
|
+
case 'enterable': // ADR-218 §1a (ratchet F1) — default config, preposition `in`
|
|
762
|
+
if (!entity.has(world_model_1.TraitType.ENTERABLE))
|
|
763
|
+
entity.add(new world_model_1.EnterableTrait());
|
|
764
|
+
break;
|
|
765
|
+
case 'climbable': // ADR-218 §1a (ratchet F2) — default config
|
|
766
|
+
if (!entity.has(world_model_1.TraitType.CLIMBABLE))
|
|
767
|
+
entity.add(new world_model_1.ClimbableTrait());
|
|
768
|
+
break;
|
|
558
769
|
case 'light-source':
|
|
559
770
|
entity.add(new world_model_1.LightSourceTrait());
|
|
560
771
|
break;
|