@aephia/atlas-kit 0.6.0-next.8 → 0.6.0-next.80

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 (528) hide show
  1. package/README.md +3 -1
  2. package/dist/cargo/actions/deposit.d.ts +1 -1
  3. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  4. package/dist/cargo/actions/deposit.js +25 -12
  5. package/dist/cargo/actions/deposit.js.map +1 -1
  6. package/dist/cargo/actions/index.d.ts.map +1 -1
  7. package/dist/cargo/actions/index.js +3 -2
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/wallet-token.d.ts +1 -1
  10. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  11. package/dist/cargo/actions/wallet-token.js +1 -9
  12. package/dist/cargo/actions/wallet-token.js.map +1 -1
  13. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  14. package/dist/cargo/actions/withdrawal.js +22 -10
  15. package/dist/cargo/actions/withdrawal.js.map +1 -1
  16. package/dist/claim-stakes/actions/index.d.ts +13 -0
  17. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  18. package/dist/claim-stakes/actions/index.js +95 -44
  19. package/dist/claim-stakes/actions/index.js.map +1 -1
  20. package/dist/claim-stakes/index.d.ts +14 -0
  21. package/dist/claim-stakes/index.d.ts.map +1 -1
  22. package/dist/claim-stakes/index.js +23 -2
  23. package/dist/claim-stakes/index.js.map +1 -1
  24. package/dist/client/context.d.ts.map +1 -1
  25. package/dist/client/context.js +1 -1
  26. package/dist/client/context.js.map +1 -1
  27. package/dist/client/contracts.d.ts +16 -6
  28. package/dist/client/contracts.d.ts.map +1 -1
  29. package/dist/client/errors.d.ts +6 -2
  30. package/dist/client/errors.d.ts.map +1 -1
  31. package/dist/client/errors.js +31 -1
  32. package/dist/client/errors.js.map +1 -1
  33. package/dist/client/index.d.ts +1 -0
  34. package/dist/client/index.d.ts.map +1 -1
  35. package/dist/client/index.js +1 -0
  36. package/dist/client/index.js.map +1 -1
  37. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  38. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  39. package/dist/client/rpc-subscription-provider.js +190 -0
  40. package/dist/client/rpc-subscription-provider.js.map +1 -0
  41. package/dist/combat/actions/index.d.ts.map +1 -1
  42. package/dist/combat/actions/index.js +98 -50
  43. package/dist/combat/actions/index.js.map +1 -1
  44. package/dist/crafting/actions/index.d.ts +11 -0
  45. package/dist/crafting/actions/index.d.ts.map +1 -1
  46. package/dist/crafting/actions/index.js +60 -29
  47. package/dist/crafting/actions/index.js.map +1 -1
  48. package/dist/crafting/index.d.ts +31 -2
  49. package/dist/crafting/index.d.ts.map +1 -1
  50. package/dist/crafting/index.js +41 -14
  51. package/dist/crafting/index.js.map +1 -1
  52. package/dist/factions/actions/index.d.ts +1 -0
  53. package/dist/factions/actions/index.d.ts.map +1 -1
  54. package/dist/factions/actions/index.js.map +1 -1
  55. package/dist/factions/index.d.ts +1 -1
  56. package/dist/factions/index.d.ts.map +1 -1
  57. package/dist/factions/index.js +14 -8
  58. package/dist/factions/index.js.map +1 -1
  59. package/dist/factions/profile-faction.d.ts +20 -8
  60. package/dist/factions/profile-faction.d.ts.map +1 -1
  61. package/dist/factions/profile-faction.js +20 -8
  62. package/dist/factions/profile-faction.js.map +1 -1
  63. package/dist/fleets/actions/add-ship.d.ts +35 -0
  64. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  65. package/dist/fleets/actions/add-ship.js +149 -0
  66. package/dist/fleets/actions/add-ship.js.map +1 -0
  67. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  68. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  69. package/dist/fleets/actions/create-fleet.js +138 -0
  70. package/dist/fleets/actions/create-fleet.js.map +1 -0
  71. package/dist/fleets/actions/crew-transfer.d.ts +41 -0
  72. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  73. package/dist/fleets/actions/crew-transfer.js +114 -0
  74. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  75. package/dist/fleets/actions/index.d.ts +33 -15
  76. package/dist/fleets/actions/index.d.ts.map +1 -1
  77. package/dist/fleets/actions/index.js +168 -110
  78. package/dist/fleets/actions/index.js.map +1 -1
  79. package/dist/fleets/actions/respawn.d.ts +38 -0
  80. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  81. package/dist/fleets/actions/respawn.js +122 -0
  82. package/dist/fleets/actions/respawn.js.map +1 -0
  83. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  84. package/dist/fleets/actions/ship-import.js +37 -11
  85. package/dist/fleets/actions/ship-import.js.map +1 -1
  86. package/dist/fleets/cooldown.d.ts +44 -0
  87. package/dist/fleets/cooldown.d.ts.map +1 -0
  88. package/dist/fleets/cooldown.js +43 -0
  89. package/dist/fleets/cooldown.js.map +1 -0
  90. package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
  91. package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
  92. package/dist/fleets/coordinate-warp-estimate.js +46 -0
  93. package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
  94. package/dist/fleets/index.d.ts +34 -0
  95. package/dist/fleets/index.d.ts.map +1 -1
  96. package/dist/fleets/index.js +51 -2
  97. package/dist/fleets/index.js.map +1 -1
  98. package/dist/fleets/movement-arithmetic.d.ts +21 -0
  99. package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
  100. package/dist/fleets/movement-arithmetic.js +41 -0
  101. package/dist/fleets/movement-arithmetic.js.map +1 -0
  102. package/dist/fleets/subwarp-estimate.d.ts +70 -0
  103. package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
  104. package/dist/fleets/subwarp-estimate.js +38 -0
  105. package/dist/fleets/subwarp-estimate.js.map +1 -0
  106. package/dist/fleets/warp-lane-estimate.d.ts +59 -0
  107. package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
  108. package/dist/fleets/warp-lane-estimate.js +36 -0
  109. package/dist/fleets/warp-lane-estimate.js.map +1 -0
  110. package/dist/fleets/warp-lane-policy.d.ts +68 -0
  111. package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
  112. package/dist/fleets/warp-lane-policy.js +91 -0
  113. package/dist/fleets/warp-lane-policy.js.map +1 -0
  114. package/dist/fleets/warp-lane-toll.d.ts +55 -0
  115. package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
  116. package/dist/fleets/warp-lane-toll.js +79 -0
  117. package/dist/fleets/warp-lane-toll.js.map +1 -0
  118. package/dist/identity/actions/create-profile.d.ts +56 -0
  119. package/dist/identity/actions/create-profile.d.ts.map +1 -0
  120. package/dist/identity/actions/create-profile.js +139 -0
  121. package/dist/identity/actions/create-profile.js.map +1 -0
  122. package/dist/identity/actions/index.d.ts +4 -3
  123. package/dist/identity/actions/index.d.ts.map +1 -1
  124. package/dist/identity/actions/index.js +49 -27
  125. package/dist/identity/actions/index.js.map +1 -1
  126. package/dist/identity/index.d.ts +15 -0
  127. package/dist/identity/index.d.ts.map +1 -1
  128. package/dist/identity/index.js +15 -0
  129. package/dist/identity/index.js.map +1 -1
  130. package/dist/identity/permissions.d.ts +124 -0
  131. package/dist/identity/permissions.d.ts.map +1 -0
  132. package/dist/identity/permissions.js +171 -0
  133. package/dist/identity/permissions.js.map +1 -0
  134. package/dist/index.d.ts +24 -0
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +20 -3
  137. package/dist/index.js.map +1 -1
  138. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  139. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  140. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  141. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  142. package/dist/internal/c4/character-registration.d.ts +2 -0
  143. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  144. package/dist/internal/c4/character-registration.js +2 -0
  145. package/dist/internal/c4/character-registration.js.map +1 -1
  146. package/dist/internal/c4/claim-stake.d.ts +4 -27
  147. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  148. package/dist/internal/c4/claim-stake.js +25 -38
  149. package/dist/internal/c4/claim-stake.js.map +1 -1
  150. package/dist/internal/c4/combat.d.ts +0 -27
  151. package/dist/internal/c4/combat.d.ts.map +1 -1
  152. package/dist/internal/c4/combat.js +0 -33
  153. package/dist/internal/c4/combat.js.map +1 -1
  154. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  155. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  156. package/dist/internal/c4/crafting-process-codec.js +34 -0
  157. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  158. package/dist/internal/c4/crafting.d.ts +11 -31
  159. package/dist/internal/c4/crafting.d.ts.map +1 -1
  160. package/dist/internal/c4/crafting.js +26 -43
  161. package/dist/internal/c4/crafting.js.map +1 -1
  162. package/dist/internal/c4/faction-adapter.d.ts +12 -0
  163. package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
  164. package/dist/internal/c4/faction-adapter.js +52 -0
  165. package/dist/internal/c4/faction-adapter.js.map +1 -0
  166. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  167. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  168. package/dist/internal/c4/faction-epoch-meter.js +31 -0
  169. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  170. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  171. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  172. package/dist/internal/c4/faction-treasury.js +48 -0
  173. package/dist/internal/c4/faction-treasury.js.map +1 -0
  174. package/dist/internal/c4/factions.d.ts +9 -57
  175. package/dist/internal/c4/factions.d.ts.map +1 -1
  176. package/dist/internal/c4/factions.js +21 -139
  177. package/dist/internal/c4/factions.js.map +1 -1
  178. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  179. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  180. package/dist/internal/c4/fleet-arrival.js +42 -0
  181. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  182. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  183. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  184. package/dist/internal/c4/fleet-creation.js +180 -0
  185. package/dist/internal/c4/fleet-creation.js.map +1 -0
  186. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  187. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  188. package/dist/internal/c4/fleet-crew-binding.js +15 -0
  189. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  190. package/dist/internal/c4/fleet-respawn.d.ts +19 -0
  191. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  192. package/dist/internal/c4/fleet-respawn.js +91 -0
  193. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  194. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  195. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  196. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  197. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  198. package/dist/internal/c4/fleet.d.ts +45 -19
  199. package/dist/internal/c4/fleet.d.ts.map +1 -1
  200. package/dist/internal/c4/fleet.js +26 -7
  201. package/dist/internal/c4/fleet.js.map +1 -1
  202. package/dist/internal/c4/game.d.ts +27 -9
  203. package/dist/internal/c4/game.d.ts.map +1 -1
  204. package/dist/internal/c4/game.js +77 -14
  205. package/dist/internal/c4/game.js.map +1 -1
  206. package/dist/internal/c4/identity.d.ts +2 -7
  207. package/dist/internal/c4/identity.d.ts.map +1 -1
  208. package/dist/internal/c4/identity.js +2 -23
  209. package/dist/internal/c4/identity.js.map +1 -1
  210. package/dist/internal/c4/loyalty.d.ts +0 -27
  211. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  212. package/dist/internal/c4/loyalty.js +0 -33
  213. package/dist/internal/c4/loyalty.js.map +1 -1
  214. package/dist/internal/c4/market.d.ts +2 -38
  215. package/dist/internal/c4/market.d.ts.map +1 -1
  216. package/dist/internal/c4/market.js +13 -51
  217. package/dist/internal/c4/market.js.map +1 -1
  218. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  219. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  220. package/dist/internal/c4/mining-instructions.js +3 -0
  221. package/dist/internal/c4/mining-instructions.js.map +1 -0
  222. package/dist/internal/c4/open-signal.d.ts +8 -0
  223. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  224. package/dist/internal/c4/open-signal.js +37 -0
  225. package/dist/internal/c4/open-signal.js.map +1 -0
  226. package/dist/internal/c4/profile-creation.d.ts +17 -0
  227. package/dist/internal/c4/profile-creation.d.ts.map +1 -0
  228. package/dist/internal/c4/profile-creation.js +36 -0
  229. package/dist/internal/c4/profile-creation.js.map +1 -0
  230. package/dist/internal/c4/profile-permissions.d.ts +14 -0
  231. package/dist/internal/c4/profile-permissions.d.ts.map +1 -0
  232. package/dist/internal/c4/profile-permissions.js +81 -0
  233. package/dist/internal/c4/profile-permissions.js.map +1 -0
  234. package/dist/internal/c4/region-geometry.d.ts +8 -0
  235. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  236. package/dist/internal/c4/region-geometry.js +43 -0
  237. package/dist/internal/c4/region-geometry.js.map +1 -0
  238. package/dist/internal/c4/rewards.d.ts +0 -27
  239. package/dist/internal/c4/rewards.d.ts.map +1 -1
  240. package/dist/internal/c4/rewards.js +0 -33
  241. package/dist/internal/c4/rewards.js.map +1 -1
  242. package/dist/internal/c4/runtime-bindings.d.ts +3 -0
  243. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  244. package/dist/internal/c4/runtime-bindings.js +4 -0
  245. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  246. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  247. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  248. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  249. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  250. package/dist/internal/c4/scan-lifecycle.d.ts +306 -0
  251. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  252. package/dist/internal/c4/scan-lifecycle.js +258 -0
  253. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  254. package/dist/internal/c4/scanning.d.ts +1 -28
  255. package/dist/internal/c4/scanning.d.ts.map +1 -1
  256. package/dist/internal/c4/scanning.js +2 -33
  257. package/dist/internal/c4/scanning.js.map +1 -1
  258. package/dist/internal/c4/ship-import.d.ts +4 -0
  259. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  260. package/dist/internal/c4/ship-import.js +13 -0
  261. package/dist/internal/c4/ship-import.js.map +1 -0
  262. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  263. package/dist/internal/c4/ship-stats.js +25 -21
  264. package/dist/internal/c4/ship-stats.js.map +1 -1
  265. package/dist/internal/c4/starbase.d.ts +0 -32
  266. package/dist/internal/c4/starbase.d.ts.map +1 -1
  267. package/dist/internal/c4/starbase.js +3 -41
  268. package/dist/internal/c4/starbase.js.map +1 -1
  269. package/dist/internal/c4/world.d.ts +36 -7
  270. package/dist/internal/c4/world.d.ts.map +1 -1
  271. package/dist/internal/c4/world.js +58 -25
  272. package/dist/internal/c4/world.js.map +1 -1
  273. package/dist/internal/cargo.d.ts +2 -0
  274. package/dist/internal/cargo.d.ts.map +1 -1
  275. package/dist/internal/cargo.js +8 -0
  276. package/dist/internal/cargo.js.map +1 -1
  277. package/dist/internal/fleet.d.ts +1 -0
  278. package/dist/internal/fleet.d.ts.map +1 -1
  279. package/dist/internal/fleet.js +3 -1
  280. package/dist/internal/fleet.js.map +1 -1
  281. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  282. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  283. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  284. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  285. package/dist/internal/planning/action-runtime.d.ts +38 -0
  286. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  287. package/dist/internal/planning/action-runtime.js +63 -0
  288. package/dist/internal/planning/action-runtime.js.map +1 -0
  289. package/dist/internal/planning/arrival-guards.d.ts +20 -0
  290. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  291. package/dist/internal/planning/arrival-guards.js +187 -0
  292. package/dist/internal/planning/arrival-guards.js.map +1 -0
  293. package/dist/internal/planning/authorization-adapter.d.ts +6 -6
  294. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  295. package/dist/internal/planning/authorization-adapter.js +81 -16
  296. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  297. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  298. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  299. package/dist/internal/planning/character-registration-guard.js +58 -0
  300. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  301. package/dist/internal/planning/character-registration.d.ts +23 -0
  302. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  303. package/dist/internal/planning/character-registration.js +86 -0
  304. package/dist/internal/planning/character-registration.js.map +1 -0
  305. package/dist/internal/planning/democracy-history.d.ts +50 -0
  306. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  307. package/dist/internal/planning/democracy-history.js +198 -0
  308. package/dist/internal/planning/democracy-history.js.map +1 -0
  309. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  310. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  311. package/dist/internal/planning/faction-trade-guards.js +15 -0
  312. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  313. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  314. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  315. package/dist/internal/planning/faction-trade-state.js +43 -0
  316. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  317. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  318. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  319. package/dist/internal/planning/fleet-arrival.js +105 -0
  320. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  321. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  322. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  323. package/dist/internal/planning/fleet-attack-xp.js +110 -0
  324. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  325. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  326. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  327. package/dist/internal/planning/fleet-creation.js +107 -0
  328. package/dist/internal/planning/fleet-creation.js.map +1 -0
  329. package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
  330. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  331. package/dist/internal/planning/fleet-crew-guard.js +47 -0
  332. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  333. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  334. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  335. package/dist/internal/planning/fleet-crew-transfer.js +131 -0
  336. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  337. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  338. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  339. package/dist/internal/planning/fleet-respawn.js +164 -0
  340. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  341. package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
  342. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  343. package/dist/internal/planning/fleet-ship-assembly.js +136 -0
  344. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  345. package/dist/internal/planning/governance-fees.d.ts +64 -0
  346. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  347. package/dist/internal/planning/governance-fees.js +239 -0
  348. package/dist/internal/planning/governance-fees.js.map +1 -0
  349. package/dist/internal/planning/mining-stop.d.ts +14 -0
  350. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  351. package/dist/internal/planning/mining-stop.js +41 -0
  352. package/dist/internal/planning/mining-stop.js.map +1 -0
  353. package/dist/internal/planning/movement-character.d.ts +7 -0
  354. package/dist/internal/planning/movement-character.d.ts.map +1 -0
  355. package/dist/internal/planning/movement-character.js +41 -0
  356. package/dist/internal/planning/movement-character.js.map +1 -0
  357. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  358. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  359. package/dist/internal/planning/movement-xp-guard.js +103 -0
  360. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  361. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  362. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  363. package/dist/internal/planning/open-signal-guard.js +31 -0
  364. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  365. package/dist/internal/planning/open-signal.d.ts +31 -0
  366. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  367. package/dist/internal/planning/open-signal.js +84 -0
  368. package/dist/internal/planning/open-signal.js.map +1 -0
  369. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  370. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  371. package/dist/internal/planning/respawn-guards.js +41 -0
  372. package/dist/internal/planning/respawn-guards.js.map +1 -0
  373. package/dist/internal/planning/runtime-guards.d.ts +43 -0
  374. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  375. package/dist/internal/planning/runtime-guards.js +636 -0
  376. package/dist/internal/planning/runtime-guards.js.map +1 -0
  377. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  378. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  379. package/dist/internal/planning/scan-completion-guard.js +94 -0
  380. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  381. package/dist/internal/planning/scan-completion.d.ts +20 -0
  382. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  383. package/dist/internal/planning/scan-completion.js +196 -0
  384. package/dist/internal/planning/scan-completion.js.map +1 -0
  385. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  386. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  387. package/dist/internal/planning/scan-detect-guard.js +77 -0
  388. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  389. package/dist/internal/planning/scan-detect.d.ts +24 -0
  390. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  391. package/dist/internal/planning/scan-detect.js +244 -0
  392. package/dist/internal/planning/scan-detect.js.map +1 -0
  393. package/dist/internal/planning/scan-input.d.ts +9 -0
  394. package/dist/internal/planning/scan-input.d.ts.map +1 -0
  395. package/dist/internal/planning/scan-input.js +58 -0
  396. package/dist/internal/planning/scan-input.js.map +1 -0
  397. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  398. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  399. package/dist/internal/planning/ship-import-funding.js +52 -0
  400. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  401. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  402. package/dist/internal/planning/ship-token.js +2 -4
  403. package/dist/internal/planning/ship-token.js.map +1 -1
  404. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  405. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  406. package/dist/internal/planning/starbase-system-guard.js +93 -0
  407. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  408. package/dist/internal/planning/starbase-system.d.ts +12 -0
  409. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  410. package/dist/internal/planning/starbase-system.js +22 -0
  411. package/dist/internal/planning/starbase-system.js.map +1 -0
  412. package/dist/internal/planning/token-mint.d.ts +4 -0
  413. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  414. package/dist/internal/planning/token-mint.js +15 -0
  415. package/dist/internal/planning/token-mint.js.map +1 -0
  416. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  417. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  418. package/dist/internal/planning/trade-faction-market.js +56 -0
  419. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  420. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  421. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  422. package/dist/internal/planning/xp-runtime.js +126 -0
  423. package/dist/internal/planning/xp-runtime.js.map +1 -0
  424. package/dist/loyalty/actions/index.d.ts.map +1 -1
  425. package/dist/loyalty/actions/index.js +4 -3
  426. package/dist/loyalty/actions/index.js.map +1 -1
  427. package/dist/loyalty/index.d.ts.map +1 -1
  428. package/dist/loyalty/index.js +2 -6
  429. package/dist/loyalty/index.js.map +1 -1
  430. package/dist/markets/actions/index.d.ts +4 -3
  431. package/dist/markets/actions/index.d.ts.map +1 -1
  432. package/dist/markets/actions/index.js +48 -24
  433. package/dist/markets/actions/index.js.map +1 -1
  434. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  435. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  436. package/dist/markets/actions/trade-faction-market.js +291 -0
  437. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  438. package/dist/markets/index.d.ts +7 -7
  439. package/dist/markets/index.d.ts.map +1 -1
  440. package/dist/markets/index.js +9 -9
  441. package/dist/markets/index.js.map +1 -1
  442. package/dist/mining/actions/index.d.ts +84 -0
  443. package/dist/mining/actions/index.d.ts.map +1 -0
  444. package/dist/mining/actions/index.js +328 -0
  445. package/dist/mining/actions/index.js.map +1 -0
  446. package/dist/mining/estimate.d.ts +114 -0
  447. package/dist/mining/estimate.d.ts.map +1 -0
  448. package/dist/mining/estimate.js +127 -0
  449. package/dist/mining/estimate.js.map +1 -0
  450. package/dist/mining/index.d.ts +8 -2
  451. package/dist/mining/index.d.ts.map +1 -1
  452. package/dist/mining/index.js +6 -2
  453. package/dist/mining/index.js.map +1 -1
  454. package/dist/planning/assembly.d.ts.map +1 -1
  455. package/dist/planning/assembly.js +18 -0
  456. package/dist/planning/assembly.js.map +1 -1
  457. package/dist/planning/execution.d.ts.map +1 -1
  458. package/dist/planning/execution.js +382 -16
  459. package/dist/planning/execution.js.map +1 -1
  460. package/dist/planning/index.d.ts +170 -149
  461. package/dist/planning/index.d.ts.map +1 -1
  462. package/dist/planning/index.js +828 -121
  463. package/dist/planning/index.js.map +1 -1
  464. package/dist/planning/plan-sequence.d.ts.map +1 -1
  465. package/dist/planning/plan-sequence.js +8 -1
  466. package/dist/planning/plan-sequence.js.map +1 -1
  467. package/dist/planning/simulation.d.ts +25 -1
  468. package/dist/planning/simulation.d.ts.map +1 -1
  469. package/dist/planning/simulation.js +111 -11
  470. package/dist/planning/simulation.js.map +1 -1
  471. package/dist/registry/cargo.d.ts +6 -11
  472. package/dist/registry/cargo.d.ts.map +1 -1
  473. package/dist/registry/cargo.js +19 -19
  474. package/dist/registry/cargo.js.map +1 -1
  475. package/dist/registry/index.d.ts +4 -0
  476. package/dist/registry/index.d.ts.map +1 -1
  477. package/dist/registry/index.js.map +1 -1
  478. package/dist/registry/onboarding.d.ts +8 -1
  479. package/dist/registry/onboarding.d.ts.map +1 -1
  480. package/dist/registry/onboarding.js +18 -5
  481. package/dist/registry/onboarding.js.map +1 -1
  482. package/dist/registry/scanning.d.ts +7 -0
  483. package/dist/registry/scanning.d.ts.map +1 -0
  484. package/dist/registry/scanning.js +13 -0
  485. package/dist/registry/scanning.js.map +1 -0
  486. package/dist/registry/ship-stats-snapshot.js +19 -19
  487. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  488. package/dist/registry/ships.d.ts +22 -2
  489. package/dist/registry/ships.d.ts.map +1 -1
  490. package/dist/registry/ships.js +28 -4
  491. package/dist/registry/ships.js.map +1 -1
  492. package/dist/registry/xp-runtime.d.ts +4 -0
  493. package/dist/registry/xp-runtime.d.ts.map +1 -0
  494. package/dist/registry/xp-runtime.js +14 -0
  495. package/dist/registry/xp-runtime.js.map +1 -0
  496. package/dist/scanning/actions/index.d.ts +116 -0
  497. package/dist/scanning/actions/index.d.ts.map +1 -0
  498. package/dist/scanning/actions/index.js +185 -0
  499. package/dist/scanning/actions/index.js.map +1 -0
  500. package/dist/scanning/index.d.ts +4 -1
  501. package/dist/scanning/index.d.ts.map +1 -1
  502. package/dist/scanning/index.js +12 -8
  503. package/dist/scanning/index.js.map +1 -1
  504. package/dist/scanning/lifecycle.d.ts +77 -0
  505. package/dist/scanning/lifecycle.d.ts.map +1 -0
  506. package/dist/scanning/lifecycle.js +93 -0
  507. package/dist/scanning/lifecycle.js.map +1 -0
  508. package/dist/scanning/odds.d.ts +111 -0
  509. package/dist/scanning/odds.d.ts.map +1 -0
  510. package/dist/scanning/odds.js +294 -0
  511. package/dist/scanning/odds.js.map +1 -0
  512. package/dist/scanning/signals.d.ts +121 -0
  513. package/dist/scanning/signals.d.ts.map +1 -0
  514. package/dist/scanning/signals.js +171 -0
  515. package/dist/scanning/signals.js.map +1 -0
  516. package/dist/world/index.d.ts +110 -5
  517. package/dist/world/index.d.ts.map +1 -1
  518. package/dist/world/index.js +109 -4
  519. package/dist/world/index.js.map +1 -1
  520. package/dist/world/planet-claim-stake-plots.d.ts +130 -0
  521. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
  522. package/dist/world/planet-claim-stake-plots.js +110 -0
  523. package/dist/world/planet-claim-stake-plots.js.map +1 -0
  524. package/dist/world/starbase-status.d.ts +176 -0
  525. package/dist/world/starbase-status.d.ts.map +1 -0
  526. package/dist/world/starbase-status.js +153 -0
  527. package/dist/world/starbase-status.js.map +1 -0
  528. package/package.json +10 -2
@@ -0,0 +1,185 @@
1
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
2
+ import { requireGameAddress } from '../../internal/game-context.js';
3
+ import { validateScanAuthorizationOptions, validateScanFleetAddress, } from '../../internal/planning/scan-input.js';
4
+ import { resolveOpenSignal, openSignalAddresses, validateOpenSignal, openSignalInstruction, } from '../../internal/planning/open-signal.js';
5
+ import { readFreshGameForCharacterRegistration } from '../../registry/onboarding.js';
6
+ import { createPlan } from '../../planning/index.js';
7
+ /** Plans one absent canonical signal for a directly owned Fleet, including Docked Fleets.
8
+ * Planning reads fresh state but never signs, submits, deposits funds or detects a signal.
9
+ * The Profile funds signal rent while retaining its own reserve; transaction fees are separate.
10
+ * Restricted-key least privilege is unqualified: instruction permission acceptance remains
11
+ * chain-authoritative, and legacy SCAN bit 38 is not established as sufficient. Simulate before signing.
12
+ * @example
13
+ * ```ts
14
+ * declare const ctx: SageContext, fleet: Address, authorization: PlanAuthorization;
15
+ * const plan = await planOpenScanSignal(ctx, fleet, { authorization });
16
+ * console.log(plan.describe());
17
+ * ```
18
+ */
19
+ export async function planOpenScanSignal(ctx, fleet, options) {
20
+ validateScanFleetAddress(fleet);
21
+ const a = validateScanAuthorizationOptions(options);
22
+ const intent = {
23
+ game: requireGameAddress(ctx),
24
+ fleet,
25
+ profile: a.profile,
26
+ authority: a.authority,
27
+ keyIndex: a.keyIndex,
28
+ };
29
+ const guard = {
30
+ ...intent,
31
+ ...(await resolveOpenSignal(intent)),
32
+ kind: 'scan-signal-open',
33
+ authorityHash: '',
34
+ maximumProfileDebit: 0xffffffffffffffffn,
35
+ describes: 'Canonical absence, direct authority, owner/controller identity and Profile funding remain valid; refetch and recreate if changed.',
36
+ };
37
+ const addresses = openSignalAddresses(guard);
38
+ const [game, raw] = await Promise.all([
39
+ readFreshGameForCharacterRegistration(ctx),
40
+ readContextRawAccounts(ctx, addresses),
41
+ ]);
42
+ const { profileDebit, authorityHash } = await validateOpenSignal(guard, new Map(addresses.map((a, n) => [a, raw[n]])));
43
+ const summary = `Create an Empty sequence-zero signal for Fleet ${fleet}. Profile ${intent.profile} funds ${profileDebit} lamports of signal rent while retaining its storage reserve; transaction fees are separate. No detection or funding transfer is implicit. Restricted-key least privilege is unqualified; legacy SCAN bit 38 is not established as sufficient. Permission acceptance remains chain-authoritative: simulate before signing. The observed debit ceiling is rechecked before signing, not an on-chain spending cap.`;
44
+ return createPlan({
45
+ kind: 'scanning.open-signal',
46
+ summary,
47
+ preconditions: [
48
+ {
49
+ kind: 'game-account',
50
+ address: game.address,
51
+ describes: 'The configured Game remains valid; unrelated definitions may change.',
52
+ },
53
+ { ...guard, authorityHash, maximumProfileDebit: profileDebit },
54
+ ],
55
+ steps: [
56
+ {
57
+ instruction: openSignalInstruction(guard),
58
+ signers: [intent.authority],
59
+ describes: summary,
60
+ },
61
+ ],
62
+ });
63
+ }
64
+ import { resolveDetect, } from '../../internal/planning/scan-detect.js';
65
+ /** Plans one signal detection for an existing Empty signal and directly owned Idle Fleet.
66
+ * Reads fresh prerequisites without signing. Restricted-key sufficiency, cooldown
67
+ * rejection and final gameplay outcomes remain chain-authoritative; use simulatePlan.
68
+ * No automatic opening, deposits, loading, undocking or resolution occurs.
69
+ * @example
70
+ * ```ts
71
+ * declare const ctx: SageContext, fleet: Address, options: PlanDetectSignalOptions;
72
+ * const plan = await planDetectSignal(ctx, fleet, options);
73
+ * console.log(plan.describe());
74
+ * ```
75
+ */
76
+ export async function planDetectSignal(ctx, fleet, options) {
77
+ const resolved = await resolveDetect(ctx, fleet, options);
78
+ const guard = resolved.guard;
79
+ const description = `Detect a signal using pattern ${options.patternId}, focus ${options.focus}, consuming ${resolved.costDescription}. Restricted-key acceptance and final outcomes remain chain-authoritative; simulate before signing.`;
80
+ return createPlan({
81
+ kind: 'scan-detect',
82
+ summary: description,
83
+ steps: [
84
+ {
85
+ instruction: resolved.instruction,
86
+ describes: description,
87
+ signers: [guard.authority],
88
+ },
89
+ ],
90
+ preconditions: [guard],
91
+ });
92
+ }
93
+ import { resolveScanCompletion, } from '../../internal/planning/scan-completion.js';
94
+ import { completionAuthorized, } from '../../internal/planning/scan-completion-guard.js';
95
+ async function completion(ctx, fleet, operation, options) {
96
+ const { guard, instruction } = await resolveScanCompletion(ctx, fleet, operation, options);
97
+ const effects = {
98
+ resolve: 'Reveal a PendingEntropy attempt as Contact or NoContact. Entropy availability, the revealed result and any XP remain chain-authoritative.',
99
+ recover: 'Recover this Contact and record its Recovered receipt. Nominal cargo may be clipped to available capacity; accepted cargo and actual XP remain chain-authoritative.',
100
+ acknowledge: 'Clear this terminal receipt to Empty without closing the funded signal. The current Fleet account is included for abandoned-receipt cooldown handling.',
101
+ abandon: 'Abandon this unexpired Contact without recovering its cargo. Clearing the Abandoned receipt requires a separate acknowledgement.',
102
+ expire: 'Expire this overdue Contact without recovering its cargo. Clearing the Expired receipt requires a separate acknowledgement.',
103
+ 'forfeit-entropy': 'Forfeit this PendingEntropy attempt after its reveal deadline and record NoContact. Clearing the receipt requires a separate acknowledgement.',
104
+ };
105
+ const summary = `${effects[operation]} Signal ${guard.signal}, sequence ${guard.expectedSequence}. No movement, funding, automatic follow-up or retry is included. Permission acceptance remains chain-authoritative; simulate before signing.`;
106
+ return createPlan({
107
+ kind: `scanning.${operation}`,
108
+ summary,
109
+ steps: [
110
+ {
111
+ instruction,
112
+ signers: completionAuthorized(operation) ? [guard.authority] : [],
113
+ describes: summary,
114
+ },
115
+ ],
116
+ preconditions: [guard],
117
+ });
118
+ }
119
+ /** Resolve one PendingEntropy signal using its committed policy and regional loot configuration. Requires current Character XP accounts; no gameplay authority is needed.
120
+ * @example
121
+ * ```ts
122
+ * declare const ctx: SageContext, fleet: Address;
123
+ * const plan = await planResolveSignal(ctx, fleet);
124
+ * console.log(plan.describe());
125
+ * ```
126
+ */
127
+ export function planResolveSignal(ctx, fleet) {
128
+ return completion(ctx, fleet, 'resolve');
129
+ }
130
+ /** Recover one unexpired Contact with an Idle Fleet inside its stored radius. Cargo acceptance, clipping and XP remain chain-authoritative.
131
+ * @example
132
+ * ```ts
133
+ * declare const ctx: SageContext, fleet: Address, options: PlanScanCompletionOptions;
134
+ * const plan = await planRecoverSignal(ctx, fleet, options);
135
+ * console.log(plan.describe());
136
+ * ```
137
+ */
138
+ export function planRecoverSignal(ctx, fleet, options) {
139
+ return completion(ctx, fleet, 'recover', options);
140
+ }
141
+ /** Clear one terminal receipt to Empty while retaining the funded signal. Explicitly includes the Fleet for current abandoned-receipt cooldown handling.
142
+ * @example
143
+ * ```ts
144
+ * declare const ctx: SageContext, fleet: Address, options: PlanScanCompletionOptions;
145
+ * const plan = await planAcknowledgeScanResult(ctx, fleet, options);
146
+ * console.log(plan.describe());
147
+ * ```
148
+ */
149
+ export function planAcknowledgeScanResult(ctx, fleet, options) {
150
+ return completion(ctx, fleet, 'acknowledge', options);
151
+ }
152
+ /** Abandon one unexpired Contact without attempting recovery. Acknowledgement remains a separate explicit action.
153
+ * @example
154
+ * ```ts
155
+ * declare const ctx: SageContext, fleet: Address, options: PlanScanCompletionOptions;
156
+ * const plan = await planAbandonSignal(ctx, fleet, options);
157
+ * console.log(plan.describe());
158
+ * ```
159
+ */
160
+ export function planAbandonSignal(ctx, fleet, options) {
161
+ return completion(ctx, fleet, 'abandon', options);
162
+ }
163
+ /** Expire one Contact after its deadline. No gameplay authority is needed; acknowledgement remains separate.
164
+ * @example
165
+ * ```ts
166
+ * declare const ctx: SageContext, fleet: Address;
167
+ * const plan = await planExpireSignal(ctx, fleet);
168
+ * console.log(plan.describe());
169
+ * ```
170
+ */
171
+ export function planExpireSignal(ctx, fleet) {
172
+ return completion(ctx, fleet, 'expire');
173
+ }
174
+ /** Forfeit one PendingEntropy attempt after the supported reveal deadline. No gameplay authority is needed; acknowledgement remains separate.
175
+ * @example
176
+ * ```ts
177
+ * declare const ctx: SageContext, fleet: Address;
178
+ * const plan = await planForfeitScanSignalEntropy(ctx, fleet);
179
+ * console.log(plan.describe());
180
+ * ```
181
+ */
182
+ export function planForfeitScanSignalEntropy(ctx, fleet) {
183
+ return completion(ctx, fleet, 'forfeit-entropy');
184
+ }
185
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scanning/actions/index.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,7 @@ export interface ScanPatternSnapshot {
68
68
  readonly cooldownMultiplier: ScanFixedValue;
69
69
  readonly blankWeight: ScanFixedValue;
70
70
  readonly blankXpValue: ScanFixedValue;
71
- readonly status: 'draft' | 'active';
71
+ readonly status: 'draft' | 'active' | 'removed';
72
72
  readonly costs: readonly ScanPatternCost[];
73
73
  readonly loot: readonly ScanPatternLootOutcome[];
74
74
  readonly noiseMaps: readonly ScanNoiseMap[];
@@ -182,4 +182,7 @@ export declare function getCharacterScanningState(context: SageContext, profile:
182
182
  * ```
183
183
  */
184
184
  export declare function deriveScanCooldownState(fleet: FleetScanningStateSnapshot, atUnixSeconds: bigint): ScanCooldownState;
185
+ export { getScanSignalForFleet, maybeGetScanSignalForFleet, getScanPatternPolicy, maybeGetScanPatternPolicy, getScanLootProfile, maybeGetScanLootProfile, type ScanCoordinates, type ScanSignalStatus, type ScanSignalSnapshot, type ScanPatternPolicySnapshot, type ScanLootProfileSnapshot, } from './signals.js';
186
+ export { deriveScanSignalTiming, deriveScanRecoveryRange, type ScanSignalClock, type ScanSignalTiming, type ScanRecoveryRange, } from './lifecycle.js';
187
+ export { deriveScanLootOdds, deriveCommittedScanLootOdds, deriveScanExhaustion, type ScanLootOddsOptions, type ScanLootOdds, type ScanExhaustion, } from './odds.js';
185
188
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanning/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanning/index.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,11 @@ function patternSnapshot(context, envelope, strategy) {
64
64
  void pending.catch(() => cache.delete(strategy));
65
65
  return pending;
66
66
  }
67
+ function assertDerivedPatternId(envelope, patternId) {
68
+ if (envelope.data.id !== patternId) {
69
+ throw new AccountDecodeError('scanPattern', envelope.address, new RangeError('The ScanPattern id contradicted its derived seeds.'), `ScanPattern ${envelope.address} stores id ${String(envelope.data.id)}, not derived id ${String(patternId)}. Verify the configured cluster and pinned PDA recipe before retrying.`);
70
+ }
71
+ }
67
72
  /** Derives and reads one required ScanPattern for the configured Game.
68
73
  * @example
69
74
  * ```ts
@@ -75,9 +80,7 @@ export async function getScanPattern(context, patternId, options) {
75
80
  const game = requireGameAddress(context);
76
81
  const address = await deriveScanPatternAddress(game, patternId);
77
82
  const envelope = await context.data.read(scanPatternAccountDefinition, address, options);
78
- if (envelope.data.id !== patternId) {
79
- throw new AccountDecodeError('scanPattern', address, new RangeError('The ScanPattern id contradicted its derived seeds.'), `ScanPattern ${address} stores id ${String(envelope.data.id)}, not derived id ${String(patternId)}. Verify the configured cluster and pinned PDA recipe before retrying.`);
80
- }
83
+ assertDerivedPatternId(envelope, patternId);
81
84
  return patternSnapshot(context, envelope, 'derived');
82
85
  }
83
86
  /** Derives and reads one optional ScanPattern for the configured Game.
@@ -93,9 +96,7 @@ export async function maybeGetScanPattern(context, patternId, options) {
93
96
  const [envelope] = await context.data.readMany(scanPatternAccountDefinition, [address], options);
94
97
  if (envelope === undefined)
95
98
  return undefined;
96
- if (envelope.data.id !== patternId) {
97
- throw new AccountDecodeError('scanPattern', address, new RangeError('The ScanPattern id contradicted its derived seeds.'));
98
- }
99
+ assertDerivedPatternId(envelope, patternId);
99
100
  return patternSnapshot(context, envelope, 'derived');
100
101
  }
101
102
  /** Discovers the configured Game's ScanPattern catalog with targeted filters.
@@ -137,9 +138,9 @@ export async function getFleetScanningState(context, address, options) {
137
138
  ownerProfile: entityRef('profile', envelope.data.ownerProfile),
138
139
  stats: {
139
140
  bonus: misc.scanBonus,
140
- cooldownSeconds: misc.scanCoolDownSeconds,
141
+ cooldownSeconds: misc.scanCoolDownSeconds.value,
141
142
  cost: misc.scanCost,
142
- power: misc.scanPower,
143
+ power: misc.scanPower.value,
143
144
  },
144
145
  }), metadata(envelope)));
145
146
  FLEET_SNAPSHOTS.set(envelope, snapshot);
@@ -204,4 +205,7 @@ export function deriveScanCooldownState(fleet, atUnixSeconds) {
204
205
  remainingSeconds: fleet.cooldownEndsAtUnixSeconds - atUnixSeconds,
205
206
  };
206
207
  }
208
+ export { getScanSignalForFleet, maybeGetScanSignalForFleet, getScanPatternPolicy, maybeGetScanPatternPolicy, getScanLootProfile, maybeGetScanLootProfile, } from './signals.js';
209
+ export { deriveScanSignalTiming, deriveScanRecoveryRange, } from './lifecycle.js';
210
+ export { deriveScanLootOdds, deriveCommittedScanLootOdds, deriveScanExhaustion, } from './odds.js';
207
211
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanning/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanning/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { ScanCoordinates, ScanSignalSnapshot, ScanSignalStatus } from './signals.js';
2
+ /** Explicit chain clock inputs; slots and Unix seconds are independent units.
3
+ * @example
4
+ * ```ts
5
+ * const clock: ScanSignalClock = { slot: 54_000_000n, unixSeconds: 1_790_000_000n };
6
+ * ```
7
+ */
8
+ export interface ScanSignalClock {
9
+ readonly slot: bigint;
10
+ readonly unixSeconds: bigint;
11
+ }
12
+ /** Timing observations from the fingerprinted client, not permission to execute a scan action.
13
+ * @example
14
+ * ```ts
15
+ * declare const result: ScanSignalTiming;
16
+ * console.log(result.entropy?.phase, result.cooldownRemainingSeconds);
17
+ * ```
18
+ */
19
+ export interface ScanSignalTiming {
20
+ readonly status: ScanSignalStatus | 'absent';
21
+ readonly cooldownRemainingSeconds: bigint;
22
+ readonly entropy: Readonly<{
23
+ phase: 'waiting' | 'ready' | 'expired';
24
+ readyAtSlot: bigint;
25
+ deadlineSlot: bigint;
26
+ slotsUntilReady: bigint;
27
+ }> | undefined;
28
+ readonly contactExpiry: Readonly<{
29
+ expired: boolean;
30
+ remainingSeconds: bigint;
31
+ }> | undefined;
32
+ toJSON(): unknown;
33
+ }
34
+ /** Exact geometric comparison; squared raw values use a 2^112 scale, not map units.
35
+ * No-contact means geometry is unavailable, not that an action is allowed.
36
+ * @example
37
+ * ```ts
38
+ * declare const result: ScanRecoveryRange;
39
+ * if (result.kind === 'contact') console.log(result.withinRange);
40
+ * ```
41
+ */
42
+ export type ScanRecoveryRange = (Readonly<{
43
+ kind: 'no-contact';
44
+ }> | Readonly<{
45
+ kind: 'contact';
46
+ withinRange: boolean;
47
+ distanceSquaredRaw: bigint;
48
+ radiusSquaredRaw: bigint;
49
+ }>) & {
50
+ toJSON(): unknown;
51
+ };
52
+ /** Projects signal cooldown, pending entropy and contact expiry using explicit clock values.
53
+ * Reveal starts at commitSlot + 10 and ends exclusively 256 slots later, matching
54
+ * the fingerprinted client. No network, polling, clock access or acknowledgement
55
+ * eligibility is implied; abandonment acknowledgement can shorten cooldown.
56
+ * @example
57
+ * ```ts
58
+ * declare const signal: ScanSignalSnapshot | undefined;
59
+ * const timing = deriveScanSignalTiming(signal, { slot: 54_000_000n, unixSeconds: 1_790_000_000n });
60
+ * console.log(timing.entropy?.phase);
61
+ * ```
62
+ */
63
+ export declare function deriveScanSignalTiming(signal: ScanSignalSnapshot | undefined, clock: ScanSignalClock): ScanSignalTiming;
64
+ /** Compares a contact's recovery radius with exact raw I8F56 coordinates, boundary included.
65
+ * Supply current raw I8F56 coordinates, not Fleet display coordinates or the
66
+ * original scan-attempt position. Never reconstruct exact bits from rounded values.
67
+ * Uses raw components only. This is geometry, not expiry, authority, capacity or
68
+ * instruction eligibility; an expired Contact still has measurable geometry.
69
+ * @example
70
+ * ```ts
71
+ * declare const signal: ScanSignalSnapshot | undefined, location: ScanCoordinates;
72
+ * const range = deriveScanRecoveryRange(signal, location);
73
+ * if (range.kind === 'contact') console.log(range.withinRange);
74
+ * ```
75
+ */
76
+ export declare function deriveScanRecoveryRange(signal: ScanSignalSnapshot | undefined, location: ScanCoordinates): ScanRecoveryRange;
77
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/scanning/lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AACD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,OAAO,EACZ,QAAQ,CAAC;QACP,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;QACvC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC,GACF,SAAS,CAAC;IACd,QAAQ,CAAC,aAAa,EACpB,QAAQ,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACvE,MAAM,IAAI,OAAO,CAAC;CACnB;AACD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC5B,QAAQ,CAAC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,GAChC,QAAQ,CAAC;IACP,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC,CACL,GAAG;IAAE,MAAM,IAAI,OAAO,CAAA;CAAE,CAAC;AAwB1B;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,KAAK,EAAE,eAAe,GACrB,gBAAgB,CAqClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,QAAQ,EAAE,eAAe,GACxB,iBAAiB,CAenB"}
@@ -0,0 +1,93 @@
1
+ import { SageSdkError, InvalidDerivationInputError } from '../client/errors.js';
2
+ import { attachJsonSerialization } from '../internal/json.js';
3
+ import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
4
+ function nonnegative(field, value) {
5
+ if (value < 0n)
6
+ throw new InvalidDerivationInputError(field, value, 'Supply a nonnegative slot or radius from a fresh scan snapshot before deriving scan timing or range.');
7
+ }
8
+ function required(value, field) {
9
+ if (value === undefined)
10
+ throw new SageSdkError('INVALID_DERIVATION_INPUT', `The scan signal is missing ${field} required by its state. Refetch the signal snapshot before deriving scan timing or range.`);
11
+ return value;
12
+ }
13
+ function remaining(end, now) {
14
+ return end > now ? end - now : 0n;
15
+ }
16
+ function finish(value) {
17
+ return freezeResolvedSnapshot(attachJsonSerialization(value));
18
+ }
19
+ /** Projects signal cooldown, pending entropy and contact expiry using explicit clock values.
20
+ * Reveal starts at commitSlot + 10 and ends exclusively 256 slots later, matching
21
+ * the fingerprinted client. No network, polling, clock access or acknowledgement
22
+ * eligibility is implied; abandonment acknowledgement can shorten cooldown.
23
+ * @example
24
+ * ```ts
25
+ * declare const signal: ScanSignalSnapshot | undefined;
26
+ * const timing = deriveScanSignalTiming(signal, { slot: 54_000_000n, unixSeconds: 1_790_000_000n });
27
+ * console.log(timing.entropy?.phase);
28
+ * ```
29
+ */
30
+ export function deriveScanSignalTiming(signal, clock) {
31
+ nonnegative('clock.slot', clock.slot);
32
+ let entropy;
33
+ let contactExpiry;
34
+ if (signal?.status === 'pending-entropy') {
35
+ const { commitSlot } = required(signal.attempt, 'attempt');
36
+ nonnegative('attempt.commitSlot', commitSlot);
37
+ const readyAtSlot = commitSlot + 10n;
38
+ const deadlineSlot = readyAtSlot + 256n;
39
+ entropy = {
40
+ phase: clock.slot < readyAtSlot
41
+ ? 'waiting'
42
+ : clock.slot < deadlineSlot
43
+ ? 'ready'
44
+ : 'expired',
45
+ readyAtSlot,
46
+ deadlineSlot,
47
+ slotsUntilReady: remaining(readyAtSlot, clock.slot),
48
+ };
49
+ }
50
+ if (signal?.status === 'contact') {
51
+ const { expiresAtUnixSeconds } = required(signal.contact, 'contact');
52
+ contactExpiry = {
53
+ expired: clock.unixSeconds >= expiresAtUnixSeconds,
54
+ remainingSeconds: remaining(expiresAtUnixSeconds, clock.unixSeconds),
55
+ };
56
+ }
57
+ return finish({
58
+ status: signal?.status ?? 'absent',
59
+ cooldownRemainingSeconds: signal === undefined
60
+ ? 0n
61
+ : remaining(signal.cooldownEndsAtUnixSeconds, clock.unixSeconds),
62
+ entropy,
63
+ contactExpiry,
64
+ });
65
+ }
66
+ /** Compares a contact's recovery radius with exact raw I8F56 coordinates, boundary included.
67
+ * Supply current raw I8F56 coordinates, not Fleet display coordinates or the
68
+ * original scan-attempt position. Never reconstruct exact bits from rounded values.
69
+ * Uses raw components only. This is geometry, not expiry, authority, capacity or
70
+ * instruction eligibility; an expired Contact still has measurable geometry.
71
+ * @example
72
+ * ```ts
73
+ * declare const signal: ScanSignalSnapshot | undefined, location: ScanCoordinates;
74
+ * const range = deriveScanRecoveryRange(signal, location);
75
+ * if (range.kind === 'contact') console.log(range.withinRange);
76
+ * ```
77
+ */
78
+ export function deriveScanRecoveryRange(signal, location) {
79
+ if (signal?.status !== 'contact')
80
+ return finish({ kind: 'no-contact' });
81
+ const { target, targetRadius } = required(signal.contact, 'contact');
82
+ nonnegative('contact.targetRadius.raw', targetRadius.raw);
83
+ const dx = location.x.raw - target.x.raw, dy = location.y.raw - target.y.raw;
84
+ const distanceSquaredRaw = dx * dx + dy * dy;
85
+ const radiusSquaredRaw = targetRadius.raw * targetRadius.raw;
86
+ return finish({
87
+ kind: 'contact',
88
+ withinRange: distanceSquaredRaw <= radiusSquaredRaw,
89
+ distanceSquaredRaw,
90
+ radiusSquaredRaw,
91
+ });
92
+ }
93
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/scanning/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import type { ScanPatternPolicySnapshot, ScanLootProfileSnapshot, ScanSignalSnapshot } from './signals.js';
2
+ type Policy = ScanPatternPolicySnapshot;
3
+ type Profile = ScanLootProfileSnapshot;
4
+ type Row = Profile['loot'][number];
5
+ type Focus = Row['category'];
6
+ type UnavailableReason = 'missing-policy' | 'missing-loot-profile' | 'unsupported-version' | 'unsupported-pattern' | 'unsupported-loot-layout' | 'game-mismatch' | 'inactive-policy' | 'inactive-loot-profile' | 'pattern-research-locked' | 'region-research-locked' | 'focus-not-allowed' | 'empty-weighted-pool' | 'signal-not-pending' | 'committed-configuration-mismatch';
7
+ type Exclusion = 'pattern' | 'rarity' | 'value-budget' | 'focus' | 'research' | 'not-committed';
8
+ type Provenance = Readonly<{
9
+ policy: Readonly<Pick<Policy, 'address' | 'game' | 'patternId' | 'revision' | 'contentFingerprint'>> | undefined;
10
+ lootProfile: Readonly<Pick<Profile, 'address' | 'game' | 'regionId' | 'revision' | 'contentFingerprint'>> | undefined;
11
+ signal: Readonly<Pick<ScanSignalSnapshot, 'address' | 'sequence'>> | undefined;
12
+ }>;
13
+ type Share = Readonly<{
14
+ cargo: Row['cargo'];
15
+ weight: bigint;
16
+ conditionalProbability: number;
17
+ perScanProbability: number;
18
+ }>;
19
+ /** Explicit eligibility knowledge for prospective client estimates. Empty tag arrays mean known none.
20
+ * Regional requirements must describe the supplied loot profile's region. Focus defaults to any.
21
+ * @example
22
+ * ```ts
23
+ * const options: ScanLootOddsOptions = { unlockedResearchTagIds: [12], requiredRegionResearchTagIds: [], exhaustionBasisPoints: 0 };
24
+ * ```
25
+ */
26
+ export interface ScanLootOddsOptions {
27
+ readonly unlockedResearchTagIds: readonly number[];
28
+ readonly requiredRegionResearchTagIds: readonly number[];
29
+ readonly exhaustionBasisPoints: number;
30
+ readonly focus?: Focus;
31
+ }
32
+ /** Client-derived selection estimates, never program-verified probabilities or recovery quantities.
33
+ * Unavailable results deliberately contain no probability fields. Conditional shares remain meaningful
34
+ * when contact probability is zero. Probabilities are numeric fractions from zero through one.
35
+ * @example
36
+ * ```ts
37
+ * declare const odds: ScanLootOdds;
38
+ * if (odds.status === 'available') console.log(odds.resources[0]?.perScanProbability);
39
+ * ```
40
+ */
41
+ export type ScanLootOdds = Readonly<{
42
+ kind: 'client-derived-estimate';
43
+ basis: 'prospective' | 'committed';
44
+ provenance: Provenance;
45
+ toJSON(): unknown;
46
+ }> & (Readonly<{
47
+ status: 'unavailable';
48
+ reasons: readonly UnavailableReason[];
49
+ }> | Readonly<{
50
+ status: 'available';
51
+ contactChanceBasisPoints: number;
52
+ contactProbability: number;
53
+ noContactProbability: number;
54
+ totalWeight: bigint;
55
+ eligibleRows: readonly (Share & Readonly<{
56
+ rowIndex: number;
57
+ }>)[];
58
+ excludedRows: readonly Readonly<{
59
+ rowIndex: number;
60
+ reasons: readonly Exclusion[];
61
+ }>[];
62
+ resources: readonly Share[];
63
+ }>);
64
+ /** Client-derived exhaustion from an explicit clock and retained recovery history.
65
+ * @example
66
+ * ```ts
67
+ * declare const exhaustion: ScanExhaustion;
68
+ * console.log(exhaustion.exhaustionBasisPoints, exhaustion.effectiveRecoveries);
69
+ * ```
70
+ */
71
+ export interface ScanExhaustion {
72
+ readonly kind: 'client-derived-estimate';
73
+ readonly exhaustionBasisPoints: number;
74
+ readonly effectiveRecoveries: number;
75
+ toJSON(): unknown;
76
+ }
77
+ /** Estimates prospective contact and cargo-selection odds using the fingerprinted client's eligibility rules.
78
+ * Requires explicit research and exhaustion knowledge. This is not full scan-launch readiness:
79
+ * permissions, costs, Fleet state, cooldown, target and recovery capacity are outside this calculation.
80
+ * @example
81
+ * ```ts
82
+ * declare const policy: ScanPatternPolicySnapshot, loot: ScanLootProfileSnapshot;
83
+ * const odds = deriveScanLootOdds(policy, loot, { unlockedResearchTagIds: [], requiredRegionResearchTagIds: [], exhaustionBasisPoints: 0 });
84
+ * ```
85
+ */
86
+ export declare function deriveScanLootOdds(policy: Policy | undefined, profile: Profile | undefined, options: ScanLootOddsOptions): ScanLootOdds;
87
+ /** Estimates a pending signal's recorded draw using its committed rows and contact chance.
88
+ * Revisions AND full fingerprints must match. Current activity, focus and research do not
89
+ * replace committed eligibility; terminal signals are not random forecasts.
90
+ * @example
91
+ * ```ts
92
+ * declare const signal: ScanSignalSnapshot, policy: ScanPatternPolicySnapshot, loot: ScanLootProfileSnapshot;
93
+ * const odds = deriveCommittedScanLootOdds(signal, policy, loot);
94
+ * ```
95
+ */
96
+ export declare function deriveCommittedScanLootOdds(signal: ScanSignalSnapshot | undefined, policy: Policy | undefined, profile: Profile | undefined): ScanLootOdds;
97
+ /** Applies the client exhaustion decay rule with explicit region and Unix seconds, without clock reads.
98
+ * An absent signal means known absence of recovery history, not an unknown/unread signal.
99
+ * Another region, disabled decay or a clock before the last recovery produce zero exhaustion.
100
+ * @example
101
+ * ```ts
102
+ * declare const policy: ScanPatternPolicySnapshot, signal: ScanSignalSnapshot | undefined;
103
+ * const exhaustion = deriveScanExhaustion(policy, signal, { regionId: 3, unixSeconds: 1_790_000_000n });
104
+ * ```
105
+ */
106
+ export declare function deriveScanExhaustion(policy: Policy, signal: ScanSignalSnapshot | undefined, options: Readonly<{
107
+ regionId: number;
108
+ unixSeconds: bigint;
109
+ }>): ScanExhaustion;
110
+ export {};
111
+ //# sourceMappingURL=odds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odds.d.ts","sourceRoot":"","sources":["../../src/scanning/odds.ts"],"names":[],"mappings":"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"}