@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.
Files changed (299) hide show
  1. package/actions/base/snapshot-utils.js +2 -2
  2. package/actions/base/snapshot-utils.js.map +1 -1
  3. package/actions/constants.d.ts +2 -0
  4. package/actions/constants.d.ts.map +1 -1
  5. package/actions/constants.js +3 -0
  6. package/actions/constants.js.map +1 -1
  7. package/actions/index.d.ts +2 -0
  8. package/actions/index.d.ts.map +1 -1
  9. package/actions/index.js +6 -0
  10. package/actions/index.js.map +1 -1
  11. package/actions/lifecycle/descriptor.d.ts +111 -0
  12. package/actions/lifecycle/descriptor.d.ts.map +1 -0
  13. package/actions/lifecycle/descriptor.js +22 -0
  14. package/actions/lifecycle/descriptor.js.map +1 -0
  15. package/actions/lifecycle/index.d.ts +14 -0
  16. package/actions/lifecycle/index.d.ts.map +1 -0
  17. package/actions/lifecycle/index.js +27 -0
  18. package/actions/lifecycle/index.js.map +1 -0
  19. package/actions/lifecycle/lifecycle-engine.d.ts +173 -0
  20. package/actions/lifecycle/lifecycle-engine.d.ts.map +1 -0
  21. package/actions/lifecycle/lifecycle-engine.js +247 -0
  22. package/actions/lifecycle/lifecycle-engine.js.map +1 -0
  23. package/actions/lifecycle/multi-object-lifecycle.d.ts +105 -0
  24. package/actions/lifecycle/multi-object-lifecycle.d.ts.map +1 -0
  25. package/actions/lifecycle/multi-object-lifecycle.js +136 -0
  26. package/actions/lifecycle/multi-object-lifecycle.js.map +1 -0
  27. package/actions/lifecycle/registry.d.ts +39 -0
  28. package/actions/lifecycle/registry.d.ts.map +1 -0
  29. package/actions/lifecycle/registry.js +128 -0
  30. package/actions/lifecycle/registry.js.map +1 -0
  31. package/actions/standard/asking/asking.d.ts +25 -0
  32. package/actions/standard/asking/asking.d.ts.map +1 -0
  33. package/actions/standard/asking/asking.js +114 -0
  34. package/actions/standard/asking/asking.js.map +1 -0
  35. package/actions/standard/asking/index.d.ts +5 -0
  36. package/actions/standard/asking/index.d.ts.map +1 -0
  37. package/actions/standard/asking/index.js +10 -0
  38. package/actions/standard/asking/index.js.map +1 -0
  39. package/actions/standard/attacking/attacking.d.ts +14 -0
  40. package/actions/standard/attacking/attacking.d.ts.map +1 -1
  41. package/actions/standard/attacking/attacking.js +138 -94
  42. package/actions/standard/attacking/attacking.js.map +1 -1
  43. package/actions/standard/attacking/index.d.ts +1 -1
  44. package/actions/standard/attacking/index.d.ts.map +1 -1
  45. package/actions/standard/attacking/index.js +2 -1
  46. package/actions/standard/attacking/index.js.map +1 -1
  47. package/actions/standard/climbing/climbing.d.ts +10 -0
  48. package/actions/standard/climbing/climbing.d.ts.map +1 -1
  49. package/actions/standard/climbing/climbing.js +51 -11
  50. package/actions/standard/climbing/climbing.js.map +1 -1
  51. package/actions/standard/closing/closing.d.ts +6 -0
  52. package/actions/standard/closing/closing.d.ts.map +1 -1
  53. package/actions/standard/closing/closing.js +37 -31
  54. package/actions/standard/closing/closing.js.map +1 -1
  55. package/actions/standard/cutting/cutting-messages.d.ts +17 -0
  56. package/actions/standard/cutting/cutting-messages.d.ts.map +1 -0
  57. package/actions/standard/cutting/cutting-messages.js +22 -0
  58. package/actions/standard/cutting/cutting-messages.js.map +1 -0
  59. package/actions/standard/cutting/cutting.d.ts +35 -0
  60. package/actions/standard/cutting/cutting.d.ts.map +1 -0
  61. package/actions/standard/cutting/cutting.js +228 -0
  62. package/actions/standard/cutting/cutting.js.map +1 -0
  63. package/actions/standard/cutting/index.d.ts +7 -0
  64. package/actions/standard/cutting/index.d.ts.map +1 -0
  65. package/actions/standard/cutting/index.js +12 -0
  66. package/actions/standard/cutting/index.js.map +1 -0
  67. package/actions/standard/deadly-room-death/deadly-room-death.d.ts +16 -0
  68. package/actions/standard/deadly-room-death/deadly-room-death.d.ts.map +1 -0
  69. package/actions/standard/deadly-room-death/deadly-room-death.js +44 -0
  70. package/actions/standard/deadly-room-death/deadly-room-death.js.map +1 -0
  71. package/actions/standard/deadly-room-death/index.d.ts +2 -0
  72. package/actions/standard/deadly-room-death/index.d.ts.map +1 -0
  73. package/actions/standard/deadly-room-death/index.js +6 -0
  74. package/actions/standard/deadly-room-death/index.js.map +1 -0
  75. package/actions/standard/digging/digging-messages.d.ts +17 -0
  76. package/actions/standard/digging/digging-messages.d.ts.map +1 -0
  77. package/actions/standard/digging/digging-messages.js +22 -0
  78. package/actions/standard/digging/digging-messages.js.map +1 -0
  79. package/actions/standard/digging/digging.d.ts +35 -0
  80. package/actions/standard/digging/digging.d.ts.map +1 -0
  81. package/actions/standard/digging/digging.js +228 -0
  82. package/actions/standard/digging/digging.js.map +1 -0
  83. package/actions/standard/digging/index.d.ts +7 -0
  84. package/actions/standard/digging/index.d.ts.map +1 -0
  85. package/actions/standard/digging/index.js +12 -0
  86. package/actions/standard/digging/index.js.map +1 -0
  87. package/actions/standard/drinking/drinking.d.ts +9 -0
  88. package/actions/standard/drinking/drinking.d.ts.map +1 -1
  89. package/actions/standard/drinking/drinking.js +40 -2
  90. package/actions/standard/drinking/drinking.js.map +1 -1
  91. package/actions/standard/dropping/dropping-types.d.ts +10 -18
  92. package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
  93. package/actions/standard/dropping/dropping-types.js.map +1 -1
  94. package/actions/standard/dropping/dropping.d.ts +6 -0
  95. package/actions/standard/dropping/dropping.d.ts.map +1 -1
  96. package/actions/standard/dropping/dropping.js +86 -108
  97. package/actions/standard/dropping/dropping.js.map +1 -1
  98. package/actions/standard/eating/eating.d.ts +9 -0
  99. package/actions/standard/eating/eating.d.ts.map +1 -1
  100. package/actions/standard/eating/eating.js +40 -2
  101. package/actions/standard/eating/eating.js.map +1 -1
  102. package/actions/standard/entering/entering.d.ts +14 -5
  103. package/actions/standard/entering/entering.d.ts.map +1 -1
  104. package/actions/standard/entering/entering.js +45 -67
  105. package/actions/standard/entering/entering.js.map +1 -1
  106. package/actions/standard/examining/examining.d.ts +6 -0
  107. package/actions/standard/examining/examining.d.ts.map +1 -1
  108. package/actions/standard/examining/examining.js +39 -3
  109. package/actions/standard/examining/examining.js.map +1 -1
  110. package/actions/standard/exiting/exiting.d.ts +6 -0
  111. package/actions/standard/exiting/exiting.d.ts.map +1 -1
  112. package/actions/standard/exiting/exiting.js +54 -3
  113. package/actions/standard/exiting/exiting.js.map +1 -1
  114. package/actions/standard/giving/giving.d.ts +21 -0
  115. package/actions/standard/giving/giving.d.ts.map +1 -1
  116. package/actions/standard/giving/giving.js +78 -2
  117. package/actions/standard/giving/giving.js.map +1 -1
  118. package/actions/standard/going/going.d.ts +10 -16
  119. package/actions/standard/going/going.d.ts.map +1 -1
  120. package/actions/standard/going/going.js +134 -140
  121. package/actions/standard/going/going.js.map +1 -1
  122. package/actions/standard/hiding/hiding.d.ts +10 -1
  123. package/actions/standard/hiding/hiding.d.ts.map +1 -1
  124. package/actions/standard/hiding/hiding.js +43 -4
  125. package/actions/standard/hiding/hiding.js.map +1 -1
  126. package/actions/standard/index.d.ts +5 -0
  127. package/actions/standard/index.d.ts.map +1 -1
  128. package/actions/standard/index.js +19 -4
  129. package/actions/standard/index.js.map +1 -1
  130. package/actions/standard/inserting/inserting.d.ts +12 -0
  131. package/actions/standard/inserting/inserting.d.ts.map +1 -1
  132. package/actions/standard/inserting/inserting.js +70 -5
  133. package/actions/standard/inserting/inserting.js.map +1 -1
  134. package/actions/standard/listening/listening.d.ts +12 -1
  135. package/actions/standard/listening/listening.d.ts.map +1 -1
  136. package/actions/standard/listening/listening.js +45 -4
  137. package/actions/standard/listening/listening.js.map +1 -1
  138. package/actions/standard/locking/locking.d.ts +9 -0
  139. package/actions/standard/locking/locking.d.ts.map +1 -1
  140. package/actions/standard/locking/locking.js +62 -3
  141. package/actions/standard/locking/locking.js.map +1 -1
  142. package/actions/standard/looking/index.d.ts +1 -0
  143. package/actions/standard/looking/index.d.ts.map +1 -1
  144. package/actions/standard/looking/index.js +5 -1
  145. package/actions/standard/looking/index.js.map +1 -1
  146. package/actions/standard/looking/snippet-gate-registry.d.ts +55 -0
  147. package/actions/standard/looking/snippet-gate-registry.d.ts.map +1 -0
  148. package/actions/standard/looking/snippet-gate-registry.js +63 -0
  149. package/actions/standard/looking/snippet-gate-registry.js.map +1 -0
  150. package/actions/standard/looking/snippet-resolver.d.ts +9 -3
  151. package/actions/standard/looking/snippet-resolver.d.ts.map +1 -1
  152. package/actions/standard/looking/snippet-resolver.js +75 -4
  153. package/actions/standard/looking/snippet-resolver.js.map +1 -1
  154. package/actions/standard/opening/opening-messages.d.ts +3 -0
  155. package/actions/standard/opening/opening-messages.d.ts.map +1 -1
  156. package/actions/standard/opening/opening-messages.js +4 -0
  157. package/actions/standard/opening/opening-messages.js.map +1 -1
  158. package/actions/standard/opening/opening.d.ts +8 -0
  159. package/actions/standard/opening/opening.d.ts.map +1 -1
  160. package/actions/standard/opening/opening.js +73 -39
  161. package/actions/standard/opening/opening.js.map +1 -1
  162. package/actions/standard/pulling/pulling.d.ts +9 -0
  163. package/actions/standard/pulling/pulling.d.ts.map +1 -1
  164. package/actions/standard/pulling/pulling.js +40 -2
  165. package/actions/standard/pulling/pulling.js.map +1 -1
  166. package/actions/standard/pushing/pushing-types.d.ts +3 -6
  167. package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
  168. package/actions/standard/pushing/pushing-types.js +3 -1
  169. package/actions/standard/pushing/pushing-types.js.map +1 -1
  170. package/actions/standard/pushing/pushing.d.ts +14 -5
  171. package/actions/standard/pushing/pushing.d.ts.map +1 -1
  172. package/actions/standard/pushing/pushing.js +51 -71
  173. package/actions/standard/pushing/pushing.js.map +1 -1
  174. package/actions/standard/putting/putting-types.d.ts +10 -21
  175. package/actions/standard/putting/putting-types.d.ts.map +1 -1
  176. package/actions/standard/putting/putting-types.js +0 -1
  177. package/actions/standard/putting/putting-types.js.map +1 -1
  178. package/actions/standard/putting/putting.d.ts +10 -0
  179. package/actions/standard/putting/putting.d.ts.map +1 -1
  180. package/actions/standard/putting/putting.js +133 -151
  181. package/actions/standard/putting/putting.js.map +1 -1
  182. package/actions/standard/reading/reading.d.ts +6 -0
  183. package/actions/standard/reading/reading.d.ts.map +1 -1
  184. package/actions/standard/reading/reading.js +39 -3
  185. package/actions/standard/reading/reading.js.map +1 -1
  186. package/actions/standard/removing/removing-types.d.ts +10 -16
  187. package/actions/standard/removing/removing-types.d.ts.map +1 -1
  188. package/actions/standard/removing/removing-types.js.map +1 -1
  189. package/actions/standard/removing/removing.d.ts +13 -0
  190. package/actions/standard/removing/removing.d.ts.map +1 -1
  191. package/actions/standard/removing/removing.js +147 -88
  192. package/actions/standard/removing/removing.js.map +1 -1
  193. package/actions/standard/searching/searching.d.ts +10 -0
  194. package/actions/standard/searching/searching.d.ts.map +1 -1
  195. package/actions/standard/searching/searching.js +44 -8
  196. package/actions/standard/searching/searching.js.map +1 -1
  197. package/actions/standard/showing/showing.d.ts +14 -0
  198. package/actions/standard/showing/showing.d.ts.map +1 -1
  199. package/actions/standard/showing/showing.js +62 -2
  200. package/actions/standard/showing/showing.js.map +1 -1
  201. package/actions/standard/smelling/smelling.d.ts +10 -0
  202. package/actions/standard/smelling/smelling.d.ts.map +1 -1
  203. package/actions/standard/smelling/smelling.js +41 -2
  204. package/actions/standard/smelling/smelling.js.map +1 -1
  205. package/actions/standard/switching_off/switching_off.d.ts +11 -1
  206. package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
  207. package/actions/standard/switching_off/switching_off.js +44 -4
  208. package/actions/standard/switching_off/switching_off.js.map +1 -1
  209. package/actions/standard/switching_on/switching_on.d.ts +14 -5
  210. package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
  211. package/actions/standard/switching_on/switching_on.js +45 -57
  212. package/actions/standard/switching_on/switching_on.js.map +1 -1
  213. package/actions/standard/taking/taking-types.d.ts +14 -32
  214. package/actions/standard/taking/taking-types.d.ts.map +1 -1
  215. package/actions/standard/taking/taking-types.js.map +1 -1
  216. package/actions/standard/taking/taking.d.ts +11 -0
  217. package/actions/standard/taking/taking.d.ts.map +1 -1
  218. package/actions/standard/taking/taking.js +107 -111
  219. package/actions/standard/taking/taking.js.map +1 -1
  220. package/actions/standard/taking_off/taking-off.d.ts +6 -0
  221. package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
  222. package/actions/standard/taking_off/taking-off.js +57 -21
  223. package/actions/standard/taking_off/taking-off.js.map +1 -1
  224. package/actions/standard/talking/talking.d.ts +15 -0
  225. package/actions/standard/talking/talking.d.ts.map +1 -1
  226. package/actions/standard/talking/talking.js +52 -3
  227. package/actions/standard/talking/talking.js.map +1 -1
  228. package/actions/standard/telling/index.d.ts +5 -0
  229. package/actions/standard/telling/index.d.ts.map +1 -0
  230. package/actions/standard/telling/index.js +10 -0
  231. package/actions/standard/telling/index.js.map +1 -0
  232. package/actions/standard/telling/telling.d.ts +25 -0
  233. package/actions/standard/telling/telling.d.ts.map +1 -0
  234. package/actions/standard/telling/telling.js +114 -0
  235. package/actions/standard/telling/telling.js.map +1 -0
  236. package/actions/standard/throwing/throwing.d.ts +11 -0
  237. package/actions/standard/throwing/throwing.d.ts.map +1 -1
  238. package/actions/standard/throwing/throwing.js +69 -70
  239. package/actions/standard/throwing/throwing.js.map +1 -1
  240. package/actions/standard/tool-shared.d.ts +38 -0
  241. package/actions/standard/tool-shared.d.ts.map +1 -0
  242. package/actions/standard/tool-shared.js +74 -0
  243. package/actions/standard/tool-shared.js.map +1 -0
  244. package/actions/standard/touching/touching.d.ts +9 -0
  245. package/actions/standard/touching/touching.d.ts.map +1 -1
  246. package/actions/standard/touching/touching.js +40 -4
  247. package/actions/standard/touching/touching.js.map +1 -1
  248. package/actions/standard/turning/index.d.ts +5 -0
  249. package/actions/standard/turning/index.d.ts.map +1 -0
  250. package/actions/standard/turning/index.js +9 -0
  251. package/actions/standard/turning/index.js.map +1 -0
  252. package/actions/standard/turning/turning.d.ts +17 -0
  253. package/actions/standard/turning/turning.d.ts.map +1 -0
  254. package/actions/standard/turning/turning.js +25 -0
  255. package/actions/standard/turning/turning.js.map +1 -0
  256. package/actions/standard/unlocking/unlocking.d.ts +9 -0
  257. package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
  258. package/actions/standard/unlocking/unlocking.js +62 -3
  259. package/actions/standard/unlocking/unlocking.js.map +1 -1
  260. package/actions/standard/wearing/wearing.d.ts +11 -1
  261. package/actions/standard/wearing/wearing.d.ts.map +1 -1
  262. package/actions/standard/wearing/wearing.js +57 -12
  263. package/actions/standard/wearing/wearing.js.map +1 -1
  264. package/channels/standard.d.ts +13 -10
  265. package/channels/standard.d.ts.map +1 -1
  266. package/channels/standard.js +14 -10
  267. package/channels/standard.js.map +1 -1
  268. package/death/deadly-room-transformer.d.ts +37 -0
  269. package/death/deadly-room-transformer.d.ts.map +1 -0
  270. package/death/deadly-room-transformer.js +79 -0
  271. package/death/deadly-room-transformer.js.map +1 -0
  272. package/death/index.d.ts +18 -0
  273. package/death/index.d.ts.map +1 -0
  274. package/death/index.js +28 -0
  275. package/death/index.js.map +1 -0
  276. package/death/kill-player.d.ts +49 -0
  277. package/death/kill-player.d.ts.map +1 -0
  278. package/death/kill-player.js +55 -0
  279. package/death/kill-player.js.map +1 -0
  280. package/death/player-death-events.d.ts +40 -0
  281. package/death/player-death-events.d.ts.map +1 -0
  282. package/death/player-death-events.js +27 -0
  283. package/death/player-death-events.js.map +1 -0
  284. package/death/probabilistic-death.d.ts +23 -0
  285. package/death/probabilistic-death.d.ts.map +1 -0
  286. package/death/probabilistic-death.js +27 -0
  287. package/death/probabilistic-death.js.map +1 -0
  288. package/index.d.ts +1 -0
  289. package/index.d.ts.map +1 -1
  290. package/index.js +1 -0
  291. package/index.js.map +1 -1
  292. package/npc/behaviors.d.ts.map +1 -1
  293. package/npc/behaviors.js +9 -8
  294. package/npc/behaviors.js.map +1 -1
  295. package/npc/npc-service.d.ts +8 -0
  296. package/npc/npc-service.d.ts.map +1 -1
  297. package/npc/npc-service.js +19 -18
  298. package/npc/npc-service.js.map +1 -1
  299. 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;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAK/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkBrD,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA8N/D,CAAC"}
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
- return [context.event('if.event.touch_blocked', {
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":"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"}
1
+ {"version":3,"file":"touching.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/touching/touching.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Turning action (ADR-090 capability dispatch) — public exports.
3
+ */
4
+ export { turningAction } from './turning';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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;AAoCrD,eAAO,MAAM,eAAe,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA+OhE,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
- return [
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
- return [context.event('if.event.unlock_blocked', {
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":"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"}
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 three-phase pattern:
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;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAmCrD,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA0K9D,CAAC"}
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"}