@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 @@
1
+ {"version":3,"file":"capability-helpers.js","sourceRoot":"","sources":["../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/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":["../../../../../../mnt/c/repotemp/sharpee/packages/world-model/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":["../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Type-Safe Entity Builder (ADR-090)
3
+ *
4
+ * Builder pattern for creating entities with compile-time capability
5
+ * conflict detection. When two traits claim the same capability,
6
+ * TypeScript will error (and runtime will throw as backup).
7
+ */
8
+ import { IFEntity } from '../entities';
9
+ import { ITrait } from '../traits/trait';
10
+ /**
11
+ * Type-safe entity builder that tracks claimed capabilities.
12
+ *
13
+ * Provides runtime checks for capability conflicts. TypeScript's
14
+ * type system can catch conflicts at compile time when traits
15
+ * declare capabilities with `as const`.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const basket = new EntityBuilder(entity)
20
+ * .add(new IdentityTrait({ name: 'basket' }))
21
+ * .add(new ContainerTrait())
22
+ * .add(new BasketElevatorTrait({ ... })) // claims: lowering, raising
23
+ * .build();
24
+ *
25
+ * // Runtime error - duplicate capability:
26
+ * const bad = new EntityBuilder(entity)
27
+ * .add(new BasketElevatorTrait({ ... })) // claims: lowering
28
+ * .add(new MirrorPoleTrait({ ... })) // also claims: lowering
29
+ * .build(); // throws!
30
+ * ```
31
+ */
32
+ export declare class EntityBuilder {
33
+ private entity;
34
+ private claimedCaps;
35
+ constructor(entity: IFEntity);
36
+ /**
37
+ * Add a trait to the entity.
38
+ *
39
+ * Checks for capability conflicts at runtime. If two traits
40
+ * claim the same capability, throws an error.
41
+ *
42
+ * @param trait - The trait to add
43
+ * @returns This builder for chaining
44
+ * @throws Error if capability conflict detected
45
+ */
46
+ add<T extends ITrait>(trait: T): this;
47
+ /**
48
+ * Build and return the entity.
49
+ */
50
+ build(): IFEntity;
51
+ /**
52
+ * Get all capabilities claimed so far.
53
+ */
54
+ getClaimedCapabilities(): string[];
55
+ /**
56
+ * Find which trait claimed a capability.
57
+ */
58
+ private findTraitWithCapability;
59
+ }
60
+ /**
61
+ * Create an entity builder for type-safe trait composition.
62
+ *
63
+ * This is a convenience function that wraps an existing entity
64
+ * in a builder. Use when you want capability conflict checking.
65
+ *
66
+ * @param entity - The entity to wrap
67
+ * @returns A new EntityBuilder
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const basket = buildEntity(world.createEntity('basket', EntityType.CONTAINER))
72
+ * .add(new IdentityTrait({ name: 'rusty iron basket' }))
73
+ * .add(new ContainerTrait({ capacity: { maxItems: 10 } }))
74
+ * .add(new BasketElevatorTrait({ ... }))
75
+ * .build();
76
+ * ```
77
+ */
78
+ export declare function buildEntity(entity: IFEntity): EntityBuilder;
79
+ //# sourceMappingURL=entity-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-builder.d.ts","sourceRoot":"","sources":["../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/capabilities/entity-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAAqB;gBAE5B,MAAM,EAAE,QAAQ;IAI5B;;;;;;;;;OASG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAyBrC;;OAEG;IACH,KAAK,IAAI,QAAQ;IAIjB;;OAEG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAShC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAE3D"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ /**
3
+ * Type-Safe Entity Builder (ADR-090)
4
+ *
5
+ * Builder pattern for creating entities with compile-time capability
6
+ * conflict detection. When two traits claim the same capability,
7
+ * TypeScript will error (and runtime will throw as backup).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.EntityBuilder = void 0;
11
+ exports.buildEntity = buildEntity;
12
+ /**
13
+ * Type-safe entity builder that tracks claimed capabilities.
14
+ *
15
+ * Provides runtime checks for capability conflicts. TypeScript's
16
+ * type system can catch conflicts at compile time when traits
17
+ * declare capabilities with `as const`.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const basket = new EntityBuilder(entity)
22
+ * .add(new IdentityTrait({ name: 'basket' }))
23
+ * .add(new ContainerTrait())
24
+ * .add(new BasketElevatorTrait({ ... })) // claims: lowering, raising
25
+ * .build();
26
+ *
27
+ * // Runtime error - duplicate capability:
28
+ * const bad = new EntityBuilder(entity)
29
+ * .add(new BasketElevatorTrait({ ... })) // claims: lowering
30
+ * .add(new MirrorPoleTrait({ ... })) // also claims: lowering
31
+ * .build(); // throws!
32
+ * ```
33
+ */
34
+ class EntityBuilder {
35
+ entity;
36
+ claimedCaps = new Set();
37
+ constructor(entity) {
38
+ this.entity = entity;
39
+ }
40
+ /**
41
+ * Add a trait to the entity.
42
+ *
43
+ * Checks for capability conflicts at runtime. If two traits
44
+ * claim the same capability, throws an error.
45
+ *
46
+ * @param trait - The trait to add
47
+ * @returns This builder for chaining
48
+ * @throws Error if capability conflict detected
49
+ */
50
+ add(trait) {
51
+ const traitClass = trait.constructor;
52
+ const newCaps = traitClass.capabilities ?? [];
53
+ // Check for capability conflicts
54
+ for (const cap of newCaps) {
55
+ if (this.claimedCaps.has(cap)) {
56
+ // Find which trait already claimed it
57
+ const existingTrait = this.findTraitWithCapability(cap);
58
+ const existingType = existingTrait
59
+ ? existingTrait.constructor.type
60
+ : 'unknown';
61
+ throw new Error(`Entity "${this.entity.id}": capability "${cap}" already claimed by trait "${existingType}". ` +
62
+ `New trait "${traitClass.type}" cannot also claim it.`);
63
+ }
64
+ this.claimedCaps.add(cap);
65
+ }
66
+ this.entity.add(trait);
67
+ return this;
68
+ }
69
+ /**
70
+ * Build and return the entity.
71
+ */
72
+ build() {
73
+ return this.entity;
74
+ }
75
+ /**
76
+ * Get all capabilities claimed so far.
77
+ */
78
+ getClaimedCapabilities() {
79
+ return Array.from(this.claimedCaps);
80
+ }
81
+ /**
82
+ * Find which trait claimed a capability.
83
+ */
84
+ findTraitWithCapability(capability) {
85
+ for (const trait of this.entity.traits.values()) {
86
+ const traitClass = trait.constructor;
87
+ if (traitClass.capabilities?.includes(capability)) {
88
+ return trait;
89
+ }
90
+ }
91
+ return undefined;
92
+ }
93
+ }
94
+ exports.EntityBuilder = EntityBuilder;
95
+ /**
96
+ * Create an entity builder for type-safe trait composition.
97
+ *
98
+ * This is a convenience function that wraps an existing entity
99
+ * in a builder. Use when you want capability conflict checking.
100
+ *
101
+ * @param entity - The entity to wrap
102
+ * @returns A new EntityBuilder
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const basket = buildEntity(world.createEntity('basket', EntityType.CONTAINER))
107
+ * .add(new IdentityTrait({ name: 'rusty iron basket' }))
108
+ * .add(new ContainerTrait({ capacity: { maxItems: 10 } }))
109
+ * .add(new BasketElevatorTrait({ ... }))
110
+ * .build();
111
+ * ```
112
+ */
113
+ function buildEntity(entity) {
114
+ return new EntityBuilder(entity);
115
+ }
116
+ //# sourceMappingURL=entity-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-builder.js","sourceRoot":"","sources":["../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/capabilities/entity-builder.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAoHH,kCAEC;AAjHD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,aAAa;IAChB,MAAM,CAAW;IACjB,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,YAAY,MAAgB;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACH,GAAG,CAAmB,KAAQ;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;QAE9C,iCAAiC;QACjC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,sCAAsC;gBACtC,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,YAAY,GAAG,aAAa;oBAChC,CAAC,CAAE,aAAa,CAAC,WAAiC,CAAC,IAAI;oBACvD,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,+BAA+B,YAAY,KAAK;oBAC9F,cAAc,UAAU,CAAC,IAAI,yBAAyB,CACvD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,UAAkB;QAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;YAC1D,IAAI,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AArED,sCAqEC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,WAAW,CAAC,MAAgB;IAC1C,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Capability Dispatch System (ADR-090)
3
+ *
4
+ * Entity-centric action dispatch where traits declare capabilities
5
+ * (action IDs they respond to) and behaviors implement the logic.
6
+ */
7
+ export { CapabilityValidationResult, CapabilityEffect, createEffect } from './types';
8
+ export { CapabilityBehavior, CapabilitySharedData } from './capability-behavior';
9
+ export { TraitBehaviorBinding, BehaviorRegistrationOptions, registerCapabilityBehavior, getBehaviorForCapability, getBehaviorBinding, hasCapabilityBehavior, unregisterCapabilityBehavior, clearCapabilityRegistry, getAllCapabilityBindings } from './capability-registry';
10
+ export { CapabilityResolution, CapabilityMode, CapabilityConfig, defineCapabilityDefaults, getCapabilityConfig, hasCapabilityDefaults, clearCapabilityDefaults, getAllCapabilityDefaults } from './capability-defaults';
11
+ export { findTraitWithCapability, hasCapability, getEntityCapabilities, traitHasCapability, getCapableTraits } from './capability-helpers';
12
+ export { EntityBuilder, buildEntity } from './entity-builder';
13
+ export { ActionInterceptor, InterceptorSharedData, InterceptorResult } from './action-interceptor';
14
+ export { TraitInterceptorBinding, InterceptorRegistrationOptions, InterceptorLookupResult, registerActionInterceptor, getInterceptorForAction, getInterceptorBinding, hasActionInterceptor, unregisterActionInterceptor, clearInterceptorRegistry, getAllInterceptorBindings } from './interceptor-registry';
15
+ export { findTraitWithInterceptor, hasInterceptor, getEntityInterceptors, traitHasInterceptor, getInterceptorTraits } from './interceptor-helpers';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/capabilities/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * Capability Dispatch System (ADR-090)
4
+ *
5
+ * Entity-centric action dispatch where traits declare capabilities
6
+ * (action IDs they respond to) and behaviors implement the logic.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getInterceptorTraits = exports.traitHasInterceptor = exports.getEntityInterceptors = exports.hasInterceptor = exports.findTraitWithInterceptor = exports.getAllInterceptorBindings = exports.clearInterceptorRegistry = exports.unregisterActionInterceptor = exports.hasActionInterceptor = exports.getInterceptorBinding = exports.getInterceptorForAction = exports.registerActionInterceptor = exports.buildEntity = exports.EntityBuilder = exports.getCapableTraits = exports.traitHasCapability = exports.getEntityCapabilities = exports.hasCapability = exports.findTraitWithCapability = exports.getAllCapabilityDefaults = exports.clearCapabilityDefaults = exports.hasCapabilityDefaults = exports.getCapabilityConfig = exports.defineCapabilityDefaults = exports.getAllCapabilityBindings = exports.clearCapabilityRegistry = exports.unregisterCapabilityBehavior = exports.hasCapabilityBehavior = exports.getBehaviorBinding = exports.getBehaviorForCapability = exports.registerCapabilityBehavior = exports.createEffect = void 0;
10
+ // Types
11
+ var types_1 = require("./types");
12
+ Object.defineProperty(exports, "createEffect", { enumerable: true, get: function () { return types_1.createEffect; } });
13
+ // Registry
14
+ var capability_registry_1 = require("./capability-registry");
15
+ Object.defineProperty(exports, "registerCapabilityBehavior", { enumerable: true, get: function () { return capability_registry_1.registerCapabilityBehavior; } });
16
+ Object.defineProperty(exports, "getBehaviorForCapability", { enumerable: true, get: function () { return capability_registry_1.getBehaviorForCapability; } });
17
+ Object.defineProperty(exports, "getBehaviorBinding", { enumerable: true, get: function () { return capability_registry_1.getBehaviorBinding; } });
18
+ Object.defineProperty(exports, "hasCapabilityBehavior", { enumerable: true, get: function () { return capability_registry_1.hasCapabilityBehavior; } });
19
+ Object.defineProperty(exports, "unregisterCapabilityBehavior", { enumerable: true, get: function () { return capability_registry_1.unregisterCapabilityBehavior; } });
20
+ Object.defineProperty(exports, "clearCapabilityRegistry", { enumerable: true, get: function () { return capability_registry_1.clearCapabilityRegistry; } });
21
+ Object.defineProperty(exports, "getAllCapabilityBindings", { enumerable: true, get: function () { return capability_registry_1.getAllCapabilityBindings; } });
22
+ // Defaults and configuration
23
+ var capability_defaults_1 = require("./capability-defaults");
24
+ Object.defineProperty(exports, "defineCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.defineCapabilityDefaults; } });
25
+ Object.defineProperty(exports, "getCapabilityConfig", { enumerable: true, get: function () { return capability_defaults_1.getCapabilityConfig; } });
26
+ Object.defineProperty(exports, "hasCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.hasCapabilityDefaults; } });
27
+ Object.defineProperty(exports, "clearCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.clearCapabilityDefaults; } });
28
+ Object.defineProperty(exports, "getAllCapabilityDefaults", { enumerable: true, get: function () { return capability_defaults_1.getAllCapabilityDefaults; } });
29
+ // Helpers
30
+ var capability_helpers_1 = require("./capability-helpers");
31
+ Object.defineProperty(exports, "findTraitWithCapability", { enumerable: true, get: function () { return capability_helpers_1.findTraitWithCapability; } });
32
+ Object.defineProperty(exports, "hasCapability", { enumerable: true, get: function () { return capability_helpers_1.hasCapability; } });
33
+ Object.defineProperty(exports, "getEntityCapabilities", { enumerable: true, get: function () { return capability_helpers_1.getEntityCapabilities; } });
34
+ Object.defineProperty(exports, "traitHasCapability", { enumerable: true, get: function () { return capability_helpers_1.traitHasCapability; } });
35
+ Object.defineProperty(exports, "getCapableTraits", { enumerable: true, get: function () { return capability_helpers_1.getCapableTraits; } });
36
+ // Entity builder
37
+ var entity_builder_1 = require("./entity-builder");
38
+ Object.defineProperty(exports, "EntityBuilder", { enumerable: true, get: function () { return entity_builder_1.EntityBuilder; } });
39
+ Object.defineProperty(exports, "buildEntity", { enumerable: true, get: function () { return entity_builder_1.buildEntity; } });
40
+ // Interceptor registry
41
+ var interceptor_registry_1 = require("./interceptor-registry");
42
+ Object.defineProperty(exports, "registerActionInterceptor", { enumerable: true, get: function () { return interceptor_registry_1.registerActionInterceptor; } });
43
+ Object.defineProperty(exports, "getInterceptorForAction", { enumerable: true, get: function () { return interceptor_registry_1.getInterceptorForAction; } });
44
+ Object.defineProperty(exports, "getInterceptorBinding", { enumerable: true, get: function () { return interceptor_registry_1.getInterceptorBinding; } });
45
+ Object.defineProperty(exports, "hasActionInterceptor", { enumerable: true, get: function () { return interceptor_registry_1.hasActionInterceptor; } });
46
+ Object.defineProperty(exports, "unregisterActionInterceptor", { enumerable: true, get: function () { return interceptor_registry_1.unregisterActionInterceptor; } });
47
+ Object.defineProperty(exports, "clearInterceptorRegistry", { enumerable: true, get: function () { return interceptor_registry_1.clearInterceptorRegistry; } });
48
+ Object.defineProperty(exports, "getAllInterceptorBindings", { enumerable: true, get: function () { return interceptor_registry_1.getAllInterceptorBindings; } });
49
+ // Interceptor helpers
50
+ var interceptor_helpers_1 = require("./interceptor-helpers");
51
+ Object.defineProperty(exports, "findTraitWithInterceptor", { enumerable: true, get: function () { return interceptor_helpers_1.findTraitWithInterceptor; } });
52
+ Object.defineProperty(exports, "hasInterceptor", { enumerable: true, get: function () { return interceptor_helpers_1.hasInterceptor; } });
53
+ Object.defineProperty(exports, "getEntityInterceptors", { enumerable: true, get: function () { return interceptor_helpers_1.getEntityInterceptors; } });
54
+ Object.defineProperty(exports, "traitHasInterceptor", { enumerable: true, get: function () { return interceptor_helpers_1.traitHasInterceptor; } });
55
+ Object.defineProperty(exports, "getInterceptorTraits", { enumerable: true, get: function () { return interceptor_helpers_1.getInterceptorTraits; } });
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/capabilities/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,QAAQ;AACR,iCAIiB;AADf,qGAAA,YAAY,OAAA;AAMd,WAAW;AACX,6DAU+B;AAP7B,iIAAA,0BAA0B,OAAA;AAC1B,+HAAA,wBAAwB,OAAA;AACxB,yHAAA,kBAAkB,OAAA;AAClB,4HAAA,qBAAqB,OAAA;AACrB,mIAAA,4BAA4B,OAAA;AAC5B,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,6BAA6B;AAC7B,6DAS+B;AAL7B,+HAAA,wBAAwB,OAAA;AACxB,0HAAA,mBAAmB,OAAA;AACnB,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,UAAU;AACV,2DAM8B;AAL5B,6HAAA,uBAAuB,OAAA;AACvB,mHAAA,aAAa,OAAA;AACb,2HAAA,qBAAqB,OAAA;AACrB,wHAAA,kBAAkB,OAAA;AAClB,sHAAA,gBAAgB,OAAA;AAGlB,iBAAiB;AACjB,mDAG0B;AAFxB,+GAAA,aAAa,OAAA;AACb,6GAAA,WAAW,OAAA;AAkBb,uBAAuB;AACvB,+DAWgC;AAP9B,iIAAA,yBAAyB,OAAA;AACzB,+HAAA,uBAAuB,OAAA;AACvB,6HAAA,qBAAqB,OAAA;AACrB,4HAAA,oBAAoB,OAAA;AACpB,mIAAA,2BAA2B,OAAA;AAC3B,gIAAA,wBAAwB,OAAA;AACxB,iIAAA,yBAAyB,OAAA;AAG3B,sBAAsB;AACtB,6DAM+B;AAL7B,+HAAA,wBAAwB,OAAA;AACxB,qHAAA,cAAc,OAAA;AACd,4HAAA,qBAAqB,OAAA;AACrB,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Interceptor Helpers (ADR-118)
3
+ *
4
+ * Helper functions for working with trait interceptors.
5
+ * Mirrors capability-helpers.ts pattern but for interceptors.
6
+ */
7
+ import { ITrait } from '../traits/trait';
8
+ import { IFEntity } from '../entities';
9
+ /**
10
+ * Find a trait on the entity that has an interceptor registered for the given action.
11
+ *
12
+ * Note: This checks both the static `interceptors` declaration on the trait class
13
+ * AND the registry. Use this when you need the trait instance.
14
+ *
15
+ * @param entity - The entity to search
16
+ * @param actionId - The action ID to find
17
+ * @returns The trait that has an interceptor registered, or undefined
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const trait = findTraitWithInterceptor(boat, 'if.action.entering');
22
+ * if (trait) {
23
+ * // Entity has an interceptor for entering
24
+ * }
25
+ * ```
26
+ */
27
+ export declare function findTraitWithInterceptor(entity: IFEntity, actionId: string): ITrait | undefined;
28
+ /**
29
+ * Check if an entity has any trait declaring an interceptor for an action.
30
+ *
31
+ * @param entity - The entity to check
32
+ * @param actionId - The action ID to check for
33
+ * @returns True if entity has a trait with this interceptor
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * if (hasInterceptor(entity, 'if.action.entering')) {
38
+ * // Entity can intercept entering actions
39
+ * }
40
+ * ```
41
+ */
42
+ export declare function hasInterceptor(entity: IFEntity, actionId: string): boolean;
43
+ /**
44
+ * Get all interceptor action IDs declared by an entity's traits.
45
+ *
46
+ * @param entity - The entity to inspect
47
+ * @returns Array of action IDs the entity intercepts
48
+ */
49
+ export declare function getEntityInterceptors(entity: IFEntity): string[];
50
+ /**
51
+ * Type guard to check if a trait declares a specific interceptor.
52
+ *
53
+ * @param trait - The trait to check
54
+ * @param actionId - The action ID to check for
55
+ * @param traitType - Optional: specific trait class to narrow to
56
+ * @returns True if trait has the interceptor (and is of specified type)
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * if (traitHasInterceptor(trait, 'if.action.entering', InflatableTrait)) {
61
+ * // trait is narrowed to InflatableTrait
62
+ * console.log(trait.isInflated);
63
+ * }
64
+ * ```
65
+ */
66
+ export declare function traitHasInterceptor<T extends ITrait>(trait: ITrait, actionId: string, traitType?: new (...args: unknown[]) => T): trait is T;
67
+ /**
68
+ * Find all traits on an entity that have interceptors.
69
+ *
70
+ * @param entity - The entity to inspect
71
+ * @returns Array of traits that declare at least one interceptor
72
+ */
73
+ export declare function getInterceptorTraits(entity: IFEntity): ITrait[];
74
+ //# sourceMappingURL=interceptor-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor-helpers.d.ts","sourceRoot":"","sources":["../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/capabilities/interceptor-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CASpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAWhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GACxC,KAAK,IAAI,CAAC,CAQZ;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK/D"}