@sharpee/world-model 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/annotations/index.d.ts +1 -1
  2. package/annotations/index.d.ts.map +1 -1
  3. package/annotations/index.js +1 -1
  4. package/annotations/index.js.map +1 -1
  5. package/behaviors/attack.d.ts +21 -4
  6. package/behaviors/attack.d.ts.map +1 -1
  7. package/behaviors/attack.js +37 -33
  8. package/behaviors/attack.js.map +1 -1
  9. package/behaviors/behavior.d.ts +3 -3
  10. package/behaviors/behavior.d.ts.map +1 -1
  11. package/behaviors/index.d.ts +21 -21
  12. package/behaviors/index.d.ts.map +1 -1
  13. package/behaviors/index.js +33 -33
  14. package/behaviors/index.js.map +1 -1
  15. package/capabilities/action-interceptor.d.ts +3 -3
  16. package/capabilities/action-interceptor.d.ts.map +1 -1
  17. package/capabilities/capability-behavior.d.ts +3 -3
  18. package/capabilities/capability-behavior.d.ts.map +1 -1
  19. package/capabilities/capability-binding.d.ts +3 -3
  20. package/capabilities/capability-binding.d.ts.map +1 -1
  21. package/capabilities/capability-helpers.d.ts +2 -2
  22. package/capabilities/capability-helpers.d.ts.map +1 -1
  23. package/capabilities/entity-builder.d.ts +2 -2
  24. package/capabilities/entity-builder.d.ts.map +1 -1
  25. package/capabilities/index.d.ts +9 -9
  26. package/capabilities/index.d.ts.map +1 -1
  27. package/capabilities/index.js +26 -26
  28. package/capabilities/index.js.map +1 -1
  29. package/capabilities/interceptor-binding.d.ts +2 -2
  30. package/capabilities/interceptor-binding.d.ts.map +1 -1
  31. package/capabilities/interceptor-helpers.d.ts +2 -2
  32. package/capabilities/interceptor-helpers.d.ts.map +1 -1
  33. package/commands/command-types.d.ts +2 -2
  34. package/commands/command-types.d.ts.map +1 -1
  35. package/commands/index.d.ts +3 -3
  36. package/commands/index.d.ts.map +1 -1
  37. package/commands/index.js +3 -3
  38. package/commands/index.js.map +1 -1
  39. package/commands/parsed-command.d.ts +13 -0
  40. package/commands/parsed-command.d.ts.map +1 -1
  41. package/commands/validated-command.d.ts +16 -2
  42. package/commands/validated-command.d.ts.map +1 -1
  43. package/constants/index.d.ts +3 -3
  44. package/constants/index.d.ts.map +1 -1
  45. package/constants/index.js +3 -3
  46. package/constants/index.js.map +1 -1
  47. package/entities/entity-store.d.ts +1 -1
  48. package/entities/entity-store.d.ts.map +1 -1
  49. package/entities/entity-store.js +2 -2
  50. package/entities/entity-store.js.map +1 -1
  51. package/entities/if-entity.d.ts +3 -3
  52. package/entities/if-entity.d.ts.map +1 -1
  53. package/entities/if-entity.js +38 -34
  54. package/entities/if-entity.js.map +1 -1
  55. package/entities/index.d.ts +6 -6
  56. package/entities/index.d.ts.map +1 -1
  57. package/entities/index.js +10 -10
  58. package/entities/index.js.map +1 -1
  59. package/entities/trait-rehydrator.d.ts +43 -0
  60. package/entities/trait-rehydrator.d.ts.map +1 -0
  61. package/entities/trait-rehydrator.js +45 -0
  62. package/entities/trait-rehydrator.js.map +1 -0
  63. package/entities/wall-entity.d.ts +2 -2
  64. package/entities/wall-entity.d.ts.map +1 -1
  65. package/entities/wall-entity.js +2 -2
  66. package/entities/wall-entity.js.map +1 -1
  67. package/examples/event-handler-registration.d.ts +1 -1
  68. package/examples/event-handler-registration.d.ts.map +1 -1
  69. package/examples/event-handler-registration.js +24 -24
  70. package/examples/event-handler-registration.js.map +1 -1
  71. package/extensions/base-extension.d.ts +3 -3
  72. package/extensions/base-extension.d.ts.map +1 -1
  73. package/extensions/index.d.ts +4 -4
  74. package/extensions/index.d.ts.map +1 -1
  75. package/extensions/index.js +11 -11
  76. package/extensions/index.js.map +1 -1
  77. package/extensions/loader.d.ts +1 -1
  78. package/extensions/loader.d.ts.map +1 -1
  79. package/extensions/loader.js +2 -2
  80. package/extensions/loader.js.map +1 -1
  81. package/extensions/manager.d.ts +1 -1
  82. package/extensions/manager.d.ts.map +1 -1
  83. package/extensions/manager.js +2 -2
  84. package/extensions/manager.js.map +1 -1
  85. package/extensions/registry.d.ts +2 -2
  86. package/extensions/registry.d.ts.map +1 -1
  87. package/extensions/registry.js +4 -4
  88. package/extensions/registry.js.map +1 -1
  89. package/extensions/types.d.ts +2 -2
  90. package/extensions/types.d.ts.map +1 -1
  91. package/index.d.ts +58 -59
  92. package/index.d.ts.map +1 -1
  93. package/index.js +62 -63
  94. package/index.js.map +1 -1
  95. package/interfaces/command-executor.d.ts +1 -1
  96. package/interfaces/command-executor.d.ts.map +1 -1
  97. package/interfaces/command-processor.d.ts +1 -1
  98. package/interfaces/command-processor.d.ts.map +1 -1
  99. package/interfaces/command-validator.d.ts +1 -1
  100. package/interfaces/command-validator.d.ts.map +1 -1
  101. package/interfaces/index.d.ts +4 -4
  102. package/interfaces/index.d.ts.map +1 -1
  103. package/interfaces/index.js +4 -4
  104. package/interfaces/index.js.map +1 -1
  105. package/interfaces/parser.d.ts +1 -1
  106. package/interfaces/parser.d.ts.map +1 -1
  107. package/package.json +3 -3
  108. package/scope/index.d.ts +3 -3
  109. package/scope/index.d.ts.map +1 -1
  110. package/scope/index.js +3 -3
  111. package/scope/index.js.map +1 -1
  112. package/scope/scope-evaluator.d.ts +2 -2
  113. package/scope/scope-evaluator.d.ts.map +1 -1
  114. package/scope/scope-registry.d.ts +1 -1
  115. package/scope/scope-registry.d.ts.map +1 -1
  116. package/state-adjectives.d.ts +1 -1
  117. package/state-adjectives.d.ts.map +1 -1
  118. package/state-adjectives.js +5 -5
  119. package/state-adjectives.js.map +1 -1
  120. package/state-clauses.d.ts +1 -1
  121. package/state-clauses.d.ts.map +1 -1
  122. package/state-clauses.js +5 -5
  123. package/state-clauses.js.map +1 -1
  124. package/test-structure.d.ts +1 -1
  125. package/test-structure.d.ts.map +1 -1
  126. package/test-structure.js +7 -7
  127. package/test-structure.js.map +1 -1
  128. package/traits/acoustic/acousticDampenerTrait.d.ts +1 -1
  129. package/traits/acoustic/acousticDampenerTrait.d.ts.map +1 -1
  130. package/traits/acoustic/acousticDampenerTrait.js +3 -3
  131. package/traits/acoustic/acousticDampenerTrait.js.map +1 -1
  132. package/traits/acoustic/acousticTrait.d.ts +1 -1
  133. package/traits/acoustic/acousticTrait.d.ts.map +1 -1
  134. package/traits/acoustic/acousticTrait.js +3 -3
  135. package/traits/acoustic/acousticTrait.js.map +1 -1
  136. package/traits/acoustic/index.d.ts +2 -2
  137. package/traits/acoustic/index.d.ts.map +1 -1
  138. package/traits/acoustic/index.js +5 -5
  139. package/traits/acoustic/index.js.map +1 -1
  140. package/traits/actor/actorBehavior.d.ts +4 -4
  141. package/traits/actor/actorBehavior.d.ts.map +1 -1
  142. package/traits/actor/actorBehavior.js +38 -34
  143. package/traits/actor/actorBehavior.js.map +1 -1
  144. package/traits/actor/actorTrait.d.ts +1 -1
  145. package/traits/actor/actorTrait.d.ts.map +1 -1
  146. package/traits/actor/actorTrait.js +3 -3
  147. package/traits/actor/actorTrait.js.map +1 -1
  148. package/traits/actor/index.d.ts +2 -2
  149. package/traits/actor/index.d.ts.map +1 -1
  150. package/traits/actor/index.js +6 -6
  151. package/traits/actor/index.js.map +1 -1
  152. package/traits/all-traits.d.ts +30 -33
  153. package/traits/all-traits.d.ts.map +1 -1
  154. package/traits/all-traits.js +56 -62
  155. package/traits/all-traits.js.map +1 -1
  156. package/traits/attached/attachedTrait.d.ts +1 -1
  157. package/traits/attached/attachedTrait.d.ts.map +1 -1
  158. package/traits/attached/attachedTrait.js +3 -3
  159. package/traits/attached/attachedTrait.js.map +1 -1
  160. package/traits/attached/index.d.ts +1 -1
  161. package/traits/attached/index.d.ts.map +1 -1
  162. package/traits/attached/index.js +1 -1
  163. package/traits/attached/index.js.map +1 -1
  164. package/traits/breakable/breakableBehavior.d.ts +3 -3
  165. package/traits/breakable/breakableBehavior.d.ts.map +1 -1
  166. package/traits/breakable/breakableBehavior.js +10 -10
  167. package/traits/breakable/breakableBehavior.js.map +1 -1
  168. package/traits/breakable/breakableTrait.d.ts +1 -1
  169. package/traits/breakable/breakableTrait.d.ts.map +1 -1
  170. package/traits/breakable/index.d.ts +2 -2
  171. package/traits/breakable/index.d.ts.map +1 -1
  172. package/traits/breakable/index.js +4 -4
  173. package/traits/breakable/index.js.map +1 -1
  174. package/traits/button/buttonTrait.d.ts +1 -1
  175. package/traits/button/buttonTrait.d.ts.map +1 -1
  176. package/traits/button/buttonTrait.js +3 -3
  177. package/traits/button/buttonTrait.js.map +1 -1
  178. package/traits/button/index.d.ts +1 -1
  179. package/traits/button/index.d.ts.map +1 -1
  180. package/traits/button/index.js +1 -1
  181. package/traits/button/index.js.map +1 -1
  182. package/traits/character-model/characterModelTrait.d.ts +2 -2
  183. package/traits/character-model/characterModelTrait.d.ts.map +1 -1
  184. package/traits/character-model/characterModelTrait.js +16 -16
  185. package/traits/character-model/characterModelTrait.js.map +1 -1
  186. package/traits/character-model/index.d.ts +2 -2
  187. package/traits/character-model/index.d.ts.map +1 -1
  188. package/traits/character-model/index.js +3 -3
  189. package/traits/character-model/index.js.map +1 -1
  190. package/traits/climbable/climbableBehavior.d.ts +1 -1
  191. package/traits/climbable/climbableBehavior.d.ts.map +1 -1
  192. package/traits/climbable/climbableBehavior.js +9 -9
  193. package/traits/climbable/climbableBehavior.js.map +1 -1
  194. package/traits/climbable/climbableTrait.d.ts +1 -1
  195. package/traits/climbable/climbableTrait.d.ts.map +1 -1
  196. package/traits/climbable/climbableTrait.js +4 -4
  197. package/traits/climbable/climbableTrait.js.map +1 -1
  198. package/traits/climbable/index.d.ts +2 -2
  199. package/traits/climbable/index.d.ts.map +1 -1
  200. package/traits/climbable/index.js +2 -2
  201. package/traits/climbable/index.js.map +1 -1
  202. package/traits/clothing/clothingTrait.d.ts +2 -2
  203. package/traits/clothing/clothingTrait.d.ts.map +1 -1
  204. package/traits/clothing/clothingTrait.js +3 -3
  205. package/traits/clothing/clothingTrait.js.map +1 -1
  206. package/traits/clothing/index.d.ts +1 -1
  207. package/traits/clothing/index.d.ts.map +1 -1
  208. package/traits/clothing/index.js +1 -1
  209. package/traits/clothing/index.js.map +1 -1
  210. package/traits/combatant/combatantBehavior.d.ts +3 -3
  211. package/traits/combatant/combatantBehavior.d.ts.map +1 -1
  212. package/traits/combatant/combatantBehavior.js +26 -26
  213. package/traits/combatant/combatantBehavior.js.map +1 -1
  214. package/traits/combatant/combatantTrait.d.ts +1 -1
  215. package/traits/combatant/combatantTrait.d.ts.map +1 -1
  216. package/traits/combatant/index.d.ts +2 -2
  217. package/traits/combatant/index.d.ts.map +1 -1
  218. package/traits/combatant/index.js +4 -4
  219. package/traits/combatant/index.js.map +1 -1
  220. package/traits/concealment/concealedStateTrait.d.ts +3 -3
  221. package/traits/concealment/concealedStateTrait.d.ts.map +1 -1
  222. package/traits/concealment/concealedStateTrait.js +2 -2
  223. package/traits/concealment/concealedStateTrait.js.map +1 -1
  224. package/traits/concealment/concealedVisibilityBehavior.d.ts +2 -2
  225. package/traits/concealment/concealedVisibilityBehavior.d.ts.map +1 -1
  226. package/traits/concealment/concealedVisibilityBehavior.js +3 -3
  227. package/traits/concealment/concealedVisibilityBehavior.js.map +1 -1
  228. package/traits/concealment/concealmentTrait.d.ts +1 -1
  229. package/traits/concealment/concealmentTrait.d.ts.map +1 -1
  230. package/traits/concealment/index.d.ts +3 -3
  231. package/traits/concealment/index.d.ts.map +1 -1
  232. package/traits/concealment/index.js +3 -3
  233. package/traits/concealment/index.js.map +1 -1
  234. package/traits/container/container-utils.d.ts +2 -2
  235. package/traits/container/container-utils.d.ts.map +1 -1
  236. package/traits/container/container-utils.js +14 -14
  237. package/traits/container/container-utils.js.map +1 -1
  238. package/traits/container/containerBehavior.d.ts +7 -2
  239. package/traits/container/containerBehavior.d.ts.map +1 -1
  240. package/traits/container/containerBehavior.js +26 -26
  241. package/traits/container/containerBehavior.js.map +1 -1
  242. package/traits/container/containerTrait.d.ts +1 -1
  243. package/traits/container/containerTrait.d.ts.map +1 -1
  244. package/traits/container/containerTrait.js +3 -3
  245. package/traits/container/containerTrait.js.map +1 -1
  246. package/traits/container/index.d.ts +3 -3
  247. package/traits/container/index.d.ts.map +1 -1
  248. package/traits/container/index.js +9 -9
  249. package/traits/container/index.js.map +1 -1
  250. package/traits/cuttable/cuttableBehavior.d.ts +2 -2
  251. package/traits/cuttable/cuttableBehavior.d.ts.map +1 -1
  252. package/traits/cuttable/cuttableBehavior.js +6 -6
  253. package/traits/cuttable/cuttableBehavior.js.map +1 -1
  254. package/traits/cuttable/cuttableTrait.d.ts +1 -1
  255. package/traits/cuttable/cuttableTrait.d.ts.map +1 -1
  256. package/traits/cuttable/cuttableTrait.js +3 -3
  257. package/traits/cuttable/cuttableTrait.js.map +1 -1
  258. package/traits/cuttable/index.d.ts +2 -2
  259. package/traits/cuttable/index.d.ts.map +1 -1
  260. package/traits/cuttable/index.js +2 -2
  261. package/traits/cuttable/index.js.map +1 -1
  262. package/traits/deadly-room/deadlyRoomBehavior.d.ts +2 -2
  263. package/traits/deadly-room/deadlyRoomBehavior.d.ts.map +1 -1
  264. package/traits/deadly-room/deadlyRoomBehavior.js +4 -4
  265. package/traits/deadly-room/deadlyRoomBehavior.js.map +1 -1
  266. package/traits/deadly-room/deadlyRoomTrait.d.ts +1 -1
  267. package/traits/deadly-room/deadlyRoomTrait.d.ts.map +1 -1
  268. package/traits/deadly-room/index.d.ts +2 -2
  269. package/traits/deadly-room/index.d.ts.map +1 -1
  270. package/traits/deadly-room/index.js +4 -4
  271. package/traits/deadly-room/index.js.map +1 -1
  272. package/traits/destructible/destructibleBehavior.d.ts +3 -3
  273. package/traits/destructible/destructibleBehavior.d.ts.map +1 -1
  274. package/traits/destructible/destructibleBehavior.js +12 -12
  275. package/traits/destructible/destructibleBehavior.js.map +1 -1
  276. package/traits/destructible/destructibleTrait.d.ts +1 -1
  277. package/traits/destructible/destructibleTrait.d.ts.map +1 -1
  278. package/traits/destructible/index.d.ts +2 -2
  279. package/traits/destructible/index.d.ts.map +1 -1
  280. package/traits/destructible/index.js +4 -4
  281. package/traits/destructible/index.js.map +1 -1
  282. package/traits/diggable/diggableBehavior.d.ts +2 -2
  283. package/traits/diggable/diggableBehavior.d.ts.map +1 -1
  284. package/traits/diggable/diggableBehavior.js +6 -6
  285. package/traits/diggable/diggableBehavior.js.map +1 -1
  286. package/traits/diggable/diggableTrait.d.ts +1 -1
  287. package/traits/diggable/diggableTrait.d.ts.map +1 -1
  288. package/traits/diggable/diggableTrait.js +3 -3
  289. package/traits/diggable/diggableTrait.js.map +1 -1
  290. package/traits/diggable/index.d.ts +2 -2
  291. package/traits/diggable/index.d.ts.map +1 -1
  292. package/traits/diggable/index.js +2 -2
  293. package/traits/diggable/index.js.map +1 -1
  294. package/traits/door/doorBehavior.d.ts +2 -2
  295. package/traits/door/doorBehavior.d.ts.map +1 -1
  296. package/traits/door/doorBehavior.js +11 -11
  297. package/traits/door/doorBehavior.js.map +1 -1
  298. package/traits/door/doorTrait.d.ts +1 -1
  299. package/traits/door/doorTrait.d.ts.map +1 -1
  300. package/traits/door/doorTrait.js +3 -3
  301. package/traits/door/doorTrait.js.map +1 -1
  302. package/traits/door/index.d.ts +2 -2
  303. package/traits/door/index.d.ts.map +1 -1
  304. package/traits/door/index.js +4 -4
  305. package/traits/door/index.js.map +1 -1
  306. package/traits/edible/edibleBehavior.d.ts +3 -3
  307. package/traits/edible/edibleBehavior.d.ts.map +1 -1
  308. package/traits/edible/edibleBehavior.js +20 -20
  309. package/traits/edible/edibleBehavior.js.map +1 -1
  310. package/traits/edible/edibleTrait.d.ts +1 -1
  311. package/traits/edible/edibleTrait.d.ts.map +1 -1
  312. package/traits/edible/edibleTrait.js +3 -3
  313. package/traits/edible/edibleTrait.js.map +1 -1
  314. package/traits/edible/index.d.ts +2 -2
  315. package/traits/edible/index.d.ts.map +1 -1
  316. package/traits/edible/index.js +2 -2
  317. package/traits/edible/index.js.map +1 -1
  318. package/traits/enterable/enterableTrait.d.ts +1 -1
  319. package/traits/enterable/enterableTrait.d.ts.map +1 -1
  320. package/traits/enterable/enterableTrait.js +4 -4
  321. package/traits/enterable/enterableTrait.js.map +1 -1
  322. package/traits/enterable/index.d.ts +1 -1
  323. package/traits/enterable/index.d.ts.map +1 -1
  324. package/traits/enterable/index.js +1 -1
  325. package/traits/enterable/index.js.map +1 -1
  326. package/traits/equipped/equippedTrait.d.ts +1 -1
  327. package/traits/equipped/equippedTrait.d.ts.map +1 -1
  328. package/traits/equipped/index.d.ts +1 -1
  329. package/traits/equipped/index.d.ts.map +1 -1
  330. package/traits/equipped/index.js +2 -2
  331. package/traits/equipped/index.js.map +1 -1
  332. package/traits/exit/exitBehavior.d.ts +2 -2
  333. package/traits/exit/exitBehavior.d.ts.map +1 -1
  334. package/traits/exit/exitBehavior.js +27 -27
  335. package/traits/exit/exitBehavior.js.map +1 -1
  336. package/traits/exit/exitTrait.d.ts +1 -1
  337. package/traits/exit/exitTrait.d.ts.map +1 -1
  338. package/traits/exit/exitTrait.js +3 -3
  339. package/traits/exit/exitTrait.js.map +1 -1
  340. package/traits/exit/index.d.ts +2 -2
  341. package/traits/exit/index.d.ts.map +1 -1
  342. package/traits/exit/index.js +4 -4
  343. package/traits/exit/index.js.map +1 -1
  344. package/traits/health/healthBehavior.d.ts +2 -2
  345. package/traits/health/healthBehavior.d.ts.map +1 -1
  346. package/traits/health/healthBehavior.js +4 -4
  347. package/traits/health/healthBehavior.js.map +1 -1
  348. package/traits/health/healthTrait.d.ts +1 -1
  349. package/traits/health/healthTrait.d.ts.map +1 -1
  350. package/traits/health/index.d.ts +2 -2
  351. package/traits/health/index.d.ts.map +1 -1
  352. package/traits/health/index.js +4 -4
  353. package/traits/health/index.js.map +1 -1
  354. package/traits/identity/identityBehavior.d.ts +2 -2
  355. package/traits/identity/identityBehavior.d.ts.map +1 -1
  356. package/traits/identity/identityBehavior.js +16 -16
  357. package/traits/identity/identityBehavior.js.map +1 -1
  358. package/traits/identity/identityTrait.d.ts +8 -1
  359. package/traits/identity/identityTrait.d.ts.map +1 -1
  360. package/traits/identity/identityTrait.js +10 -3
  361. package/traits/identity/identityTrait.js.map +1 -1
  362. package/traits/identity/index.d.ts +3 -2
  363. package/traits/identity/index.d.ts.map +1 -1
  364. package/traits/identity/index.js +3 -2
  365. package/traits/identity/index.js.map +1 -1
  366. package/traits/identity/name-vocabulary.d.ts +31 -0
  367. package/traits/identity/name-vocabulary.d.ts.map +1 -0
  368. package/traits/identity/name-vocabulary.js +57 -0
  369. package/traits/identity/name-vocabulary.js.map +1 -0
  370. package/traits/implementations.d.ts +65 -42
  371. package/traits/implementations.d.ts.map +1 -1
  372. package/traits/implementations.js +163 -129
  373. package/traits/implementations.js.map +1 -1
  374. package/traits/index.d.ts +47 -48
  375. package/traits/index.d.ts.map +1 -1
  376. package/traits/index.js +47 -48
  377. package/traits/index.js.map +1 -1
  378. package/traits/light-source/index.d.ts +2 -2
  379. package/traits/light-source/index.d.ts.map +1 -1
  380. package/traits/light-source/index.js +4 -4
  381. package/traits/light-source/index.js.map +1 -1
  382. package/traits/light-source/lightSourceBehavior.d.ts +2 -2
  383. package/traits/light-source/lightSourceBehavior.d.ts.map +1 -1
  384. package/traits/light-source/lightSourceBehavior.js +16 -16
  385. package/traits/light-source/lightSourceBehavior.js.map +1 -1
  386. package/traits/light-source/lightSourceTrait.d.ts +1 -1
  387. package/traits/light-source/lightSourceTrait.d.ts.map +1 -1
  388. package/traits/light-source/lightSourceTrait.js +3 -3
  389. package/traits/light-source/lightSourceTrait.js.map +1 -1
  390. package/traits/listener/index.d.ts +1 -1
  391. package/traits/listener/index.d.ts.map +1 -1
  392. package/traits/listener/index.js +2 -2
  393. package/traits/listener/index.js.map +1 -1
  394. package/traits/listener/listenerTrait.d.ts +1 -1
  395. package/traits/listener/listenerTrait.d.ts.map +1 -1
  396. package/traits/listener/listenerTrait.js +3 -3
  397. package/traits/listener/listenerTrait.js.map +1 -1
  398. package/traits/lockable/index.d.ts +2 -2
  399. package/traits/lockable/index.d.ts.map +1 -1
  400. package/traits/lockable/index.js +2 -2
  401. package/traits/lockable/index.js.map +1 -1
  402. package/traits/lockable/lockableBehavior.d.ts +2 -2
  403. package/traits/lockable/lockableBehavior.d.ts.map +1 -1
  404. package/traits/lockable/lockableBehavior.js +19 -19
  405. package/traits/lockable/lockableBehavior.js.map +1 -1
  406. package/traits/lockable/lockableTrait.d.ts +1 -1
  407. package/traits/lockable/lockableTrait.d.ts.map +1 -1
  408. package/traits/lockable/lockableTrait.js +3 -3
  409. package/traits/lockable/lockableTrait.js.map +1 -1
  410. package/traits/moveable-scenery/index.d.ts +1 -1
  411. package/traits/moveable-scenery/index.d.ts.map +1 -1
  412. package/traits/moveable-scenery/index.js +1 -1
  413. package/traits/moveable-scenery/index.js.map +1 -1
  414. package/traits/moveable-scenery/moveableSceneryTrait.d.ts +1 -1
  415. package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -1
  416. package/traits/moveable-scenery/moveableSceneryTrait.js +3 -3
  417. package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -1
  418. package/traits/npc/index.d.ts +1 -1
  419. package/traits/npc/index.d.ts.map +1 -1
  420. package/traits/npc/index.js +2 -2
  421. package/traits/npc/index.js.map +1 -1
  422. package/traits/npc/npcTrait.d.ts +1 -1
  423. package/traits/npc/npcTrait.d.ts.map +1 -1
  424. package/traits/obstructor-protocol.d.ts +3 -3
  425. package/traits/obstructor-protocol.d.ts.map +1 -1
  426. package/traits/open-inventory/index.d.ts +1 -1
  427. package/traits/open-inventory/index.d.ts.map +1 -1
  428. package/traits/open-inventory/index.js +2 -2
  429. package/traits/open-inventory/index.js.map +1 -1
  430. package/traits/open-inventory/openInventoryTrait.d.ts +1 -1
  431. package/traits/open-inventory/openInventoryTrait.d.ts.map +1 -1
  432. package/traits/open-inventory/openInventoryTrait.js +3 -3
  433. package/traits/open-inventory/openInventoryTrait.js.map +1 -1
  434. package/traits/openable/index.d.ts +2 -2
  435. package/traits/openable/index.d.ts.map +1 -1
  436. package/traits/openable/index.js +2 -2
  437. package/traits/openable/index.js.map +1 -1
  438. package/traits/openable/openableBehavior.d.ts +2 -2
  439. package/traits/openable/openableBehavior.d.ts.map +1 -1
  440. package/traits/openable/openableBehavior.js +13 -13
  441. package/traits/openable/openableBehavior.js.map +1 -1
  442. package/traits/openable/openableTrait.d.ts +1 -1
  443. package/traits/openable/openableTrait.d.ts.map +1 -1
  444. package/traits/openable/openableTrait.js +3 -3
  445. package/traits/openable/openableTrait.js.map +1 -1
  446. package/traits/pullable/index.d.ts +1 -1
  447. package/traits/pullable/index.d.ts.map +1 -1
  448. package/traits/pullable/index.js +1 -1
  449. package/traits/pullable/index.js.map +1 -1
  450. package/traits/pullable/pullableTrait.d.ts +1 -1
  451. package/traits/pullable/pullableTrait.d.ts.map +1 -1
  452. package/traits/pullable/pullableTrait.js +3 -3
  453. package/traits/pullable/pullableTrait.js.map +1 -1
  454. package/traits/pushable/index.d.ts +1 -1
  455. package/traits/pushable/index.d.ts.map +1 -1
  456. package/traits/pushable/index.js +1 -1
  457. package/traits/pushable/index.js.map +1 -1
  458. package/traits/pushable/pushableTrait.d.ts +1 -1
  459. package/traits/pushable/pushableTrait.d.ts.map +1 -1
  460. package/traits/pushable/pushableTrait.js +3 -3
  461. package/traits/pushable/pushableTrait.js.map +1 -1
  462. package/traits/readable/index.d.ts +2 -2
  463. package/traits/readable/index.d.ts.map +1 -1
  464. package/traits/readable/index.js +4 -4
  465. package/traits/readable/index.js.map +1 -1
  466. package/traits/readable/readableBehavior.d.ts +1 -1
  467. package/traits/readable/readableBehavior.d.ts.map +1 -1
  468. package/traits/readable/readableBehavior.js +10 -10
  469. package/traits/readable/readableBehavior.js.map +1 -1
  470. package/traits/readable/readableTrait.d.ts +1 -1
  471. package/traits/readable/readableTrait.d.ts.map +1 -1
  472. package/traits/readable/readableTrait.js +3 -3
  473. package/traits/readable/readableTrait.js.map +1 -1
  474. package/traits/region/index.d.ts +1 -1
  475. package/traits/region/index.d.ts.map +1 -1
  476. package/traits/region/index.js +2 -2
  477. package/traits/region/index.js.map +1 -1
  478. package/traits/region/regionTrait.d.ts +1 -1
  479. package/traits/region/regionTrait.d.ts.map +1 -1
  480. package/traits/region/regionTrait.js +3 -3
  481. package/traits/region/regionTrait.js.map +1 -1
  482. package/traits/room/index.d.ts +2 -2
  483. package/traits/room/index.d.ts.map +1 -1
  484. package/traits/room/index.js +4 -4
  485. package/traits/room/index.js.map +1 -1
  486. package/traits/room/roomBehavior.d.ts +4 -4
  487. package/traits/room/roomBehavior.d.ts.map +1 -1
  488. package/traits/room/roomBehavior.js +25 -25
  489. package/traits/room/roomBehavior.js.map +1 -1
  490. package/traits/room/roomTrait.d.ts +2 -2
  491. package/traits/room/roomTrait.d.ts.map +1 -1
  492. package/traits/room/roomTrait.js +3 -3
  493. package/traits/room/roomTrait.js.map +1 -1
  494. package/traits/scene/index.d.ts +1 -1
  495. package/traits/scene/index.d.ts.map +1 -1
  496. package/traits/scene/index.js +2 -2
  497. package/traits/scene/index.js.map +1 -1
  498. package/traits/scene/sceneTrait.d.ts +1 -1
  499. package/traits/scene/sceneTrait.d.ts.map +1 -1
  500. package/traits/scene/sceneTrait.js +3 -3
  501. package/traits/scene/sceneTrait.js.map +1 -1
  502. package/traits/scenery/index.d.ts +2 -2
  503. package/traits/scenery/index.d.ts.map +1 -1
  504. package/traits/scenery/index.js +4 -4
  505. package/traits/scenery/index.js.map +1 -1
  506. package/traits/scenery/sceneryBehavior.d.ts +1 -1
  507. package/traits/scenery/sceneryBehavior.d.ts.map +1 -1
  508. package/traits/scenery/sceneryBehavior.js +5 -5
  509. package/traits/scenery/sceneryBehavior.js.map +1 -1
  510. package/traits/scenery/sceneryTrait.d.ts +1 -1
  511. package/traits/scenery/sceneryTrait.d.ts.map +1 -1
  512. package/traits/scenery/sceneryTrait.js +3 -3
  513. package/traits/scenery/sceneryTrait.js.map +1 -1
  514. package/traits/story-info/index.d.ts +1 -1
  515. package/traits/story-info/index.d.ts.map +1 -1
  516. package/traits/story-info/index.js +2 -2
  517. package/traits/story-info/index.js.map +1 -1
  518. package/traits/story-info/storyInfoTrait.d.ts +1 -1
  519. package/traits/story-info/storyInfoTrait.d.ts.map +1 -1
  520. package/traits/supporter/index.d.ts +2 -2
  521. package/traits/supporter/index.d.ts.map +1 -1
  522. package/traits/supporter/index.js +4 -4
  523. package/traits/supporter/index.js.map +1 -1
  524. package/traits/supporter/supporterBehavior.d.ts +3 -3
  525. package/traits/supporter/supporterBehavior.d.ts.map +1 -1
  526. package/traits/supporter/supporterBehavior.js +15 -15
  527. package/traits/supporter/supporterBehavior.js.map +1 -1
  528. package/traits/supporter/supporterTrait.d.ts +1 -1
  529. package/traits/supporter/supporterTrait.d.ts.map +1 -1
  530. package/traits/supporter/supporterTrait.js +3 -3
  531. package/traits/supporter/supporterTrait.js.map +1 -1
  532. package/traits/switchable/index.d.ts +2 -2
  533. package/traits/switchable/index.d.ts.map +1 -1
  534. package/traits/switchable/index.js +2 -2
  535. package/traits/switchable/index.js.map +1 -1
  536. package/traits/switchable/switchableBehavior.d.ts +2 -2
  537. package/traits/switchable/switchableBehavior.d.ts.map +1 -1
  538. package/traits/switchable/switchableBehavior.js +18 -18
  539. package/traits/switchable/switchableBehavior.js.map +1 -1
  540. package/traits/switchable/switchableTrait.d.ts +1 -1
  541. package/traits/switchable/switchableTrait.d.ts.map +1 -1
  542. package/traits/switchable/switchableTrait.js +3 -3
  543. package/traits/switchable/switchableTrait.js.map +1 -1
  544. package/traits/trait-types.d.ts +0 -1
  545. package/traits/trait-types.d.ts.map +1 -1
  546. package/traits/trait-types.js +0 -2
  547. package/traits/trait-types.js.map +1 -1
  548. package/traits/trait.d.ts +1 -1
  549. package/traits/trait.d.ts.map +1 -1
  550. package/traits/vehicle/index.d.ts +2 -2
  551. package/traits/vehicle/index.d.ts.map +1 -1
  552. package/traits/vehicle/index.js +2 -2
  553. package/traits/vehicle/index.js.map +1 -1
  554. package/traits/vehicle/vehicleBehavior.d.ts +2 -2
  555. package/traits/vehicle/vehicleBehavior.d.ts.map +1 -1
  556. package/traits/vehicle/vehicleBehavior.js +7 -7
  557. package/traits/vehicle/vehicleBehavior.js.map +1 -1
  558. package/traits/vehicle/vehicleTrait.d.ts +1 -1
  559. package/traits/vehicle/vehicleTrait.d.ts.map +1 -1
  560. package/traits/vehicle/vehicleTrait.js +4 -4
  561. package/traits/vehicle/vehicleTrait.js.map +1 -1
  562. package/traits/weapon/index.d.ts +2 -2
  563. package/traits/weapon/index.d.ts.map +1 -1
  564. package/traits/weapon/index.js +4 -4
  565. package/traits/weapon/index.js.map +1 -1
  566. package/traits/weapon/weaponBehavior.d.ts +11 -4
  567. package/traits/weapon/weaponBehavior.d.ts.map +1 -1
  568. package/traits/weapon/weaponBehavior.js +24 -19
  569. package/traits/weapon/weaponBehavior.js.map +1 -1
  570. package/traits/weapon/weaponTrait.d.ts +1 -1
  571. package/traits/weapon/weaponTrait.d.ts.map +1 -1
  572. package/traits/wearable/index.d.ts +2 -2
  573. package/traits/wearable/index.d.ts.map +1 -1
  574. package/traits/wearable/index.js +2 -2
  575. package/traits/wearable/index.js.map +1 -1
  576. package/traits/wearable/wearableBehavior.d.ts +1 -1
  577. package/traits/wearable/wearableBehavior.d.ts.map +1 -1
  578. package/traits/wearable/wearableBehavior.js +11 -11
  579. package/traits/wearable/wearableBehavior.js.map +1 -1
  580. package/traits/wearable/wearableTrait.d.ts +1 -1
  581. package/traits/wearable/wearableTrait.d.ts.map +1 -1
  582. package/traits/wearable/wearableTrait.js +3 -3
  583. package/traits/wearable/wearableTrait.js.map +1 -1
  584. package/world/AuthorModel.d.ts +23 -17
  585. package/world/AuthorModel.d.ts.map +1 -1
  586. package/world/AuthorModel.js +15 -4
  587. package/world/AuthorModel.js.map +1 -1
  588. package/world/SharedDataStore.d.ts +2 -2
  589. package/world/SharedDataStore.d.ts.map +1 -1
  590. package/world/SharedDataStore.js +2 -2
  591. package/world/SharedDataStore.js.map +1 -1
  592. package/world/VisibilityBehavior.d.ts +59 -3
  593. package/world/VisibilityBehavior.d.ts.map +1 -1
  594. package/world/VisibilityBehavior.js +192 -100
  595. package/world/VisibilityBehavior.js.map +1 -1
  596. package/world/WorldEventSystem.d.ts +1 -1
  597. package/world/WorldEventSystem.d.ts.map +1 -1
  598. package/world/WorldModel.d.ts +65 -18
  599. package/world/WorldModel.d.ts.map +1 -1
  600. package/world/WorldModel.js +163 -113
  601. package/world/WorldModel.js.map +1 -1
  602. package/world/WorldSerializer.d.ts +4 -4
  603. package/world/WorldSerializer.d.ts.map +1 -1
  604. package/world/WorldSerializer.js +2 -2
  605. package/world/WorldSerializer.js.map +1 -1
  606. package/world/default-trait-registry.d.ts +1 -1
  607. package/world/default-trait-registry.d.ts.map +1 -1
  608. package/world/default-trait-registry.js +3 -3
  609. package/world/default-trait-registry.js.map +1 -1
  610. package/world/index.d.ts +9 -9
  611. package/world/index.d.ts.map +1 -1
  612. package/world/index.js +17 -16
  613. package/world/index.js.map +1 -1
  614. package/world/wall-creation.d.ts +2 -2
  615. package/world/wall-creation.d.ts.map +1 -1
  616. package/world/wall-creation.js +6 -6
  617. package/world/wall-creation.js.map +1 -1
  618. package/world/wall-validation.d.ts +2 -2
  619. package/world/wall-validation.d.ts.map +1 -1
  620. package/world/wall-validation.js +3 -3
  621. package/world/wall-validation.js.map +1 -1
@@ -1,13 +1,27 @@
1
- import { Behavior } from '../behaviors/behavior';
2
- import { IFEntity } from '../entities/if-entity';
3
- import { WorldModel } from './WorldModel';
1
+ import { Behavior } from '../behaviors/behavior.js';
2
+ import { IFEntity } from '../entities/if-entity.js';
3
+ import { WorldModel } from './WorldModel.js';
4
4
  /**
5
5
  * Standard capability ID for visibility control.
6
6
  * Entities can claim this capability to control their own visibility.
7
7
  */
8
8
  export declare const VISIBILITY_CAPABILITY = "if.scope.visible";
9
+ /**
10
+ * ADR-240 evaluator key for a room's derived darkness (`dark.<roomId>`).
11
+ * Owned by this read point; registrars (e.g. the story-loader's
12
+ * `dark while` conditions) build the key with this function, never by
13
+ * hand — the string is constructed in exactly two places, both pinned.
14
+ */
15
+ export declare function darkKey(roomId: string): string;
9
16
  export declare class VisibilityBehavior extends Behavior {
10
17
  static requiredTraits: never[];
18
+ /**
19
+ * The live answer to "does this room require light?" (ADR-240): a
20
+ * registered `dark.<roomId>` evaluator is authoritative (point-of-use
21
+ * truth, never stale); with nothing registered, the stamped trait
22
+ * fact applies unchanged (static `dark`, hand-written TS stories).
23
+ */
24
+ private static roomRequiresLight;
11
25
  /**
12
26
  * Determines if a room is effectively dark (no usable light sources).
13
27
  * This is the single source of truth for darkness checking.
@@ -31,6 +45,29 @@ export declare class VisibilityBehavior extends Behavior {
31
45
  * 3. Default to lit (e.g., glowing gems, phosphorescent moss)
32
46
  */
33
47
  private static isLightActive;
48
+ /**
49
+ * Whether an entity is still concealed (hidden until SEARCH or a game event
50
+ * reveals it). This is the SINGLE shared definition of item concealment for
51
+ * visibility: scope resolution, LOOK, and EXAMINE must all consult it (here
52
+ * or via canSee/getVisible/getVisibleContents), never re-derive it.
53
+ *
54
+ * @param entity - The entity to check (safe on entities without IdentityTrait)
55
+ * @returns true if the entity carries IdentityTrait with concealed === true
56
+ */
57
+ static isConcealed(entity: IFEntity): boolean;
58
+ /**
59
+ * The single per-entity listing filter shared by every visibility path
60
+ * (room contents, container/supporter contents): excludes still-concealed
61
+ * entities, scenery marked invisible, and entities whose visibility
62
+ * capability vetoes being seen.
63
+ *
64
+ * @param entity - The candidate entity
65
+ * @param world - The world model
66
+ * @param observerId - The observer (or container proxy) id passed to a
67
+ * visibility-capability behavior's validate
68
+ * @returns true if the entity may appear in a visible-entity listing
69
+ */
70
+ private static isListable;
34
71
  /**
35
72
  * Determines if an observer can see a target entity
36
73
  */
@@ -39,6 +76,25 @@ export declare class VisibilityBehavior extends Behavior {
39
76
  * Gets all entities visible to an observer
40
77
  */
41
78
  static getVisible(observer: IFEntity, world: WorldModel): IFEntity[];
79
+ /**
80
+ * The direct contents of a container/supporter/actor that could appear in a
81
+ * visible listing: applies the same per-entity filter as getVisible
82
+ * (concealed, invisible scenery, visibility-capability veto) to
83
+ * `getContents(id)` (worn items included by default, ADR-247).
84
+ *
85
+ * Does NOT check whether the container's inside is exposed (closed opaque
86
+ * container) — callers listing contents have already established that, and
87
+ * addVisibleContents keeps that gate itself.
88
+ *
89
+ * This is the shared read for LOOK's and EXAMINE's contents listings — a
90
+ * still-concealed item stays out of both until SEARCH reveals it, by the
91
+ * same definition scope resolution uses.
92
+ *
93
+ * @param container - The container/supporter/actor whose contents to list
94
+ * @param world - The world model
95
+ * @returns the listable direct contents
96
+ */
97
+ static getVisibleContents(container: IFEntity, world: WorldModel): IFEntity[];
42
98
  /**
43
99
  * Recursively adds visible contents of a container/supporter/actor
44
100
  */
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/world/VisibilityBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY1C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,MAAM,CAAC,cAAc,UAAM;IAE3B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAQzD;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAkE/E;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAE;IAsGpE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2DjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA0CrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAwB9D;;;;;;;;;OASG;IACH,MAAM,CAAC,sBAAsB,CAC3B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,GAChB;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,kBAAkB,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE;CAmD/D"}
1
+ {"version":3,"file":"VisibilityBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/world/VisibilityBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAa7C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,MAAM,CAAC,cAAc,UAAM;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAOzD;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAI7C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IA2BzB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAoF/E;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAE;IA8FpE;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAE;IAQ7E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuCjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA0CrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IA6B9D;;;;;;;;;OASG;IACH,MAAM,CAAC,sBAAsB,CAC3B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,GAChB;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,kBAAkB,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE;CAmD/D"}
@@ -2,24 +2,48 @@
2
2
  // VisibilityBehavior.ts - Visibility system for IF
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.VisibilityBehavior = exports.VISIBILITY_CAPABILITY = void 0;
5
- const behavior_1 = require("../behaviors/behavior");
6
- const trait_types_1 = require("../traits/trait-types");
7
- const switchableBehavior_1 = require("../traits/switchable/switchableBehavior");
8
- const vehicleTrait_1 = require("../traits/vehicle/vehicleTrait");
9
- const roomTrait_1 = require("../traits/room/roomTrait");
10
- const containerTrait_1 = require("../traits/container/containerTrait");
11
- const openableTrait_1 = require("../traits/openable/openableTrait");
12
- const lightSourceTrait_1 = require("../traits/light-source/lightSourceTrait");
13
- const sceneryTrait_1 = require("../traits/scenery/sceneryTrait");
14
- const identityTrait_1 = require("../traits/identity/identityTrait");
15
- const capabilities_1 = require("../capabilities");
5
+ exports.darkKey = darkKey;
6
+ const behavior_js_1 = require("../behaviors/behavior.js");
7
+ const trait_types_js_1 = require("../traits/trait-types.js");
8
+ const switchableBehavior_js_1 = require("../traits/switchable/switchableBehavior.js");
9
+ const vehicleTrait_js_1 = require("../traits/vehicle/vehicleTrait.js");
10
+ const roomTrait_js_1 = require("../traits/room/roomTrait.js");
11
+ const containerTrait_js_1 = require("../traits/container/containerTrait.js");
12
+ const openableTrait_js_1 = require("../traits/openable/openableTrait.js");
13
+ const lightSourceTrait_js_1 = require("../traits/light-source/lightSourceTrait.js");
14
+ const sceneryTrait_js_1 = require("../traits/scenery/sceneryTrait.js");
15
+ const identityTrait_js_1 = require("../traits/identity/identityTrait.js");
16
+ const doorTrait_js_1 = require("../traits/door/doorTrait.js");
17
+ const index_js_1 = require("../capabilities/index.js");
16
18
  /**
17
19
  * Standard capability ID for visibility control.
18
20
  * Entities can claim this capability to control their own visibility.
19
21
  */
20
22
  exports.VISIBILITY_CAPABILITY = 'if.scope.visible';
21
- class VisibilityBehavior extends behavior_1.Behavior {
23
+ /**
24
+ * ADR-240 evaluator key for a room's derived darkness (`dark.<roomId>`).
25
+ * Owned by this read point; registrars (e.g. the story-loader's
26
+ * `dark while` conditions) build the key with this function, never by
27
+ * hand — the string is constructed in exactly two places, both pinned.
28
+ */
29
+ function darkKey(roomId) {
30
+ return `dark.${roomId}`;
31
+ }
32
+ class VisibilityBehavior extends behavior_js_1.Behavior {
22
33
  static requiredTraits = [];
34
+ /**
35
+ * The live answer to "does this room require light?" (ADR-240): a
36
+ * registered `dark.<roomId>` evaluator is authoritative (point-of-use
37
+ * truth, never stale); with nothing registered, the stamped trait
38
+ * fact applies unchanged (static `dark`, hand-written TS stories).
39
+ */
40
+ static roomRequiresLight(room, world) {
41
+ const derived = world.evaluate(darkKey(room.id));
42
+ if (typeof derived === 'boolean')
43
+ return derived;
44
+ const roomTrait = room.getTrait(roomTrait_js_1.RoomTrait);
45
+ return Boolean(roomTrait && roomTrait.requiresLight);
46
+ }
23
47
  /**
24
48
  * Determines if a room is effectively dark (no usable light sources).
25
49
  * This is the single source of truth for darkness checking.
@@ -33,9 +57,8 @@ class VisibilityBehavior extends behavior_1.Behavior {
33
57
  * @returns true if the room is dark and has no accessible light sources
34
58
  */
35
59
  static isDark(room, world) {
36
- const roomTrait = room.getTrait(roomTrait_1.RoomTrait);
37
- if (!roomTrait || !roomTrait.requiresLight) {
38
- return false; // Room isn't marked as dark
60
+ if (!this.roomRequiresLight(room, world)) {
61
+ return false; // Room isn't dark (live evaluator or static trait fact)
39
62
  }
40
63
  return !this.hasLightSource(room, world);
41
64
  }
@@ -49,18 +72,65 @@ class VisibilityBehavior extends behavior_1.Behavior {
49
72
  * 3. Default to lit (e.g., glowing gems, phosphorescent moss)
50
73
  */
51
74
  static isLightActive(entity) {
52
- const lightTrait = entity.getTrait(lightSourceTrait_1.LightSourceTrait);
75
+ const lightTrait = entity.getTrait(lightSourceTrait_js_1.LightSourceTrait);
53
76
  // Explicit isLit property takes precedence
54
77
  if (lightTrait?.isLit !== undefined) {
55
78
  return lightTrait.isLit === true;
56
79
  }
57
80
  // Fall back to switchable state
58
- if (entity.hasTrait(trait_types_1.TraitType.SWITCHABLE)) {
59
- return switchableBehavior_1.SwitchableBehavior.isOn(entity);
81
+ if (entity.hasTrait(trait_types_js_1.TraitType.SWITCHABLE)) {
82
+ return switchableBehavior_js_1.SwitchableBehavior.isOn(entity);
60
83
  }
61
84
  // Default: light sources without explicit state are lit
62
85
  return true;
63
86
  }
87
+ /**
88
+ * Whether an entity is still concealed (hidden until SEARCH or a game event
89
+ * reveals it). This is the SINGLE shared definition of item concealment for
90
+ * visibility: scope resolution, LOOK, and EXAMINE must all consult it (here
91
+ * or via canSee/getVisible/getVisibleContents), never re-derive it.
92
+ *
93
+ * @param entity - The entity to check (safe on entities without IdentityTrait)
94
+ * @returns true if the entity carries IdentityTrait with concealed === true
95
+ */
96
+ static isConcealed(entity) {
97
+ return entity.getTrait(identityTrait_js_1.IdentityTrait)?.concealed === true;
98
+ }
99
+ /**
100
+ * The single per-entity listing filter shared by every visibility path
101
+ * (room contents, container/supporter contents): excludes still-concealed
102
+ * entities, scenery marked invisible, and entities whose visibility
103
+ * capability vetoes being seen.
104
+ *
105
+ * @param entity - The candidate entity
106
+ * @param world - The world model
107
+ * @param observerId - The observer (or container proxy) id passed to a
108
+ * visibility-capability behavior's validate
109
+ * @returns true if the entity may appear in a visible-entity listing
110
+ */
111
+ static isListable(entity, world, observerId) {
112
+ // Concealed entities are hidden everywhere until revealed
113
+ if (this.isConcealed(entity)) {
114
+ return false;
115
+ }
116
+ // Check if entity is invisible via SceneryTrait
117
+ const scenery = entity.getTrait(sceneryTrait_js_1.SceneryTrait);
118
+ if (scenery && scenery.visible === false) {
119
+ return false;
120
+ }
121
+ // Check if entity has visibility capability that blocks being seen
122
+ const visibilityTrait = (0, index_js_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
123
+ if (visibilityTrait) {
124
+ const behavior = world.getBehaviorForCapability(visibilityTrait, exports.VISIBILITY_CAPABILITY);
125
+ if (behavior) {
126
+ const result = behavior.validate(entity, world, observerId, {});
127
+ if (!result.valid) {
128
+ return false;
129
+ }
130
+ }
131
+ }
132
+ return true;
133
+ }
64
134
  /**
65
135
  * Determines if an observer can see a target entity
66
136
  */
@@ -68,13 +138,18 @@ class VisibilityBehavior extends behavior_1.Behavior {
68
138
  // Can always see self
69
139
  if (observer.id === target.id)
70
140
  return true;
141
+ // Concealed entities are hidden from sight until revealed (same rule as
142
+ // getVisible/getVisibleContents — one definition of "visible")
143
+ if (this.isConcealed(target)) {
144
+ return false;
145
+ }
71
146
  // Check if target is invisible via SceneryTrait
72
- const targetScenery = target.getTrait(sceneryTrait_1.SceneryTrait);
147
+ const targetScenery = target.getTrait(sceneryTrait_js_1.SceneryTrait);
73
148
  if (targetScenery && targetScenery.visible === false) {
74
149
  return false;
75
150
  }
76
151
  // Check if target has visibility capability that blocks being seen
77
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(target, exports.VISIBILITY_CAPABILITY);
152
+ const visibilityTrait = (0, index_js_1.findTraitWithCapability)(target, exports.VISIBILITY_CAPABILITY);
78
153
  if (visibilityTrait) {
79
154
  const behavior = world.getBehaviorForCapability(visibilityTrait, exports.VISIBILITY_CAPABILITY);
80
155
  if (behavior) {
@@ -88,7 +163,7 @@ class VisibilityBehavior extends behavior_1.Behavior {
88
163
  const observerRoom = world.getContainingRoom(observer.id);
89
164
  const targetRoom = world.getContainingRoom(target.id);
90
165
  // Must be in same room (or target is the room)
91
- if (target.hasTrait(trait_types_1.TraitType.ROOM)) {
166
+ if (target.hasTrait(trait_types_js_1.TraitType.ROOM)) {
92
167
  // Check if we're in the target room
93
168
  if (observerRoom?.id === target.id) {
94
169
  // Always know what room you're in, even in darkness
@@ -96,18 +171,23 @@ class VisibilityBehavior extends behavior_1.Behavior {
96
171
  }
97
172
  return false;
98
173
  }
99
- if (!observerRoom || observerRoom.id !== targetRoom?.id) {
174
+ // A door is present at BOTH of its rooms (ADR-234 AC-3; David's ruling
175
+ // 2026-07-18): visible from either side. Only the door itself is
176
+ // two-sided — the far room and its contents stay unseen.
177
+ const targetDoor = target.getTrait(doorTrait_js_1.DoorTrait);
178
+ const doorPresent = !!targetDoor && !!observerRoom &&
179
+ (targetDoor.room1 === observerRoom.id || targetDoor.room2 === observerRoom.id);
180
+ if (!observerRoom || (!doorPresent && observerRoom.id !== targetRoom?.id)) {
100
181
  return false;
101
182
  }
102
- // Check if room is dark
103
- const roomTrait = observerRoom.getTrait(roomTrait_1.RoomTrait);
104
- if (roomTrait && roomTrait.requiresLight) {
183
+ // Check if room is dark (live evaluator first — ADR-240)
184
+ if (this.roomRequiresLight(observerRoom, world)) {
105
185
  // In a dark room, need light to see
106
186
  if (!this.hasLightSource(observerRoom, world)) {
107
187
  // Special cases in darkness:
108
188
  // 1. Can see lit light sources
109
- if (target.hasTrait(trait_types_1.TraitType.LIGHT_SOURCE) &&
110
- target.getTrait(lightSourceTrait_1.LightSourceTrait)?.isLit === true) {
189
+ if (target.hasTrait(trait_types_js_1.TraitType.LIGHT_SOURCE) &&
190
+ target.getTrait(lightSourceTrait_js_1.LightSourceTrait)?.isLit === true) {
111
191
  return true;
112
192
  }
113
193
  // 2. Can see items you're carrying (by feel)
@@ -119,6 +199,11 @@ class VisibilityBehavior extends behavior_1.Behavior {
119
199
  return false;
120
200
  }
121
201
  }
202
+ // A far-side door sits at the room boundary — container occlusion
203
+ // cannot apply across it.
204
+ if (doorPresent && observerRoom.id !== targetRoom?.id) {
205
+ return true;
206
+ }
122
207
  // Check line of sight through containers
123
208
  const hasLineOfSight = this.hasLineOfSight(observer.id, target.id, world);
124
209
  return hasLineOfSight;
@@ -137,9 +222,8 @@ class VisibilityBehavior extends behavior_1.Behavior {
137
222
  visible.push(observerRoom);
138
223
  seen.add(observerRoom.id);
139
224
  }
140
- // Check if room is dark
141
- const roomTrait = observerRoom.getTrait(roomTrait_1.RoomTrait);
142
- const isDark = roomTrait && roomTrait.requiresLight;
225
+ // Check if room is dark (live evaluator first — ADR-240)
226
+ const isDark = this.roomRequiresLight(observerRoom, world);
143
227
  const hasLight = this.hasLightSource(observerRoom, world);
144
228
  // If it's dark and no light, only see specific things
145
229
  if (isDark && !hasLight) {
@@ -154,8 +238,8 @@ class VisibilityBehavior extends behavior_1.Behavior {
154
238
  // Add any lit light sources in the room
155
239
  const roomContents = world.getAllContents(observerRoom.id, { recursive: true });
156
240
  for (const entity of roomContents) {
157
- if (entity.hasTrait(trait_types_1.TraitType.LIGHT_SOURCE)) {
158
- const light = entity.getTrait(lightSourceTrait_1.LightSourceTrait);
241
+ if (entity.hasTrait(trait_types_js_1.TraitType.LIGHT_SOURCE)) {
242
+ const light = entity.getTrait(lightSourceTrait_js_1.LightSourceTrait);
159
243
  if (light && light.isLit === true && !seen.has(entity.id)) {
160
244
  visible.push(entity);
161
245
  seen.add(entity.id);
@@ -166,40 +250,36 @@ class VisibilityBehavior extends behavior_1.Behavior {
166
250
  }
167
251
  // Get contents of the room
168
252
  const roomContents = world.getContents(observerRoom.id);
169
- // Add visible entities in the room
253
+ // Add visible entities in the room (shared per-entity filter: concealed,
254
+ // invisible scenery, capability veto)
170
255
  for (const entity of roomContents) {
171
256
  if (entity.id !== observer.id && !seen.has(entity.id)) {
172
- // Check if entity is concealed (hidden until revealed via SEARCH or game event)
173
- const identity = entity.getTrait(identityTrait_1.IdentityTrait);
174
- if (identity && identity.concealed === true) {
175
- continue;
176
- }
177
- // Check if entity is visible via SceneryTrait
178
- const scenery = entity.getTrait(sceneryTrait_1.SceneryTrait);
179
- if (scenery && scenery.visible === false) {
257
+ if (!this.isListable(entity, world, observer.id)) {
180
258
  continue;
181
259
  }
182
- // Check if entity has visibility capability that blocks being seen
183
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
184
- if (visibilityTrait) {
185
- const behavior = world.getBehaviorForCapability(visibilityTrait, exports.VISIBILITY_CAPABILITY);
186
- if (behavior) {
187
- const result = behavior.validate(entity, world, observer.id, {});
188
- if (!result.valid) {
189
- continue; // Entity blocks visibility via capability
190
- }
191
- }
192
- }
193
260
  visible.push(entity);
194
261
  seen.add(entity.id);
195
262
  // Check contents of this entity if it's a container/supporter/actor
196
- if (entity.hasTrait(trait_types_1.TraitType.CONTAINER) ||
197
- entity.hasTrait(trait_types_1.TraitType.SUPPORTER) ||
198
- entity.hasTrait(trait_types_1.TraitType.ACTOR)) {
263
+ if (entity.hasTrait(trait_types_js_1.TraitType.CONTAINER) ||
264
+ entity.hasTrait(trait_types_js_1.TraitType.SUPPORTER) ||
265
+ entity.hasTrait(trait_types_js_1.TraitType.ACTOR)) {
199
266
  this.addVisibleContents(entity, visible, seen, world);
200
267
  }
201
268
  }
202
269
  }
270
+ // Doors of this room whose spatial home is the far side (ADR-234 AC-3;
271
+ // David's ruling 2026-07-18): a door is present at both of its rooms.
272
+ for (const door of world.findByTrait(trait_types_js_1.TraitType.DOOR)) {
273
+ if (seen.has(door.id))
274
+ continue;
275
+ const doorTrait = door.getTrait(doorTrait_js_1.DoorTrait);
276
+ if (!doorTrait || (doorTrait.room1 !== observerRoom.id && doorTrait.room2 !== observerRoom.id))
277
+ continue;
278
+ if (this.canSee(observer, door, world)) {
279
+ visible.push(door);
280
+ seen.add(door.id);
281
+ }
282
+ }
203
283
  // Add carried items
204
284
  const carried = world.getContents(observer.id);
205
285
  for (const entity of carried) {
@@ -207,56 +287,64 @@ class VisibilityBehavior extends behavior_1.Behavior {
207
287
  visible.push(entity);
208
288
  seen.add(entity.id);
209
289
  // Check contents of carried containers
210
- if (entity.hasTrait(trait_types_1.TraitType.CONTAINER) || entity.hasTrait(trait_types_1.TraitType.SUPPORTER)) {
290
+ if (entity.hasTrait(trait_types_js_1.TraitType.CONTAINER) || entity.hasTrait(trait_types_js_1.TraitType.SUPPORTER)) {
211
291
  this.addVisibleContents(entity, visible, seen, world);
212
292
  }
213
293
  }
214
294
  }
215
295
  return visible;
216
296
  }
297
+ /**
298
+ * The direct contents of a container/supporter/actor that could appear in a
299
+ * visible listing: applies the same per-entity filter as getVisible
300
+ * (concealed, invisible scenery, visibility-capability veto) to
301
+ * `getContents(id)` (worn items included by default, ADR-247).
302
+ *
303
+ * Does NOT check whether the container's inside is exposed (closed opaque
304
+ * container) — callers listing contents have already established that, and
305
+ * addVisibleContents keeps that gate itself.
306
+ *
307
+ * This is the shared read for LOOK's and EXAMINE's contents listings — a
308
+ * still-concealed item stays out of both until SEARCH reveals it, by the
309
+ * same definition scope resolution uses.
310
+ *
311
+ * @param container - The container/supporter/actor whose contents to list
312
+ * @param world - The world model
313
+ * @returns the listable direct contents
314
+ */
315
+ static getVisibleContents(container, world) {
316
+ // Note: no direct observer here — the container's id is the proxy passed
317
+ // to visibility-capability behaviors, matching addVisibleContents.
318
+ return world
319
+ .getContents(container.id) // ADR-247: worn items included by default
320
+ .filter(entity => this.isListable(entity, world, container.id));
321
+ }
217
322
  /**
218
323
  * Recursively adds visible contents of a container/supporter/actor
219
324
  */
220
325
  static addVisibleContents(container, visible, seen, world) {
221
326
  // Check if we can see inside this container
222
- if (container.hasTrait(trait_types_1.TraitType.CONTAINER)) {
223
- const containerTrait = container.getTrait(containerTrait_1.ContainerTrait);
327
+ if (container.hasTrait(trait_types_js_1.TraitType.CONTAINER)) {
328
+ const containerTrait = container.getTrait(containerTrait_js_1.ContainerTrait);
224
329
  const isTransparent = containerTrait?.isTransparent ?? false;
225
- if (!isTransparent && container.hasTrait(trait_types_1.TraitType.OPENABLE)) {
226
- const openable = container.getTrait(openableTrait_1.OpenableTrait);
330
+ if (!isTransparent && container.hasTrait(trait_types_js_1.TraitType.OPENABLE)) {
331
+ const openable = container.getTrait(openableTrait_js_1.OpenableTrait);
227
332
  const isOpen = openable?.isOpen ?? false;
228
333
  if (!isOpen) {
229
334
  return; // Can't see inside closed opaque container
230
335
  }
231
336
  }
232
337
  }
233
- // Get contents (including worn items for actors)
234
- const contents = world.getContents(container.id, { includeWorn: true });
235
- for (const entity of contents) {
338
+ // Contents that pass the shared per-entity filter (concealed, invisible
339
+ // scenery, capability veto one definition with getVisible)
340
+ for (const entity of this.getVisibleContents(container, world)) {
236
341
  if (!seen.has(entity.id)) {
237
- // Check if entity is visible via SceneryTrait
238
- const scenery = entity.getTrait(sceneryTrait_1.SceneryTrait);
239
- if (scenery && scenery.visible === false) {
240
- continue;
241
- }
242
- // Check if entity has visibility capability that blocks being seen
243
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
244
- if (visibilityTrait) {
245
- const behavior = world.getBehaviorForCapability(visibilityTrait, exports.VISIBILITY_CAPABILITY);
246
- if (behavior) {
247
- // Note: We don't have a direct observer here, use container's id as proxy
248
- const result = behavior.validate(entity, world, container.id, {});
249
- if (!result.valid) {
250
- continue; // Entity blocks visibility via capability
251
- }
252
- }
253
- }
254
342
  visible.push(entity);
255
343
  seen.add(entity.id);
256
344
  // Recurse into nested containers
257
- if (entity.hasTrait(trait_types_1.TraitType.CONTAINER) ||
258
- entity.hasTrait(trait_types_1.TraitType.SUPPORTER) ||
259
- entity.hasTrait(trait_types_1.TraitType.ACTOR)) {
345
+ if (entity.hasTrait(trait_types_js_1.TraitType.CONTAINER) ||
346
+ entity.hasTrait(trait_types_js_1.TraitType.SUPPORTER) ||
347
+ entity.hasTrait(trait_types_js_1.TraitType.ACTOR)) {
260
348
  this.addVisibleContents(entity, visible, seen, world);
261
349
  }
262
350
  }
@@ -267,10 +355,10 @@ class VisibilityBehavior extends behavior_1.Behavior {
267
355
  * Handles nested containers, worn items, and various light source types.
268
356
  */
269
357
  static hasLightSource(room, world) {
270
- // Check all entities in the room, including worn items
271
- const contents = world.getAllContents(room.id, { recursive: true, includeWorn: true });
358
+ // Check all entities in the room, including worn items (ADR-247: default)
359
+ const contents = world.getAllContents(room.id, { recursive: true });
272
360
  for (const entity of contents) {
273
- if (!entity.hasTrait(trait_types_1.TraitType.LIGHT_SOURCE))
361
+ if (!entity.hasTrait(trait_types_js_1.TraitType.LIGHT_SOURCE))
274
362
  continue;
275
363
  // Check if light is active (isLit, switchable, or default)
276
364
  if (!this.isLightActive(entity))
@@ -312,16 +400,16 @@ class VisibilityBehavior extends behavior_1.Behavior {
312
400
  if (!container)
313
401
  return true;
314
402
  // Actors don't block access/visibility of their contents
315
- if (container.hasTrait(trait_types_1.TraitType.ACTOR)) {
403
+ if (container.hasTrait(trait_types_js_1.TraitType.ACTOR)) {
316
404
  current = parentId;
317
405
  continue;
318
406
  }
319
407
  // Opaque + closed containers block the path
320
- if (container.hasTrait(trait_types_1.TraitType.CONTAINER)) {
321
- const containerTrait = container.getTrait(containerTrait_1.ContainerTrait);
408
+ if (container.hasTrait(trait_types_js_1.TraitType.CONTAINER)) {
409
+ const containerTrait = container.getTrait(containerTrait_js_1.ContainerTrait);
322
410
  const isTransparent = containerTrait?.isTransparent ?? false;
323
- if (!isTransparent && container.hasTrait(trait_types_1.TraitType.OPENABLE)) {
324
- const openable = container.getTrait(openableTrait_1.OpenableTrait);
411
+ if (!isTransparent && container.hasTrait(trait_types_js_1.TraitType.OPENABLE)) {
412
+ const openable = container.getTrait(openableTrait_js_1.OpenableTrait);
325
413
  const isOpen = openable?.isOpen ?? false;
326
414
  if (!isOpen) {
327
415
  return false;
@@ -329,7 +417,7 @@ class VisibilityBehavior extends behavior_1.Behavior {
329
417
  }
330
418
  }
331
419
  // Stop at rooms (natural top of containment)
332
- if (container.hasTrait(trait_types_1.TraitType.ROOM))
420
+ if (container.hasTrait(trait_types_js_1.TraitType.ROOM))
333
421
  return true;
334
422
  current = parentId;
335
423
  }
@@ -353,14 +441,18 @@ class VisibilityBehavior extends behavior_1.Behavior {
353
441
  * (used for filtering queries)
354
442
  */
355
443
  static isVisible(entity, world) {
444
+ // Concealed entities are hidden until revealed (shared definition)
445
+ if (this.isConcealed(entity)) {
446
+ return false;
447
+ }
356
448
  // Check if explicitly invisible via SceneryTrait
357
- const scenery = entity.getTrait(sceneryTrait_1.SceneryTrait);
449
+ const scenery = entity.getTrait(sceneryTrait_js_1.SceneryTrait);
358
450
  if (scenery && scenery.visible === false) {
359
451
  return false;
360
452
  }
361
453
  // Check if entity has visibility capability that blocks being seen
362
454
  // Note: For isVisible we don't have an observer, so we pass empty string
363
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
455
+ const visibilityTrait = (0, index_js_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
364
456
  if (visibilityTrait) {
365
457
  const behavior = world.getBehaviorForCapability(visibilityTrait, exports.VISIBILITY_CAPABILITY);
366
458
  if (behavior) {
@@ -394,12 +486,12 @@ class VisibilityBehavior extends behavior_1.Behavior {
394
486
  return { location: observer, immediateContainer: null };
395
487
  }
396
488
  // If immediate location is a room, we're done
397
- if (immediateLocation.hasTrait(trait_types_1.TraitType.ROOM)) {
489
+ if (immediateLocation.hasTrait(trait_types_js_1.TraitType.ROOM)) {
398
490
  return { location: immediateLocation, immediateContainer: null };
399
491
  }
400
492
  // Check if we're in a vehicle
401
- if (immediateLocation.hasTrait(trait_types_1.TraitType.VEHICLE)) {
402
- const vehicleTrait = immediateLocation.getTrait(vehicleTrait_1.VehicleTrait);
493
+ if (immediateLocation.hasTrait(trait_types_js_1.TraitType.VEHICLE)) {
494
+ const vehicleTrait = immediateLocation.getTrait(vehicleTrait_js_1.VehicleTrait);
403
495
  if (vehicleTrait?.transparent) {
404
496
  // Transparent vehicle - describe the room
405
497
  const room = world.getContainingRoom(observer.id);
@@ -411,10 +503,10 @@ class VisibilityBehavior extends behavior_1.Behavior {
411
503
  return { location: immediateLocation, immediateContainer: null };
412
504
  }
413
505
  // Check if we're in a container
414
- if (immediateLocation.hasTrait(trait_types_1.TraitType.CONTAINER)) {
506
+ if (immediateLocation.hasTrait(trait_types_js_1.TraitType.CONTAINER)) {
415
507
  // Check if container is open (visibility passes through)
416
- if (immediateLocation.hasTrait(trait_types_1.TraitType.OPENABLE)) {
417
- const openable = immediateLocation.getTrait(openableTrait_1.OpenableTrait);
508
+ if (immediateLocation.hasTrait(trait_types_js_1.TraitType.OPENABLE)) {
509
+ const openable = immediateLocation.getTrait(openableTrait_js_1.OpenableTrait);
418
510
  if (openable?.isOpen) {
419
511
  // Open container - describe the room
420
512
  const room = world.getContainingRoom(observer.id);
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityBehavior.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/world/VisibilityBehavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VisibilityBehavior.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/world/VisibilityBehavior.ts"],"names":[],"mappings":"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"}