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