@sharpee/world-model 0.9.60-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 +61 -0
- package/dist/behaviors/attack.d.ts +52 -0
- package/dist/behaviors/attack.d.ts.map +1 -0
- package/dist/behaviors/attack.js +161 -0
- package/dist/behaviors/attack.js.map +1 -0
- package/dist/behaviors/behavior.d.ts +67 -0
- package/dist/behaviors/behavior.d.ts.map +1 -0
- package/dist/behaviors/behavior.js +80 -0
- package/dist/behaviors/behavior.js.map +1 -0
- package/dist/behaviors/index.d.ts +21 -0
- package/dist/behaviors/index.d.ts.map +1 -0
- package/dist/behaviors/index.js +39 -0
- package/dist/behaviors/index.js.map +1 -0
- package/dist/capabilities/capability-behavior.d.ts +112 -0
- package/dist/capabilities/capability-behavior.d.ts.map +1 -0
- package/dist/capabilities/capability-behavior.js +9 -0
- package/dist/capabilities/capability-behavior.js.map +1 -0
- package/dist/capabilities/capability-defaults.d.ts +67 -0
- package/dist/capabilities/capability-defaults.d.ts.map +1 -0
- package/dist/capabilities/capability-defaults.js +81 -0
- package/dist/capabilities/capability-defaults.js.map +1 -0
- package/dist/capabilities/capability-helpers.d.ts +76 -0
- package/dist/capabilities/capability-helpers.d.ts.map +1 -0
- package/dist/capabilities/capability-helpers.js +112 -0
- package/dist/capabilities/capability-helpers.js.map +1 -0
- package/dist/capabilities/capability-registry.d.ts +115 -0
- package/dist/capabilities/capability-registry.d.ts.map +1 -0
- package/dist/capabilities/capability-registry.js +136 -0
- package/dist/capabilities/capability-registry.js.map +1 -0
- package/dist/capabilities/entity-builder.d.ts +79 -0
- package/dist/capabilities/entity-builder.d.ts.map +1 -0
- package/dist/capabilities/entity-builder.js +116 -0
- package/dist/capabilities/entity-builder.js.map +1 -0
- package/dist/capabilities/index.d.ts +13 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +40 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/types.d.ts +35 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +16 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/commands/command-types.d.ts +30 -0
- package/dist/commands/command-types.d.ts.map +1 -0
- package/dist/commands/command-types.js +6 -0
- package/dist/commands/command-types.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +23 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/parsed-command.d.ts +204 -0
- package/dist/commands/parsed-command.d.ts.map +1 -0
- package/dist/commands/parsed-command.js +25 -0
- package/dist/commands/parsed-command.js.map +1 -0
- package/dist/commands/validated-command.d.ts +52 -0
- package/dist/commands/validated-command.d.ts.map +1 -0
- package/dist/commands/validated-command.js +8 -0
- package/dist/commands/validated-command.js.map +1 -0
- package/dist/constants/action-failures.d.ts +54 -0
- package/dist/constants/action-failures.d.ts.map +1 -0
- package/dist/constants/action-failures.js +68 -0
- package/dist/constants/action-failures.js.map +1 -0
- package/dist/constants/directions.d.ts +32 -0
- package/dist/constants/directions.d.ts.map +1 -0
- package/dist/constants/directions.js +53 -0
- package/dist/constants/directions.js.map +1 -0
- package/dist/constants/if-events.d.ts +5 -0
- package/dist/constants/if-events.d.ts.map +1 -0
- package/dist/constants/if-events.js +10 -0
- package/dist/constants/if-events.js.map +1 -0
- package/dist/constants/index.d.ts +9 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +25 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/entities/entity-store.d.ts +66 -0
- package/dist/entities/entity-store.d.ts.map +1 -0
- package/dist/entities/entity-store.js +116 -0
- package/dist/entities/entity-store.js.map +1 -0
- package/dist/entities/entity-types.d.ts +40 -0
- package/dist/entities/entity-types.d.ts.map +1 -0
- package/dist/entities/entity-types.js +56 -0
- package/dist/entities/entity-types.js.map +1 -0
- package/dist/entities/if-entity.d.ts +259 -0
- package/dist/entities/if-entity.d.ts.map +1 -0
- package/dist/entities/if-entity.js +498 -0
- package/dist/entities/if-entity.js.map +1 -0
- package/dist/entities/index.d.ts +5 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +13 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/events/types.d.ts +45 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +9 -0
- package/dist/events/types.js.map +1 -0
- package/dist/examples/event-handler-registration.d.ts +14 -0
- package/dist/examples/event-handler-registration.d.ts.map +1 -0
- package/dist/examples/event-handler-registration.js +158 -0
- package/dist/examples/event-handler-registration.js.map +1 -0
- package/dist/extensions/base-extension.d.ts +69 -0
- package/dist/extensions/base-extension.d.ts.map +1 -0
- package/dist/extensions/base-extension.js +83 -0
- package/dist/extensions/base-extension.js.map +1 -0
- package/dist/extensions/index.d.ts +11 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +39 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +52 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +177 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/manager.d.ts +68 -0
- package/dist/extensions/manager.d.ts.map +1 -0
- package/dist/extensions/manager.js +164 -0
- package/dist/extensions/manager.js.map +1 -0
- package/dist/extensions/registry.d.ts +100 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +193 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +226 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +28 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/command-executor.d.ts +17 -0
- package/dist/interfaces/command-executor.d.ts.map +1 -0
- package/dist/interfaces/command-executor.js +6 -0
- package/dist/interfaces/command-executor.js.map +1 -0
- package/dist/interfaces/command-processor.d.ts +17 -0
- package/dist/interfaces/command-processor.d.ts.map +1 -0
- package/dist/interfaces/command-processor.js +6 -0
- package/dist/interfaces/command-processor.js.map +1 -0
- package/dist/interfaces/command-validator.d.ts +17 -0
- package/dist/interfaces/command-validator.d.ts.map +1 -0
- package/dist/interfaces/command-validator.js +6 -0
- package/dist/interfaces/command-validator.js.map +1 -0
- package/dist/interfaces/index.d.ts +8 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +24 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/language-provider.d.ts +86 -0
- package/dist/interfaces/language-provider.d.ts.map +1 -0
- package/dist/interfaces/language-provider.js +14 -0
- package/dist/interfaces/language-provider.js.map +1 -0
- package/dist/interfaces/parser.d.ts +16 -0
- package/dist/interfaces/parser.d.ts.map +1 -0
- package/dist/interfaces/parser.js +6 -0
- package/dist/interfaces/parser.js.map +1 -0
- package/dist/scope/index.d.ts +8 -0
- package/dist/scope/index.d.ts.map +1 -0
- package/dist/scope/index.js +24 -0
- package/dist/scope/index.js.map +1 -0
- package/dist/scope/scope-evaluator.d.ts +58 -0
- package/dist/scope/scope-evaluator.d.ts.map +1 -0
- package/dist/scope/scope-evaluator.js +207 -0
- package/dist/scope/scope-evaluator.js.map +1 -0
- package/dist/scope/scope-registry.d.ts +59 -0
- package/dist/scope/scope-registry.d.ts.map +1 -0
- package/dist/scope/scope-registry.js +182 -0
- package/dist/scope/scope-registry.js.map +1 -0
- package/dist/scope/scope-rule.d.ts +86 -0
- package/dist/scope/scope-rule.d.ts.map +1 -0
- package/dist/scope/scope-rule.js +7 -0
- package/dist/scope/scope-rule.js.map +1 -0
- package/dist/services/ScopeService.d.ts +8 -0
- package/dist/services/ScopeService.d.ts.map +1 -0
- package/dist/services/ScopeService.js +19 -0
- package/dist/services/ScopeService.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +6 -0
- package/dist/services/index.js.map +1 -0
- package/dist/test-structure.d.ts +3 -0
- package/dist/test-structure.d.ts.map +1 -0
- package/dist/test-structure.js +26 -0
- package/dist/test-structure.js.map +1 -0
- package/dist/traits/actor/actorBehavior.d.ts +121 -0
- package/dist/traits/actor/actorBehavior.d.ts.map +1 -0
- package/dist/traits/actor/actorBehavior.js +288 -0
- package/dist/traits/actor/actorBehavior.js.map +1 -0
- package/dist/traits/actor/actorTrait.d.ts +158 -0
- package/dist/traits/actor/actorTrait.d.ts.map +1 -0
- package/dist/traits/actor/actorTrait.js +152 -0
- package/dist/traits/actor/actorTrait.js.map +1 -0
- package/dist/traits/actor/index.d.ts +3 -0
- package/dist/traits/actor/index.d.ts.map +1 -0
- package/dist/traits/actor/index.js +11 -0
- package/dist/traits/actor/index.js.map +1 -0
- package/dist/traits/all-traits.d.ts +95 -0
- package/dist/traits/all-traits.d.ts.map +1 -0
- package/dist/traits/all-traits.js +178 -0
- package/dist/traits/all-traits.js.map +1 -0
- package/dist/traits/attached/attachedTrait.d.ts +61 -0
- package/dist/traits/attached/attachedTrait.d.ts.map +1 -0
- package/dist/traits/attached/attachedTrait.js +36 -0
- package/dist/traits/attached/attachedTrait.js.map +1 -0
- package/dist/traits/attached/index.d.ts +2 -0
- package/dist/traits/attached/index.d.ts.map +1 -0
- package/dist/traits/attached/index.js +18 -0
- package/dist/traits/attached/index.js.map +1 -0
- package/dist/traits/breakable/breakableBehavior.d.ts +43 -0
- package/dist/traits/breakable/breakableBehavior.d.ts.map +1 -0
- package/dist/traits/breakable/breakableBehavior.js +70 -0
- package/dist/traits/breakable/breakableBehavior.js.map +1 -0
- package/dist/traits/breakable/breakableTrait.d.ts +22 -0
- package/dist/traits/breakable/breakableTrait.d.ts.map +1 -0
- package/dist/traits/breakable/breakableTrait.js +25 -0
- package/dist/traits/breakable/breakableTrait.js.map +1 -0
- package/dist/traits/breakable/index.d.ts +3 -0
- package/dist/traits/breakable/index.d.ts.map +1 -0
- package/dist/traits/breakable/index.js +8 -0
- package/dist/traits/breakable/index.js.map +1 -0
- package/dist/traits/button/buttonTrait.d.ts +53 -0
- package/dist/traits/button/buttonTrait.d.ts.map +1 -0
- package/dist/traits/button/buttonTrait.js +36 -0
- package/dist/traits/button/buttonTrait.js.map +1 -0
- package/dist/traits/button/index.d.ts +2 -0
- package/dist/traits/button/index.d.ts.map +1 -0
- package/dist/traits/button/index.js +18 -0
- package/dist/traits/button/index.js.map +1 -0
- package/dist/traits/climbable/climbableBehavior.d.ts +37 -0
- package/dist/traits/climbable/climbableBehavior.d.ts.map +1 -0
- package/dist/traits/climbable/climbableBehavior.js +70 -0
- package/dist/traits/climbable/climbableBehavior.js.map +1 -0
- package/dist/traits/climbable/climbableTrait.d.ts +31 -0
- package/dist/traits/climbable/climbableTrait.d.ts.map +1 -0
- package/dist/traits/climbable/climbableTrait.js +47 -0
- package/dist/traits/climbable/climbableTrait.js.map +1 -0
- package/dist/traits/climbable/index.d.ts +6 -0
- package/dist/traits/climbable/index.d.ts.map +1 -0
- package/dist/traits/climbable/index.js +22 -0
- package/dist/traits/climbable/index.js.map +1 -0
- package/dist/traits/clothing/clothingTrait.d.ts +58 -0
- package/dist/traits/clothing/clothingTrait.d.ts.map +1 -0
- package/dist/traits/clothing/clothingTrait.js +78 -0
- package/dist/traits/clothing/clothingTrait.js.map +1 -0
- package/dist/traits/clothing/index.d.ts +2 -0
- package/dist/traits/clothing/index.d.ts.map +1 -0
- package/dist/traits/clothing/index.js +19 -0
- package/dist/traits/clothing/index.js.map +1 -0
- package/dist/traits/combatant/combatantBehavior.d.ts +70 -0
- package/dist/traits/combatant/combatantBehavior.d.ts.map +1 -0
- package/dist/traits/combatant/combatantBehavior.js +155 -0
- package/dist/traits/combatant/combatantBehavior.js.map +1 -0
- package/dist/traits/combatant/combatantTrait.d.ts +98 -0
- package/dist/traits/combatant/combatantTrait.d.ts.map +1 -0
- package/dist/traits/combatant/combatantTrait.js +122 -0
- package/dist/traits/combatant/combatantTrait.js.map +1 -0
- package/dist/traits/combatant/index.d.ts +3 -0
- package/dist/traits/combatant/index.d.ts.map +1 -0
- package/dist/traits/combatant/index.js +8 -0
- package/dist/traits/combatant/index.js.map +1 -0
- package/dist/traits/container/container-utils.d.ts +39 -0
- package/dist/traits/container/container-utils.d.ts.map +1 -0
- package/dist/traits/container/container-utils.js +72 -0
- package/dist/traits/container/container-utils.js.map +1 -0
- package/dist/traits/container/containerBehavior.d.ts +94 -0
- package/dist/traits/container/containerBehavior.d.ts.map +1 -0
- package/dist/traits/container/containerBehavior.js +256 -0
- package/dist/traits/container/containerBehavior.js.map +1 -0
- package/dist/traits/container/containerTrait.d.ts +30 -0
- package/dist/traits/container/containerTrait.d.ts.map +1 -0
- package/dist/traits/container/containerTrait.js +45 -0
- package/dist/traits/container/containerTrait.js.map +1 -0
- package/dist/traits/container/index.d.ts +4 -0
- package/dist/traits/container/index.d.ts.map +1 -0
- package/dist/traits/container/index.js +14 -0
- package/dist/traits/container/index.js.map +1 -0
- package/dist/traits/destructible/destructibleBehavior.d.ts +57 -0
- package/dist/traits/destructible/destructibleBehavior.d.ts.map +1 -0
- package/dist/traits/destructible/destructibleBehavior.js +145 -0
- package/dist/traits/destructible/destructibleBehavior.js.map +1 -0
- package/dist/traits/destructible/destructibleTrait.d.ts +49 -0
- package/dist/traits/destructible/destructibleTrait.d.ts.map +1 -0
- package/dist/traits/destructible/destructibleTrait.js +43 -0
- package/dist/traits/destructible/destructibleTrait.js.map +1 -0
- package/dist/traits/destructible/index.d.ts +3 -0
- package/dist/traits/destructible/index.d.ts.map +1 -0
- package/dist/traits/destructible/index.js +8 -0
- package/dist/traits/destructible/index.js.map +1 -0
- package/dist/traits/door/doorBehavior.d.ts +42 -0
- package/dist/traits/door/doorBehavior.d.ts.map +1 -0
- package/dist/traits/door/doorBehavior.js +76 -0
- package/dist/traits/door/doorBehavior.js.map +1 -0
- package/dist/traits/door/doorTrait.d.ts +19 -0
- package/dist/traits/door/doorTrait.d.ts.map +1 -0
- package/dist/traits/door/doorTrait.js +33 -0
- package/dist/traits/door/doorTrait.js.map +1 -0
- package/dist/traits/door/index.d.ts +3 -0
- package/dist/traits/door/index.d.ts.map +1 -0
- package/dist/traits/door/index.js +9 -0
- package/dist/traits/door/index.js.map +1 -0
- package/dist/traits/edible/edibleBehavior.d.ts +63 -0
- package/dist/traits/edible/edibleBehavior.d.ts.map +1 -0
- package/dist/traits/edible/edibleBehavior.js +157 -0
- package/dist/traits/edible/edibleBehavior.js.map +1 -0
- package/dist/traits/edible/edibleTrait.d.ts +57 -0
- package/dist/traits/edible/edibleTrait.d.ts.map +1 -0
- package/dist/traits/edible/edibleTrait.js +51 -0
- package/dist/traits/edible/edibleTrait.js.map +1 -0
- package/dist/traits/edible/index.d.ts +3 -0
- package/dist/traits/edible/index.d.ts.map +1 -0
- package/dist/traits/edible/index.js +20 -0
- package/dist/traits/edible/index.js.map +1 -0
- package/dist/traits/enterable/enterableTrait.d.ts +33 -0
- package/dist/traits/enterable/enterableTrait.d.ts.map +1 -0
- package/dist/traits/enterable/enterableTrait.js +38 -0
- package/dist/traits/enterable/enterableTrait.js.map +1 -0
- package/dist/traits/enterable/index.d.ts +5 -0
- package/dist/traits/enterable/index.d.ts.map +1 -0
- package/dist/traits/enterable/index.js +21 -0
- package/dist/traits/enterable/index.js.map +1 -0
- package/dist/traits/equipped/equippedTrait.d.ts +46 -0
- package/dist/traits/equipped/equippedTrait.d.ts.map +1 -0
- package/dist/traits/equipped/equippedTrait.js +34 -0
- package/dist/traits/equipped/equippedTrait.js.map +1 -0
- package/dist/traits/equipped/index.d.ts +2 -0
- package/dist/traits/equipped/index.d.ts.map +1 -0
- package/dist/traits/equipped/index.js +6 -0
- package/dist/traits/equipped/index.js.map +1 -0
- package/dist/traits/exit/exitBehavior.d.ts +51 -0
- package/dist/traits/exit/exitBehavior.d.ts.map +1 -0
- package/dist/traits/exit/exitBehavior.js +231 -0
- package/dist/traits/exit/exitBehavior.js.map +1 -0
- package/dist/traits/exit/exitTrait.d.ts +41 -0
- package/dist/traits/exit/exitTrait.d.ts.map +1 -0
- package/dist/traits/exit/exitTrait.js +75 -0
- package/dist/traits/exit/exitTrait.js.map +1 -0
- package/dist/traits/exit/index.d.ts +3 -0
- package/dist/traits/exit/index.d.ts.map +1 -0
- package/dist/traits/exit/index.js +9 -0
- package/dist/traits/exit/index.js.map +1 -0
- package/dist/traits/identity/identityBehavior.d.ts +64 -0
- package/dist/traits/identity/identityBehavior.d.ts.map +1 -0
- package/dist/traits/identity/identityBehavior.js +154 -0
- package/dist/traits/identity/identityBehavior.js.map +1 -0
- package/dist/traits/identity/identityTrait.d.ts +70 -0
- package/dist/traits/identity/identityTrait.d.ts.map +1 -0
- package/dist/traits/identity/identityTrait.js +79 -0
- package/dist/traits/identity/identityTrait.js.map +1 -0
- package/dist/traits/identity/index.d.ts +3 -0
- package/dist/traits/identity/index.d.ts.map +1 -0
- package/dist/traits/identity/index.js +20 -0
- package/dist/traits/identity/index.js.map +1 -0
- package/dist/traits/implementations.d.ts +51 -0
- package/dist/traits/implementations.d.ts.map +1 -0
- package/dist/traits/implementations.js +145 -0
- package/dist/traits/implementations.js.map +1 -0
- package/dist/traits/index.d.ts +36 -0
- package/dist/traits/index.d.ts.map +1 -0
- package/dist/traits/index.js +62 -0
- package/dist/traits/index.js.map +1 -0
- package/dist/traits/light-source/index.d.ts +3 -0
- package/dist/traits/light-source/index.d.ts.map +1 -0
- package/dist/traits/light-source/index.js +9 -0
- package/dist/traits/light-source/index.js.map +1 -0
- package/dist/traits/light-source/lightSourceBehavior.d.ts +57 -0
- package/dist/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
- package/dist/traits/light-source/lightSourceBehavior.js +135 -0
- package/dist/traits/light-source/lightSourceBehavior.js.map +1 -0
- package/dist/traits/light-source/lightSourceTrait.d.ts +28 -0
- package/dist/traits/light-source/lightSourceTrait.d.ts.map +1 -0
- package/dist/traits/light-source/lightSourceTrait.js +37 -0
- package/dist/traits/light-source/lightSourceTrait.js.map +1 -0
- package/dist/traits/lockable/index.d.ts +3 -0
- package/dist/traits/lockable/index.d.ts.map +1 -0
- package/dist/traits/lockable/index.js +20 -0
- package/dist/traits/lockable/index.js.map +1 -0
- package/dist/traits/lockable/lockableBehavior.d.ts +88 -0
- package/dist/traits/lockable/lockableBehavior.d.ts.map +1 -0
- package/dist/traits/lockable/lockableBehavior.js +196 -0
- package/dist/traits/lockable/lockableBehavior.js.map +1 -0
- package/dist/traits/lockable/lockableTrait.d.ts +59 -0
- package/dist/traits/lockable/lockableTrait.d.ts.map +1 -0
- package/dist/traits/lockable/lockableTrait.js +50 -0
- package/dist/traits/lockable/lockableTrait.js.map +1 -0
- package/dist/traits/moveable-scenery/index.d.ts +2 -0
- package/dist/traits/moveable-scenery/index.d.ts.map +1 -0
- package/dist/traits/moveable-scenery/index.js +18 -0
- package/dist/traits/moveable-scenery/index.js.map +1 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
- package/dist/traits/npc/index.d.ts +5 -0
- package/dist/traits/npc/index.d.ts.map +1 -0
- package/dist/traits/npc/index.js +9 -0
- package/dist/traits/npc/index.js.map +1 -0
- package/dist/traits/npc/npcTrait.d.ts +128 -0
- package/dist/traits/npc/npcTrait.d.ts.map +1 -0
- package/dist/traits/npc/npcTrait.js +180 -0
- package/dist/traits/npc/npcTrait.js.map +1 -0
- package/dist/traits/openable/index.d.ts +3 -0
- package/dist/traits/openable/index.d.ts.map +1 -0
- package/dist/traits/openable/index.js +20 -0
- package/dist/traits/openable/index.js.map +1 -0
- package/dist/traits/openable/openableBehavior.d.ts +64 -0
- package/dist/traits/openable/openableBehavior.d.ts.map +1 -0
- package/dist/traits/openable/openableBehavior.js +109 -0
- package/dist/traits/openable/openableBehavior.js.map +1 -0
- package/dist/traits/openable/openableTrait.d.ts +46 -0
- package/dist/traits/openable/openableTrait.d.ts.map +1 -0
- package/dist/traits/openable/openableTrait.js +42 -0
- package/dist/traits/openable/openableTrait.js.map +1 -0
- package/dist/traits/portable/portableTrait.d.ts +26 -0
- package/dist/traits/portable/portableTrait.d.ts.map +1 -0
- package/dist/traits/portable/portableTrait.js +35 -0
- package/dist/traits/portable/portableTrait.js.map +1 -0
- package/dist/traits/pullable/index.d.ts +2 -0
- package/dist/traits/pullable/index.d.ts.map +1 -0
- package/dist/traits/pullable/index.js +18 -0
- package/dist/traits/pullable/index.js.map +1 -0
- package/dist/traits/pullable/pullableTrait.d.ts +81 -0
- package/dist/traits/pullable/pullableTrait.d.ts.map +1 -0
- package/dist/traits/pullable/pullableTrait.js +44 -0
- package/dist/traits/pullable/pullableTrait.js.map +1 -0
- package/dist/traits/pushable/index.d.ts +2 -0
- package/dist/traits/pushable/index.d.ts.map +1 -0
- package/dist/traits/pushable/index.js +18 -0
- package/dist/traits/pushable/index.js.map +1 -0
- package/dist/traits/pushable/pushableTrait.d.ts +81 -0
- package/dist/traits/pushable/pushableTrait.d.ts.map +1 -0
- package/dist/traits/pushable/pushableTrait.js +44 -0
- package/dist/traits/pushable/pushableTrait.js.map +1 -0
- package/dist/traits/readable/index.d.ts +3 -0
- package/dist/traits/readable/index.d.ts.map +1 -0
- package/dist/traits/readable/index.js +9 -0
- package/dist/traits/readable/index.js.map +1 -0
- package/dist/traits/readable/readableBehavior.d.ts +42 -0
- package/dist/traits/readable/readableBehavior.d.ts.map +1 -0
- package/dist/traits/readable/readableBehavior.js +174 -0
- package/dist/traits/readable/readableBehavior.js.map +1 -0
- package/dist/traits/readable/readableTrait.d.ts +37 -0
- package/dist/traits/readable/readableTrait.d.ts.map +1 -0
- package/dist/traits/readable/readableTrait.js +51 -0
- package/dist/traits/readable/readableTrait.js.map +1 -0
- package/dist/traits/register-all.d.ts +10 -0
- package/dist/traits/register-all.d.ts.map +1 -0
- package/dist/traits/register-all.js +19 -0
- package/dist/traits/register-all.js.map +1 -0
- package/dist/traits/room/index.d.ts +9 -0
- package/dist/traits/room/index.d.ts.map +1 -0
- package/dist/traits/room/index.js +14 -0
- package/dist/traits/room/index.js.map +1 -0
- package/dist/traits/room/roomBehavior.d.ts +87 -0
- package/dist/traits/room/roomBehavior.d.ts.map +1 -0
- package/dist/traits/room/roomBehavior.js +232 -0
- package/dist/traits/room/roomBehavior.js.map +1 -0
- package/dist/traits/room/roomTrait.d.ts +87 -0
- package/dist/traits/room/roomTrait.d.ts.map +1 -0
- package/dist/traits/room/roomTrait.js +59 -0
- package/dist/traits/room/roomTrait.js.map +1 -0
- package/dist/traits/scenery/index.d.ts +3 -0
- package/dist/traits/scenery/index.d.ts.map +1 -0
- package/dist/traits/scenery/index.js +9 -0
- package/dist/traits/scenery/index.js.map +1 -0
- package/dist/traits/scenery/sceneryBehavior.d.ts +21 -0
- package/dist/traits/scenery/sceneryBehavior.d.ts.map +1 -0
- package/dist/traits/scenery/sceneryBehavior.js +42 -0
- package/dist/traits/scenery/sceneryBehavior.js.map +1 -0
- package/dist/traits/scenery/sceneryTrait.d.ts +30 -0
- package/dist/traits/scenery/sceneryTrait.d.ts.map +1 -0
- package/dist/traits/scenery/sceneryTrait.js +39 -0
- package/dist/traits/scenery/sceneryTrait.js.map +1 -0
- package/dist/traits/supporter/index.d.ts +3 -0
- package/dist/traits/supporter/index.d.ts.map +1 -0
- package/dist/traits/supporter/index.js +9 -0
- package/dist/traits/supporter/index.js.map +1 -0
- package/dist/traits/supporter/supporterBehavior.d.ts +83 -0
- package/dist/traits/supporter/supporterBehavior.d.ts.map +1 -0
- package/dist/traits/supporter/supporterBehavior.js +210 -0
- package/dist/traits/supporter/supporterBehavior.js.map +1 -0
- package/dist/traits/supporter/supporterTrait.d.ts +26 -0
- package/dist/traits/supporter/supporterTrait.d.ts.map +1 -0
- package/dist/traits/supporter/supporterTrait.js +30 -0
- package/dist/traits/supporter/supporterTrait.js.map +1 -0
- package/dist/traits/switchable/index.d.ts +3 -0
- package/dist/traits/switchable/index.d.ts.map +1 -0
- package/dist/traits/switchable/index.js +20 -0
- package/dist/traits/switchable/index.js.map +1 -0
- package/dist/traits/switchable/switchableBehavior.d.ts +73 -0
- package/dist/traits/switchable/switchableBehavior.d.ts.map +1 -0
- package/dist/traits/switchable/switchableBehavior.js +191 -0
- package/dist/traits/switchable/switchableBehavior.js.map +1 -0
- package/dist/traits/switchable/switchableTrait.d.ts +61 -0
- package/dist/traits/switchable/switchableTrait.d.ts.map +1 -0
- package/dist/traits/switchable/switchableTrait.js +52 -0
- package/dist/traits/switchable/switchableTrait.js.map +1 -0
- package/dist/traits/trait-types.d.ts +81 -0
- package/dist/traits/trait-types.d.ts.map +1 -0
- package/dist/traits/trait-types.js +146 -0
- package/dist/traits/trait-types.js.map +1 -0
- package/dist/traits/trait.d.ts +42 -0
- package/dist/traits/trait.d.ts.map +1 -0
- package/dist/traits/trait.js +42 -0
- package/dist/traits/trait.js.map +1 -0
- package/dist/traits/vehicle/index.d.ts +6 -0
- package/dist/traits/vehicle/index.d.ts.map +1 -0
- package/dist/traits/vehicle/index.js +22 -0
- package/dist/traits/vehicle/index.js.map +1 -0
- package/dist/traits/vehicle/vehicleBehavior.d.ts +62 -0
- package/dist/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
- package/dist/traits/vehicle/vehicleBehavior.js +145 -0
- package/dist/traits/vehicle/vehicleBehavior.js.map +1 -0
- package/dist/traits/vehicle/vehicleTrait.d.ts +77 -0
- package/dist/traits/vehicle/vehicleTrait.d.ts.map +1 -0
- package/dist/traits/vehicle/vehicleTrait.js +92 -0
- package/dist/traits/vehicle/vehicleTrait.js.map +1 -0
- package/dist/traits/weapon/index.d.ts +3 -0
- package/dist/traits/weapon/index.d.ts.map +1 -0
- package/dist/traits/weapon/index.js +8 -0
- package/dist/traits/weapon/index.js.map +1 -0
- package/dist/traits/weapon/weaponBehavior.d.ts +47 -0
- package/dist/traits/weapon/weaponBehavior.d.ts.map +1 -0
- package/dist/traits/weapon/weaponBehavior.js +106 -0
- package/dist/traits/weapon/weaponBehavior.js.map +1 -0
- package/dist/traits/weapon/weaponTrait.d.ts +67 -0
- package/dist/traits/weapon/weaponTrait.d.ts.map +1 -0
- package/dist/traits/weapon/weaponTrait.js +60 -0
- package/dist/traits/weapon/weaponTrait.js.map +1 -0
- package/dist/traits/wearable/index.d.ts +3 -0
- package/dist/traits/wearable/index.d.ts.map +1 -0
- package/dist/traits/wearable/index.js +20 -0
- package/dist/traits/wearable/index.js.map +1 -0
- package/dist/traits/wearable/wearableBehavior.d.ts +64 -0
- package/dist/traits/wearable/wearableBehavior.d.ts.map +1 -0
- package/dist/traits/wearable/wearableBehavior.js +142 -0
- package/dist/traits/wearable/wearableBehavior.js.map +1 -0
- package/dist/traits/wearable/wearableTrait.d.ts +54 -0
- package/dist/traits/wearable/wearableTrait.d.ts.map +1 -0
- package/dist/traits/wearable/wearableTrait.js +53 -0
- package/dist/traits/wearable/wearableTrait.js.map +1 -0
- package/dist/utils/event-utils.d.ts +30 -0
- package/dist/utils/event-utils.d.ts.map +1 -0
- package/dist/utils/event-utils.js +33 -0
- package/dist/utils/event-utils.js.map +1 -0
- package/dist/world/AuthorModel.d.ts +151 -0
- package/dist/world/AuthorModel.d.ts.map +1 -0
- package/dist/world/AuthorModel.js +416 -0
- package/dist/world/AuthorModel.js.map +1 -0
- package/dist/world/SharedDataStore.d.ts +24 -0
- package/dist/world/SharedDataStore.d.ts.map +1 -0
- package/dist/world/SharedDataStore.js +50 -0
- package/dist/world/SharedDataStore.js.map +1 -0
- package/dist/world/SpatialIndex.d.ts +16 -0
- package/dist/world/SpatialIndex.d.ts.map +1 -0
- package/dist/world/SpatialIndex.js +117 -0
- package/dist/world/SpatialIndex.js.map +1 -0
- package/dist/world/VisibilityBehavior.d.ts +83 -0
- package/dist/world/VisibilityBehavior.d.ts.map +1 -0
- package/dist/world/VisibilityBehavior.js +484 -0
- package/dist/world/VisibilityBehavior.js.map +1 -0
- package/dist/world/WorldModel.d.ts +270 -0
- package/dist/world/WorldModel.d.ts.map +1 -0
- package/dist/world/WorldModel.js +1028 -0
- package/dist/world/WorldModel.js.map +1 -0
- package/dist/world/capabilities.d.ts +36 -0
- package/dist/world/capabilities.d.ts.map +1 -0
- package/dist/world/capabilities.js +18 -0
- package/dist/world/capabilities.js.map +1 -0
- package/dist/world/index.d.ts +7 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +21 -0
- package/dist/world/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-Safe Entity Builder (ADR-090)
|
|
3
|
+
*
|
|
4
|
+
* Builder pattern for creating entities with compile-time capability
|
|
5
|
+
* conflict detection. When two traits claim the same capability,
|
|
6
|
+
* TypeScript will error (and runtime will throw as backup).
|
|
7
|
+
*/
|
|
8
|
+
import { IFEntity } from '../entities';
|
|
9
|
+
import { ITrait } from '../traits/trait';
|
|
10
|
+
/**
|
|
11
|
+
* Type-safe entity builder that tracks claimed capabilities.
|
|
12
|
+
*
|
|
13
|
+
* Provides runtime checks for capability conflicts. TypeScript's
|
|
14
|
+
* type system can catch conflicts at compile time when traits
|
|
15
|
+
* declare capabilities with `as const`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const basket = new EntityBuilder(entity)
|
|
20
|
+
* .add(new IdentityTrait({ name: 'basket' }))
|
|
21
|
+
* .add(new ContainerTrait())
|
|
22
|
+
* .add(new BasketElevatorTrait({ ... })) // claims: lowering, raising
|
|
23
|
+
* .build();
|
|
24
|
+
*
|
|
25
|
+
* // Runtime error - duplicate capability:
|
|
26
|
+
* const bad = new EntityBuilder(entity)
|
|
27
|
+
* .add(new BasketElevatorTrait({ ... })) // claims: lowering
|
|
28
|
+
* .add(new MirrorPoleTrait({ ... })) // also claims: lowering
|
|
29
|
+
* .build(); // throws!
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare class EntityBuilder {
|
|
33
|
+
private entity;
|
|
34
|
+
private claimedCaps;
|
|
35
|
+
constructor(entity: IFEntity);
|
|
36
|
+
/**
|
|
37
|
+
* Add a trait to the entity.
|
|
38
|
+
*
|
|
39
|
+
* Checks for capability conflicts at runtime. If two traits
|
|
40
|
+
* claim the same capability, throws an error.
|
|
41
|
+
*
|
|
42
|
+
* @param trait - The trait to add
|
|
43
|
+
* @returns This builder for chaining
|
|
44
|
+
* @throws Error if capability conflict detected
|
|
45
|
+
*/
|
|
46
|
+
add<T extends ITrait>(trait: T): this;
|
|
47
|
+
/**
|
|
48
|
+
* Build and return the entity.
|
|
49
|
+
*/
|
|
50
|
+
build(): IFEntity;
|
|
51
|
+
/**
|
|
52
|
+
* Get all capabilities claimed so far.
|
|
53
|
+
*/
|
|
54
|
+
getClaimedCapabilities(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Find which trait claimed a capability.
|
|
57
|
+
*/
|
|
58
|
+
private findTraitWithCapability;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create an entity builder for type-safe trait composition.
|
|
62
|
+
*
|
|
63
|
+
* This is a convenience function that wraps an existing entity
|
|
64
|
+
* in a builder. Use when you want capability conflict checking.
|
|
65
|
+
*
|
|
66
|
+
* @param entity - The entity to wrap
|
|
67
|
+
* @returns A new EntityBuilder
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const basket = buildEntity(world.createEntity('basket', EntityType.CONTAINER))
|
|
72
|
+
* .add(new IdentityTrait({ name: 'rusty iron basket' }))
|
|
73
|
+
* .add(new ContainerTrait({ capacity: { maxItems: 10 } }))
|
|
74
|
+
* .add(new BasketElevatorTrait({ ... }))
|
|
75
|
+
* .build();
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildEntity(entity: IFEntity): EntityBuilder;
|
|
79
|
+
//# sourceMappingURL=entity-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-builder.d.ts","sourceRoot":"","sources":["../../src/capabilities/entity-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAAqB;gBAE5B,MAAM,EAAE,QAAQ;IAI5B;;;;;;;;;OASG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAyBrC;;OAEG;IACH,KAAK,IAAI,QAAQ;IAIjB;;OAEG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAShC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAE3D"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type-Safe Entity Builder (ADR-090)
|
|
4
|
+
*
|
|
5
|
+
* Builder pattern for creating entities with compile-time capability
|
|
6
|
+
* conflict detection. When two traits claim the same capability,
|
|
7
|
+
* TypeScript will error (and runtime will throw as backup).
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.EntityBuilder = void 0;
|
|
11
|
+
exports.buildEntity = buildEntity;
|
|
12
|
+
/**
|
|
13
|
+
* Type-safe entity builder that tracks claimed capabilities.
|
|
14
|
+
*
|
|
15
|
+
* Provides runtime checks for capability conflicts. TypeScript's
|
|
16
|
+
* type system can catch conflicts at compile time when traits
|
|
17
|
+
* declare capabilities with `as const`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const basket = new EntityBuilder(entity)
|
|
22
|
+
* .add(new IdentityTrait({ name: 'basket' }))
|
|
23
|
+
* .add(new ContainerTrait())
|
|
24
|
+
* .add(new BasketElevatorTrait({ ... })) // claims: lowering, raising
|
|
25
|
+
* .build();
|
|
26
|
+
*
|
|
27
|
+
* // Runtime error - duplicate capability:
|
|
28
|
+
* const bad = new EntityBuilder(entity)
|
|
29
|
+
* .add(new BasketElevatorTrait({ ... })) // claims: lowering
|
|
30
|
+
* .add(new MirrorPoleTrait({ ... })) // also claims: lowering
|
|
31
|
+
* .build(); // throws!
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
class EntityBuilder {
|
|
35
|
+
entity;
|
|
36
|
+
claimedCaps = new Set();
|
|
37
|
+
constructor(entity) {
|
|
38
|
+
this.entity = entity;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Add a trait to the entity.
|
|
42
|
+
*
|
|
43
|
+
* Checks for capability conflicts at runtime. If two traits
|
|
44
|
+
* claim the same capability, throws an error.
|
|
45
|
+
*
|
|
46
|
+
* @param trait - The trait to add
|
|
47
|
+
* @returns This builder for chaining
|
|
48
|
+
* @throws Error if capability conflict detected
|
|
49
|
+
*/
|
|
50
|
+
add(trait) {
|
|
51
|
+
const traitClass = trait.constructor;
|
|
52
|
+
const newCaps = traitClass.capabilities ?? [];
|
|
53
|
+
// Check for capability conflicts
|
|
54
|
+
for (const cap of newCaps) {
|
|
55
|
+
if (this.claimedCaps.has(cap)) {
|
|
56
|
+
// Find which trait already claimed it
|
|
57
|
+
const existingTrait = this.findTraitWithCapability(cap);
|
|
58
|
+
const existingType = existingTrait
|
|
59
|
+
? existingTrait.constructor.type
|
|
60
|
+
: 'unknown';
|
|
61
|
+
throw new Error(`Entity "${this.entity.id}": capability "${cap}" already claimed by trait "${existingType}". ` +
|
|
62
|
+
`New trait "${traitClass.type}" cannot also claim it.`);
|
|
63
|
+
}
|
|
64
|
+
this.claimedCaps.add(cap);
|
|
65
|
+
}
|
|
66
|
+
this.entity.add(trait);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build and return the entity.
|
|
71
|
+
*/
|
|
72
|
+
build() {
|
|
73
|
+
return this.entity;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get all capabilities claimed so far.
|
|
77
|
+
*/
|
|
78
|
+
getClaimedCapabilities() {
|
|
79
|
+
return Array.from(this.claimedCaps);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Find which trait claimed a capability.
|
|
83
|
+
*/
|
|
84
|
+
findTraitWithCapability(capability) {
|
|
85
|
+
for (const trait of this.entity.traits.values()) {
|
|
86
|
+
const traitClass = trait.constructor;
|
|
87
|
+
if (traitClass.capabilities?.includes(capability)) {
|
|
88
|
+
return trait;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.EntityBuilder = EntityBuilder;
|
|
95
|
+
/**
|
|
96
|
+
* Create an entity builder for type-safe trait composition.
|
|
97
|
+
*
|
|
98
|
+
* This is a convenience function that wraps an existing entity
|
|
99
|
+
* in a builder. Use when you want capability conflict checking.
|
|
100
|
+
*
|
|
101
|
+
* @param entity - The entity to wrap
|
|
102
|
+
* @returns A new EntityBuilder
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const basket = buildEntity(world.createEntity('basket', EntityType.CONTAINER))
|
|
107
|
+
* .add(new IdentityTrait({ name: 'rusty iron basket' }))
|
|
108
|
+
* .add(new ContainerTrait({ capacity: { maxItems: 10 } }))
|
|
109
|
+
* .add(new BasketElevatorTrait({ ... }))
|
|
110
|
+
* .build();
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
function buildEntity(entity) {
|
|
114
|
+
return new EntityBuilder(entity);
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=entity-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-builder.js","sourceRoot":"","sources":["../../src/capabilities/entity-builder.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAoHH,kCAEC;AAjHD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,aAAa;IAChB,MAAM,CAAW;IACjB,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,YAAY,MAAgB;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACH,GAAG,CAAmB,KAAQ;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;QAE9C,iCAAiC;QACjC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,sCAAsC;gBACtC,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,YAAY,GAAG,aAAa;oBAChC,CAAC,CAAE,aAAa,CAAC,WAAiC,CAAC,IAAI;oBACvD,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,+BAA+B,YAAY,KAAK;oBAC9F,cAAc,UAAU,CAAC,IAAI,yBAAyB,CACvD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,UAAkB;QAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;YAC1D,IAAI,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AArED,sCAqEC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,WAAW,CAAC,MAAgB;IAC1C,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability Dispatch System (ADR-090)
|
|
3
|
+
*
|
|
4
|
+
* Entity-centric action dispatch where traits declare capabilities
|
|
5
|
+
* (action IDs they respond to) and behaviors implement the logic.
|
|
6
|
+
*/
|
|
7
|
+
export { CapabilityValidationResult, CapabilityEffect, createEffect } from './types';
|
|
8
|
+
export { CapabilityBehavior, CapabilitySharedData } from './capability-behavior';
|
|
9
|
+
export { TraitBehaviorBinding, BehaviorRegistrationOptions, registerCapabilityBehavior, getBehaviorForCapability, getBehaviorBinding, hasCapabilityBehavior, unregisterCapabilityBehavior, clearCapabilityRegistry, getAllCapabilityBindings } from './capability-registry';
|
|
10
|
+
export { CapabilityResolution, CapabilityMode, CapabilityConfig, defineCapabilityDefaults, getCapabilityConfig, hasCapabilityDefaults, clearCapabilityDefaults, getAllCapabilityDefaults } from './capability-defaults';
|
|
11
|
+
export { findTraitWithCapability, hasCapability, getEntityCapabilities, traitHasCapability, getCapableTraits } from './capability-helpers';
|
|
12
|
+
export { EntityBuilder, buildEntity } from './entity-builder';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Capability Dispatch System (ADR-090)
|
|
4
|
+
*
|
|
5
|
+
* Entity-centric action dispatch where traits declare capabilities
|
|
6
|
+
* (action IDs they respond to) and behaviors implement the logic.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.buildEntity = exports.EntityBuilder = exports.getCapableTraits = exports.traitHasCapability = exports.getEntityCapabilities = exports.hasCapability = exports.findTraitWithCapability = exports.getAllCapabilityDefaults = exports.clearCapabilityDefaults = exports.hasCapabilityDefaults = exports.getCapabilityConfig = exports.defineCapabilityDefaults = exports.getAllCapabilityBindings = exports.clearCapabilityRegistry = exports.unregisterCapabilityBehavior = exports.hasCapabilityBehavior = exports.getBehaviorBinding = exports.getBehaviorForCapability = exports.registerCapabilityBehavior = exports.createEffect = void 0;
|
|
10
|
+
// Types
|
|
11
|
+
var types_1 = require("./types");
|
|
12
|
+
Object.defineProperty(exports, "createEffect", { enumerable: true, get: function () { return types_1.createEffect; } });
|
|
13
|
+
// Registry
|
|
14
|
+
var capability_registry_1 = require("./capability-registry");
|
|
15
|
+
Object.defineProperty(exports, "registerCapabilityBehavior", { enumerable: true, get: function () { return capability_registry_1.registerCapabilityBehavior; } });
|
|
16
|
+
Object.defineProperty(exports, "getBehaviorForCapability", { enumerable: true, get: function () { return capability_registry_1.getBehaviorForCapability; } });
|
|
17
|
+
Object.defineProperty(exports, "getBehaviorBinding", { enumerable: true, get: function () { return capability_registry_1.getBehaviorBinding; } });
|
|
18
|
+
Object.defineProperty(exports, "hasCapabilityBehavior", { enumerable: true, get: function () { return capability_registry_1.hasCapabilityBehavior; } });
|
|
19
|
+
Object.defineProperty(exports, "unregisterCapabilityBehavior", { enumerable: true, get: function () { return capability_registry_1.unregisterCapabilityBehavior; } });
|
|
20
|
+
Object.defineProperty(exports, "clearCapabilityRegistry", { enumerable: true, get: function () { return capability_registry_1.clearCapabilityRegistry; } });
|
|
21
|
+
Object.defineProperty(exports, "getAllCapabilityBindings", { enumerable: true, get: function () { return capability_registry_1.getAllCapabilityBindings; } });
|
|
22
|
+
// Defaults and configuration
|
|
23
|
+
var capability_defaults_1 = require("./capability-defaults");
|
|
24
|
+
Object.defineProperty(exports, "defineCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.defineCapabilityDefaults; } });
|
|
25
|
+
Object.defineProperty(exports, "getCapabilityConfig", { enumerable: true, get: function () { return capability_defaults_1.getCapabilityConfig; } });
|
|
26
|
+
Object.defineProperty(exports, "hasCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.hasCapabilityDefaults; } });
|
|
27
|
+
Object.defineProperty(exports, "clearCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.clearCapabilityDefaults; } });
|
|
28
|
+
Object.defineProperty(exports, "getAllCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.getAllCapabilityDefaults; } });
|
|
29
|
+
// Helpers
|
|
30
|
+
var capability_helpers_1 = require("./capability-helpers");
|
|
31
|
+
Object.defineProperty(exports, "findTraitWithCapability", { enumerable: true, get: function () { return capability_helpers_1.findTraitWithCapability; } });
|
|
32
|
+
Object.defineProperty(exports, "hasCapability", { enumerable: true, get: function () { return capability_helpers_1.hasCapability; } });
|
|
33
|
+
Object.defineProperty(exports, "getEntityCapabilities", { enumerable: true, get: function () { return capability_helpers_1.getEntityCapabilities; } });
|
|
34
|
+
Object.defineProperty(exports, "traitHasCapability", { enumerable: true, get: function () { return capability_helpers_1.traitHasCapability; } });
|
|
35
|
+
Object.defineProperty(exports, "getCapableTraits", { enumerable: true, get: function () { return capability_helpers_1.getCapableTraits; } });
|
|
36
|
+
// Entity builder
|
|
37
|
+
var entity_builder_1 = require("./entity-builder");
|
|
38
|
+
Object.defineProperty(exports, "EntityBuilder", { enumerable: true, get: function () { return entity_builder_1.EntityBuilder; } });
|
|
39
|
+
Object.defineProperty(exports, "buildEntity", { enumerable: true, get: function () { return entity_builder_1.buildEntity; } });
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,QAAQ;AACR,iCAIiB;AADf,qGAAA,YAAY,OAAA;AAMd,WAAW;AACX,6DAU+B;AAP7B,iIAAA,0BAA0B,OAAA;AAC1B,+HAAA,wBAAwB,OAAA;AACxB,yHAAA,kBAAkB,OAAA;AAClB,4HAAA,qBAAqB,OAAA;AACrB,mIAAA,4BAA4B,OAAA;AAC5B,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,6BAA6B;AAC7B,6DAS+B;AAL7B,+HAAA,wBAAwB,OAAA;AACxB,0HAAA,mBAAmB,OAAA;AACnB,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,UAAU;AACV,2DAM8B;AAL5B,6HAAA,uBAAuB,OAAA;AACvB,mHAAA,aAAa,OAAA;AACb,2HAAA,qBAAqB,OAAA;AACrB,wHAAA,kBAAkB,OAAA;AAClB,sHAAA,gBAAgB,OAAA;AAGlB,iBAAiB;AACjB,mDAG0B;AAFxB,+GAAA,aAAa,OAAA;AACb,6GAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability dispatch types (ADR-090)
|
|
3
|
+
*
|
|
4
|
+
* Types for entity-centric action dispatch where traits declare
|
|
5
|
+
* which verbs/actions they respond to.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Result from capability behavior validation.
|
|
9
|
+
* Mirrors stdlib's ValidationResult for consistency.
|
|
10
|
+
*/
|
|
11
|
+
export interface CapabilityValidationResult {
|
|
12
|
+
/** Whether the behavior can execute */
|
|
13
|
+
valid: boolean;
|
|
14
|
+
/** Error code if validation failed (for message lookup) */
|
|
15
|
+
error?: string;
|
|
16
|
+
/** Additional context for error messages */
|
|
17
|
+
params?: Record<string, any>;
|
|
18
|
+
/** Data to pass to execute/report phases */
|
|
19
|
+
data?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Effect returned by capability behaviors.
|
|
23
|
+
* Simplified version - actual emit() is in event-processor.
|
|
24
|
+
*/
|
|
25
|
+
export interface CapabilityEffect {
|
|
26
|
+
/** Event type (e.g., 'if.event.lowered', 'action.blocked') */
|
|
27
|
+
type: string;
|
|
28
|
+
/** Event payload */
|
|
29
|
+
payload: Record<string, any>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Helper to create effects (mirrors event-processor's emit)
|
|
33
|
+
*/
|
|
34
|
+
export declare function createEffect(type: string, payload: Record<string, any>): CapabilityEffect;
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAEzF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Capability dispatch types (ADR-090)
|
|
4
|
+
*
|
|
5
|
+
* Types for entity-centric action dispatch where traits declare
|
|
6
|
+
* which verbs/actions they respond to.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createEffect = createEffect;
|
|
10
|
+
/**
|
|
11
|
+
* Helper to create effects (mirrors event-processor's emit)
|
|
12
|
+
*/
|
|
13
|
+
function createEffect(type, payload) {
|
|
14
|
+
return { type, payload };
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,oCAEC;AALD;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,OAA4B;IACrE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command processing error types and result types
|
|
3
|
+
*/
|
|
4
|
+
import type { IParseError } from './parsed-command';
|
|
5
|
+
import type { IValidationError, IValidatedCommand } from './validated-command';
|
|
6
|
+
/**
|
|
7
|
+
* Errors that can occur during execution
|
|
8
|
+
*/
|
|
9
|
+
export interface IExecutionError {
|
|
10
|
+
type: 'EXECUTION_ERROR';
|
|
11
|
+
code: 'HANDLER_ERROR' | 'EVENT_GENERATION_FAILED' | 'STATE_CORRUPTION';
|
|
12
|
+
message: string;
|
|
13
|
+
validated: IValidatedCommand;
|
|
14
|
+
error?: Error;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Union type for all command processing errors
|
|
18
|
+
*/
|
|
19
|
+
export type CommandError = IParseError | IValidationError | IExecutionError;
|
|
20
|
+
/**
|
|
21
|
+
* Result type for command processing phases
|
|
22
|
+
*/
|
|
23
|
+
export type CommandResult<T, E = CommandError> = {
|
|
24
|
+
success: true;
|
|
25
|
+
value: T;
|
|
26
|
+
} | {
|
|
27
|
+
success: false;
|
|
28
|
+
error: E;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=command-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-types.d.ts","sourceRoot":"","sources":["../../src/commands/command-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,eAAe,GAAG,yBAAyB,GAAG,kBAAkB,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,IACzC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-types.js","sourceRoot":"","sources":["../../src/commands/command-types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Command types for the IF command processing pipeline
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./parsed-command"), exports);
|
|
21
|
+
__exportStar(require("./validated-command"), exports);
|
|
22
|
+
__exportStar(require("./command-types"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command types for the parsing phase
|
|
3
|
+
* These types represent the syntactic structure of commands
|
|
4
|
+
* without any world knowledge or entity resolution
|
|
5
|
+
*/
|
|
6
|
+
export interface IParsedObjectReference {
|
|
7
|
+
/** Original text from input */
|
|
8
|
+
text: string;
|
|
9
|
+
/** Possible vocabulary matches */
|
|
10
|
+
candidates: string[];
|
|
11
|
+
/** Optional modifiers (adjectives, etc.) */
|
|
12
|
+
modifiers?: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface IParsedCommandV1 {
|
|
15
|
+
/** Raw input text */
|
|
16
|
+
rawInput: string;
|
|
17
|
+
/** Identified action verb */
|
|
18
|
+
action: string;
|
|
19
|
+
/** Direct object if present */
|
|
20
|
+
directObject?: IParsedObjectReference;
|
|
21
|
+
/** Indirect object if present */
|
|
22
|
+
indirectObject?: IParsedObjectReference;
|
|
23
|
+
/** Preposition if present */
|
|
24
|
+
preposition?: string;
|
|
25
|
+
/** Additional parsed elements */
|
|
26
|
+
extras?: Record<string, any>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parts of speech classification
|
|
30
|
+
*/
|
|
31
|
+
export declare enum PartOfSpeech {
|
|
32
|
+
VERB = "VERB",
|
|
33
|
+
NOUN = "NOUN",
|
|
34
|
+
ADJECTIVE = "ADJECTIVE",
|
|
35
|
+
ARTICLE = "ARTICLE",
|
|
36
|
+
PREPOSITION = "PREPOSITION",
|
|
37
|
+
PRONOUN = "PRONOUN",
|
|
38
|
+
DETERMINER = "DETERMINER",
|
|
39
|
+
CONJUNCTION = "CONJUNCTION",
|
|
40
|
+
UNKNOWN = "UNKNOWN"
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Token candidate from vocabulary
|
|
44
|
+
*/
|
|
45
|
+
export interface ITokenCandidate {
|
|
46
|
+
/** Vocabulary ID */
|
|
47
|
+
id: string;
|
|
48
|
+
/** Type in vocabulary (verb, noun, etc.) */
|
|
49
|
+
type: string;
|
|
50
|
+
/** Confidence score */
|
|
51
|
+
confidence: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Individual token with full information
|
|
55
|
+
*/
|
|
56
|
+
export interface IToken {
|
|
57
|
+
/** Original word as typed */
|
|
58
|
+
word: string;
|
|
59
|
+
/** Normalized form (lowercase, etc.) */
|
|
60
|
+
normalized: string;
|
|
61
|
+
/** Character position in original input */
|
|
62
|
+
position: number;
|
|
63
|
+
/** Length of the token */
|
|
64
|
+
length: number;
|
|
65
|
+
/** Possible parts of speech */
|
|
66
|
+
partOfSpeech: PartOfSpeech[];
|
|
67
|
+
/** Vocabulary candidates for this token */
|
|
68
|
+
candidates: ITokenCandidate[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Verb phrase structure
|
|
72
|
+
*/
|
|
73
|
+
export interface IVerbPhrase {
|
|
74
|
+
/** Indices into token array */
|
|
75
|
+
tokens: number[];
|
|
76
|
+
/** Original text (e.g., "look at") */
|
|
77
|
+
text: string;
|
|
78
|
+
/** Main verb */
|
|
79
|
+
head: string;
|
|
80
|
+
/** Verb particles ("at" in "look at") */
|
|
81
|
+
particles?: string[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Noun phrase structure with all information preserved
|
|
85
|
+
*/
|
|
86
|
+
export interface INounPhrase {
|
|
87
|
+
/** Indices into token array */
|
|
88
|
+
tokens: number[];
|
|
89
|
+
/** Original complete text (e.g., "the small red ball") */
|
|
90
|
+
text: string;
|
|
91
|
+
/** Head noun ("ball") */
|
|
92
|
+
head: string;
|
|
93
|
+
/** Modifiers/adjectives ("small", "red") */
|
|
94
|
+
modifiers: string[];
|
|
95
|
+
/** Articles ("the", "a", "an") */
|
|
96
|
+
articles: string[];
|
|
97
|
+
/** Determiners ("all", "every", "some") */
|
|
98
|
+
determiners: string[];
|
|
99
|
+
/** Vocabulary candidates for the head noun */
|
|
100
|
+
candidates: string[];
|
|
101
|
+
/** True if this represents "all" (e.g., "take all") */
|
|
102
|
+
isAll?: boolean;
|
|
103
|
+
/** True if this is a list of objects (e.g., "take knife and lamp") */
|
|
104
|
+
isList?: boolean;
|
|
105
|
+
/** Individual items when isList is true */
|
|
106
|
+
items?: INounPhrase[];
|
|
107
|
+
/** Pre-resolved entity ID (e.g., when "it" was resolved during parsing) */
|
|
108
|
+
entityId?: string;
|
|
109
|
+
/** True if this noun phrase was a pronoun (e.g., "it", "them") */
|
|
110
|
+
wasPronoun?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Preposition phrase structure
|
|
114
|
+
*/
|
|
115
|
+
export interface IPrepPhrase {
|
|
116
|
+
/** Indices into token array */
|
|
117
|
+
tokens: number[];
|
|
118
|
+
/** Preposition text */
|
|
119
|
+
text: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Result of parsing phase - rich structure with all information preserved
|
|
123
|
+
*/
|
|
124
|
+
export interface IParsedCommand {
|
|
125
|
+
/** Raw input text exactly as typed */
|
|
126
|
+
rawInput: string;
|
|
127
|
+
/** All tokens with position and classification */
|
|
128
|
+
tokens: IToken[];
|
|
129
|
+
/** Structured command components */
|
|
130
|
+
structure: {
|
|
131
|
+
/** Verb phrase */
|
|
132
|
+
verb: IVerbPhrase;
|
|
133
|
+
/** Direct object noun phrase */
|
|
134
|
+
directObject?: INounPhrase;
|
|
135
|
+
/** Preposition phrase */
|
|
136
|
+
preposition?: IPrepPhrase;
|
|
137
|
+
/** Indirect object noun phrase */
|
|
138
|
+
indirectObject?: INounPhrase;
|
|
139
|
+
};
|
|
140
|
+
/** Which grammar pattern matched (e.g., "VERB_NOUN_PREP_NOUN") */
|
|
141
|
+
pattern: string;
|
|
142
|
+
/** Parser confidence in this interpretation */
|
|
143
|
+
confidence: number;
|
|
144
|
+
/** Identified action (for compatibility) */
|
|
145
|
+
action: string;
|
|
146
|
+
/** Additional parsed elements */
|
|
147
|
+
extras?: Record<string, any>;
|
|
148
|
+
/** Raw text slot values (for patterns with .text() slots or :slot... syntax) */
|
|
149
|
+
textSlots?: Map<string, string>;
|
|
150
|
+
/** Excluded noun phrases for "all but X" patterns */
|
|
151
|
+
excluded?: INounPhrase[];
|
|
152
|
+
/** Instrument noun phrase for "with/through/using" clauses */
|
|
153
|
+
instrument?: INounPhrase;
|
|
154
|
+
/** Typed slot values for non-entity slots (number, ordinal, direction, etc.) */
|
|
155
|
+
typedSlots?: Map<string, import('@sharpee/if-domain').TypedSlotValue>;
|
|
156
|
+
/** Vocabulary slot matches (from .fromVocabulary() patterns) */
|
|
157
|
+
vocabularySlots?: Map<string, import('@sharpee/if-domain').GrammarVocabularyMatch>;
|
|
158
|
+
/** Matched manner adverb (from .manner() patterns) - feeds intention.manner */
|
|
159
|
+
manner?: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Parse error codes
|
|
163
|
+
*
|
|
164
|
+
* Error hierarchy (most specific to least):
|
|
165
|
+
* - NO_VERB: Empty or no verb detected
|
|
166
|
+
* - UNKNOWN_VERB: First word isn't a known verb
|
|
167
|
+
* - MISSING_OBJECT: Verb needs a direct object
|
|
168
|
+
* - MISSING_INDIRECT: Verb needs an indirect object (where/what)
|
|
169
|
+
* - ENTITY_NOT_FOUND: Object name not recognized
|
|
170
|
+
* - SCOPE_VIOLATION: Object exists but can't be accessed
|
|
171
|
+
* - AMBIGUOUS_INPUT: Multiple valid interpretations
|
|
172
|
+
* - UNKNOWN_COMMAND: Generic fallback (legacy)
|
|
173
|
+
* - INVALID_SYNTAX: Generic fallback (legacy)
|
|
174
|
+
*/
|
|
175
|
+
export type ParseErrorCode = 'NO_VERB' | 'UNKNOWN_VERB' | 'MISSING_OBJECT' | 'MISSING_INDIRECT' | 'ENTITY_NOT_FOUND' | 'SCOPE_VIOLATION' | 'AMBIGUOUS_INPUT' | 'UNKNOWN_COMMAND' | 'INVALID_SYNTAX';
|
|
176
|
+
/**
|
|
177
|
+
* Errors that can occur during parsing
|
|
178
|
+
*/
|
|
179
|
+
export interface IParseError {
|
|
180
|
+
type: 'PARSE_ERROR';
|
|
181
|
+
code: ParseErrorCode;
|
|
182
|
+
/** Message ID for lang layer lookup (e.g., 'parser.error.unknownVerb') */
|
|
183
|
+
messageId: string;
|
|
184
|
+
/** Fallback message if lang layer lookup fails */
|
|
185
|
+
message: string;
|
|
186
|
+
/** Original input */
|
|
187
|
+
input: string;
|
|
188
|
+
/** Character position of error (if applicable) */
|
|
189
|
+
position?: number;
|
|
190
|
+
/** Recognized verb (if any) */
|
|
191
|
+
verb?: string;
|
|
192
|
+
/** The word that failed (for ENTITY_NOT_FOUND, UNKNOWN_VERB) */
|
|
193
|
+
failedWord?: string;
|
|
194
|
+
/** Which slot failed (directObject, indirectObject) */
|
|
195
|
+
slot?: string;
|
|
196
|
+
/** Suggestion for correction */
|
|
197
|
+
suggestion?: string;
|
|
198
|
+
/** For AMBIGUOUS_INPUT: the candidates */
|
|
199
|
+
candidates?: Array<{
|
|
200
|
+
entityId: string;
|
|
201
|
+
label: string;
|
|
202
|
+
}>;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=parsed-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsed-command.d.ts","sourceRoot":"","sources":["../../src/commands/parsed-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Command types for the parsing phase
|
|
4
|
+
* These types represent the syntactic structure of commands
|
|
5
|
+
* without any world knowledge or entity resolution
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.PartOfSpeech = void 0;
|
|
9
|
+
// New rich information-preserving types
|
|
10
|
+
/**
|
|
11
|
+
* Parts of speech classification
|
|
12
|
+
*/
|
|
13
|
+
var PartOfSpeech;
|
|
14
|
+
(function (PartOfSpeech) {
|
|
15
|
+
PartOfSpeech["VERB"] = "VERB";
|
|
16
|
+
PartOfSpeech["NOUN"] = "NOUN";
|
|
17
|
+
PartOfSpeech["ADJECTIVE"] = "ADJECTIVE";
|
|
18
|
+
PartOfSpeech["ARTICLE"] = "ARTICLE";
|
|
19
|
+
PartOfSpeech["PREPOSITION"] = "PREPOSITION";
|
|
20
|
+
PartOfSpeech["PRONOUN"] = "PRONOUN";
|
|
21
|
+
PartOfSpeech["DETERMINER"] = "DETERMINER";
|
|
22
|
+
PartOfSpeech["CONJUNCTION"] = "CONJUNCTION";
|
|
23
|
+
PartOfSpeech["UNKNOWN"] = "UNKNOWN";
|
|
24
|
+
})(PartOfSpeech || (exports.PartOfSpeech = PartOfSpeech = {}));
|
|
25
|
+
//# sourceMappingURL=parsed-command.js.map
|