@sharpee/world-model 0.9.66-beta → 0.9.69-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 (589) hide show
  1. package/annotations/index.d.ts +2 -0
  2. package/annotations/index.d.ts.map +1 -0
  3. package/annotations/index.js +18 -0
  4. package/annotations/index.js.map +1 -0
  5. package/annotations/types.d.ts +35 -0
  6. package/annotations/types.d.ts.map +1 -0
  7. package/annotations/types.js +9 -0
  8. package/annotations/types.js.map +1 -0
  9. package/behaviors/attack.d.ts +52 -0
  10. package/behaviors/attack.d.ts.map +1 -0
  11. package/behaviors/attack.js +161 -0
  12. package/behaviors/attack.js.map +1 -0
  13. package/behaviors/behavior.d.ts +67 -0
  14. package/behaviors/behavior.d.ts.map +1 -0
  15. package/behaviors/behavior.js +80 -0
  16. package/behaviors/behavior.js.map +1 -0
  17. package/behaviors/index.d.ts +21 -0
  18. package/behaviors/index.d.ts.map +1 -0
  19. package/behaviors/index.js +39 -0
  20. package/behaviors/index.js.map +1 -0
  21. package/capabilities/action-interceptor.d.ts +169 -0
  22. package/capabilities/action-interceptor.d.ts.map +1 -0
  23. package/capabilities/action-interceptor.js +15 -0
  24. package/capabilities/action-interceptor.js.map +1 -0
  25. package/capabilities/capability-behavior.d.ts +112 -0
  26. package/capabilities/capability-behavior.d.ts.map +1 -0
  27. package/capabilities/capability-behavior.js +9 -0
  28. package/capabilities/capability-behavior.js.map +1 -0
  29. package/capabilities/capability-defaults.d.ts +67 -0
  30. package/capabilities/capability-defaults.d.ts.map +1 -0
  31. package/capabilities/capability-defaults.js +81 -0
  32. package/capabilities/capability-defaults.js.map +1 -0
  33. package/capabilities/capability-helpers.d.ts +76 -0
  34. package/capabilities/capability-helpers.d.ts.map +1 -0
  35. package/capabilities/capability-helpers.js +112 -0
  36. package/capabilities/capability-helpers.js.map +1 -0
  37. package/capabilities/capability-registry.d.ts +115 -0
  38. package/capabilities/capability-registry.d.ts.map +1 -0
  39. package/capabilities/capability-registry.js +136 -0
  40. package/capabilities/capability-registry.js.map +1 -0
  41. package/capabilities/entity-builder.d.ts +79 -0
  42. package/capabilities/entity-builder.d.ts.map +1 -0
  43. package/capabilities/entity-builder.js +116 -0
  44. package/capabilities/entity-builder.js.map +1 -0
  45. package/capabilities/index.d.ts +16 -0
  46. package/capabilities/index.d.ts.map +1 -0
  47. package/capabilities/index.js +56 -0
  48. package/capabilities/index.js.map +1 -0
  49. package/capabilities/interceptor-helpers.d.ts +74 -0
  50. package/capabilities/interceptor-helpers.d.ts.map +1 -0
  51. package/capabilities/interceptor-helpers.js +111 -0
  52. package/capabilities/interceptor-helpers.js.map +1 -0
  53. package/capabilities/interceptor-registry.d.ts +125 -0
  54. package/capabilities/interceptor-registry.d.ts.map +1 -0
  55. package/capabilities/interceptor-registry.js +176 -0
  56. package/capabilities/interceptor-registry.js.map +1 -0
  57. package/capabilities/types.d.ts +35 -0
  58. package/capabilities/types.d.ts.map +1 -0
  59. package/capabilities/types.js +16 -0
  60. package/capabilities/types.js.map +1 -0
  61. package/commands/command-types.d.ts +30 -0
  62. package/commands/command-types.d.ts.map +1 -0
  63. package/commands/command-types.js +6 -0
  64. package/commands/command-types.js.map +1 -0
  65. package/commands/index.d.ts +7 -0
  66. package/commands/index.d.ts.map +1 -0
  67. package/commands/index.js +23 -0
  68. package/commands/index.js.map +1 -0
  69. package/commands/parsed-command.d.ts +204 -0
  70. package/commands/parsed-command.d.ts.map +1 -0
  71. package/commands/parsed-command.js +25 -0
  72. package/commands/parsed-command.js.map +1 -0
  73. package/commands/validated-command.d.ts +52 -0
  74. package/commands/validated-command.d.ts.map +1 -0
  75. package/commands/validated-command.js +8 -0
  76. package/commands/validated-command.js.map +1 -0
  77. package/constants/action-failures.d.ts +54 -0
  78. package/constants/action-failures.d.ts.map +1 -0
  79. package/constants/action-failures.js +68 -0
  80. package/constants/action-failures.js.map +1 -0
  81. package/constants/directions.d.ts +32 -0
  82. package/constants/directions.d.ts.map +1 -0
  83. package/constants/directions.js +53 -0
  84. package/constants/directions.js.map +1 -0
  85. package/constants/if-events.d.ts +5 -0
  86. package/constants/if-events.d.ts.map +1 -0
  87. package/constants/if-events.js +10 -0
  88. package/constants/if-events.js.map +1 -0
  89. package/constants/index.d.ts +9 -0
  90. package/constants/index.d.ts.map +1 -0
  91. package/constants/index.js +25 -0
  92. package/constants/index.js.map +1 -0
  93. package/entities/entity-store.d.ts +66 -0
  94. package/entities/entity-store.d.ts.map +1 -0
  95. package/entities/entity-store.js +116 -0
  96. package/entities/entity-store.js.map +1 -0
  97. package/entities/entity-types.d.ts +40 -0
  98. package/entities/entity-types.d.ts.map +1 -0
  99. package/entities/entity-types.js +56 -0
  100. package/entities/entity-types.js.map +1 -0
  101. package/entities/if-entity.d.ts +314 -0
  102. package/entities/if-entity.d.ts.map +1 -0
  103. package/entities/if-entity.js +621 -0
  104. package/entities/if-entity.js.map +1 -0
  105. package/entities/index.d.ts +5 -0
  106. package/entities/index.d.ts.map +1 -0
  107. package/entities/index.js +13 -0
  108. package/entities/index.js.map +1 -0
  109. package/events/types.d.ts +45 -0
  110. package/events/types.d.ts.map +1 -0
  111. package/events/types.js +9 -0
  112. package/events/types.js.map +1 -0
  113. package/examples/event-handler-registration.d.ts +14 -0
  114. package/examples/event-handler-registration.d.ts.map +1 -0
  115. package/examples/event-handler-registration.js +158 -0
  116. package/examples/event-handler-registration.js.map +1 -0
  117. package/extensions/base-extension.d.ts +69 -0
  118. package/extensions/base-extension.d.ts.map +1 -0
  119. package/extensions/base-extension.js +83 -0
  120. package/extensions/base-extension.js.map +1 -0
  121. package/extensions/index.d.ts +11 -0
  122. package/extensions/index.d.ts.map +1 -0
  123. package/extensions/index.js +39 -0
  124. package/extensions/index.js.map +1 -0
  125. package/extensions/loader.d.ts +52 -0
  126. package/extensions/loader.d.ts.map +1 -0
  127. package/extensions/loader.js +177 -0
  128. package/extensions/loader.js.map +1 -0
  129. package/extensions/manager.d.ts +68 -0
  130. package/extensions/manager.d.ts.map +1 -0
  131. package/extensions/manager.js +164 -0
  132. package/extensions/manager.js.map +1 -0
  133. package/extensions/registry.d.ts +100 -0
  134. package/extensions/registry.d.ts.map +1 -0
  135. package/extensions/registry.js +193 -0
  136. package/extensions/registry.js.map +1 -0
  137. package/extensions/types.d.ts +226 -0
  138. package/extensions/types.d.ts.map +1 -0
  139. package/extensions/types.js +28 -0
  140. package/extensions/types.js.map +1 -0
  141. package/index.d.ts +41 -0
  142. package/index.d.ts.map +1 -0
  143. package/index.js +71 -0
  144. package/index.js.map +1 -0
  145. package/interfaces/command-executor.d.ts +17 -0
  146. package/interfaces/command-executor.d.ts.map +1 -0
  147. package/interfaces/command-executor.js +6 -0
  148. package/interfaces/command-executor.js.map +1 -0
  149. package/interfaces/command-processor.d.ts +17 -0
  150. package/interfaces/command-processor.d.ts.map +1 -0
  151. package/interfaces/command-processor.js +6 -0
  152. package/interfaces/command-processor.js.map +1 -0
  153. package/interfaces/command-validator.d.ts +17 -0
  154. package/interfaces/command-validator.d.ts.map +1 -0
  155. package/interfaces/command-validator.js +6 -0
  156. package/interfaces/command-validator.js.map +1 -0
  157. package/interfaces/index.d.ts +8 -0
  158. package/interfaces/index.d.ts.map +1 -0
  159. package/interfaces/index.js +24 -0
  160. package/interfaces/index.js.map +1 -0
  161. package/interfaces/language-provider.d.ts +86 -0
  162. package/interfaces/language-provider.d.ts.map +1 -0
  163. package/interfaces/language-provider.js +14 -0
  164. package/interfaces/language-provider.js.map +1 -0
  165. package/interfaces/parser.d.ts +16 -0
  166. package/interfaces/parser.d.ts.map +1 -0
  167. package/interfaces/parser.js +6 -0
  168. package/interfaces/parser.js.map +1 -0
  169. package/package.json +1 -16
  170. package/scope/index.d.ts +8 -0
  171. package/scope/index.d.ts.map +1 -0
  172. package/scope/index.js +24 -0
  173. package/scope/index.js.map +1 -0
  174. package/scope/scope-evaluator.d.ts +58 -0
  175. package/scope/scope-evaluator.d.ts.map +1 -0
  176. package/scope/scope-evaluator.js +207 -0
  177. package/scope/scope-evaluator.js.map +1 -0
  178. package/scope/scope-registry.d.ts +59 -0
  179. package/scope/scope-registry.d.ts.map +1 -0
  180. package/scope/scope-registry.js +182 -0
  181. package/scope/scope-registry.js.map +1 -0
  182. package/scope/scope-rule.d.ts +86 -0
  183. package/scope/scope-rule.d.ts.map +1 -0
  184. package/scope/scope-rule.js +7 -0
  185. package/scope/scope-rule.js.map +1 -0
  186. package/services/ScopeService.d.ts +8 -0
  187. package/services/ScopeService.d.ts.map +1 -0
  188. package/services/ScopeService.js +19 -0
  189. package/services/ScopeService.js.map +1 -0
  190. package/services/index.d.ts +2 -0
  191. package/services/index.d.ts.map +1 -0
  192. package/services/index.js +6 -0
  193. package/services/index.js.map +1 -0
  194. package/test-structure.d.ts +3 -0
  195. package/test-structure.d.ts.map +1 -0
  196. package/test-structure.js +26 -0
  197. package/test-structure.js.map +1 -0
  198. package/traits/actor/actorBehavior.d.ts +121 -0
  199. package/traits/actor/actorBehavior.d.ts.map +1 -0
  200. package/traits/actor/actorBehavior.js +288 -0
  201. package/traits/actor/actorBehavior.js.map +1 -0
  202. package/traits/actor/actorTrait.d.ts +158 -0
  203. package/traits/actor/actorTrait.d.ts.map +1 -0
  204. package/traits/actor/actorTrait.js +152 -0
  205. package/traits/actor/actorTrait.js.map +1 -0
  206. package/traits/actor/index.d.ts +3 -0
  207. package/traits/actor/index.d.ts.map +1 -0
  208. package/traits/actor/index.js +11 -0
  209. package/traits/actor/index.js.map +1 -0
  210. package/traits/all-traits.d.ts +95 -0
  211. package/traits/all-traits.d.ts.map +1 -0
  212. package/traits/all-traits.js +178 -0
  213. package/traits/all-traits.js.map +1 -0
  214. package/traits/attached/attachedTrait.d.ts +61 -0
  215. package/traits/attached/attachedTrait.d.ts.map +1 -0
  216. package/traits/attached/attachedTrait.js +36 -0
  217. package/traits/attached/attachedTrait.js.map +1 -0
  218. package/traits/attached/index.d.ts +2 -0
  219. package/traits/attached/index.d.ts.map +1 -0
  220. package/traits/attached/index.js +18 -0
  221. package/traits/attached/index.js.map +1 -0
  222. package/traits/breakable/breakableBehavior.d.ts +43 -0
  223. package/traits/breakable/breakableBehavior.d.ts.map +1 -0
  224. package/traits/breakable/breakableBehavior.js +70 -0
  225. package/traits/breakable/breakableBehavior.js.map +1 -0
  226. package/traits/breakable/breakableTrait.d.ts +22 -0
  227. package/traits/breakable/breakableTrait.d.ts.map +1 -0
  228. package/traits/breakable/breakableTrait.js +25 -0
  229. package/traits/breakable/breakableTrait.js.map +1 -0
  230. package/traits/breakable/index.d.ts +3 -0
  231. package/traits/breakable/index.d.ts.map +1 -0
  232. package/traits/breakable/index.js +8 -0
  233. package/traits/breakable/index.js.map +1 -0
  234. package/traits/button/buttonTrait.d.ts +53 -0
  235. package/traits/button/buttonTrait.d.ts.map +1 -0
  236. package/traits/button/buttonTrait.js +36 -0
  237. package/traits/button/buttonTrait.js.map +1 -0
  238. package/traits/button/index.d.ts +2 -0
  239. package/traits/button/index.d.ts.map +1 -0
  240. package/traits/button/index.js +18 -0
  241. package/traits/button/index.js.map +1 -0
  242. package/traits/climbable/climbableBehavior.d.ts +37 -0
  243. package/traits/climbable/climbableBehavior.d.ts.map +1 -0
  244. package/traits/climbable/climbableBehavior.js +70 -0
  245. package/traits/climbable/climbableBehavior.js.map +1 -0
  246. package/traits/climbable/climbableTrait.d.ts +31 -0
  247. package/traits/climbable/climbableTrait.d.ts.map +1 -0
  248. package/traits/climbable/climbableTrait.js +47 -0
  249. package/traits/climbable/climbableTrait.js.map +1 -0
  250. package/traits/climbable/index.d.ts +6 -0
  251. package/traits/climbable/index.d.ts.map +1 -0
  252. package/traits/climbable/index.js +22 -0
  253. package/traits/climbable/index.js.map +1 -0
  254. package/traits/clothing/clothingTrait.d.ts +58 -0
  255. package/traits/clothing/clothingTrait.d.ts.map +1 -0
  256. package/traits/clothing/clothingTrait.js +78 -0
  257. package/traits/clothing/clothingTrait.js.map +1 -0
  258. package/traits/clothing/index.d.ts +2 -0
  259. package/traits/clothing/index.d.ts.map +1 -0
  260. package/traits/clothing/index.js +19 -0
  261. package/traits/clothing/index.js.map +1 -0
  262. package/traits/combatant/combatantBehavior.d.ts +70 -0
  263. package/traits/combatant/combatantBehavior.d.ts.map +1 -0
  264. package/traits/combatant/combatantBehavior.js +155 -0
  265. package/traits/combatant/combatantBehavior.js.map +1 -0
  266. package/traits/combatant/combatantTrait.d.ts +98 -0
  267. package/traits/combatant/combatantTrait.d.ts.map +1 -0
  268. package/traits/combatant/combatantTrait.js +122 -0
  269. package/traits/combatant/combatantTrait.js.map +1 -0
  270. package/traits/combatant/index.d.ts +3 -0
  271. package/traits/combatant/index.d.ts.map +1 -0
  272. package/traits/combatant/index.js +8 -0
  273. package/traits/combatant/index.js.map +1 -0
  274. package/traits/container/container-utils.d.ts +39 -0
  275. package/traits/container/container-utils.d.ts.map +1 -0
  276. package/traits/container/container-utils.js +72 -0
  277. package/traits/container/container-utils.js.map +1 -0
  278. package/traits/container/containerBehavior.d.ts +94 -0
  279. package/traits/container/containerBehavior.d.ts.map +1 -0
  280. package/traits/container/containerBehavior.js +256 -0
  281. package/traits/container/containerBehavior.js.map +1 -0
  282. package/traits/container/containerTrait.d.ts +30 -0
  283. package/traits/container/containerTrait.d.ts.map +1 -0
  284. package/traits/container/containerTrait.js +45 -0
  285. package/traits/container/containerTrait.js.map +1 -0
  286. package/traits/container/index.d.ts +4 -0
  287. package/traits/container/index.d.ts.map +1 -0
  288. package/traits/container/index.js +14 -0
  289. package/traits/container/index.js.map +1 -0
  290. package/traits/destructible/destructibleBehavior.d.ts +57 -0
  291. package/traits/destructible/destructibleBehavior.d.ts.map +1 -0
  292. package/traits/destructible/destructibleBehavior.js +145 -0
  293. package/traits/destructible/destructibleBehavior.js.map +1 -0
  294. package/traits/destructible/destructibleTrait.d.ts +49 -0
  295. package/traits/destructible/destructibleTrait.d.ts.map +1 -0
  296. package/traits/destructible/destructibleTrait.js +43 -0
  297. package/traits/destructible/destructibleTrait.js.map +1 -0
  298. package/traits/destructible/index.d.ts +3 -0
  299. package/traits/destructible/index.d.ts.map +1 -0
  300. package/traits/destructible/index.js +8 -0
  301. package/traits/destructible/index.js.map +1 -0
  302. package/traits/door/doorBehavior.d.ts +42 -0
  303. package/traits/door/doorBehavior.d.ts.map +1 -0
  304. package/traits/door/doorBehavior.js +76 -0
  305. package/traits/door/doorBehavior.js.map +1 -0
  306. package/traits/door/doorTrait.d.ts +19 -0
  307. package/traits/door/doorTrait.d.ts.map +1 -0
  308. package/traits/door/doorTrait.js +33 -0
  309. package/traits/door/doorTrait.js.map +1 -0
  310. package/traits/door/index.d.ts +3 -0
  311. package/traits/door/index.d.ts.map +1 -0
  312. package/traits/door/index.js +9 -0
  313. package/traits/door/index.js.map +1 -0
  314. package/traits/edible/edibleBehavior.d.ts +63 -0
  315. package/traits/edible/edibleBehavior.d.ts.map +1 -0
  316. package/traits/edible/edibleBehavior.js +157 -0
  317. package/traits/edible/edibleBehavior.js.map +1 -0
  318. package/traits/edible/edibleTrait.d.ts +57 -0
  319. package/traits/edible/edibleTrait.d.ts.map +1 -0
  320. package/traits/edible/edibleTrait.js +51 -0
  321. package/traits/edible/edibleTrait.js.map +1 -0
  322. package/traits/edible/index.d.ts +3 -0
  323. package/traits/edible/index.d.ts.map +1 -0
  324. package/traits/edible/index.js +20 -0
  325. package/traits/edible/index.js.map +1 -0
  326. package/traits/enterable/enterableTrait.d.ts +33 -0
  327. package/traits/enterable/enterableTrait.d.ts.map +1 -0
  328. package/traits/enterable/enterableTrait.js +38 -0
  329. package/traits/enterable/enterableTrait.js.map +1 -0
  330. package/traits/enterable/index.d.ts +5 -0
  331. package/traits/enterable/index.d.ts.map +1 -0
  332. package/traits/enterable/index.js +21 -0
  333. package/traits/enterable/index.js.map +1 -0
  334. package/traits/equipped/equippedTrait.d.ts +46 -0
  335. package/traits/equipped/equippedTrait.d.ts.map +1 -0
  336. package/traits/equipped/equippedTrait.js +34 -0
  337. package/traits/equipped/equippedTrait.js.map +1 -0
  338. package/traits/equipped/index.d.ts +2 -0
  339. package/traits/equipped/index.d.ts.map +1 -0
  340. package/traits/equipped/index.js +6 -0
  341. package/traits/equipped/index.js.map +1 -0
  342. package/traits/exit/exitBehavior.d.ts +51 -0
  343. package/traits/exit/exitBehavior.d.ts.map +1 -0
  344. package/traits/exit/exitBehavior.js +231 -0
  345. package/traits/exit/exitBehavior.js.map +1 -0
  346. package/traits/exit/exitTrait.d.ts +41 -0
  347. package/traits/exit/exitTrait.d.ts.map +1 -0
  348. package/traits/exit/exitTrait.js +75 -0
  349. package/traits/exit/exitTrait.js.map +1 -0
  350. package/traits/exit/index.d.ts +3 -0
  351. package/traits/exit/index.d.ts.map +1 -0
  352. package/traits/exit/index.js +9 -0
  353. package/traits/exit/index.js.map +1 -0
  354. package/traits/identity/identityBehavior.d.ts +64 -0
  355. package/traits/identity/identityBehavior.d.ts.map +1 -0
  356. package/traits/identity/identityBehavior.js +154 -0
  357. package/traits/identity/identityBehavior.js.map +1 -0
  358. package/traits/identity/identityTrait.d.ts +70 -0
  359. package/traits/identity/identityTrait.d.ts.map +1 -0
  360. package/traits/identity/identityTrait.js +79 -0
  361. package/traits/identity/identityTrait.js.map +1 -0
  362. package/traits/identity/index.d.ts +3 -0
  363. package/traits/identity/index.d.ts.map +1 -0
  364. package/traits/identity/index.js +20 -0
  365. package/traits/identity/index.js.map +1 -0
  366. package/traits/implementations.d.ts +52 -0
  367. package/traits/implementations.d.ts.map +1 -0
  368. package/traits/implementations.js +150 -0
  369. package/traits/implementations.js.map +1 -0
  370. package/traits/index.d.ts +37 -0
  371. package/traits/index.d.ts.map +1 -0
  372. package/traits/index.js +64 -0
  373. package/traits/index.js.map +1 -0
  374. package/traits/light-source/index.d.ts +3 -0
  375. package/traits/light-source/index.d.ts.map +1 -0
  376. package/traits/light-source/index.js +9 -0
  377. package/traits/light-source/index.js.map +1 -0
  378. package/traits/light-source/lightSourceBehavior.d.ts +57 -0
  379. package/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
  380. package/traits/light-source/lightSourceBehavior.js +135 -0
  381. package/traits/light-source/lightSourceBehavior.js.map +1 -0
  382. package/traits/light-source/lightSourceTrait.d.ts +28 -0
  383. package/traits/light-source/lightSourceTrait.d.ts.map +1 -0
  384. package/traits/light-source/lightSourceTrait.js +37 -0
  385. package/traits/light-source/lightSourceTrait.js.map +1 -0
  386. package/traits/lockable/index.d.ts +3 -0
  387. package/traits/lockable/index.d.ts.map +1 -0
  388. package/traits/lockable/index.js +20 -0
  389. package/traits/lockable/index.js.map +1 -0
  390. package/traits/lockable/lockableBehavior.d.ts +88 -0
  391. package/traits/lockable/lockableBehavior.d.ts.map +1 -0
  392. package/traits/lockable/lockableBehavior.js +196 -0
  393. package/traits/lockable/lockableBehavior.js.map +1 -0
  394. package/traits/lockable/lockableTrait.d.ts +59 -0
  395. package/traits/lockable/lockableTrait.d.ts.map +1 -0
  396. package/traits/lockable/lockableTrait.js +50 -0
  397. package/traits/lockable/lockableTrait.js.map +1 -0
  398. package/traits/moveable-scenery/index.d.ts +2 -0
  399. package/traits/moveable-scenery/index.d.ts.map +1 -0
  400. package/traits/moveable-scenery/index.js +18 -0
  401. package/traits/moveable-scenery/index.js.map +1 -0
  402. package/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
  403. package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
  404. package/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
  405. package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
  406. package/traits/npc/index.d.ts +5 -0
  407. package/traits/npc/index.d.ts.map +1 -0
  408. package/traits/npc/index.js +9 -0
  409. package/traits/npc/index.js.map +1 -0
  410. package/traits/npc/npcTrait.d.ts +128 -0
  411. package/traits/npc/npcTrait.d.ts.map +1 -0
  412. package/traits/npc/npcTrait.js +180 -0
  413. package/traits/npc/npcTrait.js.map +1 -0
  414. package/traits/openable/index.d.ts +3 -0
  415. package/traits/openable/index.d.ts.map +1 -0
  416. package/traits/openable/index.js +20 -0
  417. package/traits/openable/index.js.map +1 -0
  418. package/traits/openable/openableBehavior.d.ts +64 -0
  419. package/traits/openable/openableBehavior.d.ts.map +1 -0
  420. package/traits/openable/openableBehavior.js +109 -0
  421. package/traits/openable/openableBehavior.js.map +1 -0
  422. package/traits/openable/openableTrait.d.ts +46 -0
  423. package/traits/openable/openableTrait.d.ts.map +1 -0
  424. package/traits/openable/openableTrait.js +42 -0
  425. package/traits/openable/openableTrait.js.map +1 -0
  426. package/traits/pullable/index.d.ts +2 -0
  427. package/traits/pullable/index.d.ts.map +1 -0
  428. package/traits/pullable/index.js +18 -0
  429. package/traits/pullable/index.js.map +1 -0
  430. package/traits/pullable/pullableTrait.d.ts +81 -0
  431. package/traits/pullable/pullableTrait.d.ts.map +1 -0
  432. package/traits/pullable/pullableTrait.js +44 -0
  433. package/traits/pullable/pullableTrait.js.map +1 -0
  434. package/traits/pushable/index.d.ts +2 -0
  435. package/traits/pushable/index.d.ts.map +1 -0
  436. package/traits/pushable/index.js +18 -0
  437. package/traits/pushable/index.js.map +1 -0
  438. package/traits/pushable/pushableTrait.d.ts +81 -0
  439. package/traits/pushable/pushableTrait.d.ts.map +1 -0
  440. package/traits/pushable/pushableTrait.js +44 -0
  441. package/traits/pushable/pushableTrait.js.map +1 -0
  442. package/traits/readable/index.d.ts +3 -0
  443. package/traits/readable/index.d.ts.map +1 -0
  444. package/traits/readable/index.js +9 -0
  445. package/traits/readable/index.js.map +1 -0
  446. package/traits/readable/readableBehavior.d.ts +42 -0
  447. package/traits/readable/readableBehavior.d.ts.map +1 -0
  448. package/traits/readable/readableBehavior.js +174 -0
  449. package/traits/readable/readableBehavior.js.map +1 -0
  450. package/traits/readable/readableTrait.d.ts +37 -0
  451. package/traits/readable/readableTrait.d.ts.map +1 -0
  452. package/traits/readable/readableTrait.js +51 -0
  453. package/traits/readable/readableTrait.js.map +1 -0
  454. package/traits/register-all.d.ts +10 -0
  455. package/traits/register-all.d.ts.map +1 -0
  456. package/traits/register-all.js +19 -0
  457. package/traits/register-all.js.map +1 -0
  458. package/traits/room/index.d.ts +9 -0
  459. package/traits/room/index.d.ts.map +1 -0
  460. package/traits/room/index.js +14 -0
  461. package/traits/room/index.js.map +1 -0
  462. package/traits/room/roomBehavior.d.ts +87 -0
  463. package/traits/room/roomBehavior.d.ts.map +1 -0
  464. package/traits/room/roomBehavior.js +232 -0
  465. package/traits/room/roomBehavior.js.map +1 -0
  466. package/traits/room/roomTrait.d.ts +101 -0
  467. package/traits/room/roomTrait.d.ts.map +1 -0
  468. package/traits/room/roomTrait.js +59 -0
  469. package/traits/room/roomTrait.js.map +1 -0
  470. package/traits/scenery/index.d.ts +3 -0
  471. package/traits/scenery/index.d.ts.map +1 -0
  472. package/traits/scenery/index.js +9 -0
  473. package/traits/scenery/index.js.map +1 -0
  474. package/traits/scenery/sceneryBehavior.d.ts +21 -0
  475. package/traits/scenery/sceneryBehavior.d.ts.map +1 -0
  476. package/traits/scenery/sceneryBehavior.js +42 -0
  477. package/traits/scenery/sceneryBehavior.js.map +1 -0
  478. package/traits/scenery/sceneryTrait.d.ts +30 -0
  479. package/traits/scenery/sceneryTrait.d.ts.map +1 -0
  480. package/traits/scenery/sceneryTrait.js +39 -0
  481. package/traits/scenery/sceneryTrait.js.map +1 -0
  482. package/traits/story-info/index.d.ts +2 -0
  483. package/traits/story-info/index.d.ts.map +1 -0
  484. package/traits/story-info/index.js +6 -0
  485. package/traits/story-info/index.js.map +1 -0
  486. package/traits/story-info/storyInfoTrait.d.ts +22 -0
  487. package/traits/story-info/storyInfoTrait.d.ts.map +1 -0
  488. package/traits/story-info/storyInfoTrait.js +30 -0
  489. package/traits/story-info/storyInfoTrait.js.map +1 -0
  490. package/traits/supporter/index.d.ts +3 -0
  491. package/traits/supporter/index.d.ts.map +1 -0
  492. package/traits/supporter/index.js +9 -0
  493. package/traits/supporter/index.js.map +1 -0
  494. package/traits/supporter/supporterBehavior.d.ts +83 -0
  495. package/traits/supporter/supporterBehavior.d.ts.map +1 -0
  496. package/traits/supporter/supporterBehavior.js +210 -0
  497. package/traits/supporter/supporterBehavior.js.map +1 -0
  498. package/traits/supporter/supporterTrait.d.ts +26 -0
  499. package/traits/supporter/supporterTrait.d.ts.map +1 -0
  500. package/traits/supporter/supporterTrait.js +30 -0
  501. package/traits/supporter/supporterTrait.js.map +1 -0
  502. package/traits/switchable/index.d.ts +3 -0
  503. package/traits/switchable/index.d.ts.map +1 -0
  504. package/traits/switchable/index.js +20 -0
  505. package/traits/switchable/index.js.map +1 -0
  506. package/traits/switchable/switchableBehavior.d.ts +73 -0
  507. package/traits/switchable/switchableBehavior.d.ts.map +1 -0
  508. package/traits/switchable/switchableBehavior.js +191 -0
  509. package/traits/switchable/switchableBehavior.js.map +1 -0
  510. package/traits/switchable/switchableTrait.d.ts +61 -0
  511. package/traits/switchable/switchableTrait.d.ts.map +1 -0
  512. package/traits/switchable/switchableTrait.js +52 -0
  513. package/traits/switchable/switchableTrait.js.map +1 -0
  514. package/traits/trait-types.d.ts +82 -0
  515. package/traits/trait-types.d.ts.map +1 -0
  516. package/traits/trait-types.js +150 -0
  517. package/traits/trait-types.js.map +1 -0
  518. package/traits/trait.d.ts +44 -0
  519. package/traits/trait.d.ts.map +1 -0
  520. package/traits/trait.js +42 -0
  521. package/traits/trait.js.map +1 -0
  522. package/traits/vehicle/index.d.ts +6 -0
  523. package/traits/vehicle/index.d.ts.map +1 -0
  524. package/traits/vehicle/index.js +22 -0
  525. package/traits/vehicle/index.js.map +1 -0
  526. package/traits/vehicle/vehicleBehavior.d.ts +62 -0
  527. package/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
  528. package/traits/vehicle/vehicleBehavior.js +145 -0
  529. package/traits/vehicle/vehicleBehavior.js.map +1 -0
  530. package/traits/vehicle/vehicleTrait.d.ts +77 -0
  531. package/traits/vehicle/vehicleTrait.d.ts.map +1 -0
  532. package/traits/vehicle/vehicleTrait.js +92 -0
  533. package/traits/vehicle/vehicleTrait.js.map +1 -0
  534. package/traits/weapon/index.d.ts +3 -0
  535. package/traits/weapon/index.d.ts.map +1 -0
  536. package/traits/weapon/index.js +8 -0
  537. package/traits/weapon/index.js.map +1 -0
  538. package/traits/weapon/weaponBehavior.d.ts +47 -0
  539. package/traits/weapon/weaponBehavior.d.ts.map +1 -0
  540. package/traits/weapon/weaponBehavior.js +106 -0
  541. package/traits/weapon/weaponBehavior.js.map +1 -0
  542. package/traits/weapon/weaponTrait.d.ts +67 -0
  543. package/traits/weapon/weaponTrait.d.ts.map +1 -0
  544. package/traits/weapon/weaponTrait.js +60 -0
  545. package/traits/weapon/weaponTrait.js.map +1 -0
  546. package/traits/wearable/index.d.ts +3 -0
  547. package/traits/wearable/index.d.ts.map +1 -0
  548. package/traits/wearable/index.js +20 -0
  549. package/traits/wearable/index.js.map +1 -0
  550. package/traits/wearable/wearableBehavior.d.ts +64 -0
  551. package/traits/wearable/wearableBehavior.d.ts.map +1 -0
  552. package/traits/wearable/wearableBehavior.js +142 -0
  553. package/traits/wearable/wearableBehavior.js.map +1 -0
  554. package/traits/wearable/wearableTrait.d.ts +54 -0
  555. package/traits/wearable/wearableTrait.d.ts.map +1 -0
  556. package/traits/wearable/wearableTrait.js +53 -0
  557. package/traits/wearable/wearableTrait.js.map +1 -0
  558. package/utils/event-utils.d.ts +30 -0
  559. package/utils/event-utils.d.ts.map +1 -0
  560. package/utils/event-utils.js +33 -0
  561. package/utils/event-utils.js.map +1 -0
  562. package/world/AuthorModel.d.ts +151 -0
  563. package/world/AuthorModel.d.ts.map +1 -0
  564. package/world/AuthorModel.js +416 -0
  565. package/world/AuthorModel.js.map +1 -0
  566. package/world/SharedDataStore.d.ts +24 -0
  567. package/world/SharedDataStore.d.ts.map +1 -0
  568. package/world/SharedDataStore.js +50 -0
  569. package/world/SharedDataStore.js.map +1 -0
  570. package/world/SpatialIndex.d.ts +16 -0
  571. package/world/SpatialIndex.d.ts.map +1 -0
  572. package/world/SpatialIndex.js +117 -0
  573. package/world/SpatialIndex.js.map +1 -0
  574. package/world/VisibilityBehavior.d.ts +83 -0
  575. package/world/VisibilityBehavior.d.ts.map +1 -0
  576. package/world/VisibilityBehavior.js +484 -0
  577. package/world/VisibilityBehavior.js.map +1 -0
  578. package/world/WorldModel.d.ts +301 -0
  579. package/world/WorldModel.d.ts.map +1 -0
  580. package/world/WorldModel.js +1085 -0
  581. package/world/WorldModel.js.map +1 -0
  582. package/world/capabilities.d.ts +36 -0
  583. package/world/capabilities.d.ts.map +1 -0
  584. package/world/capabilities.js +18 -0
  585. package/world/capabilities.js.map +1 -0
  586. package/world/index.d.ts +7 -0
  587. package/world/index.d.ts.map +1 -0
  588. package/world/index.js +21 -0
  589. package/world/index.js.map +1 -0
@@ -0,0 +1,621 @@
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
+ * Presentation metadata annotations (ADR-124).
38
+ * Keyed by kind (e.g., 'illustration', 'portrait', 'voice').
39
+ * Multiple annotations per kind are supported.
40
+ */
41
+ annotations = new Map();
42
+ /**
43
+ * Event handlers for this entity
44
+ * Key is the event type (e.g., 'if.event.pushed')
45
+ * Value is the handler function
46
+ */
47
+ on;
48
+ constructor(id, type, params) {
49
+ this.id = id;
50
+ this.type = type;
51
+ this.attributes = params?.attributes ? { ...params.attributes } : {};
52
+ this.relationships = params?.relationships || {};
53
+ this.traits = new Map();
54
+ // Store entityType in attributes when created by WorldModel
55
+ // (params?.attributes will contain it when set by WorldModel.createEntity)
56
+ }
57
+ /**
58
+ * Check if entity has a specific trait
59
+ */
60
+ has(type) {
61
+ return this.traits.has(type);
62
+ }
63
+ /**
64
+ * Get a typed trait from the entity
65
+ */
66
+ get(type) {
67
+ const traitType = typeof type === 'string' ? type :
68
+ typeof type === 'function' ? type.type : type;
69
+ return this.traits.get(traitType);
70
+ }
71
+ /**
72
+ * Alias for get() method - for backwards compatibility
73
+ */
74
+ getTrait(type) {
75
+ return this.get(type);
76
+ }
77
+ /**
78
+ * Add a trait to the entity
79
+ */
80
+ add(trait) {
81
+ if (!(0, trait_1.isTrait)(trait)) {
82
+ throw new Error('Invalid trait: must have a type property');
83
+ }
84
+ // Warn and ignore if trait already exists
85
+ if (this.traits.has(trait.type)) {
86
+ console.warn(`Entity "${this.id}" already has trait: ${trait.type} - ignoring duplicate add`);
87
+ return this;
88
+ }
89
+ this.traits.set(trait.type, trait);
90
+ return this;
91
+ }
92
+ /**
93
+ * Remove a trait from the entity
94
+ */
95
+ remove(type) {
96
+ return this.traits.delete(type);
97
+ }
98
+ /**
99
+ * Check if entity has all specified traits
100
+ */
101
+ hasAll(...types) {
102
+ return types.every(type => this.traits.has(type));
103
+ }
104
+ /**
105
+ * Check if entity has any of the specified traits
106
+ */
107
+ hasAny(...types) {
108
+ return types.some(type => this.traits.has(type));
109
+ }
110
+ /**
111
+ * Get all traits on this entity
112
+ */
113
+ getTraits() {
114
+ return Array.from(this.traits.values());
115
+ }
116
+ /**
117
+ * Get all trait types on this entity
118
+ */
119
+ getTraitTypes() {
120
+ return Array.from(this.traits.keys());
121
+ }
122
+ /**
123
+ * Clear all traits from the entity
124
+ */
125
+ clearTraits() {
126
+ this.traits.clear();
127
+ }
128
+ // ========== Disambiguation Scoring ==========
129
+ /**
130
+ * Get or set author-controlled disambiguation priority for an action.
131
+ *
132
+ * When multiple entities match a command, higher priority entities are
133
+ * preferred for automatic disambiguation.
134
+ *
135
+ * @param actionId - The action ID (e.g., 'if.action.eating')
136
+ * @param priority - Optional priority to set (100 = default, higher = preferred)
137
+ * @returns The current priority for this action (default 100)
138
+ *
139
+ * @example
140
+ * // Make real apple preferred for eating over wax apple
141
+ * realApple.scope('if.action.eating', 150);
142
+ * waxApple.scope('if.action.eating', 50);
143
+ *
144
+ * @example
145
+ * // Get current priority
146
+ * const priority = apple.scope('if.action.eating'); // Returns 150
147
+ */
148
+ scope(actionId, priority) {
149
+ if (priority !== undefined) {
150
+ this.scopePriorities.set(actionId, priority);
151
+ }
152
+ return this.scopePriorities.get(actionId) ?? 100; // Default priority is 100
153
+ }
154
+ /**
155
+ * Clear disambiguation priority for an action (resets to default)
156
+ */
157
+ clearScope(actionId) {
158
+ this.scopePriorities.delete(actionId);
159
+ }
160
+ /**
161
+ * Clear all disambiguation priorities
162
+ */
163
+ clearAllScopes() {
164
+ this.scopePriorities.clear();
165
+ }
166
+ /**
167
+ * Get all scope priorities for serialization
168
+ */
169
+ getScopePriorities() {
170
+ return Object.fromEntries(this.scopePriorities);
171
+ }
172
+ // ========== Minimum Scope (Author-Controlled Scope Additions) ==========
173
+ /**
174
+ * Set minimum scope level for this entity.
175
+ *
176
+ * Makes an entity "in scope" regardless of its spatial location.
177
+ * The scope resolver will return the maximum of the physical scope
178
+ * and the minimum scope (additive only - can raise scope, not lower it).
179
+ *
180
+ * Scope levels (numeric values match ScopeLevel enum in stdlib):
181
+ * - 0: UNAWARE - not in scope
182
+ * - 1: AWARE - can hear/smell but not see
183
+ * - 2: VISIBLE - can see but not reach
184
+ * - 3: REACHABLE - can physically interact
185
+ * - 4: CARRIED - in inventory (rarely used for minimum)
186
+ *
187
+ * @param level The minimum scope level (0-4)
188
+ * @param rooms Optional array of room IDs where this applies. If omitted, applies everywhere.
189
+ *
190
+ * @example
191
+ * // Sky is always visible everywhere
192
+ * sky.setMinimumScope(2);
193
+ *
194
+ * // Mountain visible only from overlook and trail
195
+ * mountain.setMinimumScope(2, ['overlook', 'mountain_trail']);
196
+ *
197
+ * // Butterfly reachable (but may escape) in garden areas
198
+ * butterfly.setMinimumScope(3, ['garden', 'meadow', 'pond']);
199
+ *
200
+ * // Ticking clock audible from adjacent rooms
201
+ * clock.setMinimumScope(1, ['hallway', 'study']);
202
+ */
203
+ setMinimumScope(level, rooms) {
204
+ if (rooms && rooms.length > 0) {
205
+ // Set for specific rooms
206
+ for (const roomId of rooms) {
207
+ this.minimumScopes.set(roomId, level);
208
+ }
209
+ }
210
+ else {
211
+ // Set for all rooms (use '*' as wildcard)
212
+ this.minimumScopes.set('*', level);
213
+ }
214
+ return this;
215
+ }
216
+ /**
217
+ * Get the minimum scope level for this entity in a specific room.
218
+ *
219
+ * @param roomId The room to check (or null to get global minimum)
220
+ * @returns The minimum scope level, or 0 (UNAWARE) if not set
221
+ */
222
+ getMinimumScope(roomId) {
223
+ // Check specific room first
224
+ if (roomId && this.minimumScopes.has(roomId)) {
225
+ return this.minimumScopes.get(roomId);
226
+ }
227
+ // Fall back to global wildcard
228
+ if (this.minimumScopes.has('*')) {
229
+ return this.minimumScopes.get('*');
230
+ }
231
+ // No minimum set
232
+ return 0;
233
+ }
234
+ /**
235
+ * Clear minimum scope for specific rooms or all rooms.
236
+ *
237
+ * @param rooms Optional array of room IDs to clear. If omitted, clears all.
238
+ */
239
+ clearMinimumScope(rooms) {
240
+ if (rooms && rooms.length > 0) {
241
+ for (const roomId of rooms) {
242
+ this.minimumScopes.delete(roomId);
243
+ }
244
+ }
245
+ else {
246
+ this.minimumScopes.clear();
247
+ }
248
+ }
249
+ /**
250
+ * Get all minimum scopes for serialization
251
+ */
252
+ getMinimumScopes() {
253
+ return Object.fromEntries(this.minimumScopes);
254
+ }
255
+ // ========== Annotations (ADR-124) ==========
256
+ /**
257
+ * Add a presentation annotation to this entity.
258
+ *
259
+ * @param kind - Annotation kind (e.g., 'illustration', 'portrait')
260
+ * @param data - Kind-specific payload. Must include an `id` field.
261
+ * @param condition - Optional condition for when this annotation is active
262
+ *
263
+ * @example
264
+ * entity.annotate('illustration', {
265
+ * id: 'dam-exterior',
266
+ * src: 'dam-dry.jpg',
267
+ * alt: 'The massive concrete face of Flood Control Dam #3',
268
+ * trigger: 'on-enter',
269
+ * position: 'right',
270
+ * });
271
+ */
272
+ annotate(kind, data, condition) {
273
+ const annotation = { kind, id: data.id, data, condition };
274
+ const existing = this.annotations.get(kind);
275
+ if (existing) {
276
+ existing.push(annotation);
277
+ }
278
+ else {
279
+ this.annotations.set(kind, [annotation]);
280
+ }
281
+ return this;
282
+ }
283
+ /**
284
+ * Get all annotations of a given kind (unfiltered).
285
+ */
286
+ getAnnotations(kind) {
287
+ return this.annotations.get(kind) ?? [];
288
+ }
289
+ /**
290
+ * Get annotations whose conditions are currently met.
291
+ * Requires a world model reference to resolve trait state on self/player/location.
292
+ *
293
+ * @param kind - Annotation kind to query
294
+ * @param world - World model for condition evaluation (must have getEntity, getPlayer, getLocation)
295
+ */
296
+ getActiveAnnotations(kind, world) {
297
+ const all = this.annotations.get(kind);
298
+ if (!all)
299
+ return [];
300
+ return all.filter(a => {
301
+ if (!a.condition)
302
+ return true;
303
+ return this.evaluateCondition(a.condition, world);
304
+ });
305
+ }
306
+ /**
307
+ * Remove a specific annotation by kind and id.
308
+ * @returns true if the annotation was found and removed
309
+ */
310
+ removeAnnotation(kind, id) {
311
+ const list = this.annotations.get(kind);
312
+ if (!list)
313
+ return false;
314
+ const idx = list.findIndex(a => a.id === id);
315
+ if (idx === -1)
316
+ return false;
317
+ list.splice(idx, 1);
318
+ if (list.length === 0) {
319
+ this.annotations.delete(kind);
320
+ }
321
+ return true;
322
+ }
323
+ /**
324
+ * Check if entity has any annotations of a given kind.
325
+ */
326
+ hasAnnotations(kind) {
327
+ const list = this.annotations.get(kind);
328
+ return !!list && list.length > 0;
329
+ }
330
+ /**
331
+ * Evaluate an annotation condition against current world state.
332
+ */
333
+ evaluateCondition(condition, world) {
334
+ const scope = condition.scope ?? 'self';
335
+ let target;
336
+ switch (scope) {
337
+ case 'self':
338
+ target = this;
339
+ break;
340
+ case 'player':
341
+ target = world.getPlayer();
342
+ break;
343
+ case 'location': {
344
+ const locId = world.getLocation(this.id);
345
+ target = locId ? world.getEntity(locId) : undefined;
346
+ break;
347
+ }
348
+ }
349
+ if (!target)
350
+ return false;
351
+ const trait = target.get(condition.trait);
352
+ if (!trait)
353
+ return false;
354
+ return trait[condition.property] === condition.value;
355
+ }
356
+ /**
357
+ * Clone this entity with all its traits
358
+ */
359
+ clone(newId) {
360
+ const cloned = new IFEntity(newId, this.type, {
361
+ attributes: JSON.parse(JSON.stringify(this.attributes)),
362
+ relationships: JSON.parse(JSON.stringify(this.relationships)) // Deep copy
363
+ });
364
+ // Clone traits (deep copy)
365
+ for (const [type, trait] of this.traits) {
366
+ cloned.traits.set(type, JSON.parse(JSON.stringify(trait)));
367
+ }
368
+ // Clone scope priorities
369
+ for (const [actionId, priority] of this.scopePriorities) {
370
+ cloned.scopePriorities.set(actionId, priority);
371
+ }
372
+ // Clone minimum scopes
373
+ for (const [roomId, level] of this.minimumScopes) {
374
+ cloned.minimumScopes.set(roomId, level);
375
+ }
376
+ // Clone annotations (deep copy)
377
+ for (const [kind, list] of this.annotations) {
378
+ cloned.annotations.set(kind, JSON.parse(JSON.stringify(list)));
379
+ }
380
+ return cloned;
381
+ }
382
+ /**
383
+ * Serialize entity and traits to JSON
384
+ */
385
+ toJSON() {
386
+ const json = {
387
+ id: this.id,
388
+ type: this.type,
389
+ attributes: this.attributes,
390
+ relationships: this.relationships,
391
+ traits: Array.from(this.traits.entries()).map(([_, trait]) => ({
392
+ ...trait
393
+ })),
394
+ // Include version for future compatibility
395
+ version: 3
396
+ };
397
+ // Include scope priorities if any
398
+ if (this.scopePriorities.size > 0) {
399
+ json.scopePriorities = Object.fromEntries(this.scopePriorities);
400
+ }
401
+ // Include minimum scopes if any
402
+ if (this.minimumScopes.size > 0) {
403
+ json.minimumScopes = Object.fromEntries(this.minimumScopes);
404
+ }
405
+ // Include annotations if any
406
+ if (this.annotations.size > 0) {
407
+ json.annotations = Object.fromEntries(Array.from(this.annotations.entries()).map(([kind, list]) => [kind, list]));
408
+ }
409
+ return json;
410
+ }
411
+ /**
412
+ * Create entity from JSON data
413
+ */
414
+ static fromJSON(json) {
415
+ // Determine type - use stored type or try to infer from ID
416
+ let type = json.type || 'object';
417
+ // If loading old format without explicit type, try to infer from attributes
418
+ if (!json.version && json.attributes) {
419
+ if (json.attributes.entityType) {
420
+ type = json.attributes.entityType;
421
+ }
422
+ else if (json.id && json.id.match(/^[a-z][0-9a-z]{2}$/)) {
423
+ // Try to infer type from ID prefix for new format IDs
424
+ const prefix = json.id[0];
425
+ const typeMap = {
426
+ 'r': 'room',
427
+ 'd': 'door',
428
+ 'i': 'item',
429
+ 'a': 'actor',
430
+ 'c': 'container',
431
+ 's': 'supporter',
432
+ 'y': 'scenery',
433
+ 'e': 'exit',
434
+ 'o': 'object'
435
+ };
436
+ type = typeMap[prefix] || 'object';
437
+ }
438
+ }
439
+ const entity = new IFEntity(json.id, type, {
440
+ attributes: json.attributes,
441
+ relationships: json.relationships
442
+ });
443
+ if (json.traits && Array.isArray(json.traits)) {
444
+ for (const traitData of json.traits) {
445
+ entity.traits.set(traitData.type, traitData);
446
+ }
447
+ }
448
+ // Restore scope priorities (version 3+)
449
+ if (json.scopePriorities && typeof json.scopePriorities === 'object') {
450
+ for (const [actionId, priority] of Object.entries(json.scopePriorities)) {
451
+ entity.scopePriorities.set(actionId, priority);
452
+ }
453
+ }
454
+ // Restore minimum scopes (version 3+)
455
+ if (json.minimumScopes && typeof json.minimumScopes === 'object') {
456
+ for (const [roomId, level] of Object.entries(json.minimumScopes)) {
457
+ entity.minimumScopes.set(roomId, level);
458
+ }
459
+ }
460
+ // Restore annotations
461
+ if (json.annotations && typeof json.annotations === 'object') {
462
+ for (const [kind, list] of Object.entries(json.annotations)) {
463
+ if (Array.isArray(list)) {
464
+ entity.annotations.set(kind, list);
465
+ }
466
+ }
467
+ }
468
+ return entity;
469
+ }
470
+ // ========== Convenience Properties ==========
471
+ /**
472
+ * Check if this is a room
473
+ */
474
+ get isRoom() {
475
+ return this.has(trait_types_1.TraitType.ROOM);
476
+ }
477
+ /**
478
+ * Check if this can contain other entities
479
+ */
480
+ get canContain() {
481
+ return this.has(trait_types_1.TraitType.CONTAINER) || this.has(trait_types_1.TraitType.SUPPORTER) ||
482
+ this.has(trait_types_1.TraitType.ROOM) || this.has(trait_types_1.TraitType.ACTOR);
483
+ }
484
+ /**
485
+ * Check if this is takeable (default behavior unless has scenery trait)
486
+ */
487
+ get isTakeable() {
488
+ return !this.has(trait_types_1.TraitType.SCENERY) && !this.has(trait_types_1.TraitType.ROOM) && !this.has(trait_types_1.TraitType.DOOR);
489
+ }
490
+ /**
491
+ * Check if this is fixed in place (has scenery trait)
492
+ */
493
+ get isScenery() {
494
+ return this.has(trait_types_1.TraitType.SCENERY);
495
+ }
496
+ /**
497
+ * Check if this can be opened
498
+ */
499
+ get isOpenable() {
500
+ return this.has(trait_types_1.TraitType.OPENABLE);
501
+ }
502
+ /**
503
+ * Check if this is currently open
504
+ */
505
+ get isOpen() {
506
+ const openable = this.get(trait_types_1.TraitType.OPENABLE);
507
+ return openable ? openable.isOpen : false;
508
+ }
509
+ /**
510
+ * Check if this can be locked
511
+ */
512
+ get isLockable() {
513
+ return this.has(trait_types_1.TraitType.LOCKABLE);
514
+ }
515
+ /**
516
+ * Check if this is currently locked
517
+ */
518
+ get isLocked() {
519
+ const lockable = this.get(trait_types_1.TraitType.LOCKABLE);
520
+ return lockable ? lockable.isLocked : false;
521
+ }
522
+ /**
523
+ * Check if this is a container
524
+ */
525
+ get isContainer() {
526
+ return this.has(trait_types_1.TraitType.CONTAINER);
527
+ }
528
+ /**
529
+ * Check if this is a supporter
530
+ */
531
+ get isSupporter() {
532
+ return this.has(trait_types_1.TraitType.SUPPORTER);
533
+ }
534
+ /**
535
+ * Check if this is a door
536
+ */
537
+ get isDoor() {
538
+ return this.has(trait_types_1.TraitType.DOOR);
539
+ }
540
+ /**
541
+ * Check if this is an actor
542
+ */
543
+ get isActor() {
544
+ return this.has(trait_types_1.TraitType.ACTOR);
545
+ }
546
+ /**
547
+ * Check if this is the player
548
+ */
549
+ get isPlayer() {
550
+ const actor = this.get(trait_types_1.TraitType.ACTOR);
551
+ return actor ? actor.isPlayer : false;
552
+ }
553
+ /**
554
+ * Check if this provides light
555
+ */
556
+ get providesLight() {
557
+ const lightSource = this.get(trait_types_1.TraitType.LIGHT_SOURCE);
558
+ return lightSource ? lightSource.isLit : false;
559
+ }
560
+ /**
561
+ * Check if this is switchable
562
+ */
563
+ get isSwitchable() {
564
+ return this.has(trait_types_1.TraitType.SWITCHABLE);
565
+ }
566
+ /**
567
+ * Check if this can be entered by actors
568
+ * Vehicles are inherently enterable (boats, baskets, etc.)
569
+ */
570
+ get enterable() {
571
+ return this.has(trait_types_1.TraitType.ENTERABLE) || this.has(trait_types_1.TraitType.VEHICLE);
572
+ }
573
+ /**
574
+ * Check if this is switched on
575
+ */
576
+ get isOn() {
577
+ const switchable = this.get(trait_types_1.TraitType.SWITCHABLE);
578
+ return switchable ? switchable.isOn : false;
579
+ }
580
+ /**
581
+ * Get the name of this entity
582
+ */
583
+ get name() {
584
+ // First check for displayName (new system)
585
+ if (this.attributes.displayName) {
586
+ return this.attributes.displayName;
587
+ }
588
+ // Then check identity trait
589
+ const identity = this.get(trait_types_1.TraitType.IDENTITY);
590
+ if (identity && identity.name) {
591
+ return identity.name;
592
+ }
593
+ // Fall back to name attribute
594
+ if (this.attributes.name) {
595
+ return this.attributes.name;
596
+ }
597
+ // Last resort: use ID
598
+ return this.id;
599
+ }
600
+ /**
601
+ * Get the description of this entity
602
+ */
603
+ get description() {
604
+ const identity = this.get(trait_types_1.TraitType.IDENTITY);
605
+ return identity ? identity.description : undefined;
606
+ }
607
+ /**
608
+ * Get the weight of this entity
609
+ */
610
+ get weight() {
611
+ return this.attributes.weight || 0;
612
+ }
613
+ /**
614
+ * Alias for has() method - for backwards compatibility
615
+ */
616
+ hasTrait(type) {
617
+ return this.has(type);
618
+ }
619
+ }
620
+ exports.IFEntity = IFEntity;
621
+ //# sourceMappingURL=if-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"if-entity.js","sourceRoot":"","sources":["../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/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":["../../../../../../mnt/c/repotemp/sharpee/packages/world-model/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":["../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/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"}