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