@sharpee/stdlib 3.0.0 → 3.3.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 (765) hide show
  1. package/actions/author/index.d.ts +1 -1
  2. package/actions/author/index.d.ts.map +1 -1
  3. package/actions/author/index.js +2 -2
  4. package/actions/author/index.js.map +1 -1
  5. package/actions/author/trace.d.ts +3 -3
  6. package/actions/author/trace.d.ts.map +1 -1
  7. package/actions/author/trace.js +2 -2
  8. package/actions/author/trace.js.map +1 -1
  9. package/actions/base/index.d.ts +2 -2
  10. package/actions/base/index.d.ts.map +1 -1
  11. package/actions/base/index.js +2 -2
  12. package/actions/base/index.js.map +1 -1
  13. package/actions/base/migration-shim.d.ts +1 -1
  14. package/actions/base/migration-shim.d.ts.map +1 -1
  15. package/actions/base/report-helpers.d.ts +1 -1
  16. package/actions/base/report-helpers.d.ts.map +1 -1
  17. package/actions/base/report-helpers.js +3 -3
  18. package/actions/base/report-helpers.js.map +1 -1
  19. package/actions/base/snapshot-utils.js +2 -2
  20. package/actions/base/snapshot-utils.js.map +1 -1
  21. package/actions/capability-dispatch.d.ts +3 -3
  22. package/actions/capability-dispatch.d.ts.map +1 -1
  23. package/actions/capability-dispatch.js +18 -8
  24. package/actions/capability-dispatch.js.map +1 -1
  25. package/actions/constants.d.ts +2 -0
  26. package/actions/constants.d.ts.map +1 -1
  27. package/actions/constants.js +3 -0
  28. package/actions/constants.js.map +1 -1
  29. package/actions/context-adapter.d.ts +2 -2
  30. package/actions/context-adapter.d.ts.map +1 -1
  31. package/actions/data-builder-types.d.ts +1 -1
  32. package/actions/data-builder-types.d.ts.map +1 -1
  33. package/actions/enhanced-context.d.ts +5 -4
  34. package/actions/enhanced-context.d.ts.map +1 -1
  35. package/actions/enhanced-context.js +85 -67
  36. package/actions/enhanced-context.js.map +1 -1
  37. package/actions/enhanced-types.d.ts +29 -3
  38. package/actions/enhanced-types.d.ts.map +1 -1
  39. package/actions/enhanced-types.js.map +1 -1
  40. package/actions/helpers/emit-illustrations.d.ts +1 -1
  41. package/actions/helpers/emit-illustrations.d.ts.map +1 -1
  42. package/actions/index.d.ts +10 -8
  43. package/actions/index.d.ts.map +1 -1
  44. package/actions/index.js +16 -10
  45. package/actions/index.js.map +1 -1
  46. package/actions/lifecycle/descriptor.d.ts +111 -0
  47. package/actions/lifecycle/descriptor.d.ts.map +1 -0
  48. package/actions/lifecycle/descriptor.js +22 -0
  49. package/actions/lifecycle/descriptor.js.map +1 -0
  50. package/actions/lifecycle/index.d.ts +14 -0
  51. package/actions/lifecycle/index.d.ts.map +1 -0
  52. package/actions/lifecycle/index.js +28 -0
  53. package/actions/lifecycle/index.js.map +1 -0
  54. package/actions/lifecycle/lifecycle-engine.d.ts +189 -0
  55. package/actions/lifecycle/lifecycle-engine.d.ts.map +1 -0
  56. package/actions/lifecycle/lifecycle-engine.js +272 -0
  57. package/actions/lifecycle/lifecycle-engine.js.map +1 -0
  58. package/actions/lifecycle/multi-object-lifecycle.d.ts +113 -0
  59. package/actions/lifecycle/multi-object-lifecycle.d.ts.map +1 -0
  60. package/actions/lifecycle/multi-object-lifecycle.js +138 -0
  61. package/actions/lifecycle/multi-object-lifecycle.js.map +1 -0
  62. package/actions/lifecycle/registry.d.ts +40 -0
  63. package/actions/lifecycle/registry.d.ts.map +1 -0
  64. package/actions/lifecycle/registry.js +131 -0
  65. package/actions/lifecycle/registry.js.map +1 -0
  66. package/actions/meta-action.d.ts +1 -1
  67. package/actions/meta-action.d.ts.map +1 -1
  68. package/actions/meta-action.js +2 -2
  69. package/actions/meta-action.js.map +1 -1
  70. package/actions/registry.d.ts +2 -2
  71. package/actions/registry.d.ts.map +1 -1
  72. package/actions/standard/about/about.d.ts +2 -2
  73. package/actions/standard/about/about.d.ts.map +1 -1
  74. package/actions/standard/about/about.js +4 -3
  75. package/actions/standard/about/about.js.map +1 -1
  76. package/actions/standard/about/index.d.ts +2 -2
  77. package/actions/standard/about/index.d.ts.map +1 -1
  78. package/actions/standard/about/index.js +2 -2
  79. package/actions/standard/about/index.js.map +1 -1
  80. package/actions/standard/again/again.d.ts +2 -2
  81. package/actions/standard/again/again.d.ts.map +1 -1
  82. package/actions/standard/again/again.js +4 -3
  83. package/actions/standard/again/again.js.map +1 -1
  84. package/actions/standard/again/index.d.ts +2 -2
  85. package/actions/standard/again/index.d.ts.map +1 -1
  86. package/actions/standard/again/index.js +2 -2
  87. package/actions/standard/again/index.js.map +1 -1
  88. package/actions/standard/asking/asking.d.ts +25 -0
  89. package/actions/standard/asking/asking.d.ts.map +1 -0
  90. package/actions/standard/asking/asking.js +123 -0
  91. package/actions/standard/asking/asking.js.map +1 -0
  92. package/actions/standard/asking/index.d.ts +5 -0
  93. package/actions/standard/asking/index.d.ts.map +1 -0
  94. package/actions/standard/asking/index.js +10 -0
  95. package/actions/standard/asking/index.js.map +1 -0
  96. package/actions/standard/attacking/attacking-data.d.ts +2 -2
  97. package/actions/standard/attacking/attacking-data.d.ts.map +1 -1
  98. package/actions/standard/attacking/attacking-events.d.ts +1 -1
  99. package/actions/standard/attacking/attacking-events.d.ts.map +1 -1
  100. package/actions/standard/attacking/attacking-types.d.ts +3 -0
  101. package/actions/standard/attacking/attacking-types.d.ts.map +1 -1
  102. package/actions/standard/attacking/attacking-types.js.map +1 -1
  103. package/actions/standard/attacking/attacking.d.ts +16 -2
  104. package/actions/standard/attacking/attacking.d.ts.map +1 -1
  105. package/actions/standard/attacking/attacking.js +194 -127
  106. package/actions/standard/attacking/attacking.js.map +1 -1
  107. package/actions/standard/attacking/index.d.ts +2 -2
  108. package/actions/standard/attacking/index.d.ts.map +1 -1
  109. package/actions/standard/attacking/index.js +5 -4
  110. package/actions/standard/attacking/index.js.map +1 -1
  111. package/actions/standard/climbing/climbing.d.ts +12 -2
  112. package/actions/standard/climbing/climbing.d.ts.map +1 -1
  113. package/actions/standard/climbing/climbing.js +111 -29
  114. package/actions/standard/climbing/climbing.js.map +1 -1
  115. package/actions/standard/climbing/index.d.ts +2 -2
  116. package/actions/standard/climbing/index.d.ts.map +1 -1
  117. package/actions/standard/climbing/index.js +2 -2
  118. package/actions/standard/climbing/index.js.map +1 -1
  119. package/actions/standard/closing/closing-data.d.ts +1 -1
  120. package/actions/standard/closing/closing-data.d.ts.map +1 -1
  121. package/actions/standard/closing/closing-data.js +3 -3
  122. package/actions/standard/closing/closing-data.js.map +1 -1
  123. package/actions/standard/closing/closing-event-data.d.ts +1 -1
  124. package/actions/standard/closing/closing-event-data.d.ts.map +1 -1
  125. package/actions/standard/closing/closing.d.ts +8 -2
  126. package/actions/standard/closing/closing.d.ts.map +1 -1
  127. package/actions/standard/closing/closing.js +61 -78
  128. package/actions/standard/closing/closing.js.map +1 -1
  129. package/actions/standard/closing/index.d.ts +3 -3
  130. package/actions/standard/closing/index.d.ts.map +1 -1
  131. package/actions/standard/closing/index.js +2 -2
  132. package/actions/standard/closing/index.js.map +1 -1
  133. package/actions/standard/cutting/cutting-messages.d.ts +17 -0
  134. package/actions/standard/cutting/cutting-messages.d.ts.map +1 -0
  135. package/actions/standard/cutting/cutting-messages.js +22 -0
  136. package/actions/standard/cutting/cutting-messages.js.map +1 -0
  137. package/actions/standard/cutting/cutting.d.ts +35 -0
  138. package/actions/standard/cutting/cutting.d.ts.map +1 -0
  139. package/actions/standard/cutting/cutting.js +232 -0
  140. package/actions/standard/cutting/cutting.js.map +1 -0
  141. package/actions/standard/cutting/index.d.ts +7 -0
  142. package/actions/standard/cutting/index.d.ts.map +1 -0
  143. package/actions/standard/cutting/index.js +12 -0
  144. package/actions/standard/cutting/index.js.map +1 -0
  145. package/actions/standard/deadly-room-death/deadly-room-death.d.ts +16 -0
  146. package/actions/standard/deadly-room-death/deadly-room-death.d.ts.map +1 -0
  147. package/actions/standard/deadly-room-death/deadly-room-death.js +44 -0
  148. package/actions/standard/deadly-room-death/deadly-room-death.js.map +1 -0
  149. package/actions/standard/deadly-room-death/index.d.ts +2 -0
  150. package/actions/standard/deadly-room-death/index.d.ts.map +1 -0
  151. package/actions/standard/deadly-room-death/index.js +6 -0
  152. package/actions/standard/deadly-room-death/index.js.map +1 -0
  153. package/actions/standard/digging/digging-messages.d.ts +17 -0
  154. package/actions/standard/digging/digging-messages.d.ts.map +1 -0
  155. package/actions/standard/digging/digging-messages.js +22 -0
  156. package/actions/standard/digging/digging-messages.js.map +1 -0
  157. package/actions/standard/digging/digging.d.ts +35 -0
  158. package/actions/standard/digging/digging.d.ts.map +1 -0
  159. package/actions/standard/digging/digging.js +232 -0
  160. package/actions/standard/digging/digging.js.map +1 -0
  161. package/actions/standard/digging/index.d.ts +7 -0
  162. package/actions/standard/digging/index.d.ts.map +1 -0
  163. package/actions/standard/digging/index.js +12 -0
  164. package/actions/standard/digging/index.js.map +1 -0
  165. package/actions/standard/drinking/drinking.d.ts +11 -2
  166. package/actions/standard/drinking/drinking.d.ts.map +1 -1
  167. package/actions/standard/drinking/drinking.js +53 -15
  168. package/actions/standard/drinking/drinking.js.map +1 -1
  169. package/actions/standard/drinking/index.d.ts +2 -2
  170. package/actions/standard/drinking/index.d.ts.map +1 -1
  171. package/actions/standard/drinking/index.js +3 -3
  172. package/actions/standard/drinking/index.js.map +1 -1
  173. package/actions/standard/dropping/dropping-data.d.ts +2 -2
  174. package/actions/standard/dropping/dropping-data.d.ts.map +1 -1
  175. package/actions/standard/dropping/dropping-data.js +9 -9
  176. package/actions/standard/dropping/dropping-data.js.map +1 -1
  177. package/actions/standard/dropping/dropping-events.d.ts +1 -1
  178. package/actions/standard/dropping/dropping-events.d.ts.map +1 -1
  179. package/actions/standard/dropping/dropping-types.d.ts +10 -18
  180. package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
  181. package/actions/standard/dropping/dropping-types.js.map +1 -1
  182. package/actions/standard/dropping/dropping.d.ts +8 -2
  183. package/actions/standard/dropping/dropping.d.ts.map +1 -1
  184. package/actions/standard/dropping/dropping.js +135 -146
  185. package/actions/standard/dropping/dropping.js.map +1 -1
  186. package/actions/standard/dropping/index.d.ts +2 -2
  187. package/actions/standard/dropping/index.d.ts.map +1 -1
  188. package/actions/standard/dropping/index.js +2 -2
  189. package/actions/standard/dropping/index.js.map +1 -1
  190. package/actions/standard/eating/eating.d.ts +11 -2
  191. package/actions/standard/eating/eating.d.ts.map +1 -1
  192. package/actions/standard/eating/eating.js +53 -15
  193. package/actions/standard/eating/eating.js.map +1 -1
  194. package/actions/standard/eating/index.d.ts +2 -2
  195. package/actions/standard/eating/index.d.ts.map +1 -1
  196. package/actions/standard/eating/index.js +3 -3
  197. package/actions/standard/eating/index.js.map +1 -1
  198. package/actions/standard/entering/entering.d.ts +16 -7
  199. package/actions/standard/entering/entering.d.ts.map +1 -1
  200. package/actions/standard/entering/entering.js +65 -87
  201. package/actions/standard/entering/entering.js.map +1 -1
  202. package/actions/standard/entering/index.d.ts +2 -2
  203. package/actions/standard/entering/index.d.ts.map +1 -1
  204. package/actions/standard/entering/index.js +2 -2
  205. package/actions/standard/entering/index.js.map +1 -1
  206. package/actions/standard/examining/examining-data.d.ts +1 -1
  207. package/actions/standard/examining/examining-data.d.ts.map +1 -1
  208. package/actions/standard/examining/examining-data.js +72 -17
  209. package/actions/standard/examining/examining-data.js.map +1 -1
  210. package/actions/standard/examining/examining.d.ts +8 -2
  211. package/actions/standard/examining/examining.d.ts.map +1 -1
  212. package/actions/standard/examining/examining.js +54 -65
  213. package/actions/standard/examining/examining.js.map +1 -1
  214. package/actions/standard/examining/index.d.ts +2 -2
  215. package/actions/standard/examining/index.d.ts.map +1 -1
  216. package/actions/standard/examining/index.js +2 -2
  217. package/actions/standard/examining/index.js.map +1 -1
  218. package/actions/standard/exiting/exiting-messages.d.ts +2 -0
  219. package/actions/standard/exiting/exiting-messages.d.ts.map +1 -1
  220. package/actions/standard/exiting/exiting-messages.js +2 -0
  221. package/actions/standard/exiting/exiting-messages.js.map +1 -1
  222. package/actions/standard/exiting/exiting.d.ts +8 -2
  223. package/actions/standard/exiting/exiting.d.ts.map +1 -1
  224. package/actions/standard/exiting/exiting.js +88 -18
  225. package/actions/standard/exiting/exiting.js.map +1 -1
  226. package/actions/standard/exiting/index.d.ts +2 -2
  227. package/actions/standard/exiting/index.d.ts.map +1 -1
  228. package/actions/standard/exiting/index.js +2 -2
  229. package/actions/standard/exiting/index.js.map +1 -1
  230. package/actions/standard/giving/giving.d.ts +23 -2
  231. package/actions/standard/giving/giving.d.ts.map +1 -1
  232. package/actions/standard/giving/giving.js +100 -23
  233. package/actions/standard/giving/giving.js.map +1 -1
  234. package/actions/standard/giving/index.d.ts +2 -2
  235. package/actions/standard/giving/index.d.ts.map +1 -1
  236. package/actions/standard/giving/index.js +3 -3
  237. package/actions/standard/giving/index.js.map +1 -1
  238. package/actions/standard/going/going-data.d.ts +1 -1
  239. package/actions/standard/going/going-data.d.ts.map +1 -1
  240. package/actions/standard/going/going-data.js +6 -6
  241. package/actions/standard/going/going-data.js.map +1 -1
  242. package/actions/standard/going/going.d.ts +20 -18
  243. package/actions/standard/going/going.d.ts.map +1 -1
  244. package/actions/standard/going/going.js +185 -162
  245. package/actions/standard/going/going.js.map +1 -1
  246. package/actions/standard/going/index.d.ts +2 -2
  247. package/actions/standard/going/index.d.ts.map +1 -1
  248. package/actions/standard/going/index.js +5 -3
  249. package/actions/standard/going/index.js.map +1 -1
  250. package/actions/standard/help/help.d.ts +2 -2
  251. package/actions/standard/help/help.d.ts.map +1 -1
  252. package/actions/standard/help/help.js +4 -3
  253. package/actions/standard/help/help.js.map +1 -1
  254. package/actions/standard/help/index.d.ts +2 -2
  255. package/actions/standard/help/index.d.ts.map +1 -1
  256. package/actions/standard/help/index.js +2 -2
  257. package/actions/standard/help/index.js.map +1 -1
  258. package/actions/standard/hiding/concealment-break.js +19 -19
  259. package/actions/standard/hiding/concealment-break.js.map +1 -1
  260. package/actions/standard/hiding/hiding.d.ts +13 -4
  261. package/actions/standard/hiding/hiding.d.ts.map +1 -1
  262. package/actions/standard/hiding/hiding.js +59 -15
  263. package/actions/standard/hiding/hiding.js.map +1 -1
  264. package/actions/standard/hiding/index.d.ts +4 -4
  265. package/actions/standard/hiding/index.d.ts.map +1 -1
  266. package/actions/standard/hiding/index.js +6 -6
  267. package/actions/standard/hiding/index.js.map +1 -1
  268. package/actions/standard/hiding/revealing.d.ts +2 -2
  269. package/actions/standard/hiding/revealing.d.ts.map +1 -1
  270. package/actions/standard/hiding/revealing.js +4 -3
  271. package/actions/standard/hiding/revealing.js.map +1 -1
  272. package/actions/standard/index.d.ts +61 -56
  273. package/actions/standard/index.d.ts.map +1 -1
  274. package/actions/standard/index.js +181 -166
  275. package/actions/standard/index.js.map +1 -1
  276. package/actions/standard/inserting/index.d.ts +2 -2
  277. package/actions/standard/inserting/index.d.ts.map +1 -1
  278. package/actions/standard/inserting/index.js +3 -3
  279. package/actions/standard/inserting/index.js.map +1 -1
  280. package/actions/standard/inserting/inserting-data.d.ts +1 -1
  281. package/actions/standard/inserting/inserting-data.d.ts.map +1 -1
  282. package/actions/standard/inserting/inserting-data.js +3 -3
  283. package/actions/standard/inserting/inserting-data.js.map +1 -1
  284. package/actions/standard/inserting/inserting-events.d.ts +2 -2
  285. package/actions/standard/inserting/inserting-events.d.ts.map +1 -1
  286. package/actions/standard/inserting/inserting.d.ts +14 -2
  287. package/actions/standard/inserting/inserting.d.ts.map +1 -1
  288. package/actions/standard/inserting/inserting.js +96 -30
  289. package/actions/standard/inserting/inserting.js.map +1 -1
  290. package/actions/standard/inventory/index.d.ts +2 -2
  291. package/actions/standard/inventory/index.d.ts.map +1 -1
  292. package/actions/standard/inventory/index.js +3 -3
  293. package/actions/standard/inventory/index.js.map +1 -1
  294. package/actions/standard/inventory/inventory.d.ts +2 -2
  295. package/actions/standard/inventory/inventory.d.ts.map +1 -1
  296. package/actions/standard/inventory/inventory.js +20 -31
  297. package/actions/standard/inventory/inventory.js.map +1 -1
  298. package/actions/standard/listening/index.d.ts +2 -2
  299. package/actions/standard/listening/index.d.ts.map +1 -1
  300. package/actions/standard/listening/index.js +3 -3
  301. package/actions/standard/listening/index.js.map +1 -1
  302. package/actions/standard/listening/listening.d.ts +14 -3
  303. package/actions/standard/listening/listening.d.ts.map +1 -1
  304. package/actions/standard/listening/listening.js +53 -12
  305. package/actions/standard/listening/listening.js.map +1 -1
  306. package/actions/standard/lock-shared.d.ts +1 -1
  307. package/actions/standard/lock-shared.d.ts.map +1 -1
  308. package/actions/standard/lock-shared.js +10 -10
  309. package/actions/standard/lock-shared.js.map +1 -1
  310. package/actions/standard/locking/index.d.ts +2 -2
  311. package/actions/standard/locking/index.d.ts.map +1 -1
  312. package/actions/standard/locking/index.js +2 -2
  313. package/actions/standard/locking/index.js.map +1 -1
  314. package/actions/standard/locking/locking.d.ts +11 -2
  315. package/actions/standard/locking/locking.d.ts.map +1 -1
  316. package/actions/standard/locking/locking.js +86 -27
  317. package/actions/standard/locking/locking.js.map +1 -1
  318. package/actions/standard/looking/index.d.ts +4 -4
  319. package/actions/standard/looking/index.d.ts.map +1 -1
  320. package/actions/standard/looking/index.js +9 -9
  321. package/actions/standard/looking/index.js.map +1 -1
  322. package/actions/standard/looking/looking-data.d.ts +2 -2
  323. package/actions/standard/looking/looking-data.d.ts.map +1 -1
  324. package/actions/standard/looking/looking-data.js +15 -13
  325. package/actions/standard/looking/looking-data.js.map +1 -1
  326. package/actions/standard/looking/looking.d.ts +2 -2
  327. package/actions/standard/looking/looking.d.ts.map +1 -1
  328. package/actions/standard/looking/looking.js +15 -14
  329. package/actions/standard/looking/looking.js.map +1 -1
  330. package/actions/standard/looking/snippet-resolver.js +2 -2
  331. package/actions/standard/looking/snippet-resolver.js.map +1 -1
  332. package/actions/standard/lowering/index.d.ts +1 -1
  333. package/actions/standard/lowering/index.d.ts.map +1 -1
  334. package/actions/standard/lowering/index.js +2 -2
  335. package/actions/standard/lowering/index.js.map +1 -1
  336. package/actions/standard/lowering/lowering.d.ts +2 -2
  337. package/actions/standard/lowering/lowering.js +4 -4
  338. package/actions/standard/lowering/lowering.js.map +1 -1
  339. package/actions/standard/opening/index.d.ts +2 -2
  340. package/actions/standard/opening/index.d.ts.map +1 -1
  341. package/actions/standard/opening/index.js +2 -2
  342. package/actions/standard/opening/index.js.map +1 -1
  343. package/actions/standard/opening/opening-data.d.ts +2 -2
  344. package/actions/standard/opening/opening-data.d.ts.map +1 -1
  345. package/actions/standard/opening/opening-messages.d.ts +3 -0
  346. package/actions/standard/opening/opening-messages.d.ts.map +1 -1
  347. package/actions/standard/opening/opening-messages.js +4 -0
  348. package/actions/standard/opening/opening-messages.js.map +1 -1
  349. package/actions/standard/opening/opening.d.ts +10 -2
  350. package/actions/standard/opening/opening.d.ts.map +1 -1
  351. package/actions/standard/opening/opening.js +94 -82
  352. package/actions/standard/opening/opening.js.map +1 -1
  353. package/actions/standard/pulling/index.d.ts +2 -2
  354. package/actions/standard/pulling/index.d.ts.map +1 -1
  355. package/actions/standard/pulling/index.js +3 -3
  356. package/actions/standard/pulling/index.js.map +1 -1
  357. package/actions/standard/pulling/pulling.d.ts +11 -2
  358. package/actions/standard/pulling/pulling.d.ts.map +1 -1
  359. package/actions/standard/pulling/pulling.js +53 -15
  360. package/actions/standard/pulling/pulling.js.map +1 -1
  361. package/actions/standard/pushing/index.d.ts +2 -2
  362. package/actions/standard/pushing/index.d.ts.map +1 -1
  363. package/actions/standard/pushing/index.js +3 -3
  364. package/actions/standard/pushing/index.js.map +1 -1
  365. package/actions/standard/pushing/pushing-original.d.ts +2 -2
  366. package/actions/standard/pushing/pushing-original.d.ts.map +1 -1
  367. package/actions/standard/pushing/pushing-original.js +4 -4
  368. package/actions/standard/pushing/pushing-original.js.map +1 -1
  369. package/actions/standard/pushing/pushing-types.d.ts +3 -6
  370. package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
  371. package/actions/standard/pushing/pushing-types.js +3 -1
  372. package/actions/standard/pushing/pushing-types.js.map +1 -1
  373. package/actions/standard/pushing/pushing.d.ts +16 -7
  374. package/actions/standard/pushing/pushing.d.ts.map +1 -1
  375. package/actions/standard/pushing/pushing.js +70 -90
  376. package/actions/standard/pushing/pushing.js.map +1 -1
  377. package/actions/standard/putting/index.d.ts +2 -2
  378. package/actions/standard/putting/index.d.ts.map +1 -1
  379. package/actions/standard/putting/index.js +3 -3
  380. package/actions/standard/putting/index.js.map +1 -1
  381. package/actions/standard/putting/putting-data.d.ts +1 -1
  382. package/actions/standard/putting/putting-data.d.ts.map +1 -1
  383. package/actions/standard/putting/putting-data.js +3 -3
  384. package/actions/standard/putting/putting-data.js.map +1 -1
  385. package/actions/standard/putting/putting-types.d.ts +10 -21
  386. package/actions/standard/putting/putting-types.d.ts.map +1 -1
  387. package/actions/standard/putting/putting-types.js +0 -1
  388. package/actions/standard/putting/putting-types.js.map +1 -1
  389. package/actions/standard/putting/putting.d.ts +12 -2
  390. package/actions/standard/putting/putting.d.ts.map +1 -1
  391. package/actions/standard/putting/putting.js +191 -209
  392. package/actions/standard/putting/putting.js.map +1 -1
  393. package/actions/standard/quitting/index.d.ts +2 -2
  394. package/actions/standard/quitting/index.d.ts.map +1 -1
  395. package/actions/standard/quitting/index.js +3 -3
  396. package/actions/standard/quitting/index.js.map +1 -1
  397. package/actions/standard/quitting/quitting.d.ts +2 -2
  398. package/actions/standard/quitting/quitting.d.ts.map +1 -1
  399. package/actions/standard/quitting/quitting.js +4 -3
  400. package/actions/standard/quitting/quitting.js.map +1 -1
  401. package/actions/standard/raising/index.d.ts +1 -1
  402. package/actions/standard/raising/index.d.ts.map +1 -1
  403. package/actions/standard/raising/index.js +2 -2
  404. package/actions/standard/raising/index.js.map +1 -1
  405. package/actions/standard/raising/raising.d.ts +2 -2
  406. package/actions/standard/raising/raising.js +4 -4
  407. package/actions/standard/raising/raising.js.map +1 -1
  408. package/actions/standard/reading/index.d.ts +2 -2
  409. package/actions/standard/reading/index.d.ts.map +1 -1
  410. package/actions/standard/reading/index.js +2 -2
  411. package/actions/standard/reading/index.js.map +1 -1
  412. package/actions/standard/reading/reading.d.ts +7 -1
  413. package/actions/standard/reading/reading.d.ts.map +1 -1
  414. package/actions/standard/reading/reading.js +47 -63
  415. package/actions/standard/reading/reading.js.map +1 -1
  416. package/actions/standard/removing/index.d.ts +1 -1
  417. package/actions/standard/removing/index.d.ts.map +1 -1
  418. package/actions/standard/removing/index.js +2 -2
  419. package/actions/standard/removing/index.js.map +1 -1
  420. package/actions/standard/removing/removing-data.d.ts +1 -1
  421. package/actions/standard/removing/removing-data.d.ts.map +1 -1
  422. package/actions/standard/removing/removing-data.js +4 -4
  423. package/actions/standard/removing/removing-data.js.map +1 -1
  424. package/actions/standard/removing/removing-events.d.ts +2 -2
  425. package/actions/standard/removing/removing-events.d.ts.map +1 -1
  426. package/actions/standard/removing/removing-types.d.ts +10 -16
  427. package/actions/standard/removing/removing-types.d.ts.map +1 -1
  428. package/actions/standard/removing/removing-types.js.map +1 -1
  429. package/actions/standard/removing/removing.d.ts +15 -2
  430. package/actions/standard/removing/removing.d.ts.map +1 -1
  431. package/actions/standard/removing/removing.js +201 -142
  432. package/actions/standard/removing/removing.js.map +1 -1
  433. package/actions/standard/restarting/index.d.ts +2 -2
  434. package/actions/standard/restarting/index.d.ts.map +1 -1
  435. package/actions/standard/restarting/index.js +3 -3
  436. package/actions/standard/restarting/index.js.map +1 -1
  437. package/actions/standard/restarting/restarting.d.ts +2 -2
  438. package/actions/standard/restarting/restarting.d.ts.map +1 -1
  439. package/actions/standard/restarting/restarting.js +4 -3
  440. package/actions/standard/restarting/restarting.js.map +1 -1
  441. package/actions/standard/restoring/index.d.ts +2 -2
  442. package/actions/standard/restoring/index.d.ts.map +1 -1
  443. package/actions/standard/restoring/index.js +3 -3
  444. package/actions/standard/restoring/index.js.map +1 -1
  445. package/actions/standard/restoring/restoring.d.ts +2 -2
  446. package/actions/standard/restoring/restoring.d.ts.map +1 -1
  447. package/actions/standard/restoring/restoring.js +4 -3
  448. package/actions/standard/restoring/restoring.js.map +1 -1
  449. package/actions/standard/saving/index.d.ts +2 -2
  450. package/actions/standard/saving/index.d.ts.map +1 -1
  451. package/actions/standard/saving/index.js +3 -3
  452. package/actions/standard/saving/index.js.map +1 -1
  453. package/actions/standard/saving/saving.d.ts +2 -2
  454. package/actions/standard/saving/saving.d.ts.map +1 -1
  455. package/actions/standard/saving/saving.js +4 -3
  456. package/actions/standard/saving/saving.js.map +1 -1
  457. package/actions/standard/scoring/index.d.ts +2 -2
  458. package/actions/standard/scoring/index.d.ts.map +1 -1
  459. package/actions/standard/scoring/index.js +2 -2
  460. package/actions/standard/scoring/index.js.map +1 -1
  461. package/actions/standard/scoring/scoring.d.ts +2 -2
  462. package/actions/standard/scoring/scoring.d.ts.map +1 -1
  463. package/actions/standard/scoring/scoring.js +4 -3
  464. package/actions/standard/scoring/scoring.js.map +1 -1
  465. package/actions/standard/searching/index.d.ts +2 -2
  466. package/actions/standard/searching/index.d.ts.map +1 -1
  467. package/actions/standard/searching/index.js +2 -2
  468. package/actions/standard/searching/index.js.map +1 -1
  469. package/actions/standard/searching/searching.d.ts +12 -2
  470. package/actions/standard/searching/searching.d.ts.map +1 -1
  471. package/actions/standard/searching/searching.js +61 -23
  472. package/actions/standard/searching/searching.js.map +1 -1
  473. package/actions/standard/searching-helpers.d.ts +1 -1
  474. package/actions/standard/searching-helpers.d.ts.map +1 -1
  475. package/actions/standard/searching-helpers.js +35 -23
  476. package/actions/standard/searching-helpers.js.map +1 -1
  477. package/actions/standard/showing/index.d.ts +2 -2
  478. package/actions/standard/showing/index.d.ts.map +1 -1
  479. package/actions/standard/showing/index.js +3 -3
  480. package/actions/standard/showing/index.js.map +1 -1
  481. package/actions/standard/showing/showing.d.ts +16 -2
  482. package/actions/standard/showing/showing.d.ts.map +1 -1
  483. package/actions/standard/showing/showing.js +77 -17
  484. package/actions/standard/showing/showing.js.map +1 -1
  485. package/actions/standard/sleeping/index.d.ts +2 -2
  486. package/actions/standard/sleeping/index.d.ts.map +1 -1
  487. package/actions/standard/sleeping/index.js +2 -2
  488. package/actions/standard/sleeping/index.js.map +1 -1
  489. package/actions/standard/sleeping/sleeping.d.ts +2 -2
  490. package/actions/standard/sleeping/sleeping.d.ts.map +1 -1
  491. package/actions/standard/sleeping/sleeping.js +4 -3
  492. package/actions/standard/sleeping/sleeping.js.map +1 -1
  493. package/actions/standard/smelling/index.d.ts +2 -2
  494. package/actions/standard/smelling/index.d.ts.map +1 -1
  495. package/actions/standard/smelling/index.js +3 -3
  496. package/actions/standard/smelling/index.js.map +1 -1
  497. package/actions/standard/smelling/smelling.d.ts +12 -2
  498. package/actions/standard/smelling/smelling.d.ts.map +1 -1
  499. package/actions/standard/smelling/smelling.js +50 -11
  500. package/actions/standard/smelling/smelling.js.map +1 -1
  501. package/actions/standard/switching-shared.d.ts +1 -1
  502. package/actions/standard/switching-shared.d.ts.map +1 -1
  503. package/actions/standard/switching_off/index.d.ts +2 -2
  504. package/actions/standard/switching_off/index.d.ts.map +1 -1
  505. package/actions/standard/switching_off/index.js +2 -2
  506. package/actions/standard/switching_off/index.js.map +1 -1
  507. package/actions/standard/switching_off/switching_off.d.ts +13 -3
  508. package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
  509. package/actions/standard/switching_off/switching_off.js +61 -21
  510. package/actions/standard/switching_off/switching_off.js.map +1 -1
  511. package/actions/standard/switching_on/index.d.ts +2 -2
  512. package/actions/standard/switching_on/index.d.ts.map +1 -1
  513. package/actions/standard/switching_on/index.js +2 -2
  514. package/actions/standard/switching_on/index.js.map +1 -1
  515. package/actions/standard/switching_on/switching_on.d.ts +16 -7
  516. package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
  517. package/actions/standard/switching_on/switching_on.js +67 -79
  518. package/actions/standard/switching_on/switching_on.js.map +1 -1
  519. package/actions/standard/taking/index.d.ts +1 -1
  520. package/actions/standard/taking/index.d.ts.map +1 -1
  521. package/actions/standard/taking/index.js +2 -2
  522. package/actions/standard/taking/index.js.map +1 -1
  523. package/actions/standard/taking/taking-data.d.ts +1 -1
  524. package/actions/standard/taking/taking-data.d.ts.map +1 -1
  525. package/actions/standard/taking/taking-data.js +5 -5
  526. package/actions/standard/taking/taking-data.js.map +1 -1
  527. package/actions/standard/taking/taking-types.d.ts +14 -36
  528. package/actions/standard/taking/taking-types.d.ts.map +1 -1
  529. package/actions/standard/taking/taking-types.js.map +1 -1
  530. package/actions/standard/taking/taking.d.ts +13 -2
  531. package/actions/standard/taking/taking.d.ts.map +1 -1
  532. package/actions/standard/taking/taking.js +145 -197
  533. package/actions/standard/taking/taking.js.map +1 -1
  534. package/actions/standard/taking_off/index.d.ts +1 -1
  535. package/actions/standard/taking_off/index.d.ts.map +1 -1
  536. package/actions/standard/taking_off/index.js +2 -2
  537. package/actions/standard/taking_off/index.js.map +1 -1
  538. package/actions/standard/taking_off/taking-off.d.ts +8 -2
  539. package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
  540. package/actions/standard/taking_off/taking-off.js +74 -38
  541. package/actions/standard/taking_off/taking-off.js.map +1 -1
  542. package/actions/standard/talking/index.d.ts +2 -2
  543. package/actions/standard/talking/index.d.ts.map +1 -1
  544. package/actions/standard/talking/index.js +3 -3
  545. package/actions/standard/talking/index.js.map +1 -1
  546. package/actions/standard/talking/talking.d.ts +17 -2
  547. package/actions/standard/talking/talking.d.ts.map +1 -1
  548. package/actions/standard/talking/talking.js +57 -12
  549. package/actions/standard/talking/talking.js.map +1 -1
  550. package/actions/standard/telling/index.d.ts +5 -0
  551. package/actions/standard/telling/index.d.ts.map +1 -0
  552. package/actions/standard/telling/index.js +10 -0
  553. package/actions/standard/telling/index.js.map +1 -0
  554. package/actions/standard/telling/telling.d.ts +25 -0
  555. package/actions/standard/telling/telling.d.ts.map +1 -0
  556. package/actions/standard/telling/telling.js +123 -0
  557. package/actions/standard/telling/telling.js.map +1 -0
  558. package/actions/standard/throwing/index.d.ts +1 -1
  559. package/actions/standard/throwing/index.d.ts.map +1 -1
  560. package/actions/standard/throwing/index.js +2 -2
  561. package/actions/standard/throwing/index.js.map +1 -1
  562. package/actions/standard/throwing/throwing.d.ts +13 -2
  563. package/actions/standard/throwing/throwing.d.ts.map +1 -1
  564. package/actions/standard/throwing/throwing.js +92 -93
  565. package/actions/standard/throwing/throwing.js.map +1 -1
  566. package/actions/standard/tool-shared.d.ts +38 -0
  567. package/actions/standard/tool-shared.d.ts.map +1 -0
  568. package/actions/standard/tool-shared.js +74 -0
  569. package/actions/standard/tool-shared.js.map +1 -0
  570. package/actions/standard/touching/index.d.ts +2 -2
  571. package/actions/standard/touching/index.d.ts.map +1 -1
  572. package/actions/standard/touching/index.js +3 -3
  573. package/actions/standard/touching/index.js.map +1 -1
  574. package/actions/standard/touching/touching.d.ts +11 -2
  575. package/actions/standard/touching/touching.d.ts.map +1 -1
  576. package/actions/standard/touching/touching.js +50 -14
  577. package/actions/standard/touching/touching.js.map +1 -1
  578. package/actions/standard/turning/index.d.ts +7 -0
  579. package/actions/standard/turning/index.d.ts.map +1 -0
  580. package/actions/standard/turning/index.js +13 -0
  581. package/actions/standard/turning/index.js.map +1 -0
  582. package/actions/standard/turning/turning-messages.d.ts +14 -0
  583. package/actions/standard/turning/turning-messages.d.ts.map +1 -0
  584. package/actions/standard/turning/turning-messages.js +18 -0
  585. package/actions/standard/turning/turning-messages.js.map +1 -0
  586. package/actions/standard/turning/turning.d.ts +40 -0
  587. package/actions/standard/turning/turning.d.ts.map +1 -0
  588. package/actions/standard/turning/turning.js +197 -0
  589. package/actions/standard/turning/turning.js.map +1 -0
  590. package/actions/standard/undoing/index.d.ts +2 -2
  591. package/actions/standard/undoing/index.d.ts.map +1 -1
  592. package/actions/standard/undoing/index.js +3 -3
  593. package/actions/standard/undoing/index.js.map +1 -1
  594. package/actions/standard/undoing/undoing.d.ts +2 -2
  595. package/actions/standard/undoing/undoing.d.ts.map +1 -1
  596. package/actions/standard/undoing/undoing.js +2 -2
  597. package/actions/standard/undoing/undoing.js.map +1 -1
  598. package/actions/standard/unlocking/index.d.ts +2 -2
  599. package/actions/standard/unlocking/index.d.ts.map +1 -1
  600. package/actions/standard/unlocking/index.js +2 -2
  601. package/actions/standard/unlocking/index.js.map +1 -1
  602. package/actions/standard/unlocking/unlocking.d.ts +11 -2
  603. package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
  604. package/actions/standard/unlocking/unlocking.js +84 -25
  605. package/actions/standard/unlocking/unlocking.js.map +1 -1
  606. package/actions/standard/version/engine-version.d.ts +6 -0
  607. package/actions/standard/version/engine-version.d.ts.map +1 -0
  608. package/actions/standard/version/engine-version.js +9 -0
  609. package/actions/standard/version/engine-version.js.map +1 -0
  610. package/actions/standard/version/index.d.ts +2 -2
  611. package/actions/standard/version/index.d.ts.map +1 -1
  612. package/actions/standard/version/index.js +3 -3
  613. package/actions/standard/version/index.js.map +1 -1
  614. package/actions/standard/version/version.d.ts +4 -4
  615. package/actions/standard/version/version.d.ts.map +1 -1
  616. package/actions/standard/version/version.js +10 -6
  617. package/actions/standard/version/version.js.map +1 -1
  618. package/actions/standard/waiting/index.d.ts +2 -2
  619. package/actions/standard/waiting/index.d.ts.map +1 -1
  620. package/actions/standard/waiting/index.js +2 -2
  621. package/actions/standard/waiting/index.js.map +1 -1
  622. package/actions/standard/waiting/waiting.d.ts +2 -2
  623. package/actions/standard/waiting/waiting.d.ts.map +1 -1
  624. package/actions/standard/waiting/waiting.js +4 -3
  625. package/actions/standard/waiting/waiting.js.map +1 -1
  626. package/actions/standard/wearable-shared.d.ts +1 -1
  627. package/actions/standard/wearable-shared.d.ts.map +1 -1
  628. package/actions/standard/wearable-shared.js +2 -2
  629. package/actions/standard/wearable-shared.js.map +1 -1
  630. package/actions/standard/wearing/index.d.ts +1 -1
  631. package/actions/standard/wearing/index.d.ts.map +1 -1
  632. package/actions/standard/wearing/index.js +2 -2
  633. package/actions/standard/wearing/index.js.map +1 -1
  634. package/actions/standard/wearing/wearing.d.ts +13 -3
  635. package/actions/standard/wearing/wearing.d.ts.map +1 -1
  636. package/actions/standard/wearing/wearing.js +73 -28
  637. package/actions/standard/wearing/wearing.js.map +1 -1
  638. package/capabilities/index.d.ts +6 -6
  639. package/capabilities/index.d.ts.map +1 -1
  640. package/capabilities/index.js +21 -21
  641. package/capabilities/index.js.map +1 -1
  642. package/chains/index.d.ts +2 -2
  643. package/chains/index.d.ts.map +1 -1
  644. package/chains/index.js +7 -7
  645. package/chains/index.js.map +1 -1
  646. package/channels/index.d.ts +5 -5
  647. package/channels/index.d.ts.map +1 -1
  648. package/channels/index.js +43 -43
  649. package/channels/index.js.map +1 -1
  650. package/channels/registry.js +6 -6
  651. package/channels/registry.js.map +1 -1
  652. package/channels/standard.d.ts +13 -10
  653. package/channels/standard.d.ts.map +1 -1
  654. package/channels/standard.js +21 -17
  655. package/channels/standard.js.map +1 -1
  656. package/combat/index.d.ts +1 -1
  657. package/combat/index.d.ts.map +1 -1
  658. package/combat/index.js +2 -2
  659. package/combat/index.js.map +1 -1
  660. package/death/deadly-room-transformer.d.ts +37 -0
  661. package/death/deadly-room-transformer.d.ts.map +1 -0
  662. package/death/deadly-room-transformer.js +79 -0
  663. package/death/deadly-room-transformer.js.map +1 -0
  664. package/death/index.d.ts +18 -0
  665. package/death/index.d.ts.map +1 -0
  666. package/death/index.js +28 -0
  667. package/death/index.js.map +1 -0
  668. package/death/kill-player.d.ts +49 -0
  669. package/death/kill-player.d.ts.map +1 -0
  670. package/death/kill-player.js +55 -0
  671. package/death/kill-player.js.map +1 -0
  672. package/death/player-death-events.d.ts +40 -0
  673. package/death/player-death-events.d.ts.map +1 -0
  674. package/death/player-death-events.js +27 -0
  675. package/death/player-death-events.js.map +1 -0
  676. package/death/probabilistic-death.d.ts +23 -0
  677. package/death/probabilistic-death.d.ts.map +1 -0
  678. package/death/probabilistic-death.js +27 -0
  679. package/death/probabilistic-death.js.map +1 -0
  680. package/events/event-registry.d.ts +34 -34
  681. package/events/event-registry.d.ts.map +1 -1
  682. package/events/index.d.ts +4 -4
  683. package/events/index.d.ts.map +1 -1
  684. package/events/index.js +4 -4
  685. package/events/index.js.map +1 -1
  686. package/helpers/index.d.ts +1 -1
  687. package/helpers/index.d.ts.map +1 -1
  688. package/helpers/index.js +1 -1
  689. package/helpers/index.js.map +1 -1
  690. package/helpers/multi-object-handler.d.ts +1 -1
  691. package/helpers/multi-object-handler.d.ts.map +1 -1
  692. package/helpers/multi-object-handler.js +8 -5
  693. package/helpers/multi-object-handler.js.map +1 -1
  694. package/index.d.ts +16 -15
  695. package/index.d.ts.map +1 -1
  696. package/index.js +16 -15
  697. package/index.js.map +1 -1
  698. package/inference/implicit-inference.d.ts +1 -1
  699. package/inference/implicit-inference.d.ts.map +1 -1
  700. package/inference/index.d.ts +1 -1
  701. package/inference/index.d.ts.map +1 -1
  702. package/inference/index.js +4 -4
  703. package/inference/index.js.map +1 -1
  704. package/npc/behaviors.d.ts +1 -1
  705. package/npc/behaviors.d.ts.map +1 -1
  706. package/npc/behaviors.js +20 -19
  707. package/npc/behaviors.js.map +1 -1
  708. package/npc/character-observer.js +6 -6
  709. package/npc/character-observer.js.map +1 -1
  710. package/npc/index.d.ts +7 -7
  711. package/npc/index.d.ts.map +1 -1
  712. package/npc/index.js +23 -23
  713. package/npc/index.js.map +1 -1
  714. package/npc/lucidity-decay.js +2 -2
  715. package/npc/lucidity-decay.js.map +1 -1
  716. package/npc/npc-service.d.ts +9 -1
  717. package/npc/npc-service.d.ts.map +1 -1
  718. package/npc/npc-service.js +33 -32
  719. package/npc/npc-service.js.map +1 -1
  720. package/package.json +7 -7
  721. package/query-handlers/index.d.ts +2 -2
  722. package/query-handlers/index.d.ts.map +1 -1
  723. package/query-handlers/index.js +3 -3
  724. package/query-handlers/index.js.map +1 -1
  725. package/scope/index.d.ts +3 -3
  726. package/scope/index.d.ts.map +1 -1
  727. package/scope/index.js +3 -3
  728. package/scope/index.js.map +1 -1
  729. package/scope/scope-resolver.d.ts +1 -1
  730. package/scope/scope-resolver.d.ts.map +1 -1
  731. package/scope/scope-resolver.js +13 -15
  732. package/scope/scope-resolver.js.map +1 -1
  733. package/scope/witness-system.d.ts +1 -1
  734. package/scope/witness-system.d.ts.map +1 -1
  735. package/scope/witness-system.js +16 -16
  736. package/scope/witness-system.js.map +1 -1
  737. package/services/index.d.ts +1 -1
  738. package/services/index.d.ts.map +1 -1
  739. package/services/index.js +2 -2
  740. package/services/index.js.map +1 -1
  741. package/utils/index.d.ts +1 -1
  742. package/utils/index.d.ts.map +1 -1
  743. package/utils/index.js +2 -2
  744. package/utils/index.js.map +1 -1
  745. package/utils/noun-phrase.d.ts.map +1 -1
  746. package/utils/noun-phrase.js +5 -0
  747. package/utils/noun-phrase.js.map +1 -1
  748. package/validation/command-validator.d.ts +68 -16
  749. package/validation/command-validator.d.ts.map +1 -1
  750. package/validation/command-validator.js +275 -211
  751. package/validation/command-validator.js.map +1 -1
  752. package/validation/index.d.ts +3 -3
  753. package/validation/index.d.ts.map +1 -1
  754. package/validation/index.js +2 -2
  755. package/validation/index.js.map +1 -1
  756. package/validation/types.d.ts +1 -1
  757. package/validation/types.d.ts.map +1 -1
  758. package/vocabulary/index.d.ts +1 -1
  759. package/vocabulary/index.d.ts.map +1 -1
  760. package/vocabulary/index.js +1 -1
  761. package/vocabulary/index.js.map +1 -1
  762. package/vocabulary/standard-english.d.ts +1 -1
  763. package/vocabulary/standard-english.d.ts.map +1 -1
  764. package/vocabulary/standard-english.js +5 -5
  765. package/vocabulary/standard-english.js.map +1 -1
@@ -17,17 +17,58 @@
17
17
  * - "put X and Y in box" - puts multiple specified items
18
18
  */
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.puttingAction = void 0;
21
- const types_1 = require("../../../scope/types");
20
+ exports.puttingAction = exports.puttingLifecycle = void 0;
21
+ const types_js_1 = require("../../../scope/types.js");
22
22
  const world_model_1 = require("@sharpee/world-model");
23
- const snapshot_utils_1 = require("../../base/snapshot-utils");
24
- const constants_1 = require("../../constants");
25
- const putting_messages_1 = require("./putting-messages");
23
+ const snapshot_utils_js_1 = require("../../base/snapshot-utils.js");
24
+ const constants_js_1 = require("../../constants.js");
25
+ const putting_messages_js_1 = require("./putting-messages.js");
26
+ const index_js_1 = require("../../lifecycle/index.js");
26
27
  // Import types
27
- const putting_types_1 = require("./putting-types");
28
+ const putting_types_js_1 = require("./putting-types.js");
28
29
  // Import multi-object helpers
29
- const multi_object_handler_1 = require("../../../helpers/multi-object-handler");
30
- const utils_1 = require("../../../utils");
30
+ const multi_object_handler_js_1 = require("../../../helpers/multi-object-handler.js");
31
+ const index_js_2 = require("../../../utils/index.js");
32
+ /**
33
+ * Interceptor surface (ADR-228): BOTH the item and the container/supporter
34
+ * are consulted (D3-B order: direct object first). Each side's sharedData
35
+ * is seeded with the other's identity (D3 sub-ruling — symmetric context);
36
+ * in a multi-object command the container's seed carries the item
37
+ * currently being processed, which is what makes the trophy-case
38
+ * postExecute award score once per deposited treasure (D4).
39
+ */
40
+ exports.puttingLifecycle = {
41
+ actionId: constants_js_1.IFActions.PUTTING,
42
+ slots: [
43
+ {
44
+ id: 'item',
45
+ actionIds: [constants_js_1.IFActions.PUTTING],
46
+ resolve: (ctx) => ctx.command.directObject?.entity,
47
+ seedData: (ctx, entity) => ({
48
+ itemId: entity.id,
49
+ itemName: entity.name,
50
+ targetId: ctx.command.indirectObject?.entity?.id,
51
+ targetName: ctx.command.indirectObject?.entity?.name,
52
+ preposition: ctx.command.parsed.structure.preposition?.text
53
+ })
54
+ },
55
+ {
56
+ id: 'container',
57
+ actionIds: [constants_js_1.IFActions.PUTTING],
58
+ resolve: (ctx) => ctx.command.indirectObject?.entity,
59
+ seedData: (ctx, entity, multiObjectItem) => {
60
+ const item = multiObjectItem ?? ctx.command.directObject?.entity;
61
+ return {
62
+ itemId: item?.id,
63
+ itemName: item?.name,
64
+ targetId: entity.id,
65
+ targetName: entity.name,
66
+ preposition: ctx.command.parsed.structure.preposition?.text
67
+ };
68
+ }
69
+ }
70
+ ]
71
+ };
31
72
  // ============================================================================
32
73
  // Helper Functions (standalone to avoid `this` issues in object literal)
33
74
  // ============================================================================
@@ -37,6 +78,11 @@ const utils_1 = require("../../../utils");
37
78
  function determineTargetPreposition(preposition, target) {
38
79
  const isContainer = target.has(world_model_1.TraitType.CONTAINER);
39
80
  const isSupporter = target.has(world_model_1.TraitType.SUPPORTER);
81
+ // `move X to Y` (ADR-230 D4, Phase 1 move ruling): `to` names no
82
+ // in/on choice — resolve by destination type like the bare form.
83
+ if (preposition === 'to') {
84
+ preposition = undefined;
85
+ }
40
86
  if (preposition) {
41
87
  // User specified a preposition
42
88
  if ((preposition === 'in' || preposition === 'into' || preposition === 'inside') && isContainer) {
@@ -50,15 +96,15 @@ function determineTargetPreposition(preposition, target) {
50
96
  if (preposition === 'in' || preposition === 'into' || preposition === 'inside') {
51
97
  return {
52
98
  targetPreposition: 'in',
53
- error: putting_messages_1.PuttingMessages.NOT_CONTAINER,
54
- params: { destination: (0, utils_1.nounPhraseFor)(target) }
99
+ error: putting_messages_js_1.PuttingMessages.NOT_CONTAINER,
100
+ params: { destination: (0, index_js_2.nounPhraseFor)(target) }
55
101
  };
56
102
  }
57
103
  else {
58
104
  return {
59
105
  targetPreposition: 'on',
60
- error: putting_messages_1.PuttingMessages.NOT_SURFACE,
61
- params: { destination: (0, utils_1.nounPhraseFor)(target) }
106
+ error: putting_messages_js_1.PuttingMessages.NOT_SURFACE,
107
+ params: { destination: (0, index_js_2.nounPhraseFor)(target) }
62
108
  };
63
109
  }
64
110
  }
@@ -74,8 +120,8 @@ function determineTargetPreposition(preposition, target) {
74
120
  else {
75
121
  return {
76
122
  targetPreposition: 'in',
77
- error: putting_messages_1.PuttingMessages.NOT_CONTAINER,
78
- params: { destination: (0, utils_1.nounPhraseFor)(target) }
123
+ error: putting_messages_js_1.PuttingMessages.NOT_CONTAINER,
124
+ params: { destination: (0, index_js_2.nounPhraseFor)(target) }
79
125
  };
80
126
  }
81
127
  }
@@ -86,11 +132,11 @@ function determineTargetPreposition(preposition, target) {
86
132
  function validateSingleEntity(context, item, target, preposition) {
87
133
  // Prevent putting something inside/on itself
88
134
  if (item.id === target.id) {
89
- const messageId = preposition === 'on' ? putting_messages_1.PuttingMessages.CANT_PUT_ON_ITSELF : putting_messages_1.PuttingMessages.CANT_PUT_IN_ITSELF;
135
+ const messageId = preposition === 'on' ? putting_messages_js_1.PuttingMessages.CANT_PUT_ON_ITSELF : putting_messages_js_1.PuttingMessages.CANT_PUT_IN_ITSELF;
90
136
  return {
91
137
  valid: false,
92
138
  error: messageId,
93
- params: { item: (0, utils_1.nounPhraseFor)(item) }
139
+ params: { item: (0, index_js_2.nounPhraseFor)(item) }
94
140
  };
95
141
  }
96
142
  // Check if item is already in/on target
@@ -98,11 +144,11 @@ function validateSingleEntity(context, item, target, preposition) {
98
144
  const relation = target.has(world_model_1.TraitType.SUPPORTER) ? 'on' : 'in';
99
145
  return {
100
146
  valid: false,
101
- error: putting_messages_1.PuttingMessages.ALREADY_THERE,
147
+ error: putting_messages_js_1.PuttingMessages.ALREADY_THERE,
102
148
  params: {
103
- item: (0, utils_1.nounPhraseFor)(item),
149
+ item: (0, index_js_2.nounPhraseFor)(item),
104
150
  relation: relation,
105
- destination: (0, utils_1.nounPhraseFor)(target)
151
+ destination: (0, index_js_2.nounPhraseFor)(target)
106
152
  }
107
153
  };
108
154
  }
@@ -117,16 +163,16 @@ function validateSingleEntity(context, item, target, preposition) {
117
163
  if (target.has(world_model_1.TraitType.OPENABLE) && !world_model_1.OpenableBehavior.isOpen(target)) {
118
164
  return {
119
165
  valid: false,
120
- error: putting_messages_1.PuttingMessages.CONTAINER_CLOSED,
121
- params: { container: (0, utils_1.nounPhraseFor)(target) }
166
+ error: putting_messages_js_1.PuttingMessages.CONTAINER_CLOSED,
167
+ params: { container: (0, index_js_2.nounPhraseFor)(target) }
122
168
  };
123
169
  }
124
170
  // Check capacity
125
171
  if (!world_model_1.ContainerBehavior.canAccept(target, item, context.world)) {
126
172
  return {
127
173
  valid: false,
128
- error: putting_messages_1.PuttingMessages.NO_ROOM,
129
- params: { container: (0, utils_1.nounPhraseFor)(target) }
174
+ error: putting_messages_js_1.PuttingMessages.NO_ROOM,
175
+ params: { container: (0, index_js_2.nounPhraseFor)(target) }
130
176
  };
131
177
  }
132
178
  }
@@ -135,63 +181,28 @@ function validateSingleEntity(context, item, target, preposition) {
135
181
  if (!world_model_1.SupporterBehavior.canAccept(target, item, context.world)) {
136
182
  return {
137
183
  valid: false,
138
- error: putting_messages_1.PuttingMessages.NO_SPACE,
139
- params: { surface: (0, utils_1.nounPhraseFor)(target) }
184
+ error: putting_messages_js_1.PuttingMessages.NO_SPACE,
185
+ params: { surface: (0, index_js_2.nounPhraseFor)(target) }
140
186
  };
141
187
  }
142
188
  }
143
189
  return { valid: true, targetPreposition };
144
190
  }
145
191
  /**
146
- * Validate a multi-object command (put all in box, put X and Y on table)
147
- */
148
- function validateMultiObject(context) {
149
- const target = context.command.indirectObject?.entity;
150
- const preposition = context.command.parsed.structure.preposition?.text;
151
- // Must have a destination
152
- if (!target) {
153
- return { valid: false, error: putting_messages_1.PuttingMessages.NO_DESTINATION };
154
- }
155
- // For putting, scope is 'carried' - only put things we're holding
156
- const items = (0, multi_object_handler_1.expandMultiObject)(context, { scope: 'carried' });
157
- if (items.length === 0) {
158
- return { valid: false, error: putting_messages_1.PuttingMessages.NOTHING_TO_PUT };
159
- }
160
- // Validate each entity, store results
161
- const results = items.map(item => {
162
- const validation = validateSingleEntity(context, item.entity, target, preposition);
163
- return {
164
- entity: item.entity,
165
- success: validation.valid,
166
- error: validation.valid ? undefined : validation.error,
167
- errorParams: validation.valid ? undefined : validation.params,
168
- targetPreposition: validation.targetPreposition
169
- };
170
- });
171
- // Store results for execute/report phases
172
- const sharedData = (0, putting_types_1.getPuttingSharedData)(context);
173
- sharedData.multiObjectResults = results;
174
- // Valid if at least one can be put
175
- const anySuccess = results.some(r => r.success);
176
- if (!anySuccess) {
177
- // All failed - return the first error
178
- return { valid: false, error: results[0].error, params: results[0].errorParams };
179
- }
180
- return { valid: true };
181
- }
182
- /**
183
- * Execute putting a single entity
192
+ * Execute putting a single entity. Mutation results are written into
193
+ * `scratch` — the single-object sharedData or the item's multi-object
194
+ * itemData (ADR-228 D4).
184
195
  */
185
- function executeSingleEntity(context, item, target, result, targetPreposition) {
186
- result.targetPreposition = targetPreposition;
196
+ function executeSingleEntity(context, item, target, scratch, targetPreposition) {
197
+ scratch.targetPreposition = targetPreposition;
187
198
  // Delegate to appropriate behavior
188
199
  if (targetPreposition === 'in') {
189
200
  const putResult = world_model_1.ContainerBehavior.addItem(target, item, context.world);
190
- result.putResult = putResult;
201
+ scratch.putResult = putResult;
191
202
  }
192
203
  else {
193
204
  const putResult = world_model_1.SupporterBehavior.addItem(target, item, context.world);
194
- result.putResult = putResult;
205
+ scratch.putResult = putResult;
195
206
  }
196
207
  // Actually move the item to the target
197
208
  context.world.moveEntity(item.id, target.id);
@@ -201,13 +212,13 @@ function executeSingleEntity(context, item, target, result, targetPreposition) {
201
212
  *
202
213
  * Uses simplified event pattern (ADR-097): domain event carries messageId directly.
203
214
  */
204
- function reportSingleSuccess(context, item, target, result, events) {
205
- const targetPreposition = result.targetPreposition;
215
+ function reportSingleSuccess(context, item, target, scratch, events) {
216
+ const targetPreposition = scratch.targetPreposition;
206
217
  if (targetPreposition === 'in') {
207
- const params = { item: (0, utils_1.nounPhraseFor)(item), container: (0, utils_1.nounPhraseFor)(target) };
218
+ const params = { item: (0, index_js_2.nounPhraseFor)(item), container: (0, index_js_2.nounPhraseFor)(target) };
208
219
  events.push(context.event('if.event.put_in', {
209
220
  // Rendering data (messageId + params for text-service)
210
- messageId: `${context.action.id}.${putting_messages_1.PuttingMessages.PUT_IN}`,
221
+ messageId: `${context.action.id}.${putting_messages_js_1.PuttingMessages.PUT_IN}`,
211
222
  params,
212
223
  // Domain data (for event sourcing / handlers)
213
224
  itemId: item.id,
@@ -216,15 +227,15 @@ function reportSingleSuccess(context, item, target, result, events) {
216
227
  targetName: target.name,
217
228
  actorId: context.player.id,
218
229
  preposition: 'in',
219
- itemSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(item, context.world, true),
220
- targetSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(target, context.world, true)
230
+ itemSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(item, context.world, true),
231
+ targetSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(target, context.world, true)
221
232
  }));
222
233
  }
223
234
  else {
224
- const params = { item: (0, utils_1.nounPhraseFor)(item), surface: (0, utils_1.nounPhraseFor)(target) };
235
+ const params = { item: (0, index_js_2.nounPhraseFor)(item), surface: (0, index_js_2.nounPhraseFor)(target) };
225
236
  events.push(context.event('if.event.put_on', {
226
237
  // Rendering data (messageId + params for text-service)
227
- messageId: `${context.action.id}.${putting_messages_1.PuttingMessages.PUT_ON}`,
238
+ messageId: `${context.action.id}.${putting_messages_js_1.PuttingMessages.PUT_ON}`,
228
239
  params,
229
240
  // Domain data (for event sourcing / handlers)
230
241
  itemId: item.id,
@@ -233,8 +244,8 @@ function reportSingleSuccess(context, item, target, result, events) {
233
244
  targetName: target.name,
234
245
  actorId: context.player.id,
235
246
  preposition: 'on',
236
- itemSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(item, context.world, true),
237
- targetSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(target, context.world, true)
247
+ itemSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(item, context.world, true),
248
+ targetSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(target, context.world, true)
238
249
  }));
239
250
  }
240
251
  }
@@ -243,28 +254,28 @@ function reportSingleSuccess(context, item, target, result, events) {
243
254
  *
244
255
  * Uses simplified event pattern (ADR-097): domain event carries messageId directly.
245
256
  */
246
- function reportSingleBlocked(context, item, target, error, errorParams, events) {
257
+ function reportSingleBlocked(context, item, target, result, events) {
247
258
  events.push(context.event('if.event.put_blocked', {
248
259
  // Rendering data — EntityInfo for the formatter chain (ADR-158)
249
- messageId: `${context.action.id}.${error}`,
250
- params: { ...errorParams, item: (0, utils_1.nounPhraseFor)(item), destination: (0, utils_1.nounPhraseFor)(target) },
260
+ messageId: (0, index_js_1.blockedMessageId)(context, result),
261
+ params: { ...result.params, item: (0, index_js_2.nounPhraseFor)(item), destination: (0, index_js_2.nounPhraseFor)(target) },
251
262
  // Domain data — strings for handlers
252
263
  itemId: item.id,
253
264
  itemName: item.name,
254
265
  targetId: target.id,
255
266
  targetName: target.name,
256
- reason: error
267
+ reason: result.error
257
268
  }));
258
269
  }
259
270
  // ============================================================================
260
271
  // Action Definition
261
272
  // ============================================================================
262
273
  exports.puttingAction = {
263
- id: constants_1.IFActions.PUTTING,
274
+ id: constants_js_1.IFActions.PUTTING,
264
275
  // Default scope requirements for this action's slots
265
276
  defaultScope: {
266
- item: types_1.ScopeLevel.REACHABLE, // REACHABLE allows implicit take
267
- target: types_1.ScopeLevel.REACHABLE
277
+ item: types_js_1.ScopeLevel.REACHABLE, // REACHABLE allows implicit take
278
+ target: types_js_1.ScopeLevel.REACHABLE
268
279
  },
269
280
  requiredMessages: [
270
281
  'no_target',
@@ -286,59 +297,54 @@ exports.puttingAction = {
286
297
  metadata: {
287
298
  requiresDirectObject: true,
288
299
  requiresIndirectObject: true,
289
- directObjectScope: types_1.ScopeLevel.REACHABLE, // REACHABLE allows implicit take
290
- indirectObjectScope: types_1.ScopeLevel.REACHABLE
300
+ directObjectScope: types_js_1.ScopeLevel.REACHABLE, // REACHABLE allows implicit take
301
+ indirectObjectScope: types_js_1.ScopeLevel.REACHABLE
291
302
  },
292
303
  validate(context) {
293
- // Check for multi-object command
294
- if ((0, multi_object_handler_1.isMultiObjectCommand)(context)) {
295
- return validateMultiObject(context);
304
+ const target = context.command.indirectObject?.entity;
305
+ const preposition = context.command.parsed.structure.preposition?.text;
306
+ // Check for multi-object command — full per-item lifecycle (ADR-228 D4).
307
+ // This is what fixes the live trophy-case bug: every deposited item
308
+ // now runs the container's hooks.
309
+ if ((0, multi_object_handler_js_1.isMultiObjectCommand)(context)) {
310
+ // Must have a destination
311
+ if (!target) {
312
+ return { valid: false, error: putting_messages_js_1.PuttingMessages.NO_DESTINATION };
313
+ }
314
+ // For putting, scope is 'carried' - only put things we're holding
315
+ const items = (0, multi_object_handler_js_1.expandMultiObject)(context, { scope: 'carried' }).map(i => i.entity);
316
+ if (items.length === 0) {
317
+ return { valid: false, error: putting_messages_js_1.PuttingMessages.NOTHING_TO_PUT };
318
+ }
319
+ const results = (0, index_js_1.runMultiObjectValidate)(context, exports.puttingLifecycle, 'item', items, (ctx, item, itemData) => {
320
+ const validation = validateSingleEntity(ctx, item, target, preposition);
321
+ itemData.targetPreposition = validation.targetPreposition;
322
+ return validation;
323
+ });
324
+ // Valid if at least one can be put; all-fail returns the first error
325
+ if (!results.some(r => r.success)) {
326
+ return { valid: false, error: results[0].error, errorQualified: results[0].errorQualified, params: results[0].errorParams };
327
+ }
328
+ return { valid: true };
296
329
  }
297
330
  // Single object validation
298
- const actor = context.player;
299
331
  const item = context.command.directObject?.entity;
300
- const target = context.command.indirectObject?.entity;
301
- const preposition = context.command.parsed.structure.preposition?.text;
302
- const sharedData = (0, putting_types_1.getPuttingSharedData)(context);
303
332
  // Validate we have an item
304
333
  if (!item) {
305
- return { valid: false, error: putting_messages_1.PuttingMessages.NO_TARGET };
334
+ return { valid: false, error: putting_messages_js_1.PuttingMessages.NO_TARGET };
306
335
  }
307
336
  // Validate we have a destination
308
337
  if (!target) {
309
338
  return {
310
339
  valid: false,
311
- error: putting_messages_1.PuttingMessages.NO_DESTINATION,
312
- params: { item: (0, utils_1.nounPhraseFor)(item) }
340
+ error: putting_messages_js_1.PuttingMessages.NO_DESTINATION,
341
+ params: { item: (0, index_js_2.nounPhraseFor)(item) }
313
342
  };
314
343
  }
315
- // Check for interceptor on the target entity (ADR-118)
316
- // Interceptors are on the container/supporter receiving the item
317
- const interceptorResult = context.world.getInterceptorForAction(target, constants_1.IFActions.PUTTING);
318
- const interceptor = interceptorResult?.interceptor;
319
- const interceptorData = {
320
- // Pass item info to interceptor so it knows what's being put
321
- itemId: item.id,
322
- itemName: item.name,
323
- targetId: target.id,
324
- targetName: target.name,
325
- preposition: preposition
326
- };
327
- // Store for later phases
328
- sharedData.interceptor = interceptor;
329
- sharedData.interceptorData = interceptorData;
330
- // === PRE-VALIDATE HOOK ===
331
- // Called before standard validation - can block early
332
- if (interceptor?.preValidate) {
333
- const result = interceptor.preValidate(target, context.world, actor.id, interceptorData);
334
- if (result !== null) {
335
- return {
336
- valid: result.valid,
337
- error: result.error,
338
- params: result.params
339
- };
340
- }
341
- }
344
+ const state = (0, index_js_1.resolveLifecycle)(context, exports.puttingLifecycle);
345
+ const preVeto = (0, index_js_1.runPreValidate)(context, state);
346
+ if (preVeto)
347
+ return preVeto;
342
348
  // Item must be carried (or implicitly takeable)
343
349
  // This enables "put apple in box" when apple is on the ground
344
350
  const carryCheck = context.requireCarriedOrImplicitTake(item);
@@ -350,36 +356,25 @@ exports.puttingAction = {
350
356
  if (!standardResult.valid) {
351
357
  return standardResult;
352
358
  }
353
- // === POST-VALIDATE HOOK ===
354
- // Called after standard validation passes - can add entity-specific conditions
355
- if (interceptor?.postValidate) {
356
- const result = interceptor.postValidate(target, context.world, actor.id, interceptorData);
357
- if (result !== null) {
358
- return {
359
- valid: result.valid,
360
- error: result.error,
361
- params: result.params
362
- };
363
- }
364
- }
359
+ // Canonical placement (ADR-228): postValidate runs after ALL standard validation
360
+ const postVeto = (0, index_js_1.runPostValidate)(context, state);
361
+ if (postVeto)
362
+ return postVeto;
365
363
  return standardResult;
366
364
  },
367
365
  execute(context) {
368
- const actor = context.player;
369
- const sharedData = (0, putting_types_1.getPuttingSharedData)(context);
366
+ const sharedData = (0, putting_types_js_1.getPuttingSharedData)(context);
370
367
  const target = context.command.indirectObject.entity;
371
368
  const preposition = context.command.parsed.structure.preposition?.text;
372
- // Check for multi-object command
373
- if (sharedData.multiObjectResults) {
369
+ // Multi-object command: per-item execute + hooks (D4 — the container's
370
+ // postExecute fires once per deposited item)
371
+ const multi = (0, index_js_1.getMultiObjectLifecycle)(context);
372
+ if (multi) {
374
373
  // Determine target preposition once for the batch
375
374
  const { targetPreposition } = determineTargetPreposition(preposition, target);
376
- // Execute for each successful validation
377
- for (const result of sharedData.multiObjectResults) {
378
- if (result.success) {
379
- executeSingleEntity(context, result.entity, target, result, targetPreposition);
380
- }
381
- }
382
- // Note: Multi-object commands don't support interceptors currently
375
+ (0, index_js_1.runMultiObjectExecute)(context, multi, (ctx, item, itemData) => {
376
+ executeSingleEntity(ctx, item, target, itemData, targetPreposition);
377
+ });
383
378
  return;
384
379
  }
385
380
  // Single object execution
@@ -387,45 +382,30 @@ exports.puttingAction = {
387
382
  // Determine the target preposition
388
383
  const { targetPreposition } = determineTargetPreposition(preposition, target);
389
384
  // Store data for report phase
390
- sharedData.targetPreposition = targetPreposition;
391
- // Delegate to appropriate behavior
392
- if (targetPreposition === 'in') {
393
- const result = world_model_1.ContainerBehavior.addItem(target, item, context.world);
394
- sharedData.putResult = result;
395
- }
396
- else {
397
- const result = world_model_1.SupporterBehavior.addItem(target, item, context.world);
398
- sharedData.putResult = result;
399
- }
400
- // Actually move the item to the target
401
- context.world.moveEntity(item.id, target.id);
402
- // === POST-EXECUTE HOOK ===
403
- // Called after standard execution - can perform additional mutations
404
- const interceptor = sharedData.interceptor;
405
- const interceptorData = sharedData.interceptorData || {};
406
- if (interceptor?.postExecute) {
407
- interceptor.postExecute(target, context.world, actor.id, interceptorData);
408
- }
385
+ executeSingleEntity(context, item, target, sharedData, targetPreposition);
386
+ const state = (0, index_js_1.getLifecycleState)(context);
387
+ if (state)
388
+ (0, index_js_1.runPostExecute)(context, state);
409
389
  },
410
390
  report(context) {
411
- const sharedData = (0, putting_types_1.getPuttingSharedData)(context);
391
+ const sharedData = (0, putting_types_js_1.getPuttingSharedData)(context);
412
392
  const target = context.command.indirectObject.entity;
413
393
  const events = [];
414
394
  // Prepend any implicit take events (from requireCarriedOrImplicitTake)
415
395
  if (context.sharedData.implicitTakeEvents) {
416
396
  events.push(...context.sharedData.implicitTakeEvents);
417
397
  }
418
- // Check for multi-object command
419
- if (sharedData.multiObjectResults) {
420
- // Generate events for each item (success and failure)
421
- for (const result of sharedData.multiObjectResults) {
422
- if (result.success) {
423
- reportSingleSuccess(context, result.entity, target, result, events);
424
- }
425
- else {
426
- reportSingleBlocked(context, result.entity, target, result.error, result.errorParams, events);
427
- }
428
- }
398
+ // Multi-object command: per-item success/blocked events + hooks (D4)
399
+ const multi = (0, index_js_1.getMultiObjectLifecycle)(context);
400
+ if (multi) {
401
+ const preposition = context.command.parsed.structure.preposition?.text;
402
+ const { targetPreposition } = determineTargetPreposition(preposition, target);
403
+ const primaryEventType = targetPreposition === 'in' ? 'if.event.put_in' : 'if.event.put_on';
404
+ (0, index_js_1.runMultiObjectReport)(context, multi, events, primaryEventType, 'if.event.put_blocked', (ctx, item, itemData, evts) => {
405
+ reportSingleSuccess(ctx, item, target, itemData, evts);
406
+ }, (ctx, item, itemResult, evts) => {
407
+ reportSingleBlocked(ctx, item, target, itemResult, evts);
408
+ });
429
409
  return events;
430
410
  }
431
411
  // Single object report
@@ -433,10 +413,10 @@ exports.puttingAction = {
433
413
  const targetPreposition = sharedData.targetPreposition;
434
414
  // Emit domain event with messageId (simplified pattern - ADR-097)
435
415
  if (targetPreposition === 'in') {
436
- const params = { item: (0, utils_1.nounPhraseFor)(item), container: (0, utils_1.nounPhraseFor)(target) };
416
+ const params = { item: (0, index_js_2.nounPhraseFor)(item), container: (0, index_js_2.nounPhraseFor)(target) };
437
417
  events.push(context.event('if.event.put_in', {
438
418
  // Rendering data (messageId + params for text-service)
439
- messageId: `${context.action.id}.${putting_messages_1.PuttingMessages.PUT_IN}`,
419
+ messageId: `${context.action.id}.${putting_messages_js_1.PuttingMessages.PUT_IN}`,
440
420
  params,
441
421
  // Domain data (for event sourcing / handlers)
442
422
  itemId: item.id,
@@ -445,15 +425,15 @@ exports.puttingAction = {
445
425
  targetName: target.name,
446
426
  actorId: context.player.id,
447
427
  preposition: 'in',
448
- itemSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(item, context.world, true),
449
- targetSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(target, context.world, true)
428
+ itemSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(item, context.world, true),
429
+ targetSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(target, context.world, true)
450
430
  }));
451
431
  }
452
432
  else {
453
- const params = { item: (0, utils_1.nounPhraseFor)(item), surface: (0, utils_1.nounPhraseFor)(target) };
433
+ const params = { item: (0, index_js_2.nounPhraseFor)(item), surface: (0, index_js_2.nounPhraseFor)(target) };
454
434
  events.push(context.event('if.event.put_on', {
455
435
  // Rendering data (messageId + params for text-service)
456
- messageId: `${context.action.id}.${putting_messages_1.PuttingMessages.PUT_ON}`,
436
+ messageId: `${context.action.id}.${putting_messages_js_1.PuttingMessages.PUT_ON}`,
457
437
  params,
458
438
  // Domain data (for event sourcing / handlers)
459
439
  itemId: item.id,
@@ -462,19 +442,14 @@ exports.puttingAction = {
462
442
  targetName: target.name,
463
443
  actorId: context.player.id,
464
444
  preposition: 'on',
465
- itemSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(item, context.world, true),
466
- targetSnapshot: (0, snapshot_utils_1.captureEntitySnapshot)(target, context.world, true)
445
+ itemSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(item, context.world, true),
446
+ targetSnapshot: (0, snapshot_utils_js_1.captureEntitySnapshot)(target, context.world, true)
467
447
  }));
468
448
  }
469
- // === POST-REPORT HOOK ===
470
- // Apply interceptor's override (replaces if.event.put_in/put_on messageId)
471
- // and/or emit (additional events). See ISSUE-074.
472
- const interceptor = sharedData.interceptor;
473
- const interceptorData = sharedData.interceptorData || {};
474
- if (interceptor?.postReport) {
475
- const result = interceptor.postReport(target, context.world, context.player.id, interceptorData);
449
+ const state = (0, index_js_1.getLifecycleState)(context);
450
+ if (state) {
476
451
  const primaryEventType = targetPreposition === 'in' ? 'if.event.put_in' : 'if.event.put_on';
477
- (0, world_model_1.applyInterceptorReportResult)(events, primaryEventType, result, context);
452
+ (0, index_js_1.runPostReport)(context, state, events, primaryEventType);
478
453
  }
479
454
  return events;
480
455
  },
@@ -486,25 +461,13 @@ exports.puttingAction = {
486
461
  blocked(context, result) {
487
462
  const item = context.command.directObject?.entity;
488
463
  const target = context.command.indirectObject?.entity;
489
- const sharedData = (0, putting_types_1.getPuttingSharedData)(context);
490
- // === ON-BLOCKED HOOK ===
491
- // Called when action is blocked - can provide custom blocked handling
492
- const interceptor = sharedData.interceptor;
493
- const interceptorData = sharedData.interceptorData || {};
494
- if (interceptor?.onBlocked && target && result.error) {
495
- const customEffects = interceptor.onBlocked(target, context.world, context.player.id, result.error, interceptorData);
496
- if (customEffects !== null) {
497
- // Interceptor provided custom blocked effects
498
- return customEffects.map(effect => context.event(effect.type, effect.payload));
499
- }
500
- }
501
464
  // Standard blocked handling — EntityInfo for formatter chain (ADR-158)
502
- return [context.event('if.event.put_blocked', {
503
- messageId: `${context.action.id}.${result.error}`,
465
+ const events = [context.event('if.event.put_blocked', {
466
+ messageId: (0, index_js_1.blockedMessageId)(context, result),
504
467
  params: {
505
468
  ...result.params,
506
- item: item ? (0, utils_1.nounPhraseFor)(item) : undefined,
507
- destination: target ? (0, utils_1.nounPhraseFor)(target) : undefined
469
+ item: item ? (0, index_js_2.nounPhraseFor)(item) : undefined,
470
+ destination: target ? (0, index_js_2.nounPhraseFor)(target) : undefined
508
471
  },
509
472
  itemId: item?.id,
510
473
  itemName: item?.name,
@@ -512,6 +475,25 @@ exports.puttingAction = {
512
475
  targetName: target?.name,
513
476
  reason: result.error
514
477
  })];
478
+ if (result.error) {
479
+ const state = (0, index_js_1.getLifecycleState)(context);
480
+ if (state) {
481
+ // Single-object path: notify all consultations (ADR-228 D2/D3)
482
+ (0, index_js_1.runOnBlocked)(context, state, events, 'if.event.put_blocked', result.error);
483
+ }
484
+ else {
485
+ // Multi-object all-fail path: the blocked event carries the FIRST
486
+ // failed item's error, so only that item's consultations are
487
+ // notified here — the other items produced no events for hooks to
488
+ // decorate. (Partial failures are handled per item in report().)
489
+ const multi = (0, index_js_1.getMultiObjectLifecycle)(context);
490
+ const first = multi?.[0];
491
+ if (first && !first.success) {
492
+ (0, index_js_1.runOnBlocked)(context, first.state, events, 'if.event.put_blocked', first.error ?? result.error);
493
+ }
494
+ }
495
+ }
496
+ return events;
515
497
  }
516
498
  };
517
499
  //# sourceMappingURL=putting.js.map