@sharpee/world-model 0.9.60-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/README.md +61 -0
  2. package/dist/behaviors/attack.d.ts +52 -0
  3. package/dist/behaviors/attack.d.ts.map +1 -0
  4. package/dist/behaviors/attack.js +161 -0
  5. package/dist/behaviors/attack.js.map +1 -0
  6. package/dist/behaviors/behavior.d.ts +67 -0
  7. package/dist/behaviors/behavior.d.ts.map +1 -0
  8. package/dist/behaviors/behavior.js +80 -0
  9. package/dist/behaviors/behavior.js.map +1 -0
  10. package/dist/behaviors/index.d.ts +21 -0
  11. package/dist/behaviors/index.d.ts.map +1 -0
  12. package/dist/behaviors/index.js +39 -0
  13. package/dist/behaviors/index.js.map +1 -0
  14. package/dist/capabilities/capability-behavior.d.ts +112 -0
  15. package/dist/capabilities/capability-behavior.d.ts.map +1 -0
  16. package/dist/capabilities/capability-behavior.js +9 -0
  17. package/dist/capabilities/capability-behavior.js.map +1 -0
  18. package/dist/capabilities/capability-defaults.d.ts +67 -0
  19. package/dist/capabilities/capability-defaults.d.ts.map +1 -0
  20. package/dist/capabilities/capability-defaults.js +81 -0
  21. package/dist/capabilities/capability-defaults.js.map +1 -0
  22. package/dist/capabilities/capability-helpers.d.ts +76 -0
  23. package/dist/capabilities/capability-helpers.d.ts.map +1 -0
  24. package/dist/capabilities/capability-helpers.js +112 -0
  25. package/dist/capabilities/capability-helpers.js.map +1 -0
  26. package/dist/capabilities/capability-registry.d.ts +115 -0
  27. package/dist/capabilities/capability-registry.d.ts.map +1 -0
  28. package/dist/capabilities/capability-registry.js +136 -0
  29. package/dist/capabilities/capability-registry.js.map +1 -0
  30. package/dist/capabilities/entity-builder.d.ts +79 -0
  31. package/dist/capabilities/entity-builder.d.ts.map +1 -0
  32. package/dist/capabilities/entity-builder.js +116 -0
  33. package/dist/capabilities/entity-builder.js.map +1 -0
  34. package/dist/capabilities/index.d.ts +13 -0
  35. package/dist/capabilities/index.d.ts.map +1 -0
  36. package/dist/capabilities/index.js +40 -0
  37. package/dist/capabilities/index.js.map +1 -0
  38. package/dist/capabilities/types.d.ts +35 -0
  39. package/dist/capabilities/types.d.ts.map +1 -0
  40. package/dist/capabilities/types.js +16 -0
  41. package/dist/capabilities/types.js.map +1 -0
  42. package/dist/commands/command-types.d.ts +30 -0
  43. package/dist/commands/command-types.d.ts.map +1 -0
  44. package/dist/commands/command-types.js +6 -0
  45. package/dist/commands/command-types.js.map +1 -0
  46. package/dist/commands/index.d.ts +7 -0
  47. package/dist/commands/index.d.ts.map +1 -0
  48. package/dist/commands/index.js +23 -0
  49. package/dist/commands/index.js.map +1 -0
  50. package/dist/commands/parsed-command.d.ts +204 -0
  51. package/dist/commands/parsed-command.d.ts.map +1 -0
  52. package/dist/commands/parsed-command.js +25 -0
  53. package/dist/commands/parsed-command.js.map +1 -0
  54. package/dist/commands/validated-command.d.ts +52 -0
  55. package/dist/commands/validated-command.d.ts.map +1 -0
  56. package/dist/commands/validated-command.js +8 -0
  57. package/dist/commands/validated-command.js.map +1 -0
  58. package/dist/constants/action-failures.d.ts +54 -0
  59. package/dist/constants/action-failures.d.ts.map +1 -0
  60. package/dist/constants/action-failures.js +68 -0
  61. package/dist/constants/action-failures.js.map +1 -0
  62. package/dist/constants/directions.d.ts +32 -0
  63. package/dist/constants/directions.d.ts.map +1 -0
  64. package/dist/constants/directions.js +53 -0
  65. package/dist/constants/directions.js.map +1 -0
  66. package/dist/constants/if-events.d.ts +5 -0
  67. package/dist/constants/if-events.d.ts.map +1 -0
  68. package/dist/constants/if-events.js +10 -0
  69. package/dist/constants/if-events.js.map +1 -0
  70. package/dist/constants/index.d.ts +9 -0
  71. package/dist/constants/index.d.ts.map +1 -0
  72. package/dist/constants/index.js +25 -0
  73. package/dist/constants/index.js.map +1 -0
  74. package/dist/entities/entity-store.d.ts +66 -0
  75. package/dist/entities/entity-store.d.ts.map +1 -0
  76. package/dist/entities/entity-store.js +116 -0
  77. package/dist/entities/entity-store.js.map +1 -0
  78. package/dist/entities/entity-types.d.ts +40 -0
  79. package/dist/entities/entity-types.d.ts.map +1 -0
  80. package/dist/entities/entity-types.js +56 -0
  81. package/dist/entities/entity-types.js.map +1 -0
  82. package/dist/entities/if-entity.d.ts +259 -0
  83. package/dist/entities/if-entity.d.ts.map +1 -0
  84. package/dist/entities/if-entity.js +498 -0
  85. package/dist/entities/if-entity.js.map +1 -0
  86. package/dist/entities/index.d.ts +5 -0
  87. package/dist/entities/index.d.ts.map +1 -0
  88. package/dist/entities/index.js +13 -0
  89. package/dist/entities/index.js.map +1 -0
  90. package/dist/events/types.d.ts +45 -0
  91. package/dist/events/types.d.ts.map +1 -0
  92. package/dist/events/types.js +9 -0
  93. package/dist/events/types.js.map +1 -0
  94. package/dist/examples/event-handler-registration.d.ts +14 -0
  95. package/dist/examples/event-handler-registration.d.ts.map +1 -0
  96. package/dist/examples/event-handler-registration.js +158 -0
  97. package/dist/examples/event-handler-registration.js.map +1 -0
  98. package/dist/extensions/base-extension.d.ts +69 -0
  99. package/dist/extensions/base-extension.d.ts.map +1 -0
  100. package/dist/extensions/base-extension.js +83 -0
  101. package/dist/extensions/base-extension.js.map +1 -0
  102. package/dist/extensions/index.d.ts +11 -0
  103. package/dist/extensions/index.d.ts.map +1 -0
  104. package/dist/extensions/index.js +39 -0
  105. package/dist/extensions/index.js.map +1 -0
  106. package/dist/extensions/loader.d.ts +52 -0
  107. package/dist/extensions/loader.d.ts.map +1 -0
  108. package/dist/extensions/loader.js +177 -0
  109. package/dist/extensions/loader.js.map +1 -0
  110. package/dist/extensions/manager.d.ts +68 -0
  111. package/dist/extensions/manager.d.ts.map +1 -0
  112. package/dist/extensions/manager.js +164 -0
  113. package/dist/extensions/manager.js.map +1 -0
  114. package/dist/extensions/registry.d.ts +100 -0
  115. package/dist/extensions/registry.d.ts.map +1 -0
  116. package/dist/extensions/registry.js +193 -0
  117. package/dist/extensions/registry.js.map +1 -0
  118. package/dist/extensions/types.d.ts +226 -0
  119. package/dist/extensions/types.d.ts.map +1 -0
  120. package/dist/extensions/types.js +28 -0
  121. package/dist/extensions/types.js.map +1 -0
  122. package/dist/index.d.ts +39 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +68 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/interfaces/command-executor.d.ts +17 -0
  127. package/dist/interfaces/command-executor.d.ts.map +1 -0
  128. package/dist/interfaces/command-executor.js +6 -0
  129. package/dist/interfaces/command-executor.js.map +1 -0
  130. package/dist/interfaces/command-processor.d.ts +17 -0
  131. package/dist/interfaces/command-processor.d.ts.map +1 -0
  132. package/dist/interfaces/command-processor.js +6 -0
  133. package/dist/interfaces/command-processor.js.map +1 -0
  134. package/dist/interfaces/command-validator.d.ts +17 -0
  135. package/dist/interfaces/command-validator.d.ts.map +1 -0
  136. package/dist/interfaces/command-validator.js +6 -0
  137. package/dist/interfaces/command-validator.js.map +1 -0
  138. package/dist/interfaces/index.d.ts +8 -0
  139. package/dist/interfaces/index.d.ts.map +1 -0
  140. package/dist/interfaces/index.js +24 -0
  141. package/dist/interfaces/index.js.map +1 -0
  142. package/dist/interfaces/language-provider.d.ts +86 -0
  143. package/dist/interfaces/language-provider.d.ts.map +1 -0
  144. package/dist/interfaces/language-provider.js +14 -0
  145. package/dist/interfaces/language-provider.js.map +1 -0
  146. package/dist/interfaces/parser.d.ts +16 -0
  147. package/dist/interfaces/parser.d.ts.map +1 -0
  148. package/dist/interfaces/parser.js +6 -0
  149. package/dist/interfaces/parser.js.map +1 -0
  150. package/dist/scope/index.d.ts +8 -0
  151. package/dist/scope/index.d.ts.map +1 -0
  152. package/dist/scope/index.js +24 -0
  153. package/dist/scope/index.js.map +1 -0
  154. package/dist/scope/scope-evaluator.d.ts +58 -0
  155. package/dist/scope/scope-evaluator.d.ts.map +1 -0
  156. package/dist/scope/scope-evaluator.js +207 -0
  157. package/dist/scope/scope-evaluator.js.map +1 -0
  158. package/dist/scope/scope-registry.d.ts +59 -0
  159. package/dist/scope/scope-registry.d.ts.map +1 -0
  160. package/dist/scope/scope-registry.js +182 -0
  161. package/dist/scope/scope-registry.js.map +1 -0
  162. package/dist/scope/scope-rule.d.ts +86 -0
  163. package/dist/scope/scope-rule.d.ts.map +1 -0
  164. package/dist/scope/scope-rule.js +7 -0
  165. package/dist/scope/scope-rule.js.map +1 -0
  166. package/dist/services/ScopeService.d.ts +8 -0
  167. package/dist/services/ScopeService.d.ts.map +1 -0
  168. package/dist/services/ScopeService.js +19 -0
  169. package/dist/services/ScopeService.js.map +1 -0
  170. package/dist/services/index.d.ts +2 -0
  171. package/dist/services/index.d.ts.map +1 -0
  172. package/dist/services/index.js +6 -0
  173. package/dist/services/index.js.map +1 -0
  174. package/dist/test-structure.d.ts +3 -0
  175. package/dist/test-structure.d.ts.map +1 -0
  176. package/dist/test-structure.js +26 -0
  177. package/dist/test-structure.js.map +1 -0
  178. package/dist/traits/actor/actorBehavior.d.ts +121 -0
  179. package/dist/traits/actor/actorBehavior.d.ts.map +1 -0
  180. package/dist/traits/actor/actorBehavior.js +288 -0
  181. package/dist/traits/actor/actorBehavior.js.map +1 -0
  182. package/dist/traits/actor/actorTrait.d.ts +158 -0
  183. package/dist/traits/actor/actorTrait.d.ts.map +1 -0
  184. package/dist/traits/actor/actorTrait.js +152 -0
  185. package/dist/traits/actor/actorTrait.js.map +1 -0
  186. package/dist/traits/actor/index.d.ts +3 -0
  187. package/dist/traits/actor/index.d.ts.map +1 -0
  188. package/dist/traits/actor/index.js +11 -0
  189. package/dist/traits/actor/index.js.map +1 -0
  190. package/dist/traits/all-traits.d.ts +95 -0
  191. package/dist/traits/all-traits.d.ts.map +1 -0
  192. package/dist/traits/all-traits.js +178 -0
  193. package/dist/traits/all-traits.js.map +1 -0
  194. package/dist/traits/attached/attachedTrait.d.ts +61 -0
  195. package/dist/traits/attached/attachedTrait.d.ts.map +1 -0
  196. package/dist/traits/attached/attachedTrait.js +36 -0
  197. package/dist/traits/attached/attachedTrait.js.map +1 -0
  198. package/dist/traits/attached/index.d.ts +2 -0
  199. package/dist/traits/attached/index.d.ts.map +1 -0
  200. package/dist/traits/attached/index.js +18 -0
  201. package/dist/traits/attached/index.js.map +1 -0
  202. package/dist/traits/breakable/breakableBehavior.d.ts +43 -0
  203. package/dist/traits/breakable/breakableBehavior.d.ts.map +1 -0
  204. package/dist/traits/breakable/breakableBehavior.js +70 -0
  205. package/dist/traits/breakable/breakableBehavior.js.map +1 -0
  206. package/dist/traits/breakable/breakableTrait.d.ts +22 -0
  207. package/dist/traits/breakable/breakableTrait.d.ts.map +1 -0
  208. package/dist/traits/breakable/breakableTrait.js +25 -0
  209. package/dist/traits/breakable/breakableTrait.js.map +1 -0
  210. package/dist/traits/breakable/index.d.ts +3 -0
  211. package/dist/traits/breakable/index.d.ts.map +1 -0
  212. package/dist/traits/breakable/index.js +8 -0
  213. package/dist/traits/breakable/index.js.map +1 -0
  214. package/dist/traits/button/buttonTrait.d.ts +53 -0
  215. package/dist/traits/button/buttonTrait.d.ts.map +1 -0
  216. package/dist/traits/button/buttonTrait.js +36 -0
  217. package/dist/traits/button/buttonTrait.js.map +1 -0
  218. package/dist/traits/button/index.d.ts +2 -0
  219. package/dist/traits/button/index.d.ts.map +1 -0
  220. package/dist/traits/button/index.js +18 -0
  221. package/dist/traits/button/index.js.map +1 -0
  222. package/dist/traits/climbable/climbableBehavior.d.ts +37 -0
  223. package/dist/traits/climbable/climbableBehavior.d.ts.map +1 -0
  224. package/dist/traits/climbable/climbableBehavior.js +70 -0
  225. package/dist/traits/climbable/climbableBehavior.js.map +1 -0
  226. package/dist/traits/climbable/climbableTrait.d.ts +31 -0
  227. package/dist/traits/climbable/climbableTrait.d.ts.map +1 -0
  228. package/dist/traits/climbable/climbableTrait.js +47 -0
  229. package/dist/traits/climbable/climbableTrait.js.map +1 -0
  230. package/dist/traits/climbable/index.d.ts +6 -0
  231. package/dist/traits/climbable/index.d.ts.map +1 -0
  232. package/dist/traits/climbable/index.js +22 -0
  233. package/dist/traits/climbable/index.js.map +1 -0
  234. package/dist/traits/clothing/clothingTrait.d.ts +58 -0
  235. package/dist/traits/clothing/clothingTrait.d.ts.map +1 -0
  236. package/dist/traits/clothing/clothingTrait.js +78 -0
  237. package/dist/traits/clothing/clothingTrait.js.map +1 -0
  238. package/dist/traits/clothing/index.d.ts +2 -0
  239. package/dist/traits/clothing/index.d.ts.map +1 -0
  240. package/dist/traits/clothing/index.js +19 -0
  241. package/dist/traits/clothing/index.js.map +1 -0
  242. package/dist/traits/combatant/combatantBehavior.d.ts +70 -0
  243. package/dist/traits/combatant/combatantBehavior.d.ts.map +1 -0
  244. package/dist/traits/combatant/combatantBehavior.js +155 -0
  245. package/dist/traits/combatant/combatantBehavior.js.map +1 -0
  246. package/dist/traits/combatant/combatantTrait.d.ts +98 -0
  247. package/dist/traits/combatant/combatantTrait.d.ts.map +1 -0
  248. package/dist/traits/combatant/combatantTrait.js +122 -0
  249. package/dist/traits/combatant/combatantTrait.js.map +1 -0
  250. package/dist/traits/combatant/index.d.ts +3 -0
  251. package/dist/traits/combatant/index.d.ts.map +1 -0
  252. package/dist/traits/combatant/index.js +8 -0
  253. package/dist/traits/combatant/index.js.map +1 -0
  254. package/dist/traits/container/container-utils.d.ts +39 -0
  255. package/dist/traits/container/container-utils.d.ts.map +1 -0
  256. package/dist/traits/container/container-utils.js +72 -0
  257. package/dist/traits/container/container-utils.js.map +1 -0
  258. package/dist/traits/container/containerBehavior.d.ts +94 -0
  259. package/dist/traits/container/containerBehavior.d.ts.map +1 -0
  260. package/dist/traits/container/containerBehavior.js +256 -0
  261. package/dist/traits/container/containerBehavior.js.map +1 -0
  262. package/dist/traits/container/containerTrait.d.ts +30 -0
  263. package/dist/traits/container/containerTrait.d.ts.map +1 -0
  264. package/dist/traits/container/containerTrait.js +45 -0
  265. package/dist/traits/container/containerTrait.js.map +1 -0
  266. package/dist/traits/container/index.d.ts +4 -0
  267. package/dist/traits/container/index.d.ts.map +1 -0
  268. package/dist/traits/container/index.js +14 -0
  269. package/dist/traits/container/index.js.map +1 -0
  270. package/dist/traits/destructible/destructibleBehavior.d.ts +57 -0
  271. package/dist/traits/destructible/destructibleBehavior.d.ts.map +1 -0
  272. package/dist/traits/destructible/destructibleBehavior.js +145 -0
  273. package/dist/traits/destructible/destructibleBehavior.js.map +1 -0
  274. package/dist/traits/destructible/destructibleTrait.d.ts +49 -0
  275. package/dist/traits/destructible/destructibleTrait.d.ts.map +1 -0
  276. package/dist/traits/destructible/destructibleTrait.js +43 -0
  277. package/dist/traits/destructible/destructibleTrait.js.map +1 -0
  278. package/dist/traits/destructible/index.d.ts +3 -0
  279. package/dist/traits/destructible/index.d.ts.map +1 -0
  280. package/dist/traits/destructible/index.js +8 -0
  281. package/dist/traits/destructible/index.js.map +1 -0
  282. package/dist/traits/door/doorBehavior.d.ts +42 -0
  283. package/dist/traits/door/doorBehavior.d.ts.map +1 -0
  284. package/dist/traits/door/doorBehavior.js +76 -0
  285. package/dist/traits/door/doorBehavior.js.map +1 -0
  286. package/dist/traits/door/doorTrait.d.ts +19 -0
  287. package/dist/traits/door/doorTrait.d.ts.map +1 -0
  288. package/dist/traits/door/doorTrait.js +33 -0
  289. package/dist/traits/door/doorTrait.js.map +1 -0
  290. package/dist/traits/door/index.d.ts +3 -0
  291. package/dist/traits/door/index.d.ts.map +1 -0
  292. package/dist/traits/door/index.js +9 -0
  293. package/dist/traits/door/index.js.map +1 -0
  294. package/dist/traits/edible/edibleBehavior.d.ts +63 -0
  295. package/dist/traits/edible/edibleBehavior.d.ts.map +1 -0
  296. package/dist/traits/edible/edibleBehavior.js +157 -0
  297. package/dist/traits/edible/edibleBehavior.js.map +1 -0
  298. package/dist/traits/edible/edibleTrait.d.ts +57 -0
  299. package/dist/traits/edible/edibleTrait.d.ts.map +1 -0
  300. package/dist/traits/edible/edibleTrait.js +51 -0
  301. package/dist/traits/edible/edibleTrait.js.map +1 -0
  302. package/dist/traits/edible/index.d.ts +3 -0
  303. package/dist/traits/edible/index.d.ts.map +1 -0
  304. package/dist/traits/edible/index.js +20 -0
  305. package/dist/traits/edible/index.js.map +1 -0
  306. package/dist/traits/enterable/enterableTrait.d.ts +33 -0
  307. package/dist/traits/enterable/enterableTrait.d.ts.map +1 -0
  308. package/dist/traits/enterable/enterableTrait.js +38 -0
  309. package/dist/traits/enterable/enterableTrait.js.map +1 -0
  310. package/dist/traits/enterable/index.d.ts +5 -0
  311. package/dist/traits/enterable/index.d.ts.map +1 -0
  312. package/dist/traits/enterable/index.js +21 -0
  313. package/dist/traits/enterable/index.js.map +1 -0
  314. package/dist/traits/equipped/equippedTrait.d.ts +46 -0
  315. package/dist/traits/equipped/equippedTrait.d.ts.map +1 -0
  316. package/dist/traits/equipped/equippedTrait.js +34 -0
  317. package/dist/traits/equipped/equippedTrait.js.map +1 -0
  318. package/dist/traits/equipped/index.d.ts +2 -0
  319. package/dist/traits/equipped/index.d.ts.map +1 -0
  320. package/dist/traits/equipped/index.js +6 -0
  321. package/dist/traits/equipped/index.js.map +1 -0
  322. package/dist/traits/exit/exitBehavior.d.ts +51 -0
  323. package/dist/traits/exit/exitBehavior.d.ts.map +1 -0
  324. package/dist/traits/exit/exitBehavior.js +231 -0
  325. package/dist/traits/exit/exitBehavior.js.map +1 -0
  326. package/dist/traits/exit/exitTrait.d.ts +41 -0
  327. package/dist/traits/exit/exitTrait.d.ts.map +1 -0
  328. package/dist/traits/exit/exitTrait.js +75 -0
  329. package/dist/traits/exit/exitTrait.js.map +1 -0
  330. package/dist/traits/exit/index.d.ts +3 -0
  331. package/dist/traits/exit/index.d.ts.map +1 -0
  332. package/dist/traits/exit/index.js +9 -0
  333. package/dist/traits/exit/index.js.map +1 -0
  334. package/dist/traits/identity/identityBehavior.d.ts +64 -0
  335. package/dist/traits/identity/identityBehavior.d.ts.map +1 -0
  336. package/dist/traits/identity/identityBehavior.js +154 -0
  337. package/dist/traits/identity/identityBehavior.js.map +1 -0
  338. package/dist/traits/identity/identityTrait.d.ts +70 -0
  339. package/dist/traits/identity/identityTrait.d.ts.map +1 -0
  340. package/dist/traits/identity/identityTrait.js +79 -0
  341. package/dist/traits/identity/identityTrait.js.map +1 -0
  342. package/dist/traits/identity/index.d.ts +3 -0
  343. package/dist/traits/identity/index.d.ts.map +1 -0
  344. package/dist/traits/identity/index.js +20 -0
  345. package/dist/traits/identity/index.js.map +1 -0
  346. package/dist/traits/implementations.d.ts +51 -0
  347. package/dist/traits/implementations.d.ts.map +1 -0
  348. package/dist/traits/implementations.js +145 -0
  349. package/dist/traits/implementations.js.map +1 -0
  350. package/dist/traits/index.d.ts +36 -0
  351. package/dist/traits/index.d.ts.map +1 -0
  352. package/dist/traits/index.js +62 -0
  353. package/dist/traits/index.js.map +1 -0
  354. package/dist/traits/light-source/index.d.ts +3 -0
  355. package/dist/traits/light-source/index.d.ts.map +1 -0
  356. package/dist/traits/light-source/index.js +9 -0
  357. package/dist/traits/light-source/index.js.map +1 -0
  358. package/dist/traits/light-source/lightSourceBehavior.d.ts +57 -0
  359. package/dist/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
  360. package/dist/traits/light-source/lightSourceBehavior.js +135 -0
  361. package/dist/traits/light-source/lightSourceBehavior.js.map +1 -0
  362. package/dist/traits/light-source/lightSourceTrait.d.ts +28 -0
  363. package/dist/traits/light-source/lightSourceTrait.d.ts.map +1 -0
  364. package/dist/traits/light-source/lightSourceTrait.js +37 -0
  365. package/dist/traits/light-source/lightSourceTrait.js.map +1 -0
  366. package/dist/traits/lockable/index.d.ts +3 -0
  367. package/dist/traits/lockable/index.d.ts.map +1 -0
  368. package/dist/traits/lockable/index.js +20 -0
  369. package/dist/traits/lockable/index.js.map +1 -0
  370. package/dist/traits/lockable/lockableBehavior.d.ts +88 -0
  371. package/dist/traits/lockable/lockableBehavior.d.ts.map +1 -0
  372. package/dist/traits/lockable/lockableBehavior.js +196 -0
  373. package/dist/traits/lockable/lockableBehavior.js.map +1 -0
  374. package/dist/traits/lockable/lockableTrait.d.ts +59 -0
  375. package/dist/traits/lockable/lockableTrait.d.ts.map +1 -0
  376. package/dist/traits/lockable/lockableTrait.js +50 -0
  377. package/dist/traits/lockable/lockableTrait.js.map +1 -0
  378. package/dist/traits/moveable-scenery/index.d.ts +2 -0
  379. package/dist/traits/moveable-scenery/index.d.ts.map +1 -0
  380. package/dist/traits/moveable-scenery/index.js +18 -0
  381. package/dist/traits/moveable-scenery/index.js.map +1 -0
  382. package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
  383. package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
  384. package/dist/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
  385. package/dist/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
  386. package/dist/traits/npc/index.d.ts +5 -0
  387. package/dist/traits/npc/index.d.ts.map +1 -0
  388. package/dist/traits/npc/index.js +9 -0
  389. package/dist/traits/npc/index.js.map +1 -0
  390. package/dist/traits/npc/npcTrait.d.ts +128 -0
  391. package/dist/traits/npc/npcTrait.d.ts.map +1 -0
  392. package/dist/traits/npc/npcTrait.js +180 -0
  393. package/dist/traits/npc/npcTrait.js.map +1 -0
  394. package/dist/traits/openable/index.d.ts +3 -0
  395. package/dist/traits/openable/index.d.ts.map +1 -0
  396. package/dist/traits/openable/index.js +20 -0
  397. package/dist/traits/openable/index.js.map +1 -0
  398. package/dist/traits/openable/openableBehavior.d.ts +64 -0
  399. package/dist/traits/openable/openableBehavior.d.ts.map +1 -0
  400. package/dist/traits/openable/openableBehavior.js +109 -0
  401. package/dist/traits/openable/openableBehavior.js.map +1 -0
  402. package/dist/traits/openable/openableTrait.d.ts +46 -0
  403. package/dist/traits/openable/openableTrait.d.ts.map +1 -0
  404. package/dist/traits/openable/openableTrait.js +42 -0
  405. package/dist/traits/openable/openableTrait.js.map +1 -0
  406. package/dist/traits/portable/portableTrait.d.ts +26 -0
  407. package/dist/traits/portable/portableTrait.d.ts.map +1 -0
  408. package/dist/traits/portable/portableTrait.js +35 -0
  409. package/dist/traits/portable/portableTrait.js.map +1 -0
  410. package/dist/traits/pullable/index.d.ts +2 -0
  411. package/dist/traits/pullable/index.d.ts.map +1 -0
  412. package/dist/traits/pullable/index.js +18 -0
  413. package/dist/traits/pullable/index.js.map +1 -0
  414. package/dist/traits/pullable/pullableTrait.d.ts +81 -0
  415. package/dist/traits/pullable/pullableTrait.d.ts.map +1 -0
  416. package/dist/traits/pullable/pullableTrait.js +44 -0
  417. package/dist/traits/pullable/pullableTrait.js.map +1 -0
  418. package/dist/traits/pushable/index.d.ts +2 -0
  419. package/dist/traits/pushable/index.d.ts.map +1 -0
  420. package/dist/traits/pushable/index.js +18 -0
  421. package/dist/traits/pushable/index.js.map +1 -0
  422. package/dist/traits/pushable/pushableTrait.d.ts +81 -0
  423. package/dist/traits/pushable/pushableTrait.d.ts.map +1 -0
  424. package/dist/traits/pushable/pushableTrait.js +44 -0
  425. package/dist/traits/pushable/pushableTrait.js.map +1 -0
  426. package/dist/traits/readable/index.d.ts +3 -0
  427. package/dist/traits/readable/index.d.ts.map +1 -0
  428. package/dist/traits/readable/index.js +9 -0
  429. package/dist/traits/readable/index.js.map +1 -0
  430. package/dist/traits/readable/readableBehavior.d.ts +42 -0
  431. package/dist/traits/readable/readableBehavior.d.ts.map +1 -0
  432. package/dist/traits/readable/readableBehavior.js +174 -0
  433. package/dist/traits/readable/readableBehavior.js.map +1 -0
  434. package/dist/traits/readable/readableTrait.d.ts +37 -0
  435. package/dist/traits/readable/readableTrait.d.ts.map +1 -0
  436. package/dist/traits/readable/readableTrait.js +51 -0
  437. package/dist/traits/readable/readableTrait.js.map +1 -0
  438. package/dist/traits/register-all.d.ts +10 -0
  439. package/dist/traits/register-all.d.ts.map +1 -0
  440. package/dist/traits/register-all.js +19 -0
  441. package/dist/traits/register-all.js.map +1 -0
  442. package/dist/traits/room/index.d.ts +9 -0
  443. package/dist/traits/room/index.d.ts.map +1 -0
  444. package/dist/traits/room/index.js +14 -0
  445. package/dist/traits/room/index.js.map +1 -0
  446. package/dist/traits/room/roomBehavior.d.ts +87 -0
  447. package/dist/traits/room/roomBehavior.d.ts.map +1 -0
  448. package/dist/traits/room/roomBehavior.js +232 -0
  449. package/dist/traits/room/roomBehavior.js.map +1 -0
  450. package/dist/traits/room/roomTrait.d.ts +87 -0
  451. package/dist/traits/room/roomTrait.d.ts.map +1 -0
  452. package/dist/traits/room/roomTrait.js +59 -0
  453. package/dist/traits/room/roomTrait.js.map +1 -0
  454. package/dist/traits/scenery/index.d.ts +3 -0
  455. package/dist/traits/scenery/index.d.ts.map +1 -0
  456. package/dist/traits/scenery/index.js +9 -0
  457. package/dist/traits/scenery/index.js.map +1 -0
  458. package/dist/traits/scenery/sceneryBehavior.d.ts +21 -0
  459. package/dist/traits/scenery/sceneryBehavior.d.ts.map +1 -0
  460. package/dist/traits/scenery/sceneryBehavior.js +42 -0
  461. package/dist/traits/scenery/sceneryBehavior.js.map +1 -0
  462. package/dist/traits/scenery/sceneryTrait.d.ts +30 -0
  463. package/dist/traits/scenery/sceneryTrait.d.ts.map +1 -0
  464. package/dist/traits/scenery/sceneryTrait.js +39 -0
  465. package/dist/traits/scenery/sceneryTrait.js.map +1 -0
  466. package/dist/traits/supporter/index.d.ts +3 -0
  467. package/dist/traits/supporter/index.d.ts.map +1 -0
  468. package/dist/traits/supporter/index.js +9 -0
  469. package/dist/traits/supporter/index.js.map +1 -0
  470. package/dist/traits/supporter/supporterBehavior.d.ts +83 -0
  471. package/dist/traits/supporter/supporterBehavior.d.ts.map +1 -0
  472. package/dist/traits/supporter/supporterBehavior.js +210 -0
  473. package/dist/traits/supporter/supporterBehavior.js.map +1 -0
  474. package/dist/traits/supporter/supporterTrait.d.ts +26 -0
  475. package/dist/traits/supporter/supporterTrait.d.ts.map +1 -0
  476. package/dist/traits/supporter/supporterTrait.js +30 -0
  477. package/dist/traits/supporter/supporterTrait.js.map +1 -0
  478. package/dist/traits/switchable/index.d.ts +3 -0
  479. package/dist/traits/switchable/index.d.ts.map +1 -0
  480. package/dist/traits/switchable/index.js +20 -0
  481. package/dist/traits/switchable/index.js.map +1 -0
  482. package/dist/traits/switchable/switchableBehavior.d.ts +73 -0
  483. package/dist/traits/switchable/switchableBehavior.d.ts.map +1 -0
  484. package/dist/traits/switchable/switchableBehavior.js +191 -0
  485. package/dist/traits/switchable/switchableBehavior.js.map +1 -0
  486. package/dist/traits/switchable/switchableTrait.d.ts +61 -0
  487. package/dist/traits/switchable/switchableTrait.d.ts.map +1 -0
  488. package/dist/traits/switchable/switchableTrait.js +52 -0
  489. package/dist/traits/switchable/switchableTrait.js.map +1 -0
  490. package/dist/traits/trait-types.d.ts +81 -0
  491. package/dist/traits/trait-types.d.ts.map +1 -0
  492. package/dist/traits/trait-types.js +146 -0
  493. package/dist/traits/trait-types.js.map +1 -0
  494. package/dist/traits/trait.d.ts +42 -0
  495. package/dist/traits/trait.d.ts.map +1 -0
  496. package/dist/traits/trait.js +42 -0
  497. package/dist/traits/trait.js.map +1 -0
  498. package/dist/traits/vehicle/index.d.ts +6 -0
  499. package/dist/traits/vehicle/index.d.ts.map +1 -0
  500. package/dist/traits/vehicle/index.js +22 -0
  501. package/dist/traits/vehicle/index.js.map +1 -0
  502. package/dist/traits/vehicle/vehicleBehavior.d.ts +62 -0
  503. package/dist/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
  504. package/dist/traits/vehicle/vehicleBehavior.js +145 -0
  505. package/dist/traits/vehicle/vehicleBehavior.js.map +1 -0
  506. package/dist/traits/vehicle/vehicleTrait.d.ts +77 -0
  507. package/dist/traits/vehicle/vehicleTrait.d.ts.map +1 -0
  508. package/dist/traits/vehicle/vehicleTrait.js +92 -0
  509. package/dist/traits/vehicle/vehicleTrait.js.map +1 -0
  510. package/dist/traits/weapon/index.d.ts +3 -0
  511. package/dist/traits/weapon/index.d.ts.map +1 -0
  512. package/dist/traits/weapon/index.js +8 -0
  513. package/dist/traits/weapon/index.js.map +1 -0
  514. package/dist/traits/weapon/weaponBehavior.d.ts +47 -0
  515. package/dist/traits/weapon/weaponBehavior.d.ts.map +1 -0
  516. package/dist/traits/weapon/weaponBehavior.js +106 -0
  517. package/dist/traits/weapon/weaponBehavior.js.map +1 -0
  518. package/dist/traits/weapon/weaponTrait.d.ts +67 -0
  519. package/dist/traits/weapon/weaponTrait.d.ts.map +1 -0
  520. package/dist/traits/weapon/weaponTrait.js +60 -0
  521. package/dist/traits/weapon/weaponTrait.js.map +1 -0
  522. package/dist/traits/wearable/index.d.ts +3 -0
  523. package/dist/traits/wearable/index.d.ts.map +1 -0
  524. package/dist/traits/wearable/index.js +20 -0
  525. package/dist/traits/wearable/index.js.map +1 -0
  526. package/dist/traits/wearable/wearableBehavior.d.ts +64 -0
  527. package/dist/traits/wearable/wearableBehavior.d.ts.map +1 -0
  528. package/dist/traits/wearable/wearableBehavior.js +142 -0
  529. package/dist/traits/wearable/wearableBehavior.js.map +1 -0
  530. package/dist/traits/wearable/wearableTrait.d.ts +54 -0
  531. package/dist/traits/wearable/wearableTrait.d.ts.map +1 -0
  532. package/dist/traits/wearable/wearableTrait.js +53 -0
  533. package/dist/traits/wearable/wearableTrait.js.map +1 -0
  534. package/dist/utils/event-utils.d.ts +30 -0
  535. package/dist/utils/event-utils.d.ts.map +1 -0
  536. package/dist/utils/event-utils.js +33 -0
  537. package/dist/utils/event-utils.js.map +1 -0
  538. package/dist/world/AuthorModel.d.ts +151 -0
  539. package/dist/world/AuthorModel.d.ts.map +1 -0
  540. package/dist/world/AuthorModel.js +416 -0
  541. package/dist/world/AuthorModel.js.map +1 -0
  542. package/dist/world/SharedDataStore.d.ts +24 -0
  543. package/dist/world/SharedDataStore.d.ts.map +1 -0
  544. package/dist/world/SharedDataStore.js +50 -0
  545. package/dist/world/SharedDataStore.js.map +1 -0
  546. package/dist/world/SpatialIndex.d.ts +16 -0
  547. package/dist/world/SpatialIndex.d.ts.map +1 -0
  548. package/dist/world/SpatialIndex.js +117 -0
  549. package/dist/world/SpatialIndex.js.map +1 -0
  550. package/dist/world/VisibilityBehavior.d.ts +83 -0
  551. package/dist/world/VisibilityBehavior.d.ts.map +1 -0
  552. package/dist/world/VisibilityBehavior.js +484 -0
  553. package/dist/world/VisibilityBehavior.js.map +1 -0
  554. package/dist/world/WorldModel.d.ts +270 -0
  555. package/dist/world/WorldModel.d.ts.map +1 -0
  556. package/dist/world/WorldModel.js +1028 -0
  557. package/dist/world/WorldModel.js.map +1 -0
  558. package/dist/world/capabilities.d.ts +36 -0
  559. package/dist/world/capabilities.d.ts.map +1 -0
  560. package/dist/world/capabilities.js +18 -0
  561. package/dist/world/capabilities.js.map +1 -0
  562. package/dist/world/index.d.ts +7 -0
  563. package/dist/world/index.d.ts.map +1 -0
  564. package/dist/world/index.js +21 -0
  565. package/dist/world/index.js.map +1 -0
  566. package/package.json +67 -0
@@ -0,0 +1,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":["../../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":["../../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":["../../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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-helpers.js","sourceRoot":"","sources":["../../src/capabilities/capability-helpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyBH,0DAWC;AAgBD,sCAEC;AAQD,sDAWC;AAkBD,gDAYC;AAQD,4CAKC;AA/GD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,uBAAuB,CACrC,MAAgB,EAChB,QAAgB;IAEhB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,IAAI,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,aAAa,CAAC,MAAgB,EAAE,QAAgB;IAC9D,OAAO,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,kBAAkB,CAChC,KAAa,EACb,QAAgB,EAChB,SAAqC;IAErC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;IAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IAEvE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,IAAI,KAAK,YAAY,SAAS,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,MAAgB;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACvD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,OAAO,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Capability Registry (ADR-090)
3
+ *
4
+ * Registry for trait-behavior bindings. Stories register behaviors
5
+ * for their traits, and the dispatch system looks them up at runtime.
6
+ */
7
+ import { ITrait } from '../traits/trait';
8
+ import { CapabilityBehavior } from './capability-behavior';
9
+ import { CapabilityResolution, CapabilityMode } from './capability-defaults';
10
+ /**
11
+ * Options for registering a capability behavior.
12
+ */
13
+ export interface BehaviorRegistrationOptions<T extends ITrait = ITrait> {
14
+ /** Priority for resolution (higher = checked first). Default: 0 */
15
+ priority?: number;
16
+ /** Override global resolution strategy for this binding */
17
+ resolution?: CapabilityResolution;
18
+ /** Override global mode for this binding */
19
+ mode?: CapabilityMode;
20
+ /** Optional runtime validation */
21
+ validateBinding?: (trait: T) => boolean;
22
+ }
23
+ /**
24
+ * Binding between a trait type, capability, and behavior.
25
+ */
26
+ export interface TraitBehaviorBinding<T extends ITrait = ITrait> {
27
+ /** Trait type identifier */
28
+ traitType: string;
29
+ /** Action ID (capability) this binding handles */
30
+ capability: string;
31
+ /** The behavior that handles this trait+capability */
32
+ behavior: CapabilityBehavior;
33
+ /** Priority for resolution (higher = checked first) */
34
+ priority: number;
35
+ /** Override resolution strategy (undefined = use global default) */
36
+ resolution?: CapabilityResolution;
37
+ /** Override mode (undefined = use global default) */
38
+ mode?: CapabilityMode;
39
+ /** Optional runtime validation */
40
+ validateBinding?: (trait: T) => boolean;
41
+ }
42
+ /**
43
+ * Register a behavior for a trait+capability combination.
44
+ *
45
+ * Stories call this to register their behaviors during initialization.
46
+ * Each trait+capability pair can only have one behavior registered.
47
+ *
48
+ * @param traitType - The trait type identifier (e.g., 'dungeo.trait.basket_elevator')
49
+ * @param capability - The action ID (e.g., 'if.action.lowering')
50
+ * @param behavior - The behavior implementation
51
+ * @param options - Optional configuration (priority, resolution override, mode override)
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * // Basic registration (uses global defaults)
56
+ * registerCapabilityBehavior(
57
+ * BasketElevatorTrait.type,
58
+ * 'if.action.lowering',
59
+ * BasketLoweringBehavior
60
+ * );
61
+ *
62
+ * // With priority and overrides
63
+ * registerCapabilityBehavior(
64
+ * TrollAxeTrait.type,
65
+ * 'if.action.taking',
66
+ * TrollAxeTakingBehavior,
67
+ * { priority: 100, resolution: 'any-blocks' }
68
+ * );
69
+ * ```
70
+ */
71
+ export declare function registerCapabilityBehavior<T extends ITrait>(traitType: string, capability: string, behavior: CapabilityBehavior, options?: BehaviorRegistrationOptions<T>): void;
72
+ /**
73
+ * Get behavior for a trait instance and capability.
74
+ *
75
+ * Called by capability-dispatch actions to find the right behavior.
76
+ *
77
+ * @param trait - The trait instance
78
+ * @param capability - The action ID
79
+ * @returns The behavior, or undefined if not registered
80
+ */
81
+ export declare function getBehaviorForCapability(trait: ITrait, capability: string): CapabilityBehavior | undefined;
82
+ /**
83
+ * Get the full binding for a trait instance and capability.
84
+ *
85
+ * Includes priority and configuration overrides. Used by dispatch helper
86
+ * for resolution logic.
87
+ *
88
+ * @param trait - The trait instance
89
+ * @param capability - The action ID
90
+ * @returns The binding, or undefined if not registered
91
+ */
92
+ export declare function getBehaviorBinding(trait: ITrait, capability: string): TraitBehaviorBinding | undefined;
93
+ /**
94
+ * Check if a behavior is registered for a trait+capability.
95
+ *
96
+ * @param traitType - The trait type identifier
97
+ * @param capability - The action ID
98
+ */
99
+ export declare function hasCapabilityBehavior(traitType: string, capability: string): boolean;
100
+ /**
101
+ * Unregister a behavior (primarily for testing).
102
+ *
103
+ * @param traitType - The trait type identifier
104
+ * @param capability - The action ID
105
+ */
106
+ export declare function unregisterCapabilityBehavior(traitType: string, capability: string): void;
107
+ /**
108
+ * Clear all registered behaviors (for testing).
109
+ */
110
+ export declare function clearCapabilityRegistry(): void;
111
+ /**
112
+ * Get all registered bindings (for debugging/introspection).
113
+ */
114
+ export declare function getAllCapabilityBindings(): Map<string, TraitBehaviorBinding>;
115
+ //# sourceMappingURL=capability-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACpE,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,kCAAkC;IAClC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC7D,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,qDAAqD;IACrD,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,kCAAkC;IAClC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACzC;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EACzD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACvC,IAAI,CAkBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,kBAAkB,GAAG,SAAS,CAGhC;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,SAAS,CAiBlC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAEpF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAExF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAE5E"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Capability Registry (ADR-090)
4
+ *
5
+ * Registry for trait-behavior bindings. Stories register behaviors
6
+ * for their traits, and the dispatch system looks them up at runtime.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.registerCapabilityBehavior = registerCapabilityBehavior;
10
+ exports.getBehaviorForCapability = getBehaviorForCapability;
11
+ exports.getBehaviorBinding = getBehaviorBinding;
12
+ exports.hasCapabilityBehavior = hasCapabilityBehavior;
13
+ exports.unregisterCapabilityBehavior = unregisterCapabilityBehavior;
14
+ exports.clearCapabilityRegistry = clearCapabilityRegistry;
15
+ exports.getAllCapabilityBindings = getAllCapabilityBindings;
16
+ /**
17
+ * Registry storage: key = `${traitType}:${capability}`
18
+ */
19
+ const behaviorRegistry = new Map();
20
+ /**
21
+ * Generate registry key for trait+capability combination.
22
+ */
23
+ function registryKey(traitType, capability) {
24
+ return `${traitType}:${capability}`;
25
+ }
26
+ /**
27
+ * Register a behavior for a trait+capability combination.
28
+ *
29
+ * Stories call this to register their behaviors during initialization.
30
+ * Each trait+capability pair can only have one behavior registered.
31
+ *
32
+ * @param traitType - The trait type identifier (e.g., 'dungeo.trait.basket_elevator')
33
+ * @param capability - The action ID (e.g., 'if.action.lowering')
34
+ * @param behavior - The behavior implementation
35
+ * @param options - Optional configuration (priority, resolution override, mode override)
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * // Basic registration (uses global defaults)
40
+ * registerCapabilityBehavior(
41
+ * BasketElevatorTrait.type,
42
+ * 'if.action.lowering',
43
+ * BasketLoweringBehavior
44
+ * );
45
+ *
46
+ * // With priority and overrides
47
+ * registerCapabilityBehavior(
48
+ * TrollAxeTrait.type,
49
+ * 'if.action.taking',
50
+ * TrollAxeTakingBehavior,
51
+ * { priority: 100, resolution: 'any-blocks' }
52
+ * );
53
+ * ```
54
+ */
55
+ function registerCapabilityBehavior(traitType, capability, behavior, options) {
56
+ const key = registryKey(traitType, capability);
57
+ if (behaviorRegistry.has(key)) {
58
+ throw new Error(`Behavior already registered for trait "${traitType}" and capability "${capability}"`);
59
+ }
60
+ behaviorRegistry.set(key, {
61
+ traitType,
62
+ capability,
63
+ behavior,
64
+ priority: options?.priority ?? 0,
65
+ resolution: options?.resolution,
66
+ mode: options?.mode,
67
+ validateBinding: options?.validateBinding
68
+ });
69
+ }
70
+ /**
71
+ * Get behavior for a trait instance and capability.
72
+ *
73
+ * Called by capability-dispatch actions to find the right behavior.
74
+ *
75
+ * @param trait - The trait instance
76
+ * @param capability - The action ID
77
+ * @returns The behavior, or undefined if not registered
78
+ */
79
+ function getBehaviorForCapability(trait, capability) {
80
+ const binding = getBehaviorBinding(trait, capability);
81
+ return binding?.behavior;
82
+ }
83
+ /**
84
+ * Get the full binding for a trait instance and capability.
85
+ *
86
+ * Includes priority and configuration overrides. Used by dispatch helper
87
+ * for resolution logic.
88
+ *
89
+ * @param trait - The trait instance
90
+ * @param capability - The action ID
91
+ * @returns The binding, or undefined if not registered
92
+ */
93
+ function getBehaviorBinding(trait, capability) {
94
+ const traitType = trait.constructor.type;
95
+ const key = registryKey(traitType, capability);
96
+ const binding = behaviorRegistry.get(key);
97
+ if (!binding) {
98
+ return undefined;
99
+ }
100
+ // Runtime validation if provided
101
+ if (binding.validateBinding && !binding.validateBinding(trait)) {
102
+ throw new Error(`Behavior validation failed for trait "${traitType}", capability "${capability}"`);
103
+ }
104
+ return binding;
105
+ }
106
+ /**
107
+ * Check if a behavior is registered for a trait+capability.
108
+ *
109
+ * @param traitType - The trait type identifier
110
+ * @param capability - The action ID
111
+ */
112
+ function hasCapabilityBehavior(traitType, capability) {
113
+ return behaviorRegistry.has(registryKey(traitType, capability));
114
+ }
115
+ /**
116
+ * Unregister a behavior (primarily for testing).
117
+ *
118
+ * @param traitType - The trait type identifier
119
+ * @param capability - The action ID
120
+ */
121
+ function unregisterCapabilityBehavior(traitType, capability) {
122
+ behaviorRegistry.delete(registryKey(traitType, capability));
123
+ }
124
+ /**
125
+ * Clear all registered behaviors (for testing).
126
+ */
127
+ function clearCapabilityRegistry() {
128
+ behaviorRegistry.clear();
129
+ }
130
+ /**
131
+ * Get all registered bindings (for debugging/introspection).
132
+ */
133
+ function getAllCapabilityBindings() {
134
+ return new Map(behaviorRegistry);
135
+ }
136
+ //# sourceMappingURL=capability-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/capabilities/capability-registry.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAiFH,gEAuBC;AAWD,4DAMC;AAYD,gDAoBC;AAQD,sDAEC;AAQD,oEAEC;AAKD,0DAEC;AAKD,4DAEC;AAnJD;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEjE;;GAEG;AACH,SAAS,WAAW,CAAC,SAAiB,EAAE,UAAkB;IACxD,OAAO,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAgB,0BAA0B,CACxC,SAAiB,EACjB,UAAkB,EAClB,QAA4B,EAC5B,OAAwC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAE/C,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,qBAAqB,UAAU,GAAG,CACtF,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE;QACxB,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;QAChC,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,eAAe,EAAE,OAAO,EAAE,eAA2D;KACtF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,wBAAwB,CACtC,KAAa,EACb,UAAkB;IAElB,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,OAAO,OAAO,EAAE,QAAQ,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAChC,KAAa,EACb,UAAkB;IAElB,MAAM,SAAS,GAAI,KAAK,CAAC,WAAiC,CAAC,IAAI,CAAC;IAChE,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,yCAAyC,SAAS,kBAAkB,UAAU,GAAG,CAClF,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,SAAiB,EAAE,UAAkB;IACzE,OAAO,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,4BAA4B,CAAC,SAAiB,EAAE,UAAkB;IAChF,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACnC,CAAC"}