@sharpee/stdlib 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) 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 -52
  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 +35 -48
  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 +122 -132
  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/opening/opening-messages.d.ts +3 -0
  143. package/actions/standard/opening/opening-messages.d.ts.map +1 -1
  144. package/actions/standard/opening/opening-messages.js +4 -0
  145. package/actions/standard/opening/opening-messages.js.map +1 -1
  146. package/actions/standard/opening/opening.d.ts +8 -0
  147. package/actions/standard/opening/opening.d.ts.map +1 -1
  148. package/actions/standard/opening/opening.js +73 -59
  149. package/actions/standard/opening/opening.js.map +1 -1
  150. package/actions/standard/pulling/pulling.d.ts +9 -0
  151. package/actions/standard/pulling/pulling.d.ts.map +1 -1
  152. package/actions/standard/pulling/pulling.js +40 -2
  153. package/actions/standard/pulling/pulling.js.map +1 -1
  154. package/actions/standard/pushing/pushing-types.d.ts +3 -6
  155. package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
  156. package/actions/standard/pushing/pushing-types.js +3 -1
  157. package/actions/standard/pushing/pushing-types.js.map +1 -1
  158. package/actions/standard/pushing/pushing.d.ts +14 -5
  159. package/actions/standard/pushing/pushing.d.ts.map +1 -1
  160. package/actions/standard/pushing/pushing.js +51 -71
  161. package/actions/standard/pushing/pushing.js.map +1 -1
  162. package/actions/standard/putting/putting-types.d.ts +10 -21
  163. package/actions/standard/putting/putting-types.d.ts.map +1 -1
  164. package/actions/standard/putting/putting-types.js +0 -1
  165. package/actions/standard/putting/putting-types.js.map +1 -1
  166. package/actions/standard/putting/putting.d.ts +10 -0
  167. package/actions/standard/putting/putting.d.ts.map +1 -1
  168. package/actions/standard/putting/putting.js +133 -151
  169. package/actions/standard/putting/putting.js.map +1 -1
  170. package/actions/standard/reading/reading.d.ts +6 -0
  171. package/actions/standard/reading/reading.d.ts.map +1 -1
  172. package/actions/standard/reading/reading.js +36 -52
  173. package/actions/standard/reading/reading.js.map +1 -1
  174. package/actions/standard/removing/removing-types.d.ts +10 -16
  175. package/actions/standard/removing/removing-types.d.ts.map +1 -1
  176. package/actions/standard/removing/removing-types.js.map +1 -1
  177. package/actions/standard/removing/removing.d.ts +13 -0
  178. package/actions/standard/removing/removing.d.ts.map +1 -1
  179. package/actions/standard/removing/removing.js +147 -88
  180. package/actions/standard/removing/removing.js.map +1 -1
  181. package/actions/standard/searching/searching.d.ts +10 -0
  182. package/actions/standard/searching/searching.d.ts.map +1 -1
  183. package/actions/standard/searching/searching.js +44 -8
  184. package/actions/standard/searching/searching.js.map +1 -1
  185. package/actions/standard/showing/showing.d.ts +14 -0
  186. package/actions/standard/showing/showing.d.ts.map +1 -1
  187. package/actions/standard/showing/showing.js +62 -2
  188. package/actions/standard/showing/showing.js.map +1 -1
  189. package/actions/standard/smelling/smelling.d.ts +10 -0
  190. package/actions/standard/smelling/smelling.d.ts.map +1 -1
  191. package/actions/standard/smelling/smelling.js +41 -2
  192. package/actions/standard/smelling/smelling.js.map +1 -1
  193. package/actions/standard/switching_off/switching_off.d.ts +11 -1
  194. package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
  195. package/actions/standard/switching_off/switching_off.js +44 -4
  196. package/actions/standard/switching_off/switching_off.js.map +1 -1
  197. package/actions/standard/switching_on/switching_on.d.ts +14 -5
  198. package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
  199. package/actions/standard/switching_on/switching_on.js +45 -57
  200. package/actions/standard/switching_on/switching_on.js.map +1 -1
  201. package/actions/standard/taking/taking-types.d.ts +14 -36
  202. package/actions/standard/taking/taking-types.d.ts.map +1 -1
  203. package/actions/standard/taking/taking-types.js.map +1 -1
  204. package/actions/standard/taking/taking.d.ts +11 -0
  205. package/actions/standard/taking/taking.d.ts.map +1 -1
  206. package/actions/standard/taking/taking.js +102 -148
  207. package/actions/standard/taking/taking.js.map +1 -1
  208. package/actions/standard/taking_off/taking-off.d.ts +6 -0
  209. package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
  210. package/actions/standard/taking_off/taking-off.js +57 -21
  211. package/actions/standard/taking_off/taking-off.js.map +1 -1
  212. package/actions/standard/talking/talking.d.ts +15 -0
  213. package/actions/standard/talking/talking.d.ts.map +1 -1
  214. package/actions/standard/talking/talking.js +52 -3
  215. package/actions/standard/talking/talking.js.map +1 -1
  216. package/actions/standard/telling/index.d.ts +5 -0
  217. package/actions/standard/telling/index.d.ts.map +1 -0
  218. package/actions/standard/telling/index.js +10 -0
  219. package/actions/standard/telling/index.js.map +1 -0
  220. package/actions/standard/telling/telling.d.ts +25 -0
  221. package/actions/standard/telling/telling.d.ts.map +1 -0
  222. package/actions/standard/telling/telling.js +114 -0
  223. package/actions/standard/telling/telling.js.map +1 -0
  224. package/actions/standard/throwing/throwing.d.ts +11 -0
  225. package/actions/standard/throwing/throwing.d.ts.map +1 -1
  226. package/actions/standard/throwing/throwing.js +69 -70
  227. package/actions/standard/throwing/throwing.js.map +1 -1
  228. package/actions/standard/tool-shared.d.ts +38 -0
  229. package/actions/standard/tool-shared.d.ts.map +1 -0
  230. package/actions/standard/tool-shared.js +74 -0
  231. package/actions/standard/tool-shared.js.map +1 -0
  232. package/actions/standard/touching/touching.d.ts +9 -0
  233. package/actions/standard/touching/touching.d.ts.map +1 -1
  234. package/actions/standard/touching/touching.js +40 -4
  235. package/actions/standard/touching/touching.js.map +1 -1
  236. package/actions/standard/turning/index.d.ts +5 -0
  237. package/actions/standard/turning/index.d.ts.map +1 -0
  238. package/actions/standard/turning/index.js +9 -0
  239. package/actions/standard/turning/index.js.map +1 -0
  240. package/actions/standard/turning/turning.d.ts +17 -0
  241. package/actions/standard/turning/turning.d.ts.map +1 -0
  242. package/actions/standard/turning/turning.js +25 -0
  243. package/actions/standard/turning/turning.js.map +1 -0
  244. package/actions/standard/unlocking/unlocking.d.ts +9 -0
  245. package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
  246. package/actions/standard/unlocking/unlocking.js +62 -3
  247. package/actions/standard/unlocking/unlocking.js.map +1 -1
  248. package/actions/standard/wearing/wearing.d.ts +11 -1
  249. package/actions/standard/wearing/wearing.d.ts.map +1 -1
  250. package/actions/standard/wearing/wearing.js +57 -12
  251. package/actions/standard/wearing/wearing.js.map +1 -1
  252. package/channels/standard.d.ts +13 -10
  253. package/channels/standard.d.ts.map +1 -1
  254. package/channels/standard.js +14 -10
  255. package/channels/standard.js.map +1 -1
  256. package/death/deadly-room-transformer.d.ts +37 -0
  257. package/death/deadly-room-transformer.d.ts.map +1 -0
  258. package/death/deadly-room-transformer.js +79 -0
  259. package/death/deadly-room-transformer.js.map +1 -0
  260. package/death/index.d.ts +18 -0
  261. package/death/index.d.ts.map +1 -0
  262. package/death/index.js +28 -0
  263. package/death/index.js.map +1 -0
  264. package/death/kill-player.d.ts +49 -0
  265. package/death/kill-player.d.ts.map +1 -0
  266. package/death/kill-player.js +55 -0
  267. package/death/kill-player.js.map +1 -0
  268. package/death/player-death-events.d.ts +40 -0
  269. package/death/player-death-events.d.ts.map +1 -0
  270. package/death/player-death-events.js +27 -0
  271. package/death/player-death-events.js.map +1 -0
  272. package/death/probabilistic-death.d.ts +23 -0
  273. package/death/probabilistic-death.d.ts.map +1 -0
  274. package/death/probabilistic-death.js +27 -0
  275. package/death/probabilistic-death.js.map +1 -0
  276. package/index.d.ts +1 -0
  277. package/index.d.ts.map +1 -1
  278. package/index.js +1 -0
  279. package/index.js.map +1 -1
  280. package/npc/behaviors.d.ts.map +1 -1
  281. package/npc/behaviors.js +9 -8
  282. package/npc/behaviors.js.map +1 -1
  283. package/npc/npc-service.d.ts +8 -0
  284. package/npc/npc-service.d.ts.map +1 -1
  285. package/npc/npc-service.js +19 -18
  286. package/npc/npc-service.js.map +1 -1
  287. package/package.json +7 -7
@@ -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;
20
+ exports.puttingAction = exports.puttingLifecycle = void 0;
21
21
  const types_1 = require("../../../scope/types");
22
22
  const world_model_1 = require("@sharpee/world-model");
23
23
  const snapshot_utils_1 = require("../../base/snapshot-utils");
24
24
  const constants_1 = require("../../constants");
25
25
  const putting_messages_1 = require("./putting-messages");
26
+ const lifecycle_1 = require("../../lifecycle");
26
27
  // Import types
27
28
  const putting_types_1 = require("./putting-types");
28
29
  // Import multi-object helpers
29
30
  const multi_object_handler_1 = require("../../../helpers/multi-object-handler");
30
31
  const utils_1 = require("../../../utils");
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_1.IFActions.PUTTING,
42
+ slots: [
43
+ {
44
+ id: 'item',
45
+ actionIds: [constants_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_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) {
@@ -143,55 +189,20 @@ function validateSingleEntity(context, item, target, preposition) {
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)
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).
147
195
  */
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
184
- */
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,8 +212,8 @@ 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
218
  const params = { item: (0, utils_1.nounPhraseFor)(item), container: (0, utils_1.nounPhraseFor)(target) };
208
219
  events.push(context.event('if.event.put_in', {
@@ -290,16 +301,34 @@ exports.puttingAction = {
290
301
  indirectObjectScope: types_1.ScopeLevel.REACHABLE
291
302
  },
292
303
  validate(context) {
293
- // Check for multi-object command
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.
294
309
  if ((0, multi_object_handler_1.isMultiObjectCommand)(context)) {
295
- return validateMultiObject(context);
310
+ // Must have a destination
311
+ if (!target) {
312
+ return { valid: false, error: putting_messages_1.PuttingMessages.NO_DESTINATION };
313
+ }
314
+ // For putting, scope is 'carried' - only put things we're holding
315
+ const items = (0, multi_object_handler_1.expandMultiObject)(context, { scope: 'carried' }).map(i => i.entity);
316
+ if (items.length === 0) {
317
+ return { valid: false, error: putting_messages_1.PuttingMessages.NOTHING_TO_PUT };
318
+ }
319
+ const results = (0, lifecycle_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, 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
334
  return { valid: false, error: putting_messages_1.PuttingMessages.NO_TARGET };
@@ -312,33 +341,10 @@ exports.puttingAction = {
312
341
  params: { item: (0, utils_1.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, lifecycle_1.resolveLifecycle)(context, exports.puttingLifecycle);
345
+ const preVeto = (0, lifecycle_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, lifecycle_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
366
  const sharedData = (0, putting_types_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, lifecycle_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, lifecycle_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,25 +382,10 @@ 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, lifecycle_1.getLifecycleState)(context);
387
+ if (state)
388
+ (0, lifecycle_1.runPostExecute)(context, state);
409
389
  },
410
390
  report(context) {
411
391
  const sharedData = (0, putting_types_1.getPuttingSharedData)(context);
@@ -415,17 +395,17 @@ exports.puttingAction = {
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, lifecycle_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, lifecycle_1.runMultiObjectReport)(context, multi, events, primaryEventType, 'if.event.put_blocked', (ctx, item, itemData, evts) => {
405
+ reportSingleSuccess(ctx, item, target, itemData, evts);
406
+ }, (ctx, item, error, errorParams, evts) => {
407
+ reportSingleBlocked(ctx, item, target, error, errorParams, evts);
408
+ });
429
409
  return events;
430
410
  }
431
411
  // Single object report
@@ -466,15 +446,10 @@ exports.puttingAction = {
466
446
  targetSnapshot: (0, snapshot_utils_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, lifecycle_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, lifecycle_1.runPostReport)(context, state, events, primaryEventType);
478
453
  }
479
454
  return events;
480
455
  },
@@ -486,20 +461,8 @@ 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', {
465
+ const events = [context.event('if.event.put_blocked', {
503
466
  messageId: `${context.action.id}.${result.error}`,
504
467
  params: {
505
468
  ...result.params,
@@ -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, lifecycle_1.getLifecycleState)(context);
480
+ if (state) {
481
+ // Single-object path: notify all consultations (ADR-228 D2/D3)
482
+ (0, lifecycle_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, lifecycle_1.getMultiObjectLifecycle)(context);
490
+ const first = multi?.[0];
491
+ if (first && !first.success) {
492
+ (0, lifecycle_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
@@ -1 +1 @@
1
- {"version":3,"file":"putting.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/putting/putting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"putting.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/putting/putting.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAIH,gDAAkD;AAElD,sDAQ8B;AAC9B,8DAAkE;AAClE,+CAA4C;AAC5C,yDAAqD;AACrD,+CAayB;AAEzB,eAAe;AACf,mDAA2E;AAE3E,8BAA8B;AAC9B,gFAAgG;AAChG,0CAA+C;AAE/C;;;;;;;GAOG;AACU,QAAA,gBAAgB,GAA8B;IACzD,QAAQ,EAAE,qBAAS,CAAC,OAAO;IAC3B,KAAK,EAAE;QACL;YACE,EAAE,EAAE,MAAM;YACV,SAAS,EAAE,CAAC,qBAAS,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM;YAClD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,EAAE;gBACjB,QAAQ,EAAE,MAAM,CAAC,IAAI;gBACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;gBAChD,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI;gBACpD,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI;aAC5D,CAAC;SACH;QACD;YACE,EAAE,EAAE,WAAW;YACf,SAAS,EAAE,CAAC,qBAAS,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM;YACpD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG,eAAe,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;gBACjE,OAAO;oBACL,MAAM,EAAE,IAAI,EAAE,EAAE;oBAChB,QAAQ,EAAE,IAAI,EAAE,IAAI;oBACpB,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;oBACvB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI;iBAC5D,CAAC;YACJ,CAAC;SACF;KACF;CACF,CAAC;AAEF,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAE/E;;GAEG;AACH,SAAS,0BAA0B,CACjC,WAA+B,EAC/B,MAAgB;IAEhB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,CAAC;IAEpD,iEAAiE;IACjE,iEAAiE;IACjE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,+BAA+B;QAC/B,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;YAChG,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;aAAM,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC3E,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC/E,OAAO;oBACL,iBAAiB,EAAE,IAAI;oBACvB,KAAK,EAAE,kCAAe,CAAC,aAAa;oBACpC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;iBAC/C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,iBAAiB,EAAE,IAAI;oBACvB,KAAK,EAAE,kCAAe,CAAC,WAAW;oBAClC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;iBAC/C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,iBAAiB,EAAE,IAAI;gBACvB,KAAK,EAAE,kCAAe,CAAC,aAAa;gBACpC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;aAC/C,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,OAAsB,EACtB,IAAc,EACd,MAAgB,EAChB,WAA+B;IAE/B,6CAA6C;IAC7C,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,kCAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,kCAAe,CAAC,kBAAkB,CAAC;QACjH,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;SACtC,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,kCAAe,CAAC,aAAa;YACpC,MAAM,EAAE;gBACN,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC;aACnC;SACF,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7F,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IAED,4BAA4B;IAC5B,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,gBAAgB;gBACvC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;aAC7C,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,+BAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,OAAO;gBAC9B,MAAM,EAAE,EAAE,SAAS,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;aAC7C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,+BAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,QAAQ;gBAC/B,MAAM,EAAE,EAAE,OAAO,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,IAAc,EACd,MAAgB,EAChB,OAA2B,EAC3B,iBAA8B;IAE9B,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAE9C,mCAAmC;IACnC,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAmB,+BAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAA8B,+BAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACpG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,uCAAuC;IACvC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,IAAc,EACd,MAAgB,EAChB,OAA2B,EAC3B,MAAwB;IAExB,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAgC,CAAC;IAEnE,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC3C,uDAAuD;YACvD,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,kCAAe,CAAC,MAAM,EAAE;YAC3D,MAAM;YACN,8CAA8C;YAC9C,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,WAAW,EAAE,IAAa;YAC1B,YAAY,EAAE,IAAA,sCAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YAC9D,cAAc,EAAE,IAAA,sCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACnE,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC3C,uDAAuD;YACvD,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,kCAAe,CAAC,MAAM,EAAE;YAC3D,MAAM;YACN,8CAA8C;YAC9C,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,WAAW,EAAE,IAAa;YAC1B,YAAY,EAAE,IAAA,sCAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YAC9D,cAAc,EAAE,IAAA,sCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACnE,CAAC,CAAC,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,IAAc,EACd,MAAgB,EAChB,KAAa,EACb,WAAgD,EAChD,MAAwB;IAExB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE;QAChD,gEAAgE;QAChE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,EAAE;QAC1C,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;QACzF,qCAAqC;QACrC,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAElE,QAAA,aAAa,GAA0C;IAClE,EAAE,EAAE,qBAAS,CAAC,OAAO;IAErB,qDAAqD;IACrD,YAAY,EAAE;QACZ,IAAI,EAAE,kBAAU,CAAC,SAAS,EAAG,iCAAiC;QAC9D,MAAM,EAAE,kBAAU,CAAC,SAAS;KAC7B;IAED,gBAAgB,EAAE;QAChB,WAAW;QACX,gBAAgB;QAChB,UAAU;QACV,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,QAAQ;QACR,QAAQ;QACR,oBAAoB;QACpB,oBAAoB;QACpB,SAAS;QACT,UAAU;QACV,gBAAgB;KACjB;IACD,KAAK,EAAE,qBAAqB;IAE5B,QAAQ,EAAE;QACR,oBAAoB,EAAE,IAAI;QAC1B,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,kBAAU,CAAC,SAAS,EAAG,iCAAiC;QAC3E,mBAAmB,EAAE,kBAAU,CAAC,SAAS;KAC1C;IAED,QAAQ,CAAC,OAAsB;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;QACtD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;QAEvE,yEAAyE;QACzE,oEAAoE;QACpE,kCAAkC;QAClC,IAAI,IAAA,2CAAoB,EAAC,OAAO,CAAC,EAAE,CAAC;YAClC,0BAA0B;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAe,CAAC,cAAc,EAAE,CAAC;YACjE,CAAC;YAED,kEAAkE;YAClE,MAAM,KAAK,GAAG,IAAA,wCAAiB,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAElF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAe,CAAC,cAAc,EAAE,CAAC;YACjE,CAAC;YAED,MAAM,OAAO,GAAG,IAAA,kCAAsB,EACpC,OAAO,EAAE,wBAAgB,EAAE,MAAM,EAAE,KAAK,EACxC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACtB,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACvE,QAA+B,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;gBAClF,OAAO,UAAU,CAAC;YACpB,CAAC,CACF,CAAC;YAEF,qEAAqE;YACrE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QAElD,2BAA2B;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAe,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,cAAc;gBACrC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;aACtC,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,OAAO,EAAE,wBAAgB,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,gDAAgD;QAChD,8DAA8D;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC,KAAM,CAAC;QAC3B,CAAC;QAED,sBAAsB;QACtB,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,iFAAiF;QACjF,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,OAAsB;QAC5B,MAAM,UAAU,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAe,CAAC,MAAO,CAAC;QACvD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;QAEvE,uEAAuE;QACvE,6CAA6C;QAC7C,MAAM,KAAK,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,kDAAkD;YAClD,MAAM,EAAE,iBAAiB,EAAE,GAAG,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAE9E,IAAA,iCAAqB,EAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC5D,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAA8B,EAAE,iBAAiB,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAa,CAAC,MAAO,CAAC;QAEnD,mCAAmC;QACnC,MAAM,EAAE,iBAAiB,EAAE,GAAG,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE9E,8BAA8B;QAC9B,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAE1E,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,MAAM,UAAU,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAe,CAAC,MAAO,CAAC;QACvD,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,uEAAuE;QACvE,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACxD,CAAC;QAED,qEAAqE;QACrE,MAAM,KAAK,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;YACvE,MAAM,EAAE,iBAAiB,EAAE,GAAG,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC9E,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC5F,IAAA,gCAAoB,EAClB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAChE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;gBAC5B,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAA8B,EAAE,IAAI,CAAC,CAAC;YAC/E,CAAC,EACD,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;gBACtC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACnE,CAAC,CACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAa,CAAC,MAAO,CAAC;QACnD,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAgC,CAAC;QAEtE,kEAAkE;QAClE,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC3C,uDAAuD;gBACvD,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,kCAAe,CAAC,MAAM,EAAE;gBAC3D,MAAM;gBACN,8CAA8C;gBAC9C,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,WAAW,EAAE,IAAa;gBAC1B,YAAY,EAAE,IAAA,sCAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC9D,cAAc,EAAE,IAAA,sCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;aACnE,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC3C,uDAAuD;gBACvD,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,kCAAe,CAAC,MAAM,EAAE;gBAC3D,MAAM;gBACN,8CAA8C;gBAC9C,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,WAAW,EAAE,IAAa;gBAC1B,YAAY,EAAE,IAAA,sCAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC9D,cAAc,EAAE,IAAA,sCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;aACnE,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC5F,IAAA,yBAAa,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAsB,EAAE,MAAwB;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;QAEtD,uEAAuE;QACvE,MAAM,MAAM,GAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACtE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;gBACjD,MAAM,EAAE;oBACN,GAAG,MAAM,CAAC,MAAM;oBAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC5C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACxD;gBACD,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChB,QAAQ,EAAE,IAAI,EAAE,IAAI;gBACpB,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACpB,UAAU,EAAE,MAAM,EAAE,IAAI;gBACxB,MAAM,EAAE,MAAM,CAAC,KAAK;aACrB,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,+DAA+D;gBAC/D,IAAA,wBAAY,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,6DAA6D;gBAC7D,kEAAkE;gBAClE,iEAAiE;gBACjE,MAAM,KAAK,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC5B,IAAA,wBAAY,EAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClG,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -13,5 +13,11 @@
13
13
  * @module
14
14
  */
15
15
  import { Action } from '../../enhanced-types';
16
+ import { ActionLifecycleDescriptor } from '../../lifecycle';
17
+ /**
18
+ * Interceptor surface (ADR-228): the read target is the only consultable
19
+ * entity of a READ command.
20
+ */
21
+ export declare const readingLifecycle: ActionLifecycleDescriptor;
16
22
  export declare const reading: Action;
17
23
  //# sourceMappingURL=reading.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/reading/reading.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AA2C/E,eAAO,MAAM,OAAO,EAAE,MAuOrB,CAAC"}
1
+ {"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/reading/reading.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAS/E,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,yBAS9B,CAAC;AA2BF,eAAO,MAAM,OAAO,EAAE,MA4LrB,CAAC"}
@@ -14,10 +14,26 @@
14
14
  * @module
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.reading = void 0;
17
+ exports.reading = exports.readingLifecycle = void 0;
18
18
  const world_model_1 = require("@sharpee/world-model");
19
19
  const utils_1 = require("../../../utils");
20
+ const constants_1 = require("../../constants");
20
21
  const reading_events_1 = require("./reading-events");
22
+ const lifecycle_1 = require("../../lifecycle");
23
+ /**
24
+ * Interceptor surface (ADR-228): the read target is the only consultable
25
+ * entity of a READ command.
26
+ */
27
+ exports.readingLifecycle = {
28
+ actionId: constants_1.IFActions.READING,
29
+ slots: [
30
+ {
31
+ id: 'target',
32
+ actionIds: [constants_1.IFActions.READING],
33
+ resolve: (ctx) => ctx.command.directObject?.entity
34
+ }
35
+ ]
36
+ };
21
37
  function getReadingSharedData(context) {
22
38
  return context.sharedData;
23
39
  }
@@ -33,7 +49,7 @@ function getReadingSharedData(context) {
33
49
  */
34
50
  const types_1 = require("../../../scope/types");
35
51
  exports.reading = {
36
- id: 'if.action.reading',
52
+ id: constants_1.IFActions.READING,
37
53
  // Default scope requirements for this action's slots
38
54
  defaultScope: {
39
55
  target: types_1.ScopeLevel.REACHABLE // REACHABLE allows implicit take
@@ -56,25 +72,10 @@ exports.reading = {
56
72
  };
57
73
  }
58
74
  const target = directObject.entity;
59
- // Check for interceptor on the target entity (ADR-118)
60
- const interceptorResult = context.world.getInterceptorForAction(target, 'if.action.reading');
61
- const interceptor = interceptorResult?.interceptor;
62
- const interceptorData = {};
63
- // Store for later phases (blocked needs access to onBlocked)
64
- const sharedData = getReadingSharedData(context);
65
- sharedData.interceptor = interceptor;
66
- sharedData.interceptorData = interceptorData;
67
- // === PRE-VALIDATE HOOK ===
68
- if (interceptor?.preValidate) {
69
- const result = interceptor.preValidate(target, context.world, context.player.id, interceptorData);
70
- if (result !== null && !result.valid) {
71
- return {
72
- valid: false,
73
- error: result.error,
74
- params: result.params
75
- };
76
- }
77
- }
75
+ const state = (0, lifecycle_1.resolveLifecycle)(context, exports.readingLifecycle);
76
+ const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
77
+ if (preVeto)
78
+ return preVeto;
78
79
  // Check scope - must be able to see the target
79
80
  const scopeCheck = context.requireScope(target, types_1.ScopeLevel.VISIBLE);
80
81
  if (!scopeCheck.ok) {
@@ -114,17 +115,10 @@ exports.reading = {
114
115
  // TODO: Check if player has the required ability
115
116
  // For now, we'll assume they do if requiredAbility is set
116
117
  }
117
- // === POST-VALIDATE HOOK ===
118
- if (interceptor?.postValidate) {
119
- const result = interceptor.postValidate(target, context.world, context.player.id, interceptorData);
120
- if (result !== null && !result.valid) {
121
- return {
122
- valid: false,
123
- error: result.error,
124
- params: result.params
125
- };
126
- }
127
- }
118
+ // Canonical placement (ADR-228): postValidate runs after ALL standard validation
119
+ const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
120
+ if (postVeto)
121
+ return postVeto;
128
122
  return { valid: true };
129
123
  },
130
124
  execute(context) {
@@ -174,14 +168,12 @@ exports.reading = {
174
168
  sharedData.readEvent = readEvent;
175
169
  sharedData.messageId = messageId;
176
170
  sharedData.params = params;
177
- // === POST-EXECUTE HOOK ===
178
- if (sharedData.interceptor?.postExecute) {
179
- sharedData.interceptor.postExecute(target, context.world, context.player.id, sharedData.interceptorData);
180
- }
171
+ const state = (0, lifecycle_1.getLifecycleState)(context);
172
+ if (state)
173
+ (0, lifecycle_1.runPostExecute)(context, state);
181
174
  },
182
175
  blocked(context, result) {
183
176
  const target = context.command.directObject?.entity;
184
- const sharedData = getReadingSharedData(context);
185
177
  const events = [context.event('if.event.read', {
186
178
  blocked: true,
187
179
  messageId: `${context.action.id}.${result.error}`,
@@ -191,14 +183,10 @@ exports.reading = {
191
183
  targetId: target?.id,
192
184
  targetName: target?.name
193
185
  })];
194
- // === ON-BLOCKED HOOK ===
195
- if (sharedData.interceptor?.onBlocked && target && result.error) {
196
- const customEffects = sharedData.interceptor.onBlocked(target, context.world, context.player.id, result.error, sharedData.interceptorData);
197
- if (customEffects) {
198
- for (const effect of customEffects) {
199
- events.push(context.event(effect.type, effect.payload));
200
- }
201
- }
186
+ if (result.error) {
187
+ const state = (0, lifecycle_1.getLifecycleState)(context);
188
+ if (state)
189
+ (0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.read', result.error);
202
190
  }
203
191
  return events;
204
192
  },
@@ -218,13 +206,9 @@ exports.reading = {
218
206
  targetName: String(target?.attributes.name || 'something'),
219
207
  text: sharedData.params?.text
220
208
  }));
221
- // === POST-REPORT HOOK ===
222
- if (sharedData.interceptor?.postReport && target) {
223
- const result = sharedData.interceptor.postReport(target, context.world, context.player.id, sharedData.interceptorData);
224
- if (result) {
225
- (0, world_model_1.applyInterceptorReportResult)(events, 'if.event.read', result, context);
226
- }
227
- }
209
+ const state = (0, lifecycle_1.getLifecycleState)(context);
210
+ if (state)
211
+ (0, lifecycle_1.runPostReport)(context, state, events, 'if.event.read');
228
212
  return events;
229
213
  }
230
214
  };