@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
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiggingMessages = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Message constants for the digging action (ADR-230 Phase 6)
|
|
6
|
+
*
|
|
7
|
+
* These constants provide type safety for message IDs within stdlib.
|
|
8
|
+
* The lang-en-us package uses matching string literals (stable, injected at runtime).
|
|
9
|
+
*/
|
|
10
|
+
exports.DiggingMessages = {
|
|
11
|
+
// Error messages
|
|
12
|
+
NO_TARGET: 'no_target',
|
|
13
|
+
NOT_DIGGABLE: 'not_diggable',
|
|
14
|
+
CANT_DIG: 'cant_dig',
|
|
15
|
+
// Tool requirement (shared ids from tool-shared.ts)
|
|
16
|
+
NO_TOOL: 'no_tool',
|
|
17
|
+
TOOL_NOT_HELD: 'tool_not_held',
|
|
18
|
+
WRONG_TOOL: 'wrong_tool',
|
|
19
|
+
// Success message (typically overridden by the entity's implementation)
|
|
20
|
+
DUG: 'dug',
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=digging-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digging-messages.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/digging/digging-messages.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,eAAe,GAAG;IAC7B,iBAAiB;IACjB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,oDAAoD;IACpD,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IAExB,wEAAwE;IACxE,GAAG,EAAE,KAAK;CACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Digging action (ADR-230 Phase 6 (sketch ruling 6, cutting template)) — trait-gated, implementation-dispatching.
|
|
3
|
+
*
|
|
4
|
+
* The action itself performs NO mutation. DiggableTrait gates eligibility
|
|
5
|
+
* and carries the author-configured tool requirement; the dig OUTCOME is
|
|
6
|
+
* the target entity's own registered implementation, on either surface
|
|
7
|
+
* (dual-surface re-pin, 2026-07-17):
|
|
8
|
+
* - an ADR-090 capability behavior registered for if.action.digging
|
|
9
|
+
* (TS authors), invoked from execute/report/blocked; or
|
|
10
|
+
* - an ADR-228 interceptor (Chord `on digging it`) whose postExecute
|
|
11
|
+
* owns the mutation and whose postReport owns the narration.
|
|
12
|
+
*
|
|
13
|
+
* A diggable entity with NEITHER surface refuses with cant_dig — the
|
|
14
|
+
* runtime safety net behind the Chord loader's load-time check.
|
|
15
|
+
*
|
|
16
|
+
* Four-phase pattern (ADR-051):
|
|
17
|
+
* 1. validate: diggable gate, tool requirement, implementation presence
|
|
18
|
+
* 2. execute: delegate to the capability behavior, if that's the surface
|
|
19
|
+
* 3. report: behavior effects, or the standard cut event for interceptors
|
|
20
|
+
* 4. blocked: standard blocked event through the lifecycle engine
|
|
21
|
+
*/
|
|
22
|
+
import { Action } from '../../enhanced-types';
|
|
23
|
+
import { ActionMetadata } from '../../../validation';
|
|
24
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
25
|
+
/**
|
|
26
|
+
* Interceptor surface (ADR-228, ADR-230 Phase 6 (sketch ruling 6, cutting template)): the cut target and any
|
|
27
|
+
* explicit tool are the consultable entities of a DIG command, published
|
|
28
|
+
* order target → tool (D3-B). Explicit tools only — mirrors locking's key
|
|
29
|
+
* slot (ADR-229 R2).
|
|
30
|
+
*/
|
|
31
|
+
export declare const diggingLifecycle: ActionLifecycleDescriptor;
|
|
32
|
+
export declare const diggingAction: Action & {
|
|
33
|
+
metadata: ActionMetadata;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=digging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digging.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/digging/digging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAU/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EACL,yBAAyB,EAQ1B,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,yBA6B9B,CAAC;AAqBF,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAqL9D,CAAC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Digging action (ADR-230 Phase 6 (sketch ruling 6, cutting template)) — trait-gated, implementation-dispatching.
|
|
4
|
+
*
|
|
5
|
+
* The action itself performs NO mutation. DiggableTrait gates eligibility
|
|
6
|
+
* and carries the author-configured tool requirement; the dig OUTCOME is
|
|
7
|
+
* the target entity's own registered implementation, on either surface
|
|
8
|
+
* (dual-surface re-pin, 2026-07-17):
|
|
9
|
+
* - an ADR-090 capability behavior registered for if.action.digging
|
|
10
|
+
* (TS authors), invoked from execute/report/blocked; or
|
|
11
|
+
* - an ADR-228 interceptor (Chord `on digging it`) whose postExecute
|
|
12
|
+
* owns the mutation and whose postReport owns the narration.
|
|
13
|
+
*
|
|
14
|
+
* A diggable entity with NEITHER surface refuses with cant_dig — the
|
|
15
|
+
* runtime safety net behind the Chord loader's load-time check.
|
|
16
|
+
*
|
|
17
|
+
* Four-phase pattern (ADR-051):
|
|
18
|
+
* 1. validate: diggable gate, tool requirement, implementation presence
|
|
19
|
+
* 2. execute: delegate to the capability behavior, if that's the surface
|
|
20
|
+
* 3. report: behavior effects, or the standard cut event for interceptors
|
|
21
|
+
* 4. blocked: standard blocked event through the lifecycle engine
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.diggingAction = exports.diggingLifecycle = void 0;
|
|
25
|
+
const world_model_1 = require("@sharpee/world-model");
|
|
26
|
+
const constants_1 = require("../../constants");
|
|
27
|
+
const types_1 = require("../../../scope/types");
|
|
28
|
+
const digging_messages_1 = require("./digging-messages");
|
|
29
|
+
const tool_shared_1 = require("../tool-shared");
|
|
30
|
+
const utils_1 = require("../../../utils");
|
|
31
|
+
const lifecycle_1 = require("../../lifecycle");
|
|
32
|
+
/**
|
|
33
|
+
* Interceptor surface (ADR-228, ADR-230 Phase 6 (sketch ruling 6, cutting template)): the cut target and any
|
|
34
|
+
* explicit tool are the consultable entities of a DIG command, published
|
|
35
|
+
* order target → tool (D3-B). Explicit tools only — mirrors locking's key
|
|
36
|
+
* slot (ADR-229 R2).
|
|
37
|
+
*/
|
|
38
|
+
exports.diggingLifecycle = {
|
|
39
|
+
actionId: constants_1.IFActions.DIGGING,
|
|
40
|
+
slots: [
|
|
41
|
+
{
|
|
42
|
+
id: 'target',
|
|
43
|
+
actionIds: [constants_1.IFActions.DIGGING],
|
|
44
|
+
resolve: (ctx) => ctx.command.directObject?.entity,
|
|
45
|
+
seedData: (ctx, entity) => {
|
|
46
|
+
const tool = ctx.command.instrument?.entity ?? ctx.command.indirectObject?.entity;
|
|
47
|
+
return {
|
|
48
|
+
targetId: entity.id,
|
|
49
|
+
targetName: entity.name,
|
|
50
|
+
toolId: tool?.id,
|
|
51
|
+
toolName: tool?.name
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 'tool',
|
|
57
|
+
actionIds: [constants_1.IFActions.DIGGING],
|
|
58
|
+
resolve: (ctx) => ctx.command.instrument?.entity ?? ctx.command.indirectObject?.entity,
|
|
59
|
+
seedData: (ctx, entity) => ({
|
|
60
|
+
toolId: entity.id,
|
|
61
|
+
toolName: entity.name,
|
|
62
|
+
targetId: ctx.command.directObject?.entity?.id,
|
|
63
|
+
targetName: ctx.command.directObject?.entity?.name
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Convert capability effects to semantic events. Effect messageIds are
|
|
70
|
+
* forwarded unchanged — implementations MUST emit fully-qualified ids
|
|
71
|
+
* (stdlib CLAUDE.md capability-effect rule; short keys render blank on
|
|
72
|
+
* the universal dispatch path).
|
|
73
|
+
*/
|
|
74
|
+
function effectsToEvents(effects, context) {
|
|
75
|
+
return effects.map((effect) => context.event(effect.type, { ...effect.payload }));
|
|
76
|
+
}
|
|
77
|
+
exports.diggingAction = {
|
|
78
|
+
id: constants_1.IFActions.DIGGING,
|
|
79
|
+
defaultScope: {
|
|
80
|
+
target: types_1.ScopeLevel.REACHABLE
|
|
81
|
+
},
|
|
82
|
+
requiresHolding: false,
|
|
83
|
+
requiredMessages: [
|
|
84
|
+
'no_target',
|
|
85
|
+
'not_diggable',
|
|
86
|
+
'cant_dig',
|
|
87
|
+
'no_tool',
|
|
88
|
+
'tool_not_held',
|
|
89
|
+
'wrong_tool',
|
|
90
|
+
'dug'
|
|
91
|
+
],
|
|
92
|
+
metadata: {
|
|
93
|
+
requiresDirectObject: true,
|
|
94
|
+
requiresIndirectObject: false,
|
|
95
|
+
directObjectScope: types_1.ScopeLevel.REACHABLE
|
|
96
|
+
},
|
|
97
|
+
group: 'manipulation',
|
|
98
|
+
validate(context) {
|
|
99
|
+
const noun = context.command.directObject?.entity;
|
|
100
|
+
if (!noun) {
|
|
101
|
+
return { valid: false, error: digging_messages_1.DiggingMessages.NO_TARGET };
|
|
102
|
+
}
|
|
103
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.diggingLifecycle);
|
|
104
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
105
|
+
if (preVeto)
|
|
106
|
+
return preVeto;
|
|
107
|
+
const scopeCheck = context.requireScope(noun, types_1.ScopeLevel.REACHABLE);
|
|
108
|
+
if (!scopeCheck.ok) {
|
|
109
|
+
return scopeCheck.error;
|
|
110
|
+
}
|
|
111
|
+
// Eligibility gate: only a diggable entity can be cut.
|
|
112
|
+
if (!noun.has(world_model_1.TraitType.DIGGABLE)) {
|
|
113
|
+
return {
|
|
114
|
+
valid: false,
|
|
115
|
+
error: digging_messages_1.DiggingMessages.NOT_DIGGABLE,
|
|
116
|
+
params: { item: (0, utils_1.nounPhraseFor)(noun) }
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// Author-configured tool requirement (shared helper, PIN 2).
|
|
120
|
+
const tool = context.command.instrument?.entity ?? context.command.indirectObject?.entity;
|
|
121
|
+
const toolValidation = (0, tool_shared_1.validateToolRequirements)(context, noun, tool, world_model_1.DiggableBehavior.requiresTool(noun), (toolId) => world_model_1.DiggableBehavior.canDigWith(noun, toolId));
|
|
122
|
+
if (toolValidation) {
|
|
123
|
+
return toolValidation;
|
|
124
|
+
}
|
|
125
|
+
// Implementation presence (dual-surface): a capability behavior on one
|
|
126
|
+
// of the target's traits, or an interceptor consulting this action.
|
|
127
|
+
const capabilityTrait = (0, world_model_1.findTraitWithCapability)(noun, constants_1.IFActions.DIGGING);
|
|
128
|
+
const behavior = capabilityTrait
|
|
129
|
+
? context.world.getBehaviorForCapability(capabilityTrait, constants_1.IFActions.DIGGING)
|
|
130
|
+
: undefined;
|
|
131
|
+
const hasInterceptor = !!context.world.getInterceptorForAction(noun, constants_1.IFActions.DIGGING);
|
|
132
|
+
if (!behavior && !hasInterceptor) {
|
|
133
|
+
// Runtime safety net — the Chord loader's post-load check is the
|
|
134
|
+
// primary catch for unimplemented diggables.
|
|
135
|
+
return {
|
|
136
|
+
valid: false,
|
|
137
|
+
error: digging_messages_1.DiggingMessages.CANT_DIG,
|
|
138
|
+
params: { item: (0, utils_1.nounPhraseFor)(noun) }
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
let data;
|
|
142
|
+
if (behavior) {
|
|
143
|
+
const sharedData = {};
|
|
144
|
+
const behaviorResult = behavior.validate(noun, context.world, context.player.id, sharedData);
|
|
145
|
+
if (!behaviorResult.valid) {
|
|
146
|
+
return {
|
|
147
|
+
valid: false,
|
|
148
|
+
error: behaviorResult.error,
|
|
149
|
+
params: behaviorResult.params
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
data = { behavior, sharedData };
|
|
153
|
+
}
|
|
154
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
155
|
+
if (postVeto)
|
|
156
|
+
return postVeto;
|
|
157
|
+
return { valid: true, data };
|
|
158
|
+
},
|
|
159
|
+
/**
|
|
160
|
+
* Execute — the action mutates NOTHING itself. A capability-behavior
|
|
161
|
+
* implementation runs here; an interceptor implementation runs in its
|
|
162
|
+
* own postExecute hook via the lifecycle engine.
|
|
163
|
+
*/
|
|
164
|
+
execute(context) {
|
|
165
|
+
const noun = context.command.directObject.entity;
|
|
166
|
+
const data = context.validationResult?.data;
|
|
167
|
+
if (data?.behavior) {
|
|
168
|
+
data.behavior.execute(noun, context.world, context.player.id, data.sharedData);
|
|
169
|
+
context.sharedData.diggingDispatch = data;
|
|
170
|
+
}
|
|
171
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
172
|
+
if (state)
|
|
173
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
174
|
+
},
|
|
175
|
+
report(context) {
|
|
176
|
+
const noun = context.command.directObject.entity;
|
|
177
|
+
const tool = context.command.instrument?.entity ?? context.command.indirectObject?.entity;
|
|
178
|
+
const data = (context.sharedData.diggingDispatch ?? context.validationResult?.data);
|
|
179
|
+
let events;
|
|
180
|
+
if (data?.behavior) {
|
|
181
|
+
// Capability surface: the implementation owns the narration.
|
|
182
|
+
events = effectsToEvents(data.behavior.report(noun, context.world, context.player.id, data.sharedData), context);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
// Interceptor surface: standard cut event; the implementation's
|
|
186
|
+
// postReport override typically replaces the generic message.
|
|
187
|
+
events = [
|
|
188
|
+
context.event('if.event.dug', {
|
|
189
|
+
messageId: `${context.action.id}.${digging_messages_1.DiggingMessages.DUG}`,
|
|
190
|
+
params: { item: (0, utils_1.nounPhraseFor)(noun), tool: tool ? (0, utils_1.nounPhraseFor)(tool) : undefined },
|
|
191
|
+
targetId: noun.id,
|
|
192
|
+
targetName: noun.name,
|
|
193
|
+
toolId: tool?.id,
|
|
194
|
+
toolName: tool?.name,
|
|
195
|
+
actorId: context.player.id
|
|
196
|
+
})
|
|
197
|
+
];
|
|
198
|
+
}
|
|
199
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
200
|
+
if (state)
|
|
201
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.dug');
|
|
202
|
+
return events;
|
|
203
|
+
},
|
|
204
|
+
blocked(context, result) {
|
|
205
|
+
const noun = context.command.directObject?.entity;
|
|
206
|
+
const error = result.error || '';
|
|
207
|
+
const messageId = error.includes('.') ? error : `${context.action.id}.${error}`;
|
|
208
|
+
const events = [
|
|
209
|
+
context.event('if.event.dug_blocked', {
|
|
210
|
+
messageId,
|
|
211
|
+
params: {
|
|
212
|
+
...result.params,
|
|
213
|
+
item: noun ? (0, utils_1.nounPhraseFor)(noun) : undefined
|
|
214
|
+
},
|
|
215
|
+
targetId: noun?.id,
|
|
216
|
+
targetName: noun?.name,
|
|
217
|
+
reason: result.error
|
|
218
|
+
})
|
|
219
|
+
];
|
|
220
|
+
if (result.error) {
|
|
221
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
222
|
+
if (state)
|
|
223
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.dug_blocked', result.error);
|
|
224
|
+
}
|
|
225
|
+
return events;
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=digging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digging.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/digging/digging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Digging action (ADR-230 Phase 6) — public exports.
|
|
3
|
+
*/
|
|
4
|
+
export { diggingAction, diggingLifecycle } from './digging';
|
|
5
|
+
export { DiggingMessages } from './digging-messages';
|
|
6
|
+
export type { DiggingMessageId } from './digging-messages';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/digging/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiggingMessages = exports.diggingLifecycle = exports.diggingAction = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Digging action (ADR-230 Phase 6) — public exports.
|
|
6
|
+
*/
|
|
7
|
+
var digging_1 = require("./digging");
|
|
8
|
+
Object.defineProperty(exports, "diggingAction", { enumerable: true, get: function () { return digging_1.diggingAction; } });
|
|
9
|
+
Object.defineProperty(exports, "diggingLifecycle", { enumerable: true, get: function () { return digging_1.diggingLifecycle; } });
|
|
10
|
+
var digging_messages_1 = require("./digging-messages");
|
|
11
|
+
Object.defineProperty(exports, "DiggingMessages", { enumerable: true, get: function () { return digging_messages_1.DiggingMessages; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/digging/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qCAA4D;AAAnD,wGAAA,aAAa,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AACxC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
|
|
@@ -9,9 +9,18 @@
|
|
|
9
9
|
* 2. execute: Perform implicit take if needed, store data in sharedData
|
|
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 `drinkingLifecycle` — 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 drunk item is the only consultable
|
|
21
|
+
* entity of a DRINK command.
|
|
22
|
+
*/
|
|
23
|
+
export declare const drinkingLifecycle: ActionLifecycleDescriptor;
|
|
15
24
|
export declare const drinkingAction: Action & {
|
|
16
25
|
metadata: ActionMetadata;
|
|
17
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drinking.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/drinking/drinking.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"drinking.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/drinking/drinking.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;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,yBAS/B,CAAC;AAuHF,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CA0O/D,CAAC"}
|
|
@@ -10,13 +10,31 @@
|
|
|
10
10
|
* 2. execute: Perform implicit take if needed, store data in sharedData
|
|
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 `drinkingLifecycle` — no hand-rolled hook plumbing.
|
|
13
16
|
*/
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.drinkingAction = void 0;
|
|
18
|
+
exports.drinkingAction = exports.drinkingLifecycle = 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 drunk item is the only consultable
|
|
26
|
+
* entity of a DRINK command.
|
|
27
|
+
*/
|
|
28
|
+
exports.drinkingLifecycle = {
|
|
29
|
+
actionId: constants_1.IFActions.DRINKING,
|
|
30
|
+
slots: [
|
|
31
|
+
{
|
|
32
|
+
id: 'item',
|
|
33
|
+
actionIds: [constants_1.IFActions.DRINKING],
|
|
34
|
+
resolve: (ctx) => ctx.command.directObject?.entity
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
};
|
|
20
38
|
function getDrinkingSharedData(context) {
|
|
21
39
|
return context.sharedData;
|
|
22
40
|
}
|
|
@@ -152,6 +170,10 @@ exports.drinkingAction = {
|
|
|
152
170
|
if (!item) {
|
|
153
171
|
return { valid: false, error: 'no_item' };
|
|
154
172
|
}
|
|
173
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.drinkingLifecycle);
|
|
174
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
175
|
+
if (preVeto)
|
|
176
|
+
return preVeto;
|
|
155
177
|
// Check scope - must be able to reach the item
|
|
156
178
|
const scopeCheck = context.requireScope(item, types_1.ScopeLevel.REACHABLE);
|
|
157
179
|
if (!scopeCheck.ok) {
|
|
@@ -182,6 +204,10 @@ exports.drinkingAction = {
|
|
|
182
204
|
if (containerTrait && item.has(world_model_1.TraitType.OPENABLE) && !world_model_1.OpenableBehavior.isOpen(item)) {
|
|
183
205
|
return { valid: false, error: 'container_closed', params: { item: (0, utils_1.nounPhraseFor)(item) } };
|
|
184
206
|
}
|
|
207
|
+
// Canonical placement (ADR-228): postValidate runs after ALL standard validation
|
|
208
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
209
|
+
if (postVeto)
|
|
210
|
+
return postVeto;
|
|
185
211
|
return { valid: true };
|
|
186
212
|
},
|
|
187
213
|
/**
|
|
@@ -248,13 +274,16 @@ exports.drinkingAction = {
|
|
|
248
274
|
sharedData.messageId = messageId;
|
|
249
275
|
sharedData.params = params;
|
|
250
276
|
sharedData.eventData = eventData;
|
|
277
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
278
|
+
if (state)
|
|
279
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
251
280
|
},
|
|
252
281
|
/**
|
|
253
282
|
* Generate events when validation fails
|
|
254
283
|
*/
|
|
255
284
|
blocked(context, result) {
|
|
256
285
|
const item = context.command.directObject?.entity;
|
|
257
|
-
|
|
286
|
+
const events = [context.event('if.event.drunk', {
|
|
258
287
|
blocked: true,
|
|
259
288
|
messageId: `${context.action.id}.${result.error}`,
|
|
260
289
|
// params carry EntityInfo for the formatter chain (ADR-158)
|
|
@@ -263,6 +292,12 @@ exports.drinkingAction = {
|
|
|
263
292
|
itemId: item?.id,
|
|
264
293
|
itemName: item?.name
|
|
265
294
|
})];
|
|
295
|
+
if (result.error) {
|
|
296
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
297
|
+
if (state)
|
|
298
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.drunk', result.error);
|
|
299
|
+
}
|
|
300
|
+
return events;
|
|
266
301
|
},
|
|
267
302
|
/**
|
|
268
303
|
* Report phase - generates all events after successful execution
|
|
@@ -285,6 +320,9 @@ exports.drinkingAction = {
|
|
|
285
320
|
params: sharedData.params || {},
|
|
286
321
|
...sharedData.eventData
|
|
287
322
|
}));
|
|
323
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
324
|
+
if (state)
|
|
325
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.drunk');
|
|
288
326
|
return events;
|
|
289
327
|
}
|
|
290
328
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drinking.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/drinking/drinking.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"drinking.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/drinking/drinking.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,24 +4,25 @@
|
|
|
4
4
|
* Provides type-safe access to shared data for multi-object support
|
|
5
5
|
*/
|
|
6
6
|
import { EntityId } from '@sharpee/core';
|
|
7
|
-
import { IFEntity, ActionInterceptor, InterceptorSharedData } from '@sharpee/world-model';
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
8
|
+
* Per-item mutation scratch for dropping one entity. For a single-object
|
|
9
|
+
* command this lives on the action's sharedData; for a multi-object
|
|
10
|
+
* command each item gets its own copy via the lifecycle engine's per-item
|
|
11
|
+
* `itemData` (ADR-228 D4).
|
|
10
12
|
*/
|
|
11
|
-
export interface
|
|
12
|
-
|
|
13
|
-
success: boolean;
|
|
14
|
-
error?: string;
|
|
15
|
-
errorParams?: Record<string, unknown>;
|
|
13
|
+
export interface DroppingItemScratch {
|
|
14
|
+
/** Where the item was dropped to */
|
|
16
15
|
dropLocation?: EntityId;
|
|
17
16
|
}
|
|
18
17
|
/**
|
|
19
18
|
* Typed shared data for dropping action
|
|
20
19
|
*
|
|
21
20
|
* This interface defines all data that the dropping action
|
|
22
|
-
* stores in context.sharedData for communication between phases
|
|
21
|
+
* stores in context.sharedData for communication between phases.
|
|
22
|
+
* Interceptor and multi-object state live in the lifecycle engine's
|
|
23
|
+
* reserved sharedData slots (ADR-228), not here.
|
|
23
24
|
*/
|
|
24
|
-
export interface DroppingSharedData {
|
|
25
|
+
export interface DroppingSharedData extends DroppingItemScratch {
|
|
25
26
|
/**
|
|
26
27
|
* Result from ActorBehavior.dropItem for single-object drops
|
|
27
28
|
*/
|
|
@@ -29,15 +30,6 @@ export interface DroppingSharedData {
|
|
|
29
30
|
success: boolean;
|
|
30
31
|
droppedLocation?: EntityId;
|
|
31
32
|
};
|
|
32
|
-
/**
|
|
33
|
-
* Multi-object support: results for each entity
|
|
34
|
-
* When set, indicates this is a multi-object command
|
|
35
|
-
*/
|
|
36
|
-
multiObjectResults?: DroppingItemResult[];
|
|
37
|
-
/** Interceptor found during validate, if any (ADR-118) */
|
|
38
|
-
interceptor?: ActionInterceptor;
|
|
39
|
-
/** Shared data for interceptor phases */
|
|
40
|
-
interceptorData?: InterceptorSharedData;
|
|
41
33
|
}
|
|
42
34
|
/**
|
|
43
35
|
* Type guard to check if shared data has dropping-specific fields
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropping-types.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/dropping/dropping-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"dropping-types.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/dropping/dropping-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,YAAY,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,CAAC,EAAE,QAAQ,CAAC;KAC5B,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAE1F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,kBAAkB,CAKtG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropping-types.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/dropping/dropping-types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"dropping-types.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/dropping/dropping-types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAoCH,oDAEC;AAKD,sDAKC;AAfD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAyB;IAC5D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAA4C;IAChF,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC,UAAgC,CAAC;AAClD,CAAC"}
|
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { Action } from '../../enhanced-types';
|
|
16
16
|
import { ActionMetadata } from '../../../validation';
|
|
17
|
+
import { ActionLifecycleDescriptor } from '../../lifecycle';
|
|
18
|
+
/**
|
|
19
|
+
* Interceptor surface (ADR-228): the dropped item is the only consultable
|
|
20
|
+
* entity of a DROP command.
|
|
21
|
+
*/
|
|
22
|
+
export declare const droppingLifecycle: ActionLifecycleDescriptor;
|
|
17
23
|
export declare const droppingAction: Action & {
|
|
18
24
|
metadata: ActionMetadata;
|
|
19
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropping.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/dropping/dropping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"dropping.d.ts","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/dropping/dropping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,sBAAsB,CAAC;AAa/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EACL,yBAAyB,EAY1B,MAAM,iBAAiB,CAAC;AAWzB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,yBAS/B,CAAC;AA+LF,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAwL/D,CAAC"}
|