@aephia/atlas-kit 0.7.0-next.2 → 0.7.0-next.3

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 (600) hide show
  1. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  2. package/dist/cargo/actions/deposit.js +4 -4
  3. package/dist/cargo/actions/deposit.js.map +1 -1
  4. package/dist/cargo/actions/index.d.ts.map +1 -1
  5. package/dist/cargo/actions/index.js +20 -20
  6. package/dist/cargo/actions/index.js.map +1 -1
  7. package/dist/cargo/actions/transfer-bounds.d.ts +4 -3
  8. package/dist/cargo/actions/transfer-bounds.d.ts.map +1 -1
  9. package/dist/cargo/actions/transfer-bounds.js +11 -7
  10. package/dist/cargo/actions/transfer-bounds.js.map +1 -1
  11. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  12. package/dist/cargo/actions/wallet-context.js +4 -4
  13. package/dist/cargo/actions/wallet-context.js.map +1 -1
  14. package/dist/cargo/actions/withdrawal.js +2 -2
  15. package/dist/cargo/actions/withdrawal.js.map +1 -1
  16. package/dist/cargo/index.js +2 -2
  17. package/dist/cargo/index.js.map +1 -1
  18. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  19. package/dist/claim-stakes/actions/index.js +84 -84
  20. package/dist/claim-stakes/actions/index.js.map +1 -1
  21. package/dist/client/context.d.ts.map +1 -1
  22. package/dist/client/context.js +49 -20
  23. package/dist/client/context.js.map +1 -1
  24. package/dist/client/contracts.d.ts +42 -4
  25. package/dist/client/contracts.d.ts.map +1 -1
  26. package/dist/client/deployments.d.ts +11 -1
  27. package/dist/client/deployments.d.ts.map +1 -1
  28. package/dist/client/deployments.js +14 -0
  29. package/dist/client/deployments.js.map +1 -1
  30. package/dist/client/index.d.ts +18 -1
  31. package/dist/client/index.d.ts.map +1 -1
  32. package/dist/client/index.js +17 -0
  33. package/dist/client/index.js.map +1 -1
  34. package/dist/combat/actions/index.d.ts.map +1 -1
  35. package/dist/combat/actions/index.js +70 -66
  36. package/dist/combat/actions/index.js.map +1 -1
  37. package/dist/combat/index.d.ts.map +1 -1
  38. package/dist/combat/index.js +2 -2
  39. package/dist/combat/index.js.map +1 -1
  40. package/dist/crafting/actions/fee-rate.d.ts.map +1 -1
  41. package/dist/crafting/actions/fee-rate.js +1 -1
  42. package/dist/crafting/actions/fee-rate.js.map +1 -1
  43. package/dist/crafting/actions/index.d.ts.map +1 -1
  44. package/dist/crafting/actions/index.js +44 -45
  45. package/dist/crafting/actions/index.js.map +1 -1
  46. package/dist/crafting/index.d.ts.map +1 -1
  47. package/dist/crafting/index.js +4 -4
  48. package/dist/crafting/index.js.map +1 -1
  49. package/dist/factions/actions/index.d.ts.map +1 -1
  50. package/dist/factions/actions/index.js +7 -8
  51. package/dist/factions/actions/index.js.map +1 -1
  52. package/dist/factions/index.d.ts.map +1 -1
  53. package/dist/factions/index.js +12 -12
  54. package/dist/factions/index.js.map +1 -1
  55. package/dist/factions/profile-faction.js +2 -2
  56. package/dist/factions/profile-faction.js.map +1 -1
  57. package/dist/fleets/actions/add-ship.d.ts.map +1 -1
  58. package/dist/fleets/actions/add-ship.js +5 -5
  59. package/dist/fleets/actions/add-ship.js.map +1 -1
  60. package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
  61. package/dist/fleets/actions/create-fleet.js +4 -4
  62. package/dist/fleets/actions/create-fleet.js.map +1 -1
  63. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
  64. package/dist/fleets/actions/crew-transfer.js +5 -2
  65. package/dist/fleets/actions/crew-transfer.js.map +1 -1
  66. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -1
  67. package/dist/fleets/actions/deployment-storage.js +4 -4
  68. package/dist/fleets/actions/deployment-storage.js.map +1 -1
  69. package/dist/fleets/actions/disband.d.ts.map +1 -1
  70. package/dist/fleets/actions/disband.js +6 -6
  71. package/dist/fleets/actions/disband.js.map +1 -1
  72. package/dist/fleets/actions/dock-bounds.d.ts +3 -2
  73. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -1
  74. package/dist/fleets/actions/dock-bounds.js +8 -1
  75. package/dist/fleets/actions/dock-bounds.js.map +1 -1
  76. package/dist/fleets/actions/index.d.ts.map +1 -1
  77. package/dist/fleets/actions/index.js +85 -84
  78. package/dist/fleets/actions/index.js.map +1 -1
  79. package/dist/fleets/actions/respawn.js +1 -1
  80. package/dist/fleets/actions/respawn.js.map +1 -1
  81. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  82. package/dist/fleets/actions/ship-import.js +7 -8
  83. package/dist/fleets/actions/ship-import.js.map +1 -1
  84. package/dist/fleets/actions/sync.d.ts.map +1 -1
  85. package/dist/fleets/actions/sync.js +5 -4
  86. package/dist/fleets/actions/sync.js.map +1 -1
  87. package/dist/fleets/index.js +1 -1
  88. package/dist/fleets/index.js.map +1 -1
  89. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  90. package/dist/identity/actions/create-profile.js +11 -8
  91. package/dist/identity/actions/create-profile.js.map +1 -1
  92. package/dist/identity/actions/index.d.ts.map +1 -1
  93. package/dist/identity/actions/index.js +5 -5
  94. package/dist/identity/actions/index.js.map +1 -1
  95. package/dist/identity/actions/research-unlock.d.ts.map +1 -1
  96. package/dist/identity/actions/research-unlock.js +5 -5
  97. package/dist/identity/actions/research-unlock.js.map +1 -1
  98. package/dist/identity/index.d.ts +0 -14
  99. package/dist/identity/index.d.ts.map +1 -1
  100. package/dist/identity/index.js +5 -19
  101. package/dist/identity/index.js.map +1 -1
  102. package/dist/identity/permissions.d.ts +31 -23
  103. package/dist/identity/permissions.d.ts.map +1 -1
  104. package/dist/identity/permissions.js +27 -30
  105. package/dist/identity/permissions.js.map +1 -1
  106. package/dist/index.d.ts +1 -15
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +0 -14
  109. package/dist/index.js.map +1 -1
  110. package/dist/internal/c4/account-decoding.d.ts +9 -5
  111. package/dist/internal/c4/account-decoding.d.ts.map +1 -1
  112. package/dist/internal/c4/account-decoding.js +8 -7
  113. package/dist/internal/c4/account-decoding.js.map +1 -1
  114. package/dist/internal/c4/adapter.d.ts +2 -2
  115. package/dist/internal/c4/adapter.d.ts.map +1 -1
  116. package/dist/internal/c4/career-xp.d.ts.map +1 -1
  117. package/dist/internal/c4/career-xp.js +3 -3
  118. package/dist/internal/c4/career-xp.js.map +1 -1
  119. package/dist/internal/c4/character-registration.d.ts +2 -1
  120. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  121. package/dist/internal/c4/character-registration.js +3 -3
  122. package/dist/internal/c4/character-registration.js.map +1 -1
  123. package/dist/internal/c4/character.d.ts +3 -3
  124. package/dist/internal/c4/character.d.ts.map +1 -1
  125. package/dist/internal/c4/character.js +6 -6
  126. package/dist/internal/c4/character.js.map +1 -1
  127. package/dist/internal/c4/claim-stake-storage.d.ts +2 -2
  128. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -1
  129. package/dist/internal/c4/claim-stake-storage.js +2 -2
  130. package/dist/internal/c4/claim-stake-storage.js.map +1 -1
  131. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  132. package/dist/internal/c4/claim-stake.js +2 -2
  133. package/dist/internal/c4/claim-stake.js.map +1 -1
  134. package/dist/internal/c4/combat-storage.d.ts +2 -2
  135. package/dist/internal/c4/combat-storage.d.ts.map +1 -1
  136. package/dist/internal/c4/combat-storage.js +4 -2
  137. package/dist/internal/c4/combat-storage.js.map +1 -1
  138. package/dist/internal/c4/combat.d.ts +2 -2
  139. package/dist/internal/c4/combat.d.ts.map +1 -1
  140. package/dist/internal/c4/combat.js +4 -4
  141. package/dist/internal/c4/combat.js.map +1 -1
  142. package/dist/internal/c4/crafting.d.ts +4 -4
  143. package/dist/internal/c4/crafting.d.ts.map +1 -1
  144. package/dist/internal/c4/crafting.js +10 -10
  145. package/dist/internal/c4/crafting.js.map +1 -1
  146. package/dist/internal/c4/currency-cache.d.ts +3 -3
  147. package/dist/internal/c4/currency-cache.d.ts.map +1 -1
  148. package/dist/internal/c4/currency-cache.js +6 -6
  149. package/dist/internal/c4/currency-cache.js.map +1 -1
  150. package/dist/internal/c4/faction-enrollment.d.ts +0 -3
  151. package/dist/internal/c4/faction-enrollment.d.ts.map +1 -1
  152. package/dist/internal/c4/faction-enrollment.js +1 -3
  153. package/dist/internal/c4/faction-enrollment.js.map +1 -1
  154. package/dist/internal/c4/faction-epoch-meter.d.ts +3 -3
  155. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
  156. package/dist/internal/c4/faction-epoch-meter.js +5 -5
  157. package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
  158. package/dist/internal/c4/faction-treasury.d.ts +2 -1
  159. package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
  160. package/dist/internal/c4/faction-treasury.js +4 -4
  161. package/dist/internal/c4/faction-treasury.js.map +1 -1
  162. package/dist/internal/c4/factions.d.ts +12 -12
  163. package/dist/internal/c4/factions.d.ts.map +1 -1
  164. package/dist/internal/c4/factions.js +31 -31
  165. package/dist/internal/c4/factions.js.map +1 -1
  166. package/dist/internal/c4/fleet-arrival.d.ts +2 -2
  167. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -1
  168. package/dist/internal/c4/fleet-arrival.js +3 -3
  169. package/dist/internal/c4/fleet-arrival.js.map +1 -1
  170. package/dist/internal/c4/fleet-creation.d.ts +3 -2
  171. package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
  172. package/dist/internal/c4/fleet-creation.js +7 -8
  173. package/dist/internal/c4/fleet-creation.js.map +1 -1
  174. package/dist/internal/c4/fleet-crew-binding.d.ts +2 -2
  175. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  176. package/dist/internal/c4/fleet-crew-binding.js +4 -4
  177. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  178. package/dist/internal/c4/fleet-disband.d.ts +2 -2
  179. package/dist/internal/c4/fleet-disband.d.ts.map +1 -1
  180. package/dist/internal/c4/fleet-disband.js +7 -8
  181. package/dist/internal/c4/fleet-disband.js.map +1 -1
  182. package/dist/internal/c4/fleet-respawn.d.ts +2 -4
  183. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -1
  184. package/dist/internal/c4/fleet-respawn.js +6 -8
  185. package/dist/internal/c4/fleet-respawn.js.map +1 -1
  186. package/dist/internal/c4/fleet-ship-assembly.d.ts +2 -2
  187. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
  188. package/dist/internal/c4/fleet-ship-assembly.js +5 -6
  189. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
  190. package/dist/internal/c4/fleet-sync.d.ts +2 -1
  191. package/dist/internal/c4/fleet-sync.d.ts.map +1 -1
  192. package/dist/internal/c4/fleet-sync.js +3 -3
  193. package/dist/internal/c4/fleet-sync.js.map +1 -1
  194. package/dist/internal/c4/fleet.d.ts +4 -4
  195. package/dist/internal/c4/fleet.d.ts.map +1 -1
  196. package/dist/internal/c4/fleet.js +9 -9
  197. package/dist/internal/c4/fleet.js.map +1 -1
  198. package/dist/internal/c4/game.d.ts +12 -12
  199. package/dist/internal/c4/game.d.ts.map +1 -1
  200. package/dist/internal/c4/game.js +24 -24
  201. package/dist/internal/c4/game.js.map +1 -1
  202. package/dist/internal/c4/identity.d.ts +2 -2
  203. package/dist/internal/c4/identity.d.ts.map +1 -1
  204. package/dist/internal/c4/identity.js +6 -6
  205. package/dist/internal/c4/identity.js.map +1 -1
  206. package/dist/internal/c4/local-market-order.d.ts +2 -3
  207. package/dist/internal/c4/local-market-order.d.ts.map +1 -1
  208. package/dist/internal/c4/local-market-order.js +4 -9
  209. package/dist/internal/c4/local-market-order.js.map +1 -1
  210. package/dist/internal/c4/loot.d.ts.map +1 -1
  211. package/dist/internal/c4/loot.js +2 -2
  212. package/dist/internal/c4/loot.js.map +1 -1
  213. package/dist/internal/c4/loyalty.d.ts +4 -4
  214. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  215. package/dist/internal/c4/loyalty.js +10 -10
  216. package/dist/internal/c4/loyalty.js.map +1 -1
  217. package/dist/internal/c4/market.d.ts +3 -3
  218. package/dist/internal/c4/market.d.ts.map +1 -1
  219. package/dist/internal/c4/market.js +7 -7
  220. package/dist/internal/c4/market.js.map +1 -1
  221. package/dist/internal/c4/open-signal.d.ts +3 -4
  222. package/dist/internal/c4/open-signal.d.ts.map +1 -1
  223. package/dist/internal/c4/open-signal.js +7 -10
  224. package/dist/internal/c4/open-signal.js.map +1 -1
  225. package/dist/internal/c4/pda.d.ts +18 -18
  226. package/dist/internal/c4/pda.d.ts.map +1 -1
  227. package/dist/internal/c4/pda.js +35 -36
  228. package/dist/internal/c4/pda.js.map +1 -1
  229. package/dist/internal/c4/profile-creation.d.ts +3 -2
  230. package/dist/internal/c4/profile-creation.d.ts.map +1 -1
  231. package/dist/internal/c4/profile-creation.js +6 -7
  232. package/dist/internal/c4/profile-creation.js.map +1 -1
  233. package/dist/internal/c4/profile-faction.d.ts +2 -2
  234. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  235. package/dist/internal/c4/profile-faction.js +4 -4
  236. package/dist/internal/c4/profile-faction.js.map +1 -1
  237. package/dist/internal/c4/profile-permissions.d.ts +3 -4
  238. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  239. package/dist/internal/c4/profile-permissions.js +7 -9
  240. package/dist/internal/c4/profile-permissions.js.map +1 -1
  241. package/dist/internal/c4/rewards.d.ts +3 -3
  242. package/dist/internal/c4/rewards.d.ts.map +1 -1
  243. package/dist/internal/c4/rewards.js +8 -8
  244. package/dist/internal/c4/rewards.js.map +1 -1
  245. package/dist/internal/c4/runtime-bindings.d.ts +1 -2
  246. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  247. package/dist/internal/c4/runtime-bindings.js +1 -2
  248. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  249. package/dist/internal/c4/scan-lifecycle.d.ts +2 -2
  250. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  251. package/dist/internal/c4/scan-lifecycle.js +4 -4
  252. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  253. package/dist/internal/c4/scanning.d.ts +2 -2
  254. package/dist/internal/c4/scanning.d.ts.map +1 -1
  255. package/dist/internal/c4/scanning.js +4 -4
  256. package/dist/internal/c4/scanning.js.map +1 -1
  257. package/dist/internal/c4/starbase.d.ts +2 -2
  258. package/dist/internal/c4/starbase.d.ts.map +1 -1
  259. package/dist/internal/c4/starbase.js +5 -5
  260. package/dist/internal/c4/starbase.js.map +1 -1
  261. package/dist/internal/c4/wallet-cargo-cache.d.ts +2 -2
  262. package/dist/internal/c4/wallet-cargo-cache.d.ts.map +1 -1
  263. package/dist/internal/c4/wallet-cargo-cache.js +3 -3
  264. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  265. package/dist/internal/c4/world.d.ts +3 -3
  266. package/dist/internal/c4/world.d.ts.map +1 -1
  267. package/dist/internal/c4/world.js +9 -9
  268. package/dist/internal/c4/world.js.map +1 -1
  269. package/dist/internal/planning/arrival-guards.d.ts +2 -1
  270. package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
  271. package/dist/internal/planning/arrival-guards.js +4 -5
  272. package/dist/internal/planning/arrival-guards.js.map +1 -1
  273. package/dist/internal/planning/authorization-adapter.d.ts +35 -34
  274. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  275. package/dist/internal/planning/authorization-adapter.js +105 -105
  276. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  277. package/dist/internal/planning/cargo-storage-actions.d.ts +2 -2
  278. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -1
  279. package/dist/internal/planning/cargo-storage-actions.js +7 -5
  280. package/dist/internal/planning/cargo-storage-actions.js.map +1 -1
  281. package/dist/internal/planning/character-access.d.ts +3 -3
  282. package/dist/internal/planning/character-access.d.ts.map +1 -1
  283. package/dist/internal/planning/character-access.js +6 -5
  284. package/dist/internal/planning/character-access.js.map +1 -1
  285. package/dist/internal/planning/character-registration-guard.d.ts +2 -1
  286. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
  287. package/dist/internal/planning/character-registration-guard.js +3 -4
  288. package/dist/internal/planning/character-registration-guard.js.map +1 -1
  289. package/dist/internal/planning/character-registration.d.ts.map +1 -1
  290. package/dist/internal/planning/character-registration.js +2 -2
  291. package/dist/internal/planning/character-registration.js.map +1 -1
  292. package/dist/internal/planning/claim-stake-storage-actions.d.ts +2 -2
  293. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -1
  294. package/dist/internal/planning/claim-stake-storage-actions.js +3 -3
  295. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -1
  296. package/dist/internal/planning/combat-storage-actions.d.ts +2 -2
  297. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -1
  298. package/dist/internal/planning/combat-storage-actions.js +3 -3
  299. package/dist/internal/planning/combat-storage-actions.js.map +1 -1
  300. package/dist/internal/planning/crafting-storage-actions.d.ts +2 -2
  301. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -1
  302. package/dist/internal/planning/crafting-storage-actions.js +6 -6
  303. package/dist/internal/planning/crafting-storage-actions.js.map +1 -1
  304. package/dist/internal/planning/currency-cache-guard.d.ts +2 -1
  305. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
  306. package/dist/internal/planning/currency-cache-guard.js +2 -3
  307. package/dist/internal/planning/currency-cache-guard.js.map +1 -1
  308. package/dist/internal/planning/democracy-history.d.ts.map +1 -1
  309. package/dist/internal/planning/democracy-history.js +9 -9
  310. package/dist/internal/planning/democracy-history.js.map +1 -1
  311. package/dist/internal/planning/faction-enrollment.d.ts +2 -2
  312. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  313. package/dist/internal/planning/faction-enrollment.js +6 -6
  314. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  315. package/dist/internal/planning/faction-trade-state.d.ts +4 -4
  316. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -1
  317. package/dist/internal/planning/faction-trade-state.js +9 -9
  318. package/dist/internal/planning/faction-trade-state.js.map +1 -1
  319. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
  320. package/dist/internal/planning/fleet-arrival.js +8 -9
  321. package/dist/internal/planning/fleet-arrival.js.map +1 -1
  322. package/dist/internal/planning/fleet-attack-xp.d.ts +2 -2
  323. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
  324. package/dist/internal/planning/fleet-attack-xp.js +7 -7
  325. package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
  326. package/dist/internal/planning/fleet-creation.d.ts +3 -3
  327. package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
  328. package/dist/internal/planning/fleet-creation.js +9 -10
  329. package/dist/internal/planning/fleet-creation.js.map +1 -1
  330. package/dist/internal/planning/fleet-crew-guard.d.ts +4 -3
  331. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
  332. package/dist/internal/planning/fleet-crew-guard.js +7 -8
  333. package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
  334. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
  335. package/dist/internal/planning/fleet-crew-transfer.js +16 -17
  336. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
  337. package/dist/internal/planning/fleet-disband-guard.d.ts +2 -1
  338. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -1
  339. package/dist/internal/planning/fleet-disband-guard.js +4 -5
  340. package/dist/internal/planning/fleet-disband-guard.js.map +1 -1
  341. package/dist/internal/planning/fleet-disband.d.ts +3 -3
  342. package/dist/internal/planning/fleet-disband.d.ts.map +1 -1
  343. package/dist/internal/planning/fleet-disband.js +11 -12
  344. package/dist/internal/planning/fleet-disband.js.map +1 -1
  345. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +2 -1
  346. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
  347. package/dist/internal/planning/fleet-dock-funding-guard.js +2 -3
  348. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
  349. package/dist/internal/planning/fleet-dock-funding.d.ts +2 -2
  350. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
  351. package/dist/internal/planning/fleet-dock-funding.js +9 -9
  352. package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
  353. package/dist/internal/planning/fleet-docking-guard.d.ts +2 -1
  354. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
  355. package/dist/internal/planning/fleet-docking-guard.js +4 -5
  356. package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
  357. package/dist/internal/planning/fleet-docking.d.ts +2 -2
  358. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  359. package/dist/internal/planning/fleet-docking.js +11 -12
  360. package/dist/internal/planning/fleet-docking.js.map +1 -1
  361. package/dist/internal/planning/fleet-rental.d.ts +2 -1
  362. package/dist/internal/planning/fleet-rental.d.ts.map +1 -1
  363. package/dist/internal/planning/fleet-rental.js +2 -3
  364. package/dist/internal/planning/fleet-rental.js.map +1 -1
  365. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
  366. package/dist/internal/planning/fleet-respawn.js +16 -18
  367. package/dist/internal/planning/fleet-respawn.js.map +1 -1
  368. package/dist/internal/planning/fleet-ship-assembly.d.ts +3 -3
  369. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
  370. package/dist/internal/planning/fleet-ship-assembly.js +12 -13
  371. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
  372. package/dist/internal/planning/governance-fees.d.ts.map +1 -1
  373. package/dist/internal/planning/governance-fees.js +12 -12
  374. package/dist/internal/planning/governance-fees.js.map +1 -1
  375. package/dist/internal/planning/local-market-order-funding.d.ts +2 -2
  376. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
  377. package/dist/internal/planning/local-market-order-funding.js +11 -11
  378. package/dist/internal/planning/local-market-order-funding.js.map +1 -1
  379. package/dist/internal/planning/local-market-order.d.ts +2 -1
  380. package/dist/internal/planning/local-market-order.d.ts.map +1 -1
  381. package/dist/internal/planning/local-market-order.js +4 -4
  382. package/dist/internal/planning/local-market-order.js.map +1 -1
  383. package/dist/internal/planning/market-storage-actions.d.ts +2 -2
  384. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -1
  385. package/dist/internal/planning/market-storage-actions.js +3 -3
  386. package/dist/internal/planning/market-storage-actions.js.map +1 -1
  387. package/dist/internal/planning/mining-stop.d.ts +3 -3
  388. package/dist/internal/planning/mining-stop.d.ts.map +1 -1
  389. package/dist/internal/planning/mining-stop.js +5 -6
  390. package/dist/internal/planning/mining-stop.js.map +1 -1
  391. package/dist/internal/planning/mining-storage-actions.d.ts +2 -2
  392. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -1
  393. package/dist/internal/planning/mining-storage-actions.js +2 -2
  394. package/dist/internal/planning/mining-storage-actions.js.map +1 -1
  395. package/dist/internal/planning/movement-storage-actions.d.ts +2 -2
  396. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -1
  397. package/dist/internal/planning/movement-storage-actions.js +2 -2
  398. package/dist/internal/planning/movement-storage-actions.js.map +1 -1
  399. package/dist/internal/planning/movement-xp-guard.d.ts +2 -1
  400. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
  401. package/dist/internal/planning/movement-xp-guard.js +3 -3
  402. package/dist/internal/planning/movement-xp-guard.js.map +1 -1
  403. package/dist/internal/planning/open-signal-guard.d.ts +2 -1
  404. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
  405. package/dist/internal/planning/open-signal-guard.js +4 -4
  406. package/dist/internal/planning/open-signal-guard.js.map +1 -1
  407. package/dist/internal/planning/open-signal.d.ts +3 -3
  408. package/dist/internal/planning/open-signal.d.ts.map +1 -1
  409. package/dist/internal/planning/open-signal.js +12 -13
  410. package/dist/internal/planning/open-signal.js.map +1 -1
  411. package/dist/internal/planning/own-starbase-facts.d.ts +2 -2
  412. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -1
  413. package/dist/internal/planning/own-starbase-facts.js +7 -7
  414. package/dist/internal/planning/own-starbase-facts.js.map +1 -1
  415. package/dist/internal/planning/profile-storage-funding-guard.d.ts +3 -2
  416. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -1
  417. package/dist/internal/planning/profile-storage-funding-guard.js +4 -5
  418. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -1
  419. package/dist/internal/planning/profile-storage-funding.d.ts +3 -3
  420. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -1
  421. package/dist/internal/planning/profile-storage-funding.js +5 -6
  422. package/dist/internal/planning/profile-storage-funding.js.map +1 -1
  423. package/dist/internal/planning/qualified-deployment.d.ts +11 -0
  424. package/dist/internal/planning/qualified-deployment.d.ts.map +1 -0
  425. package/dist/internal/planning/qualified-deployment.js +15 -0
  426. package/dist/internal/planning/qualified-deployment.js.map +1 -0
  427. package/dist/internal/planning/recipe-state.d.ts +3 -3
  428. package/dist/internal/planning/recipe-state.d.ts.map +1 -1
  429. package/dist/internal/planning/recipe-state.js +5 -5
  430. package/dist/internal/planning/recipe-state.js.map +1 -1
  431. package/dist/internal/planning/region-access.d.ts +5 -5
  432. package/dist/internal/planning/region-access.d.ts.map +1 -1
  433. package/dist/internal/planning/region-access.js +12 -12
  434. package/dist/internal/planning/region-access.js.map +1 -1
  435. package/dist/internal/planning/rent-catalog.d.ts +2 -2
  436. package/dist/internal/planning/rent-catalog.d.ts.map +1 -1
  437. package/dist/internal/planning/rent-catalog.js +8 -9
  438. package/dist/internal/planning/rent-catalog.js.map +1 -1
  439. package/dist/internal/planning/research-unlock.d.ts +4 -4
  440. package/dist/internal/planning/research-unlock.d.ts.map +1 -1
  441. package/dist/internal/planning/research-unlock.js +19 -21
  442. package/dist/internal/planning/research-unlock.js.map +1 -1
  443. package/dist/internal/planning/respawn-guards.d.ts +2 -1
  444. package/dist/internal/planning/respawn-guards.d.ts.map +1 -1
  445. package/dist/internal/planning/respawn-guards.js +2 -3
  446. package/dist/internal/planning/respawn-guards.js.map +1 -1
  447. package/dist/internal/planning/runtime-guards.d.ts +2 -2
  448. package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
  449. package/dist/internal/planning/runtime-guards.js +10 -11
  450. package/dist/internal/planning/runtime-guards.js.map +1 -1
  451. package/dist/internal/planning/scan-completion-guard.d.ts +4 -3
  452. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
  453. package/dist/internal/planning/scan-completion-guard.js +7 -8
  454. package/dist/internal/planning/scan-completion-guard.js.map +1 -1
  455. package/dist/internal/planning/scan-completion.d.ts +1 -1
  456. package/dist/internal/planning/scan-completion.d.ts.map +1 -1
  457. package/dist/internal/planning/scan-completion.js +12 -14
  458. package/dist/internal/planning/scan-completion.js.map +1 -1
  459. package/dist/internal/planning/scan-detect-guard.d.ts +5 -4
  460. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
  461. package/dist/internal/planning/scan-detect-guard.js +7 -8
  462. package/dist/internal/planning/scan-detect-guard.js.map +1 -1
  463. package/dist/internal/planning/scan-detect.d.ts +2 -2
  464. package/dist/internal/planning/scan-detect.d.ts.map +1 -1
  465. package/dist/internal/planning/scan-detect.js +17 -18
  466. package/dist/internal/planning/scan-detect.js.map +1 -1
  467. package/dist/internal/planning/ship-import-funding.d.ts +3 -3
  468. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -1
  469. package/dist/internal/planning/ship-import-funding.js +7 -7
  470. package/dist/internal/planning/ship-import-funding.js.map +1 -1
  471. package/dist/internal/planning/starbase-player-owner.d.ts +2 -1
  472. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -1
  473. package/dist/internal/planning/starbase-player-owner.js +3 -4
  474. package/dist/internal/planning/starbase-player-owner.js.map +1 -1
  475. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +2 -1
  476. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -1
  477. package/dist/internal/planning/starbase-player-recovery-guard.js +4 -5
  478. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -1
  479. package/dist/internal/planning/starbase-system-guard.d.ts +3 -2
  480. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
  481. package/dist/internal/planning/starbase-system-guard.js +8 -8
  482. package/dist/internal/planning/starbase-system-guard.js.map +1 -1
  483. package/dist/internal/planning/starbase-system.d.ts +2 -2
  484. package/dist/internal/planning/starbase-system.d.ts.map +1 -1
  485. package/dist/internal/planning/starbase-system.js +3 -3
  486. package/dist/internal/planning/starbase-system.js.map +1 -1
  487. package/dist/internal/planning/storage-action-readers.d.ts +2 -2
  488. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -1
  489. package/dist/internal/planning/storage-action-readers.js +7 -5
  490. package/dist/internal/planning/storage-action-readers.js.map +1 -1
  491. package/dist/internal/planning/storage-actions.d.ts +4 -4
  492. package/dist/internal/planning/storage-actions.d.ts.map +1 -1
  493. package/dist/internal/planning/storage-actions.js +7 -7
  494. package/dist/internal/planning/storage-actions.js.map +1 -1
  495. package/dist/internal/planning/trade-faction-market.d.ts +2 -1
  496. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -1
  497. package/dist/internal/planning/trade-faction-market.js +6 -6
  498. package/dist/internal/planning/trade-faction-market.js.map +1 -1
  499. package/dist/internal/planning/wallet-starbase.d.ts +2 -2
  500. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -1
  501. package/dist/internal/planning/wallet-starbase.js +7 -8
  502. package/dist/internal/planning/wallet-starbase.js.map +1 -1
  503. package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
  504. package/dist/internal/planning/xp-runtime.js +13 -13
  505. package/dist/internal/planning/xp-runtime.js.map +1 -1
  506. package/dist/loyalty/actions/index.d.ts.map +1 -1
  507. package/dist/loyalty/actions/index.js +7 -7
  508. package/dist/loyalty/actions/index.js.map +1 -1
  509. package/dist/loyalty/index.d.ts.map +1 -1
  510. package/dist/loyalty/index.js +9 -9
  511. package/dist/loyalty/index.js.map +1 -1
  512. package/dist/markets/actions/index.d.ts +4 -2
  513. package/dist/markets/actions/index.d.ts.map +1 -1
  514. package/dist/markets/actions/index.js +28 -20
  515. package/dist/markets/actions/index.js.map +1 -1
  516. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
  517. package/dist/markets/actions/trade-faction-market.js +22 -23
  518. package/dist/markets/actions/trade-faction-market.js.map +1 -1
  519. package/dist/markets/index.d.ts +12 -5
  520. package/dist/markets/index.d.ts.map +1 -1
  521. package/dist/markets/index.js +17 -10
  522. package/dist/markets/index.js.map +1 -1
  523. package/dist/mining/actions/index.d.ts.map +1 -1
  524. package/dist/mining/actions/index.js +25 -24
  525. package/dist/mining/actions/index.js.map +1 -1
  526. package/dist/mining/index.d.ts.map +1 -1
  527. package/dist/mining/index.js +2 -2
  528. package/dist/mining/index.js.map +1 -1
  529. package/dist/planning/assembly.d.ts +2 -2
  530. package/dist/planning/assembly.d.ts.map +1 -1
  531. package/dist/planning/assembly.js +6 -3
  532. package/dist/planning/assembly.js.map +1 -1
  533. package/dist/planning/execution.d.ts.map +1 -1
  534. package/dist/planning/execution.js +34 -35
  535. package/dist/planning/execution.js.map +1 -1
  536. package/dist/planning/index.d.ts +15 -3
  537. package/dist/planning/index.d.ts.map +1 -1
  538. package/dist/planning/index.js +32 -11
  539. package/dist/planning/index.js.map +1 -1
  540. package/dist/planning/plan-construction.d.ts +5 -2
  541. package/dist/planning/plan-construction.d.ts.map +1 -1
  542. package/dist/planning/plan-construction.js +16 -4
  543. package/dist/planning/plan-construction.js.map +1 -1
  544. package/dist/planning/plan-validation.d.ts +4 -3
  545. package/dist/planning/plan-validation.d.ts.map +1 -1
  546. package/dist/planning/plan-validation.js +56 -56
  547. package/dist/planning/plan-validation.js.map +1 -1
  548. package/dist/planning/simulation.js +1 -1
  549. package/dist/planning/simulation.js.map +1 -1
  550. package/dist/registry/cargo.d.ts.map +1 -1
  551. package/dist/registry/cargo.js +2 -2
  552. package/dist/registry/cargo.js.map +1 -1
  553. package/dist/registry/claim-stakes.d.ts.map +1 -1
  554. package/dist/registry/claim-stakes.js +1 -1
  555. package/dist/registry/claim-stakes.js.map +1 -1
  556. package/dist/registry/docking.d.ts +2 -2
  557. package/dist/registry/docking.d.ts.map +1 -1
  558. package/dist/registry/docking.js +2 -2
  559. package/dist/registry/docking.js.map +1 -1
  560. package/dist/registry/index.js +1 -1
  561. package/dist/registry/index.js.map +1 -1
  562. package/dist/registry/onboarding.d.ts +2 -2
  563. package/dist/registry/onboarding.d.ts.map +1 -1
  564. package/dist/registry/onboarding.js +4 -4
  565. package/dist/registry/onboarding.js.map +1 -1
  566. package/dist/registry/scanning.js +1 -1
  567. package/dist/registry/scanning.js.map +1 -1
  568. package/dist/registry/ships.d.ts +3 -3
  569. package/dist/registry/ships.d.ts.map +1 -1
  570. package/dist/registry/ships.js +10 -7
  571. package/dist/registry/ships.js.map +1 -1
  572. package/dist/registry/xp-runtime.js +1 -1
  573. package/dist/registry/xp-runtime.js.map +1 -1
  574. package/dist/rewards/index.d.ts.map +1 -1
  575. package/dist/rewards/index.js +3 -3
  576. package/dist/rewards/index.js.map +1 -1
  577. package/dist/scanning/actions/index.d.ts.map +1 -1
  578. package/dist/scanning/actions/index.js +7 -7
  579. package/dist/scanning/actions/index.js.map +1 -1
  580. package/dist/scanning/index.d.ts.map +1 -1
  581. package/dist/scanning/index.js +4 -4
  582. package/dist/scanning/index.js.map +1 -1
  583. package/dist/scanning/signals.d.ts.map +1 -1
  584. package/dist/scanning/signals.js +1 -1
  585. package/dist/scanning/signals.js.map +1 -1
  586. package/dist/starbases/actions/index.d.ts.map +1 -1
  587. package/dist/starbases/actions/index.js +25 -26
  588. package/dist/starbases/actions/index.js.map +1 -1
  589. package/dist/starbases/index.d.ts.map +1 -1
  590. package/dist/starbases/index.js +1 -1
  591. package/dist/starbases/index.js.map +1 -1
  592. package/dist/world/index.d.ts +7 -4
  593. package/dist/world/index.d.ts.map +1 -1
  594. package/dist/world/index.js +11 -9
  595. package/dist/world/index.js.map +1 -1
  596. package/package.json +1 -1
  597. package/dist/internal/c4/mining-instructions.d.ts +0 -2
  598. package/dist/internal/c4/mining-instructions.d.ts.map +0 -1
  599. package/dist/internal/c4/mining-instructions.js +0 -3
  600. package/dist/internal/c4/mining-instructions.js.map +0 -1
@@ -298,11 +298,11 @@ export async function planPlaceClaimStake(ctx, body, player, input) {
298
298
  if (body.game !== game) {
299
299
  fail(`Celestial Body ${body.address} does not match the configured Game ${game}. Refresh the Body through this context and retry.`, body.address);
300
300
  }
301
- const canonicalBody = await deriveCelestialBodyAddress(game, body.id);
301
+ const canonicalBody = await deriveCelestialBodyAddress(ctx.programs, game, body.id);
302
302
  if (canonicalBody !== body.address) {
303
303
  fail(`Celestial Body ${body.address} is not the canonical Body ${String(body.id)} for the configured Game. Refresh the Body and retry.`, body.address);
304
304
  }
305
- const character = await requireProfileStarbasePlayer(player, options.authorization.profile, game);
305
+ const character = await requireProfileStarbasePlayer(ctx.programs, player, options.authorization.profile, game);
306
306
  if (body.system.address !== player.system.address) {
307
307
  fail(`Celestial Body ${body.address} belongs to System ${body.system.address}, but Starbase Player ${player.address} belongs to System ${player.system.address}. Choose both snapshots from the same System and retry.`, body.address);
308
308
  }
@@ -348,11 +348,11 @@ export async function planPlaceClaimStake(ctx, body, player, input) {
348
348
  const currentBodyAccount = requireAccount(bodyAccount, body.address, `Celestial Body ${body.address} is missing. Refresh the Body and retry placement.`);
349
349
  const currentPlayerAccount = requireAccount(playerAccount, player.address, `Starbase Player ${player.address} is missing. Refresh it and retry placement.`);
350
350
  const currentSystemAccount = requireAccount(systemAccount, body.system.address, `Star System ${body.system.address} is missing. Refresh the System and retry placement.`);
351
- const currentBody = celestialBodyAccountDefinition.decode(currentBodyAccount);
352
- const currentPlayer = starbasePlayerAccountDefinition.decode(currentPlayerAccount);
353
- const { account: currentCharacterAccount, current: currentCharacter } = requireProfileCharacter(characterAccount, character, options.authorization.profile, game, 'placement');
354
- const currentSystem = starSystemAccountDefinition.decode(currentSystemAccount);
355
- const canonicalSystem = await deriveStarSystemAddress(game, currentSystem.systemId);
351
+ const currentBody = celestialBodyAccountDefinition.decode(currentBodyAccount, ctx.programs);
352
+ const currentPlayer = starbasePlayerAccountDefinition.decode(currentPlayerAccount, ctx.programs);
353
+ const { account: currentCharacterAccount, current: currentCharacter } = requireProfileCharacter(ctx.programs, characterAccount, character, options.authorization.profile, game, 'placement');
354
+ const currentSystem = starSystemAccountDefinition.decode(currentSystemAccount, ctx.programs);
355
+ const canonicalSystem = await deriveStarSystemAddress(ctx.programs, game, currentSystem.systemId);
356
356
  if (canonicalSystem !== body.system.address ||
357
357
  currentSystem.game !== game ||
358
358
  currentSystem.starbase === undefined) {
@@ -406,9 +406,9 @@ export async function planPlaceClaimStake(ctx, body, player, input) {
406
406
  const rentDeposit = options.initialRentAmount ?? 0n;
407
407
  if (currentCharacter.atlasRaw < placementFee + rentDeposit)
408
408
  fail(`Character ${character} has ${String(currentCharacter.atlasRaw)} raw ATLAS, below the ${String(placementFee)} raw placement fee plus ${String(rentDeposit)} raw initial rent. Add ATLAS or lower the rent, then retry.`, character);
409
- const profileFaction = await deriveProfileFactionAddress(options.authorization.profile);
410
- const currencyCache = await deriveCurrencyCache(game).then(([address]) => address);
411
- const instruction = adaptPlaceClaimStakeInstruction({
409
+ const profileFaction = await deriveProfileFactionAddress(ctx.programs, options.authorization.profile);
410
+ const currencyCache = await deriveCurrencyCache(ctx.programs, game).then(([address]) => address);
411
+ const instruction = adaptPlaceClaimStakeInstruction(ctx.programs, {
412
412
  authorization: options.authorization,
413
413
  celestialBody: body.address,
414
414
  character,
@@ -426,7 +426,7 @@ export async function planPlaceClaimStake(ctx, body, player, input) {
426
426
  // The new stake and the claimed plot are funded from the Profile vault.
427
427
  const storage = await planClaimStakeStorage(ctx, instruction, options.authorization.profile, [freshGame.account, currentBodyAccount, currentSystemAccount], 'Claim Stake placement');
428
428
  const description = `Place ${definition.name} on Planet ${body.name} (${body.address}) with bundled hub ${hub.name}, ${String(hub.neededCrew)} crew, a ${String(placementFee)} raw ATLAS placement fee and ${String(rentDeposit)} raw initial rent. ${storage.disclosure}`;
429
- return buildPlannerPlan({
429
+ return buildPlannerPlan(ctx.programs, {
430
430
  kind: 'claim-stakes.place',
431
431
  preconditions: [
432
432
  ...(await Promise.all([
@@ -462,8 +462,8 @@ async function planClaimStakeStorage(ctx, instruction, profile, known, label) {
462
462
  [profile, profileAccount],
463
463
  [RENT_ADDRESS, rentAccount],
464
464
  ]);
465
- return planStorageFunding({
466
- action: readClaimStakeStorageAction(instruction, accounts),
465
+ return planStorageFunding(ctx.programs, {
466
+ action: readClaimStakeStorageAction(ctx.programs, instruction, accounts),
467
467
  accounts,
468
468
  label,
469
469
  });
@@ -512,14 +512,14 @@ function requireCommittedCrewVersion(current, stake, outcome) {
512
512
  // `action` completes the shared remedies ("retry <action>").
513
513
  /** Requires the loaded Claim Stake to belong to the configured Game and to the
514
514
  * authorization Profile, and returns that Profile's canonical Character. */
515
- async function requireOwnedStake(stake, game, profile) {
515
+ async function requireOwnedStake(programs, stake, game, profile) {
516
516
  if (stake.game !== game) {
517
517
  fail(`Claim Stake ${stake.address} does not match the configured Game ${game}. Refresh it through this context and retry.`, stake.address);
518
518
  }
519
519
  if (stake.ownerProfile.address !== profile) {
520
520
  fail(`Claim Stake ${stake.address} belongs to Profile ${stake.ownerProfile.address}, not authorization Profile ${profile}. Choose a Claim Stake this Profile owns, refresh it, and retry.`, stake.address);
521
521
  }
522
- return findCharacterPda(profile, game);
522
+ return findCharacterPda(programs, profile, game);
523
523
  }
524
524
  /** Reads and decodes the fresh Claim Stake and Body, with `extra` accounts in
525
525
  * the same batch. */
@@ -533,8 +533,8 @@ async function readOwnedStake(ctx, stake, action, extra = []) {
533
533
  const bodyAccount = requireAccount(bodyCandidate, stake.body.address, `Celestial Body ${stake.body.address} is missing. Refresh the Claim Stake Body and retry ${action}.`);
534
534
  return {
535
535
  bodyAccount,
536
- currentBody: celestialBodyAccountDefinition.decode(bodyAccount),
537
- currentStake: claimStakeAccountDefinition.decode(stakeAccount),
536
+ currentBody: celestialBodyAccountDefinition.decode(bodyAccount, ctx.programs),
537
+ currentStake: claimStakeAccountDefinition.decode(stakeAccount, ctx.programs),
538
538
  extraAccounts,
539
539
  stakeAccount,
540
540
  };
@@ -586,11 +586,11 @@ function sameTransferFleet(current, fleet, game, profile) {
586
586
  }
587
587
  /** Requires the fresh Body to be the Claim Stake's canonical Planet in the
588
588
  * configured Game at the Claim Stake's System generation. */
589
- async function requireStakePlanet(currentBody, stake, game, action) {
589
+ async function requireStakePlanet(programs, currentBody, stake, game, action) {
590
590
  if (currentBody.kind !== 'planet' ||
591
591
  currentBody.game !== game ||
592
592
  currentBody.systemSequenceId !== stake.systemSeqId ||
593
- (await deriveCelestialBodyAddress(game, currentBody.id)) !==
593
+ (await deriveCelestialBodyAddress(programs, game, currentBody.id)) !==
594
594
  stake.body.address) {
595
595
  fail(`Celestial Body ${stake.body.address} does not match the Claim Stake's configured Game, canonical Planet identity, or System generation. Refresh the Body and Claim Stake before retrying ${action}.`, stake.body.address);
596
596
  }
@@ -611,16 +611,16 @@ function requireStakeRegistered(claimedPlots, stake, starbaseLevel, action) {
611
611
  /** {@link requireStakePlanet} for building changes. An eviction is reported
612
612
  * first: a takeover or destruction also advances the System generation, which
613
613
  * would otherwise hide the real cause behind a refresh remedy. */
614
- async function requireDesignStakePlanet(currentBody, stake, game, action) {
614
+ async function requireDesignStakePlanet(programs, currentBody, stake, game, action) {
615
615
  if (currentBody.kind === 'planet')
616
616
  requireStakeRegistered(currentBody.details.claimedPlots, stake, 'css', action);
617
- return requireStakePlanet(currentBody, stake, game, action);
617
+ return requireStakePlanet(programs, currentBody, stake, game, action);
618
618
  }
619
619
  /** Requires and decodes the canonical Character of the authorization Profile in
620
620
  * the configured Game. */
621
- function requireProfileCharacter(candidate, character, profile, game, action) {
621
+ function requireProfileCharacter(programs, candidate, character, profile, game, action) {
622
622
  const account = requireAccount(candidate, character, `Canonical Character ${character} is missing. Refresh the Profile Character and retry ${action}.`);
623
- const current = characterAccountDefinition.decode(account);
623
+ const current = characterAccountDefinition.decode(account, programs);
624
624
  if (current.playerProfile !== profile || current.game !== game) {
625
625
  fail(`Character ${character} does not match authorization Profile ${profile} and configured Game ${game}. Refresh the Character and retry ${action}.`, character);
626
626
  }
@@ -631,17 +631,17 @@ function requireProfileCharacter(candidate, character, profile, game, action) {
631
631
  * canonical, current System with an active Starbase that lists the Body, and a
632
632
  * Starbase Player of the Profile, Character and System. */
633
633
  async function readStakeStarbase(ctx, stake, game, system, character, profile, action, extra = []) {
634
- const player = await deriveStarbasePlayerAddress(system, character);
634
+ const player = await deriveStarbasePlayerAddress(ctx.programs, system, character);
635
635
  const [systemCandidate, playerCandidate, ...extraAccounts] = await readContextRawAccounts(ctx, [system, player, ...extra]);
636
636
  const systemAccount = requireAccount(systemCandidate, system, `Star System ${system} is missing. Refresh the Claim Stake's System and retry ${action}.`);
637
637
  const playerAccount = requireAccount(playerCandidate, player, `Starbase Player ${player} is missing for authorization Profile ${profile}. Register or refresh it in the Claim Stake's System before retrying ${action}.`);
638
- const currentSystem = starSystemAccountDefinition.decode(systemAccount);
639
- const currentPlayer = starbasePlayerAccountDefinition.decode(playerAccount);
638
+ const currentSystem = starSystemAccountDefinition.decode(systemAccount, ctx.programs);
639
+ const currentPlayer = starbasePlayerAccountDefinition.decode(playerAccount, ctx.programs);
640
640
  if (currentSystem.game !== game ||
641
641
  currentSystem.sequenceId !== stake.systemSeqId ||
642
642
  currentSystem.starbase === undefined ||
643
643
  !currentSystem.celestialBodyAddresses.includes(stake.body.address) ||
644
- (await deriveStarSystemAddress(game, currentSystem.systemId)) !== system) {
644
+ (await deriveStarSystemAddress(ctx.programs, game, currentSystem.systemId)) !== system) {
645
645
  fail(`Star System ${system} does not match the configured Game, canonical identity, Claim Stake generation, active nested Starbase, or Claim Stake Body relationship. Refresh the System and retry ${action}.`, system);
646
646
  }
647
647
  if (currentPlayer.playerProfile !== profile ||
@@ -659,13 +659,13 @@ async function readStakeStarbase(ctx, stake, game, system, character, profile, a
659
659
  systemAccount,
660
660
  };
661
661
  }
662
- async function claimStakeCurrencyCache(game) {
663
- const [currencyCache] = await deriveCurrencyCache(game);
662
+ async function claimStakeCurrencyCache(programs, game) {
663
+ const [currencyCache] = await deriveCurrencyCache(programs, game);
664
664
  return currencyCache;
665
665
  }
666
666
  /** Requires the canonical CurrencyCache and returns its Plan guard. */
667
- async function requireCurrencyCache(candidate, currencyCache, game, action, planName) {
668
- await validateCurrencyCache(requireAccount(candidate, currencyCache, `Canonical CurrencyCache ${currencyCache} is missing for configured Game ${game}. Refresh the Game currency configuration and retry ${action}.`), game, planName);
667
+ async function requireCurrencyCache(programs, candidate, currencyCache, game, action, planName) {
668
+ await validateCurrencyCache(programs, requireAccount(candidate, currencyCache, `Canonical CurrencyCache ${currencyCache} is missing for configured Game ${game}. Refresh the Game currency configuration and retry ${action}.`), game, planName);
669
669
  return {
670
670
  kind: 'currency-cache',
671
671
  address: currencyCache,
@@ -729,7 +729,7 @@ export async function planClaimStakeBuildingChanges(ctx, stake, input) {
729
729
  if (stake.state.kind === 'deactivated') {
730
730
  fail(`Claim Stake ${stake.address} is deactivated; building changes require an active or design Claim Stake. Refresh it or choose another owned Claim Stake before retrying.`, stake.address);
731
731
  }
732
- const character = await requireOwnedStake(stake, game, profile);
732
+ const character = await requireOwnedStake(ctx.programs, stake, game, profile);
733
733
  const action = 'building changes';
734
734
  const [freshGame, loaded, rent] = await Promise.all([
735
735
  readFreshGameClaimStakeConfiguration(ctx),
@@ -747,17 +747,17 @@ export async function planClaimStakeBuildingChanges(ctx, stake, input) {
747
747
  if (currentStake.constructionRemainingSeconds > 0n) {
748
748
  fail(`Claim Stake ${stake.address} records ${String(currentStake.constructionRemainingSeconds)} seconds of construction remaining, and a stake under construction cannot change its buildings. The stored time advances only when a production tick processes the stake: wait for construction to finish, let a production tick record it, refresh the Claim Stake, and retry.`, stake.address);
749
749
  }
750
- const planetBody = await requireDesignStakePlanet(loaded.currentBody, stake, game, action);
750
+ const planetBody = await requireDesignStakePlanet(ctx.programs, loaded.currentBody, stake, game, action);
751
751
  const { system } = planetBody;
752
- const { account: characterAccount } = requireProfileCharacter(loaded.extraAccounts[0], character, profile, game, action);
752
+ const { account: characterAccount } = requireProfileCharacter(ctx.programs, loaded.extraAccounts[0], character, profile, game, action);
753
753
  const [ownership, profileFaction] = await Promise.all([
754
- deriveFactionOwnershipAddress(game, 'starbase', system),
755
- deriveProfileFactionAddress(profile),
754
+ deriveFactionOwnershipAddress(ctx.programs, game, 'starbase', system),
755
+ deriveProfileFactionAddress(ctx.programs, profile),
756
756
  ]);
757
757
  const { currentPlayer, currentSystem, extraAccounts: [ownershipAccount, profileFactionCandidate], player, playerAccount, starbase, systemAccount, } = await readStakeStarbase(ctx, stake, game, system, character, profile, action, [ownership, profileFaction]);
758
758
  requireStakeRegistered(planetBody.details.claimedPlots, stake, starbase.level, action);
759
759
  const profileFactionAccount = requireAccount(profileFactionCandidate, profileFaction, `ProfileFaction ${profileFaction} is missing for authorization Profile ${profile}. Choose or repair the Profile faction, refresh it, and retry building changes.`);
760
- const currentProfileFaction = profileFactionIdentityAccountDefinition.decode(profileFactionAccount);
760
+ const currentProfileFaction = profileFactionIdentityAccountDefinition.decode(profileFactionAccount, ctx.programs);
761
761
  if (currentProfileFaction.profile !== profile) {
762
762
  fail(`ProfileFaction ${profileFaction} does not match authorization Profile ${profile}. Refresh or repair the Profile faction before retrying building changes.`, profileFaction);
763
763
  }
@@ -767,7 +767,7 @@ export async function planClaimStakeBuildingChanges(ctx, stake, input) {
767
767
  ownershipPrecondition = accountAbsentPrecondition(ownership, `The canonical Starbase FactionOwnership ${ownership} remains unallocated so the chain applies its legacy controller gate.`);
768
768
  }
769
769
  else {
770
- const currentOwnership = factionOwnershipAccountDefinition.decode(ownershipAccount);
770
+ const currentOwnership = factionOwnershipAccountDefinition.decode(ownershipAccount, ctx.programs);
771
771
  if (currentOwnership.game !== game ||
772
772
  currentOwnership.asset.kind !== 'starbase' ||
773
773
  currentOwnership.asset.system !== system ||
@@ -920,9 +920,9 @@ export async function planClaimStakeBuildingChanges(ctx, stake, input) {
920
920
  if (currentStake.production.cargoPod.storageCost > resourceStorageRaw) {
921
921
  fail(`The resulting Claim Stake design provides ${String(resourceStorageRaw)} raw storage capacity, below the fresh known cargo usage of ${String(currentStake.production.cargoPod.storageCost)}. Keep enough storage buildings, remove cargo, refresh the Claim Stake, and retry building changes.`, stake.address);
922
922
  }
923
- const currencyCache = await claimStakeCurrencyCache(game);
923
+ const currencyCache = await claimStakeCurrencyCache(ctx.programs, game);
924
924
  const xp = await resolveClaimStakeXp(ctx, game, stake.address);
925
- const instruction = adaptClaimStakeBuildingChangesInstruction({
925
+ const instruction = adaptClaimStakeBuildingChangesInstruction(ctx.programs, {
926
926
  ...xp.accounts,
927
927
  authorization: options.authorization,
928
928
  buildingChanges: options.buildingChanges.map(({ buildingId, kind, quantity }) => [buildingId, kind === 'add' ? quantity : -quantity]),
@@ -940,7 +940,7 @@ export async function planClaimStakeBuildingChanges(ctx, stake, input) {
940
940
  // The grown design is funded from the Profile vault.
941
941
  const storage = await planClaimStakeStorage(ctx, instruction, profile, [stakeAccount], 'Claim Stake building changes');
942
942
  const description = `Change buildings on Claim Stake ${stake.address}: ${descriptions.join('; ')}. ${storage.disclosure}`;
943
- return buildPlannerPlan({
943
+ return buildPlannerPlan(ctx.programs, {
944
944
  kind: 'claim-stakes.building-changes',
945
945
  preconditions: [
946
946
  ...(await Promise.all([
@@ -1007,7 +1007,7 @@ export async function planFinalizeClaimStakeBuildingChanges(ctx, stake, input) {
1007
1007
  if (stake.state.kind !== 'design') {
1008
1008
  fail(`Claim Stake ${stake.address} is not in design state. Refresh it and finalize only a pending building design.`, stake.address);
1009
1009
  }
1010
- const character = await requireOwnedStake(stake, game, profile);
1010
+ const character = await requireOwnedStake(ctx.programs, stake, game, profile);
1011
1011
  if (stake.rentBalanceRaw <= 0n) {
1012
1012
  fail(`Claim Stake ${stake.address} has a known delinquent rent balance of ${String(stake.rentBalanceRaw)} raw units. Top up rent, refresh the Claim Stake, and retry finalization.`, stake.address);
1013
1013
  }
@@ -1033,16 +1033,16 @@ export async function planFinalizeClaimStakeBuildingChanges(ctx, stake, input) {
1033
1033
  fail(`Claim Stake ${stake.address} changed or does not match its loaded ownership, Body, definitions, buildings, design sequence, rent, or System generation. Refresh it and retry finalization.`, stake.address);
1034
1034
  }
1035
1035
  requireCommittedCrewVersion(currentStake, stake, 'finalized');
1036
- const planet = await requireDesignStakePlanet(loaded.currentBody, stake, game, action);
1036
+ const planet = await requireDesignStakePlanet(ctx.programs, loaded.currentBody, stake, game, action);
1037
1037
  const { system } = planet;
1038
- const { account: characterAccount } = requireProfileCharacter(loaded.extraAccounts[0], character, profile, game, action);
1039
- const currencyCache = await claimStakeCurrencyCache(game);
1038
+ const { account: characterAccount } = requireProfileCharacter(ctx.programs, loaded.extraAccounts[0], character, profile, game, action);
1039
+ const currencyCache = await claimStakeCurrencyCache(ctx.programs, game);
1040
1040
  const { currentSystem, extraAccounts: [currencyCandidate], player, playerAccount, starbase, systemAccount, } = await readStakeStarbase(ctx, stake, game, system, character, profile, action, [currencyCache]);
1041
1041
  requireStakeRegistered(planet.details.claimedPlots, stake, starbase.level, action);
1042
- const currencyGuard = await requireCurrencyCache(currencyCandidate, currencyCache, game, action, 'Claim Stake finalization');
1042
+ const currencyGuard = await requireCurrencyCache(ctx.programs, currencyCandidate, currencyCache, game, action, 'Claim Stake finalization');
1043
1043
  const description = `Finalize building changes on Claim Stake ${stake.address}. A building refund that opens a Starbase Player cargo line, or a new resource that raises the stake's rent floor, is funded from the Profile vault with the signing key, which this Plan does not bound; simulate before signing.`;
1044
1044
  const xp = await resolveClaimStakeXp(ctx, game, stake.address, character);
1045
- return buildPlannerPlan({
1045
+ return buildPlannerPlan(ctx.programs, {
1046
1046
  kind: 'claim-stakes.finalize-building-changes',
1047
1047
  preconditions: [
1048
1048
  xp.guard,
@@ -1060,7 +1060,7 @@ export async function planFinalizeClaimStakeBuildingChanges(ctx, stake, input) {
1060
1060
  steps: [
1061
1061
  {
1062
1062
  describes: description,
1063
- instruction: adaptFinalizeClaimStakeBuildingChangesInstruction({
1063
+ instruction: adaptFinalizeClaimStakeBuildingChangesInstruction(ctx.programs, {
1064
1064
  ...xp.accounts,
1065
1065
  authorization: options.authorization,
1066
1066
  celestialBody: stake.body.address,
@@ -1111,7 +1111,7 @@ export async function planCancelClaimStakeBuildingChanges(ctx, stake, input) {
1111
1111
  if (stake.state.kind !== 'design') {
1112
1112
  fail(`Claim Stake ${stake.address} is not in design state. Refresh it and cancel only a pending building design.`, stake.address);
1113
1113
  }
1114
- const character = await requireOwnedStake(stake, game, profile);
1114
+ const character = await requireOwnedStake(ctx.programs, stake, game, profile);
1115
1115
  const action = 'cancellation';
1116
1116
  const [{ bodyAccount, currentBody, currentStake, stakeAccount }, rent] = await Promise.all([
1117
1117
  readOwnedStake(ctx, stake, action),
@@ -1123,15 +1123,15 @@ export async function planCancelClaimStakeBuildingChanges(ctx, stake, input) {
1123
1123
  !sameQuantities(currentStake.state.buildings, stake.state.buildings)) {
1124
1124
  fail(`Claim Stake ${stake.address} changed or does not match its loaded ownership, Body, definitions, buildings, design sequence, or System generation. Refresh it and retry cancellation.`, stake.address);
1125
1125
  }
1126
- const planet = await requireDesignStakePlanet(currentBody, stake, game, action);
1126
+ const planet = await requireDesignStakePlanet(ctx.programs, currentBody, stake, game, action);
1127
1127
  const { system } = planet;
1128
- const currencyCache = await claimStakeCurrencyCache(game);
1128
+ const currencyCache = await claimStakeCurrencyCache(ctx.programs, game);
1129
1129
  const { currentSystem, extraAccounts: [currencyCandidate], player, playerAccount, starbase, systemAccount, } = await readStakeStarbase(ctx, stake, game, system, character, profile, action, [currencyCache]);
1130
1130
  requireStakeRegistered(planet.details.claimedPlots, stake, starbase.level, action);
1131
- const currencyGuard = await requireCurrencyCache(currencyCandidate, currencyCache, game, action, 'Claim Stake cancellation');
1131
+ const currencyGuard = await requireCurrencyCache(ctx.programs, currencyCandidate, currencyCache, game, action, 'Claim Stake cancellation');
1132
1132
  const description = `Cancel the pending building design on Claim Stake ${stake.address} and return it to active state.`;
1133
1133
  const xp = await resolveClaimStakeXp(ctx, game, stake.address);
1134
- return buildPlannerPlan({
1134
+ return buildPlannerPlan(ctx.programs, {
1135
1135
  kind: 'claim-stakes.cancel-building-changes',
1136
1136
  preconditions: [
1137
1137
  xp.guard,
@@ -1147,7 +1147,7 @@ export async function planCancelClaimStakeBuildingChanges(ctx, stake, input) {
1147
1147
  steps: [
1148
1148
  {
1149
1149
  describes: description,
1150
- instruction: adaptCancelClaimStakeBuildingChangesInstruction({
1150
+ instruction: adaptCancelClaimStakeBuildingChangesInstruction(ctx.programs, {
1151
1151
  ...xp.accounts,
1152
1152
  authorization: options.authorization,
1153
1153
  celestialBody: stake.body.address,
@@ -1195,7 +1195,7 @@ export async function planDeconstructClaimStake(ctx, stake, input) {
1195
1195
  if (stake.state.kind !== 'active') {
1196
1196
  fail(`Claim Stake ${stake.address} is not in active state. Refresh it, finalize or cancel any pending design, and retry deconstruction.`, stake.address);
1197
1197
  }
1198
- const character = await requireOwnedStake(stake, game, profile);
1198
+ const character = await requireOwnedStake(ctx.programs, stake, game, profile);
1199
1199
  const action = 'deconstruction';
1200
1200
  const [freshGame, { bodyAccount, currentBody, currentStake, stakeAccount }, rent,] = await Promise.all([
1201
1201
  readFreshGameClaimStakeConfiguration(ctx),
@@ -1210,7 +1210,7 @@ export async function planDeconstructClaimStake(ctx, stake, input) {
1210
1210
  fail(`Claim Stake ${stake.address} changed or does not match its loaded ownership, Body, definitions, buildings, active state, or System generation. Refresh it and retry deconstruction.`, stake.address);
1211
1211
  }
1212
1212
  requireCommittedCrewVersion(currentStake, stake, 'deconstructed');
1213
- const planet = await requireStakePlanet(currentBody, stake, game, action);
1213
+ const planet = await requireStakePlanet(ctx.programs, currentBody, stake, game, action);
1214
1214
  const { system } = planet;
1215
1215
  if (freshGame.data.claimStakes.sequenceId !== stake.claimStakeDefinitionSeqId) {
1216
1216
  fail(`Claim Stake ${stake.address} definition generation is stale against the current Game catalog. Refresh the Claim Stake and definitions to rule out stale local data. If the on-chain generation still differs, use a Claim Stake matching the current catalog before retrying deconstruction.`, stake.address);
@@ -1265,12 +1265,12 @@ export async function planDeconstructClaimStake(ctx, stake, input) {
1265
1265
  }
1266
1266
  const claimStakeLevel = CLAIM_STAKE_PLOT_LEVELS[row];
1267
1267
  const [currencyCache, [xpAccrual]] = await Promise.all([
1268
- claimStakeCurrencyCache(game),
1269
- deriveStructureXpAccrualAddress(stake.address),
1268
+ claimStakeCurrencyCache(ctx.programs, game),
1269
+ deriveStructureXpAccrualAddress(ctx.programs, stake.address),
1270
1270
  ]);
1271
1271
  const { currentSystem, extraAccounts: [characterCandidate, currencyCandidate, ledgerCandidate], player, playerAccount, systemAccount, } = await readStakeStarbase(ctx, stake, game, system, character, profile, action, [character, currencyCache, xpAccrual]);
1272
- const { account: characterAccount } = requireProfileCharacter(characterCandidate, character, profile, game, action);
1273
- const currencyGuard = await requireCurrencyCache(currencyCandidate, currencyCache, game, action, 'Claim Stake deconstruction');
1272
+ const { account: characterAccount } = requireProfileCharacter(ctx.programs, characterCandidate, character, profile, game, action);
1273
+ const currencyGuard = await requireCurrencyCache(ctx.programs, currencyCandidate, currencyCache, game, action, 'Claim Stake deconstruction');
1274
1274
  // Deconstruction closes an existing XP ledger; a stake without one accrued nothing.
1275
1275
  const xp = ledgerCandidate === undefined
1276
1276
  ? {
@@ -1279,7 +1279,7 @@ export async function planDeconstructClaimStake(ctx, stake, input) {
1279
1279
  }
1280
1280
  : await resolveClaimStakeXp(ctx, game, stake.address, character);
1281
1281
  const description = `Deconstruct Claim Stake ${stake.address} and discard its bundled hub ${bundledHub.name}; rent settlement, cargo return, account closure, and any refund remain chain-authoritative.`;
1282
- return buildPlannerPlan({
1282
+ return buildPlannerPlan(ctx.programs, {
1283
1283
  kind: 'claim-stakes.deconstruct',
1284
1284
  preconditions: [
1285
1285
  ...(await Promise.all([
@@ -1297,7 +1297,7 @@ export async function planDeconstructClaimStake(ctx, stake, input) {
1297
1297
  steps: [
1298
1298
  {
1299
1299
  describes: description,
1300
- instruction: adaptDeconstructClaimStakeInstruction({
1300
+ instruction: adaptDeconstructClaimStakeInstruction(ctx.programs, {
1301
1301
  ...xp.accounts,
1302
1302
  authorization: options.authorization,
1303
1303
  celestialBody: stake.body.address,
@@ -1350,7 +1350,7 @@ export async function planTopUpClaimStakeRent(ctx, stake, input) {
1350
1350
  // Under Disabled rent a top-up has no lifecycle gate: a Deactivated stake
1351
1351
  // accepts one, and that is how its owner avoids eviction.
1352
1352
  const loadedState = stake.state;
1353
- const character = await requireOwnedStake(stake, game, profile);
1353
+ const character = await requireOwnedStake(ctx.programs, stake, game, profile);
1354
1354
  const action = 'the rent top-up';
1355
1355
  const [{ bodyAccount, currentBody, currentStake, extraAccounts: [characterCandidate], stakeAccount, }, rent,] = await Promise.all([
1356
1356
  readOwnedStake(ctx, stake, action, [character]),
@@ -1361,14 +1361,14 @@ export async function planTopUpClaimStakeRent(ctx, stake, input) {
1361
1361
  !sameStakeState(currentStake.state, loadedState)) {
1362
1362
  fail(`Claim Stake ${stake.address} changed or does not match its loaded ownership, Body, definitions, buildings, rent balance, lifecycle state, or System generation. Refresh it and retry the rent top-up.`, stake.address);
1363
1363
  }
1364
- const { system } = await requireStakePlanet(currentBody, stake, game, action);
1365
- const { account: characterAccount, current: currentCharacter } = requireProfileCharacter(characterCandidate, character, profile, game, action);
1364
+ const { system } = await requireStakePlanet(ctx.programs, currentBody, stake, game, action);
1365
+ const { account: characterAccount, current: currentCharacter } = requireProfileCharacter(ctx.programs, characterCandidate, character, profile, game, action);
1366
1366
  if (currentCharacter.atlasRaw < options.amount) {
1367
1367
  fail(`Character ${character} has only ${String(currentCharacter.atlasRaw)} known raw ATLAS, below the requested ${String(options.amount)} raw rent top-up. Reduce the amount or add ATLAS, refresh the Character, and retry.`, character);
1368
1368
  }
1369
1369
  const { currentSystem, player, playerAccount, systemAccount } = await readStakeStarbase(ctx, stake, game, system, character, profile, action);
1370
1370
  const description = `Top up Claim Stake ${stake.address} rent with ${String(options.amount)} raw rent units; rent arithmetic remains chain-authoritative.`;
1371
- return buildPlannerPlan({
1371
+ return buildPlannerPlan(ctx.programs, {
1372
1372
  kind: 'claim-stakes.top-up-rent',
1373
1373
  preconditions: [
1374
1374
  ...(await Promise.all([
@@ -1383,7 +1383,7 @@ export async function planTopUpClaimStakeRent(ctx, stake, input) {
1383
1383
  steps: [
1384
1384
  {
1385
1385
  describes: description,
1386
- instruction: adaptTopUpClaimStakeRentInstruction({
1386
+ instruction: adaptTopUpClaimStakeRentInstruction(ctx.programs, {
1387
1387
  amount: options.amount,
1388
1388
  authorization: options.authorization,
1389
1389
  celestialBody: stake.body.address,
@@ -1488,14 +1488,14 @@ export async function planStartClaimStakeFleetTransfer(ctx, fleet, stake, input)
1488
1488
  if (stake.state.kind !== 'active') {
1489
1489
  fail(`Claim Stake ${stake.address} is ${stake.state.kind}, but starting a Fleet transfer requires an active Claim Stake. Activate or restore it, refresh it, and retry.`, stake.address);
1490
1490
  }
1491
- const character = await requireOwnedStake(stake, game, profile);
1491
+ const character = await requireOwnedStake(ctx.programs, stake, game, profile);
1492
1492
  const action = 'the Fleet transfer';
1493
1493
  const [{ bodyAccount, currentBody, currentStake, extraAccounts: [fleetCandidate, characterCandidate], stakeAccount, }, rent,] = await Promise.all([
1494
1494
  readOwnedStake(ctx, stake, action, [fleet.address, character]),
1495
1495
  requireDisabledStakeRent(ctx, game, stake.address, action),
1496
1496
  ]);
1497
1497
  const fleetAccount = requireAccount(fleetCandidate, fleet.address, `Fleet ${fleet.name} is missing. Refresh it and retry the Fleet transfer.`);
1498
- const currentFleet = fleetAccountDefinition.decode(fleetAccount);
1498
+ const currentFleet = fleetAccountDefinition.decode(fleetAccount, ctx.programs);
1499
1499
  if (!Number.isSafeInteger(currentFleet.crewCount) ||
1500
1500
  currentFleet.crewCount <= 0) {
1501
1501
  fail(crewFailure, fleet.address);
@@ -1503,22 +1503,22 @@ export async function planStartClaimStakeFleetTransfer(ctx, fleet, stake, input)
1503
1503
  if (!sameTransferFleet(currentFleet, fleet, game, profile) ||
1504
1504
  currentFleet.state.kind !== 'idle' ||
1505
1505
  currentFleet.crewCount !== fleet.crewCount ||
1506
- (await deriveFleetAddress(currentFleet)) !== fleet.address) {
1506
+ (await deriveFleetAddress(ctx.programs, currentFleet)) !== fleet.address) {
1507
1507
  fail(`Fleet ${fleet.name} changed or no longer matches its loaded Game, owner, canonical address, name, idle state, normalized crew, cargo, or capacities. Refresh it and create a new Claim Stake transfer Plan.`, fleet.address);
1508
1508
  }
1509
1509
  if (!sameTransferStake(currentStake, stake, game, profile)) {
1510
1510
  fail(`Claim Stake ${stake.address} changed or no longer matches its loaded Game, owner, Body, active state, resources, capacity, or System generation. Refresh it and create a new Fleet transfer Plan.`, stake.address);
1511
1511
  }
1512
- const { system } = await requireStakePlanet(currentBody, stake, game, action);
1513
- const { account: characterAccount } = requireProfileCharacter(characterCandidate, character, profile, game, action);
1512
+ const { system } = await requireStakePlanet(ctx.programs, currentBody, stake, game, action);
1513
+ const { account: characterAccount } = requireProfileCharacter(ctx.programs, characterCandidate, character, profile, game, action);
1514
1514
  const [currencyCache, crewBinding] = await Promise.all([
1515
- claimStakeCurrencyCache(game),
1516
- deriveFleetCrewBindingAddress(fleet.address),
1515
+ claimStakeCurrencyCache(ctx.programs, game),
1516
+ deriveFleetCrewBindingAddress(ctx.programs, fleet.address),
1517
1517
  ]);
1518
1518
  const { currentSystem, extraAccounts: [currencyCandidate, crewCandidate], player, playerAccount, systemAccount, } = await readStakeStarbase(ctx, stake, game, system, character, profile, action, [currencyCache, crewBinding]);
1519
- const currencyGuard = await requireCurrencyCache(currencyCandidate, currencyCache, game, action, 'Claim Stake Fleet transfer');
1519
+ const currencyGuard = await requireCurrencyCache(ctx.programs, currencyCandidate, currencyCache, game, action, 'Claim Stake Fleet transfer');
1520
1520
  if (crewCandidate !== undefined) {
1521
- const currentCrewBinding = fleetCrewBindingAccountDefinition.decode(crewCandidate);
1521
+ const currentCrewBinding = fleetCrewBindingAccountDefinition.decode(crewCandidate, ctx.programs);
1522
1522
  if (crewCandidate.address !== crewBinding ||
1523
1523
  !matchesFleetCrewBindingIdentity(currentCrewBinding, fleet.address, profile)) {
1524
1524
  fail(`FleetCrewBinding ${crewCandidate.address} does not match Fleet ${fleet.address}, its owner Profile, or its canonical PDA. Refresh the Fleet crew registration or remove the invalid binding before retrying.`, crewCandidate.address);
@@ -1544,7 +1544,7 @@ export async function planStartClaimStakeFleetTransfer(ctx, fleet, stake, input)
1544
1544
  ...describeCargoRequests('unload', options.unload),
1545
1545
  ];
1546
1546
  const xp = await resolveClaimStakeXp(ctx, game, stake.address);
1547
- const instruction = adaptStartClaimStakeFleetTransferInstruction({
1547
+ const instruction = adaptStartClaimStakeFleetTransferInstruction(ctx.programs, {
1548
1548
  ...xp.accounts,
1549
1549
  authorization: options.authorization,
1550
1550
  celestialBody: stake.body.address,
@@ -1564,7 +1564,7 @@ export async function planStartClaimStakeFleetTransfer(ctx, fleet, stake, input)
1564
1564
  // its rent floor, then from the Profile vault.
1565
1565
  const storage = await planClaimStakeStorage(ctx, instruction, profile, [fleetAccount, stakeAccount], 'Claim Stake Fleet transfer start');
1566
1566
  const description = `Start fleet ${fleet.name}'s transfer to Claim Stake ${stake.address}: ${descriptions.join('; ')}. Loaded cargo, including Fuel and Ammunition, arrives in the Fleet cargo hold; unloads come from the cargo hold only. Range and transfer duration remain chain-authoritative. ${storage.disclosure}`;
1567
- return buildPlannerPlan({
1567
+ return buildPlannerPlan(ctx.programs, {
1568
1568
  kind: 'claim-stakes.start-fleet-transfer',
1569
1569
  preconditions: [
1570
1570
  xp.guard,
@@ -1639,15 +1639,15 @@ export async function planRecoverClaimStakeFleetTransfer(ctx, fleet, stake, inpu
1639
1639
  if (options.atUnixSeconds < fleet.state.endAtUnixSeconds) {
1640
1640
  fail(`Fleet ${fleet.name}'s Claim Stake transfer lock has not elapsed at Unix timestamp ${String(options.atUnixSeconds)}; it ends at ${String(fleet.state.endAtUnixSeconds)}. Wait until the lock elapses, provide a current timestamp, and retry recovery.`, fleet.address);
1641
1641
  }
1642
- const character = await requireOwnedStake(stake, game, options.authorization.profile);
1642
+ const character = await requireOwnedStake(ctx.programs, stake, game, options.authorization.profile);
1643
1643
  const [fleetCandidate, stakeCandidate] = await readContextRawAccounts(ctx, [
1644
1644
  fleet.address,
1645
1645
  stake.address,
1646
1646
  ]);
1647
1647
  const fleetAccount = requireAccount(fleetCandidate, fleet.address, `Fleet ${fleet.name} is missing. Refresh it and retry Claim Stake transfer recovery.`);
1648
1648
  const stakeAccount = requireAccount(stakeCandidate, stake.address, `Claim Stake ${stake.address} is missing. Refresh it and retry Fleet transfer recovery.`);
1649
- const currentFleet = fleetAccountDefinition.decode(fleetAccount);
1650
- const currentStake = claimStakeAccountDefinition.decode(stakeAccount);
1649
+ const currentFleet = fleetAccountDefinition.decode(fleetAccount, ctx.programs);
1650
+ const currentStake = claimStakeAccountDefinition.decode(stakeAccount, ctx.programs);
1651
1651
  if (!sameTransferFleet(currentFleet, fleet, game, options.authorization.profile) ||
1652
1652
  currentFleet.state.kind !== 'claimStakeTransfer' ||
1653
1653
  currentFleet.state.claimStake !== stake.address ||
@@ -1655,7 +1655,7 @@ export async function planRecoverClaimStakeFleetTransfer(ctx, fleet, stake, inpu
1655
1655
  currentFleet.state.endAtUnixSeconds !== fleet.state.endAtUnixSeconds ||
1656
1656
  !sameCargoAmounts(currentFleet.state.load, fleet.state.load) ||
1657
1657
  !sameCargoAmounts(currentFleet.state.unload, fleet.state.unload) ||
1658
- (await deriveFleetAddress(currentFleet)) !== fleet.address) {
1658
+ (await deriveFleetAddress(ctx.programs, currentFleet)) !== fleet.address) {
1659
1659
  fail(`Fleet ${fleet.name} changed or no longer matches its loaded owner, Game, canonical address, Claim Stake transfer snapshot, cargo, or capacities. Refresh it and retry recovery.`, fleet.address);
1660
1660
  }
1661
1661
  if (!sameTransferStake(currentStake, stake, game, options.authorization.profile)) {
@@ -1715,7 +1715,7 @@ export async function planRecoverClaimStakeFleetTransfer(ctx, fleet, stake, inpu
1715
1715
  fail(`Fleet ${fleet.name}'s Claim Stake transfer is currently executable. Use the permissionless normal exit path; recovery is only for a locally proven non-executable transfer.`, fleet.address);
1716
1716
  }
1717
1717
  const description = `Recover fleet ${fleet.name} from its stuck Claim Stake transfer (${reason}); no cargo moves and the Fleet returns to idle.`;
1718
- return buildPlannerPlan({
1718
+ return buildPlannerPlan(ctx.programs, {
1719
1719
  kind: 'claim-stakes.recover-fleet-transfer',
1720
1720
  preconditions: await Promise.all([
1721
1721
  accountStatePrecondition(fleetAccount, `Fleet ${fleet.name} retains its owner and exact elapsed, non-executable Claim Stake transfer snapshot.`),
@@ -1729,7 +1729,7 @@ export async function planRecoverClaimStakeFleetTransfer(ctx, fleet, stake, inpu
1729
1729
  steps: [
1730
1730
  {
1731
1731
  describes: description,
1732
- instruction: adaptRecoverClaimStakeFleetTransferInstruction({
1732
+ instruction: adaptRecoverClaimStakeFleetTransferInstruction(ctx.programs, {
1733
1733
  authorization: options.authorization,
1734
1734
  claimStakeInstance: stake.address,
1735
1735
  fleet: fleet.address,