@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
@@ -48,7 +48,7 @@ export async function planFleetDisband(ctx, fleet, input) {
48
48
  const [fleetRaw] = await readContextRawAccounts(ctx, [fleet]);
49
49
  if (!fleetRaw || fleetRaw.executable)
50
50
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The selected Fleet is missing or executable. Refresh a valid owned Fleet and replan the disband.', { address: fleet });
51
- const docked = fleetAccountDefinition.decode(fleetRaw).state;
51
+ const docked = fleetAccountDefinition.decode(fleetRaw, ctx.programs).state;
52
52
  if (docked.kind !== 'docked')
53
53
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Only a Docked Fleet can disband. Dock it at a Starbase where the Character has a current StarbasePlayer and replan.', { address: fleet });
54
54
  const intent = {
@@ -59,7 +59,7 @@ export async function planFleetDisband(ctx, fleet, input) {
59
59
  fleet,
60
60
  system: docked.system,
61
61
  };
62
- const resolved = await resolveFleetDisband(intent);
62
+ const resolved = await resolveFleetDisband(ctx.programs, intent);
63
63
  const addresses = [
64
64
  resolved.profile,
65
65
  resolved.character,
@@ -72,13 +72,13 @@ export async function planFleetDisband(ctx, fleet, input) {
72
72
  const raw = await readContextRawAccounts(ctx, addresses);
73
73
  const accounts = new Map(addresses.map((address, index) => [address, raw[index]]));
74
74
  accounts.set(fleet, fleetRaw);
75
- const { fleet: data } = await validateFleetDisband(intent, resolved, accounts);
76
- const instruction = disbandFleetInstruction({
75
+ const { fleet: data } = await validateFleetDisband(ctx.programs, intent, resolved, accounts);
76
+ const instruction = disbandFleetInstruction(ctx.programs, {
77
77
  ...intent,
78
78
  character: resolved.character,
79
79
  starbasePlayer: resolved.starbasePlayer,
80
80
  });
81
- const storage = planStorageFunding({
81
+ const storage = planStorageFunding(ctx.programs, {
82
82
  action: readDisbandStorageAction(instruction, accounts),
83
83
  accounts,
84
84
  label: 'Fleet disband',
@@ -87,7 +87,7 @@ export async function planFleetDisband(ctx, fleet, input) {
87
87
  .map(({ shipId, quantity }) => `${String(quantity)} of configuration ${String(shipId)}`)
88
88
  .join(', ');
89
89
  const summary = `Disband Fleet ${data.name} (${fleet}) at StarbasePlayer ${resolved.starbasePlayer}: ${ships || 'no ships'} return to its hangar, ${String(data.crewCount)} crew return to it, and the Fleet's fuel, ammo, cargo hold and components merge into its cargo. The Character's Fleet slot is freed, and the Fleet closes, refunding its ${String(fleetRaw.lamports)}-lamport balance to Profile ${intent.profile}. ${storage.disclosure} The program also needs full AP and SP when the instruction runs. Transaction fees are separate. Simulate before signing; the chain stays authoritative.`;
90
- return buildPlannerPlan({
90
+ return buildPlannerPlan(ctx.programs, {
91
91
  kind: 'fleets.disband',
92
92
  summary,
93
93
  preconditions: [
@@ -1 +1 @@
1
- {"version":3,"file":"disband.js","sourceRoot":"","sources":["../../../src/fleets/actions/disband.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disband.js","sourceRoot":"","sources":["../../../src/fleets/actions/disband.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { type DockBoundsUnavailableReason } from '../../internal/planning/fleet-
11
11
  */
12
12
  export type FleetDockDebitBounds = {
13
13
  readonly status: 'unavailable';
14
- readonly reason: DockBoundsUnavailableReason | 'not-fleet-dock' | 'multiple-fleet-docks' | 'combined-plan';
14
+ readonly reason: DockBoundsUnavailableReason | 'not-fleet-dock' | 'multiple-fleet-docks' | 'combined-plan' | 'unqualified-deployment';
15
15
  toJSON(): unknown;
16
16
  } | {
17
17
  readonly status: 'available';
@@ -25,7 +25,8 @@ export type FleetDockDebitBounds = {
25
25
  toJSON(): unknown;
26
26
  };
27
27
  /** Inspects the persisted docking ceiling without network I/O. Inspect individual
28
- * Plans before combining distinct Fleets. Fresh pre-sign checks are not an atomic
28
+ * Plans before combining distinct Fleets. The ceiling is qualified for the
29
+ * z.ink PTR deployment only; any other deployment is `unqualified-deployment`. Fresh pre-sign checks are not an atomic
29
30
  * on-chain spending cap; state can change before landing.
30
31
  * @example
31
32
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"dock-bounds.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qDAAqD,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EACX,2BAA2B,GAC3B,gBAAgB,GAChB,sBAAsB,GACtB,eAAe,CAAC;IACpB,MAAM,IAAI,OAAO,CAAC;CACnB,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,MAAM,IAAI,OAAO,CAAC;CACnB,CAAC;AAEN;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CA6CxE"}
1
+ {"version":3,"file":"dock-bounds.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qDAAqD,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EACX,2BAA2B,GAC3B,gBAAgB,GAChB,sBAAsB,GACtB,eAAe,GACf,wBAAwB,CAAC;IAC7B,MAAM,IAAI,OAAO,CAAC;CACnB,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,MAAM,IAAI,OAAO,CAAC;CACnB,CAAC;AAEN;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CAoDxE"}
@@ -1,9 +1,11 @@
1
1
  import { attachJsonSerialization } from '../../internal/json.js';
2
2
  import { InvalidActionInputError } from '../../client/errors.js';
3
3
  import { isPlanInstance } from '../../planning/plan-instances.js';
4
+ import { isDebitQualifiedDeployment } from '../../internal/planning/qualified-deployment.js';
4
5
  import { MAXIMUM_DOCK_GROWTH_BYTES, } from '../../internal/planning/fleet-dock-funding-guard.js';
5
6
  /** Inspects the persisted docking ceiling without network I/O. Inspect individual
6
- * Plans before combining distinct Fleets. Fresh pre-sign checks are not an atomic
7
+ * Plans before combining distinct Fleets. The ceiling is qualified for the
8
+ * z.ink PTR deployment only; any other deployment is `unqualified-deployment`. Fresh pre-sign checks are not an atomic
7
9
  * on-chain spending cap; state can change before landing.
8
10
  * @example
9
11
  * ```ts
@@ -26,6 +28,11 @@ export function getFleetDockDebitBounds(plan) {
26
28
  status: 'unavailable',
27
29
  reason: 'combined-plan',
28
30
  }));
31
+ if (!isDebitQualifiedDeployment(plan.programs))
32
+ return Object.freeze(attachJsonSerialization({
33
+ status: 'unavailable',
34
+ reason: 'unqualified-deployment',
35
+ }));
29
36
  const guard = guards[0];
30
37
  if (guard.status === 'unavailable')
31
38
  return Object.freeze(attachJsonSerialization({
@@ -1 +1 @@
1
- {"version":3,"file":"dock-bounds.js","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACL,yBAAyB,GAE1B,MAAM,qDAAqD,CAAC;AAgC7D;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAU;IAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,uBAAuB,CAC/B,MAAM,EACN,IAAI,EACJ,wCAAwC,EACxC,8EAA8E,CAC/E,CAAC;IACJ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CACvC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB;SAC/D,CAAC,CACZ,CAAC;IACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,eAAe;SACf,CAAC,CACZ,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,KAAK,CAAC,MAAM;SACZ,CAAC,CACZ,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;QACtB,MAAM,EAAE,WAAW;QACnB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,UAAU;QACvB,uBAAuB,EAAE,yBAAyB;QAClD,eAAe,EAAE,UAAU;KACnB,CAAC,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dock-bounds.js","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EACL,yBAAyB,GAE1B,MAAM,qDAAqD,CAAC;AAiC7D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAU;IAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,uBAAuB,CAC/B,MAAM,EACN,IAAI,EACJ,wCAAwC,EACxC,8EAA8E,CAC/E,CAAC;IACJ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CACvC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB;SAC/D,CAAC,CACZ,CAAC;IACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,eAAe;SACf,CAAC,CACZ,CAAC;IACJ,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,wBAAwB;SACxB,CAAC,CACZ,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,KAAK,CAAC,MAAM;SACZ,CAAC,CACZ,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;QACtB,MAAM,EAAE,WAAW;QACnB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,UAAU;QACvB,uBAAuB,EAAE,yBAAyB;QAClD,eAAe,EAAE,UAAU;KACnB,CAAC,CACZ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAa,KAAK,OAAO,EAAoB,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AA8CzE,OAAO,EAQL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EACV,IAAI,EAGL,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAqBlC;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,kCAAkC,GAC1C;IACE,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C;AAy+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAoGf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CA4Df;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA0Gf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Kf;AAED,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,GACnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,4BAA4B,GAClC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/index.ts"],"names":[],"mappings":"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"}
@@ -112,8 +112,8 @@ function requireNormalizedCrew(data, fleet, action, requireShips = false) {
112
112
  if (requireShips && data.fleetShips.length === 0)
113
113
  fail(`Fleet ${fleet.name} has no ships and cannot ${action}. Add ships while docked, refresh the Fleet, and retry.`, fleet.address);
114
114
  }
115
- function validateFleetRead(account, fleet, game, system, systemSequenceId) {
116
- const data = fleetAccountDefinition.decode(account);
115
+ function validateFleetRead(programs, account, fleet, game, system, systemSequenceId) {
116
+ const data = fleetAccountDefinition.decode(account, programs);
117
117
  if (account.address !== fleet.address ||
118
118
  data.game !== game ||
119
119
  data.ownerProfile !== fleet.ownerProfile.address ||
@@ -127,17 +127,18 @@ function validateFleetRead(account, fleet, game, system, systemSequenceId) {
127
127
  }
128
128
  /** Requires a Star System of the configured Game at its canonical PDA and,
129
129
  * for a docked Fleet, at the docked sequence. */
130
- async function validateFleetSystemRead(account, fleet, game, action, label = 'Star System', sequenceId) {
131
- const data = starSystemAccountDefinition.decode(account);
130
+ async function validateFleetSystemRead(programs, account, fleet, game, action, label = 'Star System', sequenceId) {
131
+ const data = starSystemAccountDefinition.decode(account, programs);
132
132
  if (data.game !== game ||
133
- (await deriveStarSystemAddress(game, data.systemId)) !== account.address ||
133
+ (await deriveStarSystemAddress(programs, game, data.systemId)) !==
134
+ account.address ||
134
135
  (sequenceId !== undefined && data.sequenceId !== sequenceId)) {
135
136
  fail(`Fleet ${fleet.name} cannot ${action} because ${label} ${account.address} does not match the configured Game${sequenceId === undefined ? ' or its canonical PDA' : ', its canonical PDA or the docked sequence'}. Refresh the Fleet and galaxy, then retry.`, account.address);
136
137
  }
137
138
  return data;
138
139
  }
139
- function validateStarbasePlayerRead(account, fleet, profile, character, system, canonicalAddress, action = 'undock') {
140
- const data = starbasePlayerAccountDefinition.decode(account);
140
+ function validateStarbasePlayerRead(programs, account, fleet, profile, character, system, canonicalAddress, action = 'undock') {
141
+ const data = starbasePlayerAccountDefinition.decode(account, programs);
141
142
  if (account.address !== canonicalAddress ||
142
143
  data.playerProfile !== profile ||
143
144
  data.character !== character ||
@@ -215,9 +216,9 @@ function resolveCoordinateDestination(fleet, actionLocation, options) {
215
216
  }
216
217
  /** Requires the authorization Profile's canonical Character in the
217
218
  * configured Game. */
218
- function requireFleetCharacter(account, fleet, profile, game, address, action) {
219
+ function requireFleetCharacter(programs, account, fleet, profile, game, address, action) {
219
220
  const character = requireRawAccount(account, `Fleet ${fleet.name} cannot ${action} because its Profile has no canonical Character at ${address}. Create the Character for Profile ${profile} in the configured Game, refresh the Fleet, and retry.`, address);
220
- const data = characterAccountDefinition.decode(character);
221
+ const data = characterAccountDefinition.decode(character, programs);
221
222
  if (character.address !== address ||
222
223
  data.playerProfile !== profile ||
223
224
  data.game !== game) {
@@ -225,9 +226,9 @@ function requireFleetCharacter(account, fleet, profile, game, address, action) {
225
226
  }
226
227
  return character;
227
228
  }
228
- async function validateIdleFleetRead(account, fleet, game, actionLocation, planName = 'coordinate movement') {
229
- const data = fleetAccountDefinition.decode(account);
230
- const canonicalAddress = await deriveFleetAddress(data);
229
+ async function validateIdleFleetRead(programs, account, fleet, game, actionLocation, planName = 'coordinate movement') {
230
+ const data = fleetAccountDefinition.decode(account, programs);
231
+ const canonicalAddress = await deriveFleetAddress(programs, data);
231
232
  const stateLocation = data.state.kind === 'idle'
232
233
  ? data.location
233
234
  : data.state.kind === 'warp' || data.state.kind === 'subwarp'
@@ -261,15 +262,15 @@ async function validateIdleFleetRead(account, fleet, game, actionLocation, planN
261
262
  npc: data.npcFactionId !== 0,
262
263
  };
263
264
  }
264
- function validateRegionTrackerRead(account, fleet, game, canonicalAddress, action = 'move') {
265
- const data = regionTrackerAccountDefinition.decode(account);
265
+ function validateRegionTrackerRead(programs, account, fleet, game, canonicalAddress, action = 'move') {
266
+ const data = regionTrackerAccountDefinition.decode(account, programs);
266
267
  if (account.address !== canonicalAddress || data.game !== game) {
267
268
  fail(`Fleet ${fleet.name} cannot ${action} because RegionTracker does not match the configured Game or canonical PDA: ${account.address}; refresh the world region data for the configured Game and retry.`, account.address);
268
269
  }
269
270
  return getRegionTrackerDecoder().decode(account.data);
270
271
  }
271
- function validateCrewBindingRead(account, fleet, canonicalAddress) {
272
- const data = fleetCrewBindingAccountDefinition.decode(account);
272
+ function validateCrewBindingRead(programs, account, fleet, canonicalAddress) {
273
+ const data = fleetCrewBindingAccountDefinition.decode(account, programs);
273
274
  if (account.address !== canonicalAddress ||
274
275
  !matchesFleetCrewBindingIdentity(data, fleet.address, fleet.ownerProfile.address)) {
275
276
  fail(`FleetCrewBinding does not match Fleet ${fleet.address}, its owner Profile, or its canonical PDA: ${account.address}. Refresh the Fleet crew registration or remove the invalid binding before retrying.`, account.address);
@@ -290,9 +291,9 @@ function exactCoordinate(coordinate) {
290
291
  async function resolveCoordinateMovement(mode, ctx, fleet, authorization, actionLocation, destination) {
291
292
  const game = requireGameAddress(ctx);
292
293
  const [character, regionTracker, crewBinding] = await Promise.all([
293
- findCharacterPda(authorization.profile, game),
294
- deriveRegionTrackerAddress(game),
295
- deriveFleetCrewBindingAddress(fleet.address),
294
+ findCharacterPda(ctx.programs, authorization.profile, game),
295
+ deriveRegionTrackerAddress(ctx.programs, game),
296
+ deriveFleetCrewBindingAddress(ctx.programs, fleet.address),
296
297
  ]);
297
298
  const [fleetCandidate, characterCandidate, regionCandidate, crewCandidate] = await readContextRawAccounts(ctx, [
298
299
  fleet.address,
@@ -301,9 +302,9 @@ async function resolveCoordinateMovement(mode, ctx, fleet, authorization, action
301
302
  crewBinding,
302
303
  ]);
303
304
  const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning coordinate movement.`, fleet.address);
304
- const characterAccount = requireFleetCharacter(characterCandidate, fleet, authorization.profile, game, character, 'move');
305
+ const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, authorization.profile, game, character, 'move');
305
306
  const regionTrackerAccount = requireRawAccount(regionCandidate, `Fleet ${fleet.name} cannot move because the canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh the world region data, and retry.`, regionTracker);
306
- const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation);
307
+ const validatedFleet = await validateIdleFleetRead(ctx.programs, fleetAccount, fleet, game, actionLocation);
307
308
  requireNormalizedCrew(validatedFleet.data, fleet, mode);
308
309
  if (destination.exact.x === validatedFleet.location.x &&
309
310
  destination.exact.y === validatedFleet.location.y) {
@@ -313,17 +314,17 @@ async function resolveCoordinateMovement(mode, ctx, fleet, authorization, action
313
314
  isSubPrecisionRoute(validatedFleet.location, destination.exact)) {
314
315
  fail(`Fleet ${fleet.name} ${destination.field} ${destination.description} is closer to its action coordinate than the program can measure, so this subwarp would be refused. Choose a destination farther away and retry.`, fleet.address);
315
316
  }
316
- const tracker = validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker);
317
+ const tracker = validateRegionTrackerRead(ctx.programs, regionTrackerAccount, fleet, game, regionTracker);
317
318
  if (crewCandidate !== undefined) {
318
- validateCrewBindingRead(crewCandidate, fleet, crewBinding);
319
+ validateCrewBindingRead(ctx.programs, crewCandidate, fleet, crewBinding);
319
320
  }
320
321
  const destinationRegionId = resolveRegionId(tracker, destination.exact);
321
322
  // A player Fleet may cross deep space, but stopping there needs High Risk
322
323
  // zone access.
323
324
  if (destinationRegionId === null &&
324
325
  !validatedFleet.npc &&
325
- characterAccountDefinition.decode(characterAccount).modifiers.values
326
- .securityZoneAccess !== 'high') {
326
+ characterAccountDefinition.decode(characterAccount, ctx.programs).modifiers
327
+ .values.securityZoneAccess !== 'high') {
327
328
  fail(`Fleet ${fleet.name} ${destination.field} ${destination.field === 'destinationRaw' ? `(${String(destination.exact.x)}, ${String(destination.exact.y)}) raw I8F56` : destination.description} is in deep space, outside every Region, and its Character lacks the High Risk zone access needed to stop there. Research High Risk zone access or choose a destination inside a Region, then retry.`, character);
328
329
  }
329
330
  return {
@@ -352,8 +353,8 @@ async function planMovementStorage(ctx, instruction, fleetAccount, profile) {
352
353
  [profile, profileAccount],
353
354
  [RENT_ADDRESS, rentAccount],
354
355
  ]);
355
- return planStorageFunding({
356
- action: readMovementStorageAction(instruction, accounts),
356
+ return planStorageFunding(ctx.programs, {
357
+ action: readMovementStorageAction(ctx.programs, instruction, accounts),
357
358
  accounts,
358
359
  label: 'movement start',
359
360
  });
@@ -384,11 +385,11 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
384
385
  startRegionId: resolved.startRegionId,
385
386
  };
386
387
  const instruction = mode === 'subwarp'
387
- ? adaptStartSubwarpInstruction({
388
+ ? adaptStartSubwarpInstruction(ctx.programs, {
388
389
  ...common,
389
390
  toCoordinate: [destination.exact.x, destination.exact.y],
390
391
  })
391
- : adaptWarpToCoordinateInstruction({
392
+ : adaptWarpToCoordinateInstruction(ctx.programs, {
392
393
  ...common,
393
394
  destination: [destination.exact.x, destination.exact.y],
394
395
  });
@@ -406,7 +407,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
406
407
  await accountStatePrecondition(resolved.fleetAccount, fleet.state.kind === 'idle'
407
408
  ? `Fleet ${fleet.name} remains idle at coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
408
409
  : `Fleet ${fleet.name} remains ${fleet.state.kind} with action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
409
- await characterAccessPrecondition(resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
410
+ await characterAccessPrecondition(ctx.programs, resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
410
411
  {
411
412
  kind: 'region-path',
412
413
  address: resolved.regionTracker,
@@ -416,7 +417,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
416
417
  fromY: resolved.from.y,
417
418
  toX: destination.exact.x,
418
419
  toY: destination.exact.y,
419
- pathHash: await hashRegionPath(resolved.regionTrackerAccount, game, resolved.from, destination.exact),
420
+ pathHash: await hashRegionPath(ctx.programs, resolved.regionTrackerAccount, game, resolved.from, destination.exact),
420
421
  describes: `The Regions Fleet ${fleet.name}'s straight path to ${destination.description} can cross keep their borders, owner, safety status and risk zone, and no Region is added or removed; other Regions may change.`,
421
422
  },
422
423
  ...(resolved.crewBindingAccount === undefined
@@ -426,7 +427,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
426
427
  ]),
427
428
  storage.guard,
428
429
  ];
429
- return buildPlannerPlan({
430
+ return buildPlannerPlan(ctx.programs, {
430
431
  kind: mode === 'subwarp' ? 'fleet.subwarp' : 'fleet.warp-to-coordinate',
431
432
  preconditions: accounts,
432
433
  steps: [
@@ -440,8 +441,8 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
440
441
  summary: description,
441
442
  });
442
443
  }
443
- function hasExactSystemLocation(account, location) {
444
- starSystemAccountDefinition.decode(account);
444
+ function hasExactSystemLocation(programs, account, location) {
445
+ starSystemAccountDefinition.decode(account, programs);
445
446
  const exact = getStarSystemDecoder().decode(account.data);
446
447
  return (exact.coordinates[0].raw === location.x &&
447
448
  exact.coordinates[1].raw === location.y);
@@ -458,19 +459,19 @@ async function discoverSystemsAt(ctx, game, location) {
458
459
  .map(({ address }) => address);
459
460
  }
460
461
  /** Selects the one fresh candidate whose exact coordinate is the Fleet's. */
461
- function selectSystemAt(fleet, location, exact, candidates, accounts) {
462
- const matches = accounts.filter((account) => account !== undefined && hasExactSystemLocation(account, exact));
462
+ function selectSystemAt(programs, fleet, location, exact, candidates, accounts) {
463
+ const matches = accounts.filter((account) => account !== undefined && hasExactSystemLocation(programs, account, exact));
463
464
  if (matches.length === 1)
464
465
  return matches[0];
465
466
  const coordinate = `Fleet ${fleet.name} action coordinate (${String(location.x)}, ${String(location.y)})`;
466
467
  if (candidates.length === 1) {
467
468
  const [only] = accounts;
468
- fail(`${coordinate} no longer matches Star System ${only === undefined ? candidates[0] : starSystemAccountDefinition.decode(only).name}. Refresh the Fleet and galaxy, then retry.`, candidates[0]);
469
+ fail(`${coordinate} no longer matches Star System ${only === undefined ? candidates[0] : starSystemAccountDefinition.decode(only, programs).name}. Refresh the Fleet and galaxy, then retry.`, candidates[0]);
469
470
  }
470
471
  return fail(`${coordinate} matches multiple Star Systems in the configured Game. Refresh the galaxy and repair the contradictory System data before retrying.`, fleet.address);
471
472
  }
472
- function validateFactionRelationTrackerRead(account, fleet, game, canonicalAddress) {
473
- const data = factionRelationTrackerAccountDefinition.decode(account);
473
+ function validateFactionRelationTrackerRead(programs, account, fleet, game, canonicalAddress) {
474
+ const data = factionRelationTrackerAccountDefinition.decode(account, programs);
474
475
  if (account.address !== canonicalAddress || data.game !== game) {
475
476
  fail(`Fleet ${fleet.name} cannot use a warp lane because FactionRelationTracker ${account.address} does not match the configured Game or canonical PDA. Refresh the faction relation data and retry.`, account.address);
476
477
  }
@@ -482,10 +483,10 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
482
483
  fail(`Fleet ${fleet.name} action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}) does not match a Star System in the configured Game. Refresh the galaxy or move the Fleet to a Star System before retrying.`, fleet.address);
483
484
  }
484
485
  const [character, currencyCache, factionRelationTracker, regionTracker] = await Promise.all([
485
- findCharacterPda(options.authorization.profile, game),
486
- deriveCurrencyCache(game).then(([address]) => address),
487
- deriveFactionRelationTrackerAddress(game),
488
- deriveRegionTrackerAddress(game),
486
+ findCharacterPda(ctx.programs, options.authorization.profile, game),
487
+ deriveCurrencyCache(ctx.programs, game).then(([address]) => address),
488
+ deriveFactionRelationTrackerAddress(ctx.programs, game),
489
+ deriveRegionTrackerAddress(ctx.programs, game),
489
490
  ]);
490
491
  const sourceOffset = 2;
491
492
  const destinationOffset = sourceOffset + sourceCandidates.length;
@@ -505,20 +506,20 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
505
506
  const factionCandidate = reads[destinationOffset + 2];
506
507
  const regionCandidate = reads[destinationOffset + 3];
507
508
  const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the warp lane.`, fleet.address);
508
- const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation, 'warp lane');
509
+ const validatedFleet = await validateIdleFleetRead(ctx.programs, fleetAccount, fleet, game, actionLocation, 'warp lane');
509
510
  requireNormalizedCrew(validatedFleet.data, fleet, 'use a warp lane');
510
- const sourceAccount = selectSystemAt(fleet, actionLocation, validatedFleet.location, sourceCandidates, reads.slice(sourceOffset, destinationOffset));
511
+ const sourceAccount = selectSystemAt(ctx.programs, fleet, actionLocation, validatedFleet.location, sourceCandidates, reads.slice(sourceOffset, destinationOffset));
511
512
  const sourceSystem = sourceAccount.address;
512
- const characterAccount = requireFleetCharacter(characterCandidate, fleet, options.authorization.profile, game, character, 'use a warp lane');
513
+ const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, options.authorization.profile, game, character, 'use a warp lane');
513
514
  const destinationAccount = requireRawAccount(destinationCandidate, `Fleet ${fleet.name} cannot use a warp lane because destination Star System ${options.destinationSystem} is missing. Choose a Star System in the configured Game, refresh the galaxy, and retry.`, options.destinationSystem);
514
515
  const currencyCacheAccount = requireRawAccount(currencyCandidate, `Fleet ${fleet.name} cannot use a warp lane because canonical CurrencyCache ${currencyCache} is missing. Verify the configured Game and cluster, refresh the Game currency configuration, and retry.`, currencyCache);
515
516
  const factionRelationTrackerAccount = requireRawAccount(factionCandidate, `Fleet ${fleet.name} cannot use a warp lane because canonical FactionRelationTracker ${factionRelationTracker} is missing. Verify the configured Game and cluster, refresh the faction relation data, and retry.`, factionRelationTracker);
516
517
  const regionTrackerAccount = requireRawAccount(regionCandidate, `Fleet ${fleet.name} cannot use a warp lane because canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh the world region data, and retry.`, regionTracker);
517
- const source = await validateFleetSystemRead(sourceAccount, fleet, game, 'use a warp lane', 'source Star System');
518
- const destination = await validateFleetSystemRead(destinationAccount, fleet, game, 'use a warp lane', 'destination Star System');
519
- await validateCurrencyCache(currencyCacheAccount, game, 'warp lane');
520
- validateFactionRelationTrackerRead(factionRelationTrackerAccount, fleet, game, factionRelationTracker);
521
- validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker);
518
+ const source = await validateFleetSystemRead(ctx.programs, sourceAccount, fleet, game, 'use a warp lane', 'source Star System');
519
+ const destination = await validateFleetSystemRead(ctx.programs, destinationAccount, fleet, game, 'use a warp lane', 'destination Star System');
520
+ await validateCurrencyCache(ctx.programs, currencyCacheAccount, game, 'warp lane');
521
+ validateFactionRelationTrackerRead(ctx.programs, factionRelationTrackerAccount, fleet, game, factionRelationTracker);
522
+ validateRegionTrackerRead(ctx.programs, regionTrackerAccount, fleet, game, regionTracker);
522
523
  if (sourceSystem === options.destinationSystem) {
523
524
  fail(`Fleet ${fleet.name} destination Star System ${source.name} is its current Star System. Choose a different connected Star System and retry.`, options.destinationSystem);
524
525
  }
@@ -581,7 +582,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
581
582
  character: resolved.character,
582
583
  profile: options.authorization.profile,
583
584
  });
584
- const instruction = adaptWarpLaneInstruction({
585
+ const instruction = adaptWarpLaneInstruction(ctx.programs, {
585
586
  ...xp.accounts,
586
587
  authorization: options.authorization,
587
588
  character: resolved.character,
@@ -595,7 +596,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
595
596
  });
596
597
  const storage = await planMovementStorage(ctx, instruction, resolved.fleetAccount, options.authorization.profile);
597
598
  const description = `Warp fleet ${fleet.name} from Star System ${resolved.source.name} to Star System ${resolved.destination.name} via warp lane. ${storage.disclosure}`;
598
- return buildPlannerPlan({
599
+ return buildPlannerPlan(ctx.programs, {
599
600
  kind: 'fleet.warp-lane',
600
601
  preconditions: [
601
602
  {
@@ -609,7 +610,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
609
610
  accountStatePrecondition(resolved.fleetAccount, fleet.state.kind === 'idle'
610
611
  ? `Fleet ${fleet.name} remains idle at Star System ${resolved.source.name}.`
611
612
  : `Fleet ${fleet.name} remains ${fleet.state.kind} at action source Star System ${resolved.source.name}.`),
612
- characterAccessPrecondition(resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
613
+ characterAccessPrecondition(ctx.programs, resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
613
614
  accountStatePrecondition(resolved.sourceAccount, `Source Star System ${resolved.source.name} remains at Fleet ${fleet.name}'s action coordinate with a connection to system id ${String(resolved.destination.systemId)}.`),
614
615
  accountStatePrecondition(resolved.destinationAccount, `Destination Star System ${resolved.destination.name} remains system id ${String(resolved.destination.systemId)} in the configured Game.`),
615
616
  Promise.resolve({
@@ -619,7 +620,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
619
620
  describes: 'The canonical CurrencyCache retains its supported Game identity and layout; shared accounting may change.',
620
621
  }),
621
622
  accountStatePrecondition(resolved.factionRelationTrackerAccount, 'The canonical FactionRelationTracker remains assigned to the configured Game.'),
622
- hashRegionAccess(resolved.regionTrackerAccount, resolved.destinationAccount, game).then((accessHash) => ({
623
+ hashRegionAccess(ctx.programs, resolved.regionTrackerAccount, resolved.destinationAccount, game).then((accessHash) => ({
623
624
  kind: 'region-access',
624
625
  address: resolved.regionTracker,
625
626
  game,
@@ -717,7 +718,7 @@ export async function planFleetSettleArrival(ctx, fleet, input) {
717
718
  ? ' Fuel is below the recorded journey budget (at planning); may stop short with no Fuel.'
718
719
  : '';
719
720
  const description = `Settle subwarp: fuel and Career XP; possible rent refund to Profile ${intent.profile}. Settlement does not guarantee reaching the destination.${fuelWarning} Read confirmed state/location. A race could stop a new journey.`;
720
- const instruction = adaptStopSubwarpInstruction({
721
+ const instruction = adaptStopSubwarpInstruction(ctx.programs, {
721
722
  authorization: intent.authorization,
722
723
  character,
723
724
  fleet: intent.fleet,
@@ -725,7 +726,7 @@ export async function planFleetSettleArrival(ctx, fleet, input) {
725
726
  regionTracker,
726
727
  ...xp.accounts,
727
728
  });
728
- return buildPlannerPlan({
729
+ return buildPlannerPlan(ctx.programs, {
729
730
  kind: 'fleet.settle-arrival',
730
731
  preconditions: [
731
732
  {
@@ -777,18 +778,18 @@ export async function planFleetStopSubwarp(ctx, fleet, options) {
777
778
  if (fleet.state.kind !== 'subwarp' && fleet.state.kind !== 'idle')
778
779
  failFleetState(fleet, fleet.state.kind, 'stop subwarp', 'it must be subwarping or idle');
779
780
  const game = requireGameAddress(ctx);
780
- const character = await findCharacterPda(options.authorization.profile, game);
781
- const regionTracker = await deriveRegionTrackerAddress(game);
781
+ const character = await findCharacterPda(ctx.programs, options.authorization.profile, game);
782
+ const regionTracker = await deriveRegionTrackerAddress(ctx.programs, game);
782
783
  const [regionCandidate] = await readContextRawAccounts(ctx, [regionTracker]);
783
784
  const regionTrackerAccount = requireRawAccount(regionCandidate, `Canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh world region data, and retry stopping Fleet ${fleet.name}.`, regionTracker);
784
- validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker, 'stop subwarp');
785
+ validateRegionTrackerRead(ctx.programs, regionTrackerAccount, fleet, game, regionTracker, 'stop subwarp');
785
786
  const xp = await resolveXpRuntime(ctx, {
786
787
  game,
787
788
  character,
788
789
  profile: options.authorization.profile,
789
790
  });
790
791
  const description = `Stop subwarp early for fleet ${fleet.name}; leave it idle if the trip already completed.`;
791
- return buildPlannerPlan({
792
+ return buildPlannerPlan(ctx.programs, {
792
793
  kind: 'fleet.stop-subwarp',
793
794
  preconditions: [
794
795
  {
@@ -802,7 +803,7 @@ export async function planFleetStopSubwarp(ctx, fleet, options) {
802
803
  steps: [
803
804
  {
804
805
  describes: description,
805
- instruction: adaptStopSubwarpInstruction({
806
+ instruction: adaptStopSubwarpInstruction(ctx.programs, {
806
807
  ...xp.accounts,
807
808
  authorization: options.authorization,
808
809
  character,
@@ -836,8 +837,8 @@ export async function planFleetUndock(ctx, fleet, options) {
836
837
  assertFleetOwner(fleet, options.authorization);
837
838
  const docked = requireDockedState(fleet);
838
839
  const game = requireGameAddress(ctx);
839
- const characterAddress = await findCharacterPda(options.authorization.profile, game);
840
- const starbasePlayerAddress = await deriveStarbasePlayerAddress(docked.system.address, characterAddress);
840
+ const characterAddress = await findCharacterPda(ctx.programs, options.authorization.profile, game);
841
+ const starbasePlayerAddress = await deriveStarbasePlayerAddress(ctx.programs, docked.system.address, characterAddress);
841
842
  const [fleetCandidate, characterCandidate, systemCandidate, playerCandidate] = await readContextRawAccounts(ctx, [
842
843
  fleet.address,
843
844
  characterAddress,
@@ -845,13 +846,13 @@ export async function planFleetUndock(ctx, fleet, options) {
845
846
  starbasePlayerAddress,
846
847
  ]);
847
848
  const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the undock action.`, fleet.address);
848
- const characterAccount = requireFleetCharacter(characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'undock');
849
+ const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'undock');
849
850
  const systemAccount = requireRawAccount(systemCandidate, `Fleet ${fleet.name} is docked at Star System ${docked.system.address}, but that System account is missing. Verify the configured Game and cluster, refresh the Fleet, and retry.`, docked.system.address);
850
851
  const playerAccount = requireRawAccount(playerCandidate, `Fleet ${fleet.name} cannot undock because its Starbase Player registration is missing at ${starbasePlayerAddress}. Register the Character at this Starbase, refresh the Fleet, and retry.`, starbasePlayerAddress);
851
- validateFleetRead(fleetAccount, fleet, game, docked.system.address, docked.systemSeqId);
852
- const system = await validateFleetSystemRead(systemAccount, fleet, game, 'undock', 'Star System', docked.systemSeqId);
853
- validateStarbasePlayerRead(playerAccount, fleet, options.authorization.profile, characterAddress, docked.system.address, starbasePlayerAddress);
854
- const instruction = adaptDockedToIdleInstruction({
852
+ validateFleetRead(ctx.programs, fleetAccount, fleet, game, docked.system.address, docked.systemSeqId);
853
+ const system = await validateFleetSystemRead(ctx.programs, systemAccount, fleet, game, 'undock', 'Star System', docked.systemSeqId);
854
+ validateStarbasePlayerRead(ctx.programs, playerAccount, fleet, options.authorization.profile, characterAddress, docked.system.address, starbasePlayerAddress);
855
+ const instruction = adaptDockedToIdleInstruction(ctx.programs, {
855
856
  authorization: options.authorization,
856
857
  fleet: fleet.address,
857
858
  game,
@@ -859,11 +860,11 @@ export async function planFleetUndock(ctx, fleet, options) {
859
860
  systemAndStarbasePlayerSystem: docked.system.address,
860
861
  });
861
862
  const description = `Undock fleet ${fleet.name} from the Starbase in Star System ${system.name}.`;
862
- return buildPlannerPlan({
863
+ return buildPlannerPlan(ctx.programs, {
863
864
  kind: 'fleet.undock',
864
865
  preconditions: await Promise.all([
865
866
  accountStatePrecondition(fleetAccount, `Fleet ${fleet.name} remains docked at Star System ${system.name}.`),
866
- characterAccessPrecondition(characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
867
+ characterAccessPrecondition(ctx.programs, characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
867
868
  accountStatePrecondition(systemAccount, `Star System ${system.name} remains the docked System for Fleet ${fleet.name}.`),
868
869
  accountStatePrecondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Star System ${system.name}.`),
869
870
  ]),
@@ -908,29 +909,29 @@ export async function planFleetDock(ctx, fleet, options) {
908
909
  const game = requireGameAddress(ctx);
909
910
  const [fleetCandidate] = await readContextRawAccounts(ctx, [fleet.address]);
910
911
  const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the dock action.`, fleet.address);
911
- const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation, 'dock');
912
- const characterAddress = await findCharacterPda(options.authorization.profile, game);
912
+ const validatedFleet = await validateIdleFleetRead(ctx.programs, fleetAccount, fleet, game, actionLocation, 'dock');
913
+ const characterAddress = await findCharacterPda(ctx.programs, options.authorization.profile, game);
913
914
  const [characterCandidate] = await readContextRawAccounts(ctx, [
914
915
  characterAddress,
915
916
  ]);
916
- const characterAccount = requireFleetCharacter(characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'dock');
917
+ const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'dock');
917
918
  const candidates = await discoverSystemsAt(ctx, game, actionLocation);
918
919
  if (candidates.length === 0)
919
920
  failNoDockableStarbase(fleet, actionLocation);
920
- const systemAccount = selectSystemAt(fleet, actionLocation, validatedFleet.location, candidates, await readContextRawAccounts(ctx, candidates));
921
+ const systemAccount = selectSystemAt(ctx.programs, fleet, actionLocation, validatedFleet.location, candidates, await readContextRawAccounts(ctx, candidates));
921
922
  const systemAddress = systemAccount.address;
922
- const system = await validateFleetSystemRead(systemAccount, fleet, game, 'dock');
923
+ const system = await validateFleetSystemRead(ctx.programs, systemAccount, fleet, game, 'dock');
923
924
  if (system.starbase === undefined)
924
925
  failNoDockableStarbase(fleet, actionLocation);
925
- const starbasePlayerAddress = await deriveStarbasePlayerAddress(systemAddress, characterAddress);
926
+ const starbasePlayerAddress = await deriveStarbasePlayerAddress(ctx.programs, systemAddress, characterAddress);
926
927
  const [playerCandidate] = await readContextRawAccounts(ctx, [
927
928
  starbasePlayerAddress,
928
929
  ]);
929
930
  const playerAccount = requireRawAccount(playerCandidate, `Fleet ${fleet.name} cannot dock because Character ${characterAddress} is not registered at Starbase ${system.name} in Star System ${systemAddress}. Register the Character at this Starbase before docking, refresh the Fleet, and retry.`, starbasePlayerAddress);
930
- const playerData = validateStarbasePlayerRead(playerAccount, fleet, options.authorization.profile, characterAddress, systemAddress, starbasePlayerAddress, 'dock');
931
+ const playerData = validateStarbasePlayerRead(ctx.programs, playerAccount, fleet, options.authorization.profile, characterAddress, systemAddress, starbasePlayerAddress, 'dock');
931
932
  const [tracker, ownership] = await Promise.all([
932
- deriveFactionRelationTrackerAddress(game),
933
- deriveFactionOwnershipAddress(game, 'starbase', systemAddress),
933
+ deriveFactionRelationTrackerAddress(ctx.programs, game),
934
+ deriveFactionOwnershipAddress(ctx.programs, game, 'starbase', systemAddress),
934
935
  ]);
935
936
  const policy = {
936
937
  kind: 'fleet-docking-policy',
@@ -945,13 +946,13 @@ export async function planFleetDock(ctx, fleet, options) {
945
946
  tracker,
946
947
  ownership,
947
948
  ]);
948
- await validateFleetDockingPolicy({
949
+ await validateFleetDockingPolicy(ctx.programs, {
949
950
  tracker: trackerAccount,
950
951
  ownership: ownershipAccount,
951
952
  system: systemAccount,
952
953
  starbasePlayer: playerAccount,
953
954
  }, policy);
954
- const instruction = adaptIdleToDockedInstruction({
955
+ const instruction = adaptIdleToDockedInstruction(ctx.programs, {
955
956
  factionRelationTracker: tracker,
956
957
  factionOwnership: ownership,
957
958
  authorization: options.authorization,
@@ -985,7 +986,7 @@ export async function planFleetDock(ctx, fleet, options) {
985
986
  : `Docking storage debit bounds are unavailable (${amounts.reason}); this does not imply zero Profile debit. Inspect simulation and fund the Profile explicitly if needed; transaction fees are separate.`,
986
987
  };
987
988
  const description = `Dock fleet ${fleet.name} at the Starbase in Star System ${system.name}.`;
988
- return buildPlannerPlan({
989
+ return buildPlannerPlan(ctx.programs, {
989
990
  kind: 'fleet.dock',
990
991
  preconditions: [
991
992
  policy,
@@ -993,7 +994,7 @@ export async function planFleetDock(ctx, fleet, options) {
993
994
  accountStatePrecondition(fleetAccount, fleet.state.kind === 'idle'
994
995
  ? `Fleet ${fleet.name} remains idle at Starbase System ${system.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
995
996
  : `Fleet ${fleet.name} remains ${fleet.state.kind} at Starbase System ${system.name} action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
996
- characterAccessPrecondition(characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
997
+ characterAccessPrecondition(ctx.programs, characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
997
998
  accountStatePrecondition(systemAccount, `Star System ${system.name} remains the Starbase System at Fleet ${fleet.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
998
999
  accountStatePrecondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Starbase ${system.name}.`),
999
1000
  ])),