@sharpee/stdlib 0.9.113 → 1.0.8

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 (490) hide show
  1. package/actions/author/index.d.ts.map +1 -1
  2. package/actions/author/trace.d.ts +1 -1
  3. package/actions/author/trace.d.ts.map +1 -1
  4. package/actions/base/index.d.ts.map +1 -1
  5. package/actions/base/migration-shim.d.ts +1 -1
  6. package/actions/base/migration-shim.d.ts.map +1 -1
  7. package/actions/base/report-helpers.d.ts +1 -1
  8. package/actions/base/report-helpers.d.ts.map +1 -1
  9. package/actions/base/snapshot-utils.d.ts +1 -1
  10. package/actions/base/snapshot-utils.d.ts.map +1 -1
  11. package/actions/base/snapshot-utils.js +1 -1
  12. package/actions/capability-dispatch.d.ts.map +1 -1
  13. package/actions/capability-dispatch.js +1 -1
  14. package/actions/constants.d.ts.map +1 -1
  15. package/actions/context-adapter.d.ts +3 -3
  16. package/actions/context-adapter.d.ts.map +1 -1
  17. package/actions/data-builder-types.d.ts +1 -1
  18. package/actions/data-builder-types.d.ts.map +1 -1
  19. package/actions/enhanced-context.d.ts +1 -1
  20. package/actions/enhanced-context.d.ts.map +1 -1
  21. package/actions/enhanced-context.js +18 -2
  22. package/actions/enhanced-context.js.map +1 -1
  23. package/actions/enhanced-types.d.ts +37 -2
  24. package/actions/enhanced-types.d.ts.map +1 -1
  25. package/actions/enhanced-types.js.map +1 -1
  26. package/actions/helpers/emit-illustrations.d.ts +2 -2
  27. package/actions/helpers/emit-illustrations.d.ts.map +1 -1
  28. package/actions/index.d.ts +1 -2
  29. package/actions/index.d.ts.map +1 -1
  30. package/actions/index.js +1 -2
  31. package/actions/index.js.map +1 -1
  32. package/actions/meta-action.d.ts +1 -1
  33. package/actions/meta-action.d.ts.map +1 -1
  34. package/actions/meta-registry.d.ts.map +1 -1
  35. package/actions/registry.d.ts +1 -1
  36. package/actions/registry.d.ts.map +1 -1
  37. package/actions/standard/about/about-events.d.ts +2 -0
  38. package/actions/standard/about/about-events.d.ts.map +1 -1
  39. package/actions/standard/about/about.d.ts.map +1 -1
  40. package/actions/standard/about/about.js +5 -2
  41. package/actions/standard/about/about.js.map +1 -1
  42. package/actions/standard/about/index.d.ts.map +1 -1
  43. package/actions/standard/again/again-events.d.ts.map +1 -1
  44. package/actions/standard/again/again.d.ts.map +1 -1
  45. package/actions/standard/again/again.js +1 -1
  46. package/actions/standard/again/index.d.ts.map +1 -1
  47. package/actions/standard/attacking/attacking-data.d.ts.map +1 -1
  48. package/actions/standard/attacking/attacking-events.d.ts +1 -1
  49. package/actions/standard/attacking/attacking-events.d.ts.map +1 -1
  50. package/actions/standard/attacking/attacking-types.d.ts +1 -1
  51. package/actions/standard/attacking/attacking-types.d.ts.map +1 -1
  52. package/actions/standard/attacking/attacking.d.ts.map +1 -1
  53. package/actions/standard/attacking/attacking.js +1 -1
  54. package/actions/standard/attacking/index.d.ts.map +1 -1
  55. package/actions/standard/climbing/climbing-events.d.ts +1 -1
  56. package/actions/standard/climbing/climbing-events.d.ts.map +1 -1
  57. package/actions/standard/climbing/climbing.d.ts.map +1 -1
  58. package/actions/standard/climbing/climbing.js +1 -1
  59. package/actions/standard/climbing/index.d.ts.map +1 -1
  60. package/actions/standard/closing/closing-data.d.ts.map +1 -1
  61. package/actions/standard/closing/closing-error-prevents-closing.d.ts.map +1 -1
  62. package/actions/standard/closing/closing-event-data.d.ts +1 -1
  63. package/actions/standard/closing/closing-event-data.d.ts.map +1 -1
  64. package/actions/standard/closing/closing-messages.d.ts.map +1 -1
  65. package/actions/standard/closing/closing.d.ts.map +1 -1
  66. package/actions/standard/closing/closing.js +1 -1
  67. package/actions/standard/closing/index.d.ts.map +1 -1
  68. package/actions/standard/drinking/drinking-events.d.ts +1 -1
  69. package/actions/standard/drinking/drinking-events.d.ts.map +1 -1
  70. package/actions/standard/drinking/drinking.d.ts.map +1 -1
  71. package/actions/standard/drinking/drinking.js +1 -1
  72. package/actions/standard/drinking/index.d.ts.map +1 -1
  73. package/actions/standard/dropping/dropping-data.d.ts.map +1 -1
  74. package/actions/standard/dropping/dropping-data.js +1 -1
  75. package/actions/standard/dropping/dropping-events.d.ts +1 -1
  76. package/actions/standard/dropping/dropping-events.d.ts.map +1 -1
  77. package/actions/standard/dropping/dropping-messages.d.ts.map +1 -1
  78. package/actions/standard/dropping/dropping-types.d.ts +2 -2
  79. package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
  80. package/actions/standard/dropping/dropping.d.ts.map +1 -1
  81. package/actions/standard/dropping/dropping.js +1 -1
  82. package/actions/standard/dropping/index.d.ts.map +1 -1
  83. package/actions/standard/eating/eating-events.d.ts +1 -1
  84. package/actions/standard/eating/eating-events.d.ts.map +1 -1
  85. package/actions/standard/eating/eating.d.ts.map +1 -1
  86. package/actions/standard/eating/eating.js +1 -1
  87. package/actions/standard/eating/index.d.ts.map +1 -1
  88. package/actions/standard/entering/entering-events.d.ts +1 -1
  89. package/actions/standard/entering/entering-events.d.ts.map +1 -1
  90. package/actions/standard/entering/entering-messages.d.ts.map +1 -1
  91. package/actions/standard/entering/entering.d.ts.map +1 -1
  92. package/actions/standard/entering/entering.js +1 -1
  93. package/actions/standard/entering/index.d.ts.map +1 -1
  94. package/actions/standard/examining/examining-data.d.ts +1 -1
  95. package/actions/standard/examining/examining-data.d.ts.map +1 -1
  96. package/actions/standard/examining/examining-data.js +36 -2
  97. package/actions/standard/examining/examining-data.js.map +1 -1
  98. package/actions/standard/examining/examining-events.d.ts +1 -1
  99. package/actions/standard/examining/examining-events.d.ts.map +1 -1
  100. package/actions/standard/examining/examining-messages.d.ts +1 -0
  101. package/actions/standard/examining/examining-messages.d.ts.map +1 -1
  102. package/actions/standard/examining/examining-messages.js +1 -0
  103. package/actions/standard/examining/examining-messages.js.map +1 -1
  104. package/actions/standard/examining/examining.d.ts.map +1 -1
  105. package/actions/standard/examining/examining.js +1 -0
  106. package/actions/standard/examining/examining.js.map +1 -1
  107. package/actions/standard/examining/index.d.ts.map +1 -1
  108. package/actions/standard/exiting/exiting-events.d.ts +1 -1
  109. package/actions/standard/exiting/exiting-events.d.ts.map +1 -1
  110. package/actions/standard/exiting/exiting-messages.d.ts.map +1 -1
  111. package/actions/standard/exiting/exiting.d.ts.map +1 -1
  112. package/actions/standard/exiting/exiting.js +1 -1
  113. package/actions/standard/exiting/index.d.ts.map +1 -1
  114. package/actions/standard/giving/giving-events.d.ts.map +1 -1
  115. package/actions/standard/giving/giving.d.ts.map +1 -1
  116. package/actions/standard/giving/giving.js +1 -1
  117. package/actions/standard/giving/index.d.ts.map +1 -1
  118. package/actions/standard/going/going-data.d.ts.map +1 -1
  119. package/actions/standard/going/going-data.js +1 -1
  120. package/actions/standard/going/going-events.d.ts +1 -1
  121. package/actions/standard/going/going-events.d.ts.map +1 -1
  122. package/actions/standard/going/going-messages.d.ts.map +1 -1
  123. package/actions/standard/going/going.d.ts +1 -1
  124. package/actions/standard/going/going.d.ts.map +1 -1
  125. package/actions/standard/going/going.js +1 -1
  126. package/actions/standard/going/index.d.ts.map +1 -1
  127. package/actions/standard/help/help-events.d.ts.map +1 -1
  128. package/actions/standard/help/help.d.ts.map +1 -1
  129. package/actions/standard/help/index.d.ts.map +1 -1
  130. package/actions/standard/hiding/concealment-break.d.ts +1 -1
  131. package/actions/standard/hiding/concealment-break.d.ts.map +1 -1
  132. package/actions/standard/hiding/concealment-break.js +1 -1
  133. package/actions/standard/hiding/hiding-events.d.ts +2 -2
  134. package/actions/standard/hiding/hiding-events.d.ts.map +1 -1
  135. package/actions/standard/hiding/hiding.d.ts.map +1 -1
  136. package/actions/standard/hiding/hiding.js +1 -1
  137. package/actions/standard/hiding/index.d.ts.map +1 -1
  138. package/actions/standard/hiding/revealing.d.ts.map +1 -1
  139. package/actions/standard/hiding/revealing.js +1 -1
  140. package/actions/standard/index.d.ts.map +1 -1
  141. package/actions/standard/inserting/index.d.ts.map +1 -1
  142. package/actions/standard/inserting/inserting-data.d.ts.map +1 -1
  143. package/actions/standard/inserting/inserting-events.d.ts.map +1 -1
  144. package/actions/standard/inserting/inserting-messages.d.ts.map +1 -1
  145. package/actions/standard/inserting/inserting.d.ts.map +1 -1
  146. package/actions/standard/inventory/index.d.ts.map +1 -1
  147. package/actions/standard/inventory/inventory-events.d.ts.map +1 -1
  148. package/actions/standard/inventory/inventory-messages.d.ts.map +1 -1
  149. package/actions/standard/inventory/inventory.d.ts.map +1 -1
  150. package/actions/standard/inventory/inventory.js +1 -1
  151. package/actions/standard/listening/index.d.ts.map +1 -1
  152. package/actions/standard/listening/listening-events.d.ts +1 -1
  153. package/actions/standard/listening/listening-events.d.ts.map +1 -1
  154. package/actions/standard/listening/listening.d.ts.map +1 -1
  155. package/actions/standard/listening/listening.js +1 -1
  156. package/actions/standard/lock-shared.d.ts +2 -2
  157. package/actions/standard/lock-shared.d.ts.map +1 -1
  158. package/actions/standard/lock-shared.js +1 -1
  159. package/actions/standard/locking/index.d.ts.map +1 -1
  160. package/actions/standard/locking/locking-events.d.ts +1 -1
  161. package/actions/standard/locking/locking-events.d.ts.map +1 -1
  162. package/actions/standard/locking/locking-messages.d.ts.map +1 -1
  163. package/actions/standard/locking/locking.d.ts.map +1 -1
  164. package/actions/standard/locking/locking.js +1 -1
  165. package/actions/standard/looking/index.d.ts.map +1 -1
  166. package/actions/standard/looking/looking-data.d.ts.map +1 -1
  167. package/actions/standard/looking/looking-data.js +2 -2
  168. package/actions/standard/looking/looking-events.d.ts.map +1 -1
  169. package/actions/standard/looking/looking-messages.d.ts.map +1 -1
  170. package/actions/standard/looking/looking.d.ts.map +1 -1
  171. package/actions/standard/looking/looking.js +1 -1
  172. package/actions/standard/lowering/index.d.ts.map +1 -1
  173. package/actions/standard/lowering/lowering.d.ts.map +1 -1
  174. package/actions/standard/opening/index.d.ts.map +1 -1
  175. package/actions/standard/opening/opening-data.d.ts.map +1 -1
  176. package/actions/standard/opening/opening-events.d.ts +1 -1
  177. package/actions/standard/opening/opening-events.d.ts.map +1 -1
  178. package/actions/standard/opening/opening-messages.d.ts.map +1 -1
  179. package/actions/standard/opening/opening-types.d.ts +1 -1
  180. package/actions/standard/opening/opening-types.d.ts.map +1 -1
  181. package/actions/standard/opening/opening.d.ts.map +1 -1
  182. package/actions/standard/opening/opening.js +1 -1
  183. package/actions/standard/pulling/index.d.ts.map +1 -1
  184. package/actions/standard/pulling/pulling-events.d.ts +1 -1
  185. package/actions/standard/pulling/pulling-events.d.ts.map +1 -1
  186. package/actions/standard/pulling/pulling.d.ts.map +1 -1
  187. package/actions/standard/pulling/pulling.js +1 -1
  188. package/actions/standard/pushing/index.d.ts.map +1 -1
  189. package/actions/standard/pushing/pushing-events.d.ts +1 -1
  190. package/actions/standard/pushing/pushing-events.d.ts.map +1 -1
  191. package/actions/standard/pushing/pushing-original.d.ts.map +1 -1
  192. package/actions/standard/pushing/pushing-original.js +1 -1
  193. package/actions/standard/pushing/pushing-types.d.ts +1 -1
  194. package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
  195. package/actions/standard/pushing/pushing.d.ts.map +1 -1
  196. package/actions/standard/pushing/pushing.js +1 -1
  197. package/actions/standard/putting/index.d.ts.map +1 -1
  198. package/actions/standard/putting/putting-data.d.ts.map +1 -1
  199. package/actions/standard/putting/putting-events.d.ts.map +1 -1
  200. package/actions/standard/putting/putting-messages.d.ts.map +1 -1
  201. package/actions/standard/putting/putting-types.d.ts +1 -1
  202. package/actions/standard/putting/putting-types.d.ts.map +1 -1
  203. package/actions/standard/putting/putting.d.ts.map +1 -1
  204. package/actions/standard/putting/putting.js +1 -1
  205. package/actions/standard/quitting/index.d.ts.map +1 -1
  206. package/actions/standard/quitting/quitting-events.d.ts.map +1 -1
  207. package/actions/standard/quitting/quitting.d.ts.map +1 -1
  208. package/actions/standard/quitting/quitting.js +1 -1
  209. package/actions/standard/raising/index.d.ts.map +1 -1
  210. package/actions/standard/raising/raising.d.ts.map +1 -1
  211. package/actions/standard/reading/index.d.ts.map +1 -1
  212. package/actions/standard/reading/reading-events.d.ts +1 -1
  213. package/actions/standard/reading/reading-events.d.ts.map +1 -1
  214. package/actions/standard/reading/reading.d.ts.map +1 -1
  215. package/actions/standard/reading/reading.js +1 -1
  216. package/actions/standard/removing/index.d.ts.map +1 -1
  217. package/actions/standard/removing/removing-data.d.ts.map +1 -1
  218. package/actions/standard/removing/removing-events.d.ts.map +1 -1
  219. package/actions/standard/removing/removing-messages.d.ts.map +1 -1
  220. package/actions/standard/removing/removing-types.d.ts +1 -1
  221. package/actions/standard/removing/removing-types.d.ts.map +1 -1
  222. package/actions/standard/removing/removing.d.ts.map +1 -1
  223. package/actions/standard/removing/removing.js +1 -1
  224. package/actions/standard/restarting/index.d.ts.map +1 -1
  225. package/actions/standard/restarting/restarting-events.d.ts.map +1 -1
  226. package/actions/standard/restarting/restarting.d.ts.map +1 -1
  227. package/actions/standard/restarting/restarting.js +1 -1
  228. package/actions/standard/restoring/index.d.ts.map +1 -1
  229. package/actions/standard/restoring/restoring-events.d.ts.map +1 -1
  230. package/actions/standard/restoring/restoring.d.ts.map +1 -1
  231. package/actions/standard/restoring/restoring.js +1 -1
  232. package/actions/standard/saving/index.d.ts.map +1 -1
  233. package/actions/standard/saving/saving-events.d.ts.map +1 -1
  234. package/actions/standard/saving/saving.d.ts.map +1 -1
  235. package/actions/standard/saving/saving.js +1 -1
  236. package/actions/standard/scoring/index.d.ts.map +1 -1
  237. package/actions/standard/scoring/scoring-events.d.ts.map +1 -1
  238. package/actions/standard/scoring/scoring.d.ts.map +1 -1
  239. package/actions/standard/scoring/scoring.js +1 -1
  240. package/actions/standard/searching/index.d.ts.map +1 -1
  241. package/actions/standard/searching/searching-events.d.ts +1 -1
  242. package/actions/standard/searching/searching-events.d.ts.map +1 -1
  243. package/actions/standard/searching/searching.d.ts.map +1 -1
  244. package/actions/standard/searching/searching.js +1 -1
  245. package/actions/standard/searching-helpers.d.ts +1 -1
  246. package/actions/standard/searching-helpers.d.ts.map +1 -1
  247. package/actions/standard/searching-helpers.js +1 -1
  248. package/actions/standard/showing/index.d.ts.map +1 -1
  249. package/actions/standard/showing/showing-events.d.ts.map +1 -1
  250. package/actions/standard/showing/showing.d.ts.map +1 -1
  251. package/actions/standard/showing/showing.js +1 -1
  252. package/actions/standard/sleeping/index.d.ts.map +1 -1
  253. package/actions/standard/sleeping/sleeping-events.d.ts +1 -1
  254. package/actions/standard/sleeping/sleeping-events.d.ts.map +1 -1
  255. package/actions/standard/sleeping/sleeping.d.ts.map +1 -1
  256. package/actions/standard/smelling/index.d.ts.map +1 -1
  257. package/actions/standard/smelling/smelling-events.d.ts +1 -1
  258. package/actions/standard/smelling/smelling-events.d.ts.map +1 -1
  259. package/actions/standard/smelling/smelling.d.ts.map +1 -1
  260. package/actions/standard/smelling/smelling.js +1 -1
  261. package/actions/standard/switching-shared.d.ts +1 -1
  262. package/actions/standard/switching-shared.d.ts.map +1 -1
  263. package/actions/standard/switching-shared.js +1 -1
  264. package/actions/standard/switching_off/index.d.ts.map +1 -1
  265. package/actions/standard/switching_off/switching_off-events.d.ts +1 -1
  266. package/actions/standard/switching_off/switching_off-events.d.ts.map +1 -1
  267. package/actions/standard/switching_off/switching_off-messages.d.ts.map +1 -1
  268. package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
  269. package/actions/standard/switching_off/switching_off.js +1 -1
  270. package/actions/standard/switching_on/index.d.ts.map +1 -1
  271. package/actions/standard/switching_on/switching_on-events.d.ts +1 -1
  272. package/actions/standard/switching_on/switching_on-events.d.ts.map +1 -1
  273. package/actions/standard/switching_on/switching_on-messages.d.ts.map +1 -1
  274. package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
  275. package/actions/standard/switching_on/switching_on.js +1 -1
  276. package/actions/standard/taking/index.d.ts.map +1 -1
  277. package/actions/standard/taking/taking-data.d.ts.map +1 -1
  278. package/actions/standard/taking/taking-events.d.ts +1 -1
  279. package/actions/standard/taking/taking-events.d.ts.map +1 -1
  280. package/actions/standard/taking/taking-messages.d.ts.map +1 -1
  281. package/actions/standard/taking/taking-types.d.ts +2 -2
  282. package/actions/standard/taking/taking-types.d.ts.map +1 -1
  283. package/actions/standard/taking/taking.d.ts.map +1 -1
  284. package/actions/standard/taking/taking.js +1 -1
  285. package/actions/standard/taking_off/index.d.ts.map +1 -1
  286. package/actions/standard/taking_off/taking-off-events.d.ts +1 -1
  287. package/actions/standard/taking_off/taking-off-events.d.ts.map +1 -1
  288. package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
  289. package/actions/standard/taking_off/taking-off.js +1 -1
  290. package/actions/standard/talking/index.d.ts.map +1 -1
  291. package/actions/standard/talking/talking-events.d.ts +1 -1
  292. package/actions/standard/talking/talking-events.d.ts.map +1 -1
  293. package/actions/standard/talking/talking.d.ts.map +1 -1
  294. package/actions/standard/talking/talking.js +1 -1
  295. package/actions/standard/throwing/index.d.ts.map +1 -1
  296. package/actions/standard/throwing/throwing-events.d.ts.map +1 -1
  297. package/actions/standard/throwing/throwing.d.ts.map +1 -1
  298. package/actions/standard/throwing/throwing.js +1 -1
  299. package/actions/standard/touching/index.d.ts.map +1 -1
  300. package/actions/standard/touching/touching-events.d.ts +1 -1
  301. package/actions/standard/touching/touching-events.d.ts.map +1 -1
  302. package/actions/standard/touching/touching.d.ts.map +1 -1
  303. package/actions/standard/touching/touching.js +1 -1
  304. package/actions/standard/undoing/index.d.ts.map +1 -1
  305. package/actions/standard/undoing/undoing-events.d.ts.map +1 -1
  306. package/actions/standard/undoing/undoing.d.ts.map +1 -1
  307. package/actions/standard/undoing/undoing.js +1 -1
  308. package/actions/standard/unlocking/index.d.ts.map +1 -1
  309. package/actions/standard/unlocking/unlocking-events.d.ts +1 -1
  310. package/actions/standard/unlocking/unlocking-events.d.ts.map +1 -1
  311. package/actions/standard/unlocking/unlocking-messages.d.ts.map +1 -1
  312. package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
  313. package/actions/standard/unlocking/unlocking.js +1 -1
  314. package/actions/standard/version/index.d.ts.map +1 -1
  315. package/actions/standard/version/version-events.d.ts.map +1 -1
  316. package/actions/standard/version/version.d.ts.map +1 -1
  317. package/actions/standard/version/version.js +1 -1
  318. package/actions/standard/waiting/index.d.ts.map +1 -1
  319. package/actions/standard/waiting/waiting-events.d.ts +1 -1
  320. package/actions/standard/waiting/waiting-events.d.ts.map +1 -1
  321. package/actions/standard/waiting/waiting.d.ts.map +1 -1
  322. package/actions/standard/wearable-shared.d.ts +2 -2
  323. package/actions/standard/wearable-shared.d.ts.map +1 -1
  324. package/actions/standard/wearable-shared.js +1 -1
  325. package/actions/standard/wearing/index.d.ts.map +1 -1
  326. package/actions/standard/wearing/wearing-events.d.ts +1 -1
  327. package/actions/standard/wearing/wearing-events.d.ts.map +1 -1
  328. package/actions/standard/wearing/wearing-messages.d.ts.map +1 -1
  329. package/actions/standard/wearing/wearing.d.ts.map +1 -1
  330. package/actions/standard/wearing/wearing.js +1 -1
  331. package/actions/types.d.ts +1 -1
  332. package/actions/types.d.ts.map +1 -1
  333. package/capabilities/command-history.d.ts +1 -1
  334. package/capabilities/command-history.d.ts.map +1 -1
  335. package/capabilities/conversation.d.ts +1 -1
  336. package/capabilities/conversation.d.ts.map +1 -1
  337. package/capabilities/debug.d.ts +1 -1
  338. package/capabilities/debug.d.ts.map +1 -1
  339. package/capabilities/game-meta.d.ts +1 -1
  340. package/capabilities/game-meta.d.ts.map +1 -1
  341. package/capabilities/index.d.ts.map +1 -1
  342. package/capabilities/index.js +1 -1
  343. package/capabilities/save-restore.d.ts +1 -1
  344. package/capabilities/save-restore.d.ts.map +1 -1
  345. package/capabilities/scoring.d.ts +1 -1
  346. package/capabilities/scoring.d.ts.map +1 -1
  347. package/chains/index.d.ts +1 -1
  348. package/chains/index.d.ts.map +1 -1
  349. package/chains/opened-revealed.d.ts +2 -2
  350. package/chains/opened-revealed.d.ts.map +1 -1
  351. package/chains/opened-revealed.js +1 -1
  352. package/channels/index.d.ts +40 -0
  353. package/channels/index.d.ts.map +1 -0
  354. package/channels/index.js +86 -0
  355. package/channels/index.js.map +1 -0
  356. package/channels/keys.d.ts +23 -0
  357. package/channels/keys.d.ts.map +1 -0
  358. package/channels/keys.js +36 -0
  359. package/channels/keys.js.map +1 -0
  360. package/channels/media.d.ts +135 -0
  361. package/channels/media.d.ts.map +1 -0
  362. package/channels/media.js +397 -0
  363. package/channels/media.js.map +1 -0
  364. package/channels/registry.d.ts +58 -0
  365. package/channels/registry.d.ts.map +1 -0
  366. package/channels/registry.js +84 -0
  367. package/channels/registry.js.map +1 -0
  368. package/channels/sound-events.d.ts +72 -0
  369. package/channels/sound-events.d.ts.map +1 -0
  370. package/channels/sound-events.js +88 -0
  371. package/channels/sound-events.js.map +1 -0
  372. package/channels/standard.d.ts +209 -0
  373. package/channels/standard.d.ts.map +1 -0
  374. package/channels/standard.js +403 -0
  375. package/channels/standard.js.map +1 -0
  376. package/channels/world-helpers.d.ts +43 -0
  377. package/channels/world-helpers.d.ts.map +1 -0
  378. package/channels/world-helpers.js +72 -0
  379. package/channels/world-helpers.js.map +1 -0
  380. package/combat/index.d.ts.map +1 -1
  381. package/combat/weapon-utils.d.ts +1 -1
  382. package/combat/weapon-utils.d.ts.map +1 -1
  383. package/combat/weapon-utils.js +1 -1
  384. package/events/action-events.d.ts.map +1 -1
  385. package/events/base-event.d.ts.map +1 -1
  386. package/events/common-patterns.d.ts +1 -1
  387. package/events/common-patterns.d.ts.map +1 -1
  388. package/events/event-registry.d.ts +1 -1
  389. package/events/event-registry.d.ts.map +1 -1
  390. package/events/event-utils.d.ts +2 -2
  391. package/events/event-utils.d.ts.map +1 -1
  392. package/events/index.d.ts.map +1 -1
  393. package/helpers/index.d.ts.map +1 -1
  394. package/helpers/multi-object-handler.d.ts +2 -2
  395. package/helpers/multi-object-handler.d.ts.map +1 -1
  396. package/helpers/multi-object-handler.js +1 -1
  397. package/index.d.ts +1 -0
  398. package/index.d.ts.map +1 -1
  399. package/index.js +1 -0
  400. package/index.js.map +1 -1
  401. package/inference/implicit-inference.d.ts +1 -1
  402. package/inference/implicit-inference.d.ts.map +1 -1
  403. package/inference/index.d.ts.map +1 -1
  404. package/npc/behaviors.d.ts.map +1 -1
  405. package/npc/behaviors.js +1 -1
  406. package/npc/character-messages.d.ts.map +1 -1
  407. package/npc/character-observer.d.ts +2 -2
  408. package/npc/character-observer.d.ts.map +1 -1
  409. package/npc/character-observer.js +1 -1
  410. package/npc/index.d.ts.map +1 -1
  411. package/npc/lucidity-decay.d.ts +2 -2
  412. package/npc/lucidity-decay.d.ts.map +1 -1
  413. package/npc/lucidity-decay.js +1 -1
  414. package/npc/npc-messages.d.ts.map +1 -1
  415. package/npc/npc-service.d.ts +2 -2
  416. package/npc/npc-service.d.ts.map +1 -1
  417. package/npc/npc-service.js +1 -1
  418. package/npc/types.d.ts +2 -2
  419. package/npc/types.d.ts.map +1 -1
  420. package/package.json +7 -6
  421. package/parser/index.d.ts +1 -1
  422. package/parser/index.d.ts.map +1 -1
  423. package/parser/index.js +1 -1
  424. package/query-handlers/index.d.ts.map +1 -1
  425. package/query-handlers/quit-handler.d.ts +1 -1
  426. package/query-handlers/quit-handler.d.ts.map +1 -1
  427. package/query-handlers/quit-handler.js +1 -1
  428. package/query-handlers/restart-handler.d.ts +1 -1
  429. package/query-handlers/restart-handler.d.ts.map +1 -1
  430. package/query-handlers/restart-handler.js +1 -1
  431. package/scope/index.d.ts.map +1 -1
  432. package/scope/scope-resolver.d.ts +1 -1
  433. package/scope/scope-resolver.d.ts.map +1 -1
  434. package/scope/scope-resolver.js +1 -1
  435. package/scope/types.d.ts +1 -1
  436. package/scope/types.d.ts.map +1 -1
  437. package/scope/witness-system.d.ts +1 -1
  438. package/scope/witness-system.d.ts.map +1 -1
  439. package/scope/witness-system.js +2 -2
  440. package/services/PerceptionService.d.ts +4 -4
  441. package/services/PerceptionService.d.ts.map +1 -1
  442. package/services/PerceptionService.js +1 -1
  443. package/services/index.d.ts.map +1 -1
  444. package/utils/entity-info.d.ts +2 -2
  445. package/utils/entity-info.d.ts.map +1 -1
  446. package/utils/entity-info.js +1 -1
  447. package/utils/index.d.ts.map +1 -1
  448. package/validation/command-validator.d.ts +13 -3
  449. package/validation/command-validator.d.ts.map +1 -1
  450. package/validation/command-validator.js +32 -2
  451. package/validation/command-validator.js.map +1 -1
  452. package/validation/index.d.ts.map +1 -1
  453. package/validation/types.d.ts +1 -1
  454. package/validation/types.d.ts.map +1 -1
  455. package/vocabulary/index.d.ts.map +1 -1
  456. package/vocabulary/standard-english.d.ts.map +1 -1
  457. package/actions/context.d.ts +0 -95
  458. package/actions/context.d.ts.map +0 -1
  459. package/actions/context.js +0 -272
  460. package/actions/context.js.map +0 -1
  461. package/actions/standard/inserting/inserting-semantic.d.ts +0 -42
  462. package/actions/standard/inserting/inserting-semantic.d.ts.map +0 -1
  463. package/actions/standard/inserting/inserting-semantic.js +0 -219
  464. package/actions/standard/inserting/inserting-semantic.js.map +0 -1
  465. package/combat/combat-messages.d.ts +0 -52
  466. package/combat/combat-messages.d.ts.map +0 -1
  467. package/combat/combat-messages.js +0 -69
  468. package/combat/combat-messages.js.map +0 -1
  469. package/combat/combat-service.d.ts +0 -109
  470. package/combat/combat-service.d.ts.map +0 -1
  471. package/combat/combat-service.js +0 -244
  472. package/combat/combat-service.js.map +0 -1
  473. package/events/helpers.d.ts +0 -44
  474. package/events/helpers.d.ts.map +0 -1
  475. package/events/helpers.js +0 -141
  476. package/events/helpers.js.map +0 -1
  477. package/services/scoring/index.d.ts +0 -6
  478. package/services/scoring/index.d.ts.map +0 -1
  479. package/services/scoring/index.js +0 -12
  480. package/services/scoring/index.js.map +0 -1
  481. package/services/scoring/scoring-event-processor.d.ts +0 -337
  482. package/services/scoring/scoring-event-processor.d.ts.map +0 -1
  483. package/services/scoring/scoring-event-processor.js +0 -613
  484. package/services/scoring/scoring-event-processor.js.map +0 -1
  485. package/services/scoring/scoring-service.d.ts +0 -185
  486. package/services/scoring/scoring-service.d.ts.map +0 -1
  487. package/services/scoring/scoring-service.js +0 -279
  488. package/services/scoring/scoring-service.js.map +0 -1
  489. package/sharpee-stdlib-0.9.109.tgz +0 -0
  490. package/sharpee-stdlib-0.9.110.tgz +0 -0
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @sharpee/stdlib/channels — media `IOChannel` definitions.
3
+ *
4
+ * Owner context: stdlib language layer. The platform media-channel
5
+ * vocabulary from ADR-163 §7. Each channel is capability-gated; the
6
+ * `ChannelService` filters gated channels out of the per-client
7
+ * manifest using `IOChannel.gatedBy`.
8
+ *
9
+ * Closures listen for the corresponding `media.*` event type on the
10
+ * turn's `events` array and project the event's payload (with the two
11
+ * ADR-163 §7 renames: `media.sound.play` `channel?` → `bus?`;
12
+ * `media.image.show` hotspots `action` → `command`; and the §9 drop
13
+ * of `media.animation.play.onComplete`).
14
+ *
15
+ * Hide/stop events (`media.image.hide`, `media.music.stop`,
16
+ * `media.ambient.stop`) emit `null` on the corresponding replace-mode
17
+ * media channel — the renderer interprets `null` as "hide / stop".
18
+ *
19
+ * **Dynamic channels** — `image:<layer>` (custom layer beyond
20
+ * `image:background`/`image:main`/`image:overlay`) and `ambient:<id>`
21
+ * are NOT registered here. Stories register them through their own
22
+ * `Story.registerChannels` hook; `createAmbientChannel(id)` and
23
+ * `createImageChannel(layer)` are convenience builders.
24
+ *
25
+ * @see ADR-163 — Channel-Service Platform — §6, §7, §9
26
+ */
27
+ import type { IOChannel } from '@sharpee/if-domain';
28
+ import type { ISemanticEvent } from '@sharpee/core';
29
+ /**
30
+ * Media event types from ADR-101 (folded into channel emissions per
31
+ * ADR-163 §7).
32
+ */
33
+ export declare const MEDIA_EVENT_TYPES: {
34
+ readonly IMAGE_SHOW: "media.image.show";
35
+ readonly IMAGE_HIDE: "media.image.hide";
36
+ readonly IMAGE_PRELOAD: "media.image.preload";
37
+ readonly SOUND_PLAY: "media.sound.play";
38
+ readonly MUSIC_PLAY: "media.music.play";
39
+ readonly MUSIC_STOP: "media.music.stop";
40
+ readonly AMBIENT_PLAY: "media.ambient.play";
41
+ readonly AMBIENT_STOP: "media.ambient.stop";
42
+ readonly ANIMATION_PLAY: "media.animation.play";
43
+ readonly ANIMATE: "media.animate";
44
+ readonly TRANSITION: "media.transition";
45
+ readonly LAYOUT_CONFIGURE: "media.layout.configure";
46
+ readonly CLEAR: "media.clear";
47
+ };
48
+ export type MediaEventType = (typeof MEDIA_EVENT_TYPES)[keyof typeof MEDIA_EVENT_TYPES];
49
+ /**
50
+ * Resolve the `image:<layer>` channel id from a `media.image.show` /
51
+ * `media.image.hide` event payload. Defaults to `image:main`.
52
+ */
53
+ export declare function imageChannelIdFromEvent(event: ISemanticEvent): string;
54
+ /**
55
+ * Construct an `image:<layer>` `IOChannel`. Standard layers
56
+ * (`background`, `main`, `overlay`) are pre-registered; stories add
57
+ * additional layers via this builder.
58
+ */
59
+ export declare function createImageChannel(layer: string): IOChannel;
60
+ export declare const imageBackgroundChannel: IOChannel;
61
+ export declare const imageMainChannel: IOChannel;
62
+ export declare const imageOverlayChannel: IOChannel;
63
+ /**
64
+ * `image:preload` — event-mode preload trigger. Renderers download
65
+ * the asset; not displayed.
66
+ */
67
+ export declare const imagePreloadChannel: IOChannel;
68
+ /**
69
+ * `sound` — event-mode sound effect.
70
+ */
71
+ export declare const soundChannel: IOChannel;
72
+ /**
73
+ * `music` — replace-mode music track. `null` emission (from
74
+ * `media.music.stop`) signals "stop".
75
+ */
76
+ export declare const musicChannel: IOChannel;
77
+ /**
78
+ * Construct an `ambient:<id>` `IOChannel`. Ambient channels are
79
+ * inherently story-defined (ADR-163 §7) — the platform has no
80
+ * predetermined ambient ids. Stories call this once per ambient
81
+ * layer they need.
82
+ *
83
+ * @param ambientId — suffix portion (e.g., `'wind'` registers
84
+ * `ambient:wind`).
85
+ */
86
+ export declare function createAmbientChannel(ambientId: string): IOChannel;
87
+ /**
88
+ * `animation` — event-mode CSS-style animation. Drops `onComplete`
89
+ * per ADR-163 §9.
90
+ */
91
+ export declare const animationChannel: IOChannel;
92
+ /**
93
+ * `animate` — event-mode generic animation directive.
94
+ */
95
+ export declare const animateChannel: IOChannel;
96
+ /**
97
+ * `transition` — event-mode scene transition.
98
+ */
99
+ export declare const transitionChannel: IOChannel;
100
+ /**
101
+ * `layout` — replace-mode layout configuration. Persistent across
102
+ * mid-session joins so a late-joining renderer sees the current
103
+ * layout without waiting for a re-emission.
104
+ */
105
+ export declare const layoutChannel: IOChannel;
106
+ /**
107
+ * `clear` — event-mode truncation signal. Operates on append-mode
108
+ * channels (notably `main`); ungated because every renderer needs to
109
+ * be able to reset accumulated prose.
110
+ */
111
+ export declare const clearChannel: IOChannel;
112
+ /**
113
+ * Static media channels in iteration order — the ones the platform
114
+ * pre-registers regardless of story. Dynamic image layers (beyond
115
+ * the three above) and ambient channels are story-registered.
116
+ */
117
+ export declare const MEDIA_CHANNELS: ReadonlyArray<IOChannel>;
118
+ /**
119
+ * Channel id literals for the static media set.
120
+ */
121
+ export declare const MEDIA_CHANNEL_IDS: {
122
+ readonly IMAGE_PRELOAD: "image:preload";
123
+ readonly IMAGE_BACKGROUND: "image:background";
124
+ readonly IMAGE_MAIN: "image:main";
125
+ readonly IMAGE_OVERLAY: "image:overlay";
126
+ readonly SOUND: "sound";
127
+ readonly MUSIC: "music";
128
+ readonly ANIMATION: "animation";
129
+ readonly ANIMATE: "animate";
130
+ readonly TRANSITION: "transition";
131
+ readonly LAYOUT: "layout";
132
+ readonly CLEAR: "clear";
133
+ };
134
+ export type MediaChannelId = (typeof MEDIA_CHANNEL_IDS)[keyof typeof MEDIA_CHANNEL_IDS];
135
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/channels/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAcpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AA4E7D;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAIrE;AA2BD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAS3D;AAED,eAAO,MAAM,sBAAsB,EAAE,SAA4C,CAAC;AAClF,eAAO,MAAM,gBAAgB,EAAE,SAAsC,CAAC;AACtE,eAAO,MAAM,mBAAmB,EAAE,SAAyC,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAUjC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,SAW1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,SAmB1B,CAAC;AAMF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAwBjE;AAMD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAW9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAU5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAU/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,SAU3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,SAU1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CAYnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAYpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,397 @@
1
+ "use strict";
2
+ /**
3
+ * @sharpee/stdlib/channels — media `IOChannel` definitions.
4
+ *
5
+ * Owner context: stdlib language layer. The platform media-channel
6
+ * vocabulary from ADR-163 §7. Each channel is capability-gated; the
7
+ * `ChannelService` filters gated channels out of the per-client
8
+ * manifest using `IOChannel.gatedBy`.
9
+ *
10
+ * Closures listen for the corresponding `media.*` event type on the
11
+ * turn's `events` array and project the event's payload (with the two
12
+ * ADR-163 §7 renames: `media.sound.play` `channel?` → `bus?`;
13
+ * `media.image.show` hotspots `action` → `command`; and the §9 drop
14
+ * of `media.animation.play.onComplete`).
15
+ *
16
+ * Hide/stop events (`media.image.hide`, `media.music.stop`,
17
+ * `media.ambient.stop`) emit `null` on the corresponding replace-mode
18
+ * media channel — the renderer interprets `null` as "hide / stop".
19
+ *
20
+ * **Dynamic channels** — `image:<layer>` (custom layer beyond
21
+ * `image:background`/`image:main`/`image:overlay`) and `ambient:<id>`
22
+ * are NOT registered here. Stories register them through their own
23
+ * `Story.registerChannels` hook; `createAmbientChannel(id)` and
24
+ * `createImageChannel(layer)` are convenience builders.
25
+ *
26
+ * @see ADR-163 — Channel-Service Platform — §6, §7, §9
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.MEDIA_CHANNEL_IDS = exports.MEDIA_CHANNELS = exports.clearChannel = exports.layoutChannel = exports.transitionChannel = exports.animateChannel = exports.animationChannel = exports.musicChannel = exports.soundChannel = exports.imagePreloadChannel = exports.imageOverlayChannel = exports.imageMainChannel = exports.imageBackgroundChannel = exports.MEDIA_EVENT_TYPES = void 0;
30
+ exports.imageChannelIdFromEvent = imageChannelIdFromEvent;
31
+ exports.createImageChannel = createImageChannel;
32
+ exports.createAmbientChannel = createAmbientChannel;
33
+ /**
34
+ * Media event types from ADR-101 (folded into channel emissions per
35
+ * ADR-163 §7).
36
+ */
37
+ exports.MEDIA_EVENT_TYPES = {
38
+ IMAGE_SHOW: 'media.image.show',
39
+ IMAGE_HIDE: 'media.image.hide',
40
+ IMAGE_PRELOAD: 'media.image.preload',
41
+ SOUND_PLAY: 'media.sound.play',
42
+ MUSIC_PLAY: 'media.music.play',
43
+ MUSIC_STOP: 'media.music.stop',
44
+ AMBIENT_PLAY: 'media.ambient.play',
45
+ AMBIENT_STOP: 'media.ambient.stop',
46
+ ANIMATION_PLAY: 'media.animation.play',
47
+ ANIMATE: 'media.animate',
48
+ TRANSITION: 'media.transition',
49
+ LAYOUT_CONFIGURE: 'media.layout.configure',
50
+ CLEAR: 'media.clear',
51
+ };
52
+ /**
53
+ * Find the most recent event of the given type in this turn's events,
54
+ * or `undefined` if none. Last-wins per turn (replace mode) — when an
55
+ * action fires the same media event twice in one turn, the renderer
56
+ * sees the second one.
57
+ */
58
+ function lastEventOfType(ctx, type) {
59
+ let last;
60
+ for (const event of ctx.events) {
61
+ if (event.type === type)
62
+ last = event;
63
+ }
64
+ return last;
65
+ }
66
+ /**
67
+ * Iterate every event of the given type — used by event-mode media
68
+ * channels where multiple firings within one turn collapse to the
69
+ * last (event channels carry the closure's last return value per
70
+ * ChannelService). For these the iteration order is irrelevant —
71
+ * `lastEventOfType` is sufficient.
72
+ */
73
+ const _firstEventOfType = lastEventOfType;
74
+ void _firstEventOfType;
75
+ /**
76
+ * `media.sound.play` payload rename: `channel?` field on the event
77
+ * becomes `bus?` on the wire. Other fields pass through. The rename
78
+ * avoids confusion with the wire's "channel" concept (ADR-163 §7).
79
+ */
80
+ function renameSoundChannelToBus(data) {
81
+ if (!data || typeof data !== 'object')
82
+ return data;
83
+ const record = data;
84
+ if (!('channel' in record))
85
+ return record;
86
+ const { channel, ...rest } = record;
87
+ return { ...rest, bus: channel };
88
+ }
89
+ /**
90
+ * `media.image.show` hotspot rename: `hotspots[].action` → `command`
91
+ * (ADR-163 §7). Other hotspot and payload fields pass through.
92
+ */
93
+ function renameImageHotspotsActionToCommand(data) {
94
+ if (!data || typeof data !== 'object')
95
+ return data;
96
+ const record = data;
97
+ const hotspots = record.hotspots;
98
+ if (!Array.isArray(hotspots))
99
+ return record;
100
+ return {
101
+ ...record,
102
+ hotspots: hotspots.map((h) => {
103
+ if (!h || typeof h !== 'object')
104
+ return h;
105
+ const hotspot = h;
106
+ if (!('action' in hotspot))
107
+ return hotspot;
108
+ const { action, ...rest } = hotspot;
109
+ return { ...rest, command: action };
110
+ }),
111
+ };
112
+ }
113
+ /**
114
+ * `media.animation.play` payload drop: remove `onComplete`. ADR-163
115
+ * §9 declares triggers one-way; the engine doesn't track UI
116
+ * completion, so the field has no semantic carrier.
117
+ */
118
+ function dropOnComplete(data) {
119
+ if (!data || typeof data !== 'object')
120
+ return data;
121
+ const record = data;
122
+ if (!('onComplete' in record))
123
+ return record;
124
+ const { onComplete: _drop, ...rest } = record;
125
+ return rest;
126
+ }
127
+ /**
128
+ * Resolve the `image:<layer>` channel id from a `media.image.show` /
129
+ * `media.image.hide` event payload. Defaults to `image:main`.
130
+ */
131
+ function imageChannelIdFromEvent(event) {
132
+ const data = event.data;
133
+ const layer = data?.layer ?? 'main';
134
+ return `image:${layer}`;
135
+ }
136
+ // ────────────────────────────────────────────────────────────────────
137
+ // Standard image-layer channels (image:background / :main / :overlay)
138
+ // ────────────────────────────────────────────────────────────────────
139
+ function imageLayerProduce(layer) {
140
+ const channelId = `image:${layer}`;
141
+ return (ctx) => {
142
+ let lastShow;
143
+ let lastHide;
144
+ for (const event of ctx.events) {
145
+ if (event.type === exports.MEDIA_EVENT_TYPES.IMAGE_SHOW) {
146
+ if (imageChannelIdFromEvent(event) === channelId)
147
+ lastShow = event;
148
+ }
149
+ else if (event.type === exports.MEDIA_EVENT_TYPES.IMAGE_HIDE) {
150
+ if (imageChannelIdFromEvent(event) === channelId)
151
+ lastHide = event;
152
+ }
153
+ }
154
+ // Hide-after-show within the same turn → hide wins.
155
+ if (lastHide && (!lastShow || ctx.events.indexOf(lastHide) > ctx.events.indexOf(lastShow))) {
156
+ return null;
157
+ }
158
+ if (lastShow)
159
+ return renameImageHotspotsActionToCommand(lastShow.data);
160
+ return undefined;
161
+ };
162
+ }
163
+ /**
164
+ * Construct an `image:<layer>` `IOChannel`. Standard layers
165
+ * (`background`, `main`, `overlay`) are pre-registered; stories add
166
+ * additional layers via this builder.
167
+ */
168
+ function createImageChannel(layer) {
169
+ return {
170
+ id: `image:${layer}`,
171
+ contentType: 'json',
172
+ mode: 'replace',
173
+ emit: 'always',
174
+ gatedBy: 'images',
175
+ produce: imageLayerProduce(layer),
176
+ };
177
+ }
178
+ exports.imageBackgroundChannel = createImageChannel('background');
179
+ exports.imageMainChannel = createImageChannel('main');
180
+ exports.imageOverlayChannel = createImageChannel('overlay');
181
+ /**
182
+ * `image:preload` — event-mode preload trigger. Renderers download
183
+ * the asset; not displayed.
184
+ */
185
+ exports.imagePreloadChannel = {
186
+ id: 'image:preload',
187
+ contentType: 'json',
188
+ mode: 'event',
189
+ emit: 'sparse',
190
+ gatedBy: 'images',
191
+ produce: (ctx) => {
192
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.IMAGE_PRELOAD);
193
+ return event ? event.data : undefined;
194
+ },
195
+ };
196
+ // ────────────────────────────────────────────────────────────────────
197
+ // Audio channels
198
+ // ────────────────────────────────────────────────────────────────────
199
+ /**
200
+ * `sound` — event-mode sound effect.
201
+ */
202
+ exports.soundChannel = {
203
+ id: 'sound',
204
+ contentType: 'json',
205
+ mode: 'event',
206
+ emit: 'sparse',
207
+ gatedBy: 'sound',
208
+ produce: (ctx) => {
209
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.SOUND_PLAY);
210
+ if (!event)
211
+ return undefined;
212
+ return renameSoundChannelToBus(event.data);
213
+ },
214
+ };
215
+ /**
216
+ * `music` — replace-mode music track. `null` emission (from
217
+ * `media.music.stop`) signals "stop".
218
+ */
219
+ exports.musicChannel = {
220
+ id: 'music',
221
+ contentType: 'json',
222
+ mode: 'replace',
223
+ emit: 'always',
224
+ gatedBy: 'music',
225
+ produce: (ctx) => {
226
+ let lastPlay;
227
+ let lastStop;
228
+ for (const event of ctx.events) {
229
+ if (event.type === exports.MEDIA_EVENT_TYPES.MUSIC_PLAY)
230
+ lastPlay = event;
231
+ else if (event.type === exports.MEDIA_EVENT_TYPES.MUSIC_STOP)
232
+ lastStop = event;
233
+ }
234
+ if (lastStop && (!lastPlay || ctx.events.indexOf(lastStop) > ctx.events.indexOf(lastPlay))) {
235
+ return null;
236
+ }
237
+ if (lastPlay)
238
+ return lastPlay.data;
239
+ return undefined;
240
+ },
241
+ };
242
+ // ────────────────────────────────────────────────────────────────────
243
+ // Ambient channels — dynamic, story-registered
244
+ // ────────────────────────────────────────────────────────────────────
245
+ /**
246
+ * Construct an `ambient:<id>` `IOChannel`. Ambient channels are
247
+ * inherently story-defined (ADR-163 §7) — the platform has no
248
+ * predetermined ambient ids. Stories call this once per ambient
249
+ * layer they need.
250
+ *
251
+ * @param ambientId — suffix portion (e.g., `'wind'` registers
252
+ * `ambient:wind`).
253
+ */
254
+ function createAmbientChannel(ambientId) {
255
+ const channelId = `ambient:${ambientId}`;
256
+ return {
257
+ id: channelId,
258
+ contentType: 'json',
259
+ mode: 'replace',
260
+ emit: 'always',
261
+ gatedBy: 'sound',
262
+ produce: (ctx) => {
263
+ let lastPlay;
264
+ let lastStop;
265
+ for (const event of ctx.events) {
266
+ const data = event.data;
267
+ if (data?.channel !== ambientId)
268
+ continue;
269
+ if (event.type === exports.MEDIA_EVENT_TYPES.AMBIENT_PLAY)
270
+ lastPlay = event;
271
+ else if (event.type === exports.MEDIA_EVENT_TYPES.AMBIENT_STOP)
272
+ lastStop = event;
273
+ }
274
+ if (lastStop && (!lastPlay || ctx.events.indexOf(lastStop) > ctx.events.indexOf(lastPlay))) {
275
+ return null;
276
+ }
277
+ if (lastPlay)
278
+ return lastPlay.data;
279
+ return undefined;
280
+ },
281
+ };
282
+ }
283
+ // ────────────────────────────────────────────────────────────────────
284
+ // Animation / transition / layout / clear
285
+ // ────────────────────────────────────────────────────────────────────
286
+ /**
287
+ * `animation` — event-mode CSS-style animation. Drops `onComplete`
288
+ * per ADR-163 §9.
289
+ */
290
+ exports.animationChannel = {
291
+ id: 'animation',
292
+ contentType: 'json',
293
+ mode: 'event',
294
+ emit: 'sparse',
295
+ gatedBy: 'animations',
296
+ produce: (ctx) => {
297
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.ANIMATION_PLAY);
298
+ if (!event)
299
+ return undefined;
300
+ return dropOnComplete(event.data);
301
+ },
302
+ };
303
+ /**
304
+ * `animate` — event-mode generic animation directive.
305
+ */
306
+ exports.animateChannel = {
307
+ id: 'animate',
308
+ contentType: 'json',
309
+ mode: 'event',
310
+ emit: 'sparse',
311
+ gatedBy: 'animations',
312
+ produce: (ctx) => {
313
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.ANIMATE);
314
+ return event ? event.data : undefined;
315
+ },
316
+ };
317
+ /**
318
+ * `transition` — event-mode scene transition.
319
+ */
320
+ exports.transitionChannel = {
321
+ id: 'transition',
322
+ contentType: 'json',
323
+ mode: 'event',
324
+ emit: 'sparse',
325
+ gatedBy: 'transitions',
326
+ produce: (ctx) => {
327
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.TRANSITION);
328
+ return event ? event.data : undefined;
329
+ },
330
+ };
331
+ /**
332
+ * `layout` — replace-mode layout configuration. Persistent across
333
+ * mid-session joins so a late-joining renderer sees the current
334
+ * layout without waiting for a re-emission.
335
+ */
336
+ exports.layoutChannel = {
337
+ id: 'layout',
338
+ contentType: 'json',
339
+ mode: 'replace',
340
+ emit: 'always',
341
+ gatedBy: 'splitPane',
342
+ produce: (ctx) => {
343
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.LAYOUT_CONFIGURE);
344
+ return event ? event.data : undefined;
345
+ },
346
+ };
347
+ /**
348
+ * `clear` — event-mode truncation signal. Operates on append-mode
349
+ * channels (notably `main`); ungated because every renderer needs to
350
+ * be able to reset accumulated prose.
351
+ */
352
+ exports.clearChannel = {
353
+ id: 'clear',
354
+ contentType: 'json',
355
+ mode: 'event',
356
+ emit: 'sparse',
357
+ // Intentionally not gated — clear must be available on every surface.
358
+ produce: (ctx) => {
359
+ const event = lastEventOfType(ctx, exports.MEDIA_EVENT_TYPES.CLEAR);
360
+ return event ? (event.data ?? {}) : undefined;
361
+ },
362
+ };
363
+ /**
364
+ * Static media channels in iteration order — the ones the platform
365
+ * pre-registers regardless of story. Dynamic image layers (beyond
366
+ * the three above) and ambient channels are story-registered.
367
+ */
368
+ exports.MEDIA_CHANNELS = [
369
+ exports.imagePreloadChannel,
370
+ exports.imageBackgroundChannel,
371
+ exports.imageMainChannel,
372
+ exports.imageOverlayChannel,
373
+ exports.soundChannel,
374
+ exports.musicChannel,
375
+ exports.animationChannel,
376
+ exports.animateChannel,
377
+ exports.transitionChannel,
378
+ exports.layoutChannel,
379
+ exports.clearChannel,
380
+ ];
381
+ /**
382
+ * Channel id literals for the static media set.
383
+ */
384
+ exports.MEDIA_CHANNEL_IDS = {
385
+ IMAGE_PRELOAD: 'image:preload',
386
+ IMAGE_BACKGROUND: 'image:background',
387
+ IMAGE_MAIN: 'image:main',
388
+ IMAGE_OVERLAY: 'image:overlay',
389
+ SOUND: 'sound',
390
+ MUSIC: 'music',
391
+ ANIMATION: 'animation',
392
+ ANIMATE: 'animate',
393
+ TRANSITION: 'transition',
394
+ LAYOUT: 'layout',
395
+ CLEAR: 'clear',
396
+ };
397
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/channels/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @sharpee/stdlib/channels — channel registry instance.
3
+ *
4
+ * Owner context: stdlib language layer. Hosts the canonical
5
+ * `IChannelRegistry` instance for Sharpee's channel-I/O system.
6
+ * Engine bootstrap imports this instance, lets stories register their
7
+ * channels onto it (`Story.registerChannels?.(registry)`), then hands
8
+ * it to a fresh `ChannelService` (per ADR-163 §13, §14).
9
+ *
10
+ * The instance is populated at module init with the ten standard
11
+ * channels and the eleven static media channels. The `Story.registerChannels`
12
+ * hook may add story-specific channels or override standards by
13
+ * re-registering with the same id (last-write-wins per ADR-163 §6).
14
+ *
15
+ * Lifecycle: a fresh `ChannelService` is created per session
16
+ * (engine restart, RESTART command). The registry itself is reused —
17
+ * stdlib's standard channels stay registered across sessions, and the
18
+ * `ChannelService`'s per-session `prevValues` map provides the
19
+ * isolation. The Story.registerChannels hook is invoked once per
20
+ * engine bootstrap; if a story overrides a standard channel, that
21
+ * override persists for the lifetime of the engine instance.
22
+ *
23
+ * Tests can construct their own `IChannelRegistry` instance for
24
+ * isolation (unit tests should not depend on this singleton's
25
+ * pre-populated state for behavior-specific assertions).
26
+ *
27
+ * @see ADR-163 — Channel-Service Platform — §6, §7, §13, §14
28
+ */
29
+ import type { IChannelRegistry, IOChannel } from '@sharpee/if-domain';
30
+ /**
31
+ * In-memory `IChannelRegistry` implementation. Last-write-wins on
32
+ * `add(channel)` by `channel.id` — which is how stories override
33
+ * platform standards (ADR-163 §6).
34
+ */
35
+ export declare class StdlibChannelRegistry implements IChannelRegistry {
36
+ private readonly channels;
37
+ add(channel: IOChannel): void;
38
+ get(id: string): IOChannel | undefined;
39
+ all(): readonly IOChannel[];
40
+ /**
41
+ * Test-only helper: snapshot the current channel ids. Stable
42
+ * iteration order matches insertion order (Map semantics).
43
+ */
44
+ ids(): readonly string[];
45
+ }
46
+ /**
47
+ * The canonical channel registry instance for Sharpee. Pre-populated
48
+ * with ten standard channels (`main`, `prompt`, `score`, `turn`,
49
+ * `location`, `info`, `ifid`, `death`, `endgame`, `score_notify`)
50
+ * plus eleven static media channels (`image:preload`,
51
+ * `image:background`, `image:main`, `image:overlay`, `sound`,
52
+ * `music`, `animation`, `animate`, `transition`, `layout`, `clear`).
53
+ *
54
+ * Engine bootstrap consumes this directly; stories extend through
55
+ * the `Story.registerChannels?(registry)` hook.
56
+ */
57
+ export declare const channelRegistry: IChannelRegistry;
58
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKtE;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEzD,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAI7B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,GAAG,IAAI,SAAS,SAAS,EAAE;IAI3B;;;OAGG;IACH,GAAG,IAAI,SAAS,MAAM,EAAE;CAGzB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,gBAY1B,CAAC"}