@sharpee/stdlib 2.2.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/actions/base/snapshot-utils.js +2 -2
- package/actions/base/snapshot-utils.js.map +1 -1
- package/actions/constants.d.ts +2 -0
- package/actions/constants.d.ts.map +1 -1
- package/actions/constants.js +3 -0
- package/actions/constants.js.map +1 -1
- package/actions/index.d.ts +2 -0
- package/actions/index.d.ts.map +1 -1
- package/actions/index.js +6 -0
- package/actions/index.js.map +1 -1
- package/actions/lifecycle/descriptor.d.ts +111 -0
- package/actions/lifecycle/descriptor.d.ts.map +1 -0
- package/actions/lifecycle/descriptor.js +22 -0
- package/actions/lifecycle/descriptor.js.map +1 -0
- package/actions/lifecycle/index.d.ts +14 -0
- package/actions/lifecycle/index.d.ts.map +1 -0
- package/actions/lifecycle/index.js +27 -0
- package/actions/lifecycle/index.js.map +1 -0
- package/actions/lifecycle/lifecycle-engine.d.ts +173 -0
- package/actions/lifecycle/lifecycle-engine.d.ts.map +1 -0
- package/actions/lifecycle/lifecycle-engine.js +247 -0
- package/actions/lifecycle/lifecycle-engine.js.map +1 -0
- package/actions/lifecycle/multi-object-lifecycle.d.ts +105 -0
- package/actions/lifecycle/multi-object-lifecycle.d.ts.map +1 -0
- package/actions/lifecycle/multi-object-lifecycle.js +136 -0
- package/actions/lifecycle/multi-object-lifecycle.js.map +1 -0
- package/actions/lifecycle/registry.d.ts +39 -0
- package/actions/lifecycle/registry.d.ts.map +1 -0
- package/actions/lifecycle/registry.js +128 -0
- package/actions/lifecycle/registry.js.map +1 -0
- package/actions/standard/asking/asking.d.ts +25 -0
- package/actions/standard/asking/asking.d.ts.map +1 -0
- package/actions/standard/asking/asking.js +114 -0
- package/actions/standard/asking/asking.js.map +1 -0
- package/actions/standard/asking/index.d.ts +5 -0
- package/actions/standard/asking/index.d.ts.map +1 -0
- package/actions/standard/asking/index.js +10 -0
- package/actions/standard/asking/index.js.map +1 -0
- package/actions/standard/attacking/attacking.d.ts +14 -0
- package/actions/standard/attacking/attacking.d.ts.map +1 -1
- package/actions/standard/attacking/attacking.js +138 -94
- package/actions/standard/attacking/attacking.js.map +1 -1
- package/actions/standard/attacking/index.d.ts +1 -1
- package/actions/standard/attacking/index.d.ts.map +1 -1
- package/actions/standard/attacking/index.js +2 -1
- package/actions/standard/attacking/index.js.map +1 -1
- package/actions/standard/climbing/climbing.d.ts +10 -0
- package/actions/standard/climbing/climbing.d.ts.map +1 -1
- package/actions/standard/climbing/climbing.js +51 -11
- package/actions/standard/climbing/climbing.js.map +1 -1
- package/actions/standard/closing/closing.d.ts +6 -0
- package/actions/standard/closing/closing.d.ts.map +1 -1
- package/actions/standard/closing/closing.js +37 -31
- package/actions/standard/closing/closing.js.map +1 -1
- package/actions/standard/cutting/cutting-messages.d.ts +17 -0
- package/actions/standard/cutting/cutting-messages.d.ts.map +1 -0
- package/actions/standard/cutting/cutting-messages.js +22 -0
- package/actions/standard/cutting/cutting-messages.js.map +1 -0
- package/actions/standard/cutting/cutting.d.ts +35 -0
- package/actions/standard/cutting/cutting.d.ts.map +1 -0
- package/actions/standard/cutting/cutting.js +228 -0
- package/actions/standard/cutting/cutting.js.map +1 -0
- package/actions/standard/cutting/index.d.ts +7 -0
- package/actions/standard/cutting/index.d.ts.map +1 -0
- package/actions/standard/cutting/index.js +12 -0
- package/actions/standard/cutting/index.js.map +1 -0
- package/actions/standard/deadly-room-death/deadly-room-death.d.ts +16 -0
- package/actions/standard/deadly-room-death/deadly-room-death.d.ts.map +1 -0
- package/actions/standard/deadly-room-death/deadly-room-death.js +44 -0
- package/actions/standard/deadly-room-death/deadly-room-death.js.map +1 -0
- package/actions/standard/deadly-room-death/index.d.ts +2 -0
- package/actions/standard/deadly-room-death/index.d.ts.map +1 -0
- package/actions/standard/deadly-room-death/index.js +6 -0
- package/actions/standard/deadly-room-death/index.js.map +1 -0
- package/actions/standard/digging/digging-messages.d.ts +17 -0
- package/actions/standard/digging/digging-messages.d.ts.map +1 -0
- package/actions/standard/digging/digging-messages.js +22 -0
- package/actions/standard/digging/digging-messages.js.map +1 -0
- package/actions/standard/digging/digging.d.ts +35 -0
- package/actions/standard/digging/digging.d.ts.map +1 -0
- package/actions/standard/digging/digging.js +228 -0
- package/actions/standard/digging/digging.js.map +1 -0
- package/actions/standard/digging/index.d.ts +7 -0
- package/actions/standard/digging/index.d.ts.map +1 -0
- package/actions/standard/digging/index.js +12 -0
- package/actions/standard/digging/index.js.map +1 -0
- package/actions/standard/drinking/drinking.d.ts +9 -0
- package/actions/standard/drinking/drinking.d.ts.map +1 -1
- package/actions/standard/drinking/drinking.js +40 -2
- package/actions/standard/drinking/drinking.js.map +1 -1
- package/actions/standard/dropping/dropping-types.d.ts +10 -18
- package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-types.js.map +1 -1
- package/actions/standard/dropping/dropping.d.ts +6 -0
- package/actions/standard/dropping/dropping.d.ts.map +1 -1
- package/actions/standard/dropping/dropping.js +86 -108
- package/actions/standard/dropping/dropping.js.map +1 -1
- package/actions/standard/eating/eating.d.ts +9 -0
- package/actions/standard/eating/eating.d.ts.map +1 -1
- package/actions/standard/eating/eating.js +40 -2
- package/actions/standard/eating/eating.js.map +1 -1
- package/actions/standard/entering/entering.d.ts +14 -5
- package/actions/standard/entering/entering.d.ts.map +1 -1
- package/actions/standard/entering/entering.js +45 -67
- package/actions/standard/entering/entering.js.map +1 -1
- package/actions/standard/examining/examining.d.ts +6 -0
- package/actions/standard/examining/examining.d.ts.map +1 -1
- package/actions/standard/examining/examining.js +39 -3
- package/actions/standard/examining/examining.js.map +1 -1
- package/actions/standard/exiting/exiting.d.ts +6 -0
- package/actions/standard/exiting/exiting.d.ts.map +1 -1
- package/actions/standard/exiting/exiting.js +54 -3
- package/actions/standard/exiting/exiting.js.map +1 -1
- package/actions/standard/giving/giving.d.ts +21 -0
- package/actions/standard/giving/giving.d.ts.map +1 -1
- package/actions/standard/giving/giving.js +78 -2
- package/actions/standard/giving/giving.js.map +1 -1
- package/actions/standard/going/going.d.ts +10 -16
- package/actions/standard/going/going.d.ts.map +1 -1
- package/actions/standard/going/going.js +134 -140
- package/actions/standard/going/going.js.map +1 -1
- package/actions/standard/hiding/hiding.d.ts +10 -1
- package/actions/standard/hiding/hiding.d.ts.map +1 -1
- package/actions/standard/hiding/hiding.js +43 -4
- package/actions/standard/hiding/hiding.js.map +1 -1
- package/actions/standard/index.d.ts +5 -0
- package/actions/standard/index.d.ts.map +1 -1
- package/actions/standard/index.js +19 -4
- package/actions/standard/index.js.map +1 -1
- package/actions/standard/inserting/inserting.d.ts +12 -0
- package/actions/standard/inserting/inserting.d.ts.map +1 -1
- package/actions/standard/inserting/inserting.js +70 -5
- package/actions/standard/inserting/inserting.js.map +1 -1
- package/actions/standard/listening/listening.d.ts +12 -1
- package/actions/standard/listening/listening.d.ts.map +1 -1
- package/actions/standard/listening/listening.js +45 -4
- package/actions/standard/listening/listening.js.map +1 -1
- package/actions/standard/locking/locking.d.ts +9 -0
- package/actions/standard/locking/locking.d.ts.map +1 -1
- package/actions/standard/locking/locking.js +62 -3
- package/actions/standard/locking/locking.js.map +1 -1
- package/actions/standard/looking/index.d.ts +1 -0
- package/actions/standard/looking/index.d.ts.map +1 -1
- package/actions/standard/looking/index.js +5 -1
- package/actions/standard/looking/index.js.map +1 -1
- package/actions/standard/looking/snippet-gate-registry.d.ts +55 -0
- package/actions/standard/looking/snippet-gate-registry.d.ts.map +1 -0
- package/actions/standard/looking/snippet-gate-registry.js +63 -0
- package/actions/standard/looking/snippet-gate-registry.js.map +1 -0
- package/actions/standard/looking/snippet-resolver.d.ts +9 -3
- package/actions/standard/looking/snippet-resolver.d.ts.map +1 -1
- package/actions/standard/looking/snippet-resolver.js +75 -4
- package/actions/standard/looking/snippet-resolver.js.map +1 -1
- package/actions/standard/opening/opening-messages.d.ts +3 -0
- package/actions/standard/opening/opening-messages.d.ts.map +1 -1
- package/actions/standard/opening/opening-messages.js +4 -0
- package/actions/standard/opening/opening-messages.js.map +1 -1
- package/actions/standard/opening/opening.d.ts +8 -0
- package/actions/standard/opening/opening.d.ts.map +1 -1
- package/actions/standard/opening/opening.js +73 -39
- package/actions/standard/opening/opening.js.map +1 -1
- package/actions/standard/pulling/pulling.d.ts +9 -0
- package/actions/standard/pulling/pulling.d.ts.map +1 -1
- package/actions/standard/pulling/pulling.js +40 -2
- package/actions/standard/pulling/pulling.js.map +1 -1
- package/actions/standard/pushing/pushing-types.d.ts +3 -6
- package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
- package/actions/standard/pushing/pushing-types.js +3 -1
- package/actions/standard/pushing/pushing-types.js.map +1 -1
- package/actions/standard/pushing/pushing.d.ts +14 -5
- package/actions/standard/pushing/pushing.d.ts.map +1 -1
- package/actions/standard/pushing/pushing.js +51 -71
- package/actions/standard/pushing/pushing.js.map +1 -1
- package/actions/standard/putting/putting-types.d.ts +10 -21
- package/actions/standard/putting/putting-types.d.ts.map +1 -1
- package/actions/standard/putting/putting-types.js +0 -1
- package/actions/standard/putting/putting-types.js.map +1 -1
- package/actions/standard/putting/putting.d.ts +10 -0
- package/actions/standard/putting/putting.d.ts.map +1 -1
- package/actions/standard/putting/putting.js +133 -151
- package/actions/standard/putting/putting.js.map +1 -1
- package/actions/standard/reading/reading.d.ts +6 -0
- package/actions/standard/reading/reading.d.ts.map +1 -1
- package/actions/standard/reading/reading.js +39 -3
- package/actions/standard/reading/reading.js.map +1 -1
- package/actions/standard/removing/removing-types.d.ts +10 -16
- package/actions/standard/removing/removing-types.d.ts.map +1 -1
- package/actions/standard/removing/removing-types.js.map +1 -1
- package/actions/standard/removing/removing.d.ts +13 -0
- package/actions/standard/removing/removing.d.ts.map +1 -1
- package/actions/standard/removing/removing.js +147 -88
- package/actions/standard/removing/removing.js.map +1 -1
- package/actions/standard/searching/searching.d.ts +10 -0
- package/actions/standard/searching/searching.d.ts.map +1 -1
- package/actions/standard/searching/searching.js +44 -8
- package/actions/standard/searching/searching.js.map +1 -1
- package/actions/standard/showing/showing.d.ts +14 -0
- package/actions/standard/showing/showing.d.ts.map +1 -1
- package/actions/standard/showing/showing.js +62 -2
- package/actions/standard/showing/showing.js.map +1 -1
- package/actions/standard/smelling/smelling.d.ts +10 -0
- package/actions/standard/smelling/smelling.d.ts.map +1 -1
- package/actions/standard/smelling/smelling.js +41 -2
- package/actions/standard/smelling/smelling.js.map +1 -1
- package/actions/standard/switching_off/switching_off.d.ts +11 -1
- package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off.js +44 -4
- package/actions/standard/switching_off/switching_off.js.map +1 -1
- package/actions/standard/switching_on/switching_on.d.ts +14 -5
- package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on.js +45 -57
- package/actions/standard/switching_on/switching_on.js.map +1 -1
- package/actions/standard/taking/taking-types.d.ts +14 -32
- package/actions/standard/taking/taking-types.d.ts.map +1 -1
- package/actions/standard/taking/taking-types.js.map +1 -1
- package/actions/standard/taking/taking.d.ts +11 -0
- package/actions/standard/taking/taking.d.ts.map +1 -1
- package/actions/standard/taking/taking.js +107 -111
- package/actions/standard/taking/taking.js.map +1 -1
- package/actions/standard/taking_off/taking-off.d.ts +6 -0
- package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
- package/actions/standard/taking_off/taking-off.js +57 -21
- package/actions/standard/taking_off/taking-off.js.map +1 -1
- package/actions/standard/talking/talking.d.ts +15 -0
- package/actions/standard/talking/talking.d.ts.map +1 -1
- package/actions/standard/talking/talking.js +52 -3
- package/actions/standard/talking/talking.js.map +1 -1
- package/actions/standard/telling/index.d.ts +5 -0
- package/actions/standard/telling/index.d.ts.map +1 -0
- package/actions/standard/telling/index.js +10 -0
- package/actions/standard/telling/index.js.map +1 -0
- package/actions/standard/telling/telling.d.ts +25 -0
- package/actions/standard/telling/telling.d.ts.map +1 -0
- package/actions/standard/telling/telling.js +114 -0
- package/actions/standard/telling/telling.js.map +1 -0
- package/actions/standard/throwing/throwing.d.ts +11 -0
- package/actions/standard/throwing/throwing.d.ts.map +1 -1
- package/actions/standard/throwing/throwing.js +69 -70
- package/actions/standard/throwing/throwing.js.map +1 -1
- package/actions/standard/tool-shared.d.ts +38 -0
- package/actions/standard/tool-shared.d.ts.map +1 -0
- package/actions/standard/tool-shared.js +74 -0
- package/actions/standard/tool-shared.js.map +1 -0
- package/actions/standard/touching/touching.d.ts +9 -0
- package/actions/standard/touching/touching.d.ts.map +1 -1
- package/actions/standard/touching/touching.js +40 -4
- package/actions/standard/touching/touching.js.map +1 -1
- package/actions/standard/turning/index.d.ts +5 -0
- package/actions/standard/turning/index.d.ts.map +1 -0
- package/actions/standard/turning/index.js +9 -0
- package/actions/standard/turning/index.js.map +1 -0
- package/actions/standard/turning/turning.d.ts +17 -0
- package/actions/standard/turning/turning.d.ts.map +1 -0
- package/actions/standard/turning/turning.js +25 -0
- package/actions/standard/turning/turning.js.map +1 -0
- package/actions/standard/unlocking/unlocking.d.ts +9 -0
- package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking.js +62 -3
- package/actions/standard/unlocking/unlocking.js.map +1 -1
- package/actions/standard/wearing/wearing.d.ts +11 -1
- package/actions/standard/wearing/wearing.d.ts.map +1 -1
- package/actions/standard/wearing/wearing.js +57 -12
- package/actions/standard/wearing/wearing.js.map +1 -1
- package/channels/standard.d.ts +13 -10
- package/channels/standard.d.ts.map +1 -1
- package/channels/standard.js +14 -10
- package/channels/standard.js.map +1 -1
- package/death/deadly-room-transformer.d.ts +37 -0
- package/death/deadly-room-transformer.d.ts.map +1 -0
- package/death/deadly-room-transformer.js +79 -0
- package/death/deadly-room-transformer.js.map +1 -0
- package/death/index.d.ts +18 -0
- package/death/index.d.ts.map +1 -0
- package/death/index.js +28 -0
- package/death/index.js.map +1 -0
- package/death/kill-player.d.ts +49 -0
- package/death/kill-player.d.ts.map +1 -0
- package/death/kill-player.js +55 -0
- package/death/kill-player.js.map +1 -0
- package/death/player-death-events.d.ts +40 -0
- package/death/player-death-events.d.ts.map +1 -0
- package/death/player-death-events.js +27 -0
- package/death/player-death-events.js.map +1 -0
- package/death/probabilistic-death.d.ts +23 -0
- package/death/probabilistic-death.d.ts.map +1 -0
- package/death/probabilistic-death.js +27 -0
- package/death/probabilistic-death.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/npc/behaviors.d.ts.map +1 -1
- package/npc/behaviors.js +9 -8
- package/npc/behaviors.js.map +1 -1
- package/npc/npc-service.d.ts +8 -0
- package/npc/npc-service.d.ts.map +1 -1
- package/npc/npc-service.js +19 -18
- package/npc/npc-service.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared tool-requirement validation for tool-gated actions (ADR-230 D3).
|
|
3
|
+
*
|
|
4
|
+
* Mirrors validateKeyRequirements (lock-shared.ts) for the author-configured
|
|
5
|
+
* tool pattern: a trait declares which tool works (toolId/toolIds), the
|
|
6
|
+
* action's validate() calls this helper, and an entity with no tool
|
|
7
|
+
* requirement ignores an offered tool exactly as a keyless lockable ignores
|
|
8
|
+
* keyless LOCK. Used by opening (D3b) and cutting (D3c).
|
|
9
|
+
*
|
|
10
|
+
* Public interface: TOOL_MESSAGES, validateToolRequirements().
|
|
11
|
+
* Owner context: stdlib standard actions.
|
|
12
|
+
*/
|
|
13
|
+
import { EntityId } from '@sharpee/core';
|
|
14
|
+
import { ActionContext, ValidationResult } from '../enhanced-types';
|
|
15
|
+
import { IFEntity } from '@sharpee/world-model';
|
|
16
|
+
/**
|
|
17
|
+
* Shared message constants for tool validation.
|
|
18
|
+
* These are message IDs, not English strings - lang-en-us resolves them.
|
|
19
|
+
*/
|
|
20
|
+
export declare const TOOL_MESSAGES: {
|
|
21
|
+
NO_TOOL: string;
|
|
22
|
+
TOOL_NOT_HELD: string;
|
|
23
|
+
WRONG_TOOL: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Validates an action's tool requirement against the command's tool.
|
|
27
|
+
*
|
|
28
|
+
* @param context action context (for actor/world lookups)
|
|
29
|
+
* @param target the tool-gated entity
|
|
30
|
+
* @param tool the command's explicit tool entity, if any
|
|
31
|
+
* @param requiresTool whether the target declares a tool requirement
|
|
32
|
+
* (e.g. OpenableBehavior.requiresTool(target))
|
|
33
|
+
* @param canUseWith trait-specific predicate for "this tool works"
|
|
34
|
+
* (e.g. (id) => OpenableBehavior.canOpenWith(target, id))
|
|
35
|
+
* @returns a failed ValidationResult, or null when validation passes
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateToolRequirements(context: ActionContext, target: IFEntity, tool: IFEntity | undefined, requiresTool: boolean, canUseWith: (toolId: EntityId) => boolean): ValidationResult | null;
|
|
38
|
+
//# sourceMappingURL=tool-shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-shared.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/tool-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;CAIzB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GACxC,gBAAgB,GAAG,IAAI,CAsCzB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared tool-requirement validation for tool-gated actions (ADR-230 D3).
|
|
4
|
+
*
|
|
5
|
+
* Mirrors validateKeyRequirements (lock-shared.ts) for the author-configured
|
|
6
|
+
* tool pattern: a trait declares which tool works (toolId/toolIds), the
|
|
7
|
+
* action's validate() calls this helper, and an entity with no tool
|
|
8
|
+
* requirement ignores an offered tool exactly as a keyless lockable ignores
|
|
9
|
+
* keyless LOCK. Used by opening (D3b) and cutting (D3c).
|
|
10
|
+
*
|
|
11
|
+
* Public interface: TOOL_MESSAGES, validateToolRequirements().
|
|
12
|
+
* Owner context: stdlib standard actions.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TOOL_MESSAGES = void 0;
|
|
16
|
+
exports.validateToolRequirements = validateToolRequirements;
|
|
17
|
+
const utils_1 = require("../../utils");
|
|
18
|
+
/**
|
|
19
|
+
* Shared message constants for tool validation.
|
|
20
|
+
* These are message IDs, not English strings - lang-en-us resolves them.
|
|
21
|
+
*/
|
|
22
|
+
exports.TOOL_MESSAGES = {
|
|
23
|
+
NO_TOOL: 'no_tool',
|
|
24
|
+
TOOL_NOT_HELD: 'tool_not_held',
|
|
25
|
+
WRONG_TOOL: 'wrong_tool',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Validates an action's tool requirement against the command's tool.
|
|
29
|
+
*
|
|
30
|
+
* @param context action context (for actor/world lookups)
|
|
31
|
+
* @param target the tool-gated entity
|
|
32
|
+
* @param tool the command's explicit tool entity, if any
|
|
33
|
+
* @param requiresTool whether the target declares a tool requirement
|
|
34
|
+
* (e.g. OpenableBehavior.requiresTool(target))
|
|
35
|
+
* @param canUseWith trait-specific predicate for "this tool works"
|
|
36
|
+
* (e.g. (id) => OpenableBehavior.canOpenWith(target, id))
|
|
37
|
+
* @returns a failed ValidationResult, or null when validation passes
|
|
38
|
+
*/
|
|
39
|
+
function validateToolRequirements(context, target, tool, requiresTool, canUseWith) {
|
|
40
|
+
if (!requiresTool) {
|
|
41
|
+
return null; // No tool required — an offered tool is ignored, not an error
|
|
42
|
+
}
|
|
43
|
+
// Tool is required but not provided
|
|
44
|
+
if (!tool) {
|
|
45
|
+
return {
|
|
46
|
+
valid: false,
|
|
47
|
+
error: exports.TOOL_MESSAGES.NO_TOOL,
|
|
48
|
+
params: { item: (0, utils_1.nounPhraseFor)(target) }
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Check if player has the tool
|
|
52
|
+
const actor = context.player;
|
|
53
|
+
const toolLocation = context.world.getLocation(tool.id);
|
|
54
|
+
if (toolLocation !== actor.id) {
|
|
55
|
+
return {
|
|
56
|
+
valid: false,
|
|
57
|
+
error: exports.TOOL_MESSAGES.TOOL_NOT_HELD,
|
|
58
|
+
params: { tool: (0, utils_1.nounPhraseFor)(tool) }
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Check if it's the right tool
|
|
62
|
+
if (!canUseWith(tool.id)) {
|
|
63
|
+
return {
|
|
64
|
+
valid: false,
|
|
65
|
+
error: exports.TOOL_MESSAGES.WRONG_TOOL,
|
|
66
|
+
params: {
|
|
67
|
+
tool: (0, utils_1.nounPhraseFor)(tool),
|
|
68
|
+
item: (0, utils_1.nounPhraseFor)(target)
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return null; // All tool validations pass
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=tool-shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-shared.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/tool-shared.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AA6BH,4DA4CC;AApED,uCAA4C;AAE5C;;;GAGG;AACU,QAAA,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAgB,wBAAwB,CACtC,OAAsB,EACtB,MAAgB,EAChB,IAA0B,EAC1B,YAAqB,EACrB,UAAyC;IAEzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC,8DAA8D;IAC7E,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,qBAAa,CAAC,OAAO;YAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;SACxC,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,qBAAa,CAAC,aAAa;YAClC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;SACtC,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,qBAAa,CAAC,UAAU;YAC/B,MAAM,EAAE;gBACN,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC;gBACzB,IAAI,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC;aAC5B;SACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,4BAA4B;AAC3C,CAAC"}
|
|
@@ -9,9 +9,18 @@
|
|
|
9
9
|
* 2. execute: Compute tactile properties (no world mutations)
|
|
10
10
|
* 3. blocked: Generate events when validation fails
|
|
11
11
|
* 4. report: Generate success events
|
|
12
|
+
*
|
|
13
|
+
* Interceptor consultation (ADR-118) runs through the shared lifecycle
|
|
14
|
+
* engine (ADR-228) via `touchingLifecycle` — no hand-rolled hook plumbing.
|
|
12
15
|
*/
|
|
13
16
|
import { Action } from '../../enhanced-types';
|
|
14
17
|
import { ActionMetadata } from '../../../validation';
|
|
18
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
19
|
+
/**
|
|
20
|
+
* Interceptor surface (ADR-228): the touched target is the only consultable
|
|
21
|
+
* entity of a TOUCH command.
|
|
22
|
+
*/
|
|
23
|
+
export declare const touchingLifecycle: ActionLifecycleDescriptor;
|
|
15
24
|
export declare const touchingAction: Action & {
|
|
16
25
|
metadata: ActionMetadata;
|
|
17
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touching.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/touching/touching.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"touching.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/touching/touching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAK/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,yBAS/B,CAAC;AAgBF,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAiP/D,CAAC"}
|
|
@@ -10,13 +10,31 @@
|
|
|
10
10
|
* 2. execute: Compute tactile properties (no world mutations)
|
|
11
11
|
* 3. blocked: Generate events when validation fails
|
|
12
12
|
* 4. report: Generate success events
|
|
13
|
+
*
|
|
14
|
+
* Interceptor consultation (ADR-118) runs through the shared lifecycle
|
|
15
|
+
* engine (ADR-228) via `touchingLifecycle` — no hand-rolled hook plumbing.
|
|
13
16
|
*/
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.touchingAction = void 0;
|
|
18
|
+
exports.touchingAction = exports.touchingLifecycle = void 0;
|
|
16
19
|
const world_model_1 = require("@sharpee/world-model");
|
|
17
20
|
const constants_1 = require("../../constants");
|
|
18
21
|
const types_1 = require("../../../scope/types");
|
|
19
22
|
const utils_1 = require("../../../utils");
|
|
23
|
+
const lifecycle_1 = require("../../lifecycle");
|
|
24
|
+
/**
|
|
25
|
+
* Interceptor surface (ADR-228): the touched target is the only consultable
|
|
26
|
+
* entity of a TOUCH command.
|
|
27
|
+
*/
|
|
28
|
+
exports.touchingLifecycle = {
|
|
29
|
+
actionId: constants_1.IFActions.TOUCHING,
|
|
30
|
+
slots: [
|
|
31
|
+
{
|
|
32
|
+
id: 'target',
|
|
33
|
+
actionIds: [constants_1.IFActions.TOUCHING],
|
|
34
|
+
resolve: (ctx) => ctx.command.directObject?.entity
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
};
|
|
20
38
|
function getTouchingSharedData(context) {
|
|
21
39
|
return context.sharedData;
|
|
22
40
|
}
|
|
@@ -33,11 +51,9 @@ exports.touchingAction = {
|
|
|
33
51
|
'feels_normal',
|
|
34
52
|
'feels_warm',
|
|
35
53
|
'feels_hot',
|
|
36
|
-
'feels_cold',
|
|
37
54
|
'feels_soft',
|
|
38
55
|
'feels_hard',
|
|
39
56
|
'feels_smooth',
|
|
40
|
-
'feels_rough',
|
|
41
57
|
'feels_wet',
|
|
42
58
|
'device_vibrating',
|
|
43
59
|
'immovable_object',
|
|
@@ -64,11 +80,19 @@ exports.touchingAction = {
|
|
|
64
80
|
params: {}
|
|
65
81
|
};
|
|
66
82
|
}
|
|
83
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.touchingLifecycle);
|
|
84
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
85
|
+
if (preVeto)
|
|
86
|
+
return preVeto;
|
|
67
87
|
// Check scope - must be able to reach the target
|
|
68
88
|
const scopeCheck = context.requireScope(target, types_1.ScopeLevel.REACHABLE);
|
|
69
89
|
if (!scopeCheck.ok) {
|
|
70
90
|
return scopeCheck.error;
|
|
71
91
|
}
|
|
92
|
+
// Canonical placement (ADR-228): postValidate runs after ALL standard validation
|
|
93
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
94
|
+
if (postVeto)
|
|
95
|
+
return postVeto;
|
|
72
96
|
// Tactile property computation happens in execute phase
|
|
73
97
|
return { valid: true };
|
|
74
98
|
},
|
|
@@ -188,13 +212,16 @@ exports.touchingAction = {
|
|
|
188
212
|
sharedData.targetName = target.name;
|
|
189
213
|
sharedData.messageId = messageId;
|
|
190
214
|
sharedData.eventData = eventData;
|
|
215
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
216
|
+
if (state)
|
|
217
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
191
218
|
},
|
|
192
219
|
/**
|
|
193
220
|
* Generate events when validation fails
|
|
194
221
|
*/
|
|
195
222
|
blocked(context, result) {
|
|
196
223
|
const target = context.command.directObject?.entity;
|
|
197
|
-
|
|
224
|
+
const events = [context.event('if.event.touch_blocked', {
|
|
198
225
|
blocked: true,
|
|
199
226
|
messageId: `${context.action.id}.${result.error}`,
|
|
200
227
|
// params carry EntityInfo for the formatter chain (ADR-158)
|
|
@@ -206,6 +233,12 @@ exports.touchingAction = {
|
|
|
206
233
|
targetId: target?.id,
|
|
207
234
|
targetName: target?.name
|
|
208
235
|
})];
|
|
236
|
+
if (result.error) {
|
|
237
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
238
|
+
if (state)
|
|
239
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.touch_blocked', result.error);
|
|
240
|
+
}
|
|
241
|
+
return events;
|
|
209
242
|
},
|
|
210
243
|
report(context) {
|
|
211
244
|
const events = [];
|
|
@@ -218,6 +251,9 @@ exports.touchingAction = {
|
|
|
218
251
|
params: { target: target ? (0, utils_1.nounPhraseFor)(target) : { name: sharedData.targetName } },
|
|
219
252
|
...sharedData.eventData
|
|
220
253
|
}));
|
|
254
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
255
|
+
if (state)
|
|
256
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.touched');
|
|
221
257
|
return events;
|
|
222
258
|
},
|
|
223
259
|
group: "sensory"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touching.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/touching/touching.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"touching.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/touching/touching.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,sDAAiF;AACjF,+CAA4C;AAG5C,gDAAkD;AAClD,0CAA+C;AAC/C,+CASyB;AAEzB;;;GAGG;AACU,QAAA,iBAAiB,GAA8B;IAC1D,QAAQ,EAAE,qBAAS,CAAC,QAAQ;IAC5B,KAAK,EAAE;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,CAAC,qBAAS,CAAC,QAAQ,CAAC;YAC/B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM;SACnD;KACF;CACF,CAAC;AAYF,SAAS,qBAAqB,CAAC,OAAsB;IACnD,OAAO,OAAO,CAAC,UAAgC,CAAC;AAClD,CAAC;AAEY,QAAA,cAAc,GAA0C;IACnE,EAAE,EAAE,qBAAS,CAAC,QAAQ;IAEtB,qDAAqD;IACrD,YAAY,EAAE;QACZ,MAAM,EAAE,kBAAU,CAAC,SAAS;KAC7B;IAED,gBAAgB,EAAE;QAChB,WAAW;QACX,aAAa;QACb,eAAe;QACf,cAAc;QACd,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,WAAW;QACX,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,SAAS;QACT,gBAAgB;QAChB,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;KACV;IACD,QAAQ,EAAE;QACR,oBAAoB,EAAE,IAAI;QAC1B,sBAAsB,EAAE,KAAK;QAC7B,iBAAiB,EAAE,kBAAU,CAAC,SAAS;KACxC;IAED,QAAQ,CAAC,OAAsB;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QAEpD,8BAA8B;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,OAAO,EAAE,yBAAiB,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,iDAAiD;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAU,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC,KAAM,CAAC;QAC3B,CAAC;QAED,iFAAiF;QACjF,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,wDAAwD;QACxD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,OAAsB;QAC5B,0DAA0D;QAC1D,2EAA2E;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAO,CAAC;QACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAElD,2CAA2C;QAC3C,MAAM,SAAS,GAAqB;YAClC,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,UAAU,EAAE,MAAM,CAAC,IAAI;SACxB,CAAC;QAEF,IAAI,SAAS,GAAW,cAAc,CAAC;QAEvC,8CAA8C;QAE9C,qDAAqD;QACrD,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,YAAY,CAAwB,CAAC;YAC7E,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC9B,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;gBACvB,SAAS,GAAG,WAAW,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,UAAU,CAAC,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACrE,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,UAAU,CAAoB,CAAC;YAC5E,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;gBACzB,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC/B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAE1B,0DAA0D;gBAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAAkB,CAAC;gBACjE,IAAI,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5D,SAAS,GAAG,kBAAkB,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,YAAY,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;YAC3B,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,SAAS,GAAG,YAAY,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;YAC7B,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC5B,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,SAAS,GAAG,cAAc,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9E,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAE5B,4BAA4B;YAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,MAAM,CAA0B,CAAC;wBACxE,OAAO,WAAW,CAAC,OAAO,CAAC;oBAC7B,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS,GAAG,kBAAkB,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,SAAS,GAAG,YAAY,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,MAAM,CAA0B,CAAC;YAC1E,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC7B,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;oBACjC,SAAS,GAAG,WAAW,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;YAC3B,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,SAAS,GAAG,kBAAkB,CAAC;YACjC,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC;QAClF,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,gDAAgD;YAChD,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM;oBACT,SAAS,GAAG,OAAO,CAAC;oBACpB,MAAM;gBACR,KAAK,MAAM;oBACT,SAAS,GAAG,SAAS,CAAC;oBACtB,MAAM;gBACR,KAAK,KAAK;oBACR,SAAS,GAAG,QAAQ,CAAC;oBACrB,MAAM;gBACR,KAAK,QAAQ;oBACX,SAAS,GAAG,SAAS,CAAC;oBACtB,MAAM;gBACR,KAAK,MAAM;oBACT,SAAS,GAAG,gBAAgB,CAAC;oBAC7B,MAAM;gBACR;oBACE,SAAS,GAAG,SAAS,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAChC,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QACpC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QAEjC,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAsB,EAAE,MAAwB;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACpD,MAAM,MAAM,GAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACxE,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;gBACjD,4DAA4D;gBAC5D,MAAM,EAAE;oBACN,GAAG,MAAM,CAAC,MAAM;oBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACnD;gBACD,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACpB,UAAU,EAAE,MAAM,EAAE,IAAI;aACzB,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;YACzC,IAAI,KAAK;gBAAE,IAAA,wBAAY,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAElD,uDAAuD;QACvD,4DAA4D;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE;YAC5C,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,IAAI,SAAS,EAAE;YACtE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,EAAE;YACpF,GAAG,UAAU,CAAC,SAAS;SACxB,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,yBAAa,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAErE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,EAAE,SAAS;CACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/turning/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.turningAction = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Turning action (ADR-090 capability dispatch) — public exports.
|
|
6
|
+
*/
|
|
7
|
+
var turning_1 = require("./turning");
|
|
8
|
+
Object.defineProperty(exports, "turningAction", { enumerable: true, get: function () { return turning_1.turningAction; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/turning/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qCAA0C;AAAjC,wGAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning Action (ADR-090 Capability Dispatch; ADR-230 Phase 6 sketch ruling 1)
|
|
3
|
+
*
|
|
4
|
+
* TURN has no standard semantics — a wheel rotates, a dial sets a number,
|
|
5
|
+
* a crank activates (the ADR-090 verb table documents TURN as deliberately
|
|
6
|
+
* entity-specific). This action dispatches to trait behaviors exactly like
|
|
7
|
+
* lowering/raising: entities that can be turned declare the
|
|
8
|
+
* 'if.action.turning' capability and register a behavior.
|
|
9
|
+
*
|
|
10
|
+
* NOTE: the switching phrasal forms (`turn :device on|off`, `turn on|off
|
|
11
|
+
* :device`) keep their own mapping — this action owns only the bare
|
|
12
|
+
* `turn|rotate|twist :target` shapes, at priority 95 so switching wins.
|
|
13
|
+
*/
|
|
14
|
+
export declare const turningAction: import("../..").Action & {
|
|
15
|
+
metadata: import("../../..").ActionMetadata;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=turning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turning.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/turning/turning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,eAAO,MAAM,aAAa;;CAKxB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Turning Action (ADR-090 Capability Dispatch; ADR-230 Phase 6 sketch ruling 1)
|
|
4
|
+
*
|
|
5
|
+
* TURN has no standard semantics — a wheel rotates, a dial sets a number,
|
|
6
|
+
* a crank activates (the ADR-090 verb table documents TURN as deliberately
|
|
7
|
+
* entity-specific). This action dispatches to trait behaviors exactly like
|
|
8
|
+
* lowering/raising: entities that can be turned declare the
|
|
9
|
+
* 'if.action.turning' capability and register a behavior.
|
|
10
|
+
*
|
|
11
|
+
* NOTE: the switching phrasal forms (`turn :device on|off`, `turn on|off
|
|
12
|
+
* :device`) keep their own mapping — this action owns only the bare
|
|
13
|
+
* `turn|rotate|twist :target` shapes, at priority 95 so switching wins.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.turningAction = void 0;
|
|
17
|
+
const capability_dispatch_1 = require("../../capability-dispatch");
|
|
18
|
+
const constants_1 = require("../../constants");
|
|
19
|
+
exports.turningAction = (0, capability_dispatch_1.createCapabilityDispatchAction)({
|
|
20
|
+
actionId: constants_1.IFActions.TURNING,
|
|
21
|
+
group: 'manipulation',
|
|
22
|
+
noTargetError: 'no_target',
|
|
23
|
+
cantDoThatError: 'cant_turn_that'
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=turning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turning.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/turning/turning.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,mEAA2E;AAC3E,+CAA4C;AAE/B,QAAA,aAAa,GAAG,IAAA,oDAA8B,EAAC;IAC1D,QAAQ,EAAE,qBAAS,CAAC,OAAO;IAC3B,KAAK,EAAE,cAAc;IACrB,aAAa,EAAE,WAAW;IAC1B,eAAe,EAAE,gBAAgB;CAClC,CAAC,CAAC"}
|
|
@@ -11,6 +11,15 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { Action } from '../../enhanced-types';
|
|
13
13
|
import { ActionMetadata } from '../../../validation';
|
|
14
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
15
|
+
/**
|
|
16
|
+
* Interceptor surface (ADR-228/229 R2): the unlocked target and the
|
|
17
|
+
* explicit key are the consultable entities of an UNLOCK command,
|
|
18
|
+
* published order target → key (D3-B). Explicit keys only — an
|
|
19
|
+
* auto-inferred key is not a command entity (same documented rule as
|
|
20
|
+
* attacking's inferred weapons). Symmetric seedData mirrors putting.
|
|
21
|
+
*/
|
|
22
|
+
export declare const unlockingLifecycle: ActionLifecycleDescriptor;
|
|
14
23
|
export declare const unlockingAction: Action & {
|
|
15
24
|
metadata: ActionMetadata;
|
|
16
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlocking.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/unlocking/unlocking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"unlocking.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/unlocking/unlocking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AASrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,yBA6BhC,CAAC;AA4BF,eAAO,MAAM,eAAe,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAsQhE,CAAC"}
|
|
@@ -11,13 +11,51 @@
|
|
|
11
11
|
* 3. report: Generate events from sharedData
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.unlockingAction = void 0;
|
|
14
|
+
exports.unlockingAction = exports.unlockingLifecycle = void 0;
|
|
15
15
|
const world_model_1 = require("@sharpee/world-model");
|
|
16
16
|
const constants_1 = require("../../constants");
|
|
17
17
|
const scope_1 = require("../../../scope");
|
|
18
18
|
const lock_shared_1 = require("../lock-shared");
|
|
19
19
|
const unlocking_messages_1 = require("./unlocking-messages");
|
|
20
20
|
const utils_1 = require("../../../utils");
|
|
21
|
+
const lifecycle_1 = require("../../lifecycle");
|
|
22
|
+
/**
|
|
23
|
+
* Interceptor surface (ADR-228/229 R2): the unlocked target and the
|
|
24
|
+
* explicit key are the consultable entities of an UNLOCK command,
|
|
25
|
+
* published order target → key (D3-B). Explicit keys only — an
|
|
26
|
+
* auto-inferred key is not a command entity (same documented rule as
|
|
27
|
+
* attacking's inferred weapons). Symmetric seedData mirrors putting.
|
|
28
|
+
*/
|
|
29
|
+
exports.unlockingLifecycle = {
|
|
30
|
+
actionId: constants_1.IFActions.UNLOCKING,
|
|
31
|
+
slots: [
|
|
32
|
+
{
|
|
33
|
+
id: 'target',
|
|
34
|
+
actionIds: [constants_1.IFActions.UNLOCKING],
|
|
35
|
+
resolve: (ctx) => ctx.command.directObject?.entity,
|
|
36
|
+
seedData: (ctx, entity) => {
|
|
37
|
+
const key = ctx.command.instrument?.entity ?? ctx.command.indirectObject?.entity;
|
|
38
|
+
return {
|
|
39
|
+
targetId: entity.id,
|
|
40
|
+
targetName: entity.name,
|
|
41
|
+
keyId: key?.id,
|
|
42
|
+
keyName: key?.name
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'key',
|
|
48
|
+
actionIds: [constants_1.IFActions.UNLOCKING],
|
|
49
|
+
resolve: (ctx) => ctx.command.instrument?.entity ?? ctx.command.indirectObject?.entity,
|
|
50
|
+
seedData: (ctx, entity) => ({
|
|
51
|
+
keyId: entity.id,
|
|
52
|
+
keyName: entity.name,
|
|
53
|
+
targetId: ctx.command.directObject?.entity?.id,
|
|
54
|
+
targetName: ctx.command.directObject?.entity?.name
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
};
|
|
21
59
|
function getUnlockingSharedData(context) {
|
|
22
60
|
return context.sharedData;
|
|
23
61
|
}
|
|
@@ -56,6 +94,10 @@ exports.unlockingAction = {
|
|
|
56
94
|
error: unlocking_messages_1.MESSAGES.NO_TARGET
|
|
57
95
|
};
|
|
58
96
|
}
|
|
97
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.unlockingLifecycle);
|
|
98
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
99
|
+
if (preVeto)
|
|
100
|
+
return preVeto;
|
|
59
101
|
// Check scope - must be able to reach the target
|
|
60
102
|
const scopeCheck = context.requireScope(noun, scope_1.ScopeLevel.REACHABLE);
|
|
61
103
|
if (!scopeCheck.ok) {
|
|
@@ -82,6 +124,10 @@ exports.unlockingAction = {
|
|
|
82
124
|
if (keyValidation) {
|
|
83
125
|
return keyValidation;
|
|
84
126
|
}
|
|
127
|
+
// Canonical placement (ADR-228): postValidate runs after ALL standard validation
|
|
128
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
129
|
+
if (postVeto)
|
|
130
|
+
return postVeto;
|
|
85
131
|
return { valid: true };
|
|
86
132
|
},
|
|
87
133
|
/**
|
|
@@ -169,6 +215,9 @@ exports.unlockingAction = {
|
|
|
169
215
|
if (sharedData.sound) {
|
|
170
216
|
sharedData.params.sound = sharedData.sound;
|
|
171
217
|
}
|
|
218
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
219
|
+
if (state)
|
|
220
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
172
221
|
},
|
|
173
222
|
/**
|
|
174
223
|
* Report phase - generates events after successful execution
|
|
@@ -190,7 +239,7 @@ exports.unlockingAction = {
|
|
|
190
239
|
})];
|
|
191
240
|
}
|
|
192
241
|
// Emit domain event with messageId (simplified pattern - ADR-097)
|
|
193
|
-
|
|
242
|
+
const events = [
|
|
194
243
|
context.event('if.event.unlocked', {
|
|
195
244
|
// Rendering data (messageId + params for text-service)
|
|
196
245
|
messageId: `${context.action.id}.${sharedData.messageId}`,
|
|
@@ -212,6 +261,10 @@ exports.unlockingAction = {
|
|
|
212
261
|
contentsIds: sharedData.contentsIds
|
|
213
262
|
})
|
|
214
263
|
];
|
|
264
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
265
|
+
if (state)
|
|
266
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.unlocked');
|
|
267
|
+
return events;
|
|
215
268
|
},
|
|
216
269
|
/**
|
|
217
270
|
* Generate events when validation fails
|
|
@@ -220,7 +273,7 @@ exports.unlockingAction = {
|
|
|
220
273
|
*/
|
|
221
274
|
blocked(context, result) {
|
|
222
275
|
const noun = context.command.directObject?.entity;
|
|
223
|
-
|
|
276
|
+
const events = [context.event('if.event.unlock_blocked', {
|
|
224
277
|
// Rendering data
|
|
225
278
|
messageId: `${context.action.id}.${result.error}`,
|
|
226
279
|
params: result.params || {},
|
|
@@ -229,6 +282,12 @@ exports.unlockingAction = {
|
|
|
229
282
|
targetName: noun?.name,
|
|
230
283
|
reason: result.error
|
|
231
284
|
})];
|
|
285
|
+
if (result.error) {
|
|
286
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
287
|
+
if (state)
|
|
288
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.unlock_blocked', result.error);
|
|
289
|
+
}
|
|
290
|
+
return events;
|
|
232
291
|
},
|
|
233
292
|
metadata: {
|
|
234
293
|
requiresDirectObject: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlocking.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/unlocking/unlocking.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAKH,sDAAiG;AACjG,+CAA4C;AAC5C,0CAA4C;AAE5C,gDAAmG;AACnG,6DAAgD;AAChD,0CAA+C;
|
|
1
|
+
{"version":3,"file":"unlocking.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/unlocking/unlocking.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,23 @@
|
|
|
4
4
|
* This action handles wearing items that have the WEARABLE trait.
|
|
5
5
|
* It validates that the item can be worn and isn't already worn.
|
|
6
6
|
*
|
|
7
|
-
* Uses
|
|
7
|
+
* Uses four-phase pattern:
|
|
8
8
|
* 1. validate: Check if item is wearable and can be worn
|
|
9
9
|
* 2. execute: Call WearableBehavior.wear(), store result in sharedData
|
|
10
10
|
* 3. report: Generate events from sharedData
|
|
11
|
+
* 4. blocked: Generate error events when validation fails
|
|
12
|
+
*
|
|
13
|
+
* Interceptor consultation (ADR-118) runs through the shared lifecycle
|
|
14
|
+
* engine (ADR-228) via `wearingLifecycle` — no hand-rolled hook plumbing.
|
|
11
15
|
*/
|
|
12
16
|
import { Action } from '../../enhanced-types';
|
|
13
17
|
import { ActionMetadata } from '../../../validation';
|
|
18
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
19
|
+
/**
|
|
20
|
+
* Interceptor surface (ADR-228): the worn item is the only consultable
|
|
21
|
+
* entity of a WEAR command.
|
|
22
|
+
*/
|
|
23
|
+
export declare const wearingLifecycle: ActionLifecycleDescriptor;
|
|
14
24
|
export declare const wearingAction: Action & {
|
|
15
25
|
metadata: ActionMetadata;
|
|
16
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wearing.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/wearing/wearing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wearing.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/wearing/wearing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAarD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,yBAS9B,CAAC;AAuBF,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAsM9D,CAAC"}
|