@aephia/atlas-kit 0.6.0-next.99 → 0.6.0

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 (761) hide show
  1. package/dist/cargo/actions/deposit.d.ts +4 -1
  2. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  3. package/dist/cargo/actions/deposit.js +56 -133
  4. package/dist/cargo/actions/deposit.js.map +1 -1
  5. package/dist/cargo/actions/index.d.ts +14 -7
  6. package/dist/cargo/actions/index.d.ts.map +1 -1
  7. package/dist/cargo/actions/index.js +101 -89
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  10. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  11. package/dist/cargo/actions/wallet-context.js +118 -7
  12. package/dist/cargo/actions/wallet-context.js.map +1 -1
  13. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  14. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  15. package/dist/cargo/actions/wallet-token.js +0 -45
  16. package/dist/cargo/actions/wallet-token.js.map +1 -1
  17. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  18. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  19. package/dist/cargo/actions/withdrawal.js +37 -163
  20. package/dist/cargo/actions/withdrawal.js.map +1 -1
  21. package/dist/cargo/index.d.ts.map +1 -1
  22. package/dist/cargo/index.js +2 -10
  23. package/dist/cargo/index.js.map +1 -1
  24. package/dist/claim-stakes/actions/index.d.ts +80 -14
  25. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  26. package/dist/claim-stakes/actions/index.js +660 -709
  27. package/dist/claim-stakes/actions/index.js.map +1 -1
  28. package/dist/claim-stakes/index.d.ts +8 -6
  29. package/dist/claim-stakes/index.d.ts.map +1 -1
  30. package/dist/claim-stakes/index.js +12 -18
  31. package/dist/claim-stakes/index.js.map +1 -1
  32. package/dist/client/context.d.ts.map +1 -1
  33. package/dist/client/context.js +353 -37
  34. package/dist/client/context.js.map +1 -1
  35. package/dist/client/contracts.d.ts +54 -1
  36. package/dist/client/contracts.d.ts.map +1 -1
  37. package/dist/client/deployments.d.ts +17 -0
  38. package/dist/client/deployments.d.ts.map +1 -1
  39. package/dist/client/deployments.js +17 -0
  40. package/dist/client/deployments.js.map +1 -1
  41. package/dist/client/index.d.ts +22 -1
  42. package/dist/client/index.d.ts.map +1 -1
  43. package/dist/client/index.js +21 -0
  44. package/dist/client/index.js.map +1 -1
  45. package/dist/client/rpc-subscription-provider.d.ts +2 -0
  46. package/dist/client/rpc-subscription-provider.d.ts.map +1 -1
  47. package/dist/client/rpc-subscription-provider.js +135 -101
  48. package/dist/client/rpc-subscription-provider.js.map +1 -1
  49. package/dist/combat/actions/index.d.ts +30 -12
  50. package/dist/combat/actions/index.d.ts.map +1 -1
  51. package/dist/combat/actions/index.js +264 -252
  52. package/dist/combat/actions/index.js.map +1 -1
  53. package/dist/combat/index.d.ts +25 -8
  54. package/dist/combat/index.d.ts.map +1 -1
  55. package/dist/combat/index.js +21 -18
  56. package/dist/combat/index.js.map +1 -1
  57. package/dist/crafting/actions/fee-rate.d.ts +47 -0
  58. package/dist/crafting/actions/fee-rate.d.ts.map +1 -0
  59. package/dist/crafting/actions/fee-rate.js +58 -0
  60. package/dist/crafting/actions/fee-rate.js.map +1 -0
  61. package/dist/crafting/actions/index.d.ts +28 -28
  62. package/dist/crafting/actions/index.d.ts.map +1 -1
  63. package/dist/crafting/actions/index.js +243 -314
  64. package/dist/crafting/actions/index.js.map +1 -1
  65. package/dist/crafting/estimate.d.ts +101 -0
  66. package/dist/crafting/estimate.d.ts.map +1 -0
  67. package/dist/crafting/estimate.js +108 -0
  68. package/dist/crafting/estimate.js.map +1 -0
  69. package/dist/crafting/index.d.ts +6 -5
  70. package/dist/crafting/index.d.ts.map +1 -1
  71. package/dist/crafting/index.js +6 -13
  72. package/dist/crafting/index.js.map +1 -1
  73. package/dist/factions/actions/index.d.ts +1 -1
  74. package/dist/factions/actions/index.d.ts.map +1 -1
  75. package/dist/factions/actions/index.js +5 -4
  76. package/dist/factions/actions/index.js.map +1 -1
  77. package/dist/factions/index.d.ts +18 -1
  78. package/dist/factions/index.d.ts.map +1 -1
  79. package/dist/factions/index.js +24 -18
  80. package/dist/factions/index.js.map +1 -1
  81. package/dist/fleets/actions/add-ship.d.ts +18 -5
  82. package/dist/fleets/actions/add-ship.d.ts.map +1 -1
  83. package/dist/fleets/actions/add-ship.js +35 -48
  84. package/dist/fleets/actions/add-ship.js.map +1 -1
  85. package/dist/fleets/actions/create-fleet.d.ts +1 -1
  86. package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
  87. package/dist/fleets/actions/create-fleet.js +8 -38
  88. package/dist/fleets/actions/create-fleet.js.map +1 -1
  89. package/dist/fleets/actions/crew-transfer.d.ts +8 -4
  90. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
  91. package/dist/fleets/actions/crew-transfer.js +27 -42
  92. package/dist/fleets/actions/crew-transfer.js.map +1 -1
  93. package/dist/fleets/actions/deployment-storage.d.ts +161 -0
  94. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -0
  95. package/dist/fleets/actions/deployment-storage.js +297 -0
  96. package/dist/fleets/actions/deployment-storage.js.map +1 -0
  97. package/dist/fleets/actions/disband.d.ts +42 -0
  98. package/dist/fleets/actions/disband.d.ts.map +1 -0
  99. package/dist/fleets/actions/disband.js +107 -0
  100. package/dist/fleets/actions/disband.js.map +1 -0
  101. package/dist/fleets/actions/index.d.ts +55 -11
  102. package/dist/fleets/actions/index.d.ts.map +1 -1
  103. package/dist/fleets/actions/index.js +282 -235
  104. package/dist/fleets/actions/index.js.map +1 -1
  105. package/dist/fleets/actions/respawn.d.ts +1 -1
  106. package/dist/fleets/actions/respawn.d.ts.map +1 -1
  107. package/dist/fleets/actions/respawn.js +8 -37
  108. package/dist/fleets/actions/respawn.js.map +1 -1
  109. package/dist/fleets/actions/ship-import.d.ts +1 -1
  110. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  111. package/dist/fleets/actions/ship-import.js +39 -91
  112. package/dist/fleets/actions/ship-import.js.map +1 -1
  113. package/dist/fleets/actions/sync.d.ts +24 -0
  114. package/dist/fleets/actions/sync.d.ts.map +1 -0
  115. package/dist/fleets/actions/sync.js +55 -0
  116. package/dist/fleets/actions/sync.js.map +1 -0
  117. package/dist/fleets/composition-stats.d.ts +101 -0
  118. package/dist/fleets/composition-stats.d.ts.map +1 -0
  119. package/dist/fleets/composition-stats.js +354 -0
  120. package/dist/fleets/composition-stats.js.map +1 -0
  121. package/dist/fleets/cooldown.d.ts +7 -4
  122. package/dist/fleets/cooldown.d.ts.map +1 -1
  123. package/dist/fleets/cooldown.js +11 -6
  124. package/dist/fleets/cooldown.js.map +1 -1
  125. package/dist/fleets/index.d.ts +1 -0
  126. package/dist/fleets/index.d.ts.map +1 -1
  127. package/dist/fleets/index.js +3 -10
  128. package/dist/fleets/index.js.map +1 -1
  129. package/dist/fleets/movement-arithmetic.d.ts.map +1 -1
  130. package/dist/fleets/movement-arithmetic.js +4 -0
  131. package/dist/fleets/movement-arithmetic.js.map +1 -1
  132. package/dist/fleets/subwarp-estimate.d.ts +3 -1
  133. package/dist/fleets/subwarp-estimate.d.ts.map +1 -1
  134. package/dist/fleets/subwarp-estimate.js +3 -1
  135. package/dist/fleets/subwarp-estimate.js.map +1 -1
  136. package/dist/fleets/warp-lane-policy.d.ts +13 -7
  137. package/dist/fleets/warp-lane-policy.d.ts.map +1 -1
  138. package/dist/fleets/warp-lane-policy.js +19 -7
  139. package/dist/fleets/warp-lane-policy.js.map +1 -1
  140. package/dist/identity/actions/create-profile.d.ts +1 -1
  141. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  142. package/dist/identity/actions/create-profile.js +2 -2
  143. package/dist/identity/actions/create-profile.js.map +1 -1
  144. package/dist/identity/actions/index.d.ts +2 -1
  145. package/dist/identity/actions/index.d.ts.map +1 -1
  146. package/dist/identity/actions/index.js +6 -4
  147. package/dist/identity/actions/index.js.map +1 -1
  148. package/dist/identity/actions/research-unlock.d.ts +61 -0
  149. package/dist/identity/actions/research-unlock.d.ts.map +1 -0
  150. package/dist/identity/actions/research-unlock.js +166 -0
  151. package/dist/identity/actions/research-unlock.js.map +1 -0
  152. package/dist/identity/index.d.ts +62 -2
  153. package/dist/identity/index.d.ts.map +1 -1
  154. package/dist/identity/index.js +63 -12
  155. package/dist/identity/index.js.map +1 -1
  156. package/dist/index.d.ts +2 -1
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +4 -4
  159. package/dist/index.js.map +1 -1
  160. package/dist/internal/c4/account-decoding.d.ts +49 -0
  161. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  162. package/dist/internal/c4/account-decoding.js +74 -0
  163. package/dist/internal/c4/account-decoding.js.map +1 -0
  164. package/dist/internal/c4/career-xp.d.ts +58 -0
  165. package/dist/internal/c4/career-xp.d.ts.map +1 -0
  166. package/dist/internal/c4/career-xp.js +80 -0
  167. package/dist/internal/c4/career-xp.js.map +1 -0
  168. package/dist/internal/c4/cargo-instructions.d.ts +24 -0
  169. package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
  170. package/dist/internal/c4/cargo-instructions.js +30 -0
  171. package/dist/internal/c4/cargo-instructions.js.map +1 -0
  172. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  173. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  174. package/dist/internal/c4/cargo-pod.js +13 -0
  175. package/dist/internal/c4/cargo-pod.js.map +1 -0
  176. package/dist/internal/c4/character-modifier.d.ts +1 -1
  177. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  178. package/dist/internal/c4/character.d.ts +157 -0
  179. package/dist/internal/c4/character.d.ts.map +1 -0
  180. package/dist/internal/c4/character.js +64 -0
  181. package/dist/internal/c4/character.js.map +1 -0
  182. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  183. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  184. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  185. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  186. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  187. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  188. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -0
  189. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  190. package/dist/internal/c4/claim-stake-definitions.js +6 -2
  191. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  192. package/dist/internal/c4/claim-stake-plots.d.ts +17 -0
  193. package/dist/internal/c4/claim-stake-plots.d.ts.map +1 -0
  194. package/dist/internal/c4/claim-stake-plots.js +29 -0
  195. package/dist/internal/c4/claim-stake-plots.js.map +1 -0
  196. package/dist/internal/c4/claim-stake-standing.d.ts +80 -0
  197. package/dist/internal/c4/claim-stake-standing.d.ts.map +1 -0
  198. package/dist/internal/c4/claim-stake-standing.js +61 -0
  199. package/dist/internal/c4/claim-stake-standing.js.map +1 -0
  200. package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
  201. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
  202. package/dist/internal/c4/claim-stake-storage.js +207 -0
  203. package/dist/internal/c4/claim-stake-storage.js.map +1 -0
  204. package/dist/internal/c4/claim-stake.d.ts +9 -6
  205. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  206. package/dist/internal/c4/claim-stake.js +24 -56
  207. package/dist/internal/c4/claim-stake.js.map +1 -1
  208. package/dist/internal/c4/combat-storage.d.ts +20 -0
  209. package/dist/internal/c4/combat-storage.d.ts.map +1 -0
  210. package/dist/internal/c4/combat-storage.js +43 -0
  211. package/dist/internal/c4/combat-storage.js.map +1 -0
  212. package/dist/internal/c4/combat.d.ts +1 -55
  213. package/dist/internal/c4/combat.d.ts.map +1 -1
  214. package/dist/internal/c4/combat.js +16 -180
  215. package/dist/internal/c4/combat.js.map +1 -1
  216. package/dist/internal/c4/crafting-storage.d.ts +20 -0
  217. package/dist/internal/c4/crafting-storage.d.ts.map +1 -0
  218. package/dist/internal/c4/crafting-storage.js +54 -0
  219. package/dist/internal/c4/crafting-storage.js.map +1 -0
  220. package/dist/internal/c4/crafting.d.ts +9 -1
  221. package/dist/internal/c4/crafting.d.ts.map +1 -1
  222. package/dist/internal/c4/crafting.js +38 -98
  223. package/dist/internal/c4/crafting.js.map +1 -1
  224. package/dist/internal/c4/currency-cache.d.ts +1 -1
  225. package/dist/internal/c4/currency-cache.d.ts.map +1 -1
  226. package/dist/internal/c4/currency-cache.js +6 -9
  227. package/dist/internal/c4/currency-cache.js.map +1 -1
  228. package/dist/internal/c4/discriminators.d.ts +93 -0
  229. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  230. package/dist/internal/c4/discriminators.js +190 -0
  231. package/dist/internal/c4/discriminators.js.map +1 -0
  232. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
  233. package/dist/internal/c4/faction-epoch-meter.js +5 -10
  234. package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
  235. package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
  236. package/dist/internal/c4/faction-treasury.js +11 -18
  237. package/dist/internal/c4/faction-treasury.js.map +1 -1
  238. package/dist/internal/c4/faction.d.ts +21 -0
  239. package/dist/internal/c4/faction.d.ts.map +1 -0
  240. package/dist/internal/c4/faction.js +23 -0
  241. package/dist/internal/c4/faction.js.map +1 -0
  242. package/dist/internal/c4/factions.d.ts +31 -3
  243. package/dist/internal/c4/factions.d.ts.map +1 -1
  244. package/dist/internal/c4/factions.js +103 -104
  245. package/dist/internal/c4/factions.js.map +1 -1
  246. package/dist/internal/c4/fleet-creation.d.ts +9 -2
  247. package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
  248. package/dist/internal/c4/fleet-creation.js +15 -18
  249. package/dist/internal/c4/fleet-creation.js.map +1 -1
  250. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  251. package/dist/internal/c4/fleet-crew-binding.js +21 -49
  252. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  253. package/dist/internal/c4/fleet-disband-layout.d.ts +7 -0
  254. package/dist/internal/c4/fleet-disband-layout.d.ts.map +1 -0
  255. package/dist/internal/c4/fleet-disband-layout.js +7 -0
  256. package/dist/internal/c4/fleet-disband-layout.js.map +1 -0
  257. package/dist/internal/c4/fleet-disband.d.ts +41 -0
  258. package/dist/internal/c4/fleet-disband.d.ts.map +1 -0
  259. package/dist/internal/c4/fleet-disband.js +86 -0
  260. package/dist/internal/c4/fleet-disband.js.map +1 -0
  261. package/dist/internal/c4/fleet-points.d.ts +3 -0
  262. package/dist/internal/c4/fleet-points.d.ts.map +1 -0
  263. package/dist/internal/c4/fleet-points.js +8 -0
  264. package/dist/internal/c4/fleet-points.js.map +1 -0
  265. package/dist/internal/c4/fleet-ship-assembly.d.ts +20 -5
  266. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
  267. package/dist/internal/c4/fleet-ship-assembly.js +62 -10
  268. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
  269. package/dist/internal/c4/fleet-storage.d.ts +44 -0
  270. package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
  271. package/dist/internal/c4/fleet-storage.js +108 -0
  272. package/dist/internal/c4/fleet-storage.js.map +1 -0
  273. package/dist/internal/c4/fleet-sync.d.ts +5 -0
  274. package/dist/internal/c4/fleet-sync.d.ts.map +1 -0
  275. package/dist/internal/c4/fleet-sync.js +15 -0
  276. package/dist/internal/c4/fleet-sync.js.map +1 -0
  277. package/dist/internal/c4/fleet.d.ts +20 -5
  278. package/dist/internal/c4/fleet.d.ts.map +1 -1
  279. package/dist/internal/c4/fleet.js +24 -84
  280. package/dist/internal/c4/fleet.js.map +1 -1
  281. package/dist/internal/c4/game.d.ts +76 -21
  282. package/dist/internal/c4/game.d.ts.map +1 -1
  283. package/dist/internal/c4/game.js +127 -116
  284. package/dist/internal/c4/game.js.map +1 -1
  285. package/dist/internal/c4/identity.d.ts +2 -153
  286. package/dist/internal/c4/identity.d.ts.map +1 -1
  287. package/dist/internal/c4/identity.js +19 -126
  288. package/dist/internal/c4/identity.js.map +1 -1
  289. package/dist/internal/c4/local-market-order.d.ts +4 -6
  290. package/dist/internal/c4/local-market-order.d.ts.map +1 -1
  291. package/dist/internal/c4/local-market-order.js +5 -6
  292. package/dist/internal/c4/local-market-order.js.map +1 -1
  293. package/dist/internal/c4/loot-layout.js +1 -1
  294. package/dist/internal/c4/loot-layout.js.map +1 -1
  295. package/dist/internal/c4/loot.d.ts +89 -0
  296. package/dist/internal/c4/loot.d.ts.map +1 -0
  297. package/dist/internal/c4/loot.js +109 -0
  298. package/dist/internal/c4/loot.js.map +1 -0
  299. package/dist/internal/c4/loyalty.d.ts +7 -3
  300. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  301. package/dist/internal/c4/loyalty.js +41 -130
  302. package/dist/internal/c4/loyalty.js.map +1 -1
  303. package/dist/internal/c4/market-storage.d.ts +25 -0
  304. package/dist/internal/c4/market-storage.d.ts.map +1 -0
  305. package/dist/internal/c4/market-storage.js +53 -0
  306. package/dist/internal/c4/market-storage.js.map +1 -0
  307. package/dist/internal/c4/market.d.ts +3 -0
  308. package/dist/internal/c4/market.d.ts.map +1 -1
  309. package/dist/internal/c4/market.js +20 -76
  310. package/dist/internal/c4/market.js.map +1 -1
  311. package/dist/internal/c4/mining-instructions.d.ts +1 -1
  312. package/dist/internal/c4/mining-instructions.d.ts.map +1 -1
  313. package/dist/internal/c4/mining-instructions.js +1 -1
  314. package/dist/internal/c4/mining-instructions.js.map +1 -1
  315. package/dist/internal/c4/open-signal.d.ts +1 -1
  316. package/dist/internal/c4/open-signal.d.ts.map +1 -1
  317. package/dist/internal/c4/open-signal.js +1 -1
  318. package/dist/internal/c4/open-signal.js.map +1 -1
  319. package/dist/internal/c4/pda.d.ts +49 -1
  320. package/dist/internal/c4/pda.d.ts.map +1 -1
  321. package/dist/internal/c4/pda.js +122 -17
  322. package/dist/internal/c4/pda.js.map +1 -1
  323. package/dist/internal/c4/profile-faction.d.ts +2 -1
  324. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  325. package/dist/internal/c4/profile-faction.js +36 -72
  326. package/dist/internal/c4/profile-faction.js.map +1 -1
  327. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  328. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  329. package/dist/internal/c4/profile-permissions.js +16 -1
  330. package/dist/internal/c4/profile-permissions.js.map +1 -1
  331. package/dist/internal/c4/rewards.d.ts +1 -34
  332. package/dist/internal/c4/rewards.d.ts.map +1 -1
  333. package/dist/internal/c4/rewards.js +23 -170
  334. package/dist/internal/c4/rewards.js.map +1 -1
  335. package/dist/internal/c4/runtime-bindings.d.ts +1 -1
  336. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  337. package/dist/internal/c4/runtime-bindings.js +1 -1
  338. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  339. package/dist/internal/c4/scan-lifecycle.d.ts +21 -3
  340. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  341. package/dist/internal/c4/scan-lifecycle.js +35 -44
  342. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  343. package/dist/internal/c4/scan-storage.d.ts +7 -0
  344. package/dist/internal/c4/scan-storage.d.ts.map +1 -0
  345. package/dist/internal/c4/scan-storage.js +10 -0
  346. package/dist/internal/c4/scan-storage.js.map +1 -0
  347. package/dist/internal/c4/scanning.d.ts +3 -13
  348. package/dist/internal/c4/scanning.d.ts.map +1 -1
  349. package/dist/internal/c4/scanning.js +25 -75
  350. package/dist/internal/c4/scanning.js.map +1 -1
  351. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  352. package/dist/internal/c4/ship-stats.js +24 -26
  353. package/dist/internal/c4/ship-stats.js.map +1 -1
  354. package/dist/internal/c4/starbase.d.ts.map +1 -1
  355. package/dist/internal/c4/starbase.js +24 -96
  356. package/dist/internal/c4/starbase.js.map +1 -1
  357. package/dist/internal/c4/stimulant.d.ts +26 -0
  358. package/dist/internal/c4/stimulant.d.ts.map +1 -0
  359. package/dist/internal/c4/stimulant.js +36 -0
  360. package/dist/internal/c4/stimulant.js.map +1 -0
  361. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  362. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  363. package/dist/internal/c4/world.d.ts +6 -2
  364. package/dist/internal/c4/world.d.ts.map +1 -1
  365. package/dist/internal/c4/world.js +32 -107
  366. package/dist/internal/c4/world.js.map +1 -1
  367. package/dist/internal/fleet-route.d.ts +12 -0
  368. package/dist/internal/fleet-route.d.ts.map +1 -0
  369. package/dist/internal/fleet-route.js +11 -0
  370. package/dist/internal/fleet-route.js.map +1 -0
  371. package/dist/internal/fleet.d.ts +3 -3
  372. package/dist/internal/fleet.d.ts.map +1 -1
  373. package/dist/internal/fleet.js +1 -5
  374. package/dist/internal/fleet.js.map +1 -1
  375. package/dist/internal/loyalty-atlas-bank-state.d.ts +3 -2
  376. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -1
  377. package/dist/internal/loyalty-atlas-bank-state.js +4 -3
  378. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -1
  379. package/dist/internal/planning/account-state.d.ts +6 -0
  380. package/dist/internal/planning/account-state.d.ts.map +1 -1
  381. package/dist/internal/planning/account-state.js +13 -0
  382. package/dist/internal/planning/account-state.js.map +1 -1
  383. package/dist/internal/planning/arrival-guards.d.ts +0 -1
  384. package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
  385. package/dist/internal/planning/arrival-guards.js +3 -18
  386. package/dist/internal/planning/arrival-guards.js.map +1 -1
  387. package/dist/internal/planning/authorization-adapter.d.ts +34 -11
  388. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  389. package/dist/internal/planning/authorization-adapter.js +116 -12
  390. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  391. package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
  392. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
  393. package/dist/internal/planning/cargo-storage-actions.js +97 -0
  394. package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
  395. package/dist/internal/planning/character-access.d.ts +28 -0
  396. package/dist/internal/planning/character-access.d.ts.map +1 -0
  397. package/dist/internal/planning/character-access.js +41 -0
  398. package/dist/internal/planning/character-access.js.map +1 -0
  399. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
  400. package/dist/internal/planning/character-registration-guard.js +2 -1
  401. package/dist/internal/planning/character-registration-guard.js.map +1 -1
  402. package/dist/internal/planning/character-registration.d.ts.map +1 -1
  403. package/dist/internal/planning/character-registration.js +2 -1
  404. package/dist/internal/planning/character-registration.js.map +1 -1
  405. package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
  406. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
  407. package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
  408. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
  409. package/dist/internal/planning/combat-storage-actions.d.ts +9 -0
  410. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -0
  411. package/dist/internal/planning/combat-storage-actions.js +55 -0
  412. package/dist/internal/planning/combat-storage-actions.js.map +1 -0
  413. package/dist/internal/planning/crafting-storage-actions.d.ts +7 -0
  414. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -0
  415. package/dist/internal/planning/crafting-storage-actions.js +64 -0
  416. package/dist/internal/planning/crafting-storage-actions.js.map +1 -0
  417. package/dist/internal/planning/currency-cache-guard.d.ts +3 -1
  418. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
  419. package/dist/internal/planning/currency-cache-guard.js +47 -2
  420. package/dist/internal/planning/currency-cache-guard.js.map +1 -1
  421. package/dist/internal/planning/democracy-history.d.ts.map +1 -1
  422. package/dist/internal/planning/democracy-history.js +6 -15
  423. package/dist/internal/planning/democracy-history.js.map +1 -1
  424. package/dist/internal/planning/direct-options.d.ts +17 -0
  425. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  426. package/dist/internal/planning/direct-options.js +43 -0
  427. package/dist/internal/planning/direct-options.js.map +1 -0
  428. package/dist/internal/planning/disband-storage-actions.d.ts +9 -0
  429. package/dist/internal/planning/disband-storage-actions.d.ts.map +1 -0
  430. package/dist/internal/planning/disband-storage-actions.js +24 -0
  431. package/dist/internal/planning/disband-storage-actions.js.map +1 -0
  432. package/dist/internal/planning/faction-enrollment.d.ts +0 -2
  433. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  434. package/dist/internal/planning/faction-enrollment.js +0 -9
  435. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  436. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
  437. package/dist/internal/planning/fleet-arrival.js +10 -8
  438. package/dist/internal/planning/fleet-arrival.js.map +1 -1
  439. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
  440. package/dist/internal/planning/fleet-attack-xp.js +5 -11
  441. package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
  442. package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
  443. package/dist/internal/planning/fleet-creation.js +17 -36
  444. package/dist/internal/planning/fleet-creation.js.map +1 -1
  445. package/dist/internal/planning/fleet-crew-guard.d.ts +2 -1
  446. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
  447. package/dist/internal/planning/fleet-crew-guard.js +2 -1
  448. package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
  449. package/dist/internal/planning/fleet-crew-transfer.d.ts +1 -1
  450. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
  451. package/dist/internal/planning/fleet-crew-transfer.js +45 -24
  452. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
  453. package/dist/internal/planning/fleet-disband-guard.d.ts +12 -0
  454. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -0
  455. package/dist/internal/planning/fleet-disband-guard.js +54 -0
  456. package/dist/internal/planning/fleet-disband-guard.js.map +1 -0
  457. package/dist/internal/planning/fleet-disband.d.ts +36 -0
  458. package/dist/internal/planning/fleet-disband.d.ts.map +1 -0
  459. package/dist/internal/planning/fleet-disband.js +82 -0
  460. package/dist/internal/planning/fleet-disband.js.map +1 -0
  461. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +3 -3
  462. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
  463. package/dist/internal/planning/fleet-dock-funding-guard.js +87 -96
  464. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
  465. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
  466. package/dist/internal/planning/fleet-dock-funding.js +10 -0
  467. package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
  468. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
  469. package/dist/internal/planning/fleet-docking-guard.js +3 -1
  470. package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
  471. package/dist/internal/planning/fleet-docking.d.ts +17 -2
  472. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  473. package/dist/internal/planning/fleet-docking.js +83 -62
  474. package/dist/internal/planning/fleet-docking.js.map +1 -1
  475. package/dist/internal/planning/fleet-rental.d.ts +5 -0
  476. package/dist/internal/planning/fleet-rental.d.ts.map +1 -0
  477. package/dist/internal/planning/fleet-rental.js +9 -0
  478. package/dist/internal/planning/fleet-rental.js.map +1 -0
  479. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
  480. package/dist/internal/planning/fleet-respawn.js +10 -12
  481. package/dist/internal/planning/fleet-respawn.js.map +1 -1
  482. package/dist/internal/planning/fleet-ship-assembly.d.ts +2 -0
  483. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
  484. package/dist/internal/planning/fleet-ship-assembly.js +94 -64
  485. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
  486. package/dist/internal/planning/fleet-state.d.ts +25 -0
  487. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  488. package/dist/internal/planning/fleet-state.js +28 -0
  489. package/dist/internal/planning/fleet-state.js.map +1 -0
  490. package/dist/internal/planning/governance-fees.d.ts.map +1 -1
  491. package/dist/internal/planning/governance-fees.js +7 -15
  492. package/dist/internal/planning/governance-fees.js.map +1 -1
  493. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
  494. package/dist/internal/planning/local-market-order-funding.js +4 -2
  495. package/dist/internal/planning/local-market-order-funding.js.map +1 -1
  496. package/dist/internal/planning/local-market-order.d.ts +4 -4
  497. package/dist/internal/planning/local-market-order.d.ts.map +1 -1
  498. package/dist/internal/planning/local-market-order.js +82 -109
  499. package/dist/internal/planning/local-market-order.js.map +1 -1
  500. package/dist/internal/planning/market-storage-actions.d.ts +7 -0
  501. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -0
  502. package/dist/internal/planning/market-storage-actions.js +71 -0
  503. package/dist/internal/planning/market-storage-actions.js.map +1 -0
  504. package/dist/internal/planning/mining-stop.d.ts.map +1 -1
  505. package/dist/internal/planning/mining-stop.js +2 -1
  506. package/dist/internal/planning/mining-stop.js.map +1 -1
  507. package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
  508. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
  509. package/dist/internal/planning/mining-storage-actions.js +57 -0
  510. package/dist/internal/planning/mining-storage-actions.js.map +1 -0
  511. package/dist/internal/planning/movement-storage-actions.d.ts +7 -0
  512. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -0
  513. package/dist/internal/planning/movement-storage-actions.js +38 -0
  514. package/dist/internal/planning/movement-storage-actions.js.map +1 -0
  515. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
  516. package/dist/internal/planning/movement-xp-guard.js +3 -2
  517. package/dist/internal/planning/movement-xp-guard.js.map +1 -1
  518. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
  519. package/dist/internal/planning/open-signal-guard.js +2 -1
  520. package/dist/internal/planning/open-signal-guard.js.map +1 -1
  521. package/dist/internal/planning/open-signal.d.ts.map +1 -1
  522. package/dist/internal/planning/open-signal.js +16 -7
  523. package/dist/internal/planning/open-signal.js.map +1 -1
  524. package/dist/internal/planning/original-token.d.ts +40 -0
  525. package/dist/internal/planning/original-token.d.ts.map +1 -0
  526. package/dist/internal/planning/original-token.js +112 -0
  527. package/dist/internal/planning/original-token.js.map +1 -0
  528. package/dist/internal/planning/own-starbase-facts.d.ts +37 -0
  529. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  530. package/dist/internal/planning/own-starbase-facts.js +52 -0
  531. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  532. package/dist/internal/planning/plan-fields.d.ts +60 -0
  533. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  534. package/dist/internal/planning/plan-fields.js +159 -0
  535. package/dist/internal/planning/plan-fields.js.map +1 -0
  536. package/dist/internal/planning/plan-guards.d.ts +4 -0
  537. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  538. package/dist/internal/planning/plan-guards.js +184 -0
  539. package/dist/internal/planning/plan-guards.js.map +1 -0
  540. package/dist/internal/planning/profile-key.d.ts +13 -0
  541. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  542. package/dist/internal/planning/profile-key.js +20 -0
  543. package/dist/internal/planning/profile-key.js.map +1 -0
  544. package/dist/internal/planning/profile-storage-funding-guard.d.ts +29 -0
  545. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
  546. package/dist/internal/planning/profile-storage-funding-guard.js +115 -0
  547. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
  548. package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
  549. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
  550. package/dist/internal/planning/profile-storage-funding.js +58 -0
  551. package/dist/internal/planning/profile-storage-funding.js.map +1 -0
  552. package/dist/internal/planning/recipe-state.d.ts +4 -1
  553. package/dist/internal/planning/recipe-state.d.ts.map +1 -1
  554. package/dist/internal/planning/recipe-state.js +7 -4
  555. package/dist/internal/planning/recipe-state.js.map +1 -1
  556. package/dist/internal/planning/region-access.d.ts +30 -0
  557. package/dist/internal/planning/region-access.d.ts.map +1 -0
  558. package/dist/internal/planning/region-access.js +94 -0
  559. package/dist/internal/planning/region-access.js.map +1 -0
  560. package/dist/internal/planning/rent-catalog.d.ts +37 -0
  561. package/dist/internal/planning/rent-catalog.d.ts.map +1 -0
  562. package/dist/internal/planning/rent-catalog.js +165 -0
  563. package/dist/internal/planning/rent-catalog.js.map +1 -0
  564. package/dist/internal/planning/research-unlock.d.ts +69 -0
  565. package/dist/internal/planning/research-unlock.d.ts.map +1 -0
  566. package/dist/internal/planning/research-unlock.js +287 -0
  567. package/dist/internal/planning/research-unlock.js.map +1 -0
  568. package/dist/internal/planning/respawn-guards.js +2 -1
  569. package/dist/internal/planning/respawn-guards.js.map +1 -1
  570. package/dist/internal/planning/runtime-guards.d.ts +0 -2
  571. package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
  572. package/dist/internal/planning/runtime-guards.js +49 -29
  573. package/dist/internal/planning/runtime-guards.js.map +1 -1
  574. package/dist/internal/planning/scan-completion-guard.d.ts +6 -6
  575. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
  576. package/dist/internal/planning/scan-completion-guard.js +8 -7
  577. package/dist/internal/planning/scan-completion-guard.js.map +1 -1
  578. package/dist/internal/planning/scan-completion.d.ts.map +1 -1
  579. package/dist/internal/planning/scan-completion.js +9 -7
  580. package/dist/internal/planning/scan-completion.js.map +1 -1
  581. package/dist/internal/planning/scan-detect-guard.d.ts +1 -1
  582. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
  583. package/dist/internal/planning/scan-detect-guard.js +2 -2
  584. package/dist/internal/planning/scan-detect-guard.js.map +1 -1
  585. package/dist/internal/planning/scan-detect.d.ts +1 -1
  586. package/dist/internal/planning/scan-detect.d.ts.map +1 -1
  587. package/dist/internal/planning/scan-detect.js +10 -8
  588. package/dist/internal/planning/scan-detect.js.map +1 -1
  589. package/dist/internal/planning/scan-idle-scope.d.ts +5 -0
  590. package/dist/internal/planning/scan-idle-scope.d.ts.map +1 -0
  591. package/dist/internal/planning/scan-idle-scope.js +5 -0
  592. package/dist/internal/planning/scan-idle-scope.js.map +1 -0
  593. package/dist/internal/planning/scan-storage-actions.d.ts +9 -0
  594. package/dist/internal/planning/scan-storage-actions.d.ts.map +1 -0
  595. package/dist/internal/planning/scan-storage-actions.js +27 -0
  596. package/dist/internal/planning/scan-storage-actions.js.map +1 -0
  597. package/dist/internal/planning/ship-import-funding.js +3 -2
  598. package/dist/internal/planning/ship-import-funding.js.map +1 -1
  599. package/dist/internal/planning/ship-token.d.ts +1 -5
  600. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  601. package/dist/internal/planning/ship-token.js +0 -36
  602. package/dist/internal/planning/ship-token.js.map +1 -1
  603. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  604. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  605. package/dist/internal/planning/starbase-player-owner.js +17 -0
  606. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  607. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +7 -0
  608. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -0
  609. package/dist/internal/planning/starbase-player-recovery-guard.js +39 -0
  610. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -0
  611. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
  612. package/dist/internal/planning/starbase-system-guard.js +2 -1
  613. package/dist/internal/planning/starbase-system-guard.js.map +1 -1
  614. package/dist/internal/planning/starbase-system.d.ts +5 -2
  615. package/dist/internal/planning/starbase-system.d.ts.map +1 -1
  616. package/dist/internal/planning/starbase-system.js +6 -3
  617. package/dist/internal/planning/starbase-system.js.map +1 -1
  618. package/dist/internal/planning/storage-action-readers.d.ts +10 -0
  619. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
  620. package/dist/internal/planning/storage-action-readers.js +58 -0
  621. package/dist/internal/planning/storage-action-readers.js.map +1 -0
  622. package/dist/internal/planning/storage-actions.d.ts +89 -0
  623. package/dist/internal/planning/storage-actions.d.ts.map +1 -0
  624. package/dist/internal/planning/storage-actions.js +183 -0
  625. package/dist/internal/planning/storage-actions.js.map +1 -0
  626. package/dist/internal/planning/token-mint.d.ts.map +1 -1
  627. package/dist/internal/planning/token-mint.js +2 -1
  628. package/dist/internal/planning/token-mint.js.map +1 -1
  629. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  630. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  631. package/dist/internal/planning/wallet-starbase.js +39 -0
  632. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  633. package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
  634. package/dist/internal/planning/xp-runtime.js +16 -20
  635. package/dist/internal/planning/xp-runtime.js.map +1 -1
  636. package/dist/internal/read-meta.d.ts +12 -0
  637. package/dist/internal/read-meta.d.ts.map +1 -1
  638. package/dist/internal/read-meta.js +10 -0
  639. package/dist/internal/read-meta.js.map +1 -1
  640. package/dist/loyalty/actions/index.d.ts +1 -1
  641. package/dist/loyalty/actions/index.d.ts.map +1 -1
  642. package/dist/loyalty/actions/index.js +12 -43
  643. package/dist/loyalty/actions/index.js.map +1 -1
  644. package/dist/loyalty/index.d.ts +4 -0
  645. package/dist/loyalty/index.d.ts.map +1 -1
  646. package/dist/loyalty/index.js +19 -27
  647. package/dist/loyalty/index.js.map +1 -1
  648. package/dist/markets/actions/index.d.ts +1 -1
  649. package/dist/markets/actions/index.d.ts.map +1 -1
  650. package/dist/markets/actions/index.js +138 -176
  651. package/dist/markets/actions/index.js.map +1 -1
  652. package/dist/markets/actions/trade-faction-market.d.ts +4 -2
  653. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
  654. package/dist/markets/actions/trade-faction-market.js +59 -39
  655. package/dist/markets/actions/trade-faction-market.js.map +1 -1
  656. package/dist/markets/index.d.ts.map +1 -1
  657. package/dist/markets/index.js +3 -11
  658. package/dist/markets/index.js.map +1 -1
  659. package/dist/mining/actions/index.d.ts +1 -1
  660. package/dist/mining/actions/index.d.ts.map +1 -1
  661. package/dist/mining/actions/index.js +81 -44
  662. package/dist/mining/actions/index.js.map +1 -1
  663. package/dist/mining/estimate-input.d.ts +103 -0
  664. package/dist/mining/estimate-input.d.ts.map +1 -0
  665. package/dist/mining/estimate-input.js +86 -0
  666. package/dist/mining/estimate-input.js.map +1 -0
  667. package/dist/mining/index.d.ts +1 -0
  668. package/dist/mining/index.d.ts.map +1 -1
  669. package/dist/mining/index.js +4 -11
  670. package/dist/mining/index.js.map +1 -1
  671. package/dist/planning/assembly.d.ts +1 -1
  672. package/dist/planning/assembly.d.ts.map +1 -1
  673. package/dist/planning/assembly.js +6 -30
  674. package/dist/planning/assembly.js.map +1 -1
  675. package/dist/planning/execution.d.ts +1 -0
  676. package/dist/planning/execution.d.ts.map +1 -1
  677. package/dist/planning/execution.js +149 -45
  678. package/dist/planning/execution.js.map +1 -1
  679. package/dist/planning/index.d.ts +70 -7
  680. package/dist/planning/index.d.ts.map +1 -1
  681. package/dist/planning/index.js +28 -1141
  682. package/dist/planning/index.js.map +1 -1
  683. package/dist/planning/plan-construction.d.ts +25 -0
  684. package/dist/planning/plan-construction.d.ts.map +1 -0
  685. package/dist/planning/plan-construction.js +143 -0
  686. package/dist/planning/plan-construction.js.map +1 -0
  687. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  688. package/dist/planning/plan-sequence-execution.js +1 -11
  689. package/dist/planning/plan-sequence-execution.js.map +1 -1
  690. package/dist/planning/plan-validation.d.ts +17 -0
  691. package/dist/planning/plan-validation.d.ts.map +1 -0
  692. package/dist/planning/plan-validation.js +147 -0
  693. package/dist/planning/plan-validation.js.map +1 -0
  694. package/dist/registry/cargo.d.ts +2 -2
  695. package/dist/registry/cargo.d.ts.map +1 -1
  696. package/dist/registry/cargo.js +3 -4
  697. package/dist/registry/cargo.js.map +1 -1
  698. package/dist/registry/definition-section-snapshot.d.ts +1 -1
  699. package/dist/registry/definition-section-snapshot.d.ts.map +1 -1
  700. package/dist/registry/definition-section-snapshot.js +10 -3
  701. package/dist/registry/definition-section-snapshot.js.map +1 -1
  702. package/dist/registry/index.d.ts +31 -4
  703. package/dist/registry/index.d.ts.map +1 -1
  704. package/dist/registry/index.js +226 -227
  705. package/dist/registry/index.js.map +1 -1
  706. package/dist/registry/onboarding.d.ts.map +1 -1
  707. package/dist/registry/onboarding.js +4 -2
  708. package/dist/registry/onboarding.js.map +1 -1
  709. package/dist/registry/ship-stats-snapshot.d.ts.map +1 -1
  710. package/dist/registry/ship-stats-snapshot.js +19 -5
  711. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  712. package/dist/registry/ships.js +1 -1
  713. package/dist/registry/ships.js.map +1 -1
  714. package/dist/rewards/index.d.ts +11 -5
  715. package/dist/rewards/index.d.ts.map +1 -1
  716. package/dist/rewards/index.js +10 -21
  717. package/dist/rewards/index.js.map +1 -1
  718. package/dist/scanning/actions/index.d.ts +1 -1
  719. package/dist/scanning/actions/index.d.ts.map +1 -1
  720. package/dist/scanning/actions/index.js +38 -8
  721. package/dist/scanning/actions/index.js.map +1 -1
  722. package/dist/scanning/index.d.ts +6 -11
  723. package/dist/scanning/index.d.ts.map +1 -1
  724. package/dist/scanning/index.js +7 -15
  725. package/dist/scanning/index.js.map +1 -1
  726. package/dist/scanning/odds.d.ts +5 -1
  727. package/dist/scanning/odds.d.ts.map +1 -1
  728. package/dist/scanning/odds.js.map +1 -1
  729. package/dist/scanning/signals.d.ts +6 -1
  730. package/dist/scanning/signals.d.ts.map +1 -1
  731. package/dist/scanning/signals.js +3 -1
  732. package/dist/scanning/signals.js.map +1 -1
  733. package/dist/starbases/actions/index.d.ts +49 -4
  734. package/dist/starbases/actions/index.d.ts.map +1 -1
  735. package/dist/starbases/actions/index.js +120 -69
  736. package/dist/starbases/actions/index.js.map +1 -1
  737. package/dist/starbases/index.d.ts +18 -0
  738. package/dist/starbases/index.d.ts.map +1 -1
  739. package/dist/starbases/index.js +24 -11
  740. package/dist/starbases/index.js.map +1 -1
  741. package/dist/world/index.d.ts +87 -13
  742. package/dist/world/index.d.ts.map +1 -1
  743. package/dist/world/index.js +88 -22
  744. package/dist/world/index.js.map +1 -1
  745. package/dist/world/planet-claim-stake-plots.d.ts +49 -40
  746. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -1
  747. package/dist/world/planet-claim-stake-plots.js +47 -40
  748. package/dist/world/planet-claim-stake-plots.js.map +1 -1
  749. package/dist/world/starbase-status.d.ts +54 -13
  750. package/dist/world/starbase-status.d.ts.map +1 -1
  751. package/dist/world/starbase-status.js +65 -0
  752. package/dist/world/starbase-status.js.map +1 -1
  753. package/package.json +2 -2
  754. package/dist/internal/c4/faction-adapter.d.ts +0 -12
  755. package/dist/internal/c4/faction-adapter.d.ts.map +0 -1
  756. package/dist/internal/c4/faction-adapter.js +0 -52
  757. package/dist/internal/c4/faction-adapter.js.map +0 -1
  758. package/dist/internal/planning/movement-character.d.ts +0 -7
  759. package/dist/internal/planning/movement-character.d.ts.map +0 -1
  760. package/dist/internal/planning/movement-character.js +0 -41
  761. package/dist/internal/planning/movement-character.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"crew-transfer.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAsGD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf;AACD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"crew-transfer.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAkFD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf;AACD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -1,50 +1,22 @@
1
- import { isAddress, isOffCurveAddress } from '@solana/kit';
1
+ import { isAddress } from '@solana/kit';
2
2
  import { InvalidActionInputError } from '../../client/errors.js';
3
3
  import { requireGameAddress } from '../../internal/game-context.js';
4
4
  import { resolveFleetCrewTransfer } from '../../internal/planning/fleet-crew-transfer.js';
5
5
  import { crewTransferInstruction } from '../../internal/planning/fleet-crew-guard.js';
6
- import { createPlan } from '../../planning/index.js';
6
+ import { buildPlannerPlan } from '../../planning/plan-construction.js';
7
+ import { readDirectOptions } from '../../internal/planning/direct-options.js';
7
8
  function options(input) {
8
9
  const bad = () => {
9
10
  throw new InvalidActionInputError('options', input, 'authorization and count only; direct authority, Profile, u16 keyIndex and positive u16 count', 'Pass address-only Fleet crew transfer options. Certificates and other access routes are unsupported; use a direct Profile key and an existing canonical StarbasePlayer.');
10
11
  };
11
- if (input === null || typeof input !== 'object' || Array.isArray(input))
12
- bad();
13
- const value = input;
14
- if (Object.keys(value).length !== 2 ||
15
- !Object.hasOwn(value, 'authorization') ||
16
- !Object.hasOwn(value, 'count'))
17
- bad();
18
- const authorization = value.authorization;
19
- if (authorization === null ||
20
- typeof authorization !== 'object' ||
21
- Array.isArray(authorization))
22
- bad();
23
- const a = authorization;
24
- if (Object.keys(a).length !== 3 ||
25
- !Object.hasOwn(a, 'profile') ||
26
- !Object.hasOwn(a, 'authority') ||
27
- !Object.hasOwn(a, 'keyIndex') ||
28
- typeof a.profile !== 'string' ||
29
- !isAddress(a.profile) ||
30
- typeof a.authority !== 'string' ||
31
- !isAddress(a.authority) ||
32
- isOffCurveAddress(a.authority) ||
33
- !Number.isInteger(a.keyIndex) ||
34
- typeof a.keyIndex !== 'number' ||
35
- a.keyIndex < 0 ||
36
- a.keyIndex > 65535 ||
37
- typeof value.count !== 'number' ||
12
+ const { authorization, value } = readDirectOptions(input, ['authorization', 'count'], bad);
13
+ if (typeof value.count !== 'number' ||
38
14
  !Number.isInteger(value.count) ||
39
15
  value.count < 1 ||
40
16
  value.count > 65535)
41
17
  bad();
42
18
  return {
43
- authorization: {
44
- profile: a.profile,
45
- authority: a.authority,
46
- keyIndex: a.keyIndex,
47
- },
19
+ authorization,
48
20
  count: value.count,
49
21
  };
50
22
  }
@@ -60,16 +32,25 @@ async function planTransfer(ctx, fleet, input, direction) {
60
32
  direction,
61
33
  };
62
34
  const resolved = await resolveFleetCrewTransfer(ctx, intent);
63
- const summary = `${direction === 'load' ? 'Load' : 'Unload'} ${intent.count} ordinary crew ${direction === 'load' ? 'from' : 'to'} StarbasePlayer ${resolved.starbasePlayer} ${direction === 'load' ? 'aboard' : 'from'} Fleet ${fleet}. Crew may be unloaded to zero while Docked; reload the required departure crew before undocking. Individual rosters, rented crew and restricted keys are unsupported. Execute this transfer alone; refresh Fleet and Starbase crew after confirmation before planning another action. Simulate before signing.`;
64
- return createPlan({
35
+ const summary = `${direction === 'load' ? 'Load' : 'Unload'} ${intent.count} ordinary crew ${direction === 'load' ? 'from' : 'to'} StarbasePlayer ${resolved.starbasePlayer} ${direction === 'load' ? 'aboard' : 'from'} Fleet ${fleet}. Crew may be unloaded to zero while Docked; reload the required departure crew before undocking. Individual rosters, rented crew and restricted keys are unsupported. Execute this transfer alone; refresh Fleet and Starbase crew after confirmation before planning another action. Observed Profile rent debit: ${resolved.maximumProfileDebit} lamports from Profile ${intent.profile}. The transfer resizes nothing, so this is only what the Fleet and StarbasePlayer lack of their rent minimums. Execution rejects a higher observed debit before signing; this is not an atomic on-chain spending cap. Transaction fees are separate. Simulate before signing.`;
36
+ return buildPlannerPlan({
65
37
  kind: `fleets.${direction}-crew`,
66
38
  summary,
67
39
  preconditions: [
68
40
  {
69
41
  kind: 'fleet-crew-transfer',
70
- ...intent,
71
- ...resolved,
72
- describes: 'Direct authority, canonical docking generation, ordinary crew state, current capacity and available source crew remain valid.',
42
+ direction,
43
+ address: intent.address,
44
+ game: intent.game,
45
+ profile: intent.profile,
46
+ authority: intent.authority,
47
+ system: resolved.system,
48
+ starbasePlayer: resolved.starbasePlayer,
49
+ count: intent.count,
50
+ keyIndex: intent.keyIndex,
51
+ systemSequenceId: resolved.systemSequenceId,
52
+ maximumProfileDebit: resolved.maximumProfileDebit,
53
+ describes: 'Direct authority, canonical docking generation, ordinary crew state, current capacity, available source crew and affordable rent within the observed Profile debit remain valid.',
73
54
  },
74
55
  ],
75
56
  steps: [
@@ -83,9 +64,13 @@ async function planTransfer(ctx, fleet, input, direction) {
83
64
  });
84
65
  }
85
66
  /** Loads an explicit positive u16 crew count from the canonical StarbasePlayer into a directly owned Docked Fleet.
86
- * Requires a direct Profile AUTH key, current ship definitions, no Character roster,
87
- * and an absent or exact-neutral Fleet binding. Rented crew are unsupported.
67
+ * Requires a direct Profile key with AUTH, or with the SAGE manage-crew
68
+ * permission scoped to SAGE or this Fleet; current ship definitions; no
69
+ * Character roster; and an absent or exact-neutral Fleet binding. Rented crew are unsupported.
88
70
  * Available Starbase crew exclude busy crew; capacity includes required crew and passengers.
71
+ * The transfer resizes nothing. Its `maximumProfileDebit` precondition is what the
72
+ * Fleet and StarbasePlayer lack of their rent minimums, usually zero, and refunds
73
+ * are not credited. Transaction fees are separate.
89
74
  * Planning never signs or submits. This transfer must execute alone.
90
75
  * @example
91
76
  * ```ts
@@ -99,7 +84,7 @@ export function planLoadFleetCrew(ctx, fleet, options) {
99
84
  }
100
85
  /** Unloads an explicit positive u16 crew count from a directly owned Docked Fleet into its canonical StarbasePlayer.
101
86
  * Unloading every crew member is allowed while Docked; departure requires reloading required crew.
102
- * Supports the same ordinary-crew and direct AUTH boundary as loading. Execute separately
87
+ * Supports the same ordinary-crew, direct-key and Profile debit boundary as loading. Execute separately
103
88
  * and refresh after confirmation before preparing another transfer or movement.
104
89
  * @example
105
90
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"crew-transfer.js","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crew-transfer.js","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ /** A proposed Fleet deployment, sized before any of it runs.
4
+ * @example
5
+ * ```ts
6
+ * declare const starbasePlayer: Address;
7
+ * const input: FleetDeploymentStorageInput = {
8
+ * starbasePlayer,
9
+ * label: 'Miner 6',
10
+ * ships: [{ shipId: 1301, amount: 1n }],
11
+ * cargoIds: [7560],
12
+ * };
13
+ * ```
14
+ */
15
+ export interface FleetDeploymentStorageInput {
16
+ /** The StarbasePlayer the Fleet is created at; it holds the hulls,
17
+ * components and cargo the deployment draws on. */
18
+ readonly starbasePlayer: Address;
19
+ /** An owned Fleet Docked at the same Starbase to disband first. */
20
+ readonly disband?: Address;
21
+ /** The new Fleet's label. With it, the estimate reads the Fleet's address
22
+ * and credits lamports already sent there; without it, the Fleet is assumed
23
+ * to hold none. */
24
+ readonly label?: string;
25
+ /** Ship configurations to add, one assembly per entry, in order. */
26
+ readonly ships: readonly {
27
+ readonly shipId: number;
28
+ readonly amount: bigint;
29
+ }[];
30
+ /** Cargo ids loaded into the new Fleet's cargo hold. Fuel and ammo use fixed
31
+ * slots, so leaving them out tightens the bound. */
32
+ readonly cargoIds?: readonly number[];
33
+ }
34
+ /** One account a deployment stage resizes or settles at an unchanged size.
35
+ * @example
36
+ * ```ts
37
+ * declare const account: FleetDeploymentStorageAccount;
38
+ * console.log(account.sizeAfter - account.sizeBefore, account.rentMinimum);
39
+ * ```
40
+ */
41
+ export interface FleetDeploymentStorageAccount {
42
+ readonly account: 'fleet' | 'starbasePlayer';
43
+ /** Undefined for the new Fleet when no label was given. */
44
+ readonly address: Address | undefined;
45
+ readonly sizeBefore: number;
46
+ readonly sizeAfter: number;
47
+ /** Rent minimum of the account at `sizeAfter`, in lamports. */
48
+ readonly rentMinimum: bigint;
49
+ }
50
+ /** One stage of a Fleet deployment and its gross Profile storage debit.
51
+ * @example
52
+ * ```ts
53
+ * declare const stage: FleetDeploymentStorageStage;
54
+ * if (stage.kind === 'add-ships') console.log(stage.shipId, stage.profileDebit);
55
+ * ```
56
+ */
57
+ export type FleetDeploymentStorageStage = {
58
+ readonly accounts: readonly FleetDeploymentStorageAccount[];
59
+ /** Upper bound on the lamports this stage withdraws from the Profile. */
60
+ readonly profileDebit: bigint;
61
+ } & ({
62
+ readonly kind: 'disband';
63
+ readonly fleet: Address;
64
+ } | {
65
+ readonly kind: 'create';
66
+ } | {
67
+ readonly kind: 'add-ships';
68
+ readonly shipId: number;
69
+ readonly amount: bigint;
70
+ } | {
71
+ readonly kind: 'load-cargo';
72
+ readonly cargoIds: readonly number[];
73
+ });
74
+ /** A requirement the deployment needs that the Character or StarbasePlayer
75
+ * does not meet today. `stage` indexes `stages`.
76
+ * @example
77
+ * ```ts
78
+ * declare const prerequisite: FleetDeploymentPrerequisite;
79
+ * console.log(prerequisite.kind, prerequisite.message);
80
+ * ```
81
+ */
82
+ export interface FleetDeploymentPrerequisite {
83
+ readonly kind: 'fleet-slot' | 'ship-size' | 'research' | 'fleet-size' | 'components';
84
+ readonly stage: number;
85
+ readonly message: string;
86
+ }
87
+ /** Storage a proposed Fleet deployment needs, stage by stage.
88
+ * @example
89
+ * ```ts
90
+ * declare const estimate: FleetDeploymentStorageEstimate;
91
+ * console.log(estimate.totalProfileDebit, estimate.unmetPrerequisites.length);
92
+ * ```
93
+ */
94
+ export interface FleetDeploymentStorageEstimate {
95
+ readonly stages: readonly FleetDeploymentStorageStage[];
96
+ /** Sum of the stage debits. No refund or freed storage is credited, so this
97
+ * is also the peak the Profile must hold above its own rent reserve. */
98
+ readonly totalProfileDebit: bigint;
99
+ readonly unmetPrerequisites: readonly FleetDeploymentPrerequisite[];
100
+ readonly profile: Address;
101
+ readonly character: Address;
102
+ /** Slot of the StarbasePlayer read the estimate is based on. */
103
+ readonly observedSlot: bigint;
104
+ readonly rent: {
105
+ readonly lamportsPerByteYear: bigint;
106
+ readonly exemptionThreshold: number;
107
+ };
108
+ readonly profileUnit: 'lamports';
109
+ readonly transactionFees: 'excluded';
110
+ readonly characterResync: 'excluded';
111
+ toJSON(): unknown;
112
+ }
113
+ /**
114
+ * Estimates the Profile storage funding a proposed Fleet deployment needs
115
+ * before any of it runs: optionally disbanding a Docked Fleet, creating an
116
+ * empty Fleet, adding ship configurations in order (with their components) and
117
+ * loading its initial cargo hold. Each stage reports the accounts it settles,
118
+ * their sizes and rent minimums, and an upper bound on its Profile debit.
119
+ *
120
+ * Verified against the program's behaviour: each stage sets every resized
121
+ * account to the rent minimum of its new size, withdrawing a shortfall from
122
+ * the Profile. A disband grows the StarbasePlayer by a hangar entry per ship id
123
+ * and a cargo line per cargo id it lacks. Creation funds the empty Fleet less
124
+ * any lamports already at its address. Each assembly adds a ship line and the
125
+ * configuration's component lines to the Fleet, and a hangar entry to the
126
+ * StarbasePlayer when it has none for that configuration; it settles the
127
+ * StarbasePlayer's rent even when its size is unchanged. Loading cargo adds a
128
+ * cargo hold line per new cargo id; loading crew resizes nothing, so it has no
129
+ * stage. Observed balances count for the first stage that touches an account;
130
+ * later stages assume it was left at its rent minimum. The disbanded Fleet's
131
+ * refund, lines that empty and any other freed storage are never credited.
132
+ *
133
+ * Unmet Character or StarbasePlayer requirements (a free Fleet slot, maximum
134
+ * ship size, research, Fleet size, components) are listed, not enforced, so a
135
+ * roster can be sized before it is eligible. A roster no Character can field
136
+ * (above the Game's Fleet size, or too many Commanders or Titans) is refused.
137
+ * Hull availability, transaction fees, the Profile's own rent reserve and a
138
+ * Character resynchronization are not included. Plan each real stage with its
139
+ * planner after the previous one confirms.
140
+ *
141
+ * @example
142
+ * ```ts
143
+ * import { estimateFleetDeploymentStorage } from '@aephia/atlas-kit/fleets/actions';
144
+ *
145
+ * declare const ctx: SageContext;
146
+ * declare const starbasePlayer: Address;
147
+ * declare const oldFleet: Address;
148
+ * const estimate = await estimateFleetDeploymentStorage(ctx, {
149
+ * starbasePlayer,
150
+ * disband: oldFleet,
151
+ * label: 'Miner 6',
152
+ * ships: [{ shipId: 1301, amount: 1n }],
153
+ * cargoIds: [7560],
154
+ * });
155
+ * for (const stage of estimate.stages) console.log(stage.kind, stage.profileDebit);
156
+ * for (const missing of estimate.unmetPrerequisites) console.log(missing.message);
157
+ * console.log(`Profile needs ${estimate.totalProfileDebit} lamports above its reserve`);
158
+ * ```
159
+ */
160
+ export declare function estimateFleetDeploymentStorage(ctx: SageContext, input: FleetDeploymentStorageInput): Promise<FleetDeploymentStorageEstimate>;
161
+ //# sourceMappingURL=deployment-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-storage.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/deployment-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ import { isAddress } from '@solana/kit';
2
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
4
+ import { requireGameAddress } from '../../internal/game-context.js';
5
+ import { attachJsonSerialization } from '../../internal/json.js';
6
+ import { characterAccountDefinition } from '../../internal/c4/character.js';
7
+ import { fleetAccountDefinition } from '../../internal/c4/fleet.js';
8
+ import { deriveFleetCreationAddress, emptyDockedFleetSize, } from '../../internal/c4/fleet-creation.js';
9
+ import { decodeCanonicalStarbasePlayer, starbasePlayerSize, withDisbandedFleet, withHangarEntry, } from '../../internal/c4/fleet-disband.js';
10
+ import { MAX_COMMANDERS_AND_TITANS_PER_FLEET, MAX_TITANS_PER_FLEET, fleetCapacityPoints, shipSizeName, shipSizeRank, } from '../../internal/c4/fleet-ship-assembly.js';
11
+ import { decodeCanonicalFleet } from '../../internal/c4/fleet-storage.js';
12
+ import { starbasePlayerAccountDefinition } from '../../internal/c4/starbase.js';
13
+ import { validateFleetCreationLabel } from '../../internal/planning/fleet-creation.js';
14
+ import { RENT_ADDRESS, readRent } from '../../internal/planning/rent.js';
15
+ import { readFreshGameShipAssemblyCatalog } from '../../registry/ships.js';
16
+ const SYSTEM_PROGRAM = '11111111111111111111111111111111';
17
+ function readInput(input) {
18
+ const bad = () => {
19
+ throw new InvalidActionInputError('input', input, 'starbasePlayer, optional disband and label, ships as { shipId: u16, amount: 1n through 255n }[] with at least one entry, and optional u16 cargoIds', 'Describe the proposed deployment with addresses, ship configuration ids and cargo ids only, then estimate again.');
20
+ };
21
+ if (typeof input !== 'object' || input === null)
22
+ return bad();
23
+ const value = input;
24
+ const allowed = ['starbasePlayer', 'disband', 'label', 'ships', 'cargoIds'];
25
+ const u16 = (id) => typeof id === 'number' && Number.isInteger(id) && id >= 0 && id <= 65535;
26
+ if (Object.keys(value).some((key) => !allowed.includes(key)) ||
27
+ typeof value.starbasePlayer !== 'string' ||
28
+ !isAddress(value.starbasePlayer) ||
29
+ (value.disband !== undefined &&
30
+ (typeof value.disband !== 'string' || !isAddress(value.disband))) ||
31
+ !Array.isArray(value.ships) ||
32
+ value.ships.length === 0 ||
33
+ !value.ships.every((ship) => typeof ship === 'object' &&
34
+ ship !== null &&
35
+ Object.keys(ship).every((key) => key === 'shipId' || key === 'amount') &&
36
+ u16(ship.shipId) &&
37
+ typeof ship.amount === 'bigint' &&
38
+ ship.amount >= 1n &&
39
+ ship.amount <= 255n) ||
40
+ (value.cargoIds !== undefined &&
41
+ (!Array.isArray(value.cargoIds) || !value.cargoIds.every(u16))))
42
+ return bad();
43
+ if (value.label !== undefined)
44
+ validateFleetCreationLabel(value.label);
45
+ return value;
46
+ }
47
+ function refuse(message) {
48
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', message);
49
+ }
50
+ /**
51
+ * Estimates the Profile storage funding a proposed Fleet deployment needs
52
+ * before any of it runs: optionally disbanding a Docked Fleet, creating an
53
+ * empty Fleet, adding ship configurations in order (with their components) and
54
+ * loading its initial cargo hold. Each stage reports the accounts it settles,
55
+ * their sizes and rent minimums, and an upper bound on its Profile debit.
56
+ *
57
+ * Verified against the program's behaviour: each stage sets every resized
58
+ * account to the rent minimum of its new size, withdrawing a shortfall from
59
+ * the Profile. A disband grows the StarbasePlayer by a hangar entry per ship id
60
+ * and a cargo line per cargo id it lacks. Creation funds the empty Fleet less
61
+ * any lamports already at its address. Each assembly adds a ship line and the
62
+ * configuration's component lines to the Fleet, and a hangar entry to the
63
+ * StarbasePlayer when it has none for that configuration; it settles the
64
+ * StarbasePlayer's rent even when its size is unchanged. Loading cargo adds a
65
+ * cargo hold line per new cargo id; loading crew resizes nothing, so it has no
66
+ * stage. Observed balances count for the first stage that touches an account;
67
+ * later stages assume it was left at its rent minimum. The disbanded Fleet's
68
+ * refund, lines that empty and any other freed storage are never credited.
69
+ *
70
+ * Unmet Character or StarbasePlayer requirements (a free Fleet slot, maximum
71
+ * ship size, research, Fleet size, components) are listed, not enforced, so a
72
+ * roster can be sized before it is eligible. A roster no Character can field
73
+ * (above the Game's Fleet size, or too many Commanders or Titans) is refused.
74
+ * Hull availability, transaction fees, the Profile's own rent reserve and a
75
+ * Character resynchronization are not included. Plan each real stage with its
76
+ * planner after the previous one confirms.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * import { estimateFleetDeploymentStorage } from '@aephia/atlas-kit/fleets/actions';
81
+ *
82
+ * declare const ctx: SageContext;
83
+ * declare const starbasePlayer: Address;
84
+ * declare const oldFleet: Address;
85
+ * const estimate = await estimateFleetDeploymentStorage(ctx, {
86
+ * starbasePlayer,
87
+ * disband: oldFleet,
88
+ * label: 'Miner 6',
89
+ * ships: [{ shipId: 1301, amount: 1n }],
90
+ * cargoIds: [7560],
91
+ * });
92
+ * for (const stage of estimate.stages) console.log(stage.kind, stage.profileDebit);
93
+ * for (const missing of estimate.unmetPrerequisites) console.log(missing.message);
94
+ * console.log(`Profile needs ${estimate.totalProfileDebit} lamports above its reserve`);
95
+ * ```
96
+ */
97
+ export async function estimateFleetDeploymentStorage(ctx, input) {
98
+ const { starbasePlayer, disband, label, ships, cargoIds = [], } = readInput(input);
99
+ const game = requireGameAddress(ctx);
100
+ const [playerRaw, rentRaw, disbandRaw] = await readContextRawAccounts(ctx, [
101
+ starbasePlayer,
102
+ RENT_ADDRESS,
103
+ ...(disband === undefined ? [] : [disband]),
104
+ ]);
105
+ if (!playerRaw)
106
+ refuse(`StarbasePlayer ${starbasePlayer} does not exist. Register at the Starbase where the Fleet will be created, then estimate again.`);
107
+ const player = starbasePlayerAccountDefinition.decode(playerRaw);
108
+ const profile = player.playerProfile;
109
+ const fleetAddress = label === undefined
110
+ ? undefined
111
+ : await deriveFleetCreationAddress(game, profile, label);
112
+ const [{ catalog }, [characterRaw, targetRaw]] = await Promise.all([
113
+ readFreshGameShipAssemblyCatalog(ctx),
114
+ readContextRawAccounts(ctx, [
115
+ player.character,
116
+ ...(fleetAddress === undefined ? [] : [fleetAddress]),
117
+ ]),
118
+ ]);
119
+ if (!characterRaw)
120
+ refuse(`Character ${player.character} of the StarbasePlayer does not exist. Register the Character, then estimate again.`);
121
+ const character = characterAccountDefinition.decode(characterRaw);
122
+ if (character.game !== game || character.playerProfile !== profile)
123
+ refuse(`The StarbasePlayer's Character belongs to another Game or Profile than the configured Game ${game} and Profile ${profile}. Select a StarbasePlayer of this Game, then estimate again.`);
124
+ if (!rentRaw)
125
+ refuse('The Rent sysvar is unavailable. Check the configured RPC endpoint, then estimate again.');
126
+ const rent = readRent(rentRaw);
127
+ const stages = [];
128
+ const unmet = [];
129
+ // The StarbasePlayer only grows in this estimate: lines a stage empties are
130
+ // kept, so freed storage is never credited.
131
+ let playerValue = decodeCanonicalStarbasePlayer(playerRaw, 'Refresh a valid StarbasePlayer before estimating a Fleet deployment.');
132
+ let playerSize = playerRaw.data.length;
133
+ let playerBalance = playerRaw.lamports;
134
+ const resizePlayer = (next) => {
135
+ const size = starbasePlayerSize(next);
136
+ const minimum = rent(size);
137
+ const account = Object.freeze({
138
+ account: 'starbasePlayer',
139
+ address: starbasePlayer,
140
+ sizeBefore: playerSize,
141
+ sizeAfter: size,
142
+ rentMinimum: minimum,
143
+ });
144
+ const debit = minimum > playerBalance ? minimum - playerBalance : 0n;
145
+ playerValue = next;
146
+ playerSize = size;
147
+ playerBalance = minimum;
148
+ return { account, debit };
149
+ };
150
+ let freedSlot = 0;
151
+ if (disband !== undefined) {
152
+ if (!disbandRaw)
153
+ refuse(`Fleet ${disband} does not exist. Select an owned Fleet Docked at this Starbase to disband, then estimate again.`);
154
+ const fleet = fleetAccountDefinition.decode(disbandRaw);
155
+ if (fleet.game !== game ||
156
+ fleet.ownerProfile !== profile ||
157
+ fleet.state.kind !== 'docked' ||
158
+ fleet.state.system !== player.system)
159
+ refuse(`Fleet ${disband} is not owned by the StarbasePlayer's Profile and Docked at its Starbase. Dock it there or estimate without disbanding it.`);
160
+ const { account, debit } = resizePlayer(withDisbandedFleet(decodeCanonicalFleet(disbandRaw), playerValue));
161
+ stages.push(Object.freeze({
162
+ kind: 'disband',
163
+ fleet: disband,
164
+ accounts: Object.freeze([account]),
165
+ profileDebit: debit,
166
+ }));
167
+ freedSlot = 1;
168
+ }
169
+ const values = character.modifiers.values;
170
+ if (character.counts.fleets - freedSlot >= values.fleetConcurrency)
171
+ unmet.push({
172
+ kind: 'fleet-slot',
173
+ stage: stages.length,
174
+ message: `The Character uses ${String(character.counts.fleets - freedSlot)} of ${String(values.fleetConcurrency)} Fleet slots${freedSlot ? ' after the disband' : ''}. Disband another Fleet or unlock research that raises Fleet concurrency.`,
175
+ });
176
+ if (targetRaw &&
177
+ (targetRaw.executable ||
178
+ targetRaw.owner !== SYSTEM_PROGRAM ||
179
+ targetRaw.data.length !== 0))
180
+ refuse(`The Fleet address for label ${String(label)} (${String(fleetAddress)}) already holds state. Choose a different label, then estimate again.`);
181
+ const fleetShips = new Map();
182
+ const components = new Map();
183
+ const cargoHold = new Map();
184
+ let fleetSize = emptyDockedFleetSize();
185
+ let fleetBalance = targetRaw?.lamports ?? 0n;
186
+ const resizeFleet = (sizeBefore) => {
187
+ const size = emptyDockedFleetSize({ fleetShips, components, cargoHold });
188
+ const minimum = rent(size);
189
+ const account = Object.freeze({
190
+ account: 'fleet',
191
+ address: fleetAddress,
192
+ sizeBefore,
193
+ sizeAfter: size,
194
+ rentMinimum: minimum,
195
+ });
196
+ const debit = minimum > fleetBalance ? minimum - fleetBalance : 0n;
197
+ fleetSize = size;
198
+ fleetBalance = minimum;
199
+ return { account, debit };
200
+ };
201
+ const created = resizeFleet(0);
202
+ stages.push(Object.freeze({
203
+ kind: 'create',
204
+ accounts: Object.freeze([created.account]),
205
+ profileDebit: created.debit,
206
+ }));
207
+ const classes = [0, 0, 0, 0, 0, 0, 0, 0];
208
+ const held = new Map(playerValue.cargoPod.amounts);
209
+ for (const { shipId, amount } of ships) {
210
+ const stage = stages.length;
211
+ const row = catalog.rows.find((candidate) => candidate.id === shipId);
212
+ if (!row)
213
+ throw new InvalidActionInputError('ships', shipId, 'a ship configuration id in the current Game ship definitions', `Ship configuration ${String(shipId)} is not in the current Game ship definitions. Select a defined configuration, then estimate again.`);
214
+ const size = shipSizeName(row.sizeClass);
215
+ if (row.sizeClass > shipSizeRank(values.maxShipSize))
216
+ unmet.push({
217
+ kind: 'ship-size',
218
+ stage,
219
+ message: `Ship configuration ${String(shipId)} is ${size}, above the Character's maximum ship size ${values.maxShipSize}. Unlock research that raises the maximum ship size.`,
220
+ });
221
+ const missing = row.researchRequirements.filter((tag) => !values.researchTags.includes(tag));
222
+ if (missing.length > 0)
223
+ unmet.push({
224
+ kind: 'research',
225
+ stage,
226
+ message: `Ship configuration ${String(shipId)} requires research tags [${missing.join(', ')}] the Character lacks. Unlock the research nodes that grant them.`,
227
+ });
228
+ classes[row.sizeClass] = classes[row.sizeClass] + Number(amount);
229
+ const points = fleetCapacityPoints(classes);
230
+ if (points > catalog.maxFleetSize)
231
+ throw new InvalidActionInputError('ships', input.ships, `a roster within the Game's ${String(catalog.maxFleetSize)}-point Fleet limit`, `The roster uses ${String(points)} Fleet points by ship configuration ${String(shipId)}, above the Game's ${String(catalog.maxFleetSize)}-point Fleet limit. Reduce the roster, then estimate again.`);
232
+ if (classes[7] > MAX_TITANS_PER_FLEET ||
233
+ classes[6] + classes[7] > MAX_COMMANDERS_AND_TITANS_PER_FLEET)
234
+ throw new InvalidActionInputError('ships', input.ships, `at most ${String(MAX_TITANS_PER_FLEET)} Titan and ${String(MAX_COMMANDERS_AND_TITANS_PER_FLEET)} Commanders and Titans together`, 'A Fleet holds at most one Titan, and at most two Commanders and Titans together. Split the roster across Fleets, then estimate again.');
235
+ if (points > values.fleetSize)
236
+ unmet.push({
237
+ kind: 'fleet-size',
238
+ stage,
239
+ message: `The roster uses ${String(points)} Fleet points after ship configuration ${String(shipId)}, above the Character's Fleet size ${String(values.fleetSize)}. Unlock Fleet-size research or reduce the roster.`,
240
+ });
241
+ const short = [];
242
+ for (const [cargoId, required] of row.componentRequirements) {
243
+ const moved = BigInt(required) * amount;
244
+ const available = held.get(cargoId) ?? 0n;
245
+ if (available < moved)
246
+ short.push(`${String(moved)} of cargo ${String(cargoId)} (holds ${String(available)})`);
247
+ held.set(cargoId, available > moved ? available - moved : 0n);
248
+ components.set(cargoId, (components.get(cargoId) ?? 0n) + moved);
249
+ }
250
+ if (short.length > 0)
251
+ unmet.push({
252
+ kind: 'components',
253
+ stage,
254
+ message: `Ship configuration ${String(shipId)} needs components the StarbasePlayer does not hold: ${short.join(', ')}. Buy, craft or move them to this StarbasePlayer.`,
255
+ });
256
+ fleetShips.set(shipId, (fleetShips.get(shipId) ?? 0n) + amount);
257
+ const fleet = resizeFleet(fleetSize);
258
+ // Assembly settles the StarbasePlayer's rent even when its hangar already
259
+ // holds this configuration, so its balance advances on every assembly.
260
+ const player = resizePlayer(withHangarEntry(playerValue, shipId));
261
+ stages.push(Object.freeze({
262
+ kind: 'add-ships',
263
+ shipId,
264
+ amount,
265
+ accounts: Object.freeze([fleet.account, player.account]),
266
+ profileDebit: fleet.debit + player.debit,
267
+ }));
268
+ }
269
+ const loaded = [...new Set(cargoIds)];
270
+ if (loaded.length > 0) {
271
+ for (const cargoId of loaded)
272
+ cargoHold.set(cargoId, cargoHold.get(cargoId) ?? 0n);
273
+ const fleet = resizeFleet(fleetSize);
274
+ stages.push(Object.freeze({
275
+ kind: 'load-cargo',
276
+ cargoIds: Object.freeze(loaded),
277
+ accounts: Object.freeze([fleet.account]),
278
+ profileDebit: fleet.debit,
279
+ }));
280
+ }
281
+ return Object.freeze(attachJsonSerialization({
282
+ stages: Object.freeze(stages),
283
+ totalProfileDebit: stages.reduce((total, stage) => total + stage.profileDebit, 0n),
284
+ unmetPrerequisites: Object.freeze(unmet.map((p) => Object.freeze(p))),
285
+ profile,
286
+ character: player.character,
287
+ observedSlot: playerRaw.slot,
288
+ rent: Object.freeze({
289
+ lamportsPerByteYear: rent.rentLamportsPerByteYear,
290
+ exemptionThreshold: rent.rentExemptionThreshold,
291
+ }),
292
+ profileUnit: 'lamports',
293
+ transactionFees: 'excluded',
294
+ characterResync: 'excluded',
295
+ }));
296
+ }
297
+ //# sourceMappingURL=deployment-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-storage.js","sourceRoot":"","sources":["../../../src/fleets/actions/deployment-storage.ts"],"names":[],"mappings":"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"}