@sharpee/world-model 0.9.62-beta → 0.9.66-beta
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/README.md +0 -0
- package/package.json +17 -30
- package/LICENSE +0 -21
- package/dist-npm/annotations/index.d.ts +0 -2
- package/dist-npm/annotations/index.d.ts.map +0 -1
- package/dist-npm/annotations/index.js +0 -18
- package/dist-npm/annotations/index.js.map +0 -1
- package/dist-npm/annotations/types.d.ts +0 -35
- package/dist-npm/annotations/types.d.ts.map +0 -1
- package/dist-npm/annotations/types.js +0 -9
- package/dist-npm/annotations/types.js.map +0 -1
- package/dist-npm/behaviors/attack.d.ts +0 -52
- package/dist-npm/behaviors/attack.d.ts.map +0 -1
- package/dist-npm/behaviors/attack.js +0 -161
- package/dist-npm/behaviors/attack.js.map +0 -1
- package/dist-npm/behaviors/behavior.d.ts +0 -67
- package/dist-npm/behaviors/behavior.d.ts.map +0 -1
- package/dist-npm/behaviors/behavior.js +0 -80
- package/dist-npm/behaviors/behavior.js.map +0 -1
- package/dist-npm/behaviors/index.d.ts +0 -21
- package/dist-npm/behaviors/index.d.ts.map +0 -1
- package/dist-npm/behaviors/index.js +0 -39
- package/dist-npm/behaviors/index.js.map +0 -1
- package/dist-npm/capabilities/action-interceptor.d.ts +0 -169
- package/dist-npm/capabilities/action-interceptor.d.ts.map +0 -1
- package/dist-npm/capabilities/action-interceptor.js +0 -15
- package/dist-npm/capabilities/action-interceptor.js.map +0 -1
- package/dist-npm/capabilities/capability-behavior.d.ts +0 -112
- package/dist-npm/capabilities/capability-behavior.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-behavior.js +0 -9
- package/dist-npm/capabilities/capability-behavior.js.map +0 -1
- package/dist-npm/capabilities/capability-defaults.d.ts +0 -67
- package/dist-npm/capabilities/capability-defaults.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-defaults.js +0 -81
- package/dist-npm/capabilities/capability-defaults.js.map +0 -1
- package/dist-npm/capabilities/capability-helpers.d.ts +0 -76
- package/dist-npm/capabilities/capability-helpers.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-helpers.js +0 -112
- package/dist-npm/capabilities/capability-helpers.js.map +0 -1
- package/dist-npm/capabilities/capability-registry.d.ts +0 -115
- package/dist-npm/capabilities/capability-registry.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-registry.js +0 -136
- package/dist-npm/capabilities/capability-registry.js.map +0 -1
- package/dist-npm/capabilities/entity-builder.d.ts +0 -79
- package/dist-npm/capabilities/entity-builder.d.ts.map +0 -1
- package/dist-npm/capabilities/entity-builder.js +0 -116
- package/dist-npm/capabilities/entity-builder.js.map +0 -1
- package/dist-npm/capabilities/index.d.ts +0 -16
- package/dist-npm/capabilities/index.d.ts.map +0 -1
- package/dist-npm/capabilities/index.js +0 -56
- package/dist-npm/capabilities/index.js.map +0 -1
- package/dist-npm/capabilities/interceptor-helpers.d.ts +0 -74
- package/dist-npm/capabilities/interceptor-helpers.d.ts.map +0 -1
- package/dist-npm/capabilities/interceptor-helpers.js +0 -111
- package/dist-npm/capabilities/interceptor-helpers.js.map +0 -1
- package/dist-npm/capabilities/interceptor-registry.d.ts +0 -125
- package/dist-npm/capabilities/interceptor-registry.d.ts.map +0 -1
- package/dist-npm/capabilities/interceptor-registry.js +0 -176
- package/dist-npm/capabilities/interceptor-registry.js.map +0 -1
- package/dist-npm/capabilities/types.d.ts +0 -35
- package/dist-npm/capabilities/types.d.ts.map +0 -1
- package/dist-npm/capabilities/types.js +0 -16
- package/dist-npm/capabilities/types.js.map +0 -1
- package/dist-npm/commands/command-types.d.ts +0 -30
- package/dist-npm/commands/command-types.d.ts.map +0 -1
- package/dist-npm/commands/command-types.js +0 -6
- package/dist-npm/commands/command-types.js.map +0 -1
- package/dist-npm/commands/index.d.ts +0 -7
- package/dist-npm/commands/index.d.ts.map +0 -1
- package/dist-npm/commands/index.js +0 -23
- package/dist-npm/commands/index.js.map +0 -1
- package/dist-npm/commands/parsed-command.d.ts +0 -204
- package/dist-npm/commands/parsed-command.d.ts.map +0 -1
- package/dist-npm/commands/parsed-command.js +0 -25
- package/dist-npm/commands/parsed-command.js.map +0 -1
- package/dist-npm/commands/validated-command.d.ts +0 -52
- package/dist-npm/commands/validated-command.d.ts.map +0 -1
- package/dist-npm/commands/validated-command.js +0 -8
- package/dist-npm/commands/validated-command.js.map +0 -1
- package/dist-npm/constants/action-failures.d.ts +0 -54
- package/dist-npm/constants/action-failures.d.ts.map +0 -1
- package/dist-npm/constants/action-failures.js +0 -68
- package/dist-npm/constants/action-failures.js.map +0 -1
- package/dist-npm/constants/directions.d.ts +0 -32
- package/dist-npm/constants/directions.d.ts.map +0 -1
- package/dist-npm/constants/directions.js +0 -53
- package/dist-npm/constants/directions.js.map +0 -1
- package/dist-npm/constants/if-events.d.ts +0 -5
- package/dist-npm/constants/if-events.d.ts.map +0 -1
- package/dist-npm/constants/if-events.js +0 -10
- package/dist-npm/constants/if-events.js.map +0 -1
- package/dist-npm/constants/index.d.ts +0 -9
- package/dist-npm/constants/index.d.ts.map +0 -1
- package/dist-npm/constants/index.js +0 -25
- package/dist-npm/constants/index.js.map +0 -1
- package/dist-npm/entities/entity-store.d.ts +0 -66
- package/dist-npm/entities/entity-store.d.ts.map +0 -1
- package/dist-npm/entities/entity-store.js +0 -116
- package/dist-npm/entities/entity-store.js.map +0 -1
- package/dist-npm/entities/entity-types.d.ts +0 -40
- package/dist-npm/entities/entity-types.d.ts.map +0 -1
- package/dist-npm/entities/entity-types.js +0 -56
- package/dist-npm/entities/entity-types.js.map +0 -1
- package/dist-npm/entities/if-entity.d.ts +0 -314
- package/dist-npm/entities/if-entity.d.ts.map +0 -1
- package/dist-npm/entities/if-entity.js +0 -621
- package/dist-npm/entities/if-entity.js.map +0 -1
- package/dist-npm/entities/index.d.ts +0 -5
- package/dist-npm/entities/index.d.ts.map +0 -1
- package/dist-npm/entities/index.js +0 -13
- package/dist-npm/entities/index.js.map +0 -1
- package/dist-npm/events/types.d.ts +0 -45
- package/dist-npm/events/types.d.ts.map +0 -1
- package/dist-npm/events/types.js +0 -9
- package/dist-npm/events/types.js.map +0 -1
- package/dist-npm/examples/event-handler-registration.d.ts +0 -14
- package/dist-npm/examples/event-handler-registration.d.ts.map +0 -1
- package/dist-npm/examples/event-handler-registration.js +0 -158
- package/dist-npm/examples/event-handler-registration.js.map +0 -1
- package/dist-npm/extensions/base-extension.d.ts +0 -69
- package/dist-npm/extensions/base-extension.d.ts.map +0 -1
- package/dist-npm/extensions/base-extension.js +0 -83
- package/dist-npm/extensions/base-extension.js.map +0 -1
- package/dist-npm/extensions/index.d.ts +0 -11
- package/dist-npm/extensions/index.d.ts.map +0 -1
- package/dist-npm/extensions/index.js +0 -39
- package/dist-npm/extensions/index.js.map +0 -1
- package/dist-npm/extensions/loader.d.ts +0 -52
- package/dist-npm/extensions/loader.d.ts.map +0 -1
- package/dist-npm/extensions/loader.js +0 -177
- package/dist-npm/extensions/loader.js.map +0 -1
- package/dist-npm/extensions/manager.d.ts +0 -68
- package/dist-npm/extensions/manager.d.ts.map +0 -1
- package/dist-npm/extensions/manager.js +0 -164
- package/dist-npm/extensions/manager.js.map +0 -1
- package/dist-npm/extensions/registry.d.ts +0 -100
- package/dist-npm/extensions/registry.d.ts.map +0 -1
- package/dist-npm/extensions/registry.js +0 -193
- package/dist-npm/extensions/registry.js.map +0 -1
- package/dist-npm/extensions/types.d.ts +0 -226
- package/dist-npm/extensions/types.d.ts.map +0 -1
- package/dist-npm/extensions/types.js +0 -28
- package/dist-npm/extensions/types.js.map +0 -1
- package/dist-npm/index.d.ts +0 -40
- package/dist-npm/index.d.ts.map +0 -1
- package/dist-npm/index.js +0 -70
- package/dist-npm/index.js.map +0 -1
- package/dist-npm/interfaces/command-executor.d.ts +0 -17
- package/dist-npm/interfaces/command-executor.d.ts.map +0 -1
- package/dist-npm/interfaces/command-executor.js +0 -6
- package/dist-npm/interfaces/command-executor.js.map +0 -1
- package/dist-npm/interfaces/command-processor.d.ts +0 -17
- package/dist-npm/interfaces/command-processor.d.ts.map +0 -1
- package/dist-npm/interfaces/command-processor.js +0 -6
- package/dist-npm/interfaces/command-processor.js.map +0 -1
- package/dist-npm/interfaces/command-validator.d.ts +0 -17
- package/dist-npm/interfaces/command-validator.d.ts.map +0 -1
- package/dist-npm/interfaces/command-validator.js +0 -6
- package/dist-npm/interfaces/command-validator.js.map +0 -1
- package/dist-npm/interfaces/index.d.ts +0 -8
- package/dist-npm/interfaces/index.d.ts.map +0 -1
- package/dist-npm/interfaces/index.js +0 -24
- package/dist-npm/interfaces/index.js.map +0 -1
- package/dist-npm/interfaces/language-provider.d.ts +0 -86
- package/dist-npm/interfaces/language-provider.d.ts.map +0 -1
- package/dist-npm/interfaces/language-provider.js +0 -14
- package/dist-npm/interfaces/language-provider.js.map +0 -1
- package/dist-npm/interfaces/parser.d.ts +0 -16
- package/dist-npm/interfaces/parser.d.ts.map +0 -1
- package/dist-npm/interfaces/parser.js +0 -6
- package/dist-npm/interfaces/parser.js.map +0 -1
- package/dist-npm/scope/index.d.ts +0 -8
- package/dist-npm/scope/index.d.ts.map +0 -1
- package/dist-npm/scope/index.js +0 -24
- package/dist-npm/scope/index.js.map +0 -1
- package/dist-npm/scope/scope-evaluator.d.ts +0 -58
- package/dist-npm/scope/scope-evaluator.d.ts.map +0 -1
- package/dist-npm/scope/scope-evaluator.js +0 -207
- package/dist-npm/scope/scope-evaluator.js.map +0 -1
- package/dist-npm/scope/scope-registry.d.ts +0 -59
- package/dist-npm/scope/scope-registry.d.ts.map +0 -1
- package/dist-npm/scope/scope-registry.js +0 -182
- package/dist-npm/scope/scope-registry.js.map +0 -1
- package/dist-npm/scope/scope-rule.d.ts +0 -86
- package/dist-npm/scope/scope-rule.d.ts.map +0 -1
- package/dist-npm/scope/scope-rule.js +0 -7
- package/dist-npm/scope/scope-rule.js.map +0 -1
- package/dist-npm/services/ScopeService.d.ts +0 -8
- package/dist-npm/services/ScopeService.d.ts.map +0 -1
- package/dist-npm/services/ScopeService.js +0 -19
- package/dist-npm/services/ScopeService.js.map +0 -1
- package/dist-npm/services/index.d.ts +0 -2
- package/dist-npm/services/index.d.ts.map +0 -1
- package/dist-npm/services/index.js +0 -6
- package/dist-npm/services/index.js.map +0 -1
- package/dist-npm/test-structure.d.ts +0 -3
- package/dist-npm/test-structure.d.ts.map +0 -1
- package/dist-npm/test-structure.js +0 -26
- package/dist-npm/test-structure.js.map +0 -1
- package/dist-npm/traits/actor/actorBehavior.d.ts +0 -121
- package/dist-npm/traits/actor/actorBehavior.d.ts.map +0 -1
- package/dist-npm/traits/actor/actorBehavior.js +0 -288
- package/dist-npm/traits/actor/actorBehavior.js.map +0 -1
- package/dist-npm/traits/actor/actorTrait.d.ts +0 -158
- package/dist-npm/traits/actor/actorTrait.d.ts.map +0 -1
- package/dist-npm/traits/actor/actorTrait.js +0 -152
- package/dist-npm/traits/actor/actorTrait.js.map +0 -1
- package/dist-npm/traits/actor/index.d.ts +0 -3
- package/dist-npm/traits/actor/index.d.ts.map +0 -1
- package/dist-npm/traits/actor/index.js +0 -11
- package/dist-npm/traits/actor/index.js.map +0 -1
- package/dist-npm/traits/all-traits.d.ts +0 -95
- package/dist-npm/traits/all-traits.d.ts.map +0 -1
- package/dist-npm/traits/all-traits.js +0 -178
- package/dist-npm/traits/all-traits.js.map +0 -1
- package/dist-npm/traits/attached/attachedTrait.d.ts +0 -61
- package/dist-npm/traits/attached/attachedTrait.d.ts.map +0 -1
- package/dist-npm/traits/attached/attachedTrait.js +0 -36
- package/dist-npm/traits/attached/attachedTrait.js.map +0 -1
- package/dist-npm/traits/attached/index.d.ts +0 -2
- package/dist-npm/traits/attached/index.d.ts.map +0 -1
- package/dist-npm/traits/attached/index.js +0 -18
- package/dist-npm/traits/attached/index.js.map +0 -1
- package/dist-npm/traits/breakable/breakableBehavior.d.ts +0 -43
- package/dist-npm/traits/breakable/breakableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/breakable/breakableBehavior.js +0 -70
- package/dist-npm/traits/breakable/breakableBehavior.js.map +0 -1
- package/dist-npm/traits/breakable/breakableTrait.d.ts +0 -22
- package/dist-npm/traits/breakable/breakableTrait.d.ts.map +0 -1
- package/dist-npm/traits/breakable/breakableTrait.js +0 -25
- package/dist-npm/traits/breakable/breakableTrait.js.map +0 -1
- package/dist-npm/traits/breakable/index.d.ts +0 -3
- package/dist-npm/traits/breakable/index.d.ts.map +0 -1
- package/dist-npm/traits/breakable/index.js +0 -8
- package/dist-npm/traits/breakable/index.js.map +0 -1
- package/dist-npm/traits/button/buttonTrait.d.ts +0 -53
- package/dist-npm/traits/button/buttonTrait.d.ts.map +0 -1
- package/dist-npm/traits/button/buttonTrait.js +0 -36
- package/dist-npm/traits/button/buttonTrait.js.map +0 -1
- package/dist-npm/traits/button/index.d.ts +0 -2
- package/dist-npm/traits/button/index.d.ts.map +0 -1
- package/dist-npm/traits/button/index.js +0 -18
- package/dist-npm/traits/button/index.js.map +0 -1
- package/dist-npm/traits/climbable/climbableBehavior.d.ts +0 -37
- package/dist-npm/traits/climbable/climbableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/climbable/climbableBehavior.js +0 -70
- package/dist-npm/traits/climbable/climbableBehavior.js.map +0 -1
- package/dist-npm/traits/climbable/climbableTrait.d.ts +0 -31
- package/dist-npm/traits/climbable/climbableTrait.d.ts.map +0 -1
- package/dist-npm/traits/climbable/climbableTrait.js +0 -47
- package/dist-npm/traits/climbable/climbableTrait.js.map +0 -1
- package/dist-npm/traits/climbable/index.d.ts +0 -6
- package/dist-npm/traits/climbable/index.d.ts.map +0 -1
- package/dist-npm/traits/climbable/index.js +0 -22
- package/dist-npm/traits/climbable/index.js.map +0 -1
- package/dist-npm/traits/clothing/clothingTrait.d.ts +0 -58
- package/dist-npm/traits/clothing/clothingTrait.d.ts.map +0 -1
- package/dist-npm/traits/clothing/clothingTrait.js +0 -78
- package/dist-npm/traits/clothing/clothingTrait.js.map +0 -1
- package/dist-npm/traits/clothing/index.d.ts +0 -2
- package/dist-npm/traits/clothing/index.d.ts.map +0 -1
- package/dist-npm/traits/clothing/index.js +0 -19
- package/dist-npm/traits/clothing/index.js.map +0 -1
- package/dist-npm/traits/combatant/combatantBehavior.d.ts +0 -70
- package/dist-npm/traits/combatant/combatantBehavior.d.ts.map +0 -1
- package/dist-npm/traits/combatant/combatantBehavior.js +0 -155
- package/dist-npm/traits/combatant/combatantBehavior.js.map +0 -1
- package/dist-npm/traits/combatant/combatantTrait.d.ts +0 -98
- package/dist-npm/traits/combatant/combatantTrait.d.ts.map +0 -1
- package/dist-npm/traits/combatant/combatantTrait.js +0 -122
- package/dist-npm/traits/combatant/combatantTrait.js.map +0 -1
- package/dist-npm/traits/combatant/index.d.ts +0 -3
- package/dist-npm/traits/combatant/index.d.ts.map +0 -1
- package/dist-npm/traits/combatant/index.js +0 -8
- package/dist-npm/traits/combatant/index.js.map +0 -1
- package/dist-npm/traits/container/container-utils.d.ts +0 -39
- package/dist-npm/traits/container/container-utils.d.ts.map +0 -1
- package/dist-npm/traits/container/container-utils.js +0 -72
- package/dist-npm/traits/container/container-utils.js.map +0 -1
- package/dist-npm/traits/container/containerBehavior.d.ts +0 -94
- package/dist-npm/traits/container/containerBehavior.d.ts.map +0 -1
- package/dist-npm/traits/container/containerBehavior.js +0 -256
- package/dist-npm/traits/container/containerBehavior.js.map +0 -1
- package/dist-npm/traits/container/containerTrait.d.ts +0 -30
- package/dist-npm/traits/container/containerTrait.d.ts.map +0 -1
- package/dist-npm/traits/container/containerTrait.js +0 -45
- package/dist-npm/traits/container/containerTrait.js.map +0 -1
- package/dist-npm/traits/container/index.d.ts +0 -4
- package/dist-npm/traits/container/index.d.ts.map +0 -1
- package/dist-npm/traits/container/index.js +0 -14
- package/dist-npm/traits/container/index.js.map +0 -1
- package/dist-npm/traits/destructible/destructibleBehavior.d.ts +0 -57
- package/dist-npm/traits/destructible/destructibleBehavior.d.ts.map +0 -1
- package/dist-npm/traits/destructible/destructibleBehavior.js +0 -145
- package/dist-npm/traits/destructible/destructibleBehavior.js.map +0 -1
- package/dist-npm/traits/destructible/destructibleTrait.d.ts +0 -49
- package/dist-npm/traits/destructible/destructibleTrait.d.ts.map +0 -1
- package/dist-npm/traits/destructible/destructibleTrait.js +0 -43
- package/dist-npm/traits/destructible/destructibleTrait.js.map +0 -1
- package/dist-npm/traits/destructible/index.d.ts +0 -3
- package/dist-npm/traits/destructible/index.d.ts.map +0 -1
- package/dist-npm/traits/destructible/index.js +0 -8
- package/dist-npm/traits/destructible/index.js.map +0 -1
- package/dist-npm/traits/door/doorBehavior.d.ts +0 -42
- package/dist-npm/traits/door/doorBehavior.d.ts.map +0 -1
- package/dist-npm/traits/door/doorBehavior.js +0 -76
- package/dist-npm/traits/door/doorBehavior.js.map +0 -1
- package/dist-npm/traits/door/doorTrait.d.ts +0 -19
- package/dist-npm/traits/door/doorTrait.d.ts.map +0 -1
- package/dist-npm/traits/door/doorTrait.js +0 -33
- package/dist-npm/traits/door/doorTrait.js.map +0 -1
- package/dist-npm/traits/door/index.d.ts +0 -3
- package/dist-npm/traits/door/index.d.ts.map +0 -1
- package/dist-npm/traits/door/index.js +0 -9
- package/dist-npm/traits/door/index.js.map +0 -1
- package/dist-npm/traits/edible/edibleBehavior.d.ts +0 -63
- package/dist-npm/traits/edible/edibleBehavior.d.ts.map +0 -1
- package/dist-npm/traits/edible/edibleBehavior.js +0 -157
- package/dist-npm/traits/edible/edibleBehavior.js.map +0 -1
- package/dist-npm/traits/edible/edibleTrait.d.ts +0 -57
- package/dist-npm/traits/edible/edibleTrait.d.ts.map +0 -1
- package/dist-npm/traits/edible/edibleTrait.js +0 -51
- package/dist-npm/traits/edible/edibleTrait.js.map +0 -1
- package/dist-npm/traits/edible/index.d.ts +0 -3
- package/dist-npm/traits/edible/index.d.ts.map +0 -1
- package/dist-npm/traits/edible/index.js +0 -20
- package/dist-npm/traits/edible/index.js.map +0 -1
- package/dist-npm/traits/enterable/enterableTrait.d.ts +0 -33
- package/dist-npm/traits/enterable/enterableTrait.d.ts.map +0 -1
- package/dist-npm/traits/enterable/enterableTrait.js +0 -38
- package/dist-npm/traits/enterable/enterableTrait.js.map +0 -1
- package/dist-npm/traits/enterable/index.d.ts +0 -5
- package/dist-npm/traits/enterable/index.d.ts.map +0 -1
- package/dist-npm/traits/enterable/index.js +0 -21
- package/dist-npm/traits/enterable/index.js.map +0 -1
- package/dist-npm/traits/equipped/equippedTrait.d.ts +0 -46
- package/dist-npm/traits/equipped/equippedTrait.d.ts.map +0 -1
- package/dist-npm/traits/equipped/equippedTrait.js +0 -34
- package/dist-npm/traits/equipped/equippedTrait.js.map +0 -1
- package/dist-npm/traits/equipped/index.d.ts +0 -2
- package/dist-npm/traits/equipped/index.d.ts.map +0 -1
- package/dist-npm/traits/equipped/index.js +0 -6
- package/dist-npm/traits/equipped/index.js.map +0 -1
- package/dist-npm/traits/exit/exitBehavior.d.ts +0 -51
- package/dist-npm/traits/exit/exitBehavior.d.ts.map +0 -1
- package/dist-npm/traits/exit/exitBehavior.js +0 -231
- package/dist-npm/traits/exit/exitBehavior.js.map +0 -1
- package/dist-npm/traits/exit/exitTrait.d.ts +0 -41
- package/dist-npm/traits/exit/exitTrait.d.ts.map +0 -1
- package/dist-npm/traits/exit/exitTrait.js +0 -75
- package/dist-npm/traits/exit/exitTrait.js.map +0 -1
- package/dist-npm/traits/exit/index.d.ts +0 -3
- package/dist-npm/traits/exit/index.d.ts.map +0 -1
- package/dist-npm/traits/exit/index.js +0 -9
- package/dist-npm/traits/exit/index.js.map +0 -1
- package/dist-npm/traits/identity/identityBehavior.d.ts +0 -64
- package/dist-npm/traits/identity/identityBehavior.d.ts.map +0 -1
- package/dist-npm/traits/identity/identityBehavior.js +0 -154
- package/dist-npm/traits/identity/identityBehavior.js.map +0 -1
- package/dist-npm/traits/identity/identityTrait.d.ts +0 -70
- package/dist-npm/traits/identity/identityTrait.d.ts.map +0 -1
- package/dist-npm/traits/identity/identityTrait.js +0 -79
- package/dist-npm/traits/identity/identityTrait.js.map +0 -1
- package/dist-npm/traits/identity/index.d.ts +0 -3
- package/dist-npm/traits/identity/index.d.ts.map +0 -1
- package/dist-npm/traits/identity/index.js +0 -20
- package/dist-npm/traits/identity/index.js.map +0 -1
- package/dist-npm/traits/implementations.d.ts +0 -51
- package/dist-npm/traits/implementations.d.ts.map +0 -1
- package/dist-npm/traits/implementations.js +0 -145
- package/dist-npm/traits/implementations.js.map +0 -1
- package/dist-npm/traits/index.d.ts +0 -36
- package/dist-npm/traits/index.d.ts.map +0 -1
- package/dist-npm/traits/index.js +0 -62
- package/dist-npm/traits/index.js.map +0 -1
- package/dist-npm/traits/light-source/index.d.ts +0 -3
- package/dist-npm/traits/light-source/index.d.ts.map +0 -1
- package/dist-npm/traits/light-source/index.js +0 -9
- package/dist-npm/traits/light-source/index.js.map +0 -1
- package/dist-npm/traits/light-source/lightSourceBehavior.d.ts +0 -57
- package/dist-npm/traits/light-source/lightSourceBehavior.d.ts.map +0 -1
- package/dist-npm/traits/light-source/lightSourceBehavior.js +0 -135
- package/dist-npm/traits/light-source/lightSourceBehavior.js.map +0 -1
- package/dist-npm/traits/light-source/lightSourceTrait.d.ts +0 -28
- package/dist-npm/traits/light-source/lightSourceTrait.d.ts.map +0 -1
- package/dist-npm/traits/light-source/lightSourceTrait.js +0 -37
- package/dist-npm/traits/light-source/lightSourceTrait.js.map +0 -1
- package/dist-npm/traits/lockable/index.d.ts +0 -3
- package/dist-npm/traits/lockable/index.d.ts.map +0 -1
- package/dist-npm/traits/lockable/index.js +0 -20
- package/dist-npm/traits/lockable/index.js.map +0 -1
- package/dist-npm/traits/lockable/lockableBehavior.d.ts +0 -88
- package/dist-npm/traits/lockable/lockableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/lockable/lockableBehavior.js +0 -196
- package/dist-npm/traits/lockable/lockableBehavior.js.map +0 -1
- package/dist-npm/traits/lockable/lockableTrait.d.ts +0 -59
- package/dist-npm/traits/lockable/lockableTrait.d.ts.map +0 -1
- package/dist-npm/traits/lockable/lockableTrait.js +0 -50
- package/dist-npm/traits/lockable/lockableTrait.js.map +0 -1
- package/dist-npm/traits/moveable-scenery/index.d.ts +0 -2
- package/dist-npm/traits/moveable-scenery/index.d.ts.map +0 -1
- package/dist-npm/traits/moveable-scenery/index.js +0 -18
- package/dist-npm/traits/moveable-scenery/index.js.map +0 -1
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.d.ts +0 -69
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +0 -1
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.js +0 -43
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.js.map +0 -1
- package/dist-npm/traits/npc/index.d.ts +0 -5
- package/dist-npm/traits/npc/index.d.ts.map +0 -1
- package/dist-npm/traits/npc/index.js +0 -9
- package/dist-npm/traits/npc/index.js.map +0 -1
- package/dist-npm/traits/npc/npcTrait.d.ts +0 -128
- package/dist-npm/traits/npc/npcTrait.d.ts.map +0 -1
- package/dist-npm/traits/npc/npcTrait.js +0 -180
- package/dist-npm/traits/npc/npcTrait.js.map +0 -1
- package/dist-npm/traits/openable/index.d.ts +0 -3
- package/dist-npm/traits/openable/index.d.ts.map +0 -1
- package/dist-npm/traits/openable/index.js +0 -20
- package/dist-npm/traits/openable/index.js.map +0 -1
- package/dist-npm/traits/openable/openableBehavior.d.ts +0 -64
- package/dist-npm/traits/openable/openableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/openable/openableBehavior.js +0 -109
- package/dist-npm/traits/openable/openableBehavior.js.map +0 -1
- package/dist-npm/traits/openable/openableTrait.d.ts +0 -46
- package/dist-npm/traits/openable/openableTrait.d.ts.map +0 -1
- package/dist-npm/traits/openable/openableTrait.js +0 -42
- package/dist-npm/traits/openable/openableTrait.js.map +0 -1
- package/dist-npm/traits/pullable/index.d.ts +0 -2
- package/dist-npm/traits/pullable/index.d.ts.map +0 -1
- package/dist-npm/traits/pullable/index.js +0 -18
- package/dist-npm/traits/pullable/index.js.map +0 -1
- package/dist-npm/traits/pullable/pullableTrait.d.ts +0 -81
- package/dist-npm/traits/pullable/pullableTrait.d.ts.map +0 -1
- package/dist-npm/traits/pullable/pullableTrait.js +0 -44
- package/dist-npm/traits/pullable/pullableTrait.js.map +0 -1
- package/dist-npm/traits/pushable/index.d.ts +0 -2
- package/dist-npm/traits/pushable/index.d.ts.map +0 -1
- package/dist-npm/traits/pushable/index.js +0 -18
- package/dist-npm/traits/pushable/index.js.map +0 -1
- package/dist-npm/traits/pushable/pushableTrait.d.ts +0 -81
- package/dist-npm/traits/pushable/pushableTrait.d.ts.map +0 -1
- package/dist-npm/traits/pushable/pushableTrait.js +0 -44
- package/dist-npm/traits/pushable/pushableTrait.js.map +0 -1
- package/dist-npm/traits/readable/index.d.ts +0 -3
- package/dist-npm/traits/readable/index.d.ts.map +0 -1
- package/dist-npm/traits/readable/index.js +0 -9
- package/dist-npm/traits/readable/index.js.map +0 -1
- package/dist-npm/traits/readable/readableBehavior.d.ts +0 -42
- package/dist-npm/traits/readable/readableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/readable/readableBehavior.js +0 -174
- package/dist-npm/traits/readable/readableBehavior.js.map +0 -1
- package/dist-npm/traits/readable/readableTrait.d.ts +0 -37
- package/dist-npm/traits/readable/readableTrait.d.ts.map +0 -1
- package/dist-npm/traits/readable/readableTrait.js +0 -51
- package/dist-npm/traits/readable/readableTrait.js.map +0 -1
- package/dist-npm/traits/register-all.d.ts +0 -10
- package/dist-npm/traits/register-all.d.ts.map +0 -1
- package/dist-npm/traits/register-all.js +0 -19
- package/dist-npm/traits/register-all.js.map +0 -1
- package/dist-npm/traits/room/index.d.ts +0 -9
- package/dist-npm/traits/room/index.d.ts.map +0 -1
- package/dist-npm/traits/room/index.js +0 -14
- package/dist-npm/traits/room/index.js.map +0 -1
- package/dist-npm/traits/room/roomBehavior.d.ts +0 -87
- package/dist-npm/traits/room/roomBehavior.d.ts.map +0 -1
- package/dist-npm/traits/room/roomBehavior.js +0 -232
- package/dist-npm/traits/room/roomBehavior.js.map +0 -1
- package/dist-npm/traits/room/roomTrait.d.ts +0 -101
- package/dist-npm/traits/room/roomTrait.d.ts.map +0 -1
- package/dist-npm/traits/room/roomTrait.js +0 -59
- package/dist-npm/traits/room/roomTrait.js.map +0 -1
- package/dist-npm/traits/scenery/index.d.ts +0 -3
- package/dist-npm/traits/scenery/index.d.ts.map +0 -1
- package/dist-npm/traits/scenery/index.js +0 -9
- package/dist-npm/traits/scenery/index.js.map +0 -1
- package/dist-npm/traits/scenery/sceneryBehavior.d.ts +0 -21
- package/dist-npm/traits/scenery/sceneryBehavior.d.ts.map +0 -1
- package/dist-npm/traits/scenery/sceneryBehavior.js +0 -42
- package/dist-npm/traits/scenery/sceneryBehavior.js.map +0 -1
- package/dist-npm/traits/scenery/sceneryTrait.d.ts +0 -30
- package/dist-npm/traits/scenery/sceneryTrait.d.ts.map +0 -1
- package/dist-npm/traits/scenery/sceneryTrait.js +0 -39
- package/dist-npm/traits/scenery/sceneryTrait.js.map +0 -1
- package/dist-npm/traits/supporter/index.d.ts +0 -3
- package/dist-npm/traits/supporter/index.d.ts.map +0 -1
- package/dist-npm/traits/supporter/index.js +0 -9
- package/dist-npm/traits/supporter/index.js.map +0 -1
- package/dist-npm/traits/supporter/supporterBehavior.d.ts +0 -83
- package/dist-npm/traits/supporter/supporterBehavior.d.ts.map +0 -1
- package/dist-npm/traits/supporter/supporterBehavior.js +0 -210
- package/dist-npm/traits/supporter/supporterBehavior.js.map +0 -1
- package/dist-npm/traits/supporter/supporterTrait.d.ts +0 -26
- package/dist-npm/traits/supporter/supporterTrait.d.ts.map +0 -1
- package/dist-npm/traits/supporter/supporterTrait.js +0 -30
- package/dist-npm/traits/supporter/supporterTrait.js.map +0 -1
- package/dist-npm/traits/switchable/index.d.ts +0 -3
- package/dist-npm/traits/switchable/index.d.ts.map +0 -1
- package/dist-npm/traits/switchable/index.js +0 -20
- package/dist-npm/traits/switchable/index.js.map +0 -1
- package/dist-npm/traits/switchable/switchableBehavior.d.ts +0 -73
- package/dist-npm/traits/switchable/switchableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/switchable/switchableBehavior.js +0 -191
- package/dist-npm/traits/switchable/switchableBehavior.js.map +0 -1
- package/dist-npm/traits/switchable/switchableTrait.d.ts +0 -61
- package/dist-npm/traits/switchable/switchableTrait.d.ts.map +0 -1
- package/dist-npm/traits/switchable/switchableTrait.js +0 -52
- package/dist-npm/traits/switchable/switchableTrait.js.map +0 -1
- package/dist-npm/traits/trait-types.d.ts +0 -81
- package/dist-npm/traits/trait-types.d.ts.map +0 -1
- package/dist-npm/traits/trait-types.js +0 -146
- package/dist-npm/traits/trait-types.js.map +0 -1
- package/dist-npm/traits/trait.d.ts +0 -44
- package/dist-npm/traits/trait.d.ts.map +0 -1
- package/dist-npm/traits/trait.js +0 -42
- package/dist-npm/traits/trait.js.map +0 -1
- package/dist-npm/traits/vehicle/index.d.ts +0 -6
- package/dist-npm/traits/vehicle/index.d.ts.map +0 -1
- package/dist-npm/traits/vehicle/index.js +0 -22
- package/dist-npm/traits/vehicle/index.js.map +0 -1
- package/dist-npm/traits/vehicle/vehicleBehavior.d.ts +0 -62
- package/dist-npm/traits/vehicle/vehicleBehavior.d.ts.map +0 -1
- package/dist-npm/traits/vehicle/vehicleBehavior.js +0 -145
- package/dist-npm/traits/vehicle/vehicleBehavior.js.map +0 -1
- package/dist-npm/traits/vehicle/vehicleTrait.d.ts +0 -77
- package/dist-npm/traits/vehicle/vehicleTrait.d.ts.map +0 -1
- package/dist-npm/traits/vehicle/vehicleTrait.js +0 -92
- package/dist-npm/traits/vehicle/vehicleTrait.js.map +0 -1
- package/dist-npm/traits/weapon/index.d.ts +0 -3
- package/dist-npm/traits/weapon/index.d.ts.map +0 -1
- package/dist-npm/traits/weapon/index.js +0 -8
- package/dist-npm/traits/weapon/index.js.map +0 -1
- package/dist-npm/traits/weapon/weaponBehavior.d.ts +0 -47
- package/dist-npm/traits/weapon/weaponBehavior.d.ts.map +0 -1
- package/dist-npm/traits/weapon/weaponBehavior.js +0 -106
- package/dist-npm/traits/weapon/weaponBehavior.js.map +0 -1
- package/dist-npm/traits/weapon/weaponTrait.d.ts +0 -67
- package/dist-npm/traits/weapon/weaponTrait.d.ts.map +0 -1
- package/dist-npm/traits/weapon/weaponTrait.js +0 -60
- package/dist-npm/traits/weapon/weaponTrait.js.map +0 -1
- package/dist-npm/traits/wearable/index.d.ts +0 -3
- package/dist-npm/traits/wearable/index.d.ts.map +0 -1
- package/dist-npm/traits/wearable/index.js +0 -20
- package/dist-npm/traits/wearable/index.js.map +0 -1
- package/dist-npm/traits/wearable/wearableBehavior.d.ts +0 -64
- package/dist-npm/traits/wearable/wearableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/wearable/wearableBehavior.js +0 -142
- package/dist-npm/traits/wearable/wearableBehavior.js.map +0 -1
- package/dist-npm/traits/wearable/wearableTrait.d.ts +0 -54
- package/dist-npm/traits/wearable/wearableTrait.d.ts.map +0 -1
- package/dist-npm/traits/wearable/wearableTrait.js +0 -53
- package/dist-npm/traits/wearable/wearableTrait.js.map +0 -1
- package/dist-npm/utils/event-utils.d.ts +0 -30
- package/dist-npm/utils/event-utils.d.ts.map +0 -1
- package/dist-npm/utils/event-utils.js +0 -33
- package/dist-npm/utils/event-utils.js.map +0 -1
- package/dist-npm/world/AuthorModel.d.ts +0 -151
- package/dist-npm/world/AuthorModel.d.ts.map +0 -1
- package/dist-npm/world/AuthorModel.js +0 -416
- package/dist-npm/world/AuthorModel.js.map +0 -1
- package/dist-npm/world/SharedDataStore.d.ts +0 -24
- package/dist-npm/world/SharedDataStore.d.ts.map +0 -1
- package/dist-npm/world/SharedDataStore.js +0 -50
- package/dist-npm/world/SharedDataStore.js.map +0 -1
- package/dist-npm/world/SpatialIndex.d.ts +0 -16
- package/dist-npm/world/SpatialIndex.d.ts.map +0 -1
- package/dist-npm/world/SpatialIndex.js +0 -117
- package/dist-npm/world/SpatialIndex.js.map +0 -1
- package/dist-npm/world/VisibilityBehavior.d.ts +0 -83
- package/dist-npm/world/VisibilityBehavior.d.ts.map +0 -1
- package/dist-npm/world/VisibilityBehavior.js +0 -484
- package/dist-npm/world/VisibilityBehavior.js.map +0 -1
- package/dist-npm/world/WorldModel.d.ts +0 -301
- package/dist-npm/world/WorldModel.d.ts.map +0 -1
- package/dist-npm/world/WorldModel.js +0 -1085
- package/dist-npm/world/WorldModel.js.map +0 -1
- package/dist-npm/world/capabilities.d.ts +0 -36
- package/dist-npm/world/capabilities.d.ts.map +0 -1
- package/dist-npm/world/capabilities.js +0 -18
- package/dist-npm/world/capabilities.js.map +0 -1
- package/dist-npm/world/index.d.ts +0 -7
- package/dist-npm/world/index.d.ts.map +0 -1
- package/dist-npm/world/index.js +0 -21
- package/dist-npm/world/index.js.map +0 -1
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Action Interceptor interface (ADR-118)
|
|
3
|
-
*
|
|
4
|
-
* Interceptors allow entities to hook into stdlib action phases
|
|
5
|
-
* without replacing standard logic. This is the "Before/After" pattern
|
|
6
|
-
* from Inform 6/7, complementing the full delegation pattern in
|
|
7
|
-
* capability behaviors.
|
|
8
|
-
*
|
|
9
|
-
* Key difference from CapabilityBehavior:
|
|
10
|
-
* - CapabilityBehavior: Full delegation, trait owns ALL logic (LOWER, RAISE)
|
|
11
|
-
* - ActionInterceptor: Hooks into phases, action owns core logic (ENTER, PUT)
|
|
12
|
-
*/
|
|
13
|
-
import { IFEntity } from '../entities';
|
|
14
|
-
import { WorldModel } from '../world';
|
|
15
|
-
import { CapabilityEffect } from './types';
|
|
16
|
-
/**
|
|
17
|
-
* Shared data object for passing data between interceptor phases.
|
|
18
|
-
* Mirrors CapabilitySharedData pattern from capability-behavior.ts.
|
|
19
|
-
*
|
|
20
|
-
* Interceptors can store data here during earlier phases (e.g., postValidate)
|
|
21
|
-
* and access it in later phases (e.g., postExecute, postReport).
|
|
22
|
-
*/
|
|
23
|
-
export type InterceptorSharedData = Record<string, unknown>;
|
|
24
|
-
/**
|
|
25
|
-
* Result from interceptor validation hooks.
|
|
26
|
-
* Returning null means "continue with standard logic".
|
|
27
|
-
* Returning a result blocks or modifies the action.
|
|
28
|
-
*/
|
|
29
|
-
export interface InterceptorResult {
|
|
30
|
-
/** Whether the action can proceed */
|
|
31
|
-
valid: boolean;
|
|
32
|
-
/** Error code if validation failed (for message lookup) */
|
|
33
|
-
error?: string;
|
|
34
|
-
/** Additional context for error messages */
|
|
35
|
-
params?: Record<string, unknown>;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Action interceptor interface.
|
|
39
|
-
*
|
|
40
|
-
* Interceptors hook into stdlib action phases to customize behavior
|
|
41
|
-
* without reimplementing standard logic. All hooks are optional.
|
|
42
|
-
*
|
|
43
|
-
* Phase order:
|
|
44
|
-
* 1. preValidate - Before standard validation
|
|
45
|
-
* 2. (standard validation runs)
|
|
46
|
-
* 3. postValidate - After standard validation passes
|
|
47
|
-
* 4. (standard execute runs)
|
|
48
|
-
* 5. postExecute - After standard execution
|
|
49
|
-
* 6. (standard report runs)
|
|
50
|
-
* 7. postReport - Additional effects after standard report
|
|
51
|
-
*
|
|
52
|
-
* If validation fails at any point:
|
|
53
|
-
* - onBlocked - Called instead of execute/report phases
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* // Boat puncture interceptor - checks for sharp objects when entering
|
|
58
|
-
* const InflatableEnteringInterceptor: ActionInterceptor = {
|
|
59
|
-
* postValidate(entity, world, actorId, sharedData) {
|
|
60
|
-
* const inventory = world.getContents(actorId);
|
|
61
|
-
* const sharpObject = inventory.find(item => item.puncturesBoat);
|
|
62
|
-
* if (sharpObject) {
|
|
63
|
-
* sharedData.willPuncture = true;
|
|
64
|
-
* sharedData.punctureItem = sharpObject.name;
|
|
65
|
-
* }
|
|
66
|
-
* return null; // Allow entering to proceed
|
|
67
|
-
* },
|
|
68
|
-
*
|
|
69
|
-
* postExecute(entity, world, actorId, sharedData) {
|
|
70
|
-
* if (!sharedData.willPuncture) return;
|
|
71
|
-
* // Deflate the boat, eject player
|
|
72
|
-
* const trait = entity.get(InflatableTrait);
|
|
73
|
-
* trait.isInflated = false;
|
|
74
|
-
* world.moveEntity(actorId, world.getLocation(entity.id));
|
|
75
|
-
* },
|
|
76
|
-
*
|
|
77
|
-
* postReport(entity, world, actorId, sharedData) {
|
|
78
|
-
* if (!sharedData.willPuncture) return [];
|
|
79
|
-
* return [createEffect('dungeo.boat.punctured', { item: sharedData.punctureItem })];
|
|
80
|
-
* }
|
|
81
|
-
* };
|
|
82
|
-
* ```
|
|
83
|
-
*/
|
|
84
|
-
export interface ActionInterceptor {
|
|
85
|
-
/**
|
|
86
|
-
* Called BEFORE standard validation.
|
|
87
|
-
*
|
|
88
|
-
* Use this to block actions early based on entity-specific conditions.
|
|
89
|
-
* Return an InterceptorResult to block the action.
|
|
90
|
-
* Return null to continue with standard validation.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* // Troll blocks entering the Troll Room
|
|
94
|
-
* preValidate(entity, world, actorId, sharedData) {
|
|
95
|
-
* if (trollIsAlive(world)) {
|
|
96
|
-
* return { valid: false, error: 'dungeo.troll.blocks_path' };
|
|
97
|
-
* }
|
|
98
|
-
* return null;
|
|
99
|
-
* }
|
|
100
|
-
*/
|
|
101
|
-
preValidate?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): InterceptorResult | null;
|
|
102
|
-
/**
|
|
103
|
-
* Called AFTER standard validation passes.
|
|
104
|
-
*
|
|
105
|
-
* Use this to add entity-specific conditions that should block
|
|
106
|
-
* an otherwise valid action, or to set up data for postExecute.
|
|
107
|
-
* Return an InterceptorResult to block the action.
|
|
108
|
-
* Return null to continue with execution.
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* // Check if player is carrying something that will puncture the boat
|
|
112
|
-
* postValidate(entity, world, actorId, sharedData) {
|
|
113
|
-
* const sharp = findSharpObject(world, actorId);
|
|
114
|
-
* if (sharp) {
|
|
115
|
-
* sharedData.willPuncture = true;
|
|
116
|
-
* sharedData.punctureItem = sharp.name;
|
|
117
|
-
* }
|
|
118
|
-
* return null; // Still allow entering
|
|
119
|
-
* }
|
|
120
|
-
*/
|
|
121
|
-
postValidate?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): InterceptorResult | null;
|
|
122
|
-
/**
|
|
123
|
-
* Called AFTER standard execution completes.
|
|
124
|
-
*
|
|
125
|
-
* Use this to perform additional mutations based on the action.
|
|
126
|
-
* Cannot prevent the action (use postValidate for that).
|
|
127
|
-
* Access data stored in sharedData during validation phases.
|
|
128
|
-
*
|
|
129
|
-
* @example
|
|
130
|
-
* // Glacier melts when torch is thrown at it
|
|
131
|
-
* postExecute(entity, world, actorId, sharedData) {
|
|
132
|
-
* if (!sharedData.willMelt) return;
|
|
133
|
-
* meltGlacier(world, entity.id);
|
|
134
|
-
* openPassage(world, 'glacier-passage');
|
|
135
|
-
* }
|
|
136
|
-
*/
|
|
137
|
-
postExecute?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): void;
|
|
138
|
-
/**
|
|
139
|
-
* Called AFTER standard report.
|
|
140
|
-
*
|
|
141
|
-
* Return additional effects to emit after the standard effects.
|
|
142
|
-
* Return empty array if no additional effects needed.
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* // Add glacier melting message
|
|
146
|
-
* postReport(entity, world, actorId, sharedData) {
|
|
147
|
-
* if (!sharedData.melted) return [];
|
|
148
|
-
* return [createEffect('dungeo.glacier.melted', { messageId: 'dungeo.glacier.melts' })];
|
|
149
|
-
* }
|
|
150
|
-
*/
|
|
151
|
-
postReport?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): CapabilityEffect[];
|
|
152
|
-
/**
|
|
153
|
-
* Called when action is blocked (validation failed).
|
|
154
|
-
*
|
|
155
|
-
* Use this to provide custom blocked handling for this entity.
|
|
156
|
-
* Return effects to emit, or null to use standard blocked handling.
|
|
157
|
-
*
|
|
158
|
-
* @example
|
|
159
|
-
* // Custom message when troll blocks entry
|
|
160
|
-
* onBlocked(entity, world, actorId, error, sharedData) {
|
|
161
|
-
* if (error === 'dungeo.troll.blocks_path') {
|
|
162
|
-
* return [createEffect('game.message', { messageId: 'dungeo.troll.snarls' })];
|
|
163
|
-
* }
|
|
164
|
-
* return null; // Use standard blocked handling
|
|
165
|
-
* }
|
|
166
|
-
*/
|
|
167
|
-
onBlocked?(entity: IFEntity, world: WorldModel, actorId: string, error: string, sharedData: InterceptorSharedData): CapabilityEffect[] | null;
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=action-interceptor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-interceptor.d.ts","sourceRoot":"","sources":["../../src/capabilities/action-interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,CACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,iBAAiB,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,CACX,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,iBAAiB,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,CACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,IAAI,CAAC;IAER;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,CACT,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,gBAAgB,EAAE,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,CACR,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,qBAAqB,GAChC,gBAAgB,EAAE,GAAG,IAAI,CAAC;CAC9B"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Action Interceptor interface (ADR-118)
|
|
4
|
-
*
|
|
5
|
-
* Interceptors allow entities to hook into stdlib action phases
|
|
6
|
-
* without replacing standard logic. This is the "Before/After" pattern
|
|
7
|
-
* from Inform 6/7, complementing the full delegation pattern in
|
|
8
|
-
* capability behaviors.
|
|
9
|
-
*
|
|
10
|
-
* Key difference from CapabilityBehavior:
|
|
11
|
-
* - CapabilityBehavior: Full delegation, trait owns ALL logic (LOWER, RAISE)
|
|
12
|
-
* - ActionInterceptor: Hooks into phases, action owns core logic (ENTER, PUT)
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
//# sourceMappingURL=action-interceptor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-interceptor.js","sourceRoot":"","sources":["../../src/capabilities/action-interceptor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability Behavior interface (ADR-090)
|
|
3
|
-
*
|
|
4
|
-
* Standard interface for behaviors that handle capability dispatch.
|
|
5
|
-
* Follows the same 4-phase pattern as stdlib actions for consistency.
|
|
6
|
-
*/
|
|
7
|
-
import { IFEntity } from '../entities';
|
|
8
|
-
import { WorldModel } from '../world';
|
|
9
|
-
import { CapabilityValidationResult, CapabilityEffect } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* Shared data object for passing data between behavior phases.
|
|
12
|
-
* Mirrors ActionContext.sharedData pattern from stdlib.
|
|
13
|
-
*/
|
|
14
|
-
export type CapabilitySharedData = Record<string, any>;
|
|
15
|
-
/**
|
|
16
|
-
* Standard interface for capability behaviors.
|
|
17
|
-
*
|
|
18
|
-
* Behaviors implement this interface to handle specific capabilities
|
|
19
|
-
* (action IDs) declared by traits. When a trait declares a capability,
|
|
20
|
-
* a corresponding behavior must be registered to handle it.
|
|
21
|
-
*
|
|
22
|
-
* The 4-phase pattern mirrors stdlib actions:
|
|
23
|
-
* 1. validate - Check if the action can be performed
|
|
24
|
-
* 2. execute - Perform mutations (no events)
|
|
25
|
-
* 3. report - Generate success events
|
|
26
|
-
* 4. blocked - Generate failure events
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const BasketLoweringBehavior: CapabilityBehavior = {
|
|
31
|
-
* validate(entity, world, actorId, sharedData) {
|
|
32
|
-
* const trait = entity.get(BasketElevatorTrait);
|
|
33
|
-
* if (trait.position === 'bottom') {
|
|
34
|
-
* return { valid: false, error: 'dungeo.basket.already_down' };
|
|
35
|
-
* }
|
|
36
|
-
* return { valid: true };
|
|
37
|
-
* },
|
|
38
|
-
*
|
|
39
|
-
* execute(entity, world, actorId, sharedData) {
|
|
40
|
-
* const trait = entity.get(BasketElevatorTrait);
|
|
41
|
-
* trait.position = 'bottom';
|
|
42
|
-
* world.moveEntity(entity.id, trait.bottomRoomId);
|
|
43
|
-
* sharedData.playerTransported = true; // Pass data to report()
|
|
44
|
-
* },
|
|
45
|
-
*
|
|
46
|
-
* report(entity, world, actorId, sharedData) {
|
|
47
|
-
* const transported = sharedData.playerTransported;
|
|
48
|
-
* return [createEffect('if.event.lowered', { target: entity.id })];
|
|
49
|
-
* },
|
|
50
|
-
*
|
|
51
|
-
* blocked(entity, world, actorId, error, sharedData) {
|
|
52
|
-
* return [createEffect('action.blocked', { messageId: error })];
|
|
53
|
-
* }
|
|
54
|
-
* };
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
export interface CapabilityBehavior {
|
|
58
|
-
/**
|
|
59
|
-
* Phase 1: Validate whether the action can be performed.
|
|
60
|
-
*
|
|
61
|
-
* Check preconditions, state, and constraints. Return validation
|
|
62
|
-
* result with error code if action cannot proceed.
|
|
63
|
-
*
|
|
64
|
-
* @param entity - The entity being acted upon
|
|
65
|
-
* @param world - The world model for querying state
|
|
66
|
-
* @param actorId - ID of the actor performing the action
|
|
67
|
-
* @param sharedData - Mutable object for passing data between phases
|
|
68
|
-
* @returns Validation result with optional error info
|
|
69
|
-
*/
|
|
70
|
-
validate(entity: IFEntity, world: WorldModel, actorId: string, sharedData: CapabilitySharedData): CapabilityValidationResult;
|
|
71
|
-
/**
|
|
72
|
-
* Phase 2: Execute mutations.
|
|
73
|
-
*
|
|
74
|
-
* Perform all state changes. Do NOT emit events here - that's
|
|
75
|
-
* the report phase's job. This separation enables clean rollback
|
|
76
|
-
* and consistent event generation.
|
|
77
|
-
*
|
|
78
|
-
* @param entity - The entity being acted upon
|
|
79
|
-
* @param world - The world model for mutations
|
|
80
|
-
* @param actorId - ID of the actor performing the action
|
|
81
|
-
* @param sharedData - Mutable object for passing data between phases
|
|
82
|
-
*/
|
|
83
|
-
execute(entity: IFEntity, world: WorldModel, actorId: string, sharedData: CapabilitySharedData): void;
|
|
84
|
-
/**
|
|
85
|
-
* Phase 3: Report success.
|
|
86
|
-
*
|
|
87
|
-
* Generate effects describing what happened. Called after
|
|
88
|
-
* execute() succeeds. Return events with appropriate message IDs.
|
|
89
|
-
*
|
|
90
|
-
* @param entity - The entity that was acted upon
|
|
91
|
-
* @param world - The world model (post-mutation state)
|
|
92
|
-
* @param actorId - ID of the actor who performed the action
|
|
93
|
-
* @param sharedData - Mutable object for passing data between phases
|
|
94
|
-
* @returns Array of effects to emit
|
|
95
|
-
*/
|
|
96
|
-
report(entity: IFEntity, world: WorldModel, actorId: string, sharedData: CapabilitySharedData): CapabilityEffect[];
|
|
97
|
-
/**
|
|
98
|
-
* Phase 4: Report failure.
|
|
99
|
-
*
|
|
100
|
-
* Generate effects for when validation fails. Called instead
|
|
101
|
-
* of execute()/report() when validate() returns invalid.
|
|
102
|
-
*
|
|
103
|
-
* @param entity - The entity that couldn't be acted upon
|
|
104
|
-
* @param world - The world model
|
|
105
|
-
* @param actorId - ID of the actor who attempted the action
|
|
106
|
-
* @param error - Error code from validation result
|
|
107
|
-
* @param sharedData - Mutable object for passing data between phases
|
|
108
|
-
* @returns Array of effects to emit
|
|
109
|
-
*/
|
|
110
|
-
blocked(entity: IFEntity, world: WorldModel, actorId: string, error: string, sharedData: CapabilitySharedData): CapabilityEffect[];
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=capability-behavior.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-behavior.d.ts","sourceRoot":"","sources":["../../src/capabilities/capability-behavior.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,GAAG,0BAA0B,CAAC;IAE7H;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAEtG;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,CAAC;IAEnH;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,CAAC;CACpI"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Capability Behavior interface (ADR-090)
|
|
4
|
-
*
|
|
5
|
-
* Standard interface for behaviors that handle capability dispatch.
|
|
6
|
-
* Follows the same 4-phase pattern as stdlib actions for consistency.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
//# sourceMappingURL=capability-behavior.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-behavior.js","sourceRoot":"","sources":["../../src/capabilities/capability-behavior.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability Defaults (ADR-090 Extension)
|
|
3
|
-
*
|
|
4
|
-
* Global configuration for how capabilities are resolved when multiple
|
|
5
|
-
* entities claim the same capability. Stories can override per-registration.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Resolution strategy when multiple entities claim the same capability.
|
|
9
|
-
*/
|
|
10
|
-
export type CapabilityResolution = 'first-wins' | 'any-blocks' | 'all-must-pass' | 'highest-priority';
|
|
11
|
-
/**
|
|
12
|
-
* How the capability validation result affects the action.
|
|
13
|
-
*/
|
|
14
|
-
export type CapabilityMode = 'blocking' | 'advisory' | 'chain';
|
|
15
|
-
/**
|
|
16
|
-
* Configuration for a capability.
|
|
17
|
-
*/
|
|
18
|
-
export interface CapabilityConfig {
|
|
19
|
-
/** How to resolve multiple entities claiming this capability */
|
|
20
|
-
resolution: CapabilityResolution;
|
|
21
|
-
/** How validation result affects the action */
|
|
22
|
-
mode: CapabilityMode;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Define default configuration for a capability.
|
|
26
|
-
*
|
|
27
|
-
* Called during platform or story initialization to set how a capability
|
|
28
|
-
* should behave when multiple entities claim it.
|
|
29
|
-
*
|
|
30
|
-
* @param capabilityId - The capability ID (e.g., 'if.scope.visible', 'if.action.taking')
|
|
31
|
-
* @param config - Partial config, missing values use defaults
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* // Visibility should block if ANY entity says it's hidden
|
|
36
|
-
* defineCapabilityDefaults('if.scope.visible', {
|
|
37
|
-
* resolution: 'any-blocks',
|
|
38
|
-
* mode: 'blocking'
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare function defineCapabilityDefaults(capabilityId: string, config: Partial<CapabilityConfig>): void;
|
|
43
|
-
/**
|
|
44
|
-
* Get configuration for a capability.
|
|
45
|
-
*
|
|
46
|
-
* Returns the registered config or defaults if not registered.
|
|
47
|
-
*
|
|
48
|
-
* @param capabilityId - The capability ID
|
|
49
|
-
* @returns The capability configuration
|
|
50
|
-
*/
|
|
51
|
-
export declare function getCapabilityConfig(capabilityId: string): CapabilityConfig;
|
|
52
|
-
/**
|
|
53
|
-
* Check if a capability has explicit defaults defined.
|
|
54
|
-
*
|
|
55
|
-
* @param capabilityId - The capability ID
|
|
56
|
-
* @returns true if defaults have been defined
|
|
57
|
-
*/
|
|
58
|
-
export declare function hasCapabilityDefaults(capabilityId: string): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Clear all capability defaults (for testing).
|
|
61
|
-
*/
|
|
62
|
-
export declare function clearCapabilityDefaults(): void;
|
|
63
|
-
/**
|
|
64
|
-
* Get all defined capability defaults (for debugging/introspection).
|
|
65
|
-
*/
|
|
66
|
-
export declare function getAllCapabilityDefaults(): Map<string, CapabilityConfig>;
|
|
67
|
-
//# sourceMappingURL=capability-defaults.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-defaults.d.ts","sourceRoot":"","sources":["../../src/capabilities/capability-defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,UAAU,EAAE,oBAAoB,CAAC;IACjC,+CAA+C;IAC/C,IAAI,EAAE,cAAc,CAAC;CACtB;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAChC,IAAI,CAKN;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAExE"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Capability Defaults (ADR-090 Extension)
|
|
4
|
-
*
|
|
5
|
-
* Global configuration for how capabilities are resolved when multiple
|
|
6
|
-
* entities claim the same capability. Stories can override per-registration.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.defineCapabilityDefaults = defineCapabilityDefaults;
|
|
10
|
-
exports.getCapabilityConfig = getCapabilityConfig;
|
|
11
|
-
exports.hasCapabilityDefaults = hasCapabilityDefaults;
|
|
12
|
-
exports.clearCapabilityDefaults = clearCapabilityDefaults;
|
|
13
|
-
exports.getAllCapabilityDefaults = getAllCapabilityDefaults;
|
|
14
|
-
/**
|
|
15
|
-
* Default configuration used when no specific config is defined.
|
|
16
|
-
*/
|
|
17
|
-
const DEFAULT_CONFIG = {
|
|
18
|
-
resolution: 'first-wins',
|
|
19
|
-
mode: 'blocking'
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Registry of capability configurations.
|
|
23
|
-
*/
|
|
24
|
-
const capabilityDefaults = new Map();
|
|
25
|
-
/**
|
|
26
|
-
* Define default configuration for a capability.
|
|
27
|
-
*
|
|
28
|
-
* Called during platform or story initialization to set how a capability
|
|
29
|
-
* should behave when multiple entities claim it.
|
|
30
|
-
*
|
|
31
|
-
* @param capabilityId - The capability ID (e.g., 'if.scope.visible', 'if.action.taking')
|
|
32
|
-
* @param config - Partial config, missing values use defaults
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* // Visibility should block if ANY entity says it's hidden
|
|
37
|
-
* defineCapabilityDefaults('if.scope.visible', {
|
|
38
|
-
* resolution: 'any-blocks',
|
|
39
|
-
* mode: 'blocking'
|
|
40
|
-
* });
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
function defineCapabilityDefaults(capabilityId, config) {
|
|
44
|
-
capabilityDefaults.set(capabilityId, {
|
|
45
|
-
resolution: config.resolution ?? DEFAULT_CONFIG.resolution,
|
|
46
|
-
mode: config.mode ?? DEFAULT_CONFIG.mode
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Get configuration for a capability.
|
|
51
|
-
*
|
|
52
|
-
* Returns the registered config or defaults if not registered.
|
|
53
|
-
*
|
|
54
|
-
* @param capabilityId - The capability ID
|
|
55
|
-
* @returns The capability configuration
|
|
56
|
-
*/
|
|
57
|
-
function getCapabilityConfig(capabilityId) {
|
|
58
|
-
return capabilityDefaults.get(capabilityId) ?? { ...DEFAULT_CONFIG };
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Check if a capability has explicit defaults defined.
|
|
62
|
-
*
|
|
63
|
-
* @param capabilityId - The capability ID
|
|
64
|
-
* @returns true if defaults have been defined
|
|
65
|
-
*/
|
|
66
|
-
function hasCapabilityDefaults(capabilityId) {
|
|
67
|
-
return capabilityDefaults.has(capabilityId);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Clear all capability defaults (for testing).
|
|
71
|
-
*/
|
|
72
|
-
function clearCapabilityDefaults() {
|
|
73
|
-
capabilityDefaults.clear();
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get all defined capability defaults (for debugging/introspection).
|
|
77
|
-
*/
|
|
78
|
-
function getAllCapabilityDefaults() {
|
|
79
|
-
return new Map(capabilityDefaults);
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=capability-defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-defaults.js","sourceRoot":"","sources":["../../src/capabilities/capability-defaults.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4DH,4DAQC;AAUD,kDAEC;AAQD,sDAEC;AAKD,0DAEC;AAKD,4DAEC;AA3ED;;GAEG;AACH,MAAM,cAAc,GAAqB;IACvC,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,wBAAwB,CACtC,YAAoB,EACpB,MAAiC;IAEjC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU;QAC1D,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,OAAO,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,YAAoB;IACxD,OAAO,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability Helpers (ADR-090)
|
|
3
|
-
*
|
|
4
|
-
* Helper functions for working with trait capabilities.
|
|
5
|
-
* Used by capability-dispatch actions to find and check capabilities.
|
|
6
|
-
*/
|
|
7
|
-
import { ITrait } from '../traits/trait';
|
|
8
|
-
import { IFEntity } from '../entities';
|
|
9
|
-
/**
|
|
10
|
-
* Find a trait on the entity that declares the given capability.
|
|
11
|
-
*
|
|
12
|
-
* Entity resolution (which entity "lower X" refers to) is handled
|
|
13
|
-
* by the parser using scope math. Once resolved to a specific entity,
|
|
14
|
-
* this function finds the trait that handles the action.
|
|
15
|
-
*
|
|
16
|
-
* @param entity - The entity to search
|
|
17
|
-
* @param actionId - The action ID (capability) to find
|
|
18
|
-
* @returns The trait that claims the capability, or undefined
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const trait = findTraitWithCapability(basket, 'if.action.lowering');
|
|
23
|
-
* if (trait) {
|
|
24
|
-
* const behavior = getBehaviorForCapability(trait, 'if.action.lowering');
|
|
25
|
-
* // ... dispatch to behavior
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare function findTraitWithCapability(entity: IFEntity, actionId: string): ITrait | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Check if an entity has any trait claiming a capability.
|
|
32
|
-
*
|
|
33
|
-
* @param entity - The entity to check
|
|
34
|
-
* @param actionId - The action ID (capability) to check for
|
|
35
|
-
* @returns True if entity has a trait with this capability
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* if (hasCapability(entity, 'if.action.lowering')) {
|
|
40
|
-
* // Entity can be lowered
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare function hasCapability(entity: IFEntity, actionId: string): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Get all capabilities declared by an entity's traits.
|
|
47
|
-
*
|
|
48
|
-
* @param entity - The entity to inspect
|
|
49
|
-
* @returns Array of action IDs the entity can handle
|
|
50
|
-
*/
|
|
51
|
-
export declare function getEntityCapabilities(entity: IFEntity): string[];
|
|
52
|
-
/**
|
|
53
|
-
* Type guard to check if a trait has a specific capability.
|
|
54
|
-
*
|
|
55
|
-
* @param trait - The trait to check
|
|
56
|
-
* @param actionId - The action ID to check for
|
|
57
|
-
* @param traitType - Optional: specific trait class to narrow to
|
|
58
|
-
* @returns True if trait has the capability (and is of specified type)
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* if (traitHasCapability(trait, 'if.action.lowering', BasketElevatorTrait)) {
|
|
63
|
-
* // trait is narrowed to BasketElevatorTrait
|
|
64
|
-
* console.log(trait.position);
|
|
65
|
-
* }
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export declare function traitHasCapability<T extends ITrait>(trait: ITrait, actionId: string, traitType?: new (...args: any[]) => T): trait is T;
|
|
69
|
-
/**
|
|
70
|
-
* Find all traits on an entity that have capabilities.
|
|
71
|
-
*
|
|
72
|
-
* @param entity - The entity to inspect
|
|
73
|
-
* @returns Array of traits that declare at least one capability
|
|
74
|
-
*/
|
|
75
|
-
export declare function getCapableTraits(entity: IFEntity): ITrait[];
|
|
76
|
-
//# sourceMappingURL=capability-helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-helpers.d.ts","sourceRoot":"","sources":["../../src/capabilities/capability-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAWhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EACjD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACpC,KAAK,IAAI,CAAC,CAQZ;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK3D"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Capability Helpers (ADR-090)
|
|
4
|
-
*
|
|
5
|
-
* Helper functions for working with trait capabilities.
|
|
6
|
-
* Used by capability-dispatch actions to find and check capabilities.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.findTraitWithCapability = findTraitWithCapability;
|
|
10
|
-
exports.hasCapability = hasCapability;
|
|
11
|
-
exports.getEntityCapabilities = getEntityCapabilities;
|
|
12
|
-
exports.traitHasCapability = traitHasCapability;
|
|
13
|
-
exports.getCapableTraits = getCapableTraits;
|
|
14
|
-
/**
|
|
15
|
-
* Find a trait on the entity that declares the given capability.
|
|
16
|
-
*
|
|
17
|
-
* Entity resolution (which entity "lower X" refers to) is handled
|
|
18
|
-
* by the parser using scope math. Once resolved to a specific entity,
|
|
19
|
-
* this function finds the trait that handles the action.
|
|
20
|
-
*
|
|
21
|
-
* @param entity - The entity to search
|
|
22
|
-
* @param actionId - The action ID (capability) to find
|
|
23
|
-
* @returns The trait that claims the capability, or undefined
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const trait = findTraitWithCapability(basket, 'if.action.lowering');
|
|
28
|
-
* if (trait) {
|
|
29
|
-
* const behavior = getBehaviorForCapability(trait, 'if.action.lowering');
|
|
30
|
-
* // ... dispatch to behavior
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
function findTraitWithCapability(entity, actionId) {
|
|
35
|
-
for (const trait of entity.traits.values()) {
|
|
36
|
-
const traitClass = trait.constructor;
|
|
37
|
-
if (traitClass.capabilities?.includes(actionId)) {
|
|
38
|
-
return trait;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Check if an entity has any trait claiming a capability.
|
|
45
|
-
*
|
|
46
|
-
* @param entity - The entity to check
|
|
47
|
-
* @param actionId - The action ID (capability) to check for
|
|
48
|
-
* @returns True if entity has a trait with this capability
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```typescript
|
|
52
|
-
* if (hasCapability(entity, 'if.action.lowering')) {
|
|
53
|
-
* // Entity can be lowered
|
|
54
|
-
* }
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
function hasCapability(entity, actionId) {
|
|
58
|
-
return findTraitWithCapability(entity, actionId) !== undefined;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Get all capabilities declared by an entity's traits.
|
|
62
|
-
*
|
|
63
|
-
* @param entity - The entity to inspect
|
|
64
|
-
* @returns Array of action IDs the entity can handle
|
|
65
|
-
*/
|
|
66
|
-
function getEntityCapabilities(entity) {
|
|
67
|
-
const capabilities = [];
|
|
68
|
-
for (const trait of entity.traits.values()) {
|
|
69
|
-
const traitClass = trait.constructor;
|
|
70
|
-
if (traitClass.capabilities) {
|
|
71
|
-
capabilities.push(...traitClass.capabilities);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return capabilities;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Type guard to check if a trait has a specific capability.
|
|
78
|
-
*
|
|
79
|
-
* @param trait - The trait to check
|
|
80
|
-
* @param actionId - The action ID to check for
|
|
81
|
-
* @param traitType - Optional: specific trait class to narrow to
|
|
82
|
-
* @returns True if trait has the capability (and is of specified type)
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* if (traitHasCapability(trait, 'if.action.lowering', BasketElevatorTrait)) {
|
|
87
|
-
* // trait is narrowed to BasketElevatorTrait
|
|
88
|
-
* console.log(trait.position);
|
|
89
|
-
* }
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
function traitHasCapability(trait, actionId, traitType) {
|
|
93
|
-
const traitClass = trait.constructor;
|
|
94
|
-
const hasAction = traitClass.capabilities?.includes(actionId) ?? false;
|
|
95
|
-
if (traitType) {
|
|
96
|
-
return hasAction && trait instanceof traitType;
|
|
97
|
-
}
|
|
98
|
-
return hasAction;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Find all traits on an entity that have capabilities.
|
|
102
|
-
*
|
|
103
|
-
* @param entity - The entity to inspect
|
|
104
|
-
* @returns Array of traits that declare at least one capability
|
|
105
|
-
*/
|
|
106
|
-
function getCapableTraits(entity) {
|
|
107
|
-
return Array.from(entity.traits.values()).filter(trait => {
|
|
108
|
-
const traitClass = trait.constructor;
|
|
109
|
-
return traitClass.capabilities && traitClass.capabilities.length > 0;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=capability-helpers.js.map
|