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

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 (765) 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 +19 -7
  6. package/dist/cargo/actions/index.d.ts.map +1 -1
  7. package/dist/cargo/actions/index.js +106 -89
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/transfer-bounds.d.ts +74 -0
  10. package/dist/cargo/actions/transfer-bounds.d.ts.map +1 -0
  11. package/dist/cargo/actions/transfer-bounds.js +128 -0
  12. package/dist/cargo/actions/transfer-bounds.js.map +1 -0
  13. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  14. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  15. package/dist/cargo/actions/wallet-context.js +118 -7
  16. package/dist/cargo/actions/wallet-context.js.map +1 -1
  17. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  18. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  19. package/dist/cargo/actions/wallet-token.js +0 -45
  20. package/dist/cargo/actions/wallet-token.js.map +1 -1
  21. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  22. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  23. package/dist/cargo/actions/withdrawal.js +37 -163
  24. package/dist/cargo/actions/withdrawal.js.map +1 -1
  25. package/dist/cargo/index.d.ts.map +1 -1
  26. package/dist/cargo/index.js +2 -10
  27. package/dist/cargo/index.js.map +1 -1
  28. package/dist/claim-stakes/actions/index.d.ts +80 -14
  29. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  30. package/dist/claim-stakes/actions/index.js +660 -709
  31. package/dist/claim-stakes/actions/index.js.map +1 -1
  32. package/dist/claim-stakes/index.d.ts +8 -6
  33. package/dist/claim-stakes/index.d.ts.map +1 -1
  34. package/dist/claim-stakes/index.js +12 -18
  35. package/dist/claim-stakes/index.js.map +1 -1
  36. package/dist/client/context.d.ts.map +1 -1
  37. package/dist/client/context.js +353 -37
  38. package/dist/client/context.js.map +1 -1
  39. package/dist/client/contracts.d.ts +54 -1
  40. package/dist/client/contracts.d.ts.map +1 -1
  41. package/dist/client/deployments.d.ts +17 -0
  42. package/dist/client/deployments.d.ts.map +1 -1
  43. package/dist/client/deployments.js +17 -0
  44. package/dist/client/deployments.js.map +1 -1
  45. package/dist/client/index.d.ts +22 -1
  46. package/dist/client/index.d.ts.map +1 -1
  47. package/dist/client/index.js +21 -0
  48. package/dist/client/index.js.map +1 -1
  49. package/dist/client/rpc-subscription-provider.d.ts +2 -0
  50. package/dist/client/rpc-subscription-provider.d.ts.map +1 -1
  51. package/dist/client/rpc-subscription-provider.js +135 -101
  52. package/dist/client/rpc-subscription-provider.js.map +1 -1
  53. package/dist/combat/actions/index.d.ts +30 -12
  54. package/dist/combat/actions/index.d.ts.map +1 -1
  55. package/dist/combat/actions/index.js +264 -252
  56. package/dist/combat/actions/index.js.map +1 -1
  57. package/dist/combat/index.d.ts +25 -8
  58. package/dist/combat/index.d.ts.map +1 -1
  59. package/dist/combat/index.js +21 -18
  60. package/dist/combat/index.js.map +1 -1
  61. package/dist/crafting/actions/fee-rate.d.ts +47 -0
  62. package/dist/crafting/actions/fee-rate.d.ts.map +1 -0
  63. package/dist/crafting/actions/fee-rate.js +58 -0
  64. package/dist/crafting/actions/fee-rate.js.map +1 -0
  65. package/dist/crafting/actions/index.d.ts +28 -28
  66. package/dist/crafting/actions/index.d.ts.map +1 -1
  67. package/dist/crafting/actions/index.js +243 -314
  68. package/dist/crafting/actions/index.js.map +1 -1
  69. package/dist/crafting/estimate.d.ts +101 -0
  70. package/dist/crafting/estimate.d.ts.map +1 -0
  71. package/dist/crafting/estimate.js +108 -0
  72. package/dist/crafting/estimate.js.map +1 -0
  73. package/dist/crafting/index.d.ts +6 -5
  74. package/dist/crafting/index.d.ts.map +1 -1
  75. package/dist/crafting/index.js +6 -13
  76. package/dist/crafting/index.js.map +1 -1
  77. package/dist/factions/actions/index.d.ts +1 -1
  78. package/dist/factions/actions/index.d.ts.map +1 -1
  79. package/dist/factions/actions/index.js +5 -4
  80. package/dist/factions/actions/index.js.map +1 -1
  81. package/dist/factions/index.d.ts +18 -1
  82. package/dist/factions/index.d.ts.map +1 -1
  83. package/dist/factions/index.js +24 -18
  84. package/dist/factions/index.js.map +1 -1
  85. package/dist/fleets/actions/add-ship.d.ts +18 -5
  86. package/dist/fleets/actions/add-ship.d.ts.map +1 -1
  87. package/dist/fleets/actions/add-ship.js +35 -48
  88. package/dist/fleets/actions/add-ship.js.map +1 -1
  89. package/dist/fleets/actions/create-fleet.d.ts +1 -1
  90. package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
  91. package/dist/fleets/actions/create-fleet.js +8 -38
  92. package/dist/fleets/actions/create-fleet.js.map +1 -1
  93. package/dist/fleets/actions/crew-transfer.d.ts +8 -4
  94. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
  95. package/dist/fleets/actions/crew-transfer.js +27 -42
  96. package/dist/fleets/actions/crew-transfer.js.map +1 -1
  97. package/dist/fleets/actions/deployment-storage.d.ts +161 -0
  98. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -0
  99. package/dist/fleets/actions/deployment-storage.js +297 -0
  100. package/dist/fleets/actions/deployment-storage.js.map +1 -0
  101. package/dist/fleets/actions/disband.d.ts +42 -0
  102. package/dist/fleets/actions/disband.d.ts.map +1 -0
  103. package/dist/fleets/actions/disband.js +107 -0
  104. package/dist/fleets/actions/disband.js.map +1 -0
  105. package/dist/fleets/actions/index.d.ts +55 -11
  106. package/dist/fleets/actions/index.d.ts.map +1 -1
  107. package/dist/fleets/actions/index.js +282 -235
  108. package/dist/fleets/actions/index.js.map +1 -1
  109. package/dist/fleets/actions/respawn.d.ts +1 -1
  110. package/dist/fleets/actions/respawn.d.ts.map +1 -1
  111. package/dist/fleets/actions/respawn.js +8 -37
  112. package/dist/fleets/actions/respawn.js.map +1 -1
  113. package/dist/fleets/actions/ship-import.d.ts +1 -1
  114. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  115. package/dist/fleets/actions/ship-import.js +39 -91
  116. package/dist/fleets/actions/ship-import.js.map +1 -1
  117. package/dist/fleets/actions/sync.d.ts +24 -0
  118. package/dist/fleets/actions/sync.d.ts.map +1 -0
  119. package/dist/fleets/actions/sync.js +55 -0
  120. package/dist/fleets/actions/sync.js.map +1 -0
  121. package/dist/fleets/composition-stats.d.ts +101 -0
  122. package/dist/fleets/composition-stats.d.ts.map +1 -0
  123. package/dist/fleets/composition-stats.js +354 -0
  124. package/dist/fleets/composition-stats.js.map +1 -0
  125. package/dist/fleets/cooldown.d.ts +7 -4
  126. package/dist/fleets/cooldown.d.ts.map +1 -1
  127. package/dist/fleets/cooldown.js +11 -6
  128. package/dist/fleets/cooldown.js.map +1 -1
  129. package/dist/fleets/index.d.ts +1 -0
  130. package/dist/fleets/index.d.ts.map +1 -1
  131. package/dist/fleets/index.js +3 -10
  132. package/dist/fleets/index.js.map +1 -1
  133. package/dist/fleets/movement-arithmetic.d.ts.map +1 -1
  134. package/dist/fleets/movement-arithmetic.js +4 -0
  135. package/dist/fleets/movement-arithmetic.js.map +1 -1
  136. package/dist/fleets/subwarp-estimate.d.ts +3 -1
  137. package/dist/fleets/subwarp-estimate.d.ts.map +1 -1
  138. package/dist/fleets/subwarp-estimate.js +3 -1
  139. package/dist/fleets/subwarp-estimate.js.map +1 -1
  140. package/dist/fleets/warp-lane-policy.d.ts +13 -7
  141. package/dist/fleets/warp-lane-policy.d.ts.map +1 -1
  142. package/dist/fleets/warp-lane-policy.js +19 -7
  143. package/dist/fleets/warp-lane-policy.js.map +1 -1
  144. package/dist/identity/actions/create-profile.d.ts +1 -1
  145. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  146. package/dist/identity/actions/create-profile.js +2 -2
  147. package/dist/identity/actions/create-profile.js.map +1 -1
  148. package/dist/identity/actions/index.d.ts +2 -1
  149. package/dist/identity/actions/index.d.ts.map +1 -1
  150. package/dist/identity/actions/index.js +6 -4
  151. package/dist/identity/actions/index.js.map +1 -1
  152. package/dist/identity/actions/research-unlock.d.ts +61 -0
  153. package/dist/identity/actions/research-unlock.d.ts.map +1 -0
  154. package/dist/identity/actions/research-unlock.js +166 -0
  155. package/dist/identity/actions/research-unlock.js.map +1 -0
  156. package/dist/identity/index.d.ts +62 -2
  157. package/dist/identity/index.d.ts.map +1 -1
  158. package/dist/identity/index.js +63 -12
  159. package/dist/identity/index.js.map +1 -1
  160. package/dist/index.d.ts +2 -1
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +4 -4
  163. package/dist/index.js.map +1 -1
  164. package/dist/internal/c4/account-decoding.d.ts +49 -0
  165. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  166. package/dist/internal/c4/account-decoding.js +74 -0
  167. package/dist/internal/c4/account-decoding.js.map +1 -0
  168. package/dist/internal/c4/career-xp.d.ts +58 -0
  169. package/dist/internal/c4/career-xp.d.ts.map +1 -0
  170. package/dist/internal/c4/career-xp.js +80 -0
  171. package/dist/internal/c4/career-xp.js.map +1 -0
  172. package/dist/internal/c4/cargo-instructions.d.ts +27 -0
  173. package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
  174. package/dist/internal/c4/cargo-instructions.js +41 -0
  175. package/dist/internal/c4/cargo-instructions.js.map +1 -0
  176. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  177. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  178. package/dist/internal/c4/cargo-pod.js +13 -0
  179. package/dist/internal/c4/cargo-pod.js.map +1 -0
  180. package/dist/internal/c4/character-modifier.d.ts +1 -1
  181. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  182. package/dist/internal/c4/character.d.ts +157 -0
  183. package/dist/internal/c4/character.d.ts.map +1 -0
  184. package/dist/internal/c4/character.js +64 -0
  185. package/dist/internal/c4/character.js.map +1 -0
  186. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  187. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  188. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  189. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  190. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  191. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  192. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -0
  193. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  194. package/dist/internal/c4/claim-stake-definitions.js +6 -2
  195. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  196. package/dist/internal/c4/claim-stake-plots.d.ts +17 -0
  197. package/dist/internal/c4/claim-stake-plots.d.ts.map +1 -0
  198. package/dist/internal/c4/claim-stake-plots.js +29 -0
  199. package/dist/internal/c4/claim-stake-plots.js.map +1 -0
  200. package/dist/internal/c4/claim-stake-standing.d.ts +80 -0
  201. package/dist/internal/c4/claim-stake-standing.d.ts.map +1 -0
  202. package/dist/internal/c4/claim-stake-standing.js +61 -0
  203. package/dist/internal/c4/claim-stake-standing.js.map +1 -0
  204. package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
  205. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
  206. package/dist/internal/c4/claim-stake-storage.js +207 -0
  207. package/dist/internal/c4/claim-stake-storage.js.map +1 -0
  208. package/dist/internal/c4/claim-stake.d.ts +9 -6
  209. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  210. package/dist/internal/c4/claim-stake.js +24 -56
  211. package/dist/internal/c4/claim-stake.js.map +1 -1
  212. package/dist/internal/c4/combat-storage.d.ts +20 -0
  213. package/dist/internal/c4/combat-storage.d.ts.map +1 -0
  214. package/dist/internal/c4/combat-storage.js +43 -0
  215. package/dist/internal/c4/combat-storage.js.map +1 -0
  216. package/dist/internal/c4/combat.d.ts +1 -55
  217. package/dist/internal/c4/combat.d.ts.map +1 -1
  218. package/dist/internal/c4/combat.js +16 -180
  219. package/dist/internal/c4/combat.js.map +1 -1
  220. package/dist/internal/c4/crafting-storage.d.ts +20 -0
  221. package/dist/internal/c4/crafting-storage.d.ts.map +1 -0
  222. package/dist/internal/c4/crafting-storage.js +54 -0
  223. package/dist/internal/c4/crafting-storage.js.map +1 -0
  224. package/dist/internal/c4/crafting.d.ts +9 -1
  225. package/dist/internal/c4/crafting.d.ts.map +1 -1
  226. package/dist/internal/c4/crafting.js +38 -98
  227. package/dist/internal/c4/crafting.js.map +1 -1
  228. package/dist/internal/c4/currency-cache.d.ts +1 -1
  229. package/dist/internal/c4/currency-cache.d.ts.map +1 -1
  230. package/dist/internal/c4/currency-cache.js +6 -9
  231. package/dist/internal/c4/currency-cache.js.map +1 -1
  232. package/dist/internal/c4/discriminators.d.ts +93 -0
  233. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  234. package/dist/internal/c4/discriminators.js +190 -0
  235. package/dist/internal/c4/discriminators.js.map +1 -0
  236. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
  237. package/dist/internal/c4/faction-epoch-meter.js +5 -10
  238. package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
  239. package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
  240. package/dist/internal/c4/faction-treasury.js +11 -18
  241. package/dist/internal/c4/faction-treasury.js.map +1 -1
  242. package/dist/internal/c4/faction.d.ts +21 -0
  243. package/dist/internal/c4/faction.d.ts.map +1 -0
  244. package/dist/internal/c4/faction.js +23 -0
  245. package/dist/internal/c4/faction.js.map +1 -0
  246. package/dist/internal/c4/factions.d.ts +31 -3
  247. package/dist/internal/c4/factions.d.ts.map +1 -1
  248. package/dist/internal/c4/factions.js +103 -104
  249. package/dist/internal/c4/factions.js.map +1 -1
  250. package/dist/internal/c4/fleet-creation.d.ts +9 -2
  251. package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
  252. package/dist/internal/c4/fleet-creation.js +15 -18
  253. package/dist/internal/c4/fleet-creation.js.map +1 -1
  254. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  255. package/dist/internal/c4/fleet-crew-binding.js +21 -49
  256. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  257. package/dist/internal/c4/fleet-disband-layout.d.ts +7 -0
  258. package/dist/internal/c4/fleet-disband-layout.d.ts.map +1 -0
  259. package/dist/internal/c4/fleet-disband-layout.js +7 -0
  260. package/dist/internal/c4/fleet-disband-layout.js.map +1 -0
  261. package/dist/internal/c4/fleet-disband.d.ts +41 -0
  262. package/dist/internal/c4/fleet-disband.d.ts.map +1 -0
  263. package/dist/internal/c4/fleet-disband.js +86 -0
  264. package/dist/internal/c4/fleet-disband.js.map +1 -0
  265. package/dist/internal/c4/fleet-points.d.ts +3 -0
  266. package/dist/internal/c4/fleet-points.d.ts.map +1 -0
  267. package/dist/internal/c4/fleet-points.js +8 -0
  268. package/dist/internal/c4/fleet-points.js.map +1 -0
  269. package/dist/internal/c4/fleet-ship-assembly.d.ts +20 -5
  270. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
  271. package/dist/internal/c4/fleet-ship-assembly.js +62 -10
  272. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
  273. package/dist/internal/c4/fleet-storage.d.ts +44 -0
  274. package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
  275. package/dist/internal/c4/fleet-storage.js +108 -0
  276. package/dist/internal/c4/fleet-storage.js.map +1 -0
  277. package/dist/internal/c4/fleet-sync.d.ts +5 -0
  278. package/dist/internal/c4/fleet-sync.d.ts.map +1 -0
  279. package/dist/internal/c4/fleet-sync.js +15 -0
  280. package/dist/internal/c4/fleet-sync.js.map +1 -0
  281. package/dist/internal/c4/fleet.d.ts +20 -5
  282. package/dist/internal/c4/fleet.d.ts.map +1 -1
  283. package/dist/internal/c4/fleet.js +24 -84
  284. package/dist/internal/c4/fleet.js.map +1 -1
  285. package/dist/internal/c4/game.d.ts +76 -21
  286. package/dist/internal/c4/game.d.ts.map +1 -1
  287. package/dist/internal/c4/game.js +127 -116
  288. package/dist/internal/c4/game.js.map +1 -1
  289. package/dist/internal/c4/identity.d.ts +2 -153
  290. package/dist/internal/c4/identity.d.ts.map +1 -1
  291. package/dist/internal/c4/identity.js +19 -126
  292. package/dist/internal/c4/identity.js.map +1 -1
  293. package/dist/internal/c4/local-market-order.d.ts +4 -6
  294. package/dist/internal/c4/local-market-order.d.ts.map +1 -1
  295. package/dist/internal/c4/local-market-order.js +5 -6
  296. package/dist/internal/c4/local-market-order.js.map +1 -1
  297. package/dist/internal/c4/loot-layout.js +1 -1
  298. package/dist/internal/c4/loot-layout.js.map +1 -1
  299. package/dist/internal/c4/loot.d.ts +89 -0
  300. package/dist/internal/c4/loot.d.ts.map +1 -0
  301. package/dist/internal/c4/loot.js +109 -0
  302. package/dist/internal/c4/loot.js.map +1 -0
  303. package/dist/internal/c4/loyalty.d.ts +7 -3
  304. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  305. package/dist/internal/c4/loyalty.js +41 -130
  306. package/dist/internal/c4/loyalty.js.map +1 -1
  307. package/dist/internal/c4/market-storage.d.ts +25 -0
  308. package/dist/internal/c4/market-storage.d.ts.map +1 -0
  309. package/dist/internal/c4/market-storage.js +53 -0
  310. package/dist/internal/c4/market-storage.js.map +1 -0
  311. package/dist/internal/c4/market.d.ts +3 -0
  312. package/dist/internal/c4/market.d.ts.map +1 -1
  313. package/dist/internal/c4/market.js +20 -76
  314. package/dist/internal/c4/market.js.map +1 -1
  315. package/dist/internal/c4/mining-instructions.d.ts +1 -1
  316. package/dist/internal/c4/mining-instructions.d.ts.map +1 -1
  317. package/dist/internal/c4/mining-instructions.js +1 -1
  318. package/dist/internal/c4/mining-instructions.js.map +1 -1
  319. package/dist/internal/c4/open-signal.d.ts +1 -1
  320. package/dist/internal/c4/open-signal.d.ts.map +1 -1
  321. package/dist/internal/c4/open-signal.js +1 -1
  322. package/dist/internal/c4/open-signal.js.map +1 -1
  323. package/dist/internal/c4/pda.d.ts +49 -1
  324. package/dist/internal/c4/pda.d.ts.map +1 -1
  325. package/dist/internal/c4/pda.js +122 -17
  326. package/dist/internal/c4/pda.js.map +1 -1
  327. package/dist/internal/c4/profile-faction.d.ts +2 -1
  328. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  329. package/dist/internal/c4/profile-faction.js +36 -72
  330. package/dist/internal/c4/profile-faction.js.map +1 -1
  331. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  332. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  333. package/dist/internal/c4/profile-permissions.js +16 -1
  334. package/dist/internal/c4/profile-permissions.js.map +1 -1
  335. package/dist/internal/c4/rewards.d.ts +1 -34
  336. package/dist/internal/c4/rewards.d.ts.map +1 -1
  337. package/dist/internal/c4/rewards.js +23 -170
  338. package/dist/internal/c4/rewards.js.map +1 -1
  339. package/dist/internal/c4/runtime-bindings.d.ts +1 -1
  340. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  341. package/dist/internal/c4/runtime-bindings.js +1 -1
  342. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  343. package/dist/internal/c4/scan-lifecycle.d.ts +21 -3
  344. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  345. package/dist/internal/c4/scan-lifecycle.js +35 -44
  346. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  347. package/dist/internal/c4/scan-storage.d.ts +7 -0
  348. package/dist/internal/c4/scan-storage.d.ts.map +1 -0
  349. package/dist/internal/c4/scan-storage.js +10 -0
  350. package/dist/internal/c4/scan-storage.js.map +1 -0
  351. package/dist/internal/c4/scanning.d.ts +3 -13
  352. package/dist/internal/c4/scanning.d.ts.map +1 -1
  353. package/dist/internal/c4/scanning.js +25 -75
  354. package/dist/internal/c4/scanning.js.map +1 -1
  355. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  356. package/dist/internal/c4/ship-stats.js +24 -26
  357. package/dist/internal/c4/ship-stats.js.map +1 -1
  358. package/dist/internal/c4/starbase.d.ts.map +1 -1
  359. package/dist/internal/c4/starbase.js +24 -96
  360. package/dist/internal/c4/starbase.js.map +1 -1
  361. package/dist/internal/c4/stimulant.d.ts +26 -0
  362. package/dist/internal/c4/stimulant.d.ts.map +1 -0
  363. package/dist/internal/c4/stimulant.js +36 -0
  364. package/dist/internal/c4/stimulant.js.map +1 -0
  365. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  366. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  367. package/dist/internal/c4/world.d.ts +6 -2
  368. package/dist/internal/c4/world.d.ts.map +1 -1
  369. package/dist/internal/c4/world.js +32 -107
  370. package/dist/internal/c4/world.js.map +1 -1
  371. package/dist/internal/fleet-route.d.ts +12 -0
  372. package/dist/internal/fleet-route.d.ts.map +1 -0
  373. package/dist/internal/fleet-route.js +11 -0
  374. package/dist/internal/fleet-route.js.map +1 -0
  375. package/dist/internal/fleet.d.ts +3 -3
  376. package/dist/internal/fleet.d.ts.map +1 -1
  377. package/dist/internal/fleet.js +1 -5
  378. package/dist/internal/fleet.js.map +1 -1
  379. package/dist/internal/loyalty-atlas-bank-state.d.ts +3 -2
  380. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -1
  381. package/dist/internal/loyalty-atlas-bank-state.js +4 -3
  382. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -1
  383. package/dist/internal/planning/account-state.d.ts +6 -0
  384. package/dist/internal/planning/account-state.d.ts.map +1 -1
  385. package/dist/internal/planning/account-state.js +13 -0
  386. package/dist/internal/planning/account-state.js.map +1 -1
  387. package/dist/internal/planning/arrival-guards.d.ts +0 -1
  388. package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
  389. package/dist/internal/planning/arrival-guards.js +3 -18
  390. package/dist/internal/planning/arrival-guards.js.map +1 -1
  391. package/dist/internal/planning/authorization-adapter.d.ts +34 -11
  392. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  393. package/dist/internal/planning/authorization-adapter.js +116 -12
  394. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  395. package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
  396. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
  397. package/dist/internal/planning/cargo-storage-actions.js +97 -0
  398. package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
  399. package/dist/internal/planning/character-access.d.ts +28 -0
  400. package/dist/internal/planning/character-access.d.ts.map +1 -0
  401. package/dist/internal/planning/character-access.js +41 -0
  402. package/dist/internal/planning/character-access.js.map +1 -0
  403. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
  404. package/dist/internal/planning/character-registration-guard.js +2 -1
  405. package/dist/internal/planning/character-registration-guard.js.map +1 -1
  406. package/dist/internal/planning/character-registration.d.ts.map +1 -1
  407. package/dist/internal/planning/character-registration.js +2 -1
  408. package/dist/internal/planning/character-registration.js.map +1 -1
  409. package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
  410. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
  411. package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
  412. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
  413. package/dist/internal/planning/combat-storage-actions.d.ts +9 -0
  414. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -0
  415. package/dist/internal/planning/combat-storage-actions.js +55 -0
  416. package/dist/internal/planning/combat-storage-actions.js.map +1 -0
  417. package/dist/internal/planning/crafting-storage-actions.d.ts +7 -0
  418. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -0
  419. package/dist/internal/planning/crafting-storage-actions.js +64 -0
  420. package/dist/internal/planning/crafting-storage-actions.js.map +1 -0
  421. package/dist/internal/planning/currency-cache-guard.d.ts +3 -1
  422. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
  423. package/dist/internal/planning/currency-cache-guard.js +47 -2
  424. package/dist/internal/planning/currency-cache-guard.js.map +1 -1
  425. package/dist/internal/planning/democracy-history.d.ts.map +1 -1
  426. package/dist/internal/planning/democracy-history.js +6 -15
  427. package/dist/internal/planning/democracy-history.js.map +1 -1
  428. package/dist/internal/planning/direct-options.d.ts +17 -0
  429. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  430. package/dist/internal/planning/direct-options.js +43 -0
  431. package/dist/internal/planning/direct-options.js.map +1 -0
  432. package/dist/internal/planning/disband-storage-actions.d.ts +9 -0
  433. package/dist/internal/planning/disband-storage-actions.d.ts.map +1 -0
  434. package/dist/internal/planning/disband-storage-actions.js +24 -0
  435. package/dist/internal/planning/disband-storage-actions.js.map +1 -0
  436. package/dist/internal/planning/faction-enrollment.d.ts +0 -2
  437. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  438. package/dist/internal/planning/faction-enrollment.js +0 -9
  439. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  440. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
  441. package/dist/internal/planning/fleet-arrival.js +10 -8
  442. package/dist/internal/planning/fleet-arrival.js.map +1 -1
  443. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
  444. package/dist/internal/planning/fleet-attack-xp.js +5 -11
  445. package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
  446. package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
  447. package/dist/internal/planning/fleet-creation.js +17 -36
  448. package/dist/internal/planning/fleet-creation.js.map +1 -1
  449. package/dist/internal/planning/fleet-crew-guard.d.ts +2 -1
  450. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
  451. package/dist/internal/planning/fleet-crew-guard.js +2 -1
  452. package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
  453. package/dist/internal/planning/fleet-crew-transfer.d.ts +1 -1
  454. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
  455. package/dist/internal/planning/fleet-crew-transfer.js +45 -24
  456. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
  457. package/dist/internal/planning/fleet-disband-guard.d.ts +12 -0
  458. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -0
  459. package/dist/internal/planning/fleet-disband-guard.js +54 -0
  460. package/dist/internal/planning/fleet-disband-guard.js.map +1 -0
  461. package/dist/internal/planning/fleet-disband.d.ts +36 -0
  462. package/dist/internal/planning/fleet-disband.d.ts.map +1 -0
  463. package/dist/internal/planning/fleet-disband.js +82 -0
  464. package/dist/internal/planning/fleet-disband.js.map +1 -0
  465. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +3 -3
  466. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
  467. package/dist/internal/planning/fleet-dock-funding-guard.js +87 -96
  468. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
  469. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
  470. package/dist/internal/planning/fleet-dock-funding.js +10 -0
  471. package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
  472. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
  473. package/dist/internal/planning/fleet-docking-guard.js +3 -1
  474. package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
  475. package/dist/internal/planning/fleet-docking.d.ts +17 -2
  476. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  477. package/dist/internal/planning/fleet-docking.js +83 -62
  478. package/dist/internal/planning/fleet-docking.js.map +1 -1
  479. package/dist/internal/planning/fleet-rental.d.ts +5 -0
  480. package/dist/internal/planning/fleet-rental.d.ts.map +1 -0
  481. package/dist/internal/planning/fleet-rental.js +9 -0
  482. package/dist/internal/planning/fleet-rental.js.map +1 -0
  483. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
  484. package/dist/internal/planning/fleet-respawn.js +10 -12
  485. package/dist/internal/planning/fleet-respawn.js.map +1 -1
  486. package/dist/internal/planning/fleet-ship-assembly.d.ts +2 -0
  487. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
  488. package/dist/internal/planning/fleet-ship-assembly.js +94 -64
  489. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
  490. package/dist/internal/planning/fleet-state.d.ts +25 -0
  491. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  492. package/dist/internal/planning/fleet-state.js +28 -0
  493. package/dist/internal/planning/fleet-state.js.map +1 -0
  494. package/dist/internal/planning/governance-fees.d.ts.map +1 -1
  495. package/dist/internal/planning/governance-fees.js +7 -15
  496. package/dist/internal/planning/governance-fees.js.map +1 -1
  497. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
  498. package/dist/internal/planning/local-market-order-funding.js +4 -2
  499. package/dist/internal/planning/local-market-order-funding.js.map +1 -1
  500. package/dist/internal/planning/local-market-order.d.ts +4 -4
  501. package/dist/internal/planning/local-market-order.d.ts.map +1 -1
  502. package/dist/internal/planning/local-market-order.js +82 -109
  503. package/dist/internal/planning/local-market-order.js.map +1 -1
  504. package/dist/internal/planning/market-storage-actions.d.ts +7 -0
  505. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -0
  506. package/dist/internal/planning/market-storage-actions.js +71 -0
  507. package/dist/internal/planning/market-storage-actions.js.map +1 -0
  508. package/dist/internal/planning/mining-stop.d.ts.map +1 -1
  509. package/dist/internal/planning/mining-stop.js +2 -1
  510. package/dist/internal/planning/mining-stop.js.map +1 -1
  511. package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
  512. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
  513. package/dist/internal/planning/mining-storage-actions.js +57 -0
  514. package/dist/internal/planning/mining-storage-actions.js.map +1 -0
  515. package/dist/internal/planning/movement-storage-actions.d.ts +7 -0
  516. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -0
  517. package/dist/internal/planning/movement-storage-actions.js +38 -0
  518. package/dist/internal/planning/movement-storage-actions.js.map +1 -0
  519. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
  520. package/dist/internal/planning/movement-xp-guard.js +3 -2
  521. package/dist/internal/planning/movement-xp-guard.js.map +1 -1
  522. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
  523. package/dist/internal/planning/open-signal-guard.js +2 -1
  524. package/dist/internal/planning/open-signal-guard.js.map +1 -1
  525. package/dist/internal/planning/open-signal.d.ts.map +1 -1
  526. package/dist/internal/planning/open-signal.js +16 -7
  527. package/dist/internal/planning/open-signal.js.map +1 -1
  528. package/dist/internal/planning/original-token.d.ts +40 -0
  529. package/dist/internal/planning/original-token.d.ts.map +1 -0
  530. package/dist/internal/planning/original-token.js +112 -0
  531. package/dist/internal/planning/original-token.js.map +1 -0
  532. package/dist/internal/planning/own-starbase-facts.d.ts +37 -0
  533. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  534. package/dist/internal/planning/own-starbase-facts.js +52 -0
  535. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  536. package/dist/internal/planning/plan-fields.d.ts +60 -0
  537. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  538. package/dist/internal/planning/plan-fields.js +159 -0
  539. package/dist/internal/planning/plan-fields.js.map +1 -0
  540. package/dist/internal/planning/plan-guards.d.ts +4 -0
  541. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  542. package/dist/internal/planning/plan-guards.js +184 -0
  543. package/dist/internal/planning/plan-guards.js.map +1 -0
  544. package/dist/internal/planning/profile-key.d.ts +13 -0
  545. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  546. package/dist/internal/planning/profile-key.js +20 -0
  547. package/dist/internal/planning/profile-key.js.map +1 -0
  548. package/dist/internal/planning/profile-storage-funding-guard.d.ts +29 -0
  549. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
  550. package/dist/internal/planning/profile-storage-funding-guard.js +115 -0
  551. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
  552. package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
  553. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
  554. package/dist/internal/planning/profile-storage-funding.js +58 -0
  555. package/dist/internal/planning/profile-storage-funding.js.map +1 -0
  556. package/dist/internal/planning/recipe-state.d.ts +4 -1
  557. package/dist/internal/planning/recipe-state.d.ts.map +1 -1
  558. package/dist/internal/planning/recipe-state.js +7 -4
  559. package/dist/internal/planning/recipe-state.js.map +1 -1
  560. package/dist/internal/planning/region-access.d.ts +30 -0
  561. package/dist/internal/planning/region-access.d.ts.map +1 -0
  562. package/dist/internal/planning/region-access.js +94 -0
  563. package/dist/internal/planning/region-access.js.map +1 -0
  564. package/dist/internal/planning/rent-catalog.d.ts +37 -0
  565. package/dist/internal/planning/rent-catalog.d.ts.map +1 -0
  566. package/dist/internal/planning/rent-catalog.js +165 -0
  567. package/dist/internal/planning/rent-catalog.js.map +1 -0
  568. package/dist/internal/planning/research-unlock.d.ts +69 -0
  569. package/dist/internal/planning/research-unlock.d.ts.map +1 -0
  570. package/dist/internal/planning/research-unlock.js +287 -0
  571. package/dist/internal/planning/research-unlock.js.map +1 -0
  572. package/dist/internal/planning/respawn-guards.js +2 -1
  573. package/dist/internal/planning/respawn-guards.js.map +1 -1
  574. package/dist/internal/planning/runtime-guards.d.ts +0 -2
  575. package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
  576. package/dist/internal/planning/runtime-guards.js +49 -29
  577. package/dist/internal/planning/runtime-guards.js.map +1 -1
  578. package/dist/internal/planning/scan-completion-guard.d.ts +6 -6
  579. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
  580. package/dist/internal/planning/scan-completion-guard.js +8 -7
  581. package/dist/internal/planning/scan-completion-guard.js.map +1 -1
  582. package/dist/internal/planning/scan-completion.d.ts.map +1 -1
  583. package/dist/internal/planning/scan-completion.js +9 -7
  584. package/dist/internal/planning/scan-completion.js.map +1 -1
  585. package/dist/internal/planning/scan-detect-guard.d.ts +1 -1
  586. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
  587. package/dist/internal/planning/scan-detect-guard.js +2 -2
  588. package/dist/internal/planning/scan-detect-guard.js.map +1 -1
  589. package/dist/internal/planning/scan-detect.d.ts +1 -1
  590. package/dist/internal/planning/scan-detect.d.ts.map +1 -1
  591. package/dist/internal/planning/scan-detect.js +10 -8
  592. package/dist/internal/planning/scan-detect.js.map +1 -1
  593. package/dist/internal/planning/scan-idle-scope.d.ts +5 -0
  594. package/dist/internal/planning/scan-idle-scope.d.ts.map +1 -0
  595. package/dist/internal/planning/scan-idle-scope.js +5 -0
  596. package/dist/internal/planning/scan-idle-scope.js.map +1 -0
  597. package/dist/internal/planning/scan-storage-actions.d.ts +9 -0
  598. package/dist/internal/planning/scan-storage-actions.d.ts.map +1 -0
  599. package/dist/internal/planning/scan-storage-actions.js +27 -0
  600. package/dist/internal/planning/scan-storage-actions.js.map +1 -0
  601. package/dist/internal/planning/ship-import-funding.js +3 -2
  602. package/dist/internal/planning/ship-import-funding.js.map +1 -1
  603. package/dist/internal/planning/ship-token.d.ts +1 -5
  604. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  605. package/dist/internal/planning/ship-token.js +0 -36
  606. package/dist/internal/planning/ship-token.js.map +1 -1
  607. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  608. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  609. package/dist/internal/planning/starbase-player-owner.js +17 -0
  610. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  611. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +7 -0
  612. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -0
  613. package/dist/internal/planning/starbase-player-recovery-guard.js +39 -0
  614. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -0
  615. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
  616. package/dist/internal/planning/starbase-system-guard.js +2 -1
  617. package/dist/internal/planning/starbase-system-guard.js.map +1 -1
  618. package/dist/internal/planning/starbase-system.d.ts +5 -2
  619. package/dist/internal/planning/starbase-system.d.ts.map +1 -1
  620. package/dist/internal/planning/starbase-system.js +6 -3
  621. package/dist/internal/planning/starbase-system.js.map +1 -1
  622. package/dist/internal/planning/storage-action-readers.d.ts +10 -0
  623. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
  624. package/dist/internal/planning/storage-action-readers.js +58 -0
  625. package/dist/internal/planning/storage-action-readers.js.map +1 -0
  626. package/dist/internal/planning/storage-actions.d.ts +89 -0
  627. package/dist/internal/planning/storage-actions.d.ts.map +1 -0
  628. package/dist/internal/planning/storage-actions.js +183 -0
  629. package/dist/internal/planning/storage-actions.js.map +1 -0
  630. package/dist/internal/planning/token-mint.d.ts.map +1 -1
  631. package/dist/internal/planning/token-mint.js +2 -1
  632. package/dist/internal/planning/token-mint.js.map +1 -1
  633. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  634. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  635. package/dist/internal/planning/wallet-starbase.js +39 -0
  636. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  637. package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
  638. package/dist/internal/planning/xp-runtime.js +16 -20
  639. package/dist/internal/planning/xp-runtime.js.map +1 -1
  640. package/dist/internal/read-meta.d.ts +12 -0
  641. package/dist/internal/read-meta.d.ts.map +1 -1
  642. package/dist/internal/read-meta.js +10 -0
  643. package/dist/internal/read-meta.js.map +1 -1
  644. package/dist/loyalty/actions/index.d.ts +1 -1
  645. package/dist/loyalty/actions/index.d.ts.map +1 -1
  646. package/dist/loyalty/actions/index.js +12 -43
  647. package/dist/loyalty/actions/index.js.map +1 -1
  648. package/dist/loyalty/index.d.ts +4 -0
  649. package/dist/loyalty/index.d.ts.map +1 -1
  650. package/dist/loyalty/index.js +19 -27
  651. package/dist/loyalty/index.js.map +1 -1
  652. package/dist/markets/actions/index.d.ts +1 -1
  653. package/dist/markets/actions/index.d.ts.map +1 -1
  654. package/dist/markets/actions/index.js +138 -176
  655. package/dist/markets/actions/index.js.map +1 -1
  656. package/dist/markets/actions/trade-faction-market.d.ts +4 -2
  657. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
  658. package/dist/markets/actions/trade-faction-market.js +59 -39
  659. package/dist/markets/actions/trade-faction-market.js.map +1 -1
  660. package/dist/markets/index.d.ts.map +1 -1
  661. package/dist/markets/index.js +3 -11
  662. package/dist/markets/index.js.map +1 -1
  663. package/dist/mining/actions/index.d.ts +1 -1
  664. package/dist/mining/actions/index.d.ts.map +1 -1
  665. package/dist/mining/actions/index.js +81 -44
  666. package/dist/mining/actions/index.js.map +1 -1
  667. package/dist/mining/estimate-input.d.ts +103 -0
  668. package/dist/mining/estimate-input.d.ts.map +1 -0
  669. package/dist/mining/estimate-input.js +86 -0
  670. package/dist/mining/estimate-input.js.map +1 -0
  671. package/dist/mining/index.d.ts +1 -0
  672. package/dist/mining/index.d.ts.map +1 -1
  673. package/dist/mining/index.js +4 -11
  674. package/dist/mining/index.js.map +1 -1
  675. package/dist/planning/assembly.d.ts +1 -1
  676. package/dist/planning/assembly.d.ts.map +1 -1
  677. package/dist/planning/assembly.js +6 -30
  678. package/dist/planning/assembly.js.map +1 -1
  679. package/dist/planning/execution.d.ts +1 -0
  680. package/dist/planning/execution.d.ts.map +1 -1
  681. package/dist/planning/execution.js +149 -45
  682. package/dist/planning/execution.js.map +1 -1
  683. package/dist/planning/index.d.ts +70 -7
  684. package/dist/planning/index.d.ts.map +1 -1
  685. package/dist/planning/index.js +28 -1141
  686. package/dist/planning/index.js.map +1 -1
  687. package/dist/planning/plan-construction.d.ts +25 -0
  688. package/dist/planning/plan-construction.d.ts.map +1 -0
  689. package/dist/planning/plan-construction.js +143 -0
  690. package/dist/planning/plan-construction.js.map +1 -0
  691. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  692. package/dist/planning/plan-sequence-execution.js +1 -11
  693. package/dist/planning/plan-sequence-execution.js.map +1 -1
  694. package/dist/planning/plan-validation.d.ts +17 -0
  695. package/dist/planning/plan-validation.d.ts.map +1 -0
  696. package/dist/planning/plan-validation.js +147 -0
  697. package/dist/planning/plan-validation.js.map +1 -0
  698. package/dist/registry/cargo.d.ts +2 -2
  699. package/dist/registry/cargo.d.ts.map +1 -1
  700. package/dist/registry/cargo.js +3 -4
  701. package/dist/registry/cargo.js.map +1 -1
  702. package/dist/registry/definition-section-snapshot.d.ts +1 -1
  703. package/dist/registry/definition-section-snapshot.d.ts.map +1 -1
  704. package/dist/registry/definition-section-snapshot.js +10 -3
  705. package/dist/registry/definition-section-snapshot.js.map +1 -1
  706. package/dist/registry/index.d.ts +31 -4
  707. package/dist/registry/index.d.ts.map +1 -1
  708. package/dist/registry/index.js +226 -227
  709. package/dist/registry/index.js.map +1 -1
  710. package/dist/registry/onboarding.d.ts.map +1 -1
  711. package/dist/registry/onboarding.js +4 -2
  712. package/dist/registry/onboarding.js.map +1 -1
  713. package/dist/registry/ship-stats-snapshot.d.ts.map +1 -1
  714. package/dist/registry/ship-stats-snapshot.js +19 -5
  715. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  716. package/dist/registry/ships.js +1 -1
  717. package/dist/registry/ships.js.map +1 -1
  718. package/dist/rewards/index.d.ts +11 -5
  719. package/dist/rewards/index.d.ts.map +1 -1
  720. package/dist/rewards/index.js +10 -21
  721. package/dist/rewards/index.js.map +1 -1
  722. package/dist/scanning/actions/index.d.ts +1 -1
  723. package/dist/scanning/actions/index.d.ts.map +1 -1
  724. package/dist/scanning/actions/index.js +38 -8
  725. package/dist/scanning/actions/index.js.map +1 -1
  726. package/dist/scanning/index.d.ts +6 -11
  727. package/dist/scanning/index.d.ts.map +1 -1
  728. package/dist/scanning/index.js +7 -15
  729. package/dist/scanning/index.js.map +1 -1
  730. package/dist/scanning/odds.d.ts +5 -1
  731. package/dist/scanning/odds.d.ts.map +1 -1
  732. package/dist/scanning/odds.js.map +1 -1
  733. package/dist/scanning/signals.d.ts +6 -1
  734. package/dist/scanning/signals.d.ts.map +1 -1
  735. package/dist/scanning/signals.js +3 -1
  736. package/dist/scanning/signals.js.map +1 -1
  737. package/dist/starbases/actions/index.d.ts +49 -4
  738. package/dist/starbases/actions/index.d.ts.map +1 -1
  739. package/dist/starbases/actions/index.js +120 -69
  740. package/dist/starbases/actions/index.js.map +1 -1
  741. package/dist/starbases/index.d.ts +18 -0
  742. package/dist/starbases/index.d.ts.map +1 -1
  743. package/dist/starbases/index.js +24 -11
  744. package/dist/starbases/index.js.map +1 -1
  745. package/dist/world/index.d.ts +87 -13
  746. package/dist/world/index.d.ts.map +1 -1
  747. package/dist/world/index.js +88 -22
  748. package/dist/world/index.js.map +1 -1
  749. package/dist/world/planet-claim-stake-plots.d.ts +49 -40
  750. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -1
  751. package/dist/world/planet-claim-stake-plots.js +47 -40
  752. package/dist/world/planet-claim-stake-plots.js.map +1 -1
  753. package/dist/world/starbase-status.d.ts +54 -13
  754. package/dist/world/starbase-status.d.ts.map +1 -1
  755. package/dist/world/starbase-status.js +65 -0
  756. package/dist/world/starbase-status.js.map +1 -1
  757. package/package.json +2 -2
  758. package/dist/internal/c4/faction-adapter.d.ts +0 -12
  759. package/dist/internal/c4/faction-adapter.d.ts.map +0 -1
  760. package/dist/internal/c4/faction-adapter.js +0 -52
  761. package/dist/internal/c4/faction-adapter.js.map +0 -1
  762. package/dist/internal/planning/movement-character.d.ts +0 -7
  763. package/dist/internal/planning/movement-character.d.ts.map +0 -1
  764. package/dist/internal/planning/movement-character.js +0 -41
  765. package/dist/internal/planning/movement-character.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-docking.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAoB5D,kFAAkF;AAClF,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,GACA,OAAO,CAAC,IAAI,CAAC,CAuGf"}
1
+ {"version":3,"file":"fleet-docking.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAO9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA6C5D;;;;;;;;;sDASsD;AACtD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE;IACR,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;CACjD,EACD,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC,GACA,OAAO,CAAC,IAAI,CAAC,CA8Hf"}
@@ -1,85 +1,106 @@
1
- import { getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
2
- import { SAGE_PROGRAM_ADDRESS, FACTION_OWNERSHIP_DISCRIMINATOR, FACTION_RELATION_TRACKER_DISCRIMINATOR, getFactionOwnershipDecoder, getFactionRelationTrackerDecoder, } from '../c4/runtime-bindings.js';
3
- import { adapter } from '../c4/faction-adapter.js';
1
+ import { getAddressEncoder } from '@solana/kit';
2
+ import { SAGE_PROGRAM_ADDRESS, getFactionOwnershipDecoder, getFactionRelationTrackerDecoder, } from '../c4/runtime-bindings.js';
3
+ import { defineAccount } from '../c4/account-decoding.js';
4
4
  import { SageSdkError } from '../../client/errors.js';
5
+ import { FACTION_OWNERSHIP_DISCRIMINATOR, FACTION_RELATION_TRACKER_DISCRIMINATOR, } from '../c4/discriminators.js';
6
+ import { deriveFactionRelationTrackerPda, deriveStarbaseOwnershipPda, } from '../c4/factions.js';
7
+ import { factionValue } from '../c4/faction.js';
8
+ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../c4/starbase.js';
9
+ import { starSystemAccountDefinition } from '../c4/world.js';
5
10
  // Reuse the exact generated codecs and shared raw-account validation without
6
11
  // bringing unrelated faction gameplay projections into the Plan execution bundle.
7
- const trackerDefinition = /* @__PURE__ */ adapter({
12
+ const trackerDefinition = /* @__PURE__ */ defineAccount({
8
13
  type: 'factionRelationTracker',
14
+ programAddress: SAGE_PROGRAM_ADDRESS,
9
15
  discriminator: FACTION_RELATION_TRACKER_DISCRIMINATOR,
10
- minimumDataLength: 78,
11
- decoder: /* @__PURE__ */ getFactionRelationTrackerDecoder(),
12
- translate: (value) => value,
13
- });
14
- const ownershipDefinition = /* @__PURE__ */ adapter({
16
+ length: 78,
17
+ }, getFactionRelationTrackerDecoder, (value) => value);
18
+ const ownershipDefinition = /* @__PURE__ */ defineAccount({
15
19
  type: 'factionOwnership',
20
+ programAddress: SAGE_PROGRAM_ADDRESS,
16
21
  discriminator: FACTION_OWNERSHIP_DISCRIMINATOR,
17
- minimumDataLength: 145,
22
+ length: 145,
18
23
  exact: true,
19
- decoder: /* @__PURE__ */ getFactionOwnershipDecoder(),
20
- translate: (value) => value,
21
- });
22
- /** Validates only the measured legacy-controller/default-gating docking route. */
23
- export async function validateFleetDockingPolicy(tracker, ownership, scope) {
24
+ }, getFactionOwnershipDecoder, (value) => value);
25
+ // Callers pass decoded faction ids 0–3 only.
26
+ const FACTION_NAMES = ['Unaligned', 'MUD', 'ONI', 'Ustur'];
27
+ const factionName = (id) => FACTION_NAMES[id];
28
+ /** Validates the docking admission the program applies, for the cases the SDK
29
+ * can decide exactly. The legacy Starbase owner, Starbase generation and
30
+ * Starbase Player faction are decoded from the fresh System and Starbase
31
+ * Player the instruction docks against, never taken from the saved Plan. A Starbase Player of the controlling faction always
32
+ * docks, whatever the territory and economics flags. A foreign Starbase
33
+ * Player is refused while territory access is disabled. Foreign docking under
34
+ * territory access (relationship and standing) and dynamic-faction operators
35
+ * stay unsupported. The controller is the legacy Starbase owner unless dynamic
36
+ * capture is enabled and a current ownership sidecar records another faction;
37
+ * an uninitialized sidecar means the legacy owner. */
38
+ export async function validateFleetDockingPolicy(accounts, scope) {
24
39
  const invalid = (address, cause) => {
25
40
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}. Refresh the indicated faction account for the configured Game and System, verify its current binding version, and recreate the docking Plan.`, { address });
26
41
  };
27
- if (!tracker)
28
- invalid(scope.address, `missing Game faction relation tracker ${scope.address}`);
29
- if (!ownership)
30
- invalid(scope.ownership, `missing System ownership ${scope.ownership}`);
31
- if (tracker.executable)
32
- invalid(scope.address, `Game faction relation tracker ${scope.address} is executable`);
33
- if (ownership.executable)
34
- invalid(scope.ownership, `System ownership ${scope.ownership} is executable`);
35
- if (tracker.address !== scope.address)
36
- invalid(scope.address, `Game faction relation tracker ${scope.address} returned account ${tracker.address}`);
37
- if (ownership.address !== scope.ownership)
38
- invalid(scope.ownership, `System ownership ${scope.ownership} returned account ${ownership.address}`);
42
+ // Every account must be present, non-executable and at its expected address.
43
+ const read = (raw, address, label) => {
44
+ if (!raw)
45
+ invalid(address, `missing ${label} ${address}`);
46
+ if (raw.executable)
47
+ invalid(address, `${label} ${address} is executable`);
48
+ if (raw.address !== address)
49
+ invalid(address, `${label} ${address} returned account ${raw.address}`);
50
+ return raw;
51
+ };
52
+ const tracker = read(accounts.tracker, scope.address, 'Game faction relation tracker');
39
53
  const [trackerPda, ownershipPda] = await Promise.all([
40
- getProgramDerivedAddress({
41
- programAddress: SAGE_PROGRAM_ADDRESS,
42
- seeds: [
43
- new TextEncoder().encode('FactionRelations'),
44
- getAddressEncoder().encode(scope.game),
45
- ],
46
- }),
47
- getProgramDerivedAddress({
48
- programAddress: SAGE_PROGRAM_ADDRESS,
49
- seeds: [
50
- new TextEncoder().encode('FactionOwnership'),
51
- getAddressEncoder().encode(scope.game),
52
- new Uint8Array([0]),
53
- getAddressEncoder().encode(scope.system),
54
- ],
55
- }),
54
+ deriveFactionRelationTrackerPda(scope.game),
55
+ deriveStarbaseOwnershipPda(scope.game, scope.system),
56
56
  ]);
57
57
  const relation = trackerDefinition.decode(tracker);
58
- const owner = ownershipDefinition.decode(ownership);
59
58
  if (relation.version !== 0)
60
59
  invalid(scope.address, `Game faction relation tracker ${scope.address} has unsupported account version ${String(relation.version)}`);
61
- if (owner.version !== 0)
62
- invalid(scope.ownership, `System ownership ${scope.ownership} has unsupported account version ${String(owner.version)}`);
63
60
  if (trackerPda[0] !== scope.address ||
64
61
  relation.bump !== trackerPda[1] ||
65
62
  relation.gameId !== scope.game)
66
63
  invalid(scope.address, `Game faction relation tracker ${scope.address} does not match its canonical Game identity or PDA`);
67
- if (ownershipPda[0] !== scope.ownership ||
68
- owner.bump !== ownershipPda[1] ||
69
- owner.gameId !== scope.game ||
70
- owner.assetKind !== 0 ||
71
- !getAddressEncoder()
72
- .encode(scope.system)
73
- .every((byte, index) => owner.assetKey[index] === byte))
74
- invalid(scope.ownership, `System ownership ${scope.ownership} does not match its canonical Game/System identity or PDA`);
75
- const unsupported = (address, cause) => {
76
- throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}; this policy is unsupported by the qualified docking route. Choose a System with controller 0–3 and disabled territory/economic gates, or use independently qualified SDK support for this policy. Refresh the faction accounts and recreate the Plan after the policy changes.`, { address });
64
+ if (ownershipPda[0] !== scope.ownership)
65
+ invalid(scope.ownership, `System ownership ${scope.ownership} is not the canonical ownership PDA for this System`);
66
+ const system = starSystemAccountDefinition.decode(read(accounts.system, scope.system, 'Star System'));
67
+ if (system.game !== scope.game || system.starbase === undefined)
68
+ invalid(scope.system, `Star System ${scope.system} is not an active Starbase System of this Game`);
69
+ const player = starbasePlayerAccountDefinition.decode(read(accounts.starbasePlayer, scope.starbasePlayer, 'Starbase Player'));
70
+ if (player.system !== scope.system ||
71
+ (await deriveStarbasePlayerAddress(scope.system, player.character)) !==
72
+ scope.starbasePlayer)
73
+ invalid(scope.starbasePlayer, `Starbase Player ${scope.starbasePlayer} is not its Character's canonical Starbase Player at this System`);
74
+ const playerFaction = factionValue(player.faction);
75
+ // An uninitialized ownership sidecar means the legacy Starbase owner.
76
+ let controller = factionValue(system.starbase.owner);
77
+ if (accounts.ownership !== undefined) {
78
+ const owner = ownershipDefinition.decode(read(accounts.ownership, scope.ownership, 'System ownership'));
79
+ if (owner.version !== 0)
80
+ invalid(scope.ownership, `System ownership ${scope.ownership} has unsupported account version ${String(owner.version)}`);
81
+ if (owner.bump !== ownershipPda[1] ||
82
+ owner.gameId !== scope.game ||
83
+ owner.assetKind !== 0 ||
84
+ !getAddressEncoder()
85
+ .encode(scope.system)
86
+ .every((byte, index) => owner.assetKey[index] === byte))
87
+ invalid(scope.ownership, `System ownership ${scope.ownership} does not match its canonical Game/System identity or PDA`);
88
+ if (relation.dynamicCaptureEnabled !== 0) {
89
+ if (owner.capturedSeqId !== system.sequenceId)
90
+ invalid(scope.ownership, `System ownership ${scope.ownership} records Starbase generation ${String(owner.capturedSeqId)}, not the current ${String(system.sequenceId)}, and the chain refuses docking against a stale ownership record`);
91
+ if (owner.controllingFaction !== 0)
92
+ controller = owner.controllingFaction;
93
+ }
94
+ }
95
+ if (controller === playerFaction)
96
+ return;
97
+ const unsupported = (cause) => {
98
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}; the SDK does not model this admission. Dock at a Starbase your faction controls, or simulate and qualify this case separately. Refresh the faction accounts and recreate the Plan after the policy changes.`, { address: scope.address });
77
99
  };
78
- if (relation.territoryAccessEnabled !== 0)
79
- unsupported(scope.address, 'territory access gating is enabled');
80
- if (relation.crossFactionEconomicsEnabled !== 0)
81
- unsupported(scope.address, 'cross-faction economic gating is enabled');
82
- if (owner.controllingFaction > 3)
83
- unsupported(scope.ownership, `controller ${String(owner.controllingFaction)} governs this System`);
100
+ if (controller > 3)
101
+ unsupported(`dynamic faction ${String(controller)} controls this Starbase, and only its configured operator Profile docks without standing`);
102
+ if (relation.territoryAccessEnabled === 0)
103
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: the Starbase is controlled by ${factionName(controller)} and your Starbase Player belongs to ${factionName(playerFaction)}. With territory access disabled only the controlling faction can dock. Dock at a Starbase your faction controls instead.`, { address: scope.address });
104
+ unsupported(`the Starbase is controlled by ${factionName(controller)}, and foreign docking under territory access depends on diplomacy and standing`);
84
105
  }
85
106
  //# sourceMappingURL=fleet-docking.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-docking.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-docking.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,+BAA+B,EAC/B,sCAAsC,GACvC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,6EAA6E;AAC7E,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,eAAe,CAAC,aAAa,CACrD;IACE,IAAI,EAAE,wBAAwB;IAC9B,cAAc,EAAE,oBAAoB;IACpC,aAAa,EAAE,sCAAsC;IACrD,MAAM,EAAE,EAAE;CACX,EACD,gCAAgC,EAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CACjB,CAAC;AACF,MAAM,mBAAmB,GAAG,eAAe,CAAC,aAAa,CACvD;IACE,IAAI,EAAE,kBAAkB;IACxB,cAAc,EAAE,oBAAoB;IACpC,aAAa,EAAE,+BAA+B;IAC9C,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,IAAI;CACZ,EACD,0BAA0B,EAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CACjB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAU,CAAC;AACpE,MAAM,WAAW,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAE,CAAC;AAE/D;;;;;;;;;sDASsD;AACtD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAKC,EACD,KAMC;IAED,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,KAAa,EAAS,EAAE;QACzD,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,0BAA0B,KAAK,CAAC,MAAM,KAAK,KAAK,gJAAgJ,EAChM,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC,CAAC;IACF,6EAA6E;IAC7E,MAAM,IAAI,GAAG,CACX,GAA2B,EAC3B,OAAgB,EAChB,KAAa,EACD,EAAE;QACd,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;QAC1D,IAAI,GAAI,CAAC,UAAU;YAAE,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,gBAAgB,CAAC,CAAC;QAC3E,IAAI,GAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,qBAAqB,GAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,GAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAClB,QAAQ,CAAC,OAAO,EAChB,KAAK,CAAC,OAAO,EACb,+BAA+B,CAChC,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,+BAA+B,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3C,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;KACrD,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC;QACxB,OAAO,CACL,KAAK,CAAC,OAAO,EACb,iCAAiC,KAAK,CAAC,OAAO,oCAAoC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAC7G,CAAC;IACJ,IACE,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO;QAC/B,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;QAC/B,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;QAE9B,OAAO,CACL,KAAK,CAAC,OAAO,EACb,iCAAiC,KAAK,CAAC,OAAO,oDAAoD,CACnG,CAAC;IACJ,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS;QACrC,OAAO,CACL,KAAK,CAAC,SAAS,EACf,oBAAoB,KAAK,CAAC,SAAS,qDAAqD,CACzF,CAAC;IAEJ,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CACnD,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7D,OAAO,CACL,KAAK,CAAC,MAAM,EACZ,eAAe,KAAK,CAAC,MAAM,gDAAgD,CAC5E,CAAC;IACJ,MAAM,MAAM,GAAG,+BAA+B,CAAC,MAAM,CACnD,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,iBAAiB,CAAC,CACvE,CAAC;IACF,IACE,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAC9B,CAAC,MAAM,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACjE,KAAK,CAAC,cAAc;QAEtB,OAAO,CACL,KAAK,CAAC,cAAc,EACpB,mBAAmB,KAAK,CAAC,cAAc,kEAAkE,CAC1G,CAAC;IACJ,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnD,sEAAsE;IACtE,IAAI,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,QAAS,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CACtC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAC9D,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;YACrB,OAAO,CACL,KAAK,CAAC,SAAS,EACf,oBAAoB,KAAK,CAAC,SAAS,oCAAoC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAC/F,CAAC;QACJ,IACE,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAC3B,KAAK,CAAC,SAAS,KAAK,CAAC;YACrB,CAAC,iBAAiB,EAAE;iBACjB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;iBACpB,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;YAEzD,OAAO,CACL,KAAK,CAAC,SAAS,EACf,oBAAoB,KAAK,CAAC,SAAS,2DAA2D,CAC/F,CAAC;QACJ,IAAI,QAAQ,CAAC,qBAAqB,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC,UAAU;gBAC3C,OAAO,CACL,KAAK,CAAC,SAAS,EACf,oBAAoB,KAAK,CAAC,SAAS,gCAAgC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,kEAAkE,CAC/M,CAAC;YACJ,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC;gBAAE,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,aAAa;QAAE,OAAO;IACzC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAS,EAAE;QAC3C,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,0BAA0B,KAAK,CAAC,MAAM,KAAK,KAAK,+MAA+M,EAC/P,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAC3B,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,UAAU,GAAG,CAAC;QAChB,WAAW,CACT,mBAAmB,MAAM,CAAC,UAAU,CAAC,0FAA0F,CAChI,CAAC;IACJ,IAAI,QAAQ,CAAC,sBAAsB,KAAK,CAAC;QACvC,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,0BAA0B,KAAK,CAAC,MAAM,mCAAmC,WAAW,CAAC,UAAU,CAAC,wCAAwC,WAAW,CAAC,aAAa,CAAC,2HAA2H,EAC7R,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAC3B,CAAC;IACJ,WAAW,CACT,iCAAiC,WAAW,CAAC,UAAU,CAAC,gFAAgF,CACzI,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Address } from '@solana/kit';
2
+ /** How a Fleet with a sub-profile is held: the SAGE program address marks a
3
+ * Fleet listed for rent with no renter; any other address is the renter. */
4
+ export declare function describeFleetRental(subProfile: Address): string;
5
+ //# sourceMappingURL=fleet-rental.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-rental.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-rental.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C;4EAC4E;AAC5E,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAI/D"}
@@ -0,0 +1,9 @@
1
+ import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
2
+ /** How a Fleet with a sub-profile is held: the SAGE program address marks a
3
+ * Fleet listed for rent with no renter; any other address is the renter. */
4
+ export function describeFleetRental(subProfile) {
5
+ return subProfile === SAGE_PROGRAM_ADDRESS
6
+ ? 'listed for rent'
7
+ : `rented to Profile ${subProfile}`;
8
+ }
9
+ //# sourceMappingURL=fleet-rental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-rental.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-rental.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;4EAC4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,UAAmB;IACrD,OAAO,UAAU,KAAK,oBAAoB;QACxC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,qBAAqB,UAAU,EAAE,CAAC;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-respawn.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-respawn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAqCzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAOD,6FAA6F;AAC7F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,kBAAkB,EACzB,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,EACD,UAAU,GAAE,UAAwB;;;;;;;;;;GAqOrC"}
1
+ {"version":3,"file":"fleet-respawn.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-respawn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AA2CzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAOD,6FAA6F;AAC7F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,kBAAkB,EACzB,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,EACD,UAAU,GAAE,UAAwB;;;;;;;;;;GAuNrC"}
@@ -6,7 +6,8 @@ import { requireGameAddress } from '../game-context.js';
6
6
  import { readFreshGameShipAssemblyCatalog } from '../../registry/ships.js';
7
7
  import { readFreshGameRuntimeVersion } from '../../registry/xp-runtime.js';
8
8
  import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
9
- import { characterAccountDefinition, profileAccountDefinition, findCharacterPda, } from '../c4/identity.js';
9
+ import { profileAccountDefinition } from '../c4/identity.js';
10
+ import { characterAccountDefinition, findCharacterPda, } from '../c4/character.js';
10
11
  import { starSystemAccountDefinition, deriveStarSystemAddress, } from '../c4/world.js';
11
12
  import { starbasePlayerAccountDefinition, deriveStarbasePlayerAddress, } from '../c4/starbase.js';
12
13
  import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../c4/factions.js';
@@ -16,6 +17,7 @@ import { fleetRespawnSize, fleetRespawnInstruction, } from '../c4/fleet-respawn.
16
17
  import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
17
18
  import { RENT_ADDRESS, readRent } from './rent.js';
18
19
  import { hashAccountState } from './account-state.js';
20
+ import { directProfileKey, grantsPermission, hasPermissionBit, profileKeyExpired, } from './profile-key.js';
19
21
  function fail(message) {
20
22
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the Fleet and required recovery accounts, then recreate and inspect the recovery Plan before signing.`);
21
23
  }
@@ -49,9 +51,8 @@ export async function resolveFleetRespawn(ctx, input, expected, commitment = 'co
49
51
  const rows = await readContextRawAccounts(ctx, addresses, {
50
52
  commitment,
51
53
  });
52
- if (rows.length !== addresses.length ||
53
- rows.some((raw, i) => raw && (raw.address !== addresses[i] || raw.executable)))
54
- fail('Recovery account reads are incomplete or contain mismatched addresses or executable accounts.');
54
+ if (rows.some((raw) => raw?.executable))
55
+ fail('Recovery account reads contain an executable account.');
55
56
  const accounts = new Map(addresses.map((address, i) => [address, rows[i]]));
56
57
  const required = (address) => accounts.get(address) ?? fail(`Recovery account ${address} is missing.`);
57
58
  const fleetRaw = required(intent.fleet), profileRaw = required(intent.profile);
@@ -134,16 +135,13 @@ export async function resolveFleetRespawn(ctx, input, expected, commitment = 'co
134
135
  fail('Recovery fees or Profile rent debit now exceed the amounts approved by this Plan.');
135
136
  if (profileRaw.lamports < rent(profileRaw.data.length) + profileDebit)
136
137
  fail('The Profile cannot fund Fleet storage growth while preserving its own rent reserve. Fund the Profile or Fleet explicitly.');
137
- const key = profile.keys[intent.keyIndex];
138
- if (!key ||
139
- key.address !== intent.authority ||
140
- (key.expiresAtRaw >= 0n && key.expiresAtRaw < now))
138
+ const key = directProfileKey(profile.keys, intent.keyIndex, intent.authority);
139
+ if (!key || profileKeyExpired(key, now))
141
140
  fail('Recovery authority is not the selected current unexpired direct Profile key.');
142
- const auth = key.scope === PROFILE_SCOPE && (key.permissionsRaw & 1n) !== 0n;
143
- if (!auth &&
144
- !(key.scope === SAGE_SCOPE && (key.permissionsRaw & (1n << 21n)) !== 0n))
141
+ const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
142
+ if (!auth && !grantsPermission(key, SAGE_SCOPE, 21n))
145
143
  fail('Recovery requires a direct Profile AUTH key or SAGE respawn permission.');
146
- if (profileDebit > 0n && !auth && (key.permissionsRaw & (1n << 63n)) === 0n)
144
+ if (profileDebit > 0n && !auth && !hasPermissionBit(key, 63n))
147
145
  fail('Recovery storage growth requires Profile vault funding authority. Explicitly prefund the Fleet or choose an authorized drainSolVault key.');
148
146
  return {
149
147
  instruction: fleetRespawnInstruction(intent, {
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-respawn.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-respawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-respawn.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-respawn.ts"],"names":[],"mappings":"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"}
@@ -32,5 +32,7 @@ export declare function validateFleetShipAssembly(input: FleetShipAssemblyIntent
32
32
  profileReserve: bigint;
33
33
  fleetRent: bigint;
34
34
  configHash: string;
35
+ /** Components moved from the StarbasePlayer into the Fleet, by cargo id. */
36
+ components: ReadonlyMap<number, bigint>;
35
37
  }>;
36
38
  //# sourceMappingURL=fleet-ship-assembly.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-ship-assembly.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-ship-assembly.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAuB5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AACD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,yBAAyB,CAAC,CAkBpC;AAID,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,EACD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CA0MD"}
1
+ {"version":3,"file":"fleet-ship-assembly.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-ship-assembly.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAgB5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AACD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,yBAAyB,CAAC,CAkBpC;AAID,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,EACD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAAC,CA2OD"}
@@ -1,15 +1,18 @@
1
+ import { SYSTEM_PROGRAM } from '../system-program.js';
2
+ import { describeFleetRental } from './fleet-rental.js';
1
3
  import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
2
- import { fleetShipAssemblySize, isBasicFleetAssemblyShip, } from '../c4/fleet-ship-assembly.js';
4
+ import { MAX_COMMANDERS_AND_TITANS_PER_FLEET, MAX_TITANS_PER_FLEET, fleetCapacityPoints, fleetShipAssemblySize, prospectiveShipCounts, shipSizeName, shipSizeRank, starbasePlayerEscrowGrowth, } from '../c4/fleet-ship-assembly.js';
3
5
  import { decodeGameShipAssemblyCatalog, hashShipAssemblyConfiguration, } from '../../registry/ships.js';
4
6
  import { isOffCurveAddress } from '@solana/kit';
5
7
  import { SageSdkError } from '../../client/errors.js';
6
- import { profileAccountDefinition, characterAccountDefinition, findCharacterPda, } from '../c4/identity.js';
7
- import { profileFactionAccountDefinition, deriveProfileFactionAddress, } from '../c4/profile-faction.js';
8
- import { starbasePlayerAccountDefinition, deriveStarbasePlayerAddress, } from '../c4/starbase.js';
9
- import { starSystemAccountDefinition, deriveStarSystemAddress, } from '../c4/world.js';
8
+ import { findCharacterPda } from '../c4/character.js';
9
+ import { deriveProfileFactionAddress } from '../c4/profile-faction.js';
10
+ import { deriveStarbasePlayerAddress } from '../c4/starbase.js';
10
11
  import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
11
12
  import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
12
13
  import { RENT_ADDRESS, readRent } from './rent.js';
14
+ import { directProfileKey, grantsPermission, hasPermissionBit, profileKeyExpired, } from './profile-key.js';
15
+ import { readOwnStarbaseFacts } from './own-starbase-facts.js';
13
16
  export async function resolveFleetShipAssembly(input) {
14
17
  const intent = { ...input };
15
18
  const [character, profileFaction] = await Promise.all([
@@ -40,36 +43,18 @@ export async function validateFleetShipAssembly(input, resolved, accounts, expec
40
43
  const raw = accounts.get(address);
41
44
  if (!raw)
42
45
  fail(address, `${name} ${address} is missing. Create or select the required account, then replan ship assembly.`);
43
- if (raw.address !== address || raw.executable)
44
- fail(address, `${name} ${address} has a contradictory address or is executable. Refresh valid account state before assembling ships.`);
46
+ if (raw.executable)
47
+ fail(address, `${name} ${address} is executable. Refresh valid account state before assembling ships.`);
45
48
  return raw;
46
49
  };
47
- const profileRaw = required(resolved.profile, 'Profile');
48
- const profile = profileAccountDefinition.decode(profileRaw);
49
- const character = characterAccountDefinition.decode(required(resolved.character, 'Character'));
50
- const faction = profileFactionAccountDefinition.decode(required(resolved.profileFaction, 'ProfileFaction'));
51
- const system = starSystemAccountDefinition.decode(required(resolved.system, 'Star System'));
52
- const player = starbasePlayerAccountDefinition.decode(required(resolved.starbasePlayer, 'StarbasePlayer'));
53
- if (character.game !== intent.game ||
54
- character.playerProfile !== intent.profile)
55
- fail(resolved.character, 'The Character belongs to a different Game or Profile. Refresh the canonical Character and replan ship assembly.');
56
- if (faction.profile !== intent.profile)
57
- fail(resolved.profileFaction, 'The faction membership belongs to a different Profile. Refresh the canonical membership before assembling ships.');
58
- if (system.game !== intent.game ||
59
- (await deriveStarSystemAddress(system.game, system.systemId)) !==
60
- intent.system ||
61
- !system.starbase)
62
- fail(resolved.system, 'The selected System is not canonical for this Game or has no Starbase. Choose a valid Starbase System and replan.');
63
- if (player.playerProfile !== intent.profile ||
64
- player.character !== resolved.character ||
65
- player.system !== intent.system ||
66
- player.faction !== faction.faction)
67
- fail(resolved.starbasePlayer, 'The StarbasePlayer has a different Profile, Character, System or faction relationship. Refresh the canonical StarbasePlayer and replan.');
68
- if (faction.faction === 'unaligned' ||
69
- system.starbase.owner !== faction.faction)
70
- fail(resolved.system, 'This planner supports an existing own-faction StarbasePlayer only. Select an own-faction Starbase; other diplomacy or access routes require separate supported planning.');
71
- if (system.starbase.level !== 'css')
72
- fail(resolved.system, 'Ship assembly currently supports own-faction CSS Starbases only. Dock at an own-faction CSS Starbase and replan; other access routes need separate support.');
50
+ // The program assembles at any Starbase where the Character has a current
51
+ // StarbasePlayer of the Fleet's faction, whoever owns the Starbase.
52
+ const { profileRaw, profile, character, faction, system, player } = await readOwnStarbaseFacts(intent, resolved, required, {
53
+ replan: 'replan ship assembly',
54
+ before: 'before assembling ships',
55
+ }, { anyStarbase: true });
56
+ if (player.sequenceId !== system.sequenceId)
57
+ fail(resolved.starbasePlayer, `The StarbasePlayer belongs to Starbase generation ${String(player.sequenceId)}, but the Starbase is at generation ${String(system.sequenceId)}; the program treats it as destroyed. Register a current StarbasePlayer at this Starbase and replan ship assembly.`);
73
58
  const fleetRaw = required(resolved.fleet, 'Fleet');
74
59
  const fleet = fleetAccountDefinition.decode(fleetRaw);
75
60
  if ((await deriveFleetAddress(fleet)) !== intent.address ||
@@ -79,59 +64,104 @@ export async function validateFleetShipAssembly(input, resolved, accounts, expec
79
64
  fleet.npcFactionId !== 0)
80
65
  fail(resolved.fleet, 'The Fleet has a noncanonical address or different Game, Profile, faction or NPC affiliation. Select a canonical owned player Fleet and replan ship assembly.');
81
66
  if (fleet.state.kind !== 'docked' || fleet.state.system !== intent.system)
82
- fail(resolved.fleet, 'Ship assembly requires the Fleet to remain Docked at the selected System. Dock at an own-faction CSS Starbase and replan.');
67
+ fail(resolved.fleet, 'Ship assembly requires the Fleet to remain Docked at the selected System. Dock at a Starbase where the Character has a current StarbasePlayer and replan.');
68
+ // A Fleet listed for rent (SAGE address) or rented to a sub-profile is
69
+ // never given ships by the program.
70
+ if (fleet.subProfile !== SYSTEM_PROGRAM)
71
+ fail(resolved.fleet, `The Fleet is ${describeFleetRental(fleet.subProfile)}, and ships cannot be added to it. End the rental, refresh the Fleet, and replan ship assembly.`);
72
+ // The program needs full AP, SP and HP. HP can only recover from the
73
+ // pending repair reservoir, so a Fleet whose HP plus reservoir is below its
74
+ // maximum can never qualify; AP and SP recover on timers and stay
75
+ // chain-authoritative.
76
+ if (fleet.hp + fleet.pendingHp < fleet.stats.combat.hp)
77
+ fail(resolved.fleet, `The Fleet has ${String(fleet.hp)} HP and ${String(fleet.pendingHp)} pending repair, below its ${String(fleet.stats.combat.hp)} maximum, and ships can only be added to a fully repaired Fleet. Repair the Fleet, refresh it, and replan ship assembly.`);
83
78
  const gameRaw = required(resolved.game, 'Game');
84
79
  const definitions = catalog ?? decodeGameShipAssemblyCatalog(gameRaw);
85
80
  if (fleet.shipDefinitionsSeqId !== definitions.sequenceId)
86
- fail(resolved.fleet, 'This SDK route supports current ship-definition sequences only. Refresh the Fleet definitions through a supported game client, then replan; stale-sequence refresh behavior remains chain-authoritative.');
81
+ fail(resolved.fleet, 'The Fleet was built under older ship definitions. The program resynchronizes it inside the assembly, which can change its stats, and this SDK plans current Fleets only. Plan planSyncFleetWithGame, confirm it, then replan.');
87
82
  const selected = definitions.rows.find((row) => row.id === intent.shipId);
88
- if (!isBasicFleetAssemblyShip(selected))
89
- fail(resolved.game, 'The selected ship ID is unresolved or is not a requirements-free XXS configuration. Select a defined requirements-free XXS configuration; research, component and other size routes need separate support.');
90
- // Every validated stored maxShipSize enum permits XXS, the smallest pinned size.
91
- let quantity = 0n;
92
- for (const entry of fleet.fleetShips) {
93
- if (entry.quantity === 0n)
94
- continue;
95
- if (!isBasicFleetAssemblyShip(definitions.rows.find((row) => row.id === entry.shipId)))
96
- fail(resolved.fleet, 'The Fleet already contains a positive unresolved or unsupported ship configuration. Use a Fleet containing only resolved requirements-free XXS ships; mixed-size capacity needs separate support.');
97
- quantity += entry.quantity;
98
- }
83
+ if (!selected)
84
+ fail(resolved.game, `Ship configuration ${String(intent.shipId)} is not in the current Game ship definitions. Select a defined configuration and replan.`);
85
+ // The program moves each required component, times the ship amount, from
86
+ // the StarbasePlayer's cargo into the Fleet's components pod; they are
87
+ // stored, not consumed. A missing or short line makes it refuse.
88
+ const components = new Map();
89
+ for (const [cargoId, required] of selected.componentRequirements)
90
+ components.set(cargoId, BigInt(required) * intent.amount);
91
+ const held = new Map(player.cargo.amounts.map(({ cargoId, amount }) => [cargoId, amount]));
92
+ const short = [...components].filter(([cargoId, moved]) => (held.get(cargoId) ?? 0n) < moved);
93
+ if (short.length > 0)
94
+ fail(resolved.starbasePlayer, `Ship configuration ${String(intent.shipId)} needs components the StarbasePlayer does not hold: ${short.map(([cargoId, moved]) => `${String(moved)} of cargo ${String(cargoId)} (holds ${String(held.get(cargoId) ?? 0n)})`).join(', ')}. Buy, craft or move them to this StarbasePlayer, or reduce the amount, then replan.`);
95
+ const size = shipSizeName(selected.sizeClass);
96
+ const maxSize = character.modifiers.values.maxShipSize;
97
+ if (selected.sizeClass > shipSizeRank(maxSize))
98
+ fail(resolved.character, `Ship configuration ${String(intent.shipId)} is ${size}, above the Character's maximum ship size ${maxSize}. Unlock research that raises the maximum ship size, then replan.`);
99
+ const tags = character.modifiers.values.researchTags;
100
+ const missing = selected.researchRequirements.filter((tag) => !tags.includes(tag));
101
+ if (missing.length > 0)
102
+ fail(resolved.character, `Ship configuration ${String(intent.shipId)} requires every research tag in [${selected.researchRequirements.join(', ')}]; the Character lacks [${missing.join(', ')}]. Unlock the research nodes that grant them, then replan.`);
99
103
  const current = fleet.fleetShips.find((entry) => entry.shipId === intent.shipId)
100
104
  ?.quantity ?? 0n;
101
105
  if (current + intent.amount > 18446744073709551615n)
102
106
  fail(resolved.fleet, 'The resulting Fleet ship quantity exceeds the stored u64 limit. Select a smaller valid quantity and replan.');
103
- if (quantity + intent.amount > BigInt(character.modifiers.values.fleetSize))
104
- fail(resolved.character, 'The requested ships exceed the Character stored Fleet-size capacity. Reduce the amount or refresh changed Character modifiers, then replan.');
105
- if (quantity + intent.amount > BigInt(definitions.maxFleetSize))
106
- fail(resolved.game, 'The requested ships exceed the Game ship-assembly capacity. Reduce the resulting Fleet composition to fit the current Game limit, then replan; a larger Character allowance does not override it.');
107
- const entitlement = player.shipsInEscrow.find((entry) => entry.shipId === intent.shipId)
108
- ?.quantityRaw ?? 0n;
107
+ // The program checks the Fleet's stored ship counts plus the added ships,
108
+ // never the requirements of ships already aboard.
109
+ const classes = prospectiveShipCounts(fleet.shipCounts, selected.sizeClass, Number(intent.amount));
110
+ const points = fleetCapacityPoints(classes);
111
+ if (points > character.modifiers.values.fleetSize)
112
+ fail(resolved.character, `The resulting Fleet uses ${String(points)} Fleet points, above the Character's Fleet size ${String(character.modifiers.values.fleetSize)}. Reduce the amount or unlock Fleet-size research, then replan.`);
113
+ if (points > definitions.maxFleetSize)
114
+ fail(resolved.game, `The resulting Fleet uses ${String(points)} Fleet points, above the Game's ${String(definitions.maxFleetSize)}-point Fleet limit. Reduce the resulting Fleet composition, then replan; a larger Character allowance does not override it.`);
115
+ const [commanders, titans] = [classes[6], classes[7]];
116
+ if (titans > MAX_TITANS_PER_FLEET)
117
+ fail(resolved.fleet, `The resulting Fleet would hold ${String(titans)} Titans; a Fleet holds at most ${String(MAX_TITANS_PER_FLEET)}. Add the Titan to another Fleet and replan.`);
118
+ if (commanders + titans > MAX_COMMANDERS_AND_TITANS_PER_FLEET)
119
+ fail(resolved.fleet, `The resulting Fleet would hold ${String(commanders + titans)} Commander and Titan ships; a Fleet holds at most ${String(MAX_COMMANDERS_AND_TITANS_PER_FLEET)} together. Add the ship to another Fleet and replan.`);
120
+ // Escrowed hulls of any configuration of the same ship count: the program
121
+ // re-tags them to the selected configuration.
122
+ const siblings = new Set(definitions.rows
123
+ .filter((row) => row.mint === selected.mint)
124
+ .map((row) => row.id));
125
+ const entitlement = player.shipsInEscrow
126
+ .filter((entry) => siblings.has(entry.shipId))
127
+ .reduce((total, entry) => total + entry.quantityRaw, 0n);
109
128
  if (entitlement < intent.amount)
110
- fail(resolved.starbasePlayer, 'The StarbasePlayer has insufficient entitlement for this exact ship configuration. Explicitly import that configuration or reduce the amount, then replan.');
129
+ fail(resolved.starbasePlayer, `The StarbasePlayer holds ${String(entitlement)} escrowed hulls of this ship across its configurations, fewer than the ${String(intent.amount)} requested. Explicitly import more of this ship or reduce the amount, then replan.`);
111
130
  const configHash = await hashShipAssemblyConfiguration(definitions, selected);
112
131
  if (expected && expected.configHash !== configHash)
113
132
  fail(resolved.game, 'The selected ship configuration has changed. Replan and inspect its current configuration before signing.');
114
133
  const rent = readRent(required(resolved.rent, 'Rent sysvar'));
115
134
  const now = readClock(required(resolved.clock, 'Clock sysvar'));
116
- const fleetRent = rent(fleetShipAssemblySize(fleetRaw, intent.shipId, intent.amount));
117
- const balance = fleetRaw.lamports;
118
- const profileDebit = balance < fleetRent ? fleetRent - balance : 0n;
135
+ const fleetRent = rent(fleetShipAssemblySize(fleetRaw, intent.shipId, intent.amount, components));
136
+ const shortfall = (raw, minimum) => raw.lamports < minimum ? minimum - raw.lamports : 0n;
137
+ // The program funds the Fleet, StarbasePlayer and Character as one group.
138
+ // Re-tagging adds an escrow entry when the configuration has none, and its
139
+ // cost is counted in full. A component line the move empties shrinks the
140
+ // StarbasePlayer, but that refund is not credited, so the debit stays an
141
+ // upper bound. A StarbasePlayer already below its rent minimum is left out,
142
+ // as a combined ship import funds that shortfall first.
143
+ const playerRaw = required(resolved.starbasePlayer, 'StarbasePlayer');
144
+ const profileDebit = shortfall(fleetRaw, fleetRent) +
145
+ rent(playerRaw.data.length +
146
+ starbasePlayerEscrowGrowth(playerRaw, intent.shipId)) -
147
+ rent(playerRaw.data.length);
119
148
  if (expected !== undefined && profileDebit > expected.maximumProfileDebit)
120
149
  fail(resolved.profile, 'Ship assembly now requires a larger Profile debit than this Plan approved. Replan and inspect the updated rent shortfall before signing.');
121
150
  const profileReserve = rent(profileRaw.data.length);
122
151
  if (profileRaw.lamports < profileReserve + profileDebit)
123
152
  fail(resolved.profile, 'The Profile lacks the Fleet rent shortfall while preserving its own rent reserve. Fund the Profile or Fleet target explicitly, then replan.');
124
- const key = profile.keys[intent.keyIndex];
125
- if (!key || key.address !== intent.authority)
153
+ const key = directProfileKey(profile.keys, intent.keyIndex, intent.authority);
154
+ if (!key)
126
155
  fail(resolved.profile, 'The selected direct Profile key is absent or belongs to another authority. Select the current key index for this authority and replan.');
127
- if (key.expiresAtRaw >= 0n && key.expiresAtRaw < now)
156
+ if (profileKeyExpired(key, now))
128
157
  fail(resolved.profile, 'The selected Profile key has expired. Renew it or select a current direct key and replan ship assembly.');
129
- const auth = key.scope === PROFILE_SCOPE && (key.permissionsRaw & 1n) !== 0n;
130
- const manages = key.scope === SAGE_SCOPE && (key.permissionsRaw & (1n << 18n)) !== 0n;
158
+ const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
159
+ const manages = grantsPermission(key, SAGE_SCOPE, 18n) ||
160
+ grantsPermission(key, intent.address, 18n);
131
161
  if (!auth && !manages)
132
- fail(resolved.profile, 'The selected key cannot manage Fleets. Use a direct Profile AUTH key or a SAGE manageFleet key and replan.');
133
- if (profileDebit > 0n && !auth && (key.permissionsRaw & (1n << 63n)) === 0n)
162
+ fail(resolved.profile, 'The selected key cannot manage Fleets. Use a direct Profile AUTH key or a manageFleet key scoped to SAGE or this Fleet, and replan.');
163
+ if (profileDebit > 0n && !auth && !hasPermissionBit(key, 63n))
134
164
  fail(resolved.profile, 'The selected manageFleet key cannot fund the Fleet from the Profile vault. Explicitly prefund the target or choose an authorized vault-funding key, then replan; drainSolVault grants vault withdrawal authority.');
135
- return { profileDebit, profileReserve, fleetRent, configHash };
165
+ return { profileDebit, profileReserve, fleetRent, configHash, components };
136
166
  }
137
167
  //# sourceMappingURL=fleet-ship-assembly.js.map