@sharpee/stdlib 2.2.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/base/snapshot-utils.js +2 -2
- package/actions/base/snapshot-utils.js.map +1 -1
- package/actions/constants.d.ts +2 -0
- package/actions/constants.d.ts.map +1 -1
- package/actions/constants.js +3 -0
- package/actions/constants.js.map +1 -1
- package/actions/index.d.ts +2 -0
- package/actions/index.d.ts.map +1 -1
- package/actions/index.js +6 -0
- package/actions/index.js.map +1 -1
- package/actions/lifecycle/descriptor.d.ts +111 -0
- package/actions/lifecycle/descriptor.d.ts.map +1 -0
- package/actions/lifecycle/descriptor.js +22 -0
- package/actions/lifecycle/descriptor.js.map +1 -0
- package/actions/lifecycle/index.d.ts +14 -0
- package/actions/lifecycle/index.d.ts.map +1 -0
- package/actions/lifecycle/index.js +27 -0
- package/actions/lifecycle/index.js.map +1 -0
- package/actions/lifecycle/lifecycle-engine.d.ts +173 -0
- package/actions/lifecycle/lifecycle-engine.d.ts.map +1 -0
- package/actions/lifecycle/lifecycle-engine.js +247 -0
- package/actions/lifecycle/lifecycle-engine.js.map +1 -0
- package/actions/lifecycle/multi-object-lifecycle.d.ts +105 -0
- package/actions/lifecycle/multi-object-lifecycle.d.ts.map +1 -0
- package/actions/lifecycle/multi-object-lifecycle.js +136 -0
- package/actions/lifecycle/multi-object-lifecycle.js.map +1 -0
- package/actions/lifecycle/registry.d.ts +39 -0
- package/actions/lifecycle/registry.d.ts.map +1 -0
- package/actions/lifecycle/registry.js +128 -0
- package/actions/lifecycle/registry.js.map +1 -0
- package/actions/standard/asking/asking.d.ts +25 -0
- package/actions/standard/asking/asking.d.ts.map +1 -0
- package/actions/standard/asking/asking.js +114 -0
- package/actions/standard/asking/asking.js.map +1 -0
- package/actions/standard/asking/index.d.ts +5 -0
- package/actions/standard/asking/index.d.ts.map +1 -0
- package/actions/standard/asking/index.js +10 -0
- package/actions/standard/asking/index.js.map +1 -0
- package/actions/standard/attacking/attacking.d.ts +14 -0
- package/actions/standard/attacking/attacking.d.ts.map +1 -1
- package/actions/standard/attacking/attacking.js +138 -94
- package/actions/standard/attacking/attacking.js.map +1 -1
- package/actions/standard/attacking/index.d.ts +1 -1
- package/actions/standard/attacking/index.d.ts.map +1 -1
- package/actions/standard/attacking/index.js +2 -1
- package/actions/standard/attacking/index.js.map +1 -1
- package/actions/standard/climbing/climbing.d.ts +10 -0
- package/actions/standard/climbing/climbing.d.ts.map +1 -1
- package/actions/standard/climbing/climbing.js +51 -11
- package/actions/standard/climbing/climbing.js.map +1 -1
- package/actions/standard/closing/closing.d.ts +6 -0
- package/actions/standard/closing/closing.d.ts.map +1 -1
- package/actions/standard/closing/closing.js +37 -31
- package/actions/standard/closing/closing.js.map +1 -1
- package/actions/standard/cutting/cutting-messages.d.ts +17 -0
- package/actions/standard/cutting/cutting-messages.d.ts.map +1 -0
- package/actions/standard/cutting/cutting-messages.js +22 -0
- package/actions/standard/cutting/cutting-messages.js.map +1 -0
- package/actions/standard/cutting/cutting.d.ts +35 -0
- package/actions/standard/cutting/cutting.d.ts.map +1 -0
- package/actions/standard/cutting/cutting.js +228 -0
- package/actions/standard/cutting/cutting.js.map +1 -0
- package/actions/standard/cutting/index.d.ts +7 -0
- package/actions/standard/cutting/index.d.ts.map +1 -0
- package/actions/standard/cutting/index.js +12 -0
- package/actions/standard/cutting/index.js.map +1 -0
- package/actions/standard/deadly-room-death/deadly-room-death.d.ts +16 -0
- package/actions/standard/deadly-room-death/deadly-room-death.d.ts.map +1 -0
- package/actions/standard/deadly-room-death/deadly-room-death.js +44 -0
- package/actions/standard/deadly-room-death/deadly-room-death.js.map +1 -0
- package/actions/standard/deadly-room-death/index.d.ts +2 -0
- package/actions/standard/deadly-room-death/index.d.ts.map +1 -0
- package/actions/standard/deadly-room-death/index.js +6 -0
- package/actions/standard/deadly-room-death/index.js.map +1 -0
- package/actions/standard/digging/digging-messages.d.ts +17 -0
- package/actions/standard/digging/digging-messages.d.ts.map +1 -0
- package/actions/standard/digging/digging-messages.js +22 -0
- package/actions/standard/digging/digging-messages.js.map +1 -0
- package/actions/standard/digging/digging.d.ts +35 -0
- package/actions/standard/digging/digging.d.ts.map +1 -0
- package/actions/standard/digging/digging.js +228 -0
- package/actions/standard/digging/digging.js.map +1 -0
- package/actions/standard/digging/index.d.ts +7 -0
- package/actions/standard/digging/index.d.ts.map +1 -0
- package/actions/standard/digging/index.js +12 -0
- package/actions/standard/digging/index.js.map +1 -0
- package/actions/standard/drinking/drinking.d.ts +9 -0
- package/actions/standard/drinking/drinking.d.ts.map +1 -1
- package/actions/standard/drinking/drinking.js +40 -2
- package/actions/standard/drinking/drinking.js.map +1 -1
- package/actions/standard/dropping/dropping-types.d.ts +10 -18
- package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-types.js.map +1 -1
- package/actions/standard/dropping/dropping.d.ts +6 -0
- package/actions/standard/dropping/dropping.d.ts.map +1 -1
- package/actions/standard/dropping/dropping.js +86 -108
- package/actions/standard/dropping/dropping.js.map +1 -1
- package/actions/standard/eating/eating.d.ts +9 -0
- package/actions/standard/eating/eating.d.ts.map +1 -1
- package/actions/standard/eating/eating.js +40 -2
- package/actions/standard/eating/eating.js.map +1 -1
- package/actions/standard/entering/entering.d.ts +14 -5
- package/actions/standard/entering/entering.d.ts.map +1 -1
- package/actions/standard/entering/entering.js +45 -67
- package/actions/standard/entering/entering.js.map +1 -1
- package/actions/standard/examining/examining.d.ts +6 -0
- package/actions/standard/examining/examining.d.ts.map +1 -1
- package/actions/standard/examining/examining.js +39 -3
- package/actions/standard/examining/examining.js.map +1 -1
- package/actions/standard/exiting/exiting.d.ts +6 -0
- package/actions/standard/exiting/exiting.d.ts.map +1 -1
- package/actions/standard/exiting/exiting.js +54 -3
- package/actions/standard/exiting/exiting.js.map +1 -1
- package/actions/standard/giving/giving.d.ts +21 -0
- package/actions/standard/giving/giving.d.ts.map +1 -1
- package/actions/standard/giving/giving.js +78 -2
- package/actions/standard/giving/giving.js.map +1 -1
- package/actions/standard/going/going.d.ts +10 -16
- package/actions/standard/going/going.d.ts.map +1 -1
- package/actions/standard/going/going.js +134 -140
- package/actions/standard/going/going.js.map +1 -1
- package/actions/standard/hiding/hiding.d.ts +10 -1
- package/actions/standard/hiding/hiding.d.ts.map +1 -1
- package/actions/standard/hiding/hiding.js +43 -4
- package/actions/standard/hiding/hiding.js.map +1 -1
- package/actions/standard/index.d.ts +5 -0
- package/actions/standard/index.d.ts.map +1 -1
- package/actions/standard/index.js +19 -4
- package/actions/standard/index.js.map +1 -1
- package/actions/standard/inserting/inserting.d.ts +12 -0
- package/actions/standard/inserting/inserting.d.ts.map +1 -1
- package/actions/standard/inserting/inserting.js +70 -5
- package/actions/standard/inserting/inserting.js.map +1 -1
- package/actions/standard/listening/listening.d.ts +12 -1
- package/actions/standard/listening/listening.d.ts.map +1 -1
- package/actions/standard/listening/listening.js +45 -4
- package/actions/standard/listening/listening.js.map +1 -1
- package/actions/standard/locking/locking.d.ts +9 -0
- package/actions/standard/locking/locking.d.ts.map +1 -1
- package/actions/standard/locking/locking.js +62 -3
- package/actions/standard/locking/locking.js.map +1 -1
- package/actions/standard/looking/index.d.ts +1 -0
- package/actions/standard/looking/index.d.ts.map +1 -1
- package/actions/standard/looking/index.js +5 -1
- package/actions/standard/looking/index.js.map +1 -1
- package/actions/standard/looking/snippet-gate-registry.d.ts +55 -0
- package/actions/standard/looking/snippet-gate-registry.d.ts.map +1 -0
- package/actions/standard/looking/snippet-gate-registry.js +63 -0
- package/actions/standard/looking/snippet-gate-registry.js.map +1 -0
- package/actions/standard/looking/snippet-resolver.d.ts +9 -3
- package/actions/standard/looking/snippet-resolver.d.ts.map +1 -1
- package/actions/standard/looking/snippet-resolver.js +75 -4
- package/actions/standard/looking/snippet-resolver.js.map +1 -1
- package/actions/standard/opening/opening-messages.d.ts +3 -0
- package/actions/standard/opening/opening-messages.d.ts.map +1 -1
- package/actions/standard/opening/opening-messages.js +4 -0
- package/actions/standard/opening/opening-messages.js.map +1 -1
- package/actions/standard/opening/opening.d.ts +8 -0
- package/actions/standard/opening/opening.d.ts.map +1 -1
- package/actions/standard/opening/opening.js +73 -39
- package/actions/standard/opening/opening.js.map +1 -1
- package/actions/standard/pulling/pulling.d.ts +9 -0
- package/actions/standard/pulling/pulling.d.ts.map +1 -1
- package/actions/standard/pulling/pulling.js +40 -2
- package/actions/standard/pulling/pulling.js.map +1 -1
- package/actions/standard/pushing/pushing-types.d.ts +3 -6
- package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
- package/actions/standard/pushing/pushing-types.js +3 -1
- package/actions/standard/pushing/pushing-types.js.map +1 -1
- package/actions/standard/pushing/pushing.d.ts +14 -5
- package/actions/standard/pushing/pushing.d.ts.map +1 -1
- package/actions/standard/pushing/pushing.js +51 -71
- package/actions/standard/pushing/pushing.js.map +1 -1
- package/actions/standard/putting/putting-types.d.ts +10 -21
- package/actions/standard/putting/putting-types.d.ts.map +1 -1
- package/actions/standard/putting/putting-types.js +0 -1
- package/actions/standard/putting/putting-types.js.map +1 -1
- package/actions/standard/putting/putting.d.ts +10 -0
- package/actions/standard/putting/putting.d.ts.map +1 -1
- package/actions/standard/putting/putting.js +133 -151
- package/actions/standard/putting/putting.js.map +1 -1
- package/actions/standard/reading/reading.d.ts +6 -0
- package/actions/standard/reading/reading.d.ts.map +1 -1
- package/actions/standard/reading/reading.js +39 -3
- package/actions/standard/reading/reading.js.map +1 -1
- package/actions/standard/removing/removing-types.d.ts +10 -16
- package/actions/standard/removing/removing-types.d.ts.map +1 -1
- package/actions/standard/removing/removing-types.js.map +1 -1
- package/actions/standard/removing/removing.d.ts +13 -0
- package/actions/standard/removing/removing.d.ts.map +1 -1
- package/actions/standard/removing/removing.js +147 -88
- package/actions/standard/removing/removing.js.map +1 -1
- package/actions/standard/searching/searching.d.ts +10 -0
- package/actions/standard/searching/searching.d.ts.map +1 -1
- package/actions/standard/searching/searching.js +44 -8
- package/actions/standard/searching/searching.js.map +1 -1
- package/actions/standard/showing/showing.d.ts +14 -0
- package/actions/standard/showing/showing.d.ts.map +1 -1
- package/actions/standard/showing/showing.js +62 -2
- package/actions/standard/showing/showing.js.map +1 -1
- package/actions/standard/smelling/smelling.d.ts +10 -0
- package/actions/standard/smelling/smelling.d.ts.map +1 -1
- package/actions/standard/smelling/smelling.js +41 -2
- package/actions/standard/smelling/smelling.js.map +1 -1
- package/actions/standard/switching_off/switching_off.d.ts +11 -1
- package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off.js +44 -4
- package/actions/standard/switching_off/switching_off.js.map +1 -1
- package/actions/standard/switching_on/switching_on.d.ts +14 -5
- package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on.js +45 -57
- package/actions/standard/switching_on/switching_on.js.map +1 -1
- package/actions/standard/taking/taking-types.d.ts +14 -32
- package/actions/standard/taking/taking-types.d.ts.map +1 -1
- package/actions/standard/taking/taking-types.js.map +1 -1
- package/actions/standard/taking/taking.d.ts +11 -0
- package/actions/standard/taking/taking.d.ts.map +1 -1
- package/actions/standard/taking/taking.js +107 -111
- package/actions/standard/taking/taking.js.map +1 -1
- package/actions/standard/taking_off/taking-off.d.ts +6 -0
- package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
- package/actions/standard/taking_off/taking-off.js +57 -21
- package/actions/standard/taking_off/taking-off.js.map +1 -1
- package/actions/standard/talking/talking.d.ts +15 -0
- package/actions/standard/talking/talking.d.ts.map +1 -1
- package/actions/standard/talking/talking.js +52 -3
- package/actions/standard/talking/talking.js.map +1 -1
- package/actions/standard/telling/index.d.ts +5 -0
- package/actions/standard/telling/index.d.ts.map +1 -0
- package/actions/standard/telling/index.js +10 -0
- package/actions/standard/telling/index.js.map +1 -0
- package/actions/standard/telling/telling.d.ts +25 -0
- package/actions/standard/telling/telling.d.ts.map +1 -0
- package/actions/standard/telling/telling.js +114 -0
- package/actions/standard/telling/telling.js.map +1 -0
- package/actions/standard/throwing/throwing.d.ts +11 -0
- package/actions/standard/throwing/throwing.d.ts.map +1 -1
- package/actions/standard/throwing/throwing.js +69 -70
- package/actions/standard/throwing/throwing.js.map +1 -1
- package/actions/standard/tool-shared.d.ts +38 -0
- package/actions/standard/tool-shared.d.ts.map +1 -0
- package/actions/standard/tool-shared.js +74 -0
- package/actions/standard/tool-shared.js.map +1 -0
- package/actions/standard/touching/touching.d.ts +9 -0
- package/actions/standard/touching/touching.d.ts.map +1 -1
- package/actions/standard/touching/touching.js +40 -4
- package/actions/standard/touching/touching.js.map +1 -1
- package/actions/standard/turning/index.d.ts +5 -0
- package/actions/standard/turning/index.d.ts.map +1 -0
- package/actions/standard/turning/index.js +9 -0
- package/actions/standard/turning/index.js.map +1 -0
- package/actions/standard/turning/turning.d.ts +17 -0
- package/actions/standard/turning/turning.d.ts.map +1 -0
- package/actions/standard/turning/turning.js +25 -0
- package/actions/standard/turning/turning.js.map +1 -0
- package/actions/standard/unlocking/unlocking.d.ts +9 -0
- package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking.js +62 -3
- package/actions/standard/unlocking/unlocking.js.map +1 -1
- package/actions/standard/wearing/wearing.d.ts +11 -1
- package/actions/standard/wearing/wearing.d.ts.map +1 -1
- package/actions/standard/wearing/wearing.js +57 -12
- package/actions/standard/wearing/wearing.js.map +1 -1
- package/channels/standard.d.ts +13 -10
- package/channels/standard.d.ts.map +1 -1
- package/channels/standard.js +14 -10
- package/channels/standard.js.map +1 -1
- package/death/deadly-room-transformer.d.ts +37 -0
- package/death/deadly-room-transformer.d.ts.map +1 -0
- package/death/deadly-room-transformer.js +79 -0
- package/death/deadly-room-transformer.js.map +1 -0
- package/death/index.d.ts +18 -0
- package/death/index.d.ts.map +1 -0
- package/death/index.js +28 -0
- package/death/index.js.map +1 -0
- package/death/kill-player.d.ts +49 -0
- package/death/kill-player.d.ts.map +1 -0
- package/death/kill-player.js +55 -0
- package/death/kill-player.js.map +1 -0
- package/death/player-death-events.d.ts +40 -0
- package/death/player-death-events.d.ts.map +1 -0
- package/death/player-death-events.js +27 -0
- package/death/player-death-events.js.map +1 -0
- package/death/probabilistic-death.d.ts +23 -0
- package/death/probabilistic-death.d.ts.map +1 -0
- package/death/probabilistic-death.js +27 -0
- package/death/probabilistic-death.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/npc/behaviors.d.ts.map +1 -1
- package/npc/behaviors.js +9 -8
- package/npc/behaviors.js.map +1 -1
- package/npc/npc-service.d.ts +8 -0
- package/npc/npc-service.d.ts.map +1 -1
- package/npc/npc-service.js +19 -18
- package/npc/npc-service.js.map +1 -1
- package/package.json +7 -7
|
@@ -8,52 +8,51 @@
|
|
|
8
8
|
* 3. report: Generate success events with item and container snapshots
|
|
9
9
|
* 4. blocked: Generate error events when validation fails
|
|
10
10
|
*
|
|
11
|
+
* Interceptor consultation (ADR-118) runs through the shared lifecycle
|
|
12
|
+
* engine (ADR-228): `takingLifecycle` declares the interceptor surface and
|
|
13
|
+
* the engine owns hook order, veto semantics, and multi-object per-item
|
|
14
|
+
* lifecycles. This file contains no hand-rolled hook plumbing.
|
|
15
|
+
*
|
|
11
16
|
* Supports multi-object commands:
|
|
12
17
|
* - "take all" - takes all portable reachable items
|
|
13
18
|
* - "take all but X" - takes all except specified items
|
|
14
19
|
* - "take X and Y" - takes multiple specified items
|
|
15
20
|
*/
|
|
16
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.takingAction = void 0;
|
|
22
|
+
exports.takingAction = exports.takingLifecycle = void 0;
|
|
18
23
|
const world_model_1 = require("@sharpee/world-model");
|
|
19
24
|
const constants_1 = require("../../constants");
|
|
20
25
|
const types_1 = require("../../../scope/types");
|
|
21
26
|
const taking_messages_1 = require("./taking-messages");
|
|
22
27
|
const utils_1 = require("../../../utils");
|
|
28
|
+
const lifecycle_1 = require("../../lifecycle");
|
|
23
29
|
// Import type guards and typed interfaces
|
|
24
30
|
const taking_types_1 = require("./taking-types");
|
|
25
31
|
// Import multi-object helpers
|
|
26
32
|
const multi_object_handler_1 = require("../../../helpers/multi-object-handler");
|
|
33
|
+
/**
|
|
34
|
+
* Interceptor surface (ADR-228): the taken item is the only consultable
|
|
35
|
+
* entity of a TAKE command.
|
|
36
|
+
*/
|
|
37
|
+
exports.takingLifecycle = {
|
|
38
|
+
actionId: constants_1.IFActions.TAKING,
|
|
39
|
+
slots: [
|
|
40
|
+
{
|
|
41
|
+
id: 'item',
|
|
42
|
+
actionIds: [constants_1.IFActions.TAKING],
|
|
43
|
+
resolve: (ctx) => ctx.command.directObject?.entity
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
};
|
|
27
47
|
// ============================================================================
|
|
28
48
|
// Helper Functions (standalone to avoid `this` issues in object literal)
|
|
29
49
|
// ============================================================================
|
|
30
50
|
/**
|
|
31
|
-
*
|
|
51
|
+
* Standard validation for taking a single entity (no interceptor logic —
|
|
52
|
+
* the lifecycle engine wraps this with pre/postValidate hooks).
|
|
32
53
|
*/
|
|
33
54
|
function validateSingleEntity(context, noun) {
|
|
34
55
|
const actor = context.player;
|
|
35
|
-
// Check for interceptor on the target entity (ADR-118)
|
|
36
|
-
// This runs first so entity-specific blocks (e.g., white-hot axe) take priority
|
|
37
|
-
const interceptorResult = context.world.getInterceptorForAction(noun, constants_1.IFActions.TAKING);
|
|
38
|
-
if (interceptorResult) {
|
|
39
|
-
const { interceptor } = interceptorResult;
|
|
40
|
-
const interceptorData = {};
|
|
41
|
-
// Store interceptor in sharedData for later phases
|
|
42
|
-
const sharedData = (0, taking_types_1.getTakingSharedData)(context);
|
|
43
|
-
sharedData._interceptor = interceptor;
|
|
44
|
-
sharedData._interceptorData = interceptorData;
|
|
45
|
-
// === PRE-VALIDATE HOOK ===
|
|
46
|
-
if (interceptor.preValidate) {
|
|
47
|
-
const result = interceptor.preValidate(noun, context.world, actor.id, interceptorData);
|
|
48
|
-
if (result !== null && !result.valid) {
|
|
49
|
-
return {
|
|
50
|
-
valid: false,
|
|
51
|
-
error: result.error,
|
|
52
|
-
params: result.params
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
56
|
// Check scope - must be able to reach the item
|
|
58
57
|
const scopeCheck = context.requireScope(noun, types_1.ScopeLevel.REACHABLE);
|
|
59
58
|
if (!scopeCheck.ok) {
|
|
@@ -89,21 +88,6 @@ function validateSingleEntity(context, noun) {
|
|
|
89
88
|
params: { item: (0, utils_1.nounPhraseFor)(noun) }
|
|
90
89
|
};
|
|
91
90
|
}
|
|
92
|
-
// === POST-VALIDATE HOOK ===
|
|
93
|
-
if (interceptorResult) {
|
|
94
|
-
const interceptor = (0, taking_types_1.getTakingSharedData)(context)._interceptor;
|
|
95
|
-
const interceptorData = (0, taking_types_1.getTakingSharedData)(context)._interceptorData ?? {};
|
|
96
|
-
if (interceptor?.postValidate) {
|
|
97
|
-
const result = interceptor.postValidate(noun, context.world, actor.id, interceptorData);
|
|
98
|
-
if (result !== null && !result.valid) {
|
|
99
|
-
return {
|
|
100
|
-
valid: false,
|
|
101
|
-
error: result.error,
|
|
102
|
-
params: result.params
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
91
|
// Use ActorBehavior to validate capacity constraints
|
|
108
92
|
if (!world_model_1.ActorBehavior.canTakeItem(actor, noun, context.world)) {
|
|
109
93
|
// Check if it's a container capacity issue
|
|
@@ -144,53 +128,22 @@ function validateSingleEntity(context, noun) {
|
|
|
144
128
|
return { valid: true };
|
|
145
129
|
}
|
|
146
130
|
/**
|
|
147
|
-
*
|
|
131
|
+
* Execute taking a single entity. Mutation results (previous location,
|
|
132
|
+
* implicit worn-removal) are written into `scratch` — the single-object
|
|
133
|
+
* sharedData or the item's multi-object itemData.
|
|
148
134
|
*/
|
|
149
|
-
function
|
|
150
|
-
const playerId = context.player.id;
|
|
151
|
-
const items = (0, multi_object_handler_1.expandMultiObject)(context, {
|
|
152
|
-
scope: 'reachable',
|
|
153
|
-
// Filter out items already carried by the player
|
|
154
|
-
filter: (entity, world) => world.getLocation(entity.id) !== playerId
|
|
155
|
-
});
|
|
156
|
-
if (items.length === 0) {
|
|
157
|
-
return { valid: false, error: taking_messages_1.TakingMessages.NOTHING_TO_TAKE };
|
|
158
|
-
}
|
|
159
|
-
// Validate each entity, store results
|
|
160
|
-
const results = items.map(item => {
|
|
161
|
-
const validation = validateSingleEntity(context, item.entity);
|
|
162
|
-
return {
|
|
163
|
-
entity: item.entity,
|
|
164
|
-
success: validation.valid,
|
|
165
|
-
error: validation.valid ? undefined : validation.error
|
|
166
|
-
};
|
|
167
|
-
});
|
|
168
|
-
// Store results for execute/report phases
|
|
169
|
-
const sharedData = (0, taking_types_1.getTakingSharedData)(context);
|
|
170
|
-
sharedData.multiObjectResults = results;
|
|
171
|
-
// Valid if at least one can be taken
|
|
172
|
-
const anySuccess = results.some(r => r.success);
|
|
173
|
-
if (!anySuccess) {
|
|
174
|
-
// All failed - return the first error
|
|
175
|
-
return { valid: false, error: results[0].error };
|
|
176
|
-
}
|
|
177
|
-
return { valid: true };
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Execute taking a single entity
|
|
181
|
-
*/
|
|
182
|
-
function executeSingleEntity(context, noun, result) {
|
|
135
|
+
function executeSingleEntity(context, noun, scratch) {
|
|
183
136
|
const actor = context.player;
|
|
184
137
|
// Capture context BEFORE any mutations
|
|
185
138
|
const previousLocation = context.world.getLocation(noun.id);
|
|
186
|
-
|
|
139
|
+
scratch.previousLocation = previousLocation;
|
|
187
140
|
// Check if item is worn and needs to be removed first
|
|
188
141
|
if (noun.has(world_model_1.TraitType.WEARABLE)) {
|
|
189
142
|
const wearableTrait = noun.get(world_model_1.TraitType.WEARABLE);
|
|
190
143
|
if ((0, taking_types_1.isWearableTrait)(wearableTrait) && (wearableTrait.isWorn ?? wearableTrait.worn)) {
|
|
191
144
|
// Mark that we implicitly removed a worn item
|
|
192
|
-
|
|
193
|
-
|
|
145
|
+
scratch.implicitlyRemoved = true;
|
|
146
|
+
scratch.wasWorn = true;
|
|
194
147
|
// Get the wearer (the one who has the item currently)
|
|
195
148
|
const wearer = previousLocation ? context.world.getEntity(previousLocation) : null;
|
|
196
149
|
// Remove the worn status
|
|
@@ -213,11 +166,11 @@ function executeSingleEntity(context, noun, result) {
|
|
|
213
166
|
* Uses simplified event pattern (ADR-097): domain event carries messageId directly.
|
|
214
167
|
* Text-service looks up message from domain event - no separate action.success needed.
|
|
215
168
|
*/
|
|
216
|
-
function reportSingleSuccess(context, noun,
|
|
169
|
+
function reportSingleSuccess(context, noun, scratch, events, isMultiObject = false) {
|
|
217
170
|
const actor = context.player;
|
|
218
171
|
// Check if we implicitly removed a worn item
|
|
219
|
-
if (
|
|
220
|
-
const previousLocation =
|
|
172
|
+
if (scratch.implicitlyRemoved) {
|
|
173
|
+
const previousLocation = scratch.previousLocation;
|
|
221
174
|
const container = previousLocation ? context.world.getEntity(previousLocation) : null;
|
|
222
175
|
events.push(context.event('if.event.removed', {
|
|
223
176
|
implicit: true,
|
|
@@ -226,7 +179,7 @@ function reportSingleSuccess(context, noun, result, events, isMultiObject = fals
|
|
|
226
179
|
}));
|
|
227
180
|
}
|
|
228
181
|
// Determine if taken from a container/supporter
|
|
229
|
-
const previousLocation =
|
|
182
|
+
const previousLocation = scratch.previousLocation;
|
|
230
183
|
const isFromContainerOrSupporter = previousLocation &&
|
|
231
184
|
previousLocation !== context.world.getLocation(actor.id);
|
|
232
185
|
// Get container name for message
|
|
@@ -250,7 +203,7 @@ function reportSingleSuccess(context, noun, result, events, isMultiObject = fals
|
|
|
250
203
|
itemId: noun.id,
|
|
251
204
|
actor: actor.name,
|
|
252
205
|
actorId: actor.id,
|
|
253
|
-
previousLocation:
|
|
206
|
+
previousLocation: scratch.previousLocation,
|
|
254
207
|
container: containerEntity ? (0, utils_1.nounPhraseFor)(containerEntity) : ''
|
|
255
208
|
};
|
|
256
209
|
// Emit domain event with messageId (simplified pattern - ADR-097).
|
|
@@ -263,7 +216,7 @@ function reportSingleSuccess(context, noun, result, events, isMultiObject = fals
|
|
|
263
216
|
itemId: noun.id,
|
|
264
217
|
actor: actor.name,
|
|
265
218
|
actorId: actor.id,
|
|
266
|
-
previousLocation:
|
|
219
|
+
previousLocation: scratch.previousLocation,
|
|
267
220
|
container: containerEntity?.name || ''
|
|
268
221
|
}));
|
|
269
222
|
}
|
|
@@ -310,54 +263,78 @@ exports.takingAction = {
|
|
|
310
263
|
directObjectScope: types_1.ScopeLevel.REACHABLE
|
|
311
264
|
},
|
|
312
265
|
validate(context) {
|
|
313
|
-
// Check for multi-object command
|
|
266
|
+
// Check for multi-object command — full per-item lifecycle (ADR-228 D4)
|
|
314
267
|
if ((0, multi_object_handler_1.isMultiObjectCommand)(context)) {
|
|
315
|
-
|
|
268
|
+
const playerId = context.player.id;
|
|
269
|
+
const items = (0, multi_object_handler_1.expandMultiObject)(context, {
|
|
270
|
+
scope: 'reachable',
|
|
271
|
+
// Filter out items already carried by the player
|
|
272
|
+
filter: (entity, world) => world.getLocation(entity.id) !== playerId
|
|
273
|
+
}).map(i => i.entity);
|
|
274
|
+
if (items.length === 0) {
|
|
275
|
+
return { valid: false, error: taking_messages_1.TakingMessages.NOTHING_TO_TAKE };
|
|
276
|
+
}
|
|
277
|
+
const results = (0, lifecycle_1.runMultiObjectValidate)(context, exports.takingLifecycle, 'item', items, (ctx, item) => validateSingleEntity(ctx, item));
|
|
278
|
+
// Valid if at least one can be taken; all-fail returns the first error
|
|
279
|
+
if (!results.some(r => r.success)) {
|
|
280
|
+
return { valid: false, error: results[0].error, params: results[0].errorParams };
|
|
281
|
+
}
|
|
282
|
+
return { valid: true };
|
|
316
283
|
}
|
|
317
284
|
// Single object validation
|
|
318
285
|
const noun = context.command.directObject?.entity;
|
|
319
286
|
if (!noun) {
|
|
320
287
|
return { valid: false, error: taking_messages_1.TakingMessages.NO_TARGET };
|
|
321
288
|
}
|
|
322
|
-
|
|
289
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.takingLifecycle);
|
|
290
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
291
|
+
if (preVeto)
|
|
292
|
+
return preVeto;
|
|
293
|
+
const standard = validateSingleEntity(context, noun);
|
|
294
|
+
if (!standard.valid)
|
|
295
|
+
return standard;
|
|
296
|
+
// Canonical placement (ADR-228): postValidate runs after ALL standard validation
|
|
297
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
298
|
+
if (postVeto)
|
|
299
|
+
return postVeto;
|
|
300
|
+
return { valid: true };
|
|
323
301
|
},
|
|
324
302
|
execute(context) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
if (
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
executeSingleEntity(context, result.entity, result);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
303
|
+
// Multi-object command: per-item execute + postExecute hooks (D4)
|
|
304
|
+
const multi = (0, lifecycle_1.getMultiObjectLifecycle)(context);
|
|
305
|
+
if (multi) {
|
|
306
|
+
(0, lifecycle_1.runMultiObjectExecute)(context, multi, (ctx, item, itemData) => {
|
|
307
|
+
executeSingleEntity(ctx, item, itemData);
|
|
308
|
+
});
|
|
334
309
|
return;
|
|
335
310
|
}
|
|
336
311
|
// Single object execution
|
|
337
312
|
const noun = context.command.directObject.entity;
|
|
338
|
-
executeSingleEntity(context, noun,
|
|
313
|
+
executeSingleEntity(context, noun, (0, taking_types_1.getTakingSharedData)(context));
|
|
314
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
315
|
+
if (state)
|
|
316
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
339
317
|
},
|
|
340
318
|
report(context) {
|
|
341
|
-
const sharedData = (0, taking_types_1.getTakingSharedData)(context);
|
|
342
319
|
const events = [];
|
|
343
|
-
//
|
|
344
|
-
|
|
345
|
-
|
|
320
|
+
// Multi-object command: per-item success/blocked events + hooks (D4)
|
|
321
|
+
const multi = (0, lifecycle_1.getMultiObjectLifecycle)(context);
|
|
322
|
+
if (multi) {
|
|
346
323
|
// Use compact format when multiple items
|
|
347
|
-
const isMultiObject =
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
reportSingleBlocked(context, result.entity, result.error, events);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
324
|
+
const isMultiObject = multi.length > 1;
|
|
325
|
+
(0, lifecycle_1.runMultiObjectReport)(context, multi, events, 'if.event.taken', 'if.event.take_blocked', (ctx, item, itemData, evts) => {
|
|
326
|
+
reportSingleSuccess(ctx, item, itemData, evts, isMultiObject);
|
|
327
|
+
}, (ctx, item, error, _errorParams, evts) => {
|
|
328
|
+
reportSingleBlocked(ctx, item, error, evts);
|
|
329
|
+
});
|
|
356
330
|
return events;
|
|
357
331
|
}
|
|
358
332
|
// Single object report
|
|
359
333
|
const noun = context.command.directObject.entity;
|
|
360
|
-
reportSingleSuccess(context, noun,
|
|
334
|
+
reportSingleSuccess(context, noun, (0, taking_types_1.getTakingSharedData)(context), events, false);
|
|
335
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
336
|
+
if (state)
|
|
337
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.taken');
|
|
361
338
|
return events;
|
|
362
339
|
},
|
|
363
340
|
blocked(context, result) {
|
|
@@ -368,7 +345,7 @@ exports.takingAction = {
|
|
|
368
345
|
// short keys (e.g., 'fixed_in_place') get the action ID prefix
|
|
369
346
|
const error = result.error || '';
|
|
370
347
|
const messageId = error.includes('.') ? error : `${context.action.id}.${error}`;
|
|
371
|
-
|
|
348
|
+
const events = [context.event('if.event.take_blocked', {
|
|
372
349
|
// Rendering data — EntityInfo for the formatter chain (ADR-158)
|
|
373
350
|
messageId,
|
|
374
351
|
params: {
|
|
@@ -380,6 +357,25 @@ exports.takingAction = {
|
|
|
380
357
|
itemId: noun?.id,
|
|
381
358
|
reason: result.error
|
|
382
359
|
})];
|
|
360
|
+
if (result.error) {
|
|
361
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
362
|
+
if (state) {
|
|
363
|
+
// Single-object path: notify all consultations (ADR-228 D2/D3)
|
|
364
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.take_blocked', result.error);
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
// Multi-object all-fail path: the blocked event carries the FIRST
|
|
368
|
+
// failed item's error, so only that item's consultations are
|
|
369
|
+
// notified here — the other items produced no events for hooks to
|
|
370
|
+
// decorate. (Partial failures are handled per item in report().)
|
|
371
|
+
const multi = (0, lifecycle_1.getMultiObjectLifecycle)(context);
|
|
372
|
+
const first = multi?.[0];
|
|
373
|
+
if (first && !first.success) {
|
|
374
|
+
(0, lifecycle_1.runOnBlocked)(context, first.state, events, 'if.event.take_blocked', first.error ?? result.error);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return events;
|
|
383
379
|
},
|
|
384
380
|
group: "object_manipulation"
|
|
385
381
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taking.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/taking/taking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taking.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/taking/taking.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { Action } from '../../enhanced-types';
|
|
14
14
|
import { ActionMetadata } from '../../../validation';
|
|
15
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
16
|
+
/**
|
|
17
|
+
* Interceptor surface (ADR-228): the worn item is the only consultable
|
|
18
|
+
* entity of a TAKE OFF command.
|
|
19
|
+
*/
|
|
20
|
+
export declare const takingOffLifecycle: ActionLifecycleDescriptor;
|
|
15
21
|
export declare const takingOffAction: Action & {
|
|
16
22
|
metadata: ActionMetadata;
|
|
17
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taking-off.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/taking_off/taking-off.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"taking-off.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/taking_off/taking-off.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAarD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,yBAShC,CAAC;AAuBF,eAAO,MAAM,eAAe,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA8LhE,CAAC"}
|
|
@@ -12,12 +12,27 @@
|
|
|
12
12
|
* 4. report: Generate success events from sharedData
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.takingOffAction = void 0;
|
|
15
|
+
exports.takingOffAction = exports.takingOffLifecycle = void 0;
|
|
16
16
|
const world_model_1 = require("@sharpee/world-model");
|
|
17
17
|
const constants_1 = require("../../constants");
|
|
18
18
|
const scope_1 = require("../../../scope");
|
|
19
19
|
const utils_1 = require("../../../utils");
|
|
20
20
|
const wearable_shared_1 = require("../wearable-shared");
|
|
21
|
+
const lifecycle_1 = require("../../lifecycle");
|
|
22
|
+
/**
|
|
23
|
+
* Interceptor surface (ADR-228): the worn item is the only consultable
|
|
24
|
+
* entity of a TAKE OFF command.
|
|
25
|
+
*/
|
|
26
|
+
exports.takingOffLifecycle = {
|
|
27
|
+
actionId: constants_1.IFActions.TAKING_OFF,
|
|
28
|
+
slots: [
|
|
29
|
+
{
|
|
30
|
+
id: 'item',
|
|
31
|
+
actionIds: [constants_1.IFActions.TAKING_OFF],
|
|
32
|
+
resolve: (ctx) => ctx.command.directObject?.entity
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
};
|
|
21
36
|
function getTakingOffSharedData(context) {
|
|
22
37
|
return context.sharedData;
|
|
23
38
|
}
|
|
@@ -41,6 +56,10 @@ exports.takingOffAction = {
|
|
|
41
56
|
if (!item) {
|
|
42
57
|
return { valid: false, error: 'no_target' };
|
|
43
58
|
}
|
|
59
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.takingOffLifecycle);
|
|
60
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
61
|
+
if (preVeto)
|
|
62
|
+
return preVeto;
|
|
44
63
|
if (!item.has(world_model_1.TraitType.WEARABLE)) {
|
|
45
64
|
return { valid: false, error: 'not_wearing', params: { item: (0, utils_1.nounPhraseFor)(item) } };
|
|
46
65
|
}
|
|
@@ -54,6 +73,21 @@ exports.takingOffAction = {
|
|
|
54
73
|
}
|
|
55
74
|
return { valid: false, error: 'cant_remove', params: { item: (0, utils_1.nounPhraseFor)(item) } };
|
|
56
75
|
}
|
|
76
|
+
// Folded execute-phase refusals (ADR-229 R1): both are pure reads, so
|
|
77
|
+
// they run as standard validation and their failures flow through
|
|
78
|
+
// blocked() → onBlocked like every other refusal.
|
|
79
|
+
const wearableContext = (0, wearable_shared_1.analyzeWearableContext)(context, item, actor);
|
|
80
|
+
const blockingItem = (0, wearable_shared_1.checkRemovalBlockers)(wearableContext);
|
|
81
|
+
if (blockingItem) {
|
|
82
|
+
return { valid: false, error: 'prevents_removal', params: { blocking: (0, utils_1.nounPhraseFor)(blockingItem) } };
|
|
83
|
+
}
|
|
84
|
+
if ((0, wearable_shared_1.hasRemovalRestrictions)(wearableContext.wearableTrait)) {
|
|
85
|
+
return { valid: false, error: 'cant_remove', params: { item: (0, utils_1.nounPhraseFor)(item) } };
|
|
86
|
+
}
|
|
87
|
+
// Canonical placement (ADR-228): postValidate runs after ALL standard validation
|
|
88
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
89
|
+
if (postVeto)
|
|
90
|
+
return postVeto;
|
|
57
91
|
return { valid: true };
|
|
58
92
|
},
|
|
59
93
|
execute(context) {
|
|
@@ -69,24 +103,9 @@ exports.takingOffAction = {
|
|
|
69
103
|
// Store body part and layer
|
|
70
104
|
sharedData.bodyPart = wearableTrait.bodyPart;
|
|
71
105
|
sharedData.layer = wearableTrait.layer;
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
sharedData.failed = true;
|
|
76
|
-
sharedData.errorMessageId = 'prevents_removal';
|
|
77
|
-
sharedData.errorReason = 'prevents_removal';
|
|
78
|
-
sharedData.errorParams = { blocking: (0, utils_1.nounPhraseFor)(blockingItem) };
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
// Check if removing this would cause problems (e.g., cursed items).
|
|
82
|
-
// params carry EntityInfo for the formatter chain (ADR-158).
|
|
83
|
-
if ((0, wearable_shared_1.hasRemovalRestrictions)(wearableTrait)) {
|
|
84
|
-
sharedData.failed = true;
|
|
85
|
-
sharedData.errorMessageId = 'cant_remove';
|
|
86
|
-
sharedData.errorReason = 'cant_remove';
|
|
87
|
-
sharedData.errorParams = { item: (0, utils_1.nounPhraseFor)(item) };
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
106
|
+
// Layering blockers and removal restrictions are validate-phase
|
|
107
|
+
// refusals now (ADR-229 R1) — execute only keeps the behavior-result
|
|
108
|
+
// defensive branch below as the true safety net.
|
|
90
109
|
// Delegate state change to behavior
|
|
91
110
|
const result = world_model_1.WearableBehavior.remove(item, actor);
|
|
92
111
|
// Handle failure cases (defensive checks)
|
|
@@ -113,6 +132,13 @@ exports.takingOffAction = {
|
|
|
113
132
|
sharedData.failed = false;
|
|
114
133
|
sharedData.params = (0, wearable_shared_1.buildWearableEventParams)(item, wearableTrait);
|
|
115
134
|
sharedData.messageId = 'removed';
|
|
135
|
+
// Interceptor lifecycle (ADR-228): postExecute runs after the successful
|
|
136
|
+
// mutation only — the defensive behavior-failure branch above
|
|
137
|
+
// early-returns with sharedData.failed and skips it, matching the
|
|
138
|
+
// switching_on precedent.
|
|
139
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
140
|
+
if (state)
|
|
141
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
116
142
|
},
|
|
117
143
|
/**
|
|
118
144
|
* Generate events when validation fails
|
|
@@ -121,7 +147,7 @@ exports.takingOffAction = {
|
|
|
121
147
|
*/
|
|
122
148
|
blocked(context, result) {
|
|
123
149
|
const item = context.command.directObject?.entity;
|
|
124
|
-
|
|
150
|
+
const events = [context.event('if.event.take_off_blocked', {
|
|
125
151
|
// Rendering data
|
|
126
152
|
messageId: `${context.action.id}.${result.error}`,
|
|
127
153
|
params: result.params || {},
|
|
@@ -130,6 +156,12 @@ exports.takingOffAction = {
|
|
|
130
156
|
itemName: item?.name,
|
|
131
157
|
reason: result.error
|
|
132
158
|
})];
|
|
159
|
+
if (result.error) {
|
|
160
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
161
|
+
if (state)
|
|
162
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.take_off_blocked', result.error);
|
|
163
|
+
}
|
|
164
|
+
return events;
|
|
133
165
|
},
|
|
134
166
|
/**
|
|
135
167
|
* Report phase - generates events after successful execution
|
|
@@ -149,7 +181,7 @@ exports.takingOffAction = {
|
|
|
149
181
|
})];
|
|
150
182
|
}
|
|
151
183
|
// Emit domain event with messageId (simplified pattern - ADR-097)
|
|
152
|
-
|
|
184
|
+
const events = [
|
|
153
185
|
context.event('if.event.removed', {
|
|
154
186
|
// Rendering data (messageId + params for text-service)
|
|
155
187
|
messageId: `${context.action.id}.${sharedData.messageId}`,
|
|
@@ -162,6 +194,10 @@ exports.takingOffAction = {
|
|
|
162
194
|
layer: sharedData.layer
|
|
163
195
|
})
|
|
164
196
|
];
|
|
197
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
198
|
+
if (state)
|
|
199
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.removed');
|
|
200
|
+
return events;
|
|
165
201
|
},
|
|
166
202
|
metadata: {
|
|
167
203
|
requiresDirectObject: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taking-off.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/taking_off/taking-off.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,sDAAkF;AAClF,+CAA4C;AAC5C,0CAA4C;AAE5C,0CAA+C;AAC/C,wDAK4B;
|
|
1
|
+
{"version":3,"file":"taking-off.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/taking_off/taking-off.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,sDAAkF;AAClF,+CAA4C;AAC5C,0CAA4C;AAE5C,0CAA+C;AAC/C,wDAK4B;AAC5B,+CASyB;AAEzB;;;GAGG;AACU,QAAA,kBAAkB,GAA8B;IAC3D,QAAQ,EAAE,qBAAS,CAAC,UAAU;IAC9B,KAAK,EAAE;QACL;YACE,EAAE,EAAE,MAAM;YACV,SAAS,EAAE,CAAC,qBAAS,CAAC,UAAU,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM;SACnD;KACF;CACF,CAAC;AAmBF,SAAS,sBAAsB,CAAC,OAAsB;IACpD,OAAO,OAAO,CAAC,UAAiC,CAAC;AACnD,CAAC;AAEY,QAAA,eAAe,GAA0C;IACpE,EAAE,EAAE,qBAAS,CAAC,UAAU;IAExB,qDAAqD;IACrD,YAAY,EAAE;QACZ,IAAI,EAAE,kBAAU,CAAC,OAAO,CAAE,sDAAsD;KACjF;IAED,gBAAgB,EAAE;QAChB,WAAW;QACX,aAAa;QACb,SAAS;QACT,aAAa;QACb,kBAAkB;KACnB;IACD,KAAK,EAAE,uBAAuB;IAE9B,QAAQ,CAAC,OAAsB;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QAElD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,OAAO,EAAE,0BAAkB,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACvF,CAAC;QAED,IAAI,CAAC,8BAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAS,CAAC,QAAQ,CAAkB,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACvF,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;gBACjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACvF,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACvF,CAAC;QAED,sEAAsE;QACtE,kEAAkE;QAClE,kDAAkD;QAClD,MAAM,eAAe,GAAG,IAAA,wCAAsB,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,IAAA,sCAAoB,EAAC,eAAe,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAA,qBAAa,EAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACxG,CAAC;QACD,IAAI,IAAA,wCAAsB,EAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACvF,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,OAAO,CAAC,OAAsB;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAa,CAAC,MAAO,CAAC;QACnD,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEnD,mBAAmB;QACnB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAEhC,+BAA+B;QAC/B,MAAM,eAAe,GAAG,IAAA,wCAAsB,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC;QAE1C,4BAA4B;QAC5B,UAAU,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QAC7C,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QAEvC,gEAAgE;QAChE,qEAAqE;QACrE,iDAAiD;QAEjD,oCAAoC;QACpC,MAAM,MAAM,GAAG,8BAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEpD,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,UAAU,CAAC,cAAc,GAAG,aAAa,CAAC;gBAC1C,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC;gBACvC,UAAU,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACzD,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9B,UAAU,CAAC,cAAc,GAAG,aAAa,CAAC;gBAC1C,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC;gBACzC,UAAU,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,cAAc,GAAG,aAAa,CAAC;gBAC1C,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC;gBACvC,UAAU,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,OAAO;QACT,CAAC;QAED,UAAU;QACV,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;QAC1B,UAAU,CAAC,MAAM,GAAG,IAAA,0CAAwB,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAClE,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QAEjC,yEAAyE;QACzE,8DAA8D;QAC9D,kEAAkE;QAClE,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,0BAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAsB,EAAE,MAAwB;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QAElD,MAAM,MAAM,GAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBAC3E,iBAAiB;gBACjB,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;gBAC3B,cAAc;gBACd,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChB,QAAQ,EAAE,IAAI,EAAE,IAAI;gBACpB,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,2BAA2B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAsB;QAC3B,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEnD,0EAA0E;QAC1E,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBACjD,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,cAAc,EAAE;oBAC9D,MAAM,EAAE,UAAU,CAAC,WAAW,IAAI,EAAE;oBACpC,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,MAAM,EAAE,UAAU,CAAC,WAAW;iBAC/B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,kEAAkE;QAClE,MAAM,MAAM,GAAqB;YAC/B,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE;gBAChC,uDAAuD;gBACvD,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE;gBACzD,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,8CAA8C;gBAC9C,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC;SACH,CAAC;QAEF,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,IAAA,yBAAa,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAErE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,EAAE;QACR,oBAAoB,EAAE,IAAI;QAC1B,sBAAsB,EAAE,KAAK;QAC7B,iBAAiB,EAAE,kBAAU,CAAC,OAAO;KACtC;CACF,CAAC"}
|
|
@@ -9,9 +9,24 @@
|
|
|
9
9
|
* 2. execute: Analyze conversation state (no world mutations)
|
|
10
10
|
* 3. blocked: Handle validation failures
|
|
11
11
|
* 4. report: Emit talked event and success message
|
|
12
|
+
*
|
|
13
|
+
* Interceptor consultation (ADR-118) runs through the shared lifecycle
|
|
14
|
+
* engine (ADR-228) via `talkingLifecycle` — no hand-rolled hook plumbing.
|
|
12
15
|
*/
|
|
13
16
|
import { Action } from '../../enhanced-types';
|
|
14
17
|
import { ActionMetadata } from '../../../validation';
|
|
18
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
19
|
+
/**
|
|
20
|
+
* Interceptor surface (ADR-228): the person talked to is the only
|
|
21
|
+
* consultable entity of a TALK command.
|
|
22
|
+
*
|
|
23
|
+
* Wiring this closed a live Dungeo dead-registration bug (ADR-118 hook
|
|
24
|
+
* audit): `TrollTalkingInterceptor` — a preValidate veto implementing the
|
|
25
|
+
* MDL-canon "Unfortunately, the troll can't hear you" when the troll is
|
|
26
|
+
* incapacitated — was registered under `if.action.talking` but never
|
|
27
|
+
* consulted, because talking was unwired.
|
|
28
|
+
*/
|
|
29
|
+
export declare const talkingLifecycle: ActionLifecycleDescriptor;
|
|
15
30
|
export declare const talkingAction: Action & {
|
|
16
31
|
metadata: ActionMetadata;
|
|
17
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talking.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/talking/talking.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"talking.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/talking/talking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAK/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,yBAS9B,CAAC;AAeF,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAgO9D,CAAC"}
|