@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
@@ -12,7 +12,7 @@
12
12
  * 4. report: Generate success events with closed data
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.closingAction = void 0;
15
+ exports.closingAction = exports.closingLifecycle = void 0;
16
16
  const world_model_1 = require("@sharpee/world-model");
17
17
  const data_builder_types_1 = require("../../data-builder-types");
18
18
  const constants_1 = require("../../constants");
@@ -20,6 +20,21 @@ const closing_data_1 = require("./closing-data");
20
20
  const closing_messages_1 = require("./closing-messages");
21
21
  const types_1 = require("../../../scope/types");
22
22
  const utils_1 = require("../../../utils");
23
+ const lifecycle_1 = require("../../lifecycle");
24
+ /**
25
+ * Interceptor surface (ADR-228): the closed target is the only
26
+ * consultable entity of a CLOSE command.
27
+ */
28
+ exports.closingLifecycle = {
29
+ actionId: constants_1.IFActions.CLOSING,
30
+ slots: [
31
+ {
32
+ id: 'target',
33
+ actionIds: [constants_1.IFActions.CLOSING],
34
+ resolve: (ctx) => ctx.command.directObject?.entity
35
+ }
36
+ ]
37
+ };
23
38
  function getClosingSharedData(context) {
24
39
  return context.sharedData;
25
40
  }
@@ -64,25 +79,10 @@ exports.closingAction = {
64
79
  error: closing_messages_1.ClosingMessages.NO_TARGET
65
80
  };
66
81
  }
67
- // Check for interceptor on the target entity (ADR-118)
68
- const interceptorResult = context.world.getInterceptorForAction(noun, constants_1.IFActions.CLOSING);
69
- const interceptor = interceptorResult?.interceptor;
70
- const interceptorData = {};
71
- // Store for later phases (blocked needs access to onBlocked)
72
- const sharedData = getClosingSharedData(context);
73
- sharedData.interceptor = interceptor;
74
- sharedData.interceptorData = interceptorData;
75
- // === PRE-VALIDATE HOOK ===
76
- if (interceptor?.preValidate) {
77
- const result = interceptor.preValidate(noun, context.world, context.player.id, interceptorData);
78
- if (result !== null && !result.valid) {
79
- return {
80
- valid: false,
81
- error: result.error,
82
- params: result.params
83
- };
84
- }
85
- }
82
+ const state = (0, lifecycle_1.resolveLifecycle)(context, exports.closingLifecycle);
83
+ const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
84
+ if (preVeto)
85
+ return preVeto;
86
86
  // Check scope - must be able to reach the target
87
87
  const scopeCheck = context.requireScope(noun, types_1.ScopeLevel.REACHABLE);
88
88
  if (!scopeCheck.ok) {
@@ -129,13 +129,10 @@ exports.closingAction = {
129
129
  };
130
130
  }
131
131
  }
132
- // === POST-VALIDATE HOOK ===
133
- if (interceptor?.postValidate) {
134
- const result = interceptor.postValidate(noun, context.world, context.player.id, interceptorData);
135
- if (result !== null && !result.valid) {
136
- return { valid: false, error: result.error, params: result.params };
137
- }
138
- }
132
+ // Canonical placement (ADR-228): postValidate runs after ALL standard validation
133
+ const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
134
+ if (postVeto)
135
+ return postVeto;
139
136
  return { valid: true };
140
137
  },
141
138
  /**
@@ -150,10 +147,9 @@ exports.closingAction = {
150
147
  // Store result for report phase using sharedData
151
148
  const sharedData = getClosingSharedData(context);
152
149
  sharedData.closeResult = result;
153
- // === POST-EXECUTE HOOK ===
154
- if (sharedData.interceptor?.postExecute) {
155
- sharedData.interceptor.postExecute(noun, context.world, context.player.id, sharedData.interceptorData);
156
- }
150
+ const state = (0, lifecycle_1.getLifecycleState)(context);
151
+ if (state)
152
+ (0, lifecycle_1.runPostExecute)(context, state);
157
153
  },
158
154
  /**
159
155
  * Report events after successful closing
@@ -208,16 +204,9 @@ exports.closingAction = {
208
204
  contentsIds,
209
205
  item: noun.name
210
206
  }));
211
- // === POST-REPORT HOOK (ADR-118) === — closing was the one standard
212
- // action missing this half (interceptor-wiring audit, 2026-07-12):
213
- // report-phase overrides/emits from `on closing it` clauses were
214
- // silently dropped.
215
- if (sharedData.interceptor?.postReport) {
216
- const reportResult = sharedData.interceptor.postReport(noun, context.world, context.player.id, sharedData.interceptorData ?? {});
217
- if (reportResult) {
218
- (0, world_model_1.applyInterceptorReportResult)(events, 'if.event.closed', reportResult, context);
219
- }
220
- }
207
+ const state = (0, lifecycle_1.getLifecycleState)(context);
208
+ if (state)
209
+ (0, lifecycle_1.runPostReport)(context, state, events, 'if.event.closed');
221
210
  return events;
222
211
  },
223
212
  /**
@@ -227,20 +216,10 @@ exports.closingAction = {
227
216
  */
228
217
  blocked(context, result) {
229
218
  const noun = context.command.directObject?.entity;
230
- // === ON-BLOCKED HOOK ===
231
- const sharedData = getClosingSharedData(context);
232
- const interceptor = sharedData.interceptor;
233
- const interceptorData = sharedData.interceptorData || {};
234
- if (interceptor?.onBlocked && noun && result.error) {
235
- const customEffects = interceptor.onBlocked(noun, context.world, context.player.id, result.error, interceptorData);
236
- if (customEffects !== null) {
237
- return customEffects.map(effect => context.event(effect.type, effect.payload));
238
- }
239
- }
240
219
  const error = result.error || '';
241
220
  // If error already contains dots (e.g., story interceptor ID), use as-is; otherwise prefix with action ID
242
221
  const messageId = error.includes('.') ? error : `${context.action.id}.${error}`;
243
- return [context.event('if.event.close_blocked', {
222
+ const events = [context.event('if.event.close_blocked', {
244
223
  // Rendering data — EntityInfo for the formatter chain (ADR-158)
245
224
  messageId,
246
225
  params: {
@@ -252,6 +231,12 @@ exports.closingAction = {
252
231
  targetName: noun?.name,
253
232
  reason: result.error
254
233
  })];
234
+ if (result.error) {
235
+ const state = (0, lifecycle_1.getLifecycleState)(context);
236
+ if (state)
237
+ (0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.close_blocked', result.error);
238
+ }
239
+ return events;
255
240
  }
256
241
  };
257
242
  //# sourceMappingURL=closing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"closing.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/closing/closing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"closing.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/closing/closing.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAIH,sDAAgG;AAChG,iEAA0D;AAC1D,+CAA4C;AAC5C,iDAAkD;AAClD,yDAAqD;AAKrD,gDAAkD;AAClD,0CAA+C;AAC/C,+CASyB;AAEzB;;;GAGG;AACU,QAAA,gBAAgB,GAA8B;IACzD,QAAQ,EAAE,qBAAS,CAAC,OAAO;IAC3B,KAAK,EAAE;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,CAAC,qBAAS,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM;SACnD;KACF;CACF,CAAC;AASF,SAAS,oBAAoB,CAAC,OAAsB;IAClD,OAAO,OAAO,CAAC,UAA+B,CAAC;AACjD,CAAC;AAEY,QAAA,aAAa,GAA0C;IAClE,EAAE,EAAE,qBAAS,CAAC,OAAO;IAErB,qDAAqD;IACrD,YAAY,EAAE;QACZ,MAAM,EAAE,kBAAU,CAAC,SAAS;KAC7B;IAED,2CAA2C;IAC3C,kBAAkB,EAAE;QAClB,KAAK,EAAE,uBAAS,CAAC,QAAQ;QACzB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,UAAU;KACxB;IAED,6CAA6C;IAC7C,eAAe,EAAE,KAAK;IAEtB,gBAAgB,EAAE;QAChB,WAAW;QACX,cAAc;QACd,gBAAgB;QAChB,QAAQ;QACR,YAAY;QACZ,kBAAkB;KACnB;IACD,QAAQ,EAAE;QACR,oBAAoB,EAAE,IAAI;QAC1B,sBAAsB,EAAE,KAAK;QAC7B,iBAAiB,EAAE,kBAAU,CAAC,SAAS;KACxC;IACD,KAAK,EAAE,wBAAwB;IAE/B;;;OAGG;IACH,QAAQ,CAAC,OAAsB;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QAElD,4BAA4B;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,SAAS;aACjC,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,iDAAiD;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAU,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC,KAAM,CAAC;QAC3B,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,YAAY;gBACnC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;aACtC,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC,8BAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,4CAA4C;YAC5C,IAAI,CAAC,8BAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,kCAAe,CAAC,cAAc;oBACrC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;iBACtC,CAAC;YACJ,CAAC;YACD,qDAAqD;YACrD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kCAAe,CAAC,gBAAgB;gBACvC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;aACtC,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,2BAAa,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,aAAoD,CAAC;QAC5E,IAAI,cAAc,EAAE,iBAAiB,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,cAAc,CAAC,iBAA4C,CAAC;YAChF,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,kCAAe,CAAC,gBAAgB;oBACvC,MAAM,EAAE;wBACN,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC;wBACzB,QAAQ,EAAE,WAAW,CAAC,WAAW;qBAClC;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAsB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAa,CAAC,MAAO,CAAC;QAEnD,mCAAmC;QACnC,MAAM,MAAM,GAAiB,8BAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1D,iDAAiD;QACjD,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAsB;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAa,CAAC,MAAO,CAAC;QACnD,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,CAAC,WAA2B,CAAC;QAEtD,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,gDAAgD;QAChD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,KAAK,EAAE,MAAM,CAAC,UAAU;SACzB,CAAC,CAAC,CAAC;QAEJ,0CAA0C;QAC1C,MAAM,SAAS,GAAG,IAAA,mCAAc,EAAC,+BAAgB,EAAE,OAAO,CAAC,CAAC;QAE5D,mDAAmD;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,WAAW,GAAa,EAAE,CAAC;QAE/B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpD,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAClC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;YAChC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,mEAAmE;QACnE,+DAA+D;QAC/D,8CAA8C;QAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC3C,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,kCAAe,CAAC,MAAM,EAAE;YAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE;YACrC,GAAG,SAAS;YACZ,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,WAAW,EAAE,IAAI,CAAC,EAAE;YACpB,aAAa,EAAE,IAAI,CAAC,IAAI;YACxB,WAAW;YACX,MAAM;YACN,WAAW;YACX,WAAW;YACX,aAAa;YACb,WAAW;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,yBAAa,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAEpE,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;QAElD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,0GAA0G;QAC1G,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAEhF,MAAM,MAAM,GAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACxE,gEAAgE;gBAChE,SAAS;gBACT,MAAM,EAAE;oBACN,GAAG,MAAM,CAAC,MAAM;oBAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC7C;gBACD,qCAAqC;gBACrC,QAAQ,EAAE,IAAI,EAAE,EAAE;gBAClB,UAAU,EAAE,IAAI,EAAE,IAAI;gBACtB,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;gBAAE,IAAA,wBAAY,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Message constants for the cutting action (ADR-230 D3c)
3
+ *
4
+ * These constants provide type safety for message IDs within stdlib.
5
+ * The lang-en-us package uses matching string literals (stable, injected at runtime).
6
+ */
7
+ export declare const CuttingMessages: {
8
+ readonly NO_TARGET: "no_target";
9
+ readonly NOT_CUTTABLE: "not_cuttable";
10
+ readonly CANT_CUT: "cant_cut";
11
+ readonly NO_TOOL: "no_tool";
12
+ readonly TOOL_NOT_HELD: "tool_not_held";
13
+ readonly WRONG_TOOL: "wrong_tool";
14
+ readonly CUT: "cut";
15
+ };
16
+ export type CuttingMessageId = typeof CuttingMessages[keyof typeof CuttingMessages];
17
+ //# sourceMappingURL=cutting-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cutting-messages.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/cutting/cutting-messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;CAYlB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CuttingMessages = void 0;
4
+ /**
5
+ * Message constants for the cutting action (ADR-230 D3c)
6
+ *
7
+ * These constants provide type safety for message IDs within stdlib.
8
+ * The lang-en-us package uses matching string literals (stable, injected at runtime).
9
+ */
10
+ exports.CuttingMessages = {
11
+ // Error messages
12
+ NO_TARGET: 'no_target',
13
+ NOT_CUTTABLE: 'not_cuttable',
14
+ CANT_CUT: 'cant_cut',
15
+ // Tool requirement (shared ids from tool-shared.ts)
16
+ NO_TOOL: 'no_tool',
17
+ TOOL_NOT_HELD: 'tool_not_held',
18
+ WRONG_TOOL: 'wrong_tool',
19
+ // Success message (typically overridden by the entity's implementation)
20
+ CUT: 'cut',
21
+ };
22
+ //# sourceMappingURL=cutting-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cutting-messages.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/cutting/cutting-messages.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,eAAe,GAAG;IAC7B,iBAAiB;IACjB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,oDAAoD;IACpD,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IAExB,wEAAwE;IACxE,GAAG,EAAE,KAAK;CACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Cutting action (ADR-230 D3c) — trait-gated, implementation-dispatching.
3
+ *
4
+ * The action itself performs NO mutation. CuttableTrait gates eligibility
5
+ * and carries the author-configured tool requirement; the cut OUTCOME is
6
+ * the target entity's own registered implementation, on either surface
7
+ * (dual-surface re-pin, 2026-07-17):
8
+ * - an ADR-090 capability behavior registered for if.action.cutting
9
+ * (TS authors), invoked from execute/report/blocked; or
10
+ * - an ADR-228 interceptor (Chord `on cutting it`) whose postExecute
11
+ * owns the mutation and whose postReport owns the narration.
12
+ *
13
+ * A cuttable entity with NEITHER surface refuses with cant_cut — the
14
+ * runtime safety net behind the Chord loader's load-time check.
15
+ *
16
+ * Four-phase pattern (ADR-051):
17
+ * 1. validate: cuttable gate, tool requirement, implementation presence
18
+ * 2. execute: delegate to the capability behavior, if that's the surface
19
+ * 3. report: behavior effects, or the standard cut event for interceptors
20
+ * 4. blocked: standard blocked event through the lifecycle engine
21
+ */
22
+ import { Action } from '../../enhanced-types';
23
+ import { ActionMetadata } from '../../../validation';
24
+ import { ActionLifecycleDescriptor } from '../../lifecycle';
25
+ /**
26
+ * Interceptor surface (ADR-228, ADR-230 D3c): the cut target and any
27
+ * explicit tool are the consultable entities of a CUT command, published
28
+ * order target → tool (D3-B). Explicit tools only — mirrors locking's key
29
+ * slot (ADR-229 R2).
30
+ */
31
+ export declare const cuttingLifecycle: ActionLifecycleDescriptor;
32
+ export declare const cuttingAction: Action & {
33
+ metadata: ActionMetadata;
34
+ };
35
+ //# sourceMappingURL=cutting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cutting.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/cutting/cutting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAU/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,yBA6B9B,CAAC;AAqBF,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAqL9D,CAAC"}
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ /**
3
+ * Cutting action (ADR-230 D3c) — trait-gated, implementation-dispatching.
4
+ *
5
+ * The action itself performs NO mutation. CuttableTrait gates eligibility
6
+ * and carries the author-configured tool requirement; the cut OUTCOME is
7
+ * the target entity's own registered implementation, on either surface
8
+ * (dual-surface re-pin, 2026-07-17):
9
+ * - an ADR-090 capability behavior registered for if.action.cutting
10
+ * (TS authors), invoked from execute/report/blocked; or
11
+ * - an ADR-228 interceptor (Chord `on cutting it`) whose postExecute
12
+ * owns the mutation and whose postReport owns the narration.
13
+ *
14
+ * A cuttable entity with NEITHER surface refuses with cant_cut — the
15
+ * runtime safety net behind the Chord loader's load-time check.
16
+ *
17
+ * Four-phase pattern (ADR-051):
18
+ * 1. validate: cuttable gate, tool requirement, implementation presence
19
+ * 2. execute: delegate to the capability behavior, if that's the surface
20
+ * 3. report: behavior effects, or the standard cut event for interceptors
21
+ * 4. blocked: standard blocked event through the lifecycle engine
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.cuttingAction = exports.cuttingLifecycle = void 0;
25
+ const world_model_1 = require("@sharpee/world-model");
26
+ const constants_1 = require("../../constants");
27
+ const types_1 = require("../../../scope/types");
28
+ const cutting_messages_1 = require("./cutting-messages");
29
+ const tool_shared_1 = require("../tool-shared");
30
+ const utils_1 = require("../../../utils");
31
+ const lifecycle_1 = require("../../lifecycle");
32
+ /**
33
+ * Interceptor surface (ADR-228, ADR-230 D3c): the cut target and any
34
+ * explicit tool are the consultable entities of a CUT command, published
35
+ * order target → tool (D3-B). Explicit tools only — mirrors locking's key
36
+ * slot (ADR-229 R2).
37
+ */
38
+ exports.cuttingLifecycle = {
39
+ actionId: constants_1.IFActions.CUTTING,
40
+ slots: [
41
+ {
42
+ id: 'target',
43
+ actionIds: [constants_1.IFActions.CUTTING],
44
+ resolve: (ctx) => ctx.command.directObject?.entity,
45
+ seedData: (ctx, entity) => {
46
+ const tool = ctx.command.instrument?.entity ?? ctx.command.indirectObject?.entity;
47
+ return {
48
+ targetId: entity.id,
49
+ targetName: entity.name,
50
+ toolId: tool?.id,
51
+ toolName: tool?.name
52
+ };
53
+ }
54
+ },
55
+ {
56
+ id: 'tool',
57
+ actionIds: [constants_1.IFActions.CUTTING],
58
+ resolve: (ctx) => ctx.command.instrument?.entity ?? ctx.command.indirectObject?.entity,
59
+ seedData: (ctx, entity) => ({
60
+ toolId: entity.id,
61
+ toolName: entity.name,
62
+ targetId: ctx.command.directObject?.entity?.id,
63
+ targetName: ctx.command.directObject?.entity?.name
64
+ })
65
+ }
66
+ ]
67
+ };
68
+ /**
69
+ * Convert capability effects to semantic events. Effect messageIds are
70
+ * forwarded unchanged — implementations MUST emit fully-qualified ids
71
+ * (stdlib CLAUDE.md capability-effect rule; short keys render blank on
72
+ * the universal dispatch path).
73
+ */
74
+ function effectsToEvents(effects, context) {
75
+ return effects.map((effect) => context.event(effect.type, { ...effect.payload }));
76
+ }
77
+ exports.cuttingAction = {
78
+ id: constants_1.IFActions.CUTTING,
79
+ defaultScope: {
80
+ target: types_1.ScopeLevel.REACHABLE
81
+ },
82
+ requiresHolding: false,
83
+ requiredMessages: [
84
+ 'no_target',
85
+ 'not_cuttable',
86
+ 'cant_cut',
87
+ 'no_tool',
88
+ 'tool_not_held',
89
+ 'wrong_tool',
90
+ 'cut'
91
+ ],
92
+ metadata: {
93
+ requiresDirectObject: true,
94
+ requiresIndirectObject: false,
95
+ directObjectScope: types_1.ScopeLevel.REACHABLE
96
+ },
97
+ group: 'manipulation',
98
+ validate(context) {
99
+ const noun = context.command.directObject?.entity;
100
+ if (!noun) {
101
+ return { valid: false, error: cutting_messages_1.CuttingMessages.NO_TARGET };
102
+ }
103
+ const state = (0, lifecycle_1.resolveLifecycle)(context, exports.cuttingLifecycle);
104
+ const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
105
+ if (preVeto)
106
+ return preVeto;
107
+ const scopeCheck = context.requireScope(noun, types_1.ScopeLevel.REACHABLE);
108
+ if (!scopeCheck.ok) {
109
+ return scopeCheck.error;
110
+ }
111
+ // Eligibility gate: only a cuttable entity can be cut.
112
+ if (!noun.has(world_model_1.TraitType.CUTTABLE)) {
113
+ return {
114
+ valid: false,
115
+ error: cutting_messages_1.CuttingMessages.NOT_CUTTABLE,
116
+ params: { item: (0, utils_1.nounPhraseFor)(noun) }
117
+ };
118
+ }
119
+ // Author-configured tool requirement (shared helper, PIN 2).
120
+ const tool = context.command.instrument?.entity ?? context.command.indirectObject?.entity;
121
+ const toolValidation = (0, tool_shared_1.validateToolRequirements)(context, noun, tool, world_model_1.CuttableBehavior.requiresTool(noun), (toolId) => world_model_1.CuttableBehavior.canCutWith(noun, toolId));
122
+ if (toolValidation) {
123
+ return toolValidation;
124
+ }
125
+ // Implementation presence (dual-surface): a capability behavior on one
126
+ // of the target's traits, or an interceptor consulting this action.
127
+ const capabilityTrait = (0, world_model_1.findTraitWithCapability)(noun, constants_1.IFActions.CUTTING);
128
+ const behavior = capabilityTrait
129
+ ? context.world.getBehaviorForCapability(capabilityTrait, constants_1.IFActions.CUTTING)
130
+ : undefined;
131
+ const hasInterceptor = !!context.world.getInterceptorForAction(noun, constants_1.IFActions.CUTTING);
132
+ if (!behavior && !hasInterceptor) {
133
+ // Runtime safety net — the Chord loader's post-load check is the
134
+ // primary catch for unimplemented cuttables.
135
+ return {
136
+ valid: false,
137
+ error: cutting_messages_1.CuttingMessages.CANT_CUT,
138
+ params: { item: (0, utils_1.nounPhraseFor)(noun) }
139
+ };
140
+ }
141
+ let data;
142
+ if (behavior) {
143
+ const sharedData = {};
144
+ const behaviorResult = behavior.validate(noun, context.world, context.player.id, sharedData);
145
+ if (!behaviorResult.valid) {
146
+ return {
147
+ valid: false,
148
+ error: behaviorResult.error,
149
+ params: behaviorResult.params
150
+ };
151
+ }
152
+ data = { behavior, sharedData };
153
+ }
154
+ const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
155
+ if (postVeto)
156
+ return postVeto;
157
+ return { valid: true, data };
158
+ },
159
+ /**
160
+ * Execute — the action mutates NOTHING itself. A capability-behavior
161
+ * implementation runs here; an interceptor implementation runs in its
162
+ * own postExecute hook via the lifecycle engine.
163
+ */
164
+ execute(context) {
165
+ const noun = context.command.directObject.entity;
166
+ const data = context.validationResult?.data;
167
+ if (data?.behavior) {
168
+ data.behavior.execute(noun, context.world, context.player.id, data.sharedData);
169
+ context.sharedData.cuttingDispatch = data;
170
+ }
171
+ const state = (0, lifecycle_1.getLifecycleState)(context);
172
+ if (state)
173
+ (0, lifecycle_1.runPostExecute)(context, state);
174
+ },
175
+ report(context) {
176
+ const noun = context.command.directObject.entity;
177
+ const tool = context.command.instrument?.entity ?? context.command.indirectObject?.entity;
178
+ const data = (context.sharedData.cuttingDispatch ?? context.validationResult?.data);
179
+ let events;
180
+ if (data?.behavior) {
181
+ // Capability surface: the implementation owns the narration.
182
+ events = effectsToEvents(data.behavior.report(noun, context.world, context.player.id, data.sharedData), context);
183
+ }
184
+ else {
185
+ // Interceptor surface: standard cut event; the implementation's
186
+ // postReport override typically replaces the generic message.
187
+ events = [
188
+ context.event('if.event.cut', {
189
+ messageId: `${context.action.id}.${cutting_messages_1.CuttingMessages.CUT}`,
190
+ params: { item: (0, utils_1.nounPhraseFor)(noun), tool: tool ? (0, utils_1.nounPhraseFor)(tool) : undefined },
191
+ targetId: noun.id,
192
+ targetName: noun.name,
193
+ toolId: tool?.id,
194
+ toolName: tool?.name,
195
+ actorId: context.player.id
196
+ })
197
+ ];
198
+ }
199
+ const state = (0, lifecycle_1.getLifecycleState)(context);
200
+ if (state)
201
+ (0, lifecycle_1.runPostReport)(context, state, events, 'if.event.cut');
202
+ return events;
203
+ },
204
+ blocked(context, result) {
205
+ const noun = context.command.directObject?.entity;
206
+ const error = result.error || '';
207
+ const messageId = error.includes('.') ? error : `${context.action.id}.${error}`;
208
+ const events = [
209
+ context.event('if.event.cut_blocked', {
210
+ messageId,
211
+ params: {
212
+ ...result.params,
213
+ item: noun ? (0, utils_1.nounPhraseFor)(noun) : undefined
214
+ },
215
+ targetId: noun?.id,
216
+ targetName: noun?.name,
217
+ reason: result.error
218
+ })
219
+ ];
220
+ if (result.error) {
221
+ const state = (0, lifecycle_1.getLifecycleState)(context);
222
+ if (state)
223
+ (0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.cut_blocked', result.error);
224
+ }
225
+ return events;
226
+ }
227
+ };
228
+ //# sourceMappingURL=cutting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cutting.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/cutting/cutting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Cutting action (ADR-230 D3c) — public exports.
3
+ */
4
+ export { cuttingAction, cuttingLifecycle } from './cutting';
5
+ export { CuttingMessages } from './cutting-messages';
6
+ export type { CuttingMessageId } from './cutting-messages';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/cutting/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CuttingMessages = exports.cuttingLifecycle = exports.cuttingAction = void 0;
4
+ /**
5
+ * Cutting action (ADR-230 D3c) — public exports.
6
+ */
7
+ var cutting_1 = require("./cutting");
8
+ Object.defineProperty(exports, "cuttingAction", { enumerable: true, get: function () { return cutting_1.cuttingAction; } });
9
+ Object.defineProperty(exports, "cuttingLifecycle", { enumerable: true, get: function () { return cutting_1.cuttingLifecycle; } });
10
+ var cutting_messages_1 = require("./cutting-messages");
11
+ Object.defineProperty(exports, "CuttingMessages", { enumerable: true, get: function () { return cutting_messages_1.CuttingMessages; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/cutting/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qCAA4D;AAAnD,wGAAA,aAAa,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AACxC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Deadly-room death action (ADR-224) — the generic redirect target.
3
+ *
4
+ * Not parseable: it has no grammar. The deadly-room command transformer redirects a
5
+ * lethal verb here, threading the death `cause`/`messageId` through the parsed
6
+ * command's `extras`. `execute` applies the lethal transition via `killPlayer`
7
+ * (mutation belongs in execute, ADR-051) and `report` emits the canonical death
8
+ * event it produced. Folds MDL's story-specific falls-death action into one platform
9
+ * primitive shared by every deadly room.
10
+ *
11
+ * Public interface: `deadlyRoomDeathAction`.
12
+ * Owner context: `@sharpee/stdlib` — the player-death primitive (ADR-224).
13
+ */
14
+ import { Action } from '../../enhanced-types';
15
+ export declare const deadlyRoomDeathAction: Action;
16
+ //# sourceMappingURL=deadly-room-death.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadly-room-death.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/deadly-room-death/deadly-room-death.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAa/E,eAAO,MAAM,qBAAqB,EAAE,MA8BnC,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * Deadly-room death action (ADR-224) — the generic redirect target.
4
+ *
5
+ * Not parseable: it has no grammar. The deadly-room command transformer redirects a
6
+ * lethal verb here, threading the death `cause`/`messageId` through the parsed
7
+ * command's `extras`. `execute` applies the lethal transition via `killPlayer`
8
+ * (mutation belongs in execute, ADR-051) and `report` emits the canonical death
9
+ * event it produced. Folds MDL's story-specific falls-death action into one platform
10
+ * primitive shared by every deadly room.
11
+ *
12
+ * Public interface: `deadlyRoomDeathAction`.
13
+ * Owner context: `@sharpee/stdlib` — the player-death primitive (ADR-224).
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.deadlyRoomDeathAction = void 0;
17
+ const death_1 = require("../../../death");
18
+ exports.deadlyRoomDeathAction = {
19
+ id: death_1.DEADLY_ROOM_DEATH_ACTION_ID,
20
+ group: 'special',
21
+ validate(_context) {
22
+ // Death is inevitable once redirected here — the transformer already decided.
23
+ return { valid: true };
24
+ },
25
+ execute(context) {
26
+ const extras = context.command.parsed?.extras ?? {};
27
+ const cause = extras[death_1.DEADLY_ROOM_CAUSE_KEY] ?? 'hazard';
28
+ const messageId = extras[death_1.DEADLY_ROOM_MESSAGE_KEY];
29
+ const event = (0, death_1.killPlayer)(context.world, context.player, {
30
+ cause,
31
+ messageId,
32
+ terminal: true,
33
+ });
34
+ context.sharedData.deadlyRoomDeathEvent = event;
35
+ },
36
+ blocked(_context, _result) {
37
+ return [];
38
+ },
39
+ report(context) {
40
+ const event = context.sharedData.deadlyRoomDeathEvent;
41
+ return event ? [event] : [];
42
+ },
43
+ };
44
+ //# sourceMappingURL=deadly-room-death.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadly-room-death.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/deadly-room-death/deadly-room-death.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAIH,0CAKwB;AAOX,QAAA,qBAAqB,GAAW;IAC3C,EAAE,EAAE,mCAA2B;IAC/B,KAAK,EAAE,SAAS;IAEhB,QAAQ,CAAC,QAAuB;QAC9B,8EAA8E;QAC9E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,OAAsB;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QACpD,MAAM,KAAK,GAAI,MAAM,CAAC,6BAAqB,CAAwB,IAAI,QAAQ,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,CAAC,+BAAuB,CAAuB,CAAC;QAExE,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;YACtD,KAAK;YACL,SAAS;YACT,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACF,OAAO,CAAC,UAAwC,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACjF,CAAC;IAED,OAAO,CAAC,QAAuB,EAAE,OAAyB;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,MAAM,KAAK,GAAI,OAAO,CAAC,UAAwC,CAAC,oBAAoB,CAAC;QACrF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { deadlyRoomDeathAction } from './deadly-room-death';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/deadly-room-death/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deadlyRoomDeathAction = void 0;
4
+ var deadly_room_death_1 = require("./deadly-room-death");
5
+ Object.defineProperty(exports, "deadlyRoomDeathAction", { enumerable: true, get: function () { return deadly_room_death_1.deadlyRoomDeathAction; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/deadly-room-death/index.ts"],"names":[],"mappings":";;;AAAA,yDAA4D;AAAnD,0HAAA,qBAAqB,OAAA"}