@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
@@ -9,9 +9,23 @@
9
9
  * 2. execute: Analyze show reaction (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 `showingLifecycle` — 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): BOTH the shown item and the viewer are
21
+ * consulted (D3-B published order: direct object first), each side's
22
+ * sharedData seeded with the other entity's identity (D3 sub-ruling —
23
+ * symmetric context, same shape as putting's descriptor). Per the
24
+ * ADR-118 hook audit, an interceptor on the viewer is the intended
25
+ * replacement for the legacy `customProperties.reactions`
26
+ * string-matching in analyzeShowAction().
27
+ */
28
+ export declare const showingLifecycle: ActionLifecycleDescriptor;
15
29
  export declare const showingAction: Action & {
16
30
  metadata: ActionMetadata;
17
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"showing.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/showing/showing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0GrD,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAmJ9D,CAAC"}
1
+ {"version":3,"file":"showing.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/showing/showing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,yBA0B9B,CAAC;AAoGF,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAwK9D,CAAC"}
@@ -10,13 +10,53 @@
10
10
  * 2. execute: Analyze show reaction (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 `showingLifecycle` — no hand-rolled hook plumbing.
13
16
  */
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.showingAction = void 0;
18
+ exports.showingAction = exports.showingLifecycle = void 0;
16
19
  const types_1 = require("../../../scope/types");
17
20
  const world_model_1 = require("@sharpee/world-model");
18
21
  const constants_1 = require("../../constants");
19
22
  const utils_1 = require("../../../utils");
23
+ const lifecycle_1 = require("../../lifecycle");
24
+ /**
25
+ * Interceptor surface (ADR-228): BOTH the shown item and the viewer are
26
+ * consulted (D3-B published order: direct object first), each side's
27
+ * sharedData seeded with the other entity's identity (D3 sub-ruling —
28
+ * symmetric context, same shape as putting's descriptor). Per the
29
+ * ADR-118 hook audit, an interceptor on the viewer is the intended
30
+ * replacement for the legacy `customProperties.reactions`
31
+ * string-matching in analyzeShowAction().
32
+ */
33
+ exports.showingLifecycle = {
34
+ actionId: constants_1.IFActions.SHOWING,
35
+ slots: [
36
+ {
37
+ id: 'item',
38
+ actionIds: [constants_1.IFActions.SHOWING],
39
+ resolve: (ctx) => ctx.command.directObject?.entity,
40
+ seedData: (ctx, entity) => ({
41
+ itemId: entity.id,
42
+ itemName: entity.name,
43
+ viewerId: ctx.command.indirectObject?.entity?.id,
44
+ viewerName: ctx.command.indirectObject?.entity?.name
45
+ })
46
+ },
47
+ {
48
+ id: 'viewer',
49
+ actionIds: [constants_1.IFActions.SHOWING],
50
+ resolve: (ctx) => ctx.command.indirectObject?.entity,
51
+ seedData: (ctx, entity) => ({
52
+ itemId: ctx.command.directObject?.entity?.id,
53
+ itemName: ctx.command.directObject?.entity?.name,
54
+ viewerId: entity.id,
55
+ viewerName: entity.name
56
+ })
57
+ }
58
+ ]
59
+ };
20
60
  function getShowingSharedData(context) {
21
61
  return context.sharedData;
22
62
  }
@@ -137,6 +177,10 @@ exports.showingAction = {
137
177
  params: {}
138
178
  };
139
179
  }
180
+ const state = (0, lifecycle_1.resolveLifecycle)(context, exports.showingLifecycle);
181
+ const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
182
+ if (preVeto)
183
+ return preVeto;
140
184
  // Item must be carried (or implicitly takeable)
141
185
  // This enables "show apple to bob" when apple is on the ground
142
186
  const carryCheck = context.requireCarriedOrImplicitTake(item);
@@ -168,6 +212,10 @@ exports.showingAction = {
168
212
  params: { item: (0, utils_1.nounPhraseFor)(item) }
169
213
  };
170
214
  }
215
+ // Canonical placement (ADR-228): postValidate runs after ALL standard validation
216
+ const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
217
+ if (postVeto)
218
+ return postVeto;
171
219
  return { valid: true };
172
220
  },
173
221
  execute(context) {
@@ -180,11 +228,14 @@ exports.showingAction = {
180
228
  sharedData.eventData = analysis.eventData;
181
229
  sharedData.params = analysis.params;
182
230
  }
231
+ const state = (0, lifecycle_1.getLifecycleState)(context);
232
+ if (state)
233
+ (0, lifecycle_1.runPostExecute)(context, state);
183
234
  },
184
235
  blocked(context, result) {
185
236
  const item = context.command.directObject?.entity;
186
237
  const viewer = context.command.indirectObject?.entity;
187
- return [context.event('if.event.show_blocked', {
238
+ const events = [context.event('if.event.show_blocked', {
188
239
  blocked: true,
189
240
  messageId: `${context.action.id}.${result.error}`,
190
241
  // params carry EntityInfo for the formatter chain (ADR-158)
@@ -199,6 +250,12 @@ exports.showingAction = {
199
250
  viewerId: viewer?.id,
200
251
  viewerName: viewer?.name
201
252
  })];
253
+ if (result.error) {
254
+ const state = (0, lifecycle_1.getLifecycleState)(context);
255
+ if (state)
256
+ (0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.show_blocked', result.error);
257
+ }
258
+ return events;
202
259
  },
203
260
  report(context) {
204
261
  const events = [];
@@ -213,6 +270,9 @@ exports.showingAction = {
213
270
  params: sharedData.params,
214
271
  ...sharedData.eventData
215
272
  }));
273
+ const state = (0, lifecycle_1.getLifecycleState)(context);
274
+ if (state)
275
+ (0, lifecycle_1.runPostReport)(context, state, events, 'if.event.shown');
216
276
  return events;
217
277
  },
218
278
  group: "social"
@@ -1 +1 @@
1
- {"version":3,"file":"showing.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/showing/showing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"showing.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/showing/showing.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,19 @@
9
9
  * 2. execute: Analyze scents (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 `smellingLifecycle` — 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 smelled target is the only consultable
21
+ * entity of a SMELL command. Smelling the environment ("smell") has no direct
22
+ * object, so the slot resolves to undefined — zero consultations.
23
+ */
24
+ export declare const smellingLifecycle: ActionLifecycleDescriptor;
15
25
  export declare const smellingAction: Action & {
16
26
  metadata: ActionMetadata;
17
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"smelling.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/smelling/smelling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAK/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsHrD,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA0F/D,CAAC"}
1
+ {"version":3,"file":"smelling.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/smelling/smelling.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;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,yBAS/B,CAAC;AAoHF,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA+G/D,CAAC"}
@@ -10,13 +10,32 @@
10
10
  * 2. execute: Analyze scents (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 `smellingLifecycle` — no hand-rolled hook plumbing.
13
16
  */
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.smellingAction = void 0;
18
+ exports.smellingAction = exports.smellingLifecycle = 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 smelled target is the only consultable
26
+ * entity of a SMELL command. Smelling the environment ("smell") has no direct
27
+ * object, so the slot resolves to undefined — zero consultations.
28
+ */
29
+ exports.smellingLifecycle = {
30
+ actionId: constants_1.IFActions.SMELLING,
31
+ slots: [
32
+ {
33
+ id: 'target',
34
+ actionIds: [constants_1.IFActions.SMELLING],
35
+ resolve: (ctx) => ctx.command.directObject?.entity
36
+ }
37
+ ]
38
+ };
20
39
  function getSmellingSharedData(context) {
21
40
  return context.sharedData;
22
41
  }
@@ -137,6 +156,10 @@ exports.smellingAction = {
137
156
  validate(context) {
138
157
  const actor = context.player;
139
158
  const target = context.command.directObject?.entity;
159
+ const state = (0, lifecycle_1.resolveLifecycle)(context, exports.smellingLifecycle);
160
+ const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
161
+ if (preVeto)
162
+ return preVeto;
140
163
  // If target specified, check distance
141
164
  if (target) {
142
165
  // Check if in different rooms first (too far to smell)
@@ -150,6 +173,10 @@ exports.smellingAction = {
150
173
  };
151
174
  }
152
175
  }
176
+ // Canonical placement (ADR-228): postValidate runs after ALL standard validation
177
+ const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
178
+ if (postVeto)
179
+ return postVeto;
153
180
  // Scent analysis happens in execute phase
154
181
  return { valid: true };
155
182
  },
@@ -161,10 +188,13 @@ exports.smellingAction = {
161
188
  sharedData.messageId = analysis.messageId;
162
189
  sharedData.eventData = analysis.eventData;
163
190
  sharedData.params = analysis.params;
191
+ const state = (0, lifecycle_1.getLifecycleState)(context);
192
+ if (state)
193
+ (0, lifecycle_1.runPostExecute)(context, state);
164
194
  },
165
195
  blocked(context, result) {
166
196
  const target = context.command.directObject?.entity;
167
- return [context.event('if.event.smell_blocked', {
197
+ const events = [context.event('if.event.smell_blocked', {
168
198
  blocked: true,
169
199
  messageId: `${context.action.id}.${result.error}`,
170
200
  // params carry EntityInfo for the formatter chain (ADR-158)
@@ -176,6 +206,12 @@ exports.smellingAction = {
176
206
  targetId: target?.id,
177
207
  targetName: target?.name
178
208
  })];
209
+ if (result.error) {
210
+ const state = (0, lifecycle_1.getLifecycleState)(context);
211
+ if (state)
212
+ (0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.smell_blocked', result.error);
213
+ }
214
+ return events;
179
215
  },
180
216
  report(context) {
181
217
  const events = [];
@@ -186,6 +222,9 @@ exports.smellingAction = {
186
222
  params: sharedData.params,
187
223
  ...sharedData.eventData
188
224
  }));
225
+ const state = (0, lifecycle_1.getLifecycleState)(context);
226
+ if (state)
227
+ (0, lifecycle_1.runPostReport)(context, state, events, 'if.event.smelled');
189
228
  return events;
190
229
  },
191
230
  group: "sensory"
@@ -1 +1 @@
1
- {"version":3,"file":"smelling.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/smelling/smelling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smelling.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/smelling/smelling.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,23 @@
4
4
  * This action validates conditions for switching something off and returns
5
5
  * appropriate events. It delegates state changes to SwitchableBehavior.
6
6
  *
7
- * Uses three-phase pattern:
7
+ * Uses four-phase pattern:
8
8
  * 1. validate: Check if target is switchable and can be turned off
9
9
  * 2. execute: Call SwitchableBehavior.switchOff(), 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 `switchingOffLifecycle` — 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 switched-off target is the only
21
+ * consultable entity of a SWITCH OFF command.
22
+ */
23
+ export declare const switchingOffLifecycle: ActionLifecycleDescriptor;
14
24
  export declare const switchingOffAction: Action & {
15
25
  metadata: ActionMetadata;
16
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"switching_off.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/switching_off/switching_off.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAwCrD,eAAO,MAAM,kBAAkB,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAgNnE,CAAC"}
1
+ {"version":3,"file":"switching_off.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/switching_off/switching_off.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;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;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,yBASnC,CAAC;AAgCF,eAAO,MAAM,kBAAkB,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAuOnE,CAAC"}
@@ -5,19 +5,38 @@
5
5
  * This action validates conditions for switching something off and returns
6
6
  * appropriate events. It delegates state changes to SwitchableBehavior.
7
7
  *
8
- * Uses three-phase pattern:
8
+ * Uses four-phase pattern:
9
9
  * 1. validate: Check if target is switchable and can be turned off
10
10
  * 2. execute: Call SwitchableBehavior.switchOff(), store result in sharedData
11
11
  * 3. report: Generate events from sharedData
12
+ * 4. blocked: Generate error events when validation fails
13
+ *
14
+ * Interceptor consultation (ADR-118) runs through the shared lifecycle
15
+ * engine (ADR-228) via `switchingOffLifecycle` — no hand-rolled hook plumbing.
12
16
  */
13
17
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.switchingOffAction = void 0;
18
+ exports.switchingOffAction = exports.switchingOffLifecycle = void 0;
15
19
  const world_model_1 = require("@sharpee/world-model");
16
20
  const constants_1 = require("../../constants");
17
21
  const scope_1 = require("../../../scope");
18
22
  const switching_shared_1 = require("../switching-shared");
19
23
  const switching_off_messages_1 = require("./switching_off-messages");
20
24
  const utils_1 = require("../../../utils");
25
+ const lifecycle_1 = require("../../lifecycle");
26
+ /**
27
+ * Interceptor surface (ADR-228): the switched-off target is the only
28
+ * consultable entity of a SWITCH OFF command.
29
+ */
30
+ exports.switchingOffLifecycle = {
31
+ actionId: constants_1.IFActions.SWITCHING_OFF,
32
+ slots: [
33
+ {
34
+ id: 'target',
35
+ actionIds: [constants_1.IFActions.SWITCHING_OFF],
36
+ resolve: (ctx) => ctx.command.directObject?.entity
37
+ }
38
+ ]
39
+ };
21
40
  function getSwitchingOffSharedData(context) {
22
41
  return context.sharedData;
23
42
  }
@@ -47,6 +66,10 @@ exports.switchingOffAction = {
47
66
  if (!noun) {
48
67
  return { valid: false, error: switching_off_messages_1.MESSAGES.NO_TARGET };
49
68
  }
69
+ const state = (0, lifecycle_1.resolveLifecycle)(context, exports.switchingOffLifecycle);
70
+ const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
71
+ if (preVeto)
72
+ return preVeto;
50
73
  // Check scope - must be able to reach the target
51
74
  const scopeCheck = context.requireScope(noun, scope_1.ScopeLevel.REACHABLE);
52
75
  if (!scopeCheck.ok) {
@@ -58,6 +81,10 @@ exports.switchingOffAction = {
58
81
  if (!world_model_1.SwitchableBehavior.canSwitchOff(noun)) {
59
82
  return { valid: false, error: switching_off_messages_1.MESSAGES.ALREADY_OFF, params: { target: (0, utils_1.nounPhraseFor)(noun) } };
60
83
  }
84
+ // Canonical placement (ADR-228): postValidate runs after ALL standard validation
85
+ const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
86
+ if (postVeto)
87
+ return postVeto;
61
88
  return { valid: true };
62
89
  },
63
90
  execute(context) {
@@ -131,6 +158,9 @@ exports.switchingOffAction = {
131
158
  // Determine appropriate message
132
159
  sharedData.messageId = (0, switching_shared_1.determineSwitchingMessage)(false, // isOn = false
133
160
  analysis, result.offSound, hadAutoOff, hadRunningSound, willClose);
161
+ const state = (0, lifecycle_1.getLifecycleState)(context);
162
+ if (state)
163
+ (0, lifecycle_1.runPostExecute)(context, state);
134
164
  },
135
165
  /**
136
166
  * Report phase - generates events after successful execution
@@ -152,7 +182,7 @@ exports.switchingOffAction = {
152
182
  })];
153
183
  }
154
184
  // Emit domain event with messageId (simplified pattern - ADR-097)
155
- return [
185
+ const events = [
156
186
  context.event('if.event.switched_off', {
157
187
  // Rendering data (messageId + params for text-service)
158
188
  messageId: `${context.action.id}.${sharedData.messageId}`,
@@ -171,6 +201,10 @@ exports.switchingOffAction = {
171
201
  willClose: sharedData.willClose
172
202
  })
173
203
  ];
204
+ const state = (0, lifecycle_1.getLifecycleState)(context);
205
+ if (state)
206
+ (0, lifecycle_1.runPostReport)(context, state, events, 'if.event.switched_off');
207
+ return events;
174
208
  },
175
209
  /**
176
210
  * Generate events when validation fails
@@ -179,7 +213,7 @@ exports.switchingOffAction = {
179
213
  */
180
214
  blocked(context, result) {
181
215
  const noun = context.command.directObject?.entity;
182
- return [context.event('if.event.switch_off_blocked', {
216
+ const events = [context.event('if.event.switch_off_blocked', {
183
217
  // Rendering data
184
218
  messageId: `${context.action.id}.${result.error}`,
185
219
  params: result.params || {},
@@ -188,6 +222,12 @@ exports.switchingOffAction = {
188
222
  targetName: noun?.name,
189
223
  reason: result.error
190
224
  })];
225
+ if (result.error) {
226
+ const state = (0, lifecycle_1.getLifecycleState)(context);
227
+ if (state)
228
+ (0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.switch_off_blocked', result.error);
229
+ }
230
+ return events;
191
231
  },
192
232
  group: "device_manipulation",
193
233
  metadata: {
@@ -1 +1 @@
1
- {"version":3,"file":"switching_off.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/switching_off/switching_off.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switching_off.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/switching_off/switching_off.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,23 @@
4
4
  * This action validates conditions for switching something on and returns
5
5
  * appropriate events. It delegates state changes to SwitchableBehavior.
6
6
  *
7
- * Uses four-phase pattern with interceptor support (ADR-118):
8
- * 1. validate: preValidate hook standard checks postValidate hook
9
- * 2. execute: standard mutation postExecute hook
10
- * 3. report: standard events postReport hook
11
- * 4. blocked: onBlocked hook (if validation failed)
7
+ * Uses four-phase pattern:
8
+ * 1. validate: Check target exists and can be switched on
9
+ * 2. execute: Delegate state change to SwitchableBehavior
10
+ * 3. report: Generate success events (plus auto-LOOK when illuminating)
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 `switchingOnLifecycle` — 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 switched-on target is the only
21
+ * consultable entity of a SWITCH ON command.
22
+ */
23
+ export declare const switchingOnLifecycle: ActionLifecycleDescriptor;
15
24
  export declare const switchingOnAction: Action & {
16
25
  metadata: ActionMetadata;
17
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"switching_on.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/switching_on/switching_on.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA6DrD,eAAO,MAAM,iBAAiB,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA2VlE,CAAC"}
1
+ {"version":3,"file":"switching_on.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/switching_on/switching_on.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkBrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,yBASlC,CAAC;AAsCF,eAAO,MAAM,iBAAiB,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAuTlE,CAAC"}