@ksp-gonogo/sitrep-sdk 0.0.1 → 0.2.0-rc.12

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 (1117) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +48 -8
  3. package/biome.shared.json +26 -0
  4. package/dist/__generated__/command-map.d.ts +480 -0
  5. package/dist/__generated__/command-map.d.ts.map +1 -0
  6. package/dist/__generated__/command-map.js +265 -0
  7. package/dist/__generated__/command-map.js.map +1 -0
  8. package/dist/__generated__/contract.d.ts +10271 -454
  9. package/dist/__generated__/contract.d.ts.map +1 -1
  10. package/dist/__generated__/contract.js +1163 -11
  11. package/dist/__generated__/contract.js.map +1 -1
  12. package/dist/__generated__/control-channels.d.ts +116 -0
  13. package/dist/__generated__/control-channels.d.ts.map +1 -0
  14. package/dist/__generated__/control-channels.js +29 -0
  15. package/dist/__generated__/control-channels.js.map +1 -0
  16. package/dist/__generated__/delay-roles.d.ts +17 -0
  17. package/dist/__generated__/delay-roles.d.ts.map +1 -0
  18. package/dist/__generated__/delay-roles.js +72 -0
  19. package/dist/__generated__/delay-roles.js.map +1 -0
  20. package/dist/__generated__/error-codes.d.ts +376 -0
  21. package/dist/__generated__/error-codes.d.ts.map +1 -0
  22. package/dist/__generated__/error-codes.js +688 -0
  23. package/dist/__generated__/error-codes.js.map +1 -0
  24. package/dist/__generated__/frames.d.ts +83 -0
  25. package/dist/__generated__/frames.d.ts.map +1 -0
  26. package/dist/__generated__/frames.js +44 -0
  27. package/dist/__generated__/frames.js.map +1 -0
  28. package/dist/__generated__/reckonability.d.ts +381 -0
  29. package/dist/__generated__/reckonability.d.ts.map +1 -0
  30. package/dist/__generated__/reckonability.js +49 -0
  31. package/dist/__generated__/reckonability.js.map +1 -0
  32. package/dist/__generated__/test-theme.d.ts +52 -0
  33. package/dist/__generated__/test-theme.d.ts.map +1 -0
  34. package/dist/__generated__/test-theme.js +70 -0
  35. package/dist/__generated__/test-theme.js.map +1 -0
  36. package/dist/__generated__/topic-map.d.ts +44 -12
  37. package/dist/__generated__/topic-map.d.ts.map +1 -1
  38. package/dist/__generated__/topic-map.js +84 -11
  39. package/dist/__generated__/topic-map.js.map +1 -1
  40. package/dist/__generated__/units.d.ts +97 -0
  41. package/dist/__generated__/units.d.ts.map +1 -0
  42. package/dist/__generated__/units.js +3302 -0
  43. package/dist/__generated__/units.js.map +1 -0
  44. package/dist/api/action-dispatch.d.ts +36 -0
  45. package/dist/api/action-dispatch.d.ts.map +1 -0
  46. package/dist/api/action-dispatch.js +79 -0
  47. package/dist/api/action-dispatch.js.map +1 -0
  48. package/dist/api/alarm-request.d.ts +118 -0
  49. package/dist/api/alarm-request.d.ts.map +1 -0
  50. package/dist/api/alarm-request.js +50 -0
  51. package/dist/api/alarm-request.js.map +1 -0
  52. package/dist/api/bodies.d.ts +68 -0
  53. package/dist/api/bodies.d.ts.map +1 -0
  54. package/dist/api/bodies.js +103 -0
  55. package/dist/api/bodies.js.map +1 -0
  56. package/dist/api/command-rejection.d.ts +104 -0
  57. package/dist/api/command-rejection.d.ts.map +1 -0
  58. package/dist/api/command-rejection.js +128 -0
  59. package/dist/api/command-rejection.js.map +1 -0
  60. package/dist/api/contribution-slots.d.ts +594 -0
  61. package/dist/api/contribution-slots.d.ts.map +1 -0
  62. package/dist/api/contribution-slots.js +43 -0
  63. package/dist/api/contribution-slots.js.map +1 -0
  64. package/dist/api/coverage/CoverageMaskCache.d.ts +52 -0
  65. package/dist/api/coverage/CoverageMaskCache.d.ts.map +1 -0
  66. package/dist/api/coverage/CoverageMaskCache.js +89 -0
  67. package/dist/api/coverage/CoverageMaskCache.js.map +1 -0
  68. package/dist/api/coverage/CoverageMaskContext.d.ts +35 -0
  69. package/dist/api/coverage/CoverageMaskContext.d.ts.map +1 -0
  70. package/dist/api/coverage/CoverageMaskContext.js +53 -0
  71. package/dist/api/coverage/CoverageMaskContext.js.map +1 -0
  72. package/dist/api/coverage-source.d.ts +42 -0
  73. package/dist/api/coverage-source.d.ts.map +1 -0
  74. package/dist/api/coverage-source.js +118 -0
  75. package/dist/api/coverage-source.js.map +1 -0
  76. package/dist/api/error-codes.d.ts +32 -0
  77. package/dist/api/error-codes.d.ts.map +1 -0
  78. package/dist/api/error-codes.js +77 -0
  79. package/dist/api/error-codes.js.map +1 -0
  80. package/dist/api/event-reveal.d.ts +56 -0
  81. package/dist/api/event-reveal.d.ts.map +1 -0
  82. package/dist/api/event-reveal.js +53 -0
  83. package/dist/api/event-reveal.js.map +1 -0
  84. package/dist/api/host.d.ts +130 -0
  85. package/dist/api/host.d.ts.map +1 -0
  86. package/dist/api/host.js +57 -0
  87. package/dist/api/host.js.map +1 -0
  88. package/dist/api/index.d.ts +604 -0
  89. package/dist/api/index.d.ts.map +1 -0
  90. package/dist/api/index.js +671 -0
  91. package/dist/api/index.js.map +1 -0
  92. package/dist/api/localStorageStore.d.ts +50 -0
  93. package/dist/api/localStorageStore.d.ts.map +1 -0
  94. package/dist/api/localStorageStore.js +151 -0
  95. package/dist/api/localStorageStore.js.map +1 -0
  96. package/dist/api/logger-contract.d.ts +37 -0
  97. package/dist/api/logger-contract.d.ts.map +1 -0
  98. package/dist/api/logger-contract.js +2 -0
  99. package/dist/api/logger-contract.js.map +1 -0
  100. package/dist/api/logger.d.ts +9 -0
  101. package/dist/api/logger.d.ts.map +1 -0
  102. package/dist/api/logger.js +16 -0
  103. package/dist/api/logger.js.map +1 -0
  104. package/dist/api/map-poi.d.ts +28 -0
  105. package/dist/api/map-poi.d.ts.map +1 -0
  106. package/dist/api/map-poi.js +82 -0
  107. package/dist/api/map-poi.js.map +1 -0
  108. package/dist/api/plot-layers.d.ts +240 -0
  109. package/dist/api/plot-layers.d.ts.map +1 -0
  110. package/dist/api/plot-layers.js +35 -0
  111. package/dist/api/plot-layers.js.map +1 -0
  112. package/dist/api/plots.d.ts +127 -0
  113. package/dist/api/plots.d.ts.map +1 -0
  114. package/dist/api/plots.js +39 -0
  115. package/dist/api/plots.js.map +1 -0
  116. package/dist/api/registry.d.ts +106 -0
  117. package/dist/api/registry.d.ts.map +1 -0
  118. package/dist/api/registry.js +267 -0
  119. package/dist/api/registry.js.map +1 -0
  120. package/dist/api/root-providers.d.ts +63 -0
  121. package/dist/api/root-providers.d.ts.map +1 -0
  122. package/dist/api/root-providers.js +76 -0
  123. package/dist/api/root-providers.js.map +1 -0
  124. package/dist/api/safe-random-uuid.d.ts +8 -0
  125. package/dist/api/safe-random-uuid.d.ts.map +1 -0
  126. package/dist/api/safe-random-uuid.js +19 -0
  127. package/dist/api/safe-random-uuid.js.map +1 -0
  128. package/dist/api/settings/SettingsContext.d.ts +32 -0
  129. package/dist/api/settings/SettingsContext.d.ts.map +1 -0
  130. package/dist/api/settings/SettingsContext.js +46 -0
  131. package/dist/api/settings/SettingsContext.js.map +1 -0
  132. package/dist/api/settings/SettingsService.d.ts +36 -0
  133. package/dist/api/settings/SettingsService.d.ts.map +1 -0
  134. package/dist/api/settings/SettingsService.js +139 -0
  135. package/dist/api/settings/SettingsService.js.map +1 -0
  136. package/dist/api/settings/store.d.ts +67 -0
  137. package/dist/api/settings/store.d.ts.map +1 -0
  138. package/dist/api/settings/store.js +160 -0
  139. package/dist/api/settings/store.js.map +1 -0
  140. package/dist/api/slots.d.ts +870 -0
  141. package/dist/api/slots.d.ts.map +1 -0
  142. package/dist/api/slots.js +45 -0
  143. package/dist/api/slots.js.map +1 -0
  144. package/dist/api/station-brokers.d.ts +48 -0
  145. package/dist/api/station-brokers.d.ts.map +1 -0
  146. package/dist/api/station-brokers.js +74 -0
  147. package/dist/api/station-brokers.js.map +1 -0
  148. package/dist/api/stock-bodies.d.ts +20 -0
  149. package/dist/api/stock-bodies.d.ts.map +1 -0
  150. package/dist/api/stock-bodies.js +263 -0
  151. package/dist/api/stock-bodies.js.map +1 -0
  152. package/dist/api/tiny-size.d.ts +13 -0
  153. package/dist/api/tiny-size.d.ts.map +1 -0
  154. package/dist/api/tiny-size.js +10 -0
  155. package/dist/api/tiny-size.js.map +1 -0
  156. package/dist/api/tone.d.ts +25 -0
  157. package/dist/api/tone.d.ts.map +1 -0
  158. package/dist/api/tone.js +15 -0
  159. package/dist/api/tone.js.map +1 -0
  160. package/dist/api/transport.d.ts +83 -0
  161. package/dist/api/transport.d.ts.map +1 -0
  162. package/dist/api/transport.js +2 -0
  163. package/dist/api/transport.js.map +1 -0
  164. package/dist/api/types.d.ts +1604 -0
  165. package/dist/api/types.d.ts.map +1 -0
  166. package/dist/api/types.js +19 -0
  167. package/dist/api/types.js.map +1 -0
  168. package/dist/api/uplink-handles.d.ts +40 -0
  169. package/dist/api/uplink-handles.d.ts.map +1 -0
  170. package/dist/api/uplink-handles.js +59 -0
  171. package/dist/api/uplink-handles.js.map +1 -0
  172. package/dist/binary-frame.d.ts +116 -0
  173. package/dist/binary-frame.d.ts.map +1 -0
  174. package/dist/binary-frame.js +188 -0
  175. package/dist/binary-frame.js.map +1 -0
  176. package/dist/burn-clock.d.ts +61 -0
  177. package/dist/burn-clock.d.ts.map +1 -0
  178. package/dist/burn-clock.js +82 -0
  179. package/dist/burn-clock.js.map +1 -0
  180. package/dist/client.d.ts +8 -1
  181. package/dist/client.d.ts.map +1 -1
  182. package/dist/client.js +39 -7
  183. package/dist/client.js.map +1 -1
  184. package/dist/combine-readings.d.ts +84 -0
  185. package/dist/combine-readings.d.ts.map +1 -0
  186. package/dist/combine-readings.js +197 -0
  187. package/dist/combine-readings.js.map +1 -0
  188. package/dist/command-delay.d.ts +211 -0
  189. package/dist/command-delay.d.ts.map +1 -0
  190. package/dist/command-delay.js +194 -0
  191. package/dist/command-delay.js.map +1 -0
  192. package/dist/command-reply-units.d.ts +14 -0
  193. package/dist/command-reply-units.d.ts.map +1 -0
  194. package/dist/command-reply-units.js +46 -0
  195. package/dist/command-reply-units.js.map +1 -0
  196. package/dist/commands.d.ts +143 -0
  197. package/dist/commands.d.ts.map +1 -0
  198. package/dist/commands.js +113 -0
  199. package/dist/commands.js.map +1 -0
  200. package/dist/comms-degrade.d.ts +43 -0
  201. package/dist/comms-degrade.d.ts.map +1 -0
  202. package/dist/comms-degrade.js +45 -0
  203. package/dist/comms-degrade.js.map +1 -0
  204. package/dist/compat-versions.d.ts +42 -0
  205. package/dist/compat-versions.d.ts.map +1 -0
  206. package/dist/compat-versions.js +42 -0
  207. package/dist/compat-versions.js.map +1 -0
  208. package/dist/contract-enum-names.d.ts +89 -0
  209. package/dist/contract-enum-names.d.ts.map +1 -0
  210. package/dist/contract-enum-names.js +90 -0
  211. package/dist/contract-enum-names.js.map +1 -0
  212. package/dist/control-channels.d.ts +46 -0
  213. package/dist/control-channels.d.ts.map +1 -0
  214. package/dist/control-channels.js +49 -0
  215. package/dist/control-channels.js.map +1 -0
  216. package/dist/crew-standing.d.ts +69 -0
  217. package/dist/crew-standing.d.ts.map +1 -0
  218. package/dist/crew-standing.js +105 -0
  219. package/dist/crew-standing.js.map +1 -0
  220. package/dist/delay-roles.d.ts +96 -0
  221. package/dist/delay-roles.d.ts.map +1 -0
  222. package/dist/delay-roles.js +114 -0
  223. package/dist/delay-roles.js.map +1 -0
  224. package/dist/descent.d.ts +89 -0
  225. package/dist/descent.d.ts.map +1 -0
  226. package/dist/descent.js +96 -0
  227. package/dist/descent.js.map +1 -0
  228. package/dist/enum-names.d.ts +18 -0
  229. package/dist/enum-names.d.ts.map +1 -0
  230. package/dist/enum-names.js +35 -0
  231. package/dist/enum-names.js.map +1 -0
  232. package/dist/envelope.d.ts +15 -3
  233. package/dist/envelope.d.ts.map +1 -1
  234. package/dist/envelope.js +1 -0
  235. package/dist/envelope.js.map +1 -1
  236. package/dist/event-timeline.d.ts +112 -0
  237. package/dist/event-timeline.d.ts.map +1 -0
  238. package/dist/event-timeline.js +120 -0
  239. package/dist/event-timeline.js.map +1 -0
  240. package/dist/extensions.d.ts +28 -0
  241. package/dist/extensions.d.ts.map +1 -0
  242. package/dist/extensions.js +36 -0
  243. package/dist/extensions.js.map +1 -0
  244. package/dist/field-frames.d.ts +32 -0
  245. package/dist/field-frames.d.ts.map +1 -0
  246. package/dist/field-frames.js +41 -0
  247. package/dist/field-frames.js.map +1 -0
  248. package/dist/flight/BufferedDataSource.d.ts +260 -0
  249. package/dist/flight/BufferedDataSource.d.ts.map +1 -0
  250. package/dist/flight/BufferedDataSource.js +790 -0
  251. package/dist/flight/BufferedDataSource.js.map +1 -0
  252. package/dist/flight/DataSourceWrapper.d.ts +33 -0
  253. package/dist/flight/DataSourceWrapper.d.ts.map +1 -0
  254. package/dist/flight/DataSourceWrapper.js +55 -0
  255. package/dist/flight/DataSourceWrapper.js.map +1 -0
  256. package/dist/flight/ListenerSet.d.ts +28 -0
  257. package/dist/flight/ListenerSet.d.ts.map +1 -0
  258. package/dist/flight/ListenerSet.js +66 -0
  259. package/dist/flight/ListenerSet.js.map +1 -0
  260. package/dist/flight/debugFlight.d.ts +8 -0
  261. package/dist/flight/debugFlight.d.ts.map +1 -0
  262. package/dist/flight/debugFlight.js +14 -0
  263. package/dist/flight/debugFlight.js.map +1 -0
  264. package/dist/flight/derive.d.ts +45 -0
  265. package/dist/flight/derive.d.ts.map +1 -0
  266. package/dist/flight/derive.js +26 -0
  267. package/dist/flight/derive.js.map +1 -0
  268. package/dist/flight/fixtureIO.d.ts +103 -0
  269. package/dist/flight/fixtureIO.d.ts.map +1 -0
  270. package/dist/flight/fixtureIO.js +120 -0
  271. package/dist/flight/fixtureIO.js.map +1 -0
  272. package/dist/flight/flightAutoDelete.d.ts +33 -0
  273. package/dist/flight/flightAutoDelete.d.ts.map +1 -0
  274. package/dist/flight/flightAutoDelete.js +43 -0
  275. package/dist/flight/flightAutoDelete.js.map +1 -0
  276. package/dist/flight/flightDetector.d.ts +73 -0
  277. package/dist/flight/flightDetector.d.ts.map +1 -0
  278. package/dist/flight/flightDetector.js +167 -0
  279. package/dist/flight/flightDetector.js.map +1 -0
  280. package/dist/flight/storage/LocalStorageStore.d.ts +52 -0
  281. package/dist/flight/storage/LocalStorageStore.d.ts.map +1 -0
  282. package/dist/flight/storage/LocalStorageStore.js +127 -0
  283. package/dist/flight/storage/LocalStorageStore.js.map +1 -0
  284. package/dist/flight/storage/MemoryStore.d.ts +24 -0
  285. package/dist/flight/storage/MemoryStore.d.ts.map +1 -0
  286. package/dist/flight/storage/MemoryStore.js +90 -0
  287. package/dist/flight/storage/MemoryStore.js.map +1 -0
  288. package/dist/flight/storage/Store.d.ts +37 -0
  289. package/dist/flight/storage/Store.d.ts.map +1 -0
  290. package/dist/flight/storage/Store.js +8 -0
  291. package/dist/flight/storage/Store.js.map +1 -0
  292. package/dist/flight/types.d.ts +358 -0
  293. package/dist/flight/types.d.ts.map +1 -0
  294. package/dist/flight/types.js +10 -0
  295. package/dist/flight/types.js.map +1 -0
  296. package/dist/frame-qualifier.d.ts +61 -0
  297. package/dist/frame-qualifier.d.ts.map +1 -0
  298. package/dist/frame-qualifier.js +122 -0
  299. package/dist/frame-qualifier.js.map +1 -0
  300. package/dist/frames/index.d.ts +133 -0
  301. package/dist/frames/index.d.ts.map +1 -0
  302. package/dist/frames/index.js +128 -0
  303. package/dist/frames/index.js.map +1 -0
  304. package/dist/index.d.ts +76 -5
  305. package/dist/index.d.ts.map +1 -1
  306. package/dist/index.js +191 -5
  307. package/dist/index.js.map +1 -1
  308. package/dist/ksp-enum-names.d.ts +127 -0
  309. package/dist/ksp-enum-names.d.ts.map +1 -0
  310. package/dist/ksp-enum-names.js +128 -0
  311. package/dist/ksp-enum-names.js.map +1 -0
  312. package/dist/locked.d.ts +20 -0
  313. package/dist/locked.d.ts.map +1 -0
  314. package/dist/locked.js +25 -0
  315. package/dist/locked.js.map +1 -0
  316. package/dist/magnitude.d.ts +37 -0
  317. package/dist/magnitude.d.ts.map +1 -0
  318. package/dist/magnitude.js +39 -0
  319. package/dist/magnitude.js.map +1 -0
  320. package/dist/maneuver-basis.d.ts +19 -0
  321. package/dist/maneuver-basis.d.ts.map +1 -0
  322. package/dist/maneuver-basis.js +37 -0
  323. package/dist/maneuver-basis.js.map +1 -0
  324. package/dist/media/capture-clock.d.ts +35 -0
  325. package/dist/media/capture-clock.d.ts.map +1 -0
  326. package/dist/media/capture-clock.js +26 -0
  327. package/dist/media/capture-clock.js.map +1 -0
  328. package/dist/media/delayed-playout-buffer.d.ts +169 -0
  329. package/dist/media/delayed-playout-buffer.d.ts.map +1 -0
  330. package/dist/media/delayed-playout-buffer.js +166 -0
  331. package/dist/media/delayed-playout-buffer.js.map +1 -0
  332. package/dist/media/encoded-frame-delay.d.ts +115 -0
  333. package/dist/media/encoded-frame-delay.d.ts.map +1 -0
  334. package/dist/media/encoded-frame-delay.js +85 -0
  335. package/dist/media/encoded-frame-delay.js.map +1 -0
  336. package/dist/media/frame-delay.d.ts +204 -0
  337. package/dist/media/frame-delay.d.ts.map +1 -0
  338. package/dist/media/frame-delay.js +237 -0
  339. package/dist/media/frame-delay.js.map +1 -0
  340. package/dist/media/index.d.ts +17 -0
  341. package/dist/media/index.d.ts.map +1 -0
  342. package/dist/media/index.js +21 -0
  343. package/dist/media/index.js.map +1 -0
  344. package/dist/media/radio-support.d.ts +98 -0
  345. package/dist/media/radio-support.d.ts.map +1 -0
  346. package/dist/media/radio-support.js +99 -0
  347. package/dist/media/radio-support.js.map +1 -0
  348. package/dist/media/shared-delayed-streams.d.ts +119 -0
  349. package/dist/media/shared-delayed-streams.d.ts.map +1 -0
  350. package/dist/media/shared-delayed-streams.js +167 -0
  351. package/dist/media/shared-delayed-streams.js.map +1 -0
  352. package/dist/media/worker/delay-worker-client.d.ts +106 -0
  353. package/dist/media/worker/delay-worker-client.d.ts.map +1 -0
  354. package/dist/media/worker/delay-worker-client.js +207 -0
  355. package/dist/media/worker/delay-worker-client.js.map +1 -0
  356. package/dist/media/worker/delay-worker.d.ts +107 -0
  357. package/dist/media/worker/delay-worker.d.ts.map +1 -0
  358. package/dist/media/worker/delay-worker.js +604 -0
  359. package/dist/media/worker/delay-worker.js.map +7 -0
  360. package/dist/media/worker/presentation-pacer.d.ts +156 -0
  361. package/dist/media/worker/presentation-pacer.d.ts.map +1 -0
  362. package/dist/media/worker/presentation-pacer.js +200 -0
  363. package/dist/media/worker/presentation-pacer.js.map +1 -0
  364. package/dist/media/worker/time-base.d.ts +44 -0
  365. package/dist/media/worker/time-base.d.ts.map +1 -0
  366. package/dist/media/worker/time-base.js +48 -0
  367. package/dist/media/worker/time-base.js.map +1 -0
  368. package/dist/media/worker/worker-delay-clock.d.ts +59 -0
  369. package/dist/media/worker/worker-delay-clock.d.ts.map +1 -0
  370. package/dist/media/worker/worker-delay-clock.js +89 -0
  371. package/dist/media/worker/worker-delay-clock.js.map +1 -0
  372. package/dist/perf/PerfBudget.d.ts +116 -0
  373. package/dist/perf/PerfBudget.d.ts.map +1 -0
  374. package/dist/perf/PerfBudget.js +221 -0
  375. package/dist/perf/PerfBudget.js.map +1 -0
  376. package/dist/rail-tags.d.ts +156 -0
  377. package/dist/rail-tags.d.ts.map +1 -0
  378. package/dist/rail-tags.js +131 -0
  379. package/dist/rail-tags.js.map +1 -0
  380. package/dist/raw-field-split.d.ts +32 -0
  381. package/dist/raw-field-split.d.ts.map +1 -0
  382. package/dist/raw-field-split.js +46 -0
  383. package/dist/raw-field-split.js.map +1 -0
  384. package/dist/reading.d.ts +960 -0
  385. package/dist/reading.d.ts.map +1 -0
  386. package/dist/reading.js +529 -0
  387. package/dist/reading.js.map +1 -0
  388. package/dist/reckonability.d.ts +52 -0
  389. package/dist/reckonability.d.ts.map +1 -0
  390. package/dist/reckonability.js +79 -0
  391. package/dist/reckonability.js.map +1 -0
  392. package/dist/registry/index.d.ts +7 -0
  393. package/dist/registry/index.d.ts.map +1 -0
  394. package/dist/registry/index.js +26 -0
  395. package/dist/registry/index.js.map +1 -0
  396. package/dist/runtime-topic-registry.d.ts +99 -0
  397. package/dist/runtime-topic-registry.d.ts.map +1 -0
  398. package/dist/runtime-topic-registry.js +182 -0
  399. package/dist/runtime-topic-registry.js.map +1 -0
  400. package/dist/spine/arrival-deadline.d.ts +19 -0
  401. package/dist/spine/arrival-deadline.d.ts.map +1 -0
  402. package/dist/spine/arrival-deadline.js +38 -0
  403. package/dist/spine/arrival-deadline.js.map +1 -0
  404. package/dist/spine/atmospheric-reckoning.d.ts +161 -0
  405. package/dist/spine/atmospheric-reckoning.d.ts.map +1 -0
  406. package/dist/spine/atmospheric-reckoning.js +421 -0
  407. package/dist/spine/atmospheric-reckoning.js.map +1 -0
  408. package/dist/spine/body-derivations.d.ts +28 -0
  409. package/dist/spine/body-derivations.d.ts.map +1 -0
  410. package/dist/spine/body-derivations.js +73 -0
  411. package/dist/spine/body-derivations.js.map +1 -0
  412. package/dist/spine/capability-lock.d.ts +43 -0
  413. package/dist/spine/capability-lock.d.ts.map +1 -0
  414. package/dist/spine/capability-lock.js +153 -0
  415. package/dist/spine/capability-lock.js.map +1 -0
  416. package/dist/spine/celestial-facts.d.ts +181 -0
  417. package/dist/spine/celestial-facts.d.ts.map +1 -0
  418. package/dist/spine/celestial-facts.js +212 -0
  419. package/dist/spine/celestial-facts.js.map +1 -0
  420. package/dist/spine/channel-error-warning.d.ts +24 -0
  421. package/dist/spine/channel-error-warning.d.ts.map +1 -0
  422. package/dist/spine/channel-error-warning.js +51 -0
  423. package/dist/spine/channel-error-warning.js.map +1 -0
  424. package/dist/spine/client-reading.d.ts +70 -0
  425. package/dist/spine/client-reading.d.ts.map +1 -0
  426. package/dist/spine/client-reading.js +123 -0
  427. package/dist/spine/client-reading.js.map +1 -0
  428. package/dist/spine/client-timeline.d.ts +130 -0
  429. package/dist/spine/client-timeline.d.ts.map +1 -0
  430. package/dist/spine/client-timeline.js +174 -0
  431. package/dist/spine/client-timeline.js.map +1 -0
  432. package/dist/spine/client.d.ts +454 -0
  433. package/dist/spine/client.d.ts.map +1 -0
  434. package/dist/spine/client.js +1138 -0
  435. package/dist/spine/client.js.map +1 -0
  436. package/dist/spine/clock.d.ts +48 -0
  437. package/dist/spine/clock.d.ts.map +1 -0
  438. package/dist/spine/clock.js +22 -0
  439. package/dist/spine/clock.js.map +1 -0
  440. package/dist/spine/command-gate.d.ts +89 -0
  441. package/dist/spine/command-gate.d.ts.map +1 -0
  442. package/dist/spine/command-gate.js +56 -0
  443. package/dist/spine/command-gate.js.map +1 -0
  444. package/dist/spine/comms-delay-reckoning.d.ts +123 -0
  445. package/dist/spine/comms-delay-reckoning.d.ts.map +1 -0
  446. package/dist/spine/comms-delay-reckoning.js +166 -0
  447. package/dist/spine/comms-delay-reckoning.js.map +1 -0
  448. package/dist/spine/comms-journey.d.ts +74 -0
  449. package/dist/spine/comms-journey.d.ts.map +1 -0
  450. package/dist/spine/comms-journey.js +180 -0
  451. package/dist/spine/comms-journey.js.map +1 -0
  452. package/dist/spine/comms-path-geometry.d.ts +128 -0
  453. package/dist/spine/comms-path-geometry.d.ts.map +1 -0
  454. package/dist/spine/comms-path-geometry.js +172 -0
  455. package/dist/spine/comms-path-geometry.js.map +1 -0
  456. package/dist/spine/comms-route.d.ts +52 -0
  457. package/dist/spine/comms-route.d.ts.map +1 -0
  458. package/dist/spine/comms-route.js +109 -0
  459. package/dist/spine/comms-route.js.map +1 -0
  460. package/dist/spine/connection-error-warning.d.ts +28 -0
  461. package/dist/spine/connection-error-warning.d.ts.map +1 -0
  462. package/dist/spine/connection-error-warning.js +49 -0
  463. package/dist/spine/connection-error-warning.js.map +1 -0
  464. package/dist/spine/connectivity-history.d.ts +35 -0
  465. package/dist/spine/connectivity-history.d.ts.map +1 -0
  466. package/dist/spine/connectivity-history.js +54 -0
  467. package/dist/spine/connectivity-history.js.map +1 -0
  468. package/dist/spine/context.d.ts +485 -0
  469. package/dist/spine/context.d.ts.map +1 -0
  470. package/dist/spine/context.js +1017 -0
  471. package/dist/spine/context.js.map +1 -0
  472. package/dist/spine/contributed-channels.d.ts +48 -0
  473. package/dist/spine/contributed-channels.d.ts.map +1 -0
  474. package/dist/spine/contributed-channels.js +104 -0
  475. package/dist/spine/contributed-channels.js.map +1 -0
  476. package/dist/spine/contribution-scope.d.ts +19 -0
  477. package/dist/spine/contribution-scope.d.ts.map +1 -0
  478. package/dist/spine/contribution-scope.js +62 -0
  479. package/dist/spine/contribution-scope.js.map +1 -0
  480. package/dist/spine/contributions.d.ts +77 -0
  481. package/dist/spine/contributions.d.ts.map +1 -0
  482. package/dist/spine/contributions.js +180 -0
  483. package/dist/spine/contributions.js.map +1 -0
  484. package/dist/spine/control-frame-to-read-frame.d.ts +43 -0
  485. package/dist/spine/control-frame-to-read-frame.d.ts.map +1 -0
  486. package/dist/spine/control-frame-to-read-frame.js +79 -0
  487. package/dist/spine/control-frame-to-read-frame.js.map +1 -0
  488. package/dist/spine/core-reckoners.d.ts +2 -0
  489. package/dist/spine/core-reckoners.d.ts.map +1 -0
  490. package/dist/spine/core-reckoners.js +894 -0
  491. package/dist/spine/core-reckoners.js.map +1 -0
  492. package/dist/spine/dashboard-item.d.ts +12 -0
  493. package/dist/spine/dashboard-item.d.ts.map +1 -0
  494. package/dist/spine/dashboard-item.js +16 -0
  495. package/dist/spine/dashboard-item.js.map +1 -0
  496. package/dist/spine/delay-authority.d.ts +204 -0
  497. package/dist/spine/delay-authority.d.ts.map +1 -0
  498. package/dist/spine/delay-authority.js +306 -0
  499. package/dist/spine/delay-authority.js.map +1 -0
  500. package/dist/spine/delta-v-budget.d.ts +121 -0
  501. package/dist/spine/delta-v-budget.d.ts.map +1 -0
  502. package/dist/spine/delta-v-budget.js +141 -0
  503. package/dist/spine/delta-v-budget.js.map +1 -0
  504. package/dist/spine/departure-reckoning.d.ts +37 -0
  505. package/dist/spine/departure-reckoning.d.ts.map +1 -0
  506. package/dist/spine/departure-reckoning.js +44 -0
  507. package/dist/spine/departure-reckoning.js.map +1 -0
  508. package/dist/spine/dv-stage-resources.d.ts +29 -0
  509. package/dist/spine/dv-stage-resources.d.ts.map +1 -0
  510. package/dist/spine/dv-stage-resources.js +95 -0
  511. package/dist/spine/dv-stage-resources.js.map +1 -0
  512. package/dist/spine/heartbeat-tracker.d.ts +116 -0
  513. package/dist/spine/heartbeat-tracker.d.ts.map +1 -0
  514. package/dist/spine/heartbeat-tracker.js +175 -0
  515. package/dist/spine/heartbeat-tracker.js.map +1 -0
  516. package/dist/spine/held-command-actions.d.ts +33 -0
  517. package/dist/spine/held-command-actions.d.ts.map +1 -0
  518. package/dist/spine/held-command-actions.js +75 -0
  519. package/dist/spine/held-command-actions.js.map +1 -0
  520. package/dist/spine/impact-point.d.ts +97 -0
  521. package/dist/spine/impact-point.d.ts.map +1 -0
  522. package/dist/spine/impact-point.js +299 -0
  523. package/dist/spine/impact-point.js.map +1 -0
  524. package/dist/spine/index.d.ts +84 -0
  525. package/dist/spine/index.d.ts.map +1 -0
  526. package/dist/spine/index.js +132 -0
  527. package/dist/spine/index.js.map +1 -0
  528. package/dist/spine/kepler-reckoning.d.ts +244 -0
  529. package/dist/spine/kepler-reckoning.d.ts.map +1 -0
  530. package/dist/spine/kepler-reckoning.js +377 -0
  531. package/dist/spine/kepler-reckoning.js.map +1 -0
  532. package/dist/spine/kepler.d.ts +296 -0
  533. package/dist/spine/kepler.d.ts.map +1 -0
  534. package/dist/spine/kepler.js +330 -0
  535. package/dist/spine/kepler.js.map +1 -0
  536. package/dist/spine/lagrange.d.ts +247 -0
  537. package/dist/spine/lagrange.d.ts.map +1 -0
  538. package/dist/spine/lagrange.js +379 -0
  539. package/dist/spine/lagrange.js.map +1 -0
  540. package/dist/spine/lifecycle.d.ts +244 -0
  541. package/dist/spine/lifecycle.d.ts.map +1 -0
  542. package/dist/spine/lifecycle.js +37 -0
  543. package/dist/spine/lifecycle.js.map +1 -0
  544. package/dist/spine/lock-scope.d.ts +23 -0
  545. package/dist/spine/lock-scope.d.ts.map +1 -0
  546. package/dist/spine/lock-scope.js +10 -0
  547. package/dist/spine/lock-scope.js.map +1 -0
  548. package/dist/spine/map-command.d.ts +29 -0
  549. package/dist/spine/map-command.d.ts.map +1 -0
  550. package/dist/spine/map-command.js +32 -0
  551. package/dist/spine/map-command.js.map +1 -0
  552. package/dist/spine/map-topic.d.ts +60 -0
  553. package/dist/spine/map-topic.d.ts.map +1 -0
  554. package/dist/spine/map-topic.js +151 -0
  555. package/dist/spine/map-topic.js.map +1 -0
  556. package/dist/spine/mod-settings.d.ts +22 -0
  557. package/dist/spine/mod-settings.d.ts.map +1 -0
  558. package/dist/spine/mod-settings.js +42 -0
  559. package/dist/spine/mod-settings.js.map +1 -0
  560. package/dist/spine/never-reckonable.d.ts +79 -0
  561. package/dist/spine/never-reckonable.d.ts.map +1 -0
  562. package/dist/spine/never-reckonable.js +168 -0
  563. package/dist/spine/never-reckonable.js.map +1 -0
  564. package/dist/spine/orbit-patches.d.ts +81 -0
  565. package/dist/spine/orbit-patches.d.ts.map +1 -0
  566. package/dist/spine/orbit-patches.js +111 -0
  567. package/dist/spine/orbit-patches.js.map +1 -0
  568. package/dist/spine/orbit-trajectory.d.ts +276 -0
  569. package/dist/spine/orbit-trajectory.d.ts.map +1 -0
  570. package/dist/spine/orbit-trajectory.js +382 -0
  571. package/dist/spine/orbit-trajectory.js.map +1 -0
  572. package/dist/spine/orbital-solve.d.ts +164 -0
  573. package/dist/spine/orbital-solve.d.ts.map +1 -0
  574. package/dist/spine/orbital-solve.js +239 -0
  575. package/dist/spine/orbital-solve.js.map +1 -0
  576. package/dist/spine/own-craft-vantage.d.ts +80 -0
  577. package/dist/spine/own-craft-vantage.d.ts.map +1 -0
  578. package/dist/spine/own-craft-vantage.js +136 -0
  579. package/dist/spine/own-craft-vantage.js.map +1 -0
  580. package/dist/spine/past-track.d.ts +46 -0
  581. package/dist/spine/past-track.d.ts.map +1 -0
  582. package/dist/spine/past-track.js +62 -0
  583. package/dist/spine/past-track.js.map +1 -0
  584. package/dist/spine/powered-reckoning.d.ts +164 -0
  585. package/dist/spine/powered-reckoning.d.ts.map +1 -0
  586. package/dist/spine/powered-reckoning.js +514 -0
  587. package/dist/spine/powered-reckoning.js.map +1 -0
  588. package/dist/spine/processorEvaluator.d.ts +110 -0
  589. package/dist/spine/processorEvaluator.d.ts.map +1 -0
  590. package/dist/spine/processorEvaluator.js +608 -0
  591. package/dist/spine/processorEvaluator.js.map +1 -0
  592. package/dist/spine/processors.d.ts +242 -0
  593. package/dist/spine/processors.d.ts.map +1 -0
  594. package/dist/spine/processors.js +109 -0
  595. package/dist/spine/processors.js.map +1 -0
  596. package/dist/spine/propagation.d.ts +17 -0
  597. package/dist/spine/propagation.d.ts.map +1 -0
  598. package/dist/spine/propagation.js +22 -0
  599. package/dist/spine/propagation.js.map +1 -0
  600. package/dist/spine/rail-registry.d.ts +21 -0
  601. package/dist/spine/rail-registry.d.ts.map +1 -0
  602. package/dist/spine/rail-registry.js +7 -0
  603. package/dist/spine/rail-registry.js.map +1 -0
  604. package/dist/spine/reckoners.d.ts +133 -0
  605. package/dist/spine/reckoners.d.ts.map +1 -0
  606. package/dist/spine/reckoners.js +245 -0
  607. package/dist/spine/reckoners.js.map +1 -0
  608. package/dist/spine/reference-frame.d.ts +286 -0
  609. package/dist/spine/reference-frame.d.ts.map +1 -0
  610. package/dist/spine/reference-frame.js +605 -0
  611. package/dist/spine/reference-frame.js.map +1 -0
  612. package/dist/spine/replay-recorder.d.ts +72 -0
  613. package/dist/spine/replay-recorder.d.ts.map +1 -0
  614. package/dist/spine/replay-recorder.js +101 -0
  615. package/dist/spine/replay-recorder.js.map +1 -0
  616. package/dist/spine/replay-session-controller.d.ts +65 -0
  617. package/dist/spine/replay-session-controller.d.ts.map +1 -0
  618. package/dist/spine/replay-session-controller.js +220 -0
  619. package/dist/spine/replay-session-controller.js.map +1 -0
  620. package/dist/spine/replay-session.d.ts +20 -0
  621. package/dist/spine/replay-session.d.ts.map +1 -0
  622. package/dist/spine/replay-session.js +31 -0
  623. package/dist/spine/replay-session.js.map +1 -0
  624. package/dist/spine/replay-transport.d.ts +83 -0
  625. package/dist/spine/replay-transport.d.ts.map +1 -0
  626. package/dist/spine/replay-transport.js +95 -0
  627. package/dist/spine/replay-transport.js.map +1 -0
  628. package/dist/spine/screen.d.ts +46 -0
  629. package/dist/spine/screen.d.ts.map +1 -0
  630. package/dist/spine/screen.js +41 -0
  631. package/dist/spine/screen.js.map +1 -0
  632. package/dist/spine/settings-registry.d.ts +222 -0
  633. package/dist/spine/settings-registry.d.ts.map +1 -0
  634. package/dist/spine/settings-registry.js +43 -0
  635. package/dist/spine/settings-registry.js.map +1 -0
  636. package/dist/spine/settings-tabs.d.ts +39 -0
  637. package/dist/spine/settings-tabs.d.ts.map +1 -0
  638. package/dist/spine/settings-tabs.js +18 -0
  639. package/dist/spine/settings-tabs.js.map +1 -0
  640. package/dist/spine/share-equal.d.ts +11 -0
  641. package/dist/spine/share-equal.d.ts.map +1 -0
  642. package/dist/spine/share-equal.js +57 -0
  643. package/dist/spine/share-equal.js.map +1 -0
  644. package/dist/spine/size-delta.d.ts +9 -0
  645. package/dist/spine/size-delta.d.ts.map +1 -0
  646. package/dist/spine/size-delta.js +19 -0
  647. package/dist/spine/size-delta.js.map +1 -0
  648. package/dist/spine/space-center-state.d.ts +44 -0
  649. package/dist/spine/space-center-state.d.ts.map +1 -0
  650. package/dist/spine/space-center-state.js +51 -0
  651. package/dist/spine/space-center-state.js.map +1 -0
  652. package/dist/spine/stream-status.d.ts +21 -0
  653. package/dist/spine/stream-status.d.ts.map +1 -0
  654. package/dist/spine/stream-status.js +48 -0
  655. package/dist/spine/stream-status.js.map +1 -0
  656. package/dist/spine/subscribe-read.d.ts +51 -0
  657. package/dist/spine/subscribe-read.d.ts.map +1 -0
  658. package/dist/spine/subscribe-read.js +66 -0
  659. package/dist/spine/subscribe-read.js.map +1 -0
  660. package/dist/spine/subscriber-identity.d.ts +12 -0
  661. package/dist/spine/subscriber-identity.d.ts.map +1 -0
  662. package/dist/spine/subscriber-identity.js +33 -0
  663. package/dist/spine/subscriber-identity.js.map +1 -0
  664. package/dist/spine/system-state.d.ts +29 -0
  665. package/dist/spine/system-state.d.ts.map +1 -0
  666. package/dist/spine/system-state.js +25 -0
  667. package/dist/spine/system-state.js.map +1 -0
  668. package/dist/spine/target-range-reckoning.d.ts +33 -0
  669. package/dist/spine/target-range-reckoning.d.ts.map +1 -0
  670. package/dist/spine/target-range-reckoning.js +78 -0
  671. package/dist/spine/target-range-reckoning.js.map +1 -0
  672. package/dist/spine/timeline-store.d.ts +1336 -0
  673. package/dist/spine/timeline-store.d.ts.map +1 -0
  674. package/dist/spine/timeline-store.js +2893 -0
  675. package/dist/spine/timeline-store.js.map +1 -0
  676. package/dist/spine/topic-ownership.d.ts +138 -0
  677. package/dist/spine/topic-ownership.d.ts.map +1 -0
  678. package/dist/spine/topic-ownership.js +194 -0
  679. package/dist/spine/topic-ownership.js.map +1 -0
  680. package/dist/spine/unowned-warning.d.ts +25 -0
  681. package/dist/spine/unowned-warning.d.ts.map +1 -0
  682. package/dist/spine/unowned-warning.js +55 -0
  683. package/dist/spine/unowned-warning.js.map +1 -0
  684. package/dist/spine/uplink-clients.d.ts +135 -0
  685. package/dist/spine/uplink-clients.d.ts.map +1 -0
  686. package/dist/spine/uplink-clients.js +79 -0
  687. package/dist/spine/uplink-clients.js.map +1 -0
  688. package/dist/spine/uplink-health.d.ts +123 -0
  689. package/dist/spine/uplink-health.d.ts.map +1 -0
  690. package/dist/spine/uplink-health.js +75 -0
  691. package/dist/spine/uplink-health.js.map +1 -0
  692. package/dist/spine/use-action-input.d.ts +3 -0
  693. package/dist/spine/use-action-input.d.ts.map +1 -0
  694. package/dist/spine/use-action-input.js +76 -0
  695. package/dist/spine/use-action-input.js.map +1 -0
  696. package/dist/spine/use-body-states.d.ts +34 -0
  697. package/dist/spine/use-body-states.d.ts.map +1 -0
  698. package/dist/spine/use-body-states.js +23 -0
  699. package/dist/spine/use-body-states.js.map +1 -0
  700. package/dist/spine/use-command.d.ts +259 -0
  701. package/dist/spine/use-command.d.ts.map +1 -0
  702. package/dist/spine/use-command.js +626 -0
  703. package/dist/spine/use-command.js.map +1 -0
  704. package/dist/spine/use-data-sources.d.ts +7 -0
  705. package/dist/spine/use-data-sources.d.ts.map +1 -0
  706. package/dist/spine/use-data-sources.js +27 -0
  707. package/dist/spine/use-data-sources.js.map +1 -0
  708. package/dist/spine/use-late-telemetry-subscribe.d.ts +59 -0
  709. package/dist/spine/use-late-telemetry-subscribe.d.ts.map +1 -0
  710. package/dist/spine/use-late-telemetry-subscribe.js +81 -0
  711. package/dist/spine/use-late-telemetry-subscribe.js.map +1 -0
  712. package/dist/spine/use-orbit-trajectory.d.ts +25 -0
  713. package/dist/spine/use-orbit-trajectory.d.ts.map +1 -0
  714. package/dist/spine/use-orbit-trajectory.js +45 -0
  715. package/dist/spine/use-orbit-trajectory.js.map +1 -0
  716. package/dist/spine/use-processor.d.ts +30 -0
  717. package/dist/spine/use-processor.d.ts.map +1 -0
  718. package/dist/spine/use-processor.js +36 -0
  719. package/dist/spine/use-processor.js.map +1 -0
  720. package/dist/spine/use-route-commands.d.ts +28 -0
  721. package/dist/spine/use-route-commands.d.ts.map +1 -0
  722. package/dist/spine/use-route-commands.js +32 -0
  723. package/dist/spine/use-route-commands.js.map +1 -0
  724. package/dist/spine/use-selected-vantage.d.ts +12 -0
  725. package/dist/spine/use-selected-vantage.d.ts.map +1 -0
  726. package/dist/spine/use-selected-vantage.js +19 -0
  727. package/dist/spine/use-selected-vantage.js.map +1 -0
  728. package/dist/spine/use-stream-event.d.ts +28 -0
  729. package/dist/spine/use-stream-event.d.ts.map +1 -0
  730. package/dist/spine/use-stream-event.js +52 -0
  731. package/dist/spine/use-stream-event.js.map +1 -0
  732. package/dist/spine/use-stream.d.ts +79 -0
  733. package/dist/spine/use-stream.d.ts.map +1 -0
  734. package/dist/spine/use-stream.js +124 -0
  735. package/dist/spine/use-stream.js.map +1 -0
  736. package/dist/spine/use-telemetry.d.ts +79 -0
  737. package/dist/spine/use-telemetry.d.ts.map +1 -0
  738. package/dist/spine/use-telemetry.js +39 -0
  739. package/dist/spine/use-telemetry.js.map +1 -0
  740. package/dist/spine/use-transmissions.d.ts +36 -0
  741. package/dist/spine/use-transmissions.d.ts.map +1 -0
  742. package/dist/spine/use-transmissions.js +63 -0
  743. package/dist/spine/use-transmissions.js.map +1 -0
  744. package/dist/spine/vantage.d.ts +16 -0
  745. package/dist/spine/vantage.d.ts.map +1 -0
  746. package/dist/spine/vantage.js +16 -0
  747. package/dist/spine/vantage.js.map +1 -0
  748. package/dist/spine/view-clock.d.ts +232 -0
  749. package/dist/spine/view-clock.d.ts.map +1 -0
  750. package/dist/spine/view-clock.js +348 -0
  751. package/dist/spine/view-clock.js.map +1 -0
  752. package/dist/spine/wire-payloads.d.ts +232 -0
  753. package/dist/spine/wire-payloads.d.ts.map +1 -0
  754. package/dist/spine/wire-payloads.js +2 -0
  755. package/dist/spine/wire-payloads.js.map +1 -0
  756. package/dist/testing/console-logger.d.ts +10 -0
  757. package/dist/testing/console-logger.d.ts.map +1 -0
  758. package/dist/testing/console-logger.js +23 -0
  759. package/dist/testing/console-logger.js.map +1 -0
  760. package/dist/testing/create-test-telemetry-client.d.ts +13 -0
  761. package/dist/testing/create-test-telemetry-client.d.ts.map +1 -0
  762. package/dist/testing/create-test-telemetry-client.js +14 -0
  763. package/dist/testing/create-test-telemetry-client.js.map +1 -0
  764. package/dist/testing/fake-wall-clock.d.ts +19 -0
  765. package/dist/testing/fake-wall-clock.d.ts.map +1 -0
  766. package/dist/testing/fake-wall-clock.js +17 -0
  767. package/dist/testing/fake-wall-clock.js.map +1 -0
  768. package/dist/testing/index.d.ts +30 -0
  769. package/dist/testing/index.d.ts.map +1 -0
  770. package/dist/testing/index.js +99 -0
  771. package/dist/testing/index.js.map +1 -0
  772. package/dist/testing/install-act-gate-stretch.d.ts +24 -0
  773. package/dist/testing/install-act-gate-stretch.d.ts.map +1 -0
  774. package/dist/testing/install-act-gate-stretch.js +67 -0
  775. package/dist/testing/install-act-gate-stretch.js.map +1 -0
  776. package/dist/testing/install-dom-stubs.d.ts +9 -0
  777. package/dist/testing/install-dom-stubs.d.ts.map +1 -0
  778. package/dist/testing/install-dom-stubs.js +121 -0
  779. package/dist/testing/install-dom-stubs.js.map +1 -0
  780. package/dist/testing/install-real-test-host.d.ts +51 -0
  781. package/dist/testing/install-real-test-host.d.ts.map +1 -0
  782. package/dist/testing/install-real-test-host.js +111 -0
  783. package/dist/testing/install-real-test-host.js.map +1 -0
  784. package/dist/testing/install-test-host.d.ts +18 -0
  785. package/dist/testing/install-test-host.d.ts.map +1 -0
  786. package/dist/testing/install-test-host.js +23 -0
  787. package/dist/testing/install-test-host.js.map +1 -0
  788. package/dist/testing/memory-storage.d.ts +10 -0
  789. package/dist/testing/memory-storage.d.ts.map +1 -0
  790. package/dist/testing/memory-storage.js +26 -0
  791. package/dist/testing/memory-storage.js.map +1 -0
  792. package/dist/testing/mock-data-source.d.ts +46 -0
  793. package/dist/testing/mock-data-source.d.ts.map +1 -0
  794. package/dist/testing/mock-data-source.js +74 -0
  795. package/dist/testing/mock-data-source.js.map +1 -0
  796. package/dist/testing/recorded-alarm-requests.d.ts +28 -0
  797. package/dist/testing/recorded-alarm-requests.d.ts.map +1 -0
  798. package/dist/testing/recorded-alarm-requests.js +24 -0
  799. package/dist/testing/recorded-alarm-requests.js.map +1 -0
  800. package/dist/testing/render.d.ts +29 -0
  801. package/dist/testing/render.d.ts.map +1 -0
  802. package/dist/testing/render.js +52 -0
  803. package/dist/testing/render.js.map +1 -0
  804. package/dist/testing/stream-fixture.d.ts +71 -0
  805. package/dist/testing/stream-fixture.d.ts.map +1 -0
  806. package/dist/testing/stream-fixture.js +61 -0
  807. package/dist/testing/stream-fixture.js.map +1 -0
  808. package/dist/testing/stub-transport.d.ts +124 -0
  809. package/dist/testing/stub-transport.d.ts.map +1 -0
  810. package/dist/testing/stub-transport.js +229 -0
  811. package/dist/testing/stub-transport.js.map +1 -0
  812. package/dist/testing/theme.d.ts +59 -0
  813. package/dist/testing/theme.d.ts.map +1 -0
  814. package/dist/testing/theme.js +11 -0
  815. package/dist/testing/theme.js.map +1 -0
  816. package/dist/timeline.d.ts +63 -0
  817. package/dist/timeline.d.ts.map +1 -0
  818. package/dist/timeline.js +2 -0
  819. package/dist/timeline.js.map +1 -0
  820. package/dist/topic-fields.d.ts +55 -0
  821. package/dist/topic-fields.d.ts.map +1 -0
  822. package/dist/topic-fields.js +102 -0
  823. package/dist/topic-fields.js.map +1 -0
  824. package/dist/topics.d.ts +335 -30
  825. package/dist/topics.d.ts.map +1 -1
  826. package/dist/topics.js +183 -28
  827. package/dist/topics.js.map +1 -1
  828. package/dist/unit-system/algebra.d.ts +305 -0
  829. package/dist/unit-system/algebra.d.ts.map +1 -0
  830. package/dist/unit-system/algebra.js +2 -0
  831. package/dist/unit-system/algebra.js.map +1 -0
  832. package/dist/unit-system/calendar.d.ts +74 -0
  833. package/dist/unit-system/calendar.d.ts.map +1 -0
  834. package/dist/unit-system/calendar.js +107 -0
  835. package/dist/unit-system/calendar.js.map +1 -0
  836. package/dist/unit-system/declarations.d.ts +87 -0
  837. package/dist/unit-system/declarations.d.ts.map +1 -0
  838. package/dist/unit-system/declarations.js +2 -0
  839. package/dist/unit-system/declarations.js.map +1 -0
  840. package/dist/unit-system/definitions.d.ts +639 -0
  841. package/dist/unit-system/definitions.d.ts.map +1 -0
  842. package/dist/unit-system/definitions.js +326 -0
  843. package/dist/unit-system/definitions.js.map +1 -0
  844. package/dist/unit-system/dimension.d.ts +29 -0
  845. package/dist/unit-system/dimension.d.ts.map +1 -0
  846. package/dist/unit-system/dimension.js +88 -0
  847. package/dist/unit-system/dimension.js.map +1 -0
  848. package/dist/unit-system/guards.d.ts +58 -0
  849. package/dist/unit-system/guards.d.ts.map +1 -0
  850. package/dist/unit-system/guards.js +73 -0
  851. package/dist/unit-system/guards.js.map +1 -0
  852. package/dist/unit-system/index.d.ts +16 -0
  853. package/dist/unit-system/index.d.ts.map +1 -0
  854. package/dist/unit-system/index.js +14 -0
  855. package/dist/unit-system/index.js.map +1 -0
  856. package/dist/unit-system/registry.d.ts +160 -0
  857. package/dist/unit-system/registry.d.ts.map +1 -0
  858. package/dist/unit-system/registry.js +267 -0
  859. package/dist/unit-system/registry.js.map +1 -0
  860. package/dist/unit-system/value.d.ts +437 -0
  861. package/dist/unit-system/value.d.ts.map +1 -0
  862. package/dist/unit-system/value.js +387 -0
  863. package/dist/unit-system/value.js.map +1 -0
  864. package/dist/units.d.ts +159 -0
  865. package/dist/units.d.ts.map +1 -0
  866. package/dist/units.js +385 -0
  867. package/dist/units.js.map +1 -0
  868. package/dist/uplink-externals.d.ts +65 -0
  869. package/dist/uplink-externals.d.ts.map +1 -0
  870. package/dist/uplink-externals.js +87 -0
  871. package/dist/uplink-externals.js.map +1 -0
  872. package/dist/uplink-manifest.d.ts +180 -0
  873. package/dist/uplink-manifest.d.ts.map +1 -0
  874. package/dist/uplink-manifest.js +214 -0
  875. package/dist/uplink-manifest.js.map +1 -0
  876. package/dist/value.d.ts +13 -0
  877. package/dist/value.d.ts.map +1 -0
  878. package/dist/value.js +2 -0
  879. package/dist/value.js.map +1 -0
  880. package/dist/version.generated.d.ts +7 -0
  881. package/dist/version.generated.d.ts.map +1 -0
  882. package/dist/version.generated.js +11 -0
  883. package/dist/version.generated.js.map +1 -0
  884. package/dist/view-clock-formula.d.ts +52 -0
  885. package/dist/view-clock-formula.d.ts.map +1 -0
  886. package/dist/view-clock-formula.js +46 -0
  887. package/dist/view-clock-formula.js.map +1 -0
  888. package/dist/wrap-units.d.ts +55 -0
  889. package/dist/wrap-units.d.ts.map +1 -0
  890. package/dist/wrap-units.js +256 -0
  891. package/dist/wrap-units.js.map +1 -0
  892. package/package.json +73 -11
  893. package/src/__generated__/command-map.ts +465 -0
  894. package/src/__generated__/contract.ts +10986 -0
  895. package/src/__generated__/control-channels.ts +41 -0
  896. package/src/__generated__/delay-roles.ts +82 -0
  897. package/src/__generated__/error-codes.ts +712 -0
  898. package/src/__generated__/frames.ts +52 -0
  899. package/src/__generated__/reckonability.ts +86 -0
  900. package/src/__generated__/test-theme.ts +70 -0
  901. package/src/__generated__/topic-map.ts +314 -0
  902. package/src/__generated__/units.json +2755 -0
  903. package/src/__generated__/units.ts +3398 -0
  904. package/src/api/action-dispatch.ts +105 -0
  905. package/src/api/alarm-request.ts +153 -0
  906. package/src/api/bodies.ts +116 -0
  907. package/src/api/command-rejection.ts +194 -0
  908. package/src/api/contribution-slots.ts +666 -0
  909. package/src/api/coverage/CoverageMaskCache.ts +112 -0
  910. package/src/api/coverage/CoverageMaskContext.tsx +79 -0
  911. package/src/api/coverage-source.ts +137 -0
  912. package/src/api/error-codes.ts +87 -0
  913. package/src/api/event-reveal.ts +96 -0
  914. package/src/api/host.ts +213 -0
  915. package/src/api/index.ts +1170 -0
  916. package/src/api/localStorageStore.ts +180 -0
  917. package/src/api/logger-contract.ts +38 -0
  918. package/src/api/logger.ts +17 -0
  919. package/src/api/map-poi.ts +98 -0
  920. package/src/api/plot-layers.ts +257 -0
  921. package/src/api/plots.ts +169 -0
  922. package/src/api/registry.ts +324 -0
  923. package/src/api/root-providers.tsx +136 -0
  924. package/src/api/safe-random-uuid.ts +22 -0
  925. package/src/api/settings/SettingsContext.tsx +79 -0
  926. package/src/api/settings/SettingsService.ts +142 -0
  927. package/src/api/settings/store.ts +180 -0
  928. package/src/api/slots.ts +1041 -0
  929. package/src/api/station-brokers.ts +94 -0
  930. package/src/api/stock-bodies.ts +281 -0
  931. package/src/api/tiny-size.ts +9 -0
  932. package/src/api/tone.ts +41 -0
  933. package/src/api/transport.ts +98 -0
  934. package/src/api/types.ts +1903 -0
  935. package/src/api/uplink-handles.ts +71 -0
  936. package/src/binary-frame.ts +250 -0
  937. package/src/burn-clock.ts +115 -0
  938. package/src/client.ts +56 -0
  939. package/src/combine-readings.ts +250 -0
  940. package/src/command-delay.ts +392 -0
  941. package/src/command-reply-units.ts +63 -0
  942. package/src/commands.ts +242 -0
  943. package/src/comms-degrade.ts +68 -0
  944. package/src/compat-versions.ts +44 -0
  945. package/src/contract-enum-names.ts +141 -0
  946. package/src/control-channels.ts +92 -0
  947. package/src/crew-standing.ts +131 -0
  948. package/src/delay-roles.ts +187 -0
  949. package/src/descent.ts +149 -0
  950. package/src/enum-names.ts +35 -0
  951. package/src/envelope.ts +45 -0
  952. package/src/event-timeline.ts +196 -0
  953. package/src/extensions.ts +58 -0
  954. package/src/field-frames.ts +70 -0
  955. package/src/flight/BufferedDataSource.ts +945 -0
  956. package/src/flight/DataSourceWrapper.ts +79 -0
  957. package/src/flight/ListenerSet.ts +73 -0
  958. package/src/flight/debugFlight.ts +16 -0
  959. package/src/flight/derive.ts +56 -0
  960. package/src/flight/fixtureIO.ts +197 -0
  961. package/src/flight/flightAutoDelete.ts +53 -0
  962. package/src/flight/flightDetector.ts +213 -0
  963. package/src/flight/storage/LocalStorageStore.ts +160 -0
  964. package/src/flight/storage/MemoryStore.ts +113 -0
  965. package/src/flight/storage/Store.ts +52 -0
  966. package/src/flight/types.ts +408 -0
  967. package/src/frame-qualifier.ts +153 -0
  968. package/src/frames/index.ts +177 -0
  969. package/src/index.ts +576 -0
  970. package/src/ksp-enum-names.ts +191 -0
  971. package/src/locked.ts +29 -0
  972. package/src/magnitude.ts +52 -0
  973. package/src/maneuver-basis.ts +49 -0
  974. package/src/media/capture-clock.ts +43 -0
  975. package/src/media/delayed-playout-buffer.ts +253 -0
  976. package/src/media/encoded-frame-delay.ts +153 -0
  977. package/src/media/frame-delay.ts +402 -0
  978. package/src/media/index.ts +83 -0
  979. package/src/media/radio-support.ts +132 -0
  980. package/src/media/shared-delayed-streams.ts +232 -0
  981. package/src/media/webcodecs-track-io.d.ts +99 -0
  982. package/src/media/worker/delay-worker-client.ts +312 -0
  983. package/src/media/worker/delay-worker.ts +433 -0
  984. package/src/media/worker/presentation-pacer.ts +249 -0
  985. package/src/media/worker/time-base.ts +55 -0
  986. package/src/media/worker/worker-delay-clock.ts +122 -0
  987. package/src/perf/PerfBudget.ts +267 -0
  988. package/src/rail-tags.ts +221 -0
  989. package/src/raw-field-split.ts +72 -0
  990. package/src/reading.ts +1565 -0
  991. package/src/reckonability.ts +117 -0
  992. package/src/registry/index.ts +36 -0
  993. package/src/runtime-topic-registry.ts +204 -0
  994. package/src/spine/arrival-deadline.ts +48 -0
  995. package/src/spine/atmospheric-reckoning.ts +540 -0
  996. package/src/spine/body-derivations.ts +103 -0
  997. package/src/spine/capability-lock.ts +210 -0
  998. package/src/spine/celestial-facts.ts +455 -0
  999. package/src/spine/channel-error-warning.ts +61 -0
  1000. package/src/spine/client-reading.ts +282 -0
  1001. package/src/spine/client-timeline.ts +234 -0
  1002. package/src/spine/client.ts +1336 -0
  1003. package/src/spine/clock.ts +57 -0
  1004. package/src/spine/command-gate.ts +139 -0
  1005. package/src/spine/comms-delay-reckoning.ts +217 -0
  1006. package/src/spine/comms-journey.ts +256 -0
  1007. package/src/spine/comms-path-geometry.ts +237 -0
  1008. package/src/spine/comms-route.ts +142 -0
  1009. package/src/spine/connection-error-warning.ts +54 -0
  1010. package/src/spine/connectivity-history.ts +68 -0
  1011. package/src/spine/context.tsx +1317 -0
  1012. package/src/spine/contributed-channels.ts +126 -0
  1013. package/src/spine/contribution-scope.ts +87 -0
  1014. package/src/spine/contributions.ts +213 -0
  1015. package/src/spine/control-frame-to-read-frame.ts +91 -0
  1016. package/src/spine/core-reckoners.ts +1112 -0
  1017. package/src/spine/dashboard-item.ts +25 -0
  1018. package/src/spine/delay-authority.ts +337 -0
  1019. package/src/spine/delta-v-budget.ts +311 -0
  1020. package/src/spine/departure-reckoning.ts +69 -0
  1021. package/src/spine/dv-stage-resources.ts +137 -0
  1022. package/src/spine/heartbeat-tracker.ts +208 -0
  1023. package/src/spine/held-command-actions.ts +119 -0
  1024. package/src/spine/impact-point.ts +432 -0
  1025. package/src/spine/index.ts +132 -0
  1026. package/src/spine/kepler-reckoning.ts +572 -0
  1027. package/src/spine/kepler.ts +576 -0
  1028. package/src/spine/lagrange.ts +585 -0
  1029. package/src/spine/lifecycle.ts +251 -0
  1030. package/src/spine/lock-scope.ts +27 -0
  1031. package/src/spine/map-command.ts +33 -0
  1032. package/src/spine/map-topic.ts +163 -0
  1033. package/src/spine/mod-settings.ts +47 -0
  1034. package/src/spine/never-reckonable.ts +183 -0
  1035. package/src/spine/orbit-patches.ts +213 -0
  1036. package/src/spine/orbit-trajectory.ts +636 -0
  1037. package/src/spine/orbital-solve.ts +393 -0
  1038. package/src/spine/own-craft-vantage.tsx +161 -0
  1039. package/src/spine/past-track.ts +93 -0
  1040. package/src/spine/powered-reckoning.ts +866 -0
  1041. package/src/spine/processorEvaluator.ts +688 -0
  1042. package/src/spine/processors.ts +353 -0
  1043. package/src/spine/propagation.ts +25 -0
  1044. package/src/spine/rail-registry.ts +27 -0
  1045. package/src/spine/reckoners.ts +317 -0
  1046. package/src/spine/reference-frame.ts +816 -0
  1047. package/src/spine/replay-recorder.ts +128 -0
  1048. package/src/spine/replay-session-controller.ts +282 -0
  1049. package/src/spine/replay-session.tsx +47 -0
  1050. package/src/spine/replay-transport.ts +167 -0
  1051. package/src/spine/screen.tsx +70 -0
  1052. package/src/spine/settings-registry.ts +286 -0
  1053. package/src/spine/settings-tabs.ts +57 -0
  1054. package/src/spine/share-equal.ts +62 -0
  1055. package/src/spine/size-delta.ts +23 -0
  1056. package/src/spine/space-center-state.ts +101 -0
  1057. package/src/spine/stream-status.ts +62 -0
  1058. package/src/spine/subscribe-read.ts +88 -0
  1059. package/src/spine/subscriber-identity.tsx +44 -0
  1060. package/src/spine/system-state.ts +44 -0
  1061. package/src/spine/target-range-reckoning.ts +127 -0
  1062. package/src/spine/timeline-store.ts +3626 -0
  1063. package/src/spine/topic-ownership.ts +211 -0
  1064. package/src/spine/unowned-warning.ts +63 -0
  1065. package/src/spine/uplink-clients.ts +265 -0
  1066. package/src/spine/uplink-health.ts +256 -0
  1067. package/src/spine/use-action-input.ts +87 -0
  1068. package/src/spine/use-body-states.ts +52 -0
  1069. package/src/spine/use-command.ts +1090 -0
  1070. package/src/spine/use-data-sources.ts +43 -0
  1071. package/src/spine/use-late-telemetry-subscribe.ts +111 -0
  1072. package/src/spine/use-orbit-trajectory.ts +50 -0
  1073. package/src/spine/use-processor.ts +56 -0
  1074. package/src/spine/use-route-commands.ts +57 -0
  1075. package/src/spine/use-selected-vantage.ts +23 -0
  1076. package/src/spine/use-stream-event.ts +54 -0
  1077. package/src/spine/use-stream.ts +137 -0
  1078. package/src/spine/use-telemetry.ts +142 -0
  1079. package/src/spine/use-transmissions.ts +100 -0
  1080. package/src/spine/vantage.ts +15 -0
  1081. package/src/spine/view-clock.ts +404 -0
  1082. package/src/spine/wire-payloads.ts +242 -0
  1083. package/src/testing/console-logger.ts +24 -0
  1084. package/src/testing/create-test-telemetry-client.ts +17 -0
  1085. package/src/testing/fake-wall-clock.ts +27 -0
  1086. package/src/testing/index.ts +141 -0
  1087. package/src/testing/install-act-gate-stretch.ts +83 -0
  1088. package/src/testing/install-dom-stubs.ts +137 -0
  1089. package/src/testing/install-real-test-host.ts +177 -0
  1090. package/src/testing/install-test-host.ts +24 -0
  1091. package/src/testing/memory-storage.ts +25 -0
  1092. package/src/testing/mock-data-source.ts +109 -0
  1093. package/src/testing/recorded-alarm-requests.ts +43 -0
  1094. package/src/testing/render.tsx +78 -0
  1095. package/src/testing/stream-fixture.tsx +130 -0
  1096. package/src/testing/stub-transport.ts +289 -0
  1097. package/src/testing/theme.ts +11 -0
  1098. package/src/timeline.ts +68 -0
  1099. package/src/topic-fields.ts +188 -0
  1100. package/src/topics.ts +553 -0
  1101. package/src/unit-system/algebra.ts +472 -0
  1102. package/src/unit-system/calendar.ts +145 -0
  1103. package/src/unit-system/declarations.ts +96 -0
  1104. package/src/unit-system/definitions.ts +385 -0
  1105. package/src/unit-system/dimension.ts +107 -0
  1106. package/src/unit-system/guards.ts +82 -0
  1107. package/src/unit-system/index.ts +68 -0
  1108. package/src/unit-system/registry.ts +381 -0
  1109. package/src/unit-system/value.ts +959 -0
  1110. package/src/units.ts +462 -0
  1111. package/src/uplink-externals.ts +91 -0
  1112. package/src/uplink-manifest.ts +349 -0
  1113. package/src/value.ts +15 -0
  1114. package/src/version.generated.ts +10 -0
  1115. package/src/view-clock-formula.ts +90 -0
  1116. package/src/wrap-units.ts +361 -0
  1117. package/tsconfig.base.json +16 -0
@@ -0,0 +1,317 @@
1
+ import type {
2
+ AnyReckonerDefinition,
3
+ DepWindows,
4
+ ReckonerDefinition,
5
+ ReckonerInputRule,
6
+ } from "../reading";
7
+ import type { TopicId, TopicPayload } from "../topics";
8
+ import type { Dep } from "./processors";
9
+
10
+ /**
11
+ * Per-topic forward models, registered at module load the same way components
12
+ * and themes are: a module that owns a model calls `registerReckoner` and the
13
+ * store picks it up, with no wiring in between.
14
+ *
15
+ * A module-level registry rather than a `TimelineStore` method because the model
16
+ * belongs to whoever owns the topic (a widget, an Uplink), and that module is
17
+ * imported long before any store exists.
18
+ *
19
+ * ## Keyed by (topic, owner), and a contest falls back to core
20
+ *
21
+ * This was a bare `Map<topic, reckoner>` with last-registration-wins, which is
22
+ * the design `units.ts` considered and rejected for the same shape of problem,
23
+ * in its own words: "the maps are whole-Topic, so last-write-wins between two
24
+ * installed providers would clobber core's own units for that Topic". Its
25
+ * answer, a registry keyed by owner so two providers write two entries and
26
+ * never collide, is the one here.
27
+ *
28
+ * Last-write-wins is also not election, whatever it is called: the winner is
29
+ * decided by module import order, which is a fact about the bundler. A real
30
+ * conflict is two Uplinks both claiming to model one topic, and the honest
31
+ * answer is to serve NEITHER OF THEM: a reading carrying whichever model
32
+ * happened to load second is a confident picture assembled by accident, and
33
+ * `Reading`'s own doc is explicit that a wrong reckoner is worse than none. Same
34
+ * resolution `getResolvedComponents` uses for two widgets claiming one
35
+ * replacement target: withhold both, surface the conflict, never silently merge.
36
+ *
37
+ * What withholding both must NOT mean is serving nothing while core holds a
38
+ * working vanilla for the same topic. See {@link getReckoner}: the contest
39
+ * withdraws the contenders and core's own model answers.
40
+ *
41
+ * Re-registration under the SAME owner is last-write-wins and deliberately not
42
+ * an error, matching `defineUplinkClient`: a module re-evaluating under HMR or
43
+ * a test re-importing after `resetModules` is a benign single-owner case, and
44
+ * there is no cross-package collision to guard against within one owner.
45
+ */
46
+ const reckoners = new Map<string, Map<string, AnyReckonerDefinition>>();
47
+
48
+ /**
49
+ * The owner core's own vanilla models register under. An Uplink cannot use it:
50
+ * `defineUplinkClient` stamps the client's own id, and `CORE_UPLINK_CLIENT` is
51
+ * the one handle carrying this one.
52
+ */
53
+ export const CORE_RECKONER_OWNER = "core";
54
+
55
+ /**
56
+ * Register `owner`'s forward model for `topic`.
57
+ *
58
+ * `owner` is a required argument rather than a convention because ownership has
59
+ * to be readable by something other than a person: the boundary ratchet and any
60
+ * health surface both want to know which Uplink is modelling what. An Uplink
61
+ * client should call its handle's bound `registerReckoner` instead of naming
62
+ * itself here.
63
+ *
64
+ * ## The topic is the typed union, so the payload type falls out of it
65
+ *
66
+ * `topic` was a bare `string`, and it cost twice. A name with a typo was not a
67
+ * compile error at all: it registered a model under a topic nothing would ever
68
+ * read, and the only symptom was a value that stayed unreckoned forever. And
69
+ * `T` could not be inferred from it, so every author annotated the payload by
70
+ * hand and the annotation was free to disagree with the topic it was registered
71
+ * against.
72
+ *
73
+ * Taking `TopicId` and resolving `TopicPayload<Topic>` fixes both at once,
74
+ * through the map `useTelemetry` and `Dep` already resolve through. `Deps` and
75
+ * `Projection` were already inferable and are simply left to infer: a definition that
76
+ * annotates neither is the shorter one AND the one that cannot drift.
77
+ *
78
+ * An Uplink-owned Topic reaches the union the same way it reaches
79
+ * `useTelemetry`: the Uplink's client augments `TopicPayloadMap` through
80
+ * `declare module "@ksp-gonogo/sitrep-sdk"`, and any program that statically
81
+ * imports that module can register a model for it.
82
+ */
83
+ export function registerReckoner<
84
+ const Topic extends TopicId,
85
+ Projection = TopicPayload<Topic>,
86
+ const Deps extends readonly Dep[] = readonly Dep[],
87
+ const Windows extends DepWindows<Deps> = Record<never, never>,
88
+ >(
89
+ topic: Topic,
90
+ owner: string,
91
+ reckoner: ReckonerDefinition<TopicPayload<Topic>, Projection, Deps, Windows>,
92
+ ): void {
93
+ const requireReason = (
94
+ rule: string,
95
+ reason: string | undefined,
96
+ where: string,
97
+ present: boolean,
98
+ ) => {
99
+ if (present && (reason === undefined || reason.trim() === "")) {
100
+ throw new Error(
101
+ `registerReckoner("${topic}", "${owner}"): the ${rule} exemption${where} carries no reason.\n\n` +
102
+ "The store applies the input rules to every model by default, and an " +
103
+ "opt-out is only reviewable if it says what makes it sound. Write the " +
104
+ "reason as the value:\n" +
105
+ ` exempt: { ${rule}: "this input only seeds the integration and is never read again" }`,
106
+ );
107
+ }
108
+ };
109
+ const exempt = reckoner.exempt;
110
+ if (exempt) {
111
+ requireReason("horizon", exempt.horizon, "", exempt.horizon !== undefined);
112
+ requireReason("band", exempt.band, "", exempt.band !== undefined);
113
+ /*
114
+ * `perBasis` holds one opt-out SET per basis rather than a reason of its
115
+ * own, so its reasons are two levels down: basis, then rule, then input.
116
+ * Walked with the typed shape rather than `Object.entries` over the whole
117
+ * `exempt` object, which could only see its values as `unknown`.
118
+ */
119
+ const declaredInputs = new Set<string>();
120
+ for (const dep of reckoner.deps) {
121
+ if (typeof dep === "string") {
122
+ declaredInputs.add(dep);
123
+ continue;
124
+ }
125
+ if ("reading" in dep) declaredInputs.add(dep.reading);
126
+ }
127
+ for (const [basis, scoped] of Object.entries(exempt.perBasis ?? {})) {
128
+ for (const rule of ["horizon", "band"] as const) {
129
+ for (const [input, reason] of Object.entries(scoped?.[rule] ?? {})) {
130
+ requireReason(
131
+ rule,
132
+ reason,
133
+ ` for ${input} on the ${basis} basis`,
134
+ true,
135
+ );
136
+ /*
137
+ * An opt-out naming an input the model never declared is the failure
138
+ * this layer introduces: it reads as a reviewed decision, exempts
139
+ * nothing, and goes on reading that way after the dep it was written
140
+ * for is renamed or dropped.
141
+ */
142
+ if (!declaredInputs.has(input)) {
143
+ throw new Error(
144
+ `registerReckoner("${topic}", "${owner}"): the ${rule} exemption on the ${basis} basis names "${input}", which is not one of this model's declared inputs.\n\n` +
145
+ `Declared: ${[...declaredInputs].sort().join(", ") || "(none)"}\n` +
146
+ "An exemption can only be from an input the model actually takes. One naming anything else exempts nothing and reads as a decision somebody made.",
147
+ );
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ const byOwner =
154
+ reckoners.get(topic) ?? new Map<string, AnyReckonerDefinition>();
155
+ byOwner.set(owner, reckoner);
156
+ reckoners.set(topic, byOwner);
157
+ }
158
+
159
+ /** One model's declared opt-out from one input rule, and who declared it. */
160
+ export interface ReckonerExemption {
161
+ readonly topic: string;
162
+ readonly owner: string;
163
+ readonly rule: ReckonerInputRule;
164
+ readonly reason: string;
165
+ /** Present where the opt-out is narrowed to models produced on one basis. */
166
+ readonly basis?: string;
167
+ /** Present where it is narrowed to one declared input, which is the honest form. */
168
+ readonly input?: string;
169
+ }
170
+
171
+ /**
172
+ * Every input-rule opt-out any registered model declared, sorted by topic, then
173
+ * owner, then rule.
174
+ *
175
+ * The point of the rules is that a model gets them without writing anything, so
176
+ * the exceptions are the only part anyone has to read, and they have to be
177
+ * readable in ONE place rather than found by grepping twelve Uplinks. An
178
+ * Uplink's generated page lists its own off this, and the ledger suite pins the
179
+ * whole set so a new exemption arrives as a reviewed diff rather than as a line
180
+ * inside a model nobody re-reads.
181
+ *
182
+ * Sorted rather than in registration order for the same reason
183
+ * `getReckonedTopics` is: a generated page whose rows depend on module import
184
+ * order churns on every bundler change.
185
+ */
186
+ export function getReckonerExemptions(): ReckonerExemption[] {
187
+ const rows: ReckonerExemption[] = [];
188
+ for (const [topic, byOwner] of reckoners) {
189
+ for (const [owner, definition] of byOwner) {
190
+ const exempt = definition.exempt;
191
+ if (!exempt) continue;
192
+ if (exempt.horizon !== undefined) {
193
+ rows.push({ topic, owner, rule: "horizon", reason: exempt.horizon });
194
+ }
195
+ if (exempt.band !== undefined) {
196
+ rows.push({ topic, owner, rule: "band", reason: exempt.band });
197
+ }
198
+ /*
199
+ * The narrowed form, listed with the rest: a reviewable set that silently
200
+ * omitted it would report "no exemptions" while one was declared, which
201
+ * is the inert-rule shape this whole mechanism exists to avoid.
202
+ */
203
+ for (const [basis, scoped] of Object.entries(exempt.perBasis ?? {})) {
204
+ for (const rule of ["horizon", "band"] as const) {
205
+ for (const [input, reason] of Object.entries(scoped?.[rule] ?? {})) {
206
+ rows.push({ topic, owner, rule, reason, basis, input });
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ return rows.sort(
213
+ (a, b) =>
214
+ a.topic.localeCompare(b.topic) ||
215
+ a.owner.localeCompare(b.owner) ||
216
+ a.rule.localeCompare(b.rule),
217
+ );
218
+ }
219
+
220
+ /** The elected model for a topic, and which owner it belongs to. */
221
+ export interface ElectedReckoner {
222
+ readonly owner: string;
223
+ readonly definition: AnyReckonerDefinition;
224
+ }
225
+
226
+ /**
227
+ * The model to actually use for `topic`, and who owns it.
228
+ *
229
+ * ## The election, and why withholding everything stopped being right
230
+ *
231
+ * This used to answer `undefined` for a contested topic as well as an
232
+ * unmodelled one, on the reasoning that two Uplinks claiming one topic should
233
+ * be served by neither. That reasoning holds for the two Uplinks and stops
234
+ * holding once CORE ships a vanilla: withholding then serves nothing while a
235
+ * working model sits registered, which is a silent outage rather than a
236
+ * withheld opinion, and on a value the CONTRACT declares reckonable the type
237
+ * has already promised a model is on offer.
238
+ *
239
+ * So the ladder is: the sole non-core owner (an Uplink that owns the physics
240
+ * beats the vanilla), else core's own registration (which is what a contest
241
+ * falls back to, and what an uncontested core-only topic uses), else nothing.
242
+ * A contest that core cannot cover still answers with nothing, and
243
+ * `TimelineStore` turns that into `declined: { reason: "contested" }` rather
244
+ * than a silence.
245
+ *
246
+ * {@link getReckonerConflicts} is unchanged and still names every contested
247
+ * topic, because "these two Uplinks disagree" is worth telling an operator
248
+ * whether or not core covered for them.
249
+ */
250
+ export function getReckoner(topic: string): ElectedReckoner | undefined {
251
+ const byOwner = reckoners.get(topic);
252
+ if (!byOwner || byOwner.size === 0) return undefined;
253
+ const contenders = [...byOwner.entries()].filter(
254
+ ([owner]) => owner !== CORE_RECKONER_OWNER,
255
+ );
256
+ if (contenders.length === 1) {
257
+ const [owner, definition] = contenders[0];
258
+ return { owner, definition };
259
+ }
260
+ const core = byOwner.get(CORE_RECKONER_OWNER);
261
+ return core ? { owner: CORE_RECKONER_OWNER, definition: core } : undefined;
262
+ }
263
+
264
+ /** A topic two or more NON-CORE owners have both registered a model for. */
265
+ export interface ReckonerConflict {
266
+ topic: string;
267
+ /**
268
+ * The competing owners, sorted, core included where it also registered. Every
269
+ * CONTENDER is withheld; core is not a contender and covers where it has a
270
+ * model. See {@link getReckoner}.
271
+ */
272
+ owners: string[];
273
+ }
274
+
275
+ /**
276
+ * Every contested topic in the registry, for a host that wants to tell the
277
+ * operator which Uplinks disagree. Mirrors `getReplacementConflicts`, and its
278
+ * emptiness is the normal case.
279
+ *
280
+ * Core is not counted as a party to the contest. Core ships a vanilla for every
281
+ * marked Topic, so counting it would make one Uplink electing itself over the
282
+ * vanilla read as a disagreement, which is the normal and intended case and the
283
+ * one {@link getReckoner} serves without hesitating. A contest is two owners who
284
+ * both think they own the physics.
285
+ */
286
+ export function getReckonerConflicts(): ReckonerConflict[] {
287
+ const conflicts: ReckonerConflict[] = [];
288
+ for (const [topic, byOwner] of reckoners) {
289
+ const contenders = [...byOwner.keys()].filter(
290
+ (owner) => owner !== CORE_RECKONER_OWNER,
291
+ );
292
+ if (contenders.length >= 2) {
293
+ conflicts.push({ topic, owners: [...byOwner.keys()].sort() });
294
+ }
295
+ }
296
+ return conflicts;
297
+ }
298
+
299
+ /**
300
+ * Every topic anyone has registered a model for, with its owners.
301
+ *
302
+ * `getReckoner` answers with the model and `getReckonerConflicts` with the
303
+ * contested subset, and neither can tell you that one owner models six topics,
304
+ * which is what a docs surface enumerating an Uplink's contributions needs.
305
+ * Sorted by topic so a generated page's ordering does not depend on module
306
+ * import order.
307
+ */
308
+ export function getReckonedTopics(): { topic: string; owners: string[] }[] {
309
+ return [...reckoners.entries()]
310
+ .map(([topic, byOwner]) => ({ topic, owners: [...byOwner.keys()].sort() }))
311
+ .sort((a, b) => a.topic.localeCompare(b.topic));
312
+ }
313
+
314
+ /** Test-only: reset the registry to empty. */
315
+ export function clearReckoners(): void {
316
+ reckoners.clear();
317
+ }