@aephia/atlas-kit 0.7.0-next.1 → 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 (601) hide show
  1. package/README.md +5 -0
  2. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  3. package/dist/cargo/actions/deposit.js +4 -4
  4. package/dist/cargo/actions/deposit.js.map +1 -1
  5. package/dist/cargo/actions/index.d.ts.map +1 -1
  6. package/dist/cargo/actions/index.js +20 -20
  7. package/dist/cargo/actions/index.js.map +1 -1
  8. package/dist/cargo/actions/transfer-bounds.d.ts +4 -3
  9. package/dist/cargo/actions/transfer-bounds.d.ts.map +1 -1
  10. package/dist/cargo/actions/transfer-bounds.js +11 -7
  11. package/dist/cargo/actions/transfer-bounds.js.map +1 -1
  12. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  13. package/dist/cargo/actions/wallet-context.js +4 -4
  14. package/dist/cargo/actions/wallet-context.js.map +1 -1
  15. package/dist/cargo/actions/withdrawal.js +2 -2
  16. package/dist/cargo/actions/withdrawal.js.map +1 -1
  17. package/dist/cargo/index.js +2 -2
  18. package/dist/cargo/index.js.map +1 -1
  19. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  20. package/dist/claim-stakes/actions/index.js +84 -84
  21. package/dist/claim-stakes/actions/index.js.map +1 -1
  22. package/dist/client/context.d.ts.map +1 -1
  23. package/dist/client/context.js +49 -20
  24. package/dist/client/context.js.map +1 -1
  25. package/dist/client/contracts.d.ts +42 -4
  26. package/dist/client/contracts.d.ts.map +1 -1
  27. package/dist/client/deployments.d.ts +11 -1
  28. package/dist/client/deployments.d.ts.map +1 -1
  29. package/dist/client/deployments.js +14 -0
  30. package/dist/client/deployments.js.map +1 -1
  31. package/dist/client/index.d.ts +18 -1
  32. package/dist/client/index.d.ts.map +1 -1
  33. package/dist/client/index.js +17 -0
  34. package/dist/client/index.js.map +1 -1
  35. package/dist/combat/actions/index.d.ts.map +1 -1
  36. package/dist/combat/actions/index.js +70 -66
  37. package/dist/combat/actions/index.js.map +1 -1
  38. package/dist/combat/index.d.ts.map +1 -1
  39. package/dist/combat/index.js +2 -2
  40. package/dist/combat/index.js.map +1 -1
  41. package/dist/crafting/actions/fee-rate.d.ts.map +1 -1
  42. package/dist/crafting/actions/fee-rate.js +1 -1
  43. package/dist/crafting/actions/fee-rate.js.map +1 -1
  44. package/dist/crafting/actions/index.d.ts.map +1 -1
  45. package/dist/crafting/actions/index.js +44 -45
  46. package/dist/crafting/actions/index.js.map +1 -1
  47. package/dist/crafting/index.d.ts.map +1 -1
  48. package/dist/crafting/index.js +4 -4
  49. package/dist/crafting/index.js.map +1 -1
  50. package/dist/factions/actions/index.d.ts.map +1 -1
  51. package/dist/factions/actions/index.js +7 -8
  52. package/dist/factions/actions/index.js.map +1 -1
  53. package/dist/factions/index.d.ts.map +1 -1
  54. package/dist/factions/index.js +12 -12
  55. package/dist/factions/index.js.map +1 -1
  56. package/dist/factions/profile-faction.js +2 -2
  57. package/dist/factions/profile-faction.js.map +1 -1
  58. package/dist/fleets/actions/add-ship.d.ts.map +1 -1
  59. package/dist/fleets/actions/add-ship.js +5 -5
  60. package/dist/fleets/actions/add-ship.js.map +1 -1
  61. package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
  62. package/dist/fleets/actions/create-fleet.js +4 -4
  63. package/dist/fleets/actions/create-fleet.js.map +1 -1
  64. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
  65. package/dist/fleets/actions/crew-transfer.js +5 -2
  66. package/dist/fleets/actions/crew-transfer.js.map +1 -1
  67. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -1
  68. package/dist/fleets/actions/deployment-storage.js +4 -4
  69. package/dist/fleets/actions/deployment-storage.js.map +1 -1
  70. package/dist/fleets/actions/disband.d.ts.map +1 -1
  71. package/dist/fleets/actions/disband.js +6 -6
  72. package/dist/fleets/actions/disband.js.map +1 -1
  73. package/dist/fleets/actions/dock-bounds.d.ts +3 -2
  74. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -1
  75. package/dist/fleets/actions/dock-bounds.js +8 -1
  76. package/dist/fleets/actions/dock-bounds.js.map +1 -1
  77. package/dist/fleets/actions/index.d.ts.map +1 -1
  78. package/dist/fleets/actions/index.js +85 -84
  79. package/dist/fleets/actions/index.js.map +1 -1
  80. package/dist/fleets/actions/respawn.js +1 -1
  81. package/dist/fleets/actions/respawn.js.map +1 -1
  82. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  83. package/dist/fleets/actions/ship-import.js +7 -8
  84. package/dist/fleets/actions/ship-import.js.map +1 -1
  85. package/dist/fleets/actions/sync.d.ts.map +1 -1
  86. package/dist/fleets/actions/sync.js +5 -4
  87. package/dist/fleets/actions/sync.js.map +1 -1
  88. package/dist/fleets/index.js +1 -1
  89. package/dist/fleets/index.js.map +1 -1
  90. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  91. package/dist/identity/actions/create-profile.js +11 -8
  92. package/dist/identity/actions/create-profile.js.map +1 -1
  93. package/dist/identity/actions/index.d.ts.map +1 -1
  94. package/dist/identity/actions/index.js +5 -5
  95. package/dist/identity/actions/index.js.map +1 -1
  96. package/dist/identity/actions/research-unlock.d.ts.map +1 -1
  97. package/dist/identity/actions/research-unlock.js +5 -5
  98. package/dist/identity/actions/research-unlock.js.map +1 -1
  99. package/dist/identity/index.d.ts +0 -14
  100. package/dist/identity/index.d.ts.map +1 -1
  101. package/dist/identity/index.js +5 -19
  102. package/dist/identity/index.js.map +1 -1
  103. package/dist/identity/permissions.d.ts +31 -23
  104. package/dist/identity/permissions.d.ts.map +1 -1
  105. package/dist/identity/permissions.js +27 -30
  106. package/dist/identity/permissions.js.map +1 -1
  107. package/dist/index.d.ts +1 -15
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +0 -14
  110. package/dist/index.js.map +1 -1
  111. package/dist/internal/c4/account-decoding.d.ts +9 -5
  112. package/dist/internal/c4/account-decoding.d.ts.map +1 -1
  113. package/dist/internal/c4/account-decoding.js +8 -7
  114. package/dist/internal/c4/account-decoding.js.map +1 -1
  115. package/dist/internal/c4/adapter.d.ts +2 -2
  116. package/dist/internal/c4/adapter.d.ts.map +1 -1
  117. package/dist/internal/c4/career-xp.d.ts.map +1 -1
  118. package/dist/internal/c4/career-xp.js +3 -3
  119. package/dist/internal/c4/career-xp.js.map +1 -1
  120. package/dist/internal/c4/character-registration.d.ts +2 -1
  121. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  122. package/dist/internal/c4/character-registration.js +3 -3
  123. package/dist/internal/c4/character-registration.js.map +1 -1
  124. package/dist/internal/c4/character.d.ts +3 -3
  125. package/dist/internal/c4/character.d.ts.map +1 -1
  126. package/dist/internal/c4/character.js +6 -6
  127. package/dist/internal/c4/character.js.map +1 -1
  128. package/dist/internal/c4/claim-stake-storage.d.ts +2 -2
  129. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -1
  130. package/dist/internal/c4/claim-stake-storage.js +2 -2
  131. package/dist/internal/c4/claim-stake-storage.js.map +1 -1
  132. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  133. package/dist/internal/c4/claim-stake.js +2 -2
  134. package/dist/internal/c4/claim-stake.js.map +1 -1
  135. package/dist/internal/c4/combat-storage.d.ts +2 -2
  136. package/dist/internal/c4/combat-storage.d.ts.map +1 -1
  137. package/dist/internal/c4/combat-storage.js +4 -2
  138. package/dist/internal/c4/combat-storage.js.map +1 -1
  139. package/dist/internal/c4/combat.d.ts +2 -2
  140. package/dist/internal/c4/combat.d.ts.map +1 -1
  141. package/dist/internal/c4/combat.js +4 -4
  142. package/dist/internal/c4/combat.js.map +1 -1
  143. package/dist/internal/c4/crafting.d.ts +4 -4
  144. package/dist/internal/c4/crafting.d.ts.map +1 -1
  145. package/dist/internal/c4/crafting.js +10 -10
  146. package/dist/internal/c4/crafting.js.map +1 -1
  147. package/dist/internal/c4/currency-cache.d.ts +3 -3
  148. package/dist/internal/c4/currency-cache.d.ts.map +1 -1
  149. package/dist/internal/c4/currency-cache.js +6 -6
  150. package/dist/internal/c4/currency-cache.js.map +1 -1
  151. package/dist/internal/c4/faction-enrollment.d.ts +0 -3
  152. package/dist/internal/c4/faction-enrollment.d.ts.map +1 -1
  153. package/dist/internal/c4/faction-enrollment.js +1 -3
  154. package/dist/internal/c4/faction-enrollment.js.map +1 -1
  155. package/dist/internal/c4/faction-epoch-meter.d.ts +3 -3
  156. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
  157. package/dist/internal/c4/faction-epoch-meter.js +5 -5
  158. package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
  159. package/dist/internal/c4/faction-treasury.d.ts +2 -1
  160. package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
  161. package/dist/internal/c4/faction-treasury.js +4 -4
  162. package/dist/internal/c4/faction-treasury.js.map +1 -1
  163. package/dist/internal/c4/factions.d.ts +12 -12
  164. package/dist/internal/c4/factions.d.ts.map +1 -1
  165. package/dist/internal/c4/factions.js +31 -31
  166. package/dist/internal/c4/factions.js.map +1 -1
  167. package/dist/internal/c4/fleet-arrival.d.ts +2 -2
  168. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -1
  169. package/dist/internal/c4/fleet-arrival.js +3 -3
  170. package/dist/internal/c4/fleet-arrival.js.map +1 -1
  171. package/dist/internal/c4/fleet-creation.d.ts +3 -2
  172. package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
  173. package/dist/internal/c4/fleet-creation.js +7 -8
  174. package/dist/internal/c4/fleet-creation.js.map +1 -1
  175. package/dist/internal/c4/fleet-crew-binding.d.ts +2 -2
  176. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  177. package/dist/internal/c4/fleet-crew-binding.js +4 -4
  178. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  179. package/dist/internal/c4/fleet-disband.d.ts +2 -2
  180. package/dist/internal/c4/fleet-disband.d.ts.map +1 -1
  181. package/dist/internal/c4/fleet-disband.js +7 -8
  182. package/dist/internal/c4/fleet-disband.js.map +1 -1
  183. package/dist/internal/c4/fleet-respawn.d.ts +2 -4
  184. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -1
  185. package/dist/internal/c4/fleet-respawn.js +6 -8
  186. package/dist/internal/c4/fleet-respawn.js.map +1 -1
  187. package/dist/internal/c4/fleet-ship-assembly.d.ts +2 -2
  188. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
  189. package/dist/internal/c4/fleet-ship-assembly.js +5 -6
  190. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
  191. package/dist/internal/c4/fleet-sync.d.ts +2 -1
  192. package/dist/internal/c4/fleet-sync.d.ts.map +1 -1
  193. package/dist/internal/c4/fleet-sync.js +3 -3
  194. package/dist/internal/c4/fleet-sync.js.map +1 -1
  195. package/dist/internal/c4/fleet.d.ts +4 -4
  196. package/dist/internal/c4/fleet.d.ts.map +1 -1
  197. package/dist/internal/c4/fleet.js +9 -9
  198. package/dist/internal/c4/fleet.js.map +1 -1
  199. package/dist/internal/c4/game.d.ts +12 -12
  200. package/dist/internal/c4/game.d.ts.map +1 -1
  201. package/dist/internal/c4/game.js +24 -24
  202. package/dist/internal/c4/game.js.map +1 -1
  203. package/dist/internal/c4/identity.d.ts +2 -2
  204. package/dist/internal/c4/identity.d.ts.map +1 -1
  205. package/dist/internal/c4/identity.js +6 -6
  206. package/dist/internal/c4/identity.js.map +1 -1
  207. package/dist/internal/c4/local-market-order.d.ts +2 -3
  208. package/dist/internal/c4/local-market-order.d.ts.map +1 -1
  209. package/dist/internal/c4/local-market-order.js +4 -9
  210. package/dist/internal/c4/local-market-order.js.map +1 -1
  211. package/dist/internal/c4/loot.d.ts.map +1 -1
  212. package/dist/internal/c4/loot.js +2 -2
  213. package/dist/internal/c4/loot.js.map +1 -1
  214. package/dist/internal/c4/loyalty.d.ts +4 -4
  215. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  216. package/dist/internal/c4/loyalty.js +10 -10
  217. package/dist/internal/c4/loyalty.js.map +1 -1
  218. package/dist/internal/c4/market.d.ts +3 -3
  219. package/dist/internal/c4/market.d.ts.map +1 -1
  220. package/dist/internal/c4/market.js +7 -7
  221. package/dist/internal/c4/market.js.map +1 -1
  222. package/dist/internal/c4/open-signal.d.ts +3 -4
  223. package/dist/internal/c4/open-signal.d.ts.map +1 -1
  224. package/dist/internal/c4/open-signal.js +7 -10
  225. package/dist/internal/c4/open-signal.js.map +1 -1
  226. package/dist/internal/c4/pda.d.ts +18 -18
  227. package/dist/internal/c4/pda.d.ts.map +1 -1
  228. package/dist/internal/c4/pda.js +35 -36
  229. package/dist/internal/c4/pda.js.map +1 -1
  230. package/dist/internal/c4/profile-creation.d.ts +3 -2
  231. package/dist/internal/c4/profile-creation.d.ts.map +1 -1
  232. package/dist/internal/c4/profile-creation.js +6 -7
  233. package/dist/internal/c4/profile-creation.js.map +1 -1
  234. package/dist/internal/c4/profile-faction.d.ts +2 -2
  235. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  236. package/dist/internal/c4/profile-faction.js +4 -4
  237. package/dist/internal/c4/profile-faction.js.map +1 -1
  238. package/dist/internal/c4/profile-permissions.d.ts +3 -4
  239. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  240. package/dist/internal/c4/profile-permissions.js +7 -9
  241. package/dist/internal/c4/profile-permissions.js.map +1 -1
  242. package/dist/internal/c4/rewards.d.ts +3 -3
  243. package/dist/internal/c4/rewards.d.ts.map +1 -1
  244. package/dist/internal/c4/rewards.js +8 -8
  245. package/dist/internal/c4/rewards.js.map +1 -1
  246. package/dist/internal/c4/runtime-bindings.d.ts +1 -2
  247. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  248. package/dist/internal/c4/runtime-bindings.js +1 -2
  249. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  250. package/dist/internal/c4/scan-lifecycle.d.ts +2 -2
  251. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  252. package/dist/internal/c4/scan-lifecycle.js +4 -4
  253. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  254. package/dist/internal/c4/scanning.d.ts +2 -2
  255. package/dist/internal/c4/scanning.d.ts.map +1 -1
  256. package/dist/internal/c4/scanning.js +4 -4
  257. package/dist/internal/c4/scanning.js.map +1 -1
  258. package/dist/internal/c4/starbase.d.ts +2 -2
  259. package/dist/internal/c4/starbase.d.ts.map +1 -1
  260. package/dist/internal/c4/starbase.js +5 -5
  261. package/dist/internal/c4/starbase.js.map +1 -1
  262. package/dist/internal/c4/wallet-cargo-cache.d.ts +2 -2
  263. package/dist/internal/c4/wallet-cargo-cache.d.ts.map +1 -1
  264. package/dist/internal/c4/wallet-cargo-cache.js +3 -3
  265. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  266. package/dist/internal/c4/world.d.ts +3 -3
  267. package/dist/internal/c4/world.d.ts.map +1 -1
  268. package/dist/internal/c4/world.js +9 -9
  269. package/dist/internal/c4/world.js.map +1 -1
  270. package/dist/internal/planning/arrival-guards.d.ts +2 -1
  271. package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
  272. package/dist/internal/planning/arrival-guards.js +4 -5
  273. package/dist/internal/planning/arrival-guards.js.map +1 -1
  274. package/dist/internal/planning/authorization-adapter.d.ts +35 -34
  275. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  276. package/dist/internal/planning/authorization-adapter.js +105 -105
  277. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  278. package/dist/internal/planning/cargo-storage-actions.d.ts +2 -2
  279. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -1
  280. package/dist/internal/planning/cargo-storage-actions.js +7 -5
  281. package/dist/internal/planning/cargo-storage-actions.js.map +1 -1
  282. package/dist/internal/planning/character-access.d.ts +3 -3
  283. package/dist/internal/planning/character-access.d.ts.map +1 -1
  284. package/dist/internal/planning/character-access.js +6 -5
  285. package/dist/internal/planning/character-access.js.map +1 -1
  286. package/dist/internal/planning/character-registration-guard.d.ts +2 -1
  287. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
  288. package/dist/internal/planning/character-registration-guard.js +3 -4
  289. package/dist/internal/planning/character-registration-guard.js.map +1 -1
  290. package/dist/internal/planning/character-registration.d.ts.map +1 -1
  291. package/dist/internal/planning/character-registration.js +2 -2
  292. package/dist/internal/planning/character-registration.js.map +1 -1
  293. package/dist/internal/planning/claim-stake-storage-actions.d.ts +2 -2
  294. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -1
  295. package/dist/internal/planning/claim-stake-storage-actions.js +3 -3
  296. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -1
  297. package/dist/internal/planning/combat-storage-actions.d.ts +2 -2
  298. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -1
  299. package/dist/internal/planning/combat-storage-actions.js +3 -3
  300. package/dist/internal/planning/combat-storage-actions.js.map +1 -1
  301. package/dist/internal/planning/crafting-storage-actions.d.ts +2 -2
  302. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -1
  303. package/dist/internal/planning/crafting-storage-actions.js +6 -6
  304. package/dist/internal/planning/crafting-storage-actions.js.map +1 -1
  305. package/dist/internal/planning/currency-cache-guard.d.ts +2 -1
  306. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
  307. package/dist/internal/planning/currency-cache-guard.js +2 -3
  308. package/dist/internal/planning/currency-cache-guard.js.map +1 -1
  309. package/dist/internal/planning/democracy-history.d.ts.map +1 -1
  310. package/dist/internal/planning/democracy-history.js +9 -9
  311. package/dist/internal/planning/democracy-history.js.map +1 -1
  312. package/dist/internal/planning/faction-enrollment.d.ts +2 -2
  313. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  314. package/dist/internal/planning/faction-enrollment.js +6 -6
  315. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  316. package/dist/internal/planning/faction-trade-state.d.ts +4 -4
  317. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -1
  318. package/dist/internal/planning/faction-trade-state.js +9 -9
  319. package/dist/internal/planning/faction-trade-state.js.map +1 -1
  320. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
  321. package/dist/internal/planning/fleet-arrival.js +8 -9
  322. package/dist/internal/planning/fleet-arrival.js.map +1 -1
  323. package/dist/internal/planning/fleet-attack-xp.d.ts +2 -2
  324. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
  325. package/dist/internal/planning/fleet-attack-xp.js +7 -7
  326. package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
  327. package/dist/internal/planning/fleet-creation.d.ts +3 -3
  328. package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
  329. package/dist/internal/planning/fleet-creation.js +9 -10
  330. package/dist/internal/planning/fleet-creation.js.map +1 -1
  331. package/dist/internal/planning/fleet-crew-guard.d.ts +4 -3
  332. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
  333. package/dist/internal/planning/fleet-crew-guard.js +7 -8
  334. package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
  335. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
  336. package/dist/internal/planning/fleet-crew-transfer.js +16 -17
  337. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
  338. package/dist/internal/planning/fleet-disband-guard.d.ts +2 -1
  339. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -1
  340. package/dist/internal/planning/fleet-disband-guard.js +4 -5
  341. package/dist/internal/planning/fleet-disband-guard.js.map +1 -1
  342. package/dist/internal/planning/fleet-disband.d.ts +3 -3
  343. package/dist/internal/planning/fleet-disband.d.ts.map +1 -1
  344. package/dist/internal/planning/fleet-disband.js +11 -12
  345. package/dist/internal/planning/fleet-disband.js.map +1 -1
  346. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +2 -1
  347. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
  348. package/dist/internal/planning/fleet-dock-funding-guard.js +2 -3
  349. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
  350. package/dist/internal/planning/fleet-dock-funding.d.ts +2 -2
  351. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
  352. package/dist/internal/planning/fleet-dock-funding.js +9 -9
  353. package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
  354. package/dist/internal/planning/fleet-docking-guard.d.ts +2 -1
  355. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
  356. package/dist/internal/planning/fleet-docking-guard.js +4 -5
  357. package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
  358. package/dist/internal/planning/fleet-docking.d.ts +2 -2
  359. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  360. package/dist/internal/planning/fleet-docking.js +11 -12
  361. package/dist/internal/planning/fleet-docking.js.map +1 -1
  362. package/dist/internal/planning/fleet-rental.d.ts +2 -1
  363. package/dist/internal/planning/fleet-rental.d.ts.map +1 -1
  364. package/dist/internal/planning/fleet-rental.js +2 -3
  365. package/dist/internal/planning/fleet-rental.js.map +1 -1
  366. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
  367. package/dist/internal/planning/fleet-respawn.js +16 -18
  368. package/dist/internal/planning/fleet-respawn.js.map +1 -1
  369. package/dist/internal/planning/fleet-ship-assembly.d.ts +3 -3
  370. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
  371. package/dist/internal/planning/fleet-ship-assembly.js +12 -13
  372. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
  373. package/dist/internal/planning/governance-fees.d.ts.map +1 -1
  374. package/dist/internal/planning/governance-fees.js +12 -12
  375. package/dist/internal/planning/governance-fees.js.map +1 -1
  376. package/dist/internal/planning/local-market-order-funding.d.ts +2 -2
  377. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
  378. package/dist/internal/planning/local-market-order-funding.js +11 -11
  379. package/dist/internal/planning/local-market-order-funding.js.map +1 -1
  380. package/dist/internal/planning/local-market-order.d.ts +2 -1
  381. package/dist/internal/planning/local-market-order.d.ts.map +1 -1
  382. package/dist/internal/planning/local-market-order.js +4 -4
  383. package/dist/internal/planning/local-market-order.js.map +1 -1
  384. package/dist/internal/planning/market-storage-actions.d.ts +2 -2
  385. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -1
  386. package/dist/internal/planning/market-storage-actions.js +3 -3
  387. package/dist/internal/planning/market-storage-actions.js.map +1 -1
  388. package/dist/internal/planning/mining-stop.d.ts +3 -3
  389. package/dist/internal/planning/mining-stop.d.ts.map +1 -1
  390. package/dist/internal/planning/mining-stop.js +5 -6
  391. package/dist/internal/planning/mining-stop.js.map +1 -1
  392. package/dist/internal/planning/mining-storage-actions.d.ts +2 -2
  393. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -1
  394. package/dist/internal/planning/mining-storage-actions.js +2 -2
  395. package/dist/internal/planning/mining-storage-actions.js.map +1 -1
  396. package/dist/internal/planning/movement-storage-actions.d.ts +2 -2
  397. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -1
  398. package/dist/internal/planning/movement-storage-actions.js +2 -2
  399. package/dist/internal/planning/movement-storage-actions.js.map +1 -1
  400. package/dist/internal/planning/movement-xp-guard.d.ts +2 -1
  401. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
  402. package/dist/internal/planning/movement-xp-guard.js +3 -3
  403. package/dist/internal/planning/movement-xp-guard.js.map +1 -1
  404. package/dist/internal/planning/open-signal-guard.d.ts +2 -1
  405. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
  406. package/dist/internal/planning/open-signal-guard.js +4 -4
  407. package/dist/internal/planning/open-signal-guard.js.map +1 -1
  408. package/dist/internal/planning/open-signal.d.ts +3 -3
  409. package/dist/internal/planning/open-signal.d.ts.map +1 -1
  410. package/dist/internal/planning/open-signal.js +12 -13
  411. package/dist/internal/planning/open-signal.js.map +1 -1
  412. package/dist/internal/planning/own-starbase-facts.d.ts +2 -2
  413. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -1
  414. package/dist/internal/planning/own-starbase-facts.js +7 -7
  415. package/dist/internal/planning/own-starbase-facts.js.map +1 -1
  416. package/dist/internal/planning/profile-storage-funding-guard.d.ts +3 -2
  417. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -1
  418. package/dist/internal/planning/profile-storage-funding-guard.js +4 -5
  419. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -1
  420. package/dist/internal/planning/profile-storage-funding.d.ts +3 -3
  421. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -1
  422. package/dist/internal/planning/profile-storage-funding.js +5 -6
  423. package/dist/internal/planning/profile-storage-funding.js.map +1 -1
  424. package/dist/internal/planning/qualified-deployment.d.ts +11 -0
  425. package/dist/internal/planning/qualified-deployment.d.ts.map +1 -0
  426. package/dist/internal/planning/qualified-deployment.js +15 -0
  427. package/dist/internal/planning/qualified-deployment.js.map +1 -0
  428. package/dist/internal/planning/recipe-state.d.ts +3 -3
  429. package/dist/internal/planning/recipe-state.d.ts.map +1 -1
  430. package/dist/internal/planning/recipe-state.js +5 -5
  431. package/dist/internal/planning/recipe-state.js.map +1 -1
  432. package/dist/internal/planning/region-access.d.ts +5 -5
  433. package/dist/internal/planning/region-access.d.ts.map +1 -1
  434. package/dist/internal/planning/region-access.js +12 -12
  435. package/dist/internal/planning/region-access.js.map +1 -1
  436. package/dist/internal/planning/rent-catalog.d.ts +2 -2
  437. package/dist/internal/planning/rent-catalog.d.ts.map +1 -1
  438. package/dist/internal/planning/rent-catalog.js +8 -9
  439. package/dist/internal/planning/rent-catalog.js.map +1 -1
  440. package/dist/internal/planning/research-unlock.d.ts +4 -4
  441. package/dist/internal/planning/research-unlock.d.ts.map +1 -1
  442. package/dist/internal/planning/research-unlock.js +19 -21
  443. package/dist/internal/planning/research-unlock.js.map +1 -1
  444. package/dist/internal/planning/respawn-guards.d.ts +2 -1
  445. package/dist/internal/planning/respawn-guards.d.ts.map +1 -1
  446. package/dist/internal/planning/respawn-guards.js +2 -3
  447. package/dist/internal/planning/respawn-guards.js.map +1 -1
  448. package/dist/internal/planning/runtime-guards.d.ts +2 -2
  449. package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
  450. package/dist/internal/planning/runtime-guards.js +10 -11
  451. package/dist/internal/planning/runtime-guards.js.map +1 -1
  452. package/dist/internal/planning/scan-completion-guard.d.ts +4 -3
  453. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
  454. package/dist/internal/planning/scan-completion-guard.js +7 -8
  455. package/dist/internal/planning/scan-completion-guard.js.map +1 -1
  456. package/dist/internal/planning/scan-completion.d.ts +1 -1
  457. package/dist/internal/planning/scan-completion.d.ts.map +1 -1
  458. package/dist/internal/planning/scan-completion.js +12 -14
  459. package/dist/internal/planning/scan-completion.js.map +1 -1
  460. package/dist/internal/planning/scan-detect-guard.d.ts +5 -4
  461. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
  462. package/dist/internal/planning/scan-detect-guard.js +7 -8
  463. package/dist/internal/planning/scan-detect-guard.js.map +1 -1
  464. package/dist/internal/planning/scan-detect.d.ts +2 -2
  465. package/dist/internal/planning/scan-detect.d.ts.map +1 -1
  466. package/dist/internal/planning/scan-detect.js +17 -18
  467. package/dist/internal/planning/scan-detect.js.map +1 -1
  468. package/dist/internal/planning/ship-import-funding.d.ts +3 -3
  469. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -1
  470. package/dist/internal/planning/ship-import-funding.js +7 -7
  471. package/dist/internal/planning/ship-import-funding.js.map +1 -1
  472. package/dist/internal/planning/starbase-player-owner.d.ts +2 -1
  473. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -1
  474. package/dist/internal/planning/starbase-player-owner.js +3 -4
  475. package/dist/internal/planning/starbase-player-owner.js.map +1 -1
  476. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +2 -1
  477. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -1
  478. package/dist/internal/planning/starbase-player-recovery-guard.js +4 -5
  479. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -1
  480. package/dist/internal/planning/starbase-system-guard.d.ts +3 -2
  481. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
  482. package/dist/internal/planning/starbase-system-guard.js +8 -8
  483. package/dist/internal/planning/starbase-system-guard.js.map +1 -1
  484. package/dist/internal/planning/starbase-system.d.ts +2 -2
  485. package/dist/internal/planning/starbase-system.d.ts.map +1 -1
  486. package/dist/internal/planning/starbase-system.js +3 -3
  487. package/dist/internal/planning/starbase-system.js.map +1 -1
  488. package/dist/internal/planning/storage-action-readers.d.ts +2 -2
  489. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -1
  490. package/dist/internal/planning/storage-action-readers.js +7 -5
  491. package/dist/internal/planning/storage-action-readers.js.map +1 -1
  492. package/dist/internal/planning/storage-actions.d.ts +4 -4
  493. package/dist/internal/planning/storage-actions.d.ts.map +1 -1
  494. package/dist/internal/planning/storage-actions.js +7 -7
  495. package/dist/internal/planning/storage-actions.js.map +1 -1
  496. package/dist/internal/planning/trade-faction-market.d.ts +2 -1
  497. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -1
  498. package/dist/internal/planning/trade-faction-market.js +6 -6
  499. package/dist/internal/planning/trade-faction-market.js.map +1 -1
  500. package/dist/internal/planning/wallet-starbase.d.ts +2 -2
  501. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -1
  502. package/dist/internal/planning/wallet-starbase.js +7 -8
  503. package/dist/internal/planning/wallet-starbase.js.map +1 -1
  504. package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
  505. package/dist/internal/planning/xp-runtime.js +13 -13
  506. package/dist/internal/planning/xp-runtime.js.map +1 -1
  507. package/dist/loyalty/actions/index.d.ts.map +1 -1
  508. package/dist/loyalty/actions/index.js +7 -7
  509. package/dist/loyalty/actions/index.js.map +1 -1
  510. package/dist/loyalty/index.d.ts.map +1 -1
  511. package/dist/loyalty/index.js +9 -9
  512. package/dist/loyalty/index.js.map +1 -1
  513. package/dist/markets/actions/index.d.ts +4 -2
  514. package/dist/markets/actions/index.d.ts.map +1 -1
  515. package/dist/markets/actions/index.js +28 -20
  516. package/dist/markets/actions/index.js.map +1 -1
  517. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
  518. package/dist/markets/actions/trade-faction-market.js +22 -23
  519. package/dist/markets/actions/trade-faction-market.js.map +1 -1
  520. package/dist/markets/index.d.ts +12 -5
  521. package/dist/markets/index.d.ts.map +1 -1
  522. package/dist/markets/index.js +17 -10
  523. package/dist/markets/index.js.map +1 -1
  524. package/dist/mining/actions/index.d.ts.map +1 -1
  525. package/dist/mining/actions/index.js +25 -24
  526. package/dist/mining/actions/index.js.map +1 -1
  527. package/dist/mining/index.d.ts.map +1 -1
  528. package/dist/mining/index.js +2 -2
  529. package/dist/mining/index.js.map +1 -1
  530. package/dist/planning/assembly.d.ts +2 -2
  531. package/dist/planning/assembly.d.ts.map +1 -1
  532. package/dist/planning/assembly.js +6 -3
  533. package/dist/planning/assembly.js.map +1 -1
  534. package/dist/planning/execution.d.ts.map +1 -1
  535. package/dist/planning/execution.js +34 -35
  536. package/dist/planning/execution.js.map +1 -1
  537. package/dist/planning/index.d.ts +15 -3
  538. package/dist/planning/index.d.ts.map +1 -1
  539. package/dist/planning/index.js +32 -11
  540. package/dist/planning/index.js.map +1 -1
  541. package/dist/planning/plan-construction.d.ts +5 -2
  542. package/dist/planning/plan-construction.d.ts.map +1 -1
  543. package/dist/planning/plan-construction.js +16 -4
  544. package/dist/planning/plan-construction.js.map +1 -1
  545. package/dist/planning/plan-validation.d.ts +4 -3
  546. package/dist/planning/plan-validation.d.ts.map +1 -1
  547. package/dist/planning/plan-validation.js +56 -56
  548. package/dist/planning/plan-validation.js.map +1 -1
  549. package/dist/planning/simulation.js +1 -1
  550. package/dist/planning/simulation.js.map +1 -1
  551. package/dist/registry/cargo.d.ts.map +1 -1
  552. package/dist/registry/cargo.js +2 -2
  553. package/dist/registry/cargo.js.map +1 -1
  554. package/dist/registry/claim-stakes.d.ts.map +1 -1
  555. package/dist/registry/claim-stakes.js +1 -1
  556. package/dist/registry/claim-stakes.js.map +1 -1
  557. package/dist/registry/docking.d.ts +2 -2
  558. package/dist/registry/docking.d.ts.map +1 -1
  559. package/dist/registry/docking.js +2 -2
  560. package/dist/registry/docking.js.map +1 -1
  561. package/dist/registry/index.js +1 -1
  562. package/dist/registry/index.js.map +1 -1
  563. package/dist/registry/onboarding.d.ts +2 -2
  564. package/dist/registry/onboarding.d.ts.map +1 -1
  565. package/dist/registry/onboarding.js +4 -4
  566. package/dist/registry/onboarding.js.map +1 -1
  567. package/dist/registry/scanning.js +1 -1
  568. package/dist/registry/scanning.js.map +1 -1
  569. package/dist/registry/ships.d.ts +3 -3
  570. package/dist/registry/ships.d.ts.map +1 -1
  571. package/dist/registry/ships.js +10 -7
  572. package/dist/registry/ships.js.map +1 -1
  573. package/dist/registry/xp-runtime.js +1 -1
  574. package/dist/registry/xp-runtime.js.map +1 -1
  575. package/dist/rewards/index.d.ts.map +1 -1
  576. package/dist/rewards/index.js +3 -3
  577. package/dist/rewards/index.js.map +1 -1
  578. package/dist/scanning/actions/index.d.ts.map +1 -1
  579. package/dist/scanning/actions/index.js +7 -7
  580. package/dist/scanning/actions/index.js.map +1 -1
  581. package/dist/scanning/index.d.ts.map +1 -1
  582. package/dist/scanning/index.js +4 -4
  583. package/dist/scanning/index.js.map +1 -1
  584. package/dist/scanning/signals.d.ts.map +1 -1
  585. package/dist/scanning/signals.js +1 -1
  586. package/dist/scanning/signals.js.map +1 -1
  587. package/dist/starbases/actions/index.d.ts.map +1 -1
  588. package/dist/starbases/actions/index.js +25 -26
  589. package/dist/starbases/actions/index.js.map +1 -1
  590. package/dist/starbases/index.d.ts.map +1 -1
  591. package/dist/starbases/index.js +1 -1
  592. package/dist/starbases/index.js.map +1 -1
  593. package/dist/world/index.d.ts +7 -4
  594. package/dist/world/index.d.ts.map +1 -1
  595. package/dist/world/index.js +11 -9
  596. package/dist/world/index.js.map +1 -1
  597. package/package.json +61 -31
  598. package/dist/internal/c4/mining-instructions.d.ts +0 -2
  599. package/dist/internal/c4/mining-instructions.d.ts.map +0 -1
  600. package/dist/internal/c4/mining-instructions.js +0 -3
  601. package/dist/internal/c4/mining-instructions.js.map +0 -1
@@ -277,7 +277,7 @@ export async function planFleetApplyCombatStimulant(ctx, fleet, stimulant, input
277
277
  }
278
278
  const [currentAccount] = await readContextRawAccounts(ctx, [fleet.address]);
279
279
  const account = requireAccount(currentAccount, fleet.address, `Fleet ${fleet.name} (${fleet.address}) is missing. Refresh Fleet discovery and retry applying ${catalogued.cargo.name}.`);
280
- const current = fleetAccountDefinition.decode(account);
280
+ const current = fleetAccountDefinition.decode(account, ctx.programs);
281
281
  const snapshotFingerprint = [
282
282
  fleet.address,
283
283
  fleet.game,
@@ -296,14 +296,14 @@ export async function planFleetApplyCombatStimulant(ctx, fleet, stimulant, input
296
296
  current.crewCount,
297
297
  rawCargoFingerprint(current),
298
298
  ].join('|');
299
- if ((await deriveFleetAddress(current)) !== fleet.address ||
299
+ if ((await deriveFleetAddress(ctx.programs, current)) !== fleet.address ||
300
300
  currentFingerprint !== snapshotFingerprint) {
301
301
  fail(`Fleet ${fleet.name} (${fleet.address}) changed or does not match its canonical Game, owner, label, state, crew count, or cargo hold. Refresh the Fleet through this context and retry.`, fleet.address);
302
302
  }
303
303
  if (current.crewCount <= 0) {
304
304
  fail(`Fleet ${fleet.name} (${fleet.address}) has no crew and cannot apply a combat stimulant. Crew the Fleet, refresh it through this context, and retry.`, fleet.address);
305
305
  }
306
- const instruction = adaptApplyCombatStimulantInstruction({
306
+ const instruction = adaptApplyCombatStimulantInstruction(ctx.programs, {
307
307
  authorization: options.authorization,
308
308
  fleet: fleet.address,
309
309
  game,
@@ -313,7 +313,7 @@ export async function planFleetApplyCombatStimulant(ctx, fleet, stimulant, input
313
313
  // that from the Profile vault with the signing key.
314
314
  const storage = await planFleetStorage(ctx, instruction, [account.address], options.authorization.profile, 'combat stimulant', catalogued.effects.map(({ stat }) => stimulantStatId(stat)));
315
315
  const description = `Apply one ${catalogued.cargo.name} combat stimulant from Fleet ${fleet.name} (${fleet.address}); permission, stacking, charge application, and combat outcomes remain chain-authoritative. ${storage.disclosure}`;
316
- return buildPlannerPlan({
316
+ return buildPlannerPlan(ctx.programs, {
317
317
  kind: 'combat.apply-stimulant',
318
318
  preconditions: [
319
319
  await accountStatePrecondition(account, `Fleet ${fleet.name} retains its configured Game, owning Profile, supported crewed state, and known ${catalogued.cargo.name} cargo balance.`),
@@ -361,9 +361,9 @@ function attackFleetFingerprint(address, fleet, ships) {
361
361
  ships,
362
362
  ].join('|');
363
363
  }
364
- async function validateCurrentAttackFleet(fleet, account) {
364
+ async function validateCurrentAttackFleet(programs, fleet, account) {
365
365
  const currentAccount = requireAccount(account, fleet.address, `Fleet ${fleet.name} (${fleet.address}) is missing. Refresh Fleet discovery and retry the attack.`);
366
- const current = fleetAccountDefinition.decode(currentAccount);
366
+ const current = fleetAccountDefinition.decode(currentAccount, programs);
367
367
  const currentFingerprint = [
368
368
  currentAccount.address,
369
369
  currentAccount.address,
@@ -377,7 +377,7 @@ async function validateCurrentAttackFleet(fleet, account) {
377
377
  current.npcFactionId,
378
378
  rawShipFingerprint(current),
379
379
  ].join('|');
380
- if ((await deriveFleetAddress(current)) !== fleet.address ||
380
+ if ((await deriveFleetAddress(programs, current)) !== fleet.address ||
381
381
  currentFingerprint !==
382
382
  attackFleetFingerprint(fleet.address, fleet, shipFingerprint(fleet))) {
383
383
  fail(`Fleet ${fleet.name} (${fleet.address}) changed or does not match its canonical Game, owner, label, state, crew, AP, faction, or ship composition. Refresh both Fleets and retry.`, fleet.address);
@@ -388,9 +388,9 @@ async function validateCurrentAttackFleet(fleet, account) {
388
388
  * chain time (a finished warp counts as Idle), carries its required crew, and
389
389
  * has usable AP: stored AP refills right after an attack, but stays unusable
390
390
  * until the reload completes. */
391
- function validateAttackerReadiness(fleet, account, clock) {
391
+ function validateAttackerReadiness(programs, fleet, account, clock) {
392
392
  const now = readClock(requireAccount(clock, CLOCK_ADDRESS, 'The Clock sysvar is missing. Refresh chain time and retry the attack.'));
393
- const current = fleetAccountDefinition.decode(account);
393
+ const current = fleetAccountDefinition.decode(account, programs);
394
394
  const label = `Attacking Fleet ${fleet.name} (${fleet.address})`;
395
395
  const { state } = current;
396
396
  if (state.kind !== 'idle' &&
@@ -404,7 +404,7 @@ function validateAttackerReadiness(fleet, account, clock) {
404
404
  fail(`${label} has no usable ability power at chain time ${String(now)}: stored AP ${String(current.ap)} with reload completing at ${String(current.apReloadExpiresAt)}. Wait for the reload, refresh the Fleet, and retry.`, fleet.address);
405
405
  }
406
406
  async function optionalCrewBinding(ctx, fleet) {
407
- const address = await deriveFleetCrewBindingAddress(fleet.address);
407
+ const address = await deriveFleetCrewBindingAddress(ctx.programs, fleet.address);
408
408
  const [envelope] = await ctx.data.readMany(fleetCrewBindingAccountDefinition, [address]);
409
409
  if (envelope !== undefined &&
410
410
  !matchesFleetCrewBindingIdentity(envelope.data, fleet.address, fleet.ownerProfile.address)) {
@@ -417,8 +417,8 @@ async function resolveRewardAccounts(ctx, fleet, registry, config, epochIndex) {
417
417
  if (resolvedFaction === 0)
418
418
  return { config, registry };
419
419
  const [epochAddress, contributionAddress] = await Promise.all([
420
- deriveLoyaltyEpochAddress(fleet.game, resolvedFaction, epochIndex),
421
- deriveLoyaltyContributionAddress(fleet.game, fleet.ownerProfile.address, resolvedFaction, epochIndex),
420
+ deriveLoyaltyEpochAddress(ctx.programs, fleet.game, resolvedFaction, epochIndex),
421
+ deriveLoyaltyContributionAddress(ctx.programs, fleet.game, fleet.ownerProfile.address, resolvedFaction, epochIndex),
422
422
  ]);
423
423
  const [[epoch], [contribution]] = await Promise.all([
424
424
  ctx.data.readMany(loyaltyEpochAccountDefinition, [epochAddress]),
@@ -454,13 +454,16 @@ async function resolveNpcAccounts(ctx, fleet, withFaction) {
454
454
  if (fleet.npcFactionId === 0)
455
455
  return {};
456
456
  const addresses = await Promise.all([
457
- deriveFactionOwnershipAddress(fleet.game, 'fleet', fleet.address),
457
+ deriveFactionOwnershipAddress(ctx.programs, fleet.game, 'fleet', fleet.address),
458
458
  ...(withFaction
459
- ? [deriveFactionAccountAddress(fleet.game, fleet.npcFactionId)]
459
+ ? [
460
+ deriveFactionAccountAddress(ctx.programs, fleet.game, fleet.npcFactionId),
461
+ ]
460
462
  : []),
461
463
  ]);
462
464
  const [ownership, faction] = await readContextRawAccounts(ctx, addresses);
463
- const ownershipData = ownership && factionOwnershipAccountDefinition.decode(ownership);
465
+ const ownershipData = ownership &&
466
+ factionOwnershipAccountDefinition.decode(ownership, ctx.programs);
464
467
  if (ownership === undefined ||
465
468
  ownershipData?.game !== fleet.game ||
466
469
  ownershipData.asset.kind !== 'fleet' ||
@@ -470,7 +473,7 @@ async function resolveNpcAccounts(ctx, fleet, withFaction) {
470
473
  }
471
474
  if (!withFaction)
472
475
  return { ownership };
473
- const factionData = faction && factionAccountDefinition.decode(faction);
476
+ const factionData = faction && factionAccountDefinition.decode(faction, ctx.programs);
474
477
  if (faction === undefined ||
475
478
  factionData?.game !== fleet.game ||
476
479
  factionData.factionId !== fleet.npcFactionId) {
@@ -565,16 +568,16 @@ export async function planFleetAttackFleet(ctx, attacker, defender, inputStance,
565
568
  fail(`Loot account ${options.loot} already exists. Generate a new unused Loot signer address and retry.`, options.loot);
566
569
  }
567
570
  const [attackerAccount, defenderAccount] = await Promise.all([
568
- validateCurrentAttackFleet(attacker, currentAccounts[0]),
569
- validateCurrentAttackFleet(defender, currentAccounts[1]),
571
+ validateCurrentAttackFleet(ctx.programs, attacker, currentAccounts[0]),
572
+ validateCurrentAttackFleet(ctx.programs, defender, currentAccounts[1]),
570
573
  ]);
571
- validateAttackerReadiness(attacker, attackerAccount, currentAccounts[3]);
572
- const registryAddress = await deriveAtlasRewardRegistryAddress(game);
574
+ validateAttackerReadiness(ctx.programs, attacker, attackerAccount, currentAccounts[3]);
575
+ const registryAddress = await deriveAtlasRewardRegistryAddress(ctx.programs, game);
573
576
  const registry = await ctx.data.read(atlasRewardRegistryAccountDefinition, registryAddress);
574
577
  if (registry.data.game !== game) {
575
578
  fail(`AtlasRewardRegistry ${registryAddress} belongs to another Game. Refresh the configured reward registry and retry.`, registryAddress);
576
579
  }
577
- const rewardConfig = await deriveAtlasRewardConfigAddress(game, registry.data.activeConfigVersion);
580
+ const rewardConfig = await deriveAtlasRewardConfigAddress(ctx.programs, game, registry.data.activeConfigVersion);
578
581
  const [attackerRewards, defenderRewards, crewBinding, attackerNpc, defenderNpc,] = await Promise.all([
579
582
  resolveRewardAccounts(ctx, attacker, registryAddress, rewardConfig, registry.data.currentEpoch),
580
583
  resolveRewardAccounts(ctx, defender, registryAddress, rewardConfig, registry.data.currentEpoch),
@@ -583,10 +586,10 @@ export async function planFleetAttackFleet(ctx, attacker, defender, inputStance,
583
586
  resolveNpcAccounts(ctx, defender, false),
584
587
  ]);
585
588
  const [character, defenderCharacter, regionTracker, factionRelationTracker] = await Promise.all([
586
- findCharacterPda(attacker.ownerProfile.address, game),
587
- findCharacterPda(defender.ownerProfile.address, game),
588
- deriveRegionTrackerAddress(game),
589
- deriveFactionRelationTrackerAddress(game),
589
+ findCharacterPda(ctx.programs, attacker.ownerProfile.address, game),
590
+ findCharacterPda(ctx.programs, defender.ownerProfile.address, game),
591
+ deriveRegionTrackerAddress(ctx.programs, game),
592
+ deriveFactionRelationTrackerAddress(ctx.programs, game),
590
593
  ]);
591
594
  const actorIntent = {
592
595
  address: attacker.address,
@@ -612,7 +615,7 @@ export async function planFleetAttackFleet(ctx, attacker, defender, inputStance,
612
615
  accounts: xp.accounts,
613
616
  describes: 'Both operator XP budgets remain canonical and reconciled; earned XP and bank balances may change.',
614
617
  }));
615
- const instruction = adaptAttackFleetInstruction({
618
+ const instruction = adaptAttackFleetInstruction(ctx.programs, {
616
619
  ...(attackerNpc.faction === undefined
617
620
  ? {}
618
621
  : { attackerFactionAccount: attackerNpc.faction.address }),
@@ -658,7 +661,7 @@ export async function planFleetAttackFleet(ctx, attacker, defender, inputStance,
658
661
  stance: generatedStance(stance),
659
662
  });
660
663
  const description = `Attack Fleet ${defender.name} (${defender.address}) with Fleet ${attacker.name} (${attacker.address}) using ${stance.ammoUsage} ammunition; range, randomness, rewards, Loot, damage, and final combat arithmetic remain chain-authoritative.`;
661
- return buildPlannerPlan({
664
+ return buildPlannerPlan(ctx.programs, {
662
665
  kind: 'combat.attack-fleet',
663
666
  preconditions: [
664
667
  {
@@ -738,35 +741,36 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
738
741
  if (target.game !== game) {
739
742
  fail(`Target Star System ${target.address} belongs to Game ${target.game}, not configured Game ${game}. Refresh the target through this context and retry.`, target.address);
740
743
  }
741
- if ((await deriveStarSystemAddress(game, target.systemId)) !== target.address) {
744
+ if ((await deriveStarSystemAddress(ctx.programs, game, target.systemId)) !==
745
+ target.address) {
742
746
  fail(`Target Star System ${target.address} is not the canonical member for Game ${game} and system id ${String(target.systemId)}. Refresh the target through this context and retry.`, target.address);
743
747
  }
744
748
  if (target.starbase === undefined) {
745
749
  fail(`Target Star System ${target.name} (${target.address}) has no shared Starbase. Choose a System with a shared Starbase and retry.`, target.address);
746
750
  }
747
751
  const [relationTrackerAddress, ownershipAddress, registryAddress, kingTracker, character, regionTracker, crewBindingAddress,] = await Promise.all([
748
- deriveFactionRelationTrackerAddress(game),
749
- deriveFactionOwnershipAddress(game, 'starbase', target.address),
750
- deriveAtlasRewardRegistryAddress(game),
751
- deriveKingSystemTrackerAddress(game),
752
- findCharacterPda(attacker.ownerProfile.address, game),
753
- deriveRegionTrackerAddress(game),
754
- deriveFleetCrewBindingAddress(attacker.address),
752
+ deriveFactionRelationTrackerAddress(ctx.programs, game),
753
+ deriveFactionOwnershipAddress(ctx.programs, game, 'starbase', target.address),
754
+ deriveAtlasRewardRegistryAddress(ctx.programs, game),
755
+ deriveKingSystemTrackerAddress(ctx.programs, game),
756
+ findCharacterPda(ctx.programs, attacker.ownerProfile.address, game),
757
+ deriveRegionTrackerAddress(ctx.programs, game),
758
+ deriveFleetCrewBindingAddress(ctx.programs, attacker.address),
755
759
  ]);
756
760
  const [[probeRelationsAccount, probeRegistryAccount], attackerNpc, rent] = await Promise.all([
757
761
  readContextRawAccounts(ctx, [relationTrackerAddress, registryAddress]),
758
762
  resolveNpcAccounts(ctx, attacker, true),
759
763
  requireDisabledLevelRent(ctx, game, target, 'the Starbase attack'),
760
764
  ]);
761
- const probeRelations = factionRelationTrackerAccountDefinition.decode(requireAccount(probeRelationsAccount, relationTrackerAddress, `FactionRelationTracker ${relationTrackerAddress} is missing. Refresh faction relationships and retry.`));
762
- const probeRegistry = atlasRewardRegistryAccountDefinition.decode(requireAccount(probeRegistryAccount, registryAddress, `AtlasRewardRegistry ${registryAddress} is missing. Refresh reward configuration and retry.`));
765
+ const probeRelations = factionRelationTrackerAccountDefinition.decode(requireAccount(probeRelationsAccount, relationTrackerAddress, `FactionRelationTracker ${relationTrackerAddress} is missing. Refresh faction relationships and retry.`), ctx.programs);
766
+ const probeRegistry = atlasRewardRegistryAccountDefinition.decode(requireAccount(probeRegistryAccount, registryAddress, `AtlasRewardRegistry ${registryAddress} is missing. Refresh reward configuration and retry.`), ctx.programs);
763
767
  if (probeRelations.game !== game) {
764
768
  fail(`FactionRelationTracker ${relationTrackerAddress} belongs to another Game. Refresh faction relationships and retry.`, relationTrackerAddress);
765
769
  }
766
770
  if (probeRegistry.game !== game) {
767
771
  fail(`AtlasRewardRegistry ${registryAddress} belongs to another Game. Refresh the configured reward registry and retry.`, registryAddress);
768
772
  }
769
- const rewardConfigAddress = await deriveAtlasRewardConfigAddress(game, probeRegistry.activeConfigVersion);
773
+ const rewardConfigAddress = await deriveAtlasRewardConfigAddress(ctx.programs, game, probeRegistry.activeConfigVersion);
770
774
  const requiresNpcEconomy = attacker.npcFactionId > 0 &&
771
775
  probeRelations.dynamicCaptureEnabled &&
772
776
  probeRelations.nemesisActive;
@@ -774,8 +778,8 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
774
778
  let captorTreasury;
775
779
  if (requiresNpcEconomy) {
776
780
  [factionEconomicsConfig, captorTreasury] = await Promise.all([
777
- deriveFactionEconomicsConfigAddress(game),
778
- deriveFactionTreasuryAddress(game, attacker.npcFactionId),
781
+ deriveFactionEconomicsConfigAddress(ctx.programs, game),
782
+ deriveFactionTreasuryAddress(ctx.programs, game, attacker.npcFactionId),
779
783
  ]);
780
784
  }
781
785
  const dependencyAddresses = [
@@ -802,17 +806,17 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
802
806
  if (current.get(options.loot) !== undefined) {
803
807
  fail(`Loot account ${options.loot} already exists. Generate a new unused Loot signer address and retry.`, options.loot);
804
808
  }
805
- const attackerAccount = await validateCurrentAttackFleet(attacker, current.get(attacker.address));
806
- validateAttackerReadiness(attacker, attackerAccount, current.get(CLOCK_ADDRESS));
809
+ const attackerAccount = await validateCurrentAttackFleet(ctx.programs, attacker, current.get(attacker.address));
810
+ validateAttackerReadiness(ctx.programs, attacker, attackerAccount, current.get(CLOCK_ADDRESS));
807
811
  const systemAccount = requireAccount(current.get(target.address), target.address, `Target Star System ${target.name} (${target.address}) is missing. Refresh world state and retry the attack.`);
808
- const currentSystem = starSystemAccountDefinition.decode(systemAccount);
809
- if ((await deriveStarSystemAddress(currentSystem.game, currentSystem.systemId)) !== target.address ||
812
+ const currentSystem = starSystemAccountDefinition.decode(systemAccount, ctx.programs);
813
+ if ((await deriveStarSystemAddress(ctx.programs, currentSystem.game, currentSystem.systemId)) !== target.address ||
810
814
  systemFingerprint({ ...currentSystem, address: systemAccount.address }) !==
811
815
  systemFingerprint(target)) {
812
816
  fail(`Target Star System ${target.name} (${target.address}) changed or does not match its canonical Game, identity, sequence, or shared Starbase state. Refresh the target and retry.`, target.address);
813
817
  }
814
818
  const relationsAccount = requireAccount(current.get(relationTrackerAddress), relationTrackerAddress, `FactionRelationTracker ${relationTrackerAddress} is missing. Refresh faction relationships and retry.`);
815
- const relations = factionRelationTrackerAccountDefinition.decode(relationsAccount);
819
+ const relations = factionRelationTrackerAccountDefinition.decode(relationsAccount, ctx.programs);
816
820
  if (relations.game !== game ||
817
821
  relations.dynamicCaptureEnabled !== probeRelations.dynamicCaptureEnabled ||
818
822
  relations.nemesisActive !== probeRelations.nemesisActive) {
@@ -823,7 +827,7 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
823
827
  : undefined;
824
828
  const ownership = ownershipAccount === undefined
825
829
  ? undefined
826
- : factionOwnershipAccountDefinition.decode(ownershipAccount);
830
+ : factionOwnershipAccountDefinition.decode(ownershipAccount, ctx.programs);
827
831
  if (ownership === undefined && relations.dynamicCaptureEnabled) {
828
832
  fail(`Target Starbase ${target.address} requires canonical FactionOwnership while dynamic capture is enabled. Refresh Starbase ownership and retry.`, ownershipAddress);
829
833
  }
@@ -838,20 +842,20 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
838
842
  }
839
843
  const effectiveOwner = ownership?.controllingFactionId ?? legacyOwner;
840
844
  const registryAccount = requireAccount(current.get(registryAddress), registryAddress, `AtlasRewardRegistry ${registryAddress} is missing. Refresh reward configuration and retry.`);
841
- const registry = atlasRewardRegistryAccountDefinition.decode(registryAccount);
845
+ const registry = atlasRewardRegistryAccountDefinition.decode(registryAccount, ctx.programs);
842
846
  if (registry.game !== game ||
843
847
  registry.activeConfigVersion !== probeRegistry.activeConfigVersion) {
844
848
  fail(`AtlasRewardRegistry ${registryAddress} changed or belongs to another Game. Refresh the configured reward registry and retry.`, registryAddress);
845
849
  }
846
850
  const rewardConfigAccount = requireAccount(current.get(rewardConfigAddress), rewardConfigAddress, `AtlasRewardConfig ${rewardConfigAddress} is missing. Refresh reward configuration and retry.`);
847
- const rewardConfig = atlasRewardConfigAccountDefinition.decode(rewardConfigAccount);
851
+ const rewardConfig = atlasRewardConfigAccountDefinition.decode(rewardConfigAccount, ctx.programs);
848
852
  if (rewardConfig.game !== game ||
849
853
  rewardConfig.configVersion !== registry.activeConfigVersion ||
850
854
  rewardConfig.effectiveEpoch > registry.currentEpoch) {
851
855
  fail(`AtlasRewardConfig ${rewardConfigAddress} does not match the configured Game and active registry version or is not yet effective for the current epoch. Refresh reward configuration and retry.`, rewardConfigAddress);
852
856
  }
853
857
  const kingAccount = requireAccount(current.get(kingTracker), kingTracker, `KingSystemTracker ${kingTracker} is missing. Refresh King-system ownership and retry.`);
854
- const king = kingSystemTrackerAccountDefinition.decode(kingAccount);
858
+ const king = kingSystemTrackerAccountDefinition.decode(kingAccount, ctx.programs);
855
859
  const kingTarget = king.systems.find(({ systemId }) => systemId === currentSystem.systemId);
856
860
  if (king.game !== game ||
857
861
  kingTarget === undefined ||
@@ -859,19 +863,19 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
859
863
  fail(`KingSystemTracker ${kingTracker} does not contain target System ${String(currentSystem.systemId)} with its current effective owner ${String(effectiveOwner)}. Refresh King-system ownership and retry.`, kingTracker);
860
864
  }
861
865
  const characterAccount = requireAccount(current.get(character), character, `Character ${character} is missing for Profile ${attacker.ownerProfile.address}. Refresh the Profile Character registration and retry.`);
862
- const characterData = characterAccountDefinition.decode(characterAccount);
866
+ const characterData = characterAccountDefinition.decode(characterAccount, ctx.programs);
863
867
  if (characterData.game !== game ||
864
868
  characterData.playerProfile !== attacker.ownerProfile.address) {
865
869
  fail(`Character ${character} does not match Profile ${attacker.ownerProfile.address} and configured Game ${game}. Refresh the Profile Character registration and retry.`, character);
866
870
  }
867
871
  const regionTrackerAccount = requireAccount(current.get(regionTracker), regionTracker, `RegionTracker ${regionTracker} is missing for configured Game ${game}. Refresh world region data and retry.`);
868
- const regionTrackerData = regionTrackerAccountDefinition.decode(regionTrackerAccount);
872
+ const regionTrackerData = regionTrackerAccountDefinition.decode(regionTrackerAccount, ctx.programs);
869
873
  if (regionTrackerData.game !== game) {
870
874
  fail(`RegionTracker ${regionTracker} does not match configured Game ${game}. Refresh world region data and retry.`, regionTracker);
871
875
  }
872
876
  // The attack reads the target's stored Region. When the Region map agrees,
873
877
  // guard only that Region's access data; otherwise keep the whole tracker.
874
- const regionAccess = (await regionsContainingSystem(regionTrackerAccount, systemAccount, game))
878
+ const regionAccess = (await regionsContainingSystem(ctx.programs, regionTrackerAccount, systemAccount, game))
875
879
  .map(({ id }) => id)
876
880
  .join() === String(currentSystem.regionId ?? '')
877
881
  ? {
@@ -879,14 +883,14 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
879
883
  address: regionTracker,
880
884
  game,
881
885
  system: target.address,
882
- accessHash: await hashRegionAccess(regionTrackerAccount, systemAccount, game),
886
+ accessHash: await hashRegionAccess(ctx.programs, regionTrackerAccount, systemAccount, game),
883
887
  describes: `The Region holding target Star System ${target.name} keeps its owner, safety status and risk zone; other Regions may change.`,
884
888
  }
885
889
  : undefined;
886
890
  const crewBindingAccount = current.get(crewBindingAddress);
887
891
  const crewBinding = crewBindingAccount === undefined ? undefined : crewBindingAddress;
888
892
  if (crewBindingAccount !== undefined) {
889
- const data = fleetCrewBindingAccountDefinition.decode(crewBindingAccount);
893
+ const data = fleetCrewBindingAccountDefinition.decode(crewBindingAccount, ctx.programs);
890
894
  if (!matchesFleetCrewBindingIdentity(data, attacker.address, attacker.ownerProfile.address)) {
891
895
  fail(`FleetCrewBinding ${crewBindingAddress} does not belong to Fleet ${attacker.address} and Profile ${attacker.ownerProfile.address}. Refresh the Fleet crew relationship and retry.`, crewBindingAddress);
892
896
  }
@@ -896,8 +900,8 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
896
900
  if (factionEconomicsConfig !== undefined && captorTreasury !== undefined) {
897
901
  economicsAccount = requireAccount(current.get(factionEconomicsConfig), factionEconomicsConfig, `FactionEconomicsConfig ${factionEconomicsConfig} is missing. Refresh faction economics and retry.`);
898
902
  treasuryAccount = requireAccount(current.get(captorTreasury), captorTreasury, `FactionTreasury ${captorTreasury} is missing. Refresh the captor treasury and retry.`);
899
- const economics = factionEconomicsConfigAccountDefinition.decode(economicsAccount);
900
- const treasury = factionTreasuryAccountDefinition.decode(treasuryAccount);
903
+ const economics = factionEconomicsConfigAccountDefinition.decode(economicsAccount, ctx.programs);
904
+ const treasury = factionTreasuryAccountDefinition.decode(treasuryAccount, ctx.programs);
901
905
  if (economics.game !== game) {
902
906
  fail(`FactionEconomicsConfig ${factionEconomicsConfig} belongs to another Game. Refresh faction economics and retry.`, factionEconomicsConfig);
903
907
  }
@@ -990,11 +994,11 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
990
994
  mode: 'starbase-attack',
991
995
  game,
992
996
  system: target.address,
993
- starbaseSeqId: starSystemAccountDefinition.decode(systemAccount).sequenceId,
997
+ starbaseSeqId: starSystemAccountDefinition.decode(systemAccount, ctx.programs).sequenceId,
994
998
  character,
995
999
  });
996
1000
  const description = `Attack with Fleet ${attacker.name} (${attacker.address}) against the shared Starbase at ${target.name} (${target.address}) using ${stance.ammoUsage} ammunition; range, capture-cost debit outcome, randomness, rewards, Loot, damage, and final admissibility remain chain-authoritative.`;
997
- return buildPlannerPlan({
1001
+ return buildPlannerPlan(ctx.programs, {
998
1002
  kind: 'combat.attack-starbase',
999
1003
  preconditions: [
1000
1004
  ...statePreconditions,
@@ -1006,7 +1010,7 @@ export async function planFleetAttackStarbase(ctx, attacker, target, inputStance
1006
1010
  steps: [
1007
1011
  {
1008
1012
  describes: `${description} ${runtime.description}`,
1009
- instruction: adaptAttackStarbaseInstruction({
1013
+ instruction: adaptAttackStarbaseInstruction(ctx.programs, {
1010
1014
  ...runtime.accounts,
1011
1015
  ...(attackerNpc.faction === undefined
1012
1016
  ? {}
@@ -1130,8 +1134,8 @@ export async function planFleetRetrieveLoot(ctx, fleet, loot, inputWant, inputOp
1130
1134
  const selection = validateLootSelection(inputWant, loot, fleet, options.authorization.profile, options.atUnixSeconds);
1131
1135
  const [fleetAccountValue, lootAccountValue] = await readContextRawAccounts(ctx, [fleet.address, loot.address]);
1132
1136
  const fleetAccount = requireAccount(fleetAccountValue, fleet.address, `Fleet ${fleet.name} (${fleet.address}) is missing. Refresh Fleet discovery and retry retrieving Loot.`);
1133
- const currentFleet = fleetAccountDefinition.decode(fleetAccount);
1134
- if ((await deriveFleetAddress(currentFleet)) !== fleet.address ||
1137
+ const currentFleet = fleetAccountDefinition.decode(fleetAccount, ctx.programs);
1138
+ if ((await deriveFleetAddress(ctx.programs, currentFleet)) !== fleet.address ||
1135
1139
  currentFleet.game !== fleet.game ||
1136
1140
  currentFleet.ownerProfile !== fleet.ownerProfile.address ||
1137
1141
  currentFleet.name !== fleet.name ||
@@ -1147,7 +1151,7 @@ export async function planFleetRetrieveLoot(ctx, fleet, loot, inputWant, inputOp
1147
1151
  fail(`Fleet ${fleet.name} (${fleet.address}) has no usable ability power at ${String(options.atUnixSeconds)} Unix seconds: stored AP ${String(currentFleet.ap)} with reload completing at ${String(currentFleet.apReloadExpiresAt)}. Retrieving Loot spends the whole AP pool; wait for the reload, refresh the Fleet, and retry.`, fleet.address);
1148
1152
  }
1149
1153
  const lootAccount = requireAccount(lootAccountValue, loot.address, `Loot ${loot.address} is no longer available. Refresh Loot discovery and choose an available account before retrying.`);
1150
- const currentLoot = lootAccountDefinition.decode(lootAccount);
1154
+ const currentLoot = lootAccountDefinition.decode(lootAccount, ctx.programs);
1151
1155
  if (rawLootFingerprint(lootAccount.address, currentLoot) !==
1152
1156
  lootSnapshotFingerprint(loot)) {
1153
1157
  fail(`Loot ${loot.address} changed or no longer matches its loaded identity, Profile, coordinates, exclusivity, or known inventory. Refresh the Loot snapshot and retry.`, loot.address);
@@ -1155,7 +1159,7 @@ export async function planFleetRetrieveLoot(ctx, fleet, loot, inputWant, inputOp
1155
1159
  const lootCreator = loot.profile.address === options.authorization.profile
1156
1160
  ? undefined
1157
1161
  : loot.profile.address;
1158
- const instruction = adaptRetrieveLootInstruction({
1162
+ const instruction = adaptRetrieveLootInstruction(ctx.programs, {
1159
1163
  authorization: options.authorization,
1160
1164
  fleet: fleet.address,
1161
1165
  game,
@@ -1171,7 +1175,7 @@ export async function planFleetRetrieveLoot(ctx, fleet, loot, inputWant, inputOp
1171
1175
  // Profile vault before the emptied Loot refunds its rent.
1172
1176
  const storage = await planFleetStorage(ctx, instruction, [fleetAccount.address], options.authorization.profile, 'Loot retrieval');
1173
1177
  const description = `Request ${selection.summary} from Loot ${loot.address} with Fleet ${fleet.name} (${fleet.address}); this spends the Fleet's whole ability power pool. Range, recent-slot randomness, cargo capacity, availability races, and final transfer quantities remain chain-authoritative. ${storage.disclosure}`;
1174
- return buildPlannerPlan({
1178
+ return buildPlannerPlan(ctx.programs, {
1175
1179
  kind: 'combat.retrieve-loot',
1176
1180
  preconditions: [
1177
1181
  await accountStatePrecondition(fleetAccount, `Fleet ${fleet.name} retains its configured Game, owning Profile, idle state, and normalized crew.`),
@@ -1195,8 +1199,8 @@ async function planFleetStorage(ctx, instruction, addresses, profile, label, sti
1195
1199
  const all = [...addresses, profile, RENT_ADDRESS];
1196
1200
  const rows = await readContextRawAccounts(ctx, all);
1197
1201
  const accounts = new Map(all.map((address, index) => [address, rows[index]]));
1198
- return planStorageFunding({
1199
- action: readCombatStorageAction(instruction, accounts, stimulantStats),
1202
+ return planStorageFunding(ctx.programs, {
1203
+ action: readCombatStorageAction(ctx.programs, instruction, accounts, stimulantStats),
1200
1204
  accounts,
1201
1205
  label,
1202
1206
  });