@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.
Files changed (566) hide show
  1. package/README.md +61 -0
  2. package/dist/behaviors/attack.d.ts +52 -0
  3. package/dist/behaviors/attack.d.ts.map +1 -0
  4. package/dist/behaviors/attack.js +161 -0
  5. package/dist/behaviors/attack.js.map +1 -0
  6. package/dist/behaviors/behavior.d.ts +67 -0
  7. package/dist/behaviors/behavior.d.ts.map +1 -0
  8. package/dist/behaviors/behavior.js +80 -0
  9. package/dist/behaviors/behavior.js.map +1 -0
  10. package/dist/behaviors/index.d.ts +21 -0
  11. package/dist/behaviors/index.d.ts.map +1 -0
  12. package/dist/behaviors/index.js +39 -0
  13. package/dist/behaviors/index.js.map +1 -0
  14. package/dist/capabilities/capability-behavior.d.ts +112 -0
  15. package/dist/capabilities/capability-behavior.d.ts.map +1 -0
  16. package/dist/capabilities/capability-behavior.js +9 -0
  17. package/dist/capabilities/capability-behavior.js.map +1 -0
  18. package/dist/capabilities/capability-defaults.d.ts +67 -0
  19. package/dist/capabilities/capability-defaults.d.ts.map +1 -0
  20. package/dist/capabilities/capability-defaults.js +81 -0
  21. package/dist/capabilities/capability-defaults.js.map +1 -0
  22. package/dist/capabilities/capability-helpers.d.ts +76 -0
  23. package/dist/capabilities/capability-helpers.d.ts.map +1 -0
  24. package/dist/capabilities/capability-helpers.js +112 -0
  25. package/dist/capabilities/capability-helpers.js.map +1 -0
  26. package/dist/capabilities/capability-registry.d.ts +115 -0
  27. package/dist/capabilities/capability-registry.d.ts.map +1 -0
  28. package/dist/capabilities/capability-registry.js +136 -0
  29. package/dist/capabilities/capability-registry.js.map +1 -0
  30. package/dist/capabilities/entity-builder.d.ts +79 -0
  31. package/dist/capabilities/entity-builder.d.ts.map +1 -0
  32. package/dist/capabilities/entity-builder.js +116 -0
  33. package/dist/capabilities/entity-builder.js.map +1 -0
  34. package/dist/capabilities/index.d.ts +13 -0
  35. package/dist/capabilities/index.d.ts.map +1 -0
  36. package/dist/capabilities/index.js +40 -0
  37. package/dist/capabilities/index.js.map +1 -0
  38. package/dist/capabilities/types.d.ts +35 -0
  39. package/dist/capabilities/types.d.ts.map +1 -0
  40. package/dist/capabilities/types.js +16 -0
  41. package/dist/capabilities/types.js.map +1 -0
  42. package/dist/commands/command-types.d.ts +30 -0
  43. package/dist/commands/command-types.d.ts.map +1 -0
  44. package/dist/commands/command-types.js +6 -0
  45. package/dist/commands/command-types.js.map +1 -0
  46. package/dist/commands/index.d.ts +7 -0
  47. package/dist/commands/index.d.ts.map +1 -0
  48. package/dist/commands/index.js +23 -0
  49. package/dist/commands/index.js.map +1 -0
  50. package/dist/commands/parsed-command.d.ts +204 -0
  51. package/dist/commands/parsed-command.d.ts.map +1 -0
  52. package/dist/commands/parsed-command.js +25 -0
  53. package/dist/commands/parsed-command.js.map +1 -0
  54. package/dist/commands/validated-command.d.ts +52 -0
  55. package/dist/commands/validated-command.d.ts.map +1 -0
  56. package/dist/commands/validated-command.js +8 -0
  57. package/dist/commands/validated-command.js.map +1 -0
  58. package/dist/constants/action-failures.d.ts +54 -0
  59. package/dist/constants/action-failures.d.ts.map +1 -0
  60. package/dist/constants/action-failures.js +68 -0
  61. package/dist/constants/action-failures.js.map +1 -0
  62. package/dist/constants/directions.d.ts +32 -0
  63. package/dist/constants/directions.d.ts.map +1 -0
  64. package/dist/constants/directions.js +53 -0
  65. package/dist/constants/directions.js.map +1 -0
  66. package/dist/constants/if-events.d.ts +5 -0
  67. package/dist/constants/if-events.d.ts.map +1 -0
  68. package/dist/constants/if-events.js +10 -0
  69. package/dist/constants/if-events.js.map +1 -0
  70. package/dist/constants/index.d.ts +9 -0
  71. package/dist/constants/index.d.ts.map +1 -0
  72. package/dist/constants/index.js +25 -0
  73. package/dist/constants/index.js.map +1 -0
  74. package/dist/entities/entity-store.d.ts +66 -0
  75. package/dist/entities/entity-store.d.ts.map +1 -0
  76. package/dist/entities/entity-store.js +116 -0
  77. package/dist/entities/entity-store.js.map +1 -0
  78. package/dist/entities/entity-types.d.ts +40 -0
  79. package/dist/entities/entity-types.d.ts.map +1 -0
  80. package/dist/entities/entity-types.js +56 -0
  81. package/dist/entities/entity-types.js.map +1 -0
  82. package/dist/entities/if-entity.d.ts +259 -0
  83. package/dist/entities/if-entity.d.ts.map +1 -0
  84. package/dist/entities/if-entity.js +498 -0
  85. package/dist/entities/if-entity.js.map +1 -0
  86. package/dist/entities/index.d.ts +5 -0
  87. package/dist/entities/index.d.ts.map +1 -0
  88. package/dist/entities/index.js +13 -0
  89. package/dist/entities/index.js.map +1 -0
  90. package/dist/events/types.d.ts +45 -0
  91. package/dist/events/types.d.ts.map +1 -0
  92. package/dist/events/types.js +9 -0
  93. package/dist/events/types.js.map +1 -0
  94. package/dist/examples/event-handler-registration.d.ts +14 -0
  95. package/dist/examples/event-handler-registration.d.ts.map +1 -0
  96. package/dist/examples/event-handler-registration.js +158 -0
  97. package/dist/examples/event-handler-registration.js.map +1 -0
  98. package/dist/extensions/base-extension.d.ts +69 -0
  99. package/dist/extensions/base-extension.d.ts.map +1 -0
  100. package/dist/extensions/base-extension.js +83 -0
  101. package/dist/extensions/base-extension.js.map +1 -0
  102. package/dist/extensions/index.d.ts +11 -0
  103. package/dist/extensions/index.d.ts.map +1 -0
  104. package/dist/extensions/index.js +39 -0
  105. package/dist/extensions/index.js.map +1 -0
  106. package/dist/extensions/loader.d.ts +52 -0
  107. package/dist/extensions/loader.d.ts.map +1 -0
  108. package/dist/extensions/loader.js +177 -0
  109. package/dist/extensions/loader.js.map +1 -0
  110. package/dist/extensions/manager.d.ts +68 -0
  111. package/dist/extensions/manager.d.ts.map +1 -0
  112. package/dist/extensions/manager.js +164 -0
  113. package/dist/extensions/manager.js.map +1 -0
  114. package/dist/extensions/registry.d.ts +100 -0
  115. package/dist/extensions/registry.d.ts.map +1 -0
  116. package/dist/extensions/registry.js +193 -0
  117. package/dist/extensions/registry.js.map +1 -0
  118. package/dist/extensions/types.d.ts +226 -0
  119. package/dist/extensions/types.d.ts.map +1 -0
  120. package/dist/extensions/types.js +28 -0
  121. package/dist/extensions/types.js.map +1 -0
  122. package/dist/index.d.ts +39 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +68 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/interfaces/command-executor.d.ts +17 -0
  127. package/dist/interfaces/command-executor.d.ts.map +1 -0
  128. package/dist/interfaces/command-executor.js +6 -0
  129. package/dist/interfaces/command-executor.js.map +1 -0
  130. package/dist/interfaces/command-processor.d.ts +17 -0
  131. package/dist/interfaces/command-processor.d.ts.map +1 -0
  132. package/dist/interfaces/command-processor.js +6 -0
  133. package/dist/interfaces/command-processor.js.map +1 -0
  134. package/dist/interfaces/command-validator.d.ts +17 -0
  135. package/dist/interfaces/command-validator.d.ts.map +1 -0
  136. package/dist/interfaces/command-validator.js +6 -0
  137. package/dist/interfaces/command-validator.js.map +1 -0
  138. package/dist/interfaces/index.d.ts +8 -0
  139. package/dist/interfaces/index.d.ts.map +1 -0
  140. package/dist/interfaces/index.js +24 -0
  141. package/dist/interfaces/index.js.map +1 -0
  142. package/dist/interfaces/language-provider.d.ts +86 -0
  143. package/dist/interfaces/language-provider.d.ts.map +1 -0
  144. package/dist/interfaces/language-provider.js +14 -0
  145. package/dist/interfaces/language-provider.js.map +1 -0
  146. package/dist/interfaces/parser.d.ts +16 -0
  147. package/dist/interfaces/parser.d.ts.map +1 -0
  148. package/dist/interfaces/parser.js +6 -0
  149. package/dist/interfaces/parser.js.map +1 -0
  150. package/dist/scope/index.d.ts +8 -0
  151. package/dist/scope/index.d.ts.map +1 -0
  152. package/dist/scope/index.js +24 -0
  153. package/dist/scope/index.js.map +1 -0
  154. package/dist/scope/scope-evaluator.d.ts +58 -0
  155. package/dist/scope/scope-evaluator.d.ts.map +1 -0
  156. package/dist/scope/scope-evaluator.js +207 -0
  157. package/dist/scope/scope-evaluator.js.map +1 -0
  158. package/dist/scope/scope-registry.d.ts +59 -0
  159. package/dist/scope/scope-registry.d.ts.map +1 -0
  160. package/dist/scope/scope-registry.js +182 -0
  161. package/dist/scope/scope-registry.js.map +1 -0
  162. package/dist/scope/scope-rule.d.ts +86 -0
  163. package/dist/scope/scope-rule.d.ts.map +1 -0
  164. package/dist/scope/scope-rule.js +7 -0
  165. package/dist/scope/scope-rule.js.map +1 -0
  166. package/dist/services/ScopeService.d.ts +8 -0
  167. package/dist/services/ScopeService.d.ts.map +1 -0
  168. package/dist/services/ScopeService.js +19 -0
  169. package/dist/services/ScopeService.js.map +1 -0
  170. package/dist/services/index.d.ts +2 -0
  171. package/dist/services/index.d.ts.map +1 -0
  172. package/dist/services/index.js +6 -0
  173. package/dist/services/index.js.map +1 -0
  174. package/dist/test-structure.d.ts +3 -0
  175. package/dist/test-structure.d.ts.map +1 -0
  176. package/dist/test-structure.js +26 -0
  177. package/dist/test-structure.js.map +1 -0
  178. package/dist/traits/actor/actorBehavior.d.ts +121 -0
  179. package/dist/traits/actor/actorBehavior.d.ts.map +1 -0
  180. package/dist/traits/actor/actorBehavior.js +288 -0
  181. package/dist/traits/actor/actorBehavior.js.map +1 -0
  182. package/dist/traits/actor/actorTrait.d.ts +158 -0
  183. package/dist/traits/actor/actorTrait.d.ts.map +1 -0
  184. package/dist/traits/actor/actorTrait.js +152 -0
  185. package/dist/traits/actor/actorTrait.js.map +1 -0
  186. package/dist/traits/actor/index.d.ts +3 -0
  187. package/dist/traits/actor/index.d.ts.map +1 -0
  188. package/dist/traits/actor/index.js +11 -0
  189. package/dist/traits/actor/index.js.map +1 -0
  190. package/dist/traits/all-traits.d.ts +95 -0
  191. package/dist/traits/all-traits.d.ts.map +1 -0
  192. package/dist/traits/all-traits.js +178 -0
  193. package/dist/traits/all-traits.js.map +1 -0
  194. package/dist/traits/attached/attachedTrait.d.ts +61 -0
  195. package/dist/traits/attached/attachedTrait.d.ts.map +1 -0
  196. package/dist/traits/attached/attachedTrait.js +36 -0
  197. package/dist/traits/attached/attachedTrait.js.map +1 -0
  198. package/dist/traits/attached/index.d.ts +2 -0
  199. package/dist/traits/attached/index.d.ts.map +1 -0
  200. package/dist/traits/attached/index.js +18 -0
  201. package/dist/traits/attached/index.js.map +1 -0
  202. package/dist/traits/breakable/breakableBehavior.d.ts +43 -0
  203. package/dist/traits/breakable/breakableBehavior.d.ts.map +1 -0
  204. package/dist/traits/breakable/breakableBehavior.js +70 -0
  205. package/dist/traits/breakable/breakableBehavior.js.map +1 -0
  206. package/dist/traits/breakable/breakableTrait.d.ts +22 -0
  207. package/dist/traits/breakable/breakableTrait.d.ts.map +1 -0
  208. package/dist/traits/breakable/breakableTrait.js +25 -0
  209. package/dist/traits/breakable/breakableTrait.js.map +1 -0
  210. package/dist/traits/breakable/index.d.ts +3 -0
  211. package/dist/traits/breakable/index.d.ts.map +1 -0
  212. package/dist/traits/breakable/index.js +8 -0
  213. package/dist/traits/breakable/index.js.map +1 -0
  214. package/dist/traits/button/buttonTrait.d.ts +53 -0
  215. package/dist/traits/button/buttonTrait.d.ts.map +1 -0
  216. package/dist/traits/button/buttonTrait.js +36 -0
  217. package/dist/traits/button/buttonTrait.js.map +1 -0
  218. package/dist/traits/button/index.d.ts +2 -0
  219. package/dist/traits/button/index.d.ts.map +1 -0
  220. package/dist/traits/button/index.js +18 -0
  221. package/dist/traits/button/index.js.map +1 -0
  222. package/dist/traits/climbable/climbableBehavior.d.ts +37 -0
  223. package/dist/traits/climbable/climbableBehavior.d.ts.map +1 -0
  224. package/dist/traits/climbable/climbableBehavior.js +70 -0
  225. package/dist/traits/climbable/climbableBehavior.js.map +1 -0
  226. package/dist/traits/climbable/climbableTrait.d.ts +31 -0
  227. package/dist/traits/climbable/climbableTrait.d.ts.map +1 -0
  228. package/dist/traits/climbable/climbableTrait.js +47 -0
  229. package/dist/traits/climbable/climbableTrait.js.map +1 -0
  230. package/dist/traits/climbable/index.d.ts +6 -0
  231. package/dist/traits/climbable/index.d.ts.map +1 -0
  232. package/dist/traits/climbable/index.js +22 -0
  233. package/dist/traits/climbable/index.js.map +1 -0
  234. package/dist/traits/clothing/clothingTrait.d.ts +58 -0
  235. package/dist/traits/clothing/clothingTrait.d.ts.map +1 -0
  236. package/dist/traits/clothing/clothingTrait.js +78 -0
  237. package/dist/traits/clothing/clothingTrait.js.map +1 -0
  238. package/dist/traits/clothing/index.d.ts +2 -0
  239. package/dist/traits/clothing/index.d.ts.map +1 -0
  240. package/dist/traits/clothing/index.js +19 -0
  241. package/dist/traits/clothing/index.js.map +1 -0
  242. package/dist/traits/combatant/combatantBehavior.d.ts +70 -0
  243. package/dist/traits/combatant/combatantBehavior.d.ts.map +1 -0
  244. package/dist/traits/combatant/combatantBehavior.js +155 -0
  245. package/dist/traits/combatant/combatantBehavior.js.map +1 -0
  246. package/dist/traits/combatant/combatantTrait.d.ts +98 -0
  247. package/dist/traits/combatant/combatantTrait.d.ts.map +1 -0
  248. package/dist/traits/combatant/combatantTrait.js +122 -0
  249. package/dist/traits/combatant/combatantTrait.js.map +1 -0
  250. package/dist/traits/combatant/index.d.ts +3 -0
  251. package/dist/traits/combatant/index.d.ts.map +1 -0
  252. package/dist/traits/combatant/index.js +8 -0
  253. package/dist/traits/combatant/index.js.map +1 -0
  254. package/dist/traits/container/container-utils.d.ts +39 -0
  255. package/dist/traits/container/container-utils.d.ts.map +1 -0
  256. package/dist/traits/container/container-utils.js +72 -0
  257. package/dist/traits/container/container-utils.js.map +1 -0
  258. package/dist/traits/container/containerBehavior.d.ts +94 -0
  259. package/dist/traits/container/containerBehavior.d.ts.map +1 -0
  260. package/dist/traits/container/containerBehavior.js +256 -0
  261. package/dist/traits/container/containerBehavior.js.map +1 -0
  262. package/dist/traits/container/containerTrait.d.ts +30 -0
  263. package/dist/traits/container/containerTrait.d.ts.map +1 -0
  264. package/dist/traits/container/containerTrait.js +45 -0
  265. package/dist/traits/container/containerTrait.js.map +1 -0
  266. package/dist/traits/container/index.d.ts +4 -0
  267. package/dist/traits/container/index.d.ts.map +1 -0
  268. package/dist/traits/container/index.js +14 -0
  269. package/dist/traits/container/index.js.map +1 -0
  270. package/dist/traits/destructible/destructibleBehavior.d.ts +57 -0
  271. package/dist/traits/destructible/destructibleBehavior.d.ts.map +1 -0
  272. package/dist/traits/destructible/destructibleBehavior.js +145 -0
  273. package/dist/traits/destructible/destructibleBehavior.js.map +1 -0
  274. package/dist/traits/destructible/destructibleTrait.d.ts +49 -0
  275. package/dist/traits/destructible/destructibleTrait.d.ts.map +1 -0
  276. package/dist/traits/destructible/destructibleTrait.js +43 -0
  277. package/dist/traits/destructible/destructibleTrait.js.map +1 -0
  278. package/dist/traits/destructible/index.d.ts +3 -0
  279. package/dist/traits/destructible/index.d.ts.map +1 -0
  280. package/dist/traits/destructible/index.js +8 -0
  281. package/dist/traits/destructible/index.js.map +1 -0
  282. package/dist/traits/door/doorBehavior.d.ts +42 -0
  283. package/dist/traits/door/doorBehavior.d.ts.map +1 -0
  284. package/dist/traits/door/doorBehavior.js +76 -0
  285. package/dist/traits/door/doorBehavior.js.map +1 -0
  286. package/dist/traits/door/doorTrait.d.ts +19 -0
  287. package/dist/traits/door/doorTrait.d.ts.map +1 -0
  288. package/dist/traits/door/doorTrait.js +33 -0
  289. package/dist/traits/door/doorTrait.js.map +1 -0
  290. package/dist/traits/door/index.d.ts +3 -0
  291. package/dist/traits/door/index.d.ts.map +1 -0
  292. package/dist/traits/door/index.js +9 -0
  293. package/dist/traits/door/index.js.map +1 -0
  294. package/dist/traits/edible/edibleBehavior.d.ts +63 -0
  295. package/dist/traits/edible/edibleBehavior.d.ts.map +1 -0
  296. package/dist/traits/edible/edibleBehavior.js +157 -0
  297. package/dist/traits/edible/edibleBehavior.js.map +1 -0
  298. package/dist/traits/edible/edibleTrait.d.ts +57 -0
  299. package/dist/traits/edible/edibleTrait.d.ts.map +1 -0
  300. package/dist/traits/edible/edibleTrait.js +51 -0
  301. package/dist/traits/edible/edibleTrait.js.map +1 -0
  302. package/dist/traits/edible/index.d.ts +3 -0
  303. package/dist/traits/edible/index.d.ts.map +1 -0
  304. package/dist/traits/edible/index.js +20 -0
  305. package/dist/traits/edible/index.js.map +1 -0
  306. package/dist/traits/enterable/enterableTrait.d.ts +33 -0
  307. package/dist/traits/enterable/enterableTrait.d.ts.map +1 -0
  308. package/dist/traits/enterable/enterableTrait.js +38 -0
  309. package/dist/traits/enterable/enterableTrait.js.map +1 -0
  310. package/dist/traits/enterable/index.d.ts +5 -0
  311. package/dist/traits/enterable/index.d.ts.map +1 -0
  312. package/dist/traits/enterable/index.js +21 -0
  313. package/dist/traits/enterable/index.js.map +1 -0
  314. package/dist/traits/equipped/equippedTrait.d.ts +46 -0
  315. package/dist/traits/equipped/equippedTrait.d.ts.map +1 -0
  316. package/dist/traits/equipped/equippedTrait.js +34 -0
  317. package/dist/traits/equipped/equippedTrait.js.map +1 -0
  318. package/dist/traits/equipped/index.d.ts +2 -0
  319. package/dist/traits/equipped/index.d.ts.map +1 -0
  320. package/dist/traits/equipped/index.js +6 -0
  321. package/dist/traits/equipped/index.js.map +1 -0
  322. package/dist/traits/exit/exitBehavior.d.ts +51 -0
  323. package/dist/traits/exit/exitBehavior.d.ts.map +1 -0
  324. package/dist/traits/exit/exitBehavior.js +231 -0
  325. package/dist/traits/exit/exitBehavior.js.map +1 -0
  326. package/dist/traits/exit/exitTrait.d.ts +41 -0
  327. package/dist/traits/exit/exitTrait.d.ts.map +1 -0
  328. package/dist/traits/exit/exitTrait.js +75 -0
  329. package/dist/traits/exit/exitTrait.js.map +1 -0
  330. package/dist/traits/exit/index.d.ts +3 -0
  331. package/dist/traits/exit/index.d.ts.map +1 -0
  332. package/dist/traits/exit/index.js +9 -0
  333. package/dist/traits/exit/index.js.map +1 -0
  334. package/dist/traits/identity/identityBehavior.d.ts +64 -0
  335. package/dist/traits/identity/identityBehavior.d.ts.map +1 -0
  336. package/dist/traits/identity/identityBehavior.js +154 -0
  337. package/dist/traits/identity/identityBehavior.js.map +1 -0
  338. package/dist/traits/identity/identityTrait.d.ts +70 -0
  339. package/dist/traits/identity/identityTrait.d.ts.map +1 -0
  340. package/dist/traits/identity/identityTrait.js +79 -0
  341. package/dist/traits/identity/identityTrait.js.map +1 -0
  342. package/dist/traits/identity/index.d.ts +3 -0
  343. package/dist/traits/identity/index.d.ts.map +1 -0
  344. package/dist/traits/identity/index.js +20 -0
  345. package/dist/traits/identity/index.js.map +1 -0
  346. package/dist/traits/implementations.d.ts +51 -0
  347. package/dist/traits/implementations.d.ts.map +1 -0
  348. package/dist/traits/implementations.js +145 -0
  349. package/dist/traits/implementations.js.map +1 -0
  350. package/dist/traits/index.d.ts +36 -0
  351. package/dist/traits/index.d.ts.map +1 -0
  352. package/dist/traits/index.js +62 -0
  353. package/dist/traits/index.js.map +1 -0
  354. package/dist/traits/light-source/index.d.ts +3 -0
  355. package/dist/traits/light-source/index.d.ts.map +1 -0
  356. package/dist/traits/light-source/index.js +9 -0
  357. package/dist/traits/light-source/index.js.map +1 -0
  358. package/dist/traits/light-source/lightSourceBehavior.d.ts +57 -0
  359. package/dist/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
  360. package/dist/traits/light-source/lightSourceBehavior.js +135 -0
  361. package/dist/traits/light-source/lightSourceBehavior.js.map +1 -0
  362. package/dist/traits/light-source/lightSourceTrait.d.ts +28 -0
  363. package/dist/traits/light-source/lightSourceTrait.d.ts.map +1 -0
  364. package/dist/traits/light-source/lightSourceTrait.js +37 -0
  365. package/dist/traits/light-source/lightSourceTrait.js.map +1 -0
  366. package/dist/traits/lockable/index.d.ts +3 -0
  367. package/dist/traits/lockable/index.d.ts.map +1 -0
  368. package/dist/traits/lockable/index.js +20 -0
  369. package/dist/traits/lockable/index.js.map +1 -0
  370. package/dist/traits/lockable/lockableBehavior.d.ts +88 -0
  371. package/dist/traits/lockable/lockableBehavior.d.ts.map +1 -0
  372. package/dist/traits/lockable/lockableBehavior.js +196 -0
  373. package/dist/traits/lockable/lockableBehavior.js.map +1 -0
  374. package/dist/traits/lockable/lockableTrait.d.ts +59 -0
  375. package/dist/traits/lockable/lockableTrait.d.ts.map +1 -0
  376. package/dist/traits/lockable/lockableTrait.js +50 -0
  377. package/dist/traits/lockable/lockableTrait.js.map +1 -0
  378. package/dist/traits/moveable-scenery/index.d.ts +2 -0
  379. package/dist/traits/moveable-scenery/index.d.ts.map +1 -0
  380. package/dist/traits/moveable-scenery/index.js +18 -0
  381. package/dist/traits/moveable-scenery/index.js.map +1 -0
  382. package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
  383. package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
  384. package/dist/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
  385. package/dist/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
  386. package/dist/traits/npc/index.d.ts +5 -0
  387. package/dist/traits/npc/index.d.ts.map +1 -0
  388. package/dist/traits/npc/index.js +9 -0
  389. package/dist/traits/npc/index.js.map +1 -0
  390. package/dist/traits/npc/npcTrait.d.ts +128 -0
  391. package/dist/traits/npc/npcTrait.d.ts.map +1 -0
  392. package/dist/traits/npc/npcTrait.js +180 -0
  393. package/dist/traits/npc/npcTrait.js.map +1 -0
  394. package/dist/traits/openable/index.d.ts +3 -0
  395. package/dist/traits/openable/index.d.ts.map +1 -0
  396. package/dist/traits/openable/index.js +20 -0
  397. package/dist/traits/openable/index.js.map +1 -0
  398. package/dist/traits/openable/openableBehavior.d.ts +64 -0
  399. package/dist/traits/openable/openableBehavior.d.ts.map +1 -0
  400. package/dist/traits/openable/openableBehavior.js +109 -0
  401. package/dist/traits/openable/openableBehavior.js.map +1 -0
  402. package/dist/traits/openable/openableTrait.d.ts +46 -0
  403. package/dist/traits/openable/openableTrait.d.ts.map +1 -0
  404. package/dist/traits/openable/openableTrait.js +42 -0
  405. package/dist/traits/openable/openableTrait.js.map +1 -0
  406. package/dist/traits/portable/portableTrait.d.ts +26 -0
  407. package/dist/traits/portable/portableTrait.d.ts.map +1 -0
  408. package/dist/traits/portable/portableTrait.js +35 -0
  409. package/dist/traits/portable/portableTrait.js.map +1 -0
  410. package/dist/traits/pullable/index.d.ts +2 -0
  411. package/dist/traits/pullable/index.d.ts.map +1 -0
  412. package/dist/traits/pullable/index.js +18 -0
  413. package/dist/traits/pullable/index.js.map +1 -0
  414. package/dist/traits/pullable/pullableTrait.d.ts +81 -0
  415. package/dist/traits/pullable/pullableTrait.d.ts.map +1 -0
  416. package/dist/traits/pullable/pullableTrait.js +44 -0
  417. package/dist/traits/pullable/pullableTrait.js.map +1 -0
  418. package/dist/traits/pushable/index.d.ts +2 -0
  419. package/dist/traits/pushable/index.d.ts.map +1 -0
  420. package/dist/traits/pushable/index.js +18 -0
  421. package/dist/traits/pushable/index.js.map +1 -0
  422. package/dist/traits/pushable/pushableTrait.d.ts +81 -0
  423. package/dist/traits/pushable/pushableTrait.d.ts.map +1 -0
  424. package/dist/traits/pushable/pushableTrait.js +44 -0
  425. package/dist/traits/pushable/pushableTrait.js.map +1 -0
  426. package/dist/traits/readable/index.d.ts +3 -0
  427. package/dist/traits/readable/index.d.ts.map +1 -0
  428. package/dist/traits/readable/index.js +9 -0
  429. package/dist/traits/readable/index.js.map +1 -0
  430. package/dist/traits/readable/readableBehavior.d.ts +42 -0
  431. package/dist/traits/readable/readableBehavior.d.ts.map +1 -0
  432. package/dist/traits/readable/readableBehavior.js +174 -0
  433. package/dist/traits/readable/readableBehavior.js.map +1 -0
  434. package/dist/traits/readable/readableTrait.d.ts +37 -0
  435. package/dist/traits/readable/readableTrait.d.ts.map +1 -0
  436. package/dist/traits/readable/readableTrait.js +51 -0
  437. package/dist/traits/readable/readableTrait.js.map +1 -0
  438. package/dist/traits/register-all.d.ts +10 -0
  439. package/dist/traits/register-all.d.ts.map +1 -0
  440. package/dist/traits/register-all.js +19 -0
  441. package/dist/traits/register-all.js.map +1 -0
  442. package/dist/traits/room/index.d.ts +9 -0
  443. package/dist/traits/room/index.d.ts.map +1 -0
  444. package/dist/traits/room/index.js +14 -0
  445. package/dist/traits/room/index.js.map +1 -0
  446. package/dist/traits/room/roomBehavior.d.ts +87 -0
  447. package/dist/traits/room/roomBehavior.d.ts.map +1 -0
  448. package/dist/traits/room/roomBehavior.js +232 -0
  449. package/dist/traits/room/roomBehavior.js.map +1 -0
  450. package/dist/traits/room/roomTrait.d.ts +87 -0
  451. package/dist/traits/room/roomTrait.d.ts.map +1 -0
  452. package/dist/traits/room/roomTrait.js +59 -0
  453. package/dist/traits/room/roomTrait.js.map +1 -0
  454. package/dist/traits/scenery/index.d.ts +3 -0
  455. package/dist/traits/scenery/index.d.ts.map +1 -0
  456. package/dist/traits/scenery/index.js +9 -0
  457. package/dist/traits/scenery/index.js.map +1 -0
  458. package/dist/traits/scenery/sceneryBehavior.d.ts +21 -0
  459. package/dist/traits/scenery/sceneryBehavior.d.ts.map +1 -0
  460. package/dist/traits/scenery/sceneryBehavior.js +42 -0
  461. package/dist/traits/scenery/sceneryBehavior.js.map +1 -0
  462. package/dist/traits/scenery/sceneryTrait.d.ts +30 -0
  463. package/dist/traits/scenery/sceneryTrait.d.ts.map +1 -0
  464. package/dist/traits/scenery/sceneryTrait.js +39 -0
  465. package/dist/traits/scenery/sceneryTrait.js.map +1 -0
  466. package/dist/traits/supporter/index.d.ts +3 -0
  467. package/dist/traits/supporter/index.d.ts.map +1 -0
  468. package/dist/traits/supporter/index.js +9 -0
  469. package/dist/traits/supporter/index.js.map +1 -0
  470. package/dist/traits/supporter/supporterBehavior.d.ts +83 -0
  471. package/dist/traits/supporter/supporterBehavior.d.ts.map +1 -0
  472. package/dist/traits/supporter/supporterBehavior.js +210 -0
  473. package/dist/traits/supporter/supporterBehavior.js.map +1 -0
  474. package/dist/traits/supporter/supporterTrait.d.ts +26 -0
  475. package/dist/traits/supporter/supporterTrait.d.ts.map +1 -0
  476. package/dist/traits/supporter/supporterTrait.js +30 -0
  477. package/dist/traits/supporter/supporterTrait.js.map +1 -0
  478. package/dist/traits/switchable/index.d.ts +3 -0
  479. package/dist/traits/switchable/index.d.ts.map +1 -0
  480. package/dist/traits/switchable/index.js +20 -0
  481. package/dist/traits/switchable/index.js.map +1 -0
  482. package/dist/traits/switchable/switchableBehavior.d.ts +73 -0
  483. package/dist/traits/switchable/switchableBehavior.d.ts.map +1 -0
  484. package/dist/traits/switchable/switchableBehavior.js +191 -0
  485. package/dist/traits/switchable/switchableBehavior.js.map +1 -0
  486. package/dist/traits/switchable/switchableTrait.d.ts +61 -0
  487. package/dist/traits/switchable/switchableTrait.d.ts.map +1 -0
  488. package/dist/traits/switchable/switchableTrait.js +52 -0
  489. package/dist/traits/switchable/switchableTrait.js.map +1 -0
  490. package/dist/traits/trait-types.d.ts +81 -0
  491. package/dist/traits/trait-types.d.ts.map +1 -0
  492. package/dist/traits/trait-types.js +146 -0
  493. package/dist/traits/trait-types.js.map +1 -0
  494. package/dist/traits/trait.d.ts +42 -0
  495. package/dist/traits/trait.d.ts.map +1 -0
  496. package/dist/traits/trait.js +42 -0
  497. package/dist/traits/trait.js.map +1 -0
  498. package/dist/traits/vehicle/index.d.ts +6 -0
  499. package/dist/traits/vehicle/index.d.ts.map +1 -0
  500. package/dist/traits/vehicle/index.js +22 -0
  501. package/dist/traits/vehicle/index.js.map +1 -0
  502. package/dist/traits/vehicle/vehicleBehavior.d.ts +62 -0
  503. package/dist/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
  504. package/dist/traits/vehicle/vehicleBehavior.js +145 -0
  505. package/dist/traits/vehicle/vehicleBehavior.js.map +1 -0
  506. package/dist/traits/vehicle/vehicleTrait.d.ts +77 -0
  507. package/dist/traits/vehicle/vehicleTrait.d.ts.map +1 -0
  508. package/dist/traits/vehicle/vehicleTrait.js +92 -0
  509. package/dist/traits/vehicle/vehicleTrait.js.map +1 -0
  510. package/dist/traits/weapon/index.d.ts +3 -0
  511. package/dist/traits/weapon/index.d.ts.map +1 -0
  512. package/dist/traits/weapon/index.js +8 -0
  513. package/dist/traits/weapon/index.js.map +1 -0
  514. package/dist/traits/weapon/weaponBehavior.d.ts +47 -0
  515. package/dist/traits/weapon/weaponBehavior.d.ts.map +1 -0
  516. package/dist/traits/weapon/weaponBehavior.js +106 -0
  517. package/dist/traits/weapon/weaponBehavior.js.map +1 -0
  518. package/dist/traits/weapon/weaponTrait.d.ts +67 -0
  519. package/dist/traits/weapon/weaponTrait.d.ts.map +1 -0
  520. package/dist/traits/weapon/weaponTrait.js +60 -0
  521. package/dist/traits/weapon/weaponTrait.js.map +1 -0
  522. package/dist/traits/wearable/index.d.ts +3 -0
  523. package/dist/traits/wearable/index.d.ts.map +1 -0
  524. package/dist/traits/wearable/index.js +20 -0
  525. package/dist/traits/wearable/index.js.map +1 -0
  526. package/dist/traits/wearable/wearableBehavior.d.ts +64 -0
  527. package/dist/traits/wearable/wearableBehavior.d.ts.map +1 -0
  528. package/dist/traits/wearable/wearableBehavior.js +142 -0
  529. package/dist/traits/wearable/wearableBehavior.js.map +1 -0
  530. package/dist/traits/wearable/wearableTrait.d.ts +54 -0
  531. package/dist/traits/wearable/wearableTrait.d.ts.map +1 -0
  532. package/dist/traits/wearable/wearableTrait.js +53 -0
  533. package/dist/traits/wearable/wearableTrait.js.map +1 -0
  534. package/dist/utils/event-utils.d.ts +30 -0
  535. package/dist/utils/event-utils.d.ts.map +1 -0
  536. package/dist/utils/event-utils.js +33 -0
  537. package/dist/utils/event-utils.js.map +1 -0
  538. package/dist/world/AuthorModel.d.ts +151 -0
  539. package/dist/world/AuthorModel.d.ts.map +1 -0
  540. package/dist/world/AuthorModel.js +416 -0
  541. package/dist/world/AuthorModel.js.map +1 -0
  542. package/dist/world/SharedDataStore.d.ts +24 -0
  543. package/dist/world/SharedDataStore.d.ts.map +1 -0
  544. package/dist/world/SharedDataStore.js +50 -0
  545. package/dist/world/SharedDataStore.js.map +1 -0
  546. package/dist/world/SpatialIndex.d.ts +16 -0
  547. package/dist/world/SpatialIndex.d.ts.map +1 -0
  548. package/dist/world/SpatialIndex.js +117 -0
  549. package/dist/world/SpatialIndex.js.map +1 -0
  550. package/dist/world/VisibilityBehavior.d.ts +83 -0
  551. package/dist/world/VisibilityBehavior.d.ts.map +1 -0
  552. package/dist/world/VisibilityBehavior.js +484 -0
  553. package/dist/world/VisibilityBehavior.js.map +1 -0
  554. package/dist/world/WorldModel.d.ts +270 -0
  555. package/dist/world/WorldModel.d.ts.map +1 -0
  556. package/dist/world/WorldModel.js +1028 -0
  557. package/dist/world/WorldModel.js.map +1 -0
  558. package/dist/world/capabilities.d.ts +36 -0
  559. package/dist/world/capabilities.d.ts.map +1 -0
  560. package/dist/world/capabilities.js +18 -0
  561. package/dist/world/capabilities.js.map +1 -0
  562. package/dist/world/index.d.ts +7 -0
  563. package/dist/world/index.d.ts.map +1 -0
  564. package/dist/world/index.js +21 -0
  565. package/dist/world/index.js.map +1 -0
  566. package/package.json +67 -0
@@ -0,0 +1,498 @@
1
+ "use strict";
2
+ // packages/world-model/src/entities/if-entity.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.IFEntity = void 0;
5
+ const trait_1 = require("../traits/trait");
6
+ const trait_types_1 = require("../traits/trait-types");
7
+ /**
8
+ * Interactive Fiction Entity with trait-based composition.
9
+ * Implements the core Entity interface and adds trait management capabilities.
10
+ */
11
+ class IFEntity {
12
+ id;
13
+ type;
14
+ attributes;
15
+ relationships;
16
+ traits;
17
+ /**
18
+ * Author-controlled disambiguation priorities per action
19
+ * Higher priority = more likely to be selected when ambiguous
20
+ * Key is action ID (e.g., 'if.action.eating')
21
+ * Value is priority (default 100, higher = preferred)
22
+ */
23
+ scopePriorities = new Map();
24
+ /**
25
+ * Author-controlled minimum scope levels
26
+ * Allows entities to be "in scope" regardless of spatial location.
27
+ * Key is room ID (or '*' for all rooms)
28
+ * Value is minimum scope level (0=UNAWARE, 1=AWARE, 2=VISIBLE, 3=REACHABLE, 4=CARRIED)
29
+ *
30
+ * Example uses:
31
+ * - sky.setMinimumScope(2) - always visible everywhere
32
+ * - mountain.setMinimumScope(2, ['overlook']) - visible from specific room
33
+ * - butterfly.setMinimumScope(3, ['garden']) - reachable in garden
34
+ */
35
+ minimumScopes = new Map();
36
+ /**
37
+ * Event handlers for this entity
38
+ * Key is the event type (e.g., 'if.event.pushed')
39
+ * Value is the handler function
40
+ */
41
+ on;
42
+ constructor(id, type, params) {
43
+ this.id = id;
44
+ this.type = type;
45
+ this.attributes = params?.attributes ? { ...params.attributes } : {};
46
+ this.relationships = params?.relationships || {};
47
+ this.traits = new Map();
48
+ // Store entityType in attributes when created by WorldModel
49
+ // (params?.attributes will contain it when set by WorldModel.createEntity)
50
+ }
51
+ /**
52
+ * Check if entity has a specific trait
53
+ */
54
+ has(type) {
55
+ return this.traits.has(type);
56
+ }
57
+ /**
58
+ * Get a typed trait from the entity
59
+ */
60
+ get(type) {
61
+ const traitType = typeof type === 'string' ? type :
62
+ typeof type === 'function' ? type.type : type;
63
+ return this.traits.get(traitType);
64
+ }
65
+ /**
66
+ * Alias for get() method - for backwards compatibility
67
+ */
68
+ getTrait(type) {
69
+ return this.get(type);
70
+ }
71
+ /**
72
+ * Add a trait to the entity
73
+ */
74
+ add(trait) {
75
+ if (!(0, trait_1.isTrait)(trait)) {
76
+ throw new Error('Invalid trait: must have a type property');
77
+ }
78
+ // Warn and ignore if trait already exists
79
+ if (this.traits.has(trait.type)) {
80
+ console.warn(`Entity "${this.id}" already has trait: ${trait.type} - ignoring duplicate add`);
81
+ return this;
82
+ }
83
+ this.traits.set(trait.type, trait);
84
+ return this;
85
+ }
86
+ /**
87
+ * Remove a trait from the entity
88
+ */
89
+ remove(type) {
90
+ return this.traits.delete(type);
91
+ }
92
+ /**
93
+ * Check if entity has all specified traits
94
+ */
95
+ hasAll(...types) {
96
+ return types.every(type => this.traits.has(type));
97
+ }
98
+ /**
99
+ * Check if entity has any of the specified traits
100
+ */
101
+ hasAny(...types) {
102
+ return types.some(type => this.traits.has(type));
103
+ }
104
+ /**
105
+ * Get all traits on this entity
106
+ */
107
+ getTraits() {
108
+ return Array.from(this.traits.values());
109
+ }
110
+ /**
111
+ * Get all trait types on this entity
112
+ */
113
+ getTraitTypes() {
114
+ return Array.from(this.traits.keys());
115
+ }
116
+ /**
117
+ * Clear all traits from the entity
118
+ */
119
+ clearTraits() {
120
+ this.traits.clear();
121
+ }
122
+ // ========== Disambiguation Scoring ==========
123
+ /**
124
+ * Get or set author-controlled disambiguation priority for an action.
125
+ *
126
+ * When multiple entities match a command, higher priority entities are
127
+ * preferred for automatic disambiguation.
128
+ *
129
+ * @param actionId - The action ID (e.g., 'if.action.eating')
130
+ * @param priority - Optional priority to set (100 = default, higher = preferred)
131
+ * @returns The current priority for this action (default 100)
132
+ *
133
+ * @example
134
+ * // Make real apple preferred for eating over wax apple
135
+ * realApple.scope('if.action.eating', 150);
136
+ * waxApple.scope('if.action.eating', 50);
137
+ *
138
+ * @example
139
+ * // Get current priority
140
+ * const priority = apple.scope('if.action.eating'); // Returns 150
141
+ */
142
+ scope(actionId, priority) {
143
+ if (priority !== undefined) {
144
+ this.scopePriorities.set(actionId, priority);
145
+ }
146
+ return this.scopePriorities.get(actionId) ?? 100; // Default priority is 100
147
+ }
148
+ /**
149
+ * Clear disambiguation priority for an action (resets to default)
150
+ */
151
+ clearScope(actionId) {
152
+ this.scopePriorities.delete(actionId);
153
+ }
154
+ /**
155
+ * Clear all disambiguation priorities
156
+ */
157
+ clearAllScopes() {
158
+ this.scopePriorities.clear();
159
+ }
160
+ /**
161
+ * Get all scope priorities for serialization
162
+ */
163
+ getScopePriorities() {
164
+ return Object.fromEntries(this.scopePriorities);
165
+ }
166
+ // ========== Minimum Scope (Author-Controlled Scope Additions) ==========
167
+ /**
168
+ * Set minimum scope level for this entity.
169
+ *
170
+ * Makes an entity "in scope" regardless of its spatial location.
171
+ * The scope resolver will return the maximum of the physical scope
172
+ * and the minimum scope (additive only - can raise scope, not lower it).
173
+ *
174
+ * Scope levels (numeric values match ScopeLevel enum in stdlib):
175
+ * - 0: UNAWARE - not in scope
176
+ * - 1: AWARE - can hear/smell but not see
177
+ * - 2: VISIBLE - can see but not reach
178
+ * - 3: REACHABLE - can physically interact
179
+ * - 4: CARRIED - in inventory (rarely used for minimum)
180
+ *
181
+ * @param level The minimum scope level (0-4)
182
+ * @param rooms Optional array of room IDs where this applies. If omitted, applies everywhere.
183
+ *
184
+ * @example
185
+ * // Sky is always visible everywhere
186
+ * sky.setMinimumScope(2);
187
+ *
188
+ * // Mountain visible only from overlook and trail
189
+ * mountain.setMinimumScope(2, ['overlook', 'mountain_trail']);
190
+ *
191
+ * // Butterfly reachable (but may escape) in garden areas
192
+ * butterfly.setMinimumScope(3, ['garden', 'meadow', 'pond']);
193
+ *
194
+ * // Ticking clock audible from adjacent rooms
195
+ * clock.setMinimumScope(1, ['hallway', 'study']);
196
+ */
197
+ setMinimumScope(level, rooms) {
198
+ if (rooms && rooms.length > 0) {
199
+ // Set for specific rooms
200
+ for (const roomId of rooms) {
201
+ this.minimumScopes.set(roomId, level);
202
+ }
203
+ }
204
+ else {
205
+ // Set for all rooms (use '*' as wildcard)
206
+ this.minimumScopes.set('*', level);
207
+ }
208
+ return this;
209
+ }
210
+ /**
211
+ * Get the minimum scope level for this entity in a specific room.
212
+ *
213
+ * @param roomId The room to check (or null to get global minimum)
214
+ * @returns The minimum scope level, or 0 (UNAWARE) if not set
215
+ */
216
+ getMinimumScope(roomId) {
217
+ // Check specific room first
218
+ if (roomId && this.minimumScopes.has(roomId)) {
219
+ return this.minimumScopes.get(roomId);
220
+ }
221
+ // Fall back to global wildcard
222
+ if (this.minimumScopes.has('*')) {
223
+ return this.minimumScopes.get('*');
224
+ }
225
+ // No minimum set
226
+ return 0;
227
+ }
228
+ /**
229
+ * Clear minimum scope for specific rooms or all rooms.
230
+ *
231
+ * @param rooms Optional array of room IDs to clear. If omitted, clears all.
232
+ */
233
+ clearMinimumScope(rooms) {
234
+ if (rooms && rooms.length > 0) {
235
+ for (const roomId of rooms) {
236
+ this.minimumScopes.delete(roomId);
237
+ }
238
+ }
239
+ else {
240
+ this.minimumScopes.clear();
241
+ }
242
+ }
243
+ /**
244
+ * Get all minimum scopes for serialization
245
+ */
246
+ getMinimumScopes() {
247
+ return Object.fromEntries(this.minimumScopes);
248
+ }
249
+ /**
250
+ * Clone this entity with all its traits
251
+ */
252
+ clone(newId) {
253
+ const cloned = new IFEntity(newId, this.type, {
254
+ attributes: JSON.parse(JSON.stringify(this.attributes)),
255
+ relationships: JSON.parse(JSON.stringify(this.relationships)) // Deep copy
256
+ });
257
+ // Clone traits (deep copy)
258
+ for (const [type, trait] of this.traits) {
259
+ cloned.traits.set(type, JSON.parse(JSON.stringify(trait)));
260
+ }
261
+ // Clone scope priorities
262
+ for (const [actionId, priority] of this.scopePriorities) {
263
+ cloned.scopePriorities.set(actionId, priority);
264
+ }
265
+ // Clone minimum scopes
266
+ for (const [roomId, level] of this.minimumScopes) {
267
+ cloned.minimumScopes.set(roomId, level);
268
+ }
269
+ return cloned;
270
+ }
271
+ /**
272
+ * Serialize entity and traits to JSON
273
+ */
274
+ toJSON() {
275
+ const json = {
276
+ id: this.id,
277
+ type: this.type,
278
+ attributes: this.attributes,
279
+ relationships: this.relationships,
280
+ traits: Array.from(this.traits.entries()).map(([_, trait]) => ({
281
+ ...trait
282
+ })),
283
+ // Include version for future compatibility
284
+ version: 3
285
+ };
286
+ // Include scope priorities if any
287
+ if (this.scopePriorities.size > 0) {
288
+ json.scopePriorities = Object.fromEntries(this.scopePriorities);
289
+ }
290
+ // Include minimum scopes if any
291
+ if (this.minimumScopes.size > 0) {
292
+ json.minimumScopes = Object.fromEntries(this.minimumScopes);
293
+ }
294
+ return json;
295
+ }
296
+ /**
297
+ * Create entity from JSON data
298
+ */
299
+ static fromJSON(json) {
300
+ // Determine type - use stored type or try to infer from ID
301
+ let type = json.type || 'object';
302
+ // If loading old format without explicit type, try to infer from attributes
303
+ if (!json.version && json.attributes) {
304
+ if (json.attributes.entityType) {
305
+ type = json.attributes.entityType;
306
+ }
307
+ else if (json.id && json.id.match(/^[a-z][0-9a-z]{2}$/)) {
308
+ // Try to infer type from ID prefix for new format IDs
309
+ const prefix = json.id[0];
310
+ const typeMap = {
311
+ 'r': 'room',
312
+ 'd': 'door',
313
+ 'i': 'item',
314
+ 'a': 'actor',
315
+ 'c': 'container',
316
+ 's': 'supporter',
317
+ 'y': 'scenery',
318
+ 'e': 'exit',
319
+ 'o': 'object'
320
+ };
321
+ type = typeMap[prefix] || 'object';
322
+ }
323
+ }
324
+ const entity = new IFEntity(json.id, type, {
325
+ attributes: json.attributes,
326
+ relationships: json.relationships
327
+ });
328
+ if (json.traits && Array.isArray(json.traits)) {
329
+ for (const traitData of json.traits) {
330
+ entity.traits.set(traitData.type, traitData);
331
+ }
332
+ }
333
+ // Restore scope priorities (version 3+)
334
+ if (json.scopePriorities && typeof json.scopePriorities === 'object') {
335
+ for (const [actionId, priority] of Object.entries(json.scopePriorities)) {
336
+ entity.scopePriorities.set(actionId, priority);
337
+ }
338
+ }
339
+ // Restore minimum scopes (version 3+)
340
+ if (json.minimumScopes && typeof json.minimumScopes === 'object') {
341
+ for (const [roomId, level] of Object.entries(json.minimumScopes)) {
342
+ entity.minimumScopes.set(roomId, level);
343
+ }
344
+ }
345
+ return entity;
346
+ }
347
+ // ========== Convenience Properties ==========
348
+ /**
349
+ * Check if this is a room
350
+ */
351
+ get isRoom() {
352
+ return this.has(trait_types_1.TraitType.ROOM);
353
+ }
354
+ /**
355
+ * Check if this can contain other entities
356
+ */
357
+ get canContain() {
358
+ return this.has(trait_types_1.TraitType.CONTAINER) || this.has(trait_types_1.TraitType.SUPPORTER) ||
359
+ this.has(trait_types_1.TraitType.ROOM) || this.has(trait_types_1.TraitType.ACTOR);
360
+ }
361
+ /**
362
+ * Check if this is takeable (default behavior unless has scenery trait)
363
+ */
364
+ get isTakeable() {
365
+ return !this.has(trait_types_1.TraitType.SCENERY) && !this.has(trait_types_1.TraitType.ROOM) && !this.has(trait_types_1.TraitType.DOOR);
366
+ }
367
+ /**
368
+ * Check if this is fixed in place (has scenery trait)
369
+ */
370
+ get isScenery() {
371
+ return this.has(trait_types_1.TraitType.SCENERY);
372
+ }
373
+ /**
374
+ * Check if this can be opened
375
+ */
376
+ get isOpenable() {
377
+ return this.has(trait_types_1.TraitType.OPENABLE);
378
+ }
379
+ /**
380
+ * Check if this is currently open
381
+ */
382
+ get isOpen() {
383
+ const openable = this.get(trait_types_1.TraitType.OPENABLE);
384
+ return openable ? openable.isOpen : false;
385
+ }
386
+ /**
387
+ * Check if this can be locked
388
+ */
389
+ get isLockable() {
390
+ return this.has(trait_types_1.TraitType.LOCKABLE);
391
+ }
392
+ /**
393
+ * Check if this is currently locked
394
+ */
395
+ get isLocked() {
396
+ const lockable = this.get(trait_types_1.TraitType.LOCKABLE);
397
+ return lockable ? lockable.isLocked : false;
398
+ }
399
+ /**
400
+ * Check if this is a container
401
+ */
402
+ get isContainer() {
403
+ return this.has(trait_types_1.TraitType.CONTAINER);
404
+ }
405
+ /**
406
+ * Check if this is a supporter
407
+ */
408
+ get isSupporter() {
409
+ return this.has(trait_types_1.TraitType.SUPPORTER);
410
+ }
411
+ /**
412
+ * Check if this is a door
413
+ */
414
+ get isDoor() {
415
+ return this.has(trait_types_1.TraitType.DOOR);
416
+ }
417
+ /**
418
+ * Check if this is an actor
419
+ */
420
+ get isActor() {
421
+ return this.has(trait_types_1.TraitType.ACTOR);
422
+ }
423
+ /**
424
+ * Check if this is the player
425
+ */
426
+ get isPlayer() {
427
+ const actor = this.get(trait_types_1.TraitType.ACTOR);
428
+ return actor ? actor.isPlayer : false;
429
+ }
430
+ /**
431
+ * Check if this provides light
432
+ */
433
+ get providesLight() {
434
+ const lightSource = this.get(trait_types_1.TraitType.LIGHT_SOURCE);
435
+ return lightSource ? lightSource.isLit : false;
436
+ }
437
+ /**
438
+ * Check if this is switchable
439
+ */
440
+ get isSwitchable() {
441
+ return this.has(trait_types_1.TraitType.SWITCHABLE);
442
+ }
443
+ /**
444
+ * Check if this can be entered by actors
445
+ * Vehicles are inherently enterable (boats, baskets, etc.)
446
+ */
447
+ get enterable() {
448
+ return this.has(trait_types_1.TraitType.ENTERABLE) || this.has(trait_types_1.TraitType.VEHICLE);
449
+ }
450
+ /**
451
+ * Check if this is switched on
452
+ */
453
+ get isOn() {
454
+ const switchable = this.get(trait_types_1.TraitType.SWITCHABLE);
455
+ return switchable ? switchable.isOn : false;
456
+ }
457
+ /**
458
+ * Get the name of this entity
459
+ */
460
+ get name() {
461
+ // First check for displayName (new system)
462
+ if (this.attributes.displayName) {
463
+ return this.attributes.displayName;
464
+ }
465
+ // Then check identity trait
466
+ const identity = this.get(trait_types_1.TraitType.IDENTITY);
467
+ if (identity && identity.name) {
468
+ return identity.name;
469
+ }
470
+ // Fall back to name attribute
471
+ if (this.attributes.name) {
472
+ return this.attributes.name;
473
+ }
474
+ // Last resort: use ID
475
+ return this.id;
476
+ }
477
+ /**
478
+ * Get the description of this entity
479
+ */
480
+ get description() {
481
+ const identity = this.get(trait_types_1.TraitType.IDENTITY);
482
+ return identity ? identity.description : undefined;
483
+ }
484
+ /**
485
+ * Get the weight of this entity
486
+ */
487
+ get weight() {
488
+ return this.attributes.weight || 0;
489
+ }
490
+ /**
491
+ * Alias for has() method - for backwards compatibility
492
+ */
493
+ hasTrait(type) {
494
+ return this.has(type);
495
+ }
496
+ }
497
+ exports.IFEntity = IFEntity;
498
+ //# sourceMappingURL=if-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"if-entity.js","sourceRoot":"","sources":["../../src/entities/if-entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { IFEntity } from './if-entity';
2
+ export { EntityStore } from './entity-store';
3
+ export { EntityType, isEntityType, getEntityTypePrefix } from './entity-types';
4
+ export type { EntityType as EntityTypeValue } from './entity-types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,YAAY,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // packages/world-model/src/entities/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getEntityTypePrefix = exports.isEntityType = exports.EntityType = exports.EntityStore = exports.IFEntity = void 0;
5
+ var if_entity_1 = require("./if-entity");
6
+ Object.defineProperty(exports, "IFEntity", { enumerable: true, get: function () { return if_entity_1.IFEntity; } });
7
+ var entity_store_1 = require("./entity-store");
8
+ Object.defineProperty(exports, "EntityStore", { enumerable: true, get: function () { return entity_store_1.EntityStore; } });
9
+ var entity_types_1 = require("./entity-types");
10
+ Object.defineProperty(exports, "EntityType", { enumerable: true, get: function () { return entity_types_1.EntityType; } });
11
+ Object.defineProperty(exports, "isEntityType", { enumerable: true, get: function () { return entity_types_1.isEntityType; } });
12
+ Object.defineProperty(exports, "getEntityTypePrefix", { enumerable: true, get: function () { return entity_types_1.getEntityTypePrefix; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;AAE7C,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+CAA+E;AAAtE,0GAAA,UAAU,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,mHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Event handler types for the event system
3
+ *
4
+ * Note: ADR-075 effect-returning handlers are defined in @sharpee/event-processor.
5
+ * This file contains basic event types used by world-model.
6
+ */
7
+ import type { ISemanticEvent } from '@sharpee/core';
8
+ /**
9
+ * Game event that can be handled by entities or the story
10
+ */
11
+ export interface IGameEvent extends ISemanticEvent {
12
+ type: string;
13
+ data: Record<string, any>;
14
+ }
15
+ /**
16
+ * Legacy handler signature for entity event handlers
17
+ * These handlers directly mutate world state and return events.
18
+ *
19
+ * Note: For ADR-075 effect-returning handlers, use StoryEventHandler
20
+ * from @sharpee/event-processor
21
+ */
22
+ export type LegacyEntityEventHandler = (event: IGameEvent, world?: any) => void | ISemanticEvent[];
23
+ /**
24
+ * Simple event handler that only receives the event (no world access)
25
+ * Used for story-level daemons and event listeners
26
+ */
27
+ export type SimpleEventHandler = (event: IGameEvent) => void | ISemanticEvent[];
28
+ /**
29
+ * Collection of event handlers keyed by event type
30
+ */
31
+ export interface IEventHandlers {
32
+ [eventType: string]: LegacyEntityEventHandler | LegacyEntityEventHandler[];
33
+ }
34
+ /**
35
+ * Entity with event handling capability
36
+ */
37
+ export interface IEventCapableEntity {
38
+ /**
39
+ * Event handlers for this entity
40
+ * Key is the event type (e.g., 'if.event.pushed')
41
+ * Value is a handler function or array of handlers
42
+ */
43
+ on?: IEventHandlers;
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,cAAc,EAAE,CAAC;AAEnG;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,cAAc,EAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,GAAG,wBAAwB,EAAE,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,EAAE,CAAC,EAAE,cAAc,CAAC;CACrB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Event handler types for the event system
4
+ *
5
+ * Note: ADR-075 effect-returning handlers are defined in @sharpee/event-processor.
6
+ * This file contains basic event types used by world-model.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,14 @@
1
+ import { WorldModel } from '../world';
2
+ /**
3
+ * Register standard IF event handlers with the world model
4
+ */
5
+ export declare function registerStandardEventHandlers(world: WorldModel): void;
6
+ /**
7
+ * Register event validators
8
+ */
9
+ export declare function registerStandardEventValidators(world: WorldModel): void;
10
+ /**
11
+ * Register event previewers
12
+ */
13
+ export declare function registerStandardEventPreviewers(world: WorldModel): void;
14
+ //# sourceMappingURL=event-handler-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-handler-registration.d.ts","sourceRoot":"","sources":["../../src/examples/event-handler-registration.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAgB,MAAM,UAAU,CAAC;AAKpD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAsFrE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAmCvE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CA6BvE"}