@aephia/atlas-kit 0.6.0-next.10 → 0.6.0-next.101

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 (645) hide show
  1. package/README.md +3 -1
  2. package/dist/cargo/actions/deposit.d.ts +1 -1
  3. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  4. package/dist/cargo/actions/deposit.js +29 -15
  5. package/dist/cargo/actions/deposit.js.map +1 -1
  6. package/dist/cargo/actions/index.d.ts.map +1 -1
  7. package/dist/cargo/actions/index.js +11 -16
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/wallet-token.d.ts +1 -1
  10. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  11. package/dist/cargo/actions/wallet-token.js +1 -9
  12. package/dist/cargo/actions/wallet-token.js.map +1 -1
  13. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  14. package/dist/cargo/actions/withdrawal.js +32 -30
  15. package/dist/cargo/actions/withdrawal.js.map +1 -1
  16. package/dist/claim-stakes/actions/index.d.ts +13 -0
  17. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  18. package/dist/claim-stakes/actions/index.js +138 -112
  19. package/dist/claim-stakes/actions/index.js.map +1 -1
  20. package/dist/claim-stakes/index.d.ts +14 -0
  21. package/dist/claim-stakes/index.d.ts.map +1 -1
  22. package/dist/claim-stakes/index.js +23 -2
  23. package/dist/claim-stakes/index.js.map +1 -1
  24. package/dist/client/context.d.ts.map +1 -1
  25. package/dist/client/context.js +1 -1
  26. package/dist/client/context.js.map +1 -1
  27. package/dist/client/contracts.d.ts +16 -6
  28. package/dist/client/contracts.d.ts.map +1 -1
  29. package/dist/client/errors.d.ts +6 -2
  30. package/dist/client/errors.d.ts.map +1 -1
  31. package/dist/client/errors.js +31 -1
  32. package/dist/client/errors.js.map +1 -1
  33. package/dist/client/index.d.ts +35 -0
  34. package/dist/client/index.d.ts.map +1 -1
  35. package/dist/client/index.js +35 -0
  36. package/dist/client/index.js.map +1 -1
  37. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  38. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  39. package/dist/client/rpc-subscription-provider.js +190 -0
  40. package/dist/client/rpc-subscription-provider.js.map +1 -0
  41. package/dist/combat/actions/index.d.ts.map +1 -1
  42. package/dist/combat/actions/index.js +105 -68
  43. package/dist/combat/actions/index.js.map +1 -1
  44. package/dist/crafting/actions/index.d.ts +11 -0
  45. package/dist/crafting/actions/index.d.ts.map +1 -1
  46. package/dist/crafting/actions/index.js +102 -109
  47. package/dist/crafting/actions/index.js.map +1 -1
  48. package/dist/crafting/index.d.ts +33 -3
  49. package/dist/crafting/index.d.ts.map +1 -1
  50. package/dist/crafting/index.js +45 -16
  51. package/dist/crafting/index.js.map +1 -1
  52. package/dist/factions/actions/index.d.ts +1 -0
  53. package/dist/factions/actions/index.d.ts.map +1 -1
  54. package/dist/factions/actions/index.js +2 -1
  55. package/dist/factions/actions/index.js.map +1 -1
  56. package/dist/factions/index.d.ts +1 -1
  57. package/dist/factions/index.d.ts.map +1 -1
  58. package/dist/factions/index.js +14 -8
  59. package/dist/factions/index.js.map +1 -1
  60. package/dist/factions/profile-faction.d.ts +20 -8
  61. package/dist/factions/profile-faction.d.ts.map +1 -1
  62. package/dist/factions/profile-faction.js +20 -8
  63. package/dist/factions/profile-faction.js.map +1 -1
  64. package/dist/fleets/actions/add-ship.d.ts +35 -0
  65. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  66. package/dist/fleets/actions/add-ship.js +149 -0
  67. package/dist/fleets/actions/add-ship.js.map +1 -0
  68. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  69. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  70. package/dist/fleets/actions/create-fleet.js +138 -0
  71. package/dist/fleets/actions/create-fleet.js.map +1 -0
  72. package/dist/fleets/actions/crew-transfer.d.ts +41 -0
  73. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  74. package/dist/fleets/actions/crew-transfer.js +114 -0
  75. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  76. package/dist/fleets/actions/dock-bounds.d.ts +38 -0
  77. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
  78. package/dist/fleets/actions/dock-bounds.js +46 -0
  79. package/dist/fleets/actions/dock-bounds.js.map +1 -0
  80. package/dist/fleets/actions/index.d.ts +37 -16
  81. package/dist/fleets/actions/index.d.ts.map +1 -1
  82. package/dist/fleets/actions/index.js +246 -154
  83. package/dist/fleets/actions/index.js.map +1 -1
  84. package/dist/fleets/actions/respawn.d.ts +38 -0
  85. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  86. package/dist/fleets/actions/respawn.js +122 -0
  87. package/dist/fleets/actions/respawn.js.map +1 -0
  88. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  89. package/dist/fleets/actions/ship-import.js +43 -14
  90. package/dist/fleets/actions/ship-import.js.map +1 -1
  91. package/dist/fleets/cooldown.d.ts +44 -0
  92. package/dist/fleets/cooldown.d.ts.map +1 -0
  93. package/dist/fleets/cooldown.js +43 -0
  94. package/dist/fleets/cooldown.js.map +1 -0
  95. package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
  96. package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
  97. package/dist/fleets/coordinate-warp-estimate.js +46 -0
  98. package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
  99. package/dist/fleets/index.d.ts +35 -0
  100. package/dist/fleets/index.d.ts.map +1 -1
  101. package/dist/fleets/index.js +52 -2
  102. package/dist/fleets/index.js.map +1 -1
  103. package/dist/fleets/movement-arithmetic.d.ts +21 -0
  104. package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
  105. package/dist/fleets/movement-arithmetic.js +41 -0
  106. package/dist/fleets/movement-arithmetic.js.map +1 -0
  107. package/dist/fleets/subwarp-estimate.d.ts +70 -0
  108. package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
  109. package/dist/fleets/subwarp-estimate.js +38 -0
  110. package/dist/fleets/subwarp-estimate.js.map +1 -0
  111. package/dist/fleets/travel-profile.d.ts +102 -0
  112. package/dist/fleets/travel-profile.d.ts.map +1 -0
  113. package/dist/fleets/travel-profile.js +120 -0
  114. package/dist/fleets/travel-profile.js.map +1 -0
  115. package/dist/fleets/warp-lane-estimate.d.ts +59 -0
  116. package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
  117. package/dist/fleets/warp-lane-estimate.js +36 -0
  118. package/dist/fleets/warp-lane-estimate.js.map +1 -0
  119. package/dist/fleets/warp-lane-policy.d.ts +68 -0
  120. package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
  121. package/dist/fleets/warp-lane-policy.js +91 -0
  122. package/dist/fleets/warp-lane-policy.js.map +1 -0
  123. package/dist/fleets/warp-lane-toll.d.ts +55 -0
  124. package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
  125. package/dist/fleets/warp-lane-toll.js +79 -0
  126. package/dist/fleets/warp-lane-toll.js.map +1 -0
  127. package/dist/identity/actions/create-profile.d.ts +2 -0
  128. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  129. package/dist/identity/actions/create-profile.js +14 -9
  130. package/dist/identity/actions/create-profile.js.map +1 -1
  131. package/dist/identity/actions/index.d.ts +3 -3
  132. package/dist/identity/actions/index.d.ts.map +1 -1
  133. package/dist/identity/actions/index.js +50 -28
  134. package/dist/identity/actions/index.js.map +1 -1
  135. package/dist/identity/index.d.ts +12 -2
  136. package/dist/identity/index.d.ts.map +1 -1
  137. package/dist/identity/index.js +10 -1
  138. package/dist/identity/index.js.map +1 -1
  139. package/dist/identity/permissions.d.ts +19 -6
  140. package/dist/identity/permissions.d.ts.map +1 -1
  141. package/dist/identity/permissions.js +27 -10
  142. package/dist/identity/permissions.js.map +1 -1
  143. package/dist/identity/research-state.d.ts +60 -0
  144. package/dist/identity/research-state.d.ts.map +1 -0
  145. package/dist/identity/research-state.js +68 -0
  146. package/dist/identity/research-state.js.map +1 -0
  147. package/dist/index.d.ts +24 -0
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +20 -3
  150. package/dist/index.js.map +1 -1
  151. package/dist/internal/c4/account-decoding.d.ts +12 -0
  152. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  153. package/dist/internal/c4/account-decoding.js +36 -0
  154. package/dist/internal/c4/account-decoding.js.map +1 -0
  155. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  156. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  157. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  158. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  159. package/dist/internal/c4/character-modifier.d.ts +1 -1
  160. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  161. package/dist/internal/c4/character-registration.d.ts +2 -0
  162. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  163. package/dist/internal/c4/character-registration.js +2 -0
  164. package/dist/internal/c4/character-registration.js.map +1 -1
  165. package/dist/internal/c4/character.d.ts +155 -0
  166. package/dist/internal/c4/character.d.ts.map +1 -0
  167. package/dist/internal/c4/character.js +79 -0
  168. package/dist/internal/c4/character.js.map +1 -0
  169. package/dist/internal/c4/claim-stake-configuration.js +4 -2
  170. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  171. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -4
  172. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  173. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  174. package/dist/internal/c4/claim-stake.d.ts +4 -27
  175. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  176. package/dist/internal/c4/claim-stake.js +30 -41
  177. package/dist/internal/c4/claim-stake.js.map +1 -1
  178. package/dist/internal/c4/combat.d.ts +0 -27
  179. package/dist/internal/c4/combat.d.ts.map +1 -1
  180. package/dist/internal/c4/combat.js +10 -52
  181. package/dist/internal/c4/combat.js.map +1 -1
  182. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  183. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  184. package/dist/internal/c4/crafting-process-codec.js +34 -0
  185. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  186. package/dist/internal/c4/crafting.d.ts +25 -33
  187. package/dist/internal/c4/crafting.d.ts.map +1 -1
  188. package/dist/internal/c4/crafting.js +61 -49
  189. package/dist/internal/c4/crafting.js.map +1 -1
  190. package/dist/internal/c4/currency-cache.d.ts +6 -0
  191. package/dist/internal/c4/currency-cache.d.ts.map +1 -0
  192. package/dist/internal/c4/currency-cache.js +30 -0
  193. package/dist/internal/c4/currency-cache.js.map +1 -0
  194. package/dist/internal/c4/docking-funding.d.ts +4 -0
  195. package/dist/internal/c4/docking-funding.d.ts.map +1 -0
  196. package/dist/internal/c4/docking-funding.js +11 -0
  197. package/dist/internal/c4/docking-funding.js.map +1 -0
  198. package/dist/internal/c4/faction-adapter.d.ts +12 -0
  199. package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
  200. package/dist/internal/c4/faction-adapter.js +52 -0
  201. package/dist/internal/c4/faction-adapter.js.map +1 -0
  202. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  203. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  204. package/dist/internal/c4/faction-epoch-meter.js +31 -0
  205. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  206. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  207. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  208. package/dist/internal/c4/faction-treasury.js +48 -0
  209. package/dist/internal/c4/faction-treasury.js.map +1 -0
  210. package/dist/internal/c4/faction.d.ts +18 -0
  211. package/dist/internal/c4/faction.d.ts.map +1 -0
  212. package/dist/internal/c4/faction.js +18 -0
  213. package/dist/internal/c4/faction.js.map +1 -0
  214. package/dist/internal/c4/factions.d.ts +9 -57
  215. package/dist/internal/c4/factions.d.ts.map +1 -1
  216. package/dist/internal/c4/factions.js +29 -156
  217. package/dist/internal/c4/factions.js.map +1 -1
  218. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  219. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  220. package/dist/internal/c4/fleet-arrival.js +42 -0
  221. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  222. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  223. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  224. package/dist/internal/c4/fleet-creation.js +180 -0
  225. package/dist/internal/c4/fleet-creation.js.map +1 -0
  226. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  227. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  228. package/dist/internal/c4/fleet-crew-binding.js +20 -3
  229. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  230. package/dist/internal/c4/fleet-respawn.d.ts +17 -0
  231. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  232. package/dist/internal/c4/fleet-respawn.js +62 -0
  233. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  234. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  235. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  236. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  237. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  238. package/dist/internal/c4/fleet.d.ts +45 -19
  239. package/dist/internal/c4/fleet.d.ts.map +1 -1
  240. package/dist/internal/c4/fleet.js +37 -29
  241. package/dist/internal/c4/fleet.js.map +1 -1
  242. package/dist/internal/c4/game-definition-layout.d.ts +2 -0
  243. package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
  244. package/dist/internal/c4/game-definition-layout.js +4 -0
  245. package/dist/internal/c4/game-definition-layout.js.map +1 -1
  246. package/dist/internal/c4/game.d.ts +47 -12
  247. package/dist/internal/c4/game.d.ts.map +1 -1
  248. package/dist/internal/c4/game.js +110 -21
  249. package/dist/internal/c4/game.js.map +1 -1
  250. package/dist/internal/c4/identity.d.ts +2 -152
  251. package/dist/internal/c4/identity.d.ts.map +1 -1
  252. package/dist/internal/c4/identity.js +6 -110
  253. package/dist/internal/c4/identity.js.map +1 -1
  254. package/dist/internal/c4/local-market-order.d.ts +31 -0
  255. package/dist/internal/c4/local-market-order.d.ts.map +1 -0
  256. package/dist/internal/c4/local-market-order.js +47 -0
  257. package/dist/internal/c4/local-market-order.js.map +1 -0
  258. package/dist/internal/c4/loot-layout.js +1 -1
  259. package/dist/internal/c4/loot-layout.js.map +1 -1
  260. package/dist/internal/c4/loyalty.d.ts +0 -27
  261. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  262. package/dist/internal/c4/loyalty.js +14 -43
  263. package/dist/internal/c4/loyalty.js.map +1 -1
  264. package/dist/internal/c4/market.d.ts +2 -38
  265. package/dist/internal/c4/market.d.ts.map +1 -1
  266. package/dist/internal/c4/market.js +13 -51
  267. package/dist/internal/c4/market.js.map +1 -1
  268. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  269. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  270. package/dist/internal/c4/mining-instructions.js +3 -0
  271. package/dist/internal/c4/mining-instructions.js.map +1 -0
  272. package/dist/internal/c4/open-signal.d.ts +8 -0
  273. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  274. package/dist/internal/c4/open-signal.js +37 -0
  275. package/dist/internal/c4/open-signal.js.map +1 -0
  276. package/dist/internal/c4/pda.js +1 -1
  277. package/dist/internal/c4/pda.js.map +1 -1
  278. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  279. package/dist/internal/c4/profile-faction.js +11 -21
  280. package/dist/internal/c4/profile-faction.js.map +1 -1
  281. package/dist/internal/c4/profile-permissions.d.ts +5 -3
  282. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  283. package/dist/internal/c4/profile-permissions.js +61 -8
  284. package/dist/internal/c4/profile-permissions.js.map +1 -1
  285. package/dist/internal/c4/region-geometry.d.ts +8 -0
  286. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  287. package/dist/internal/c4/region-geometry.js +43 -0
  288. package/dist/internal/c4/region-geometry.js.map +1 -0
  289. package/dist/internal/c4/rewards.d.ts +0 -27
  290. package/dist/internal/c4/rewards.d.ts.map +1 -1
  291. package/dist/internal/c4/rewards.js +16 -41
  292. package/dist/internal/c4/rewards.js.map +1 -1
  293. package/dist/internal/c4/runtime-bindings.d.ts +4 -0
  294. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  295. package/dist/internal/c4/runtime-bindings.js +4 -0
  296. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  297. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  298. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  299. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  300. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  301. package/dist/internal/c4/scan-lifecycle.d.ts +306 -0
  302. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  303. package/dist/internal/c4/scan-lifecycle.js +261 -0
  304. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  305. package/dist/internal/c4/scanning.d.ts +1 -28
  306. package/dist/internal/c4/scanning.d.ts.map +1 -1
  307. package/dist/internal/c4/scanning.js +7 -36
  308. package/dist/internal/c4/scanning.js.map +1 -1
  309. package/dist/internal/c4/ship-import.d.ts +4 -0
  310. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  311. package/dist/internal/c4/ship-import.js +13 -0
  312. package/dist/internal/c4/ship-import.js.map +1 -0
  313. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  314. package/dist/internal/c4/ship-stats.js +25 -21
  315. package/dist/internal/c4/ship-stats.js.map +1 -1
  316. package/dist/internal/c4/starbase.d.ts +0 -32
  317. package/dist/internal/c4/starbase.d.ts.map +1 -1
  318. package/dist/internal/c4/starbase.js +12 -62
  319. package/dist/internal/c4/starbase.js.map +1 -1
  320. package/dist/internal/c4/world.d.ts +36 -7
  321. package/dist/internal/c4/world.d.ts.map +1 -1
  322. package/dist/internal/c4/world.js +67 -48
  323. package/dist/internal/c4/world.js.map +1 -1
  324. package/dist/internal/cargo.d.ts +2 -0
  325. package/dist/internal/cargo.d.ts.map +1 -1
  326. package/dist/internal/cargo.js +8 -0
  327. package/dist/internal/cargo.js.map +1 -1
  328. package/dist/internal/fleet.d.ts +1 -0
  329. package/dist/internal/fleet.d.ts.map +1 -1
  330. package/dist/internal/fleet.js +3 -1
  331. package/dist/internal/fleet.js.map +1 -1
  332. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  333. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  334. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  335. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  336. package/dist/internal/planning/action-runtime.d.ts +38 -0
  337. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  338. package/dist/internal/planning/action-runtime.js +63 -0
  339. package/dist/internal/planning/action-runtime.js.map +1 -0
  340. package/dist/internal/planning/arrival-guards.d.ts +20 -0
  341. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  342. package/dist/internal/planning/arrival-guards.js +187 -0
  343. package/dist/internal/planning/arrival-guards.js.map +1 -0
  344. package/dist/internal/planning/authorization-adapter.d.ts +45 -37
  345. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  346. package/dist/internal/planning/authorization-adapter.js +165 -76
  347. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  348. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  349. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  350. package/dist/internal/planning/character-registration-guard.js +58 -0
  351. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  352. package/dist/internal/planning/character-registration.d.ts +23 -0
  353. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  354. package/dist/internal/planning/character-registration.js +87 -0
  355. package/dist/internal/planning/character-registration.js.map +1 -0
  356. package/dist/internal/planning/currency-cache-guard.d.ts +4 -0
  357. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
  358. package/dist/internal/planning/currency-cache-guard.js +32 -0
  359. package/dist/internal/planning/currency-cache-guard.js.map +1 -0
  360. package/dist/internal/planning/democracy-history.d.ts +50 -0
  361. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  362. package/dist/internal/planning/democracy-history.js +198 -0
  363. package/dist/internal/planning/democracy-history.js.map +1 -0
  364. package/dist/internal/planning/faction-enrollment.d.ts +0 -2
  365. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  366. package/dist/internal/planning/faction-enrollment.js +1 -22
  367. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  368. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  369. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  370. package/dist/internal/planning/faction-trade-guards.js +15 -0
  371. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  372. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  373. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  374. package/dist/internal/planning/faction-trade-state.js +43 -0
  375. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  376. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  377. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  378. package/dist/internal/planning/fleet-arrival.js +106 -0
  379. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  380. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  381. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  382. package/dist/internal/planning/fleet-attack-xp.js +110 -0
  383. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  384. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  385. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  386. package/dist/internal/planning/fleet-creation.js +109 -0
  387. package/dist/internal/planning/fleet-creation.js.map +1 -0
  388. package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
  389. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  390. package/dist/internal/planning/fleet-crew-guard.js +47 -0
  391. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  392. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  393. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  394. package/dist/internal/planning/fleet-crew-transfer.js +132 -0
  395. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  396. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +42 -0
  397. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
  398. package/dist/internal/planning/fleet-dock-funding-guard.js +225 -0
  399. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
  400. package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
  401. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
  402. package/dist/internal/planning/fleet-dock-funding.js +154 -0
  403. package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
  404. package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
  405. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
  406. package/dist/internal/planning/fleet-docking-guard.js +42 -0
  407. package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
  408. package/dist/internal/planning/fleet-docking.d.ts +10 -0
  409. package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
  410. package/dist/internal/planning/fleet-docking.js +85 -0
  411. package/dist/internal/planning/fleet-docking.js.map +1 -0
  412. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  413. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  414. package/dist/internal/planning/fleet-respawn.js +167 -0
  415. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  416. package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
  417. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  418. package/dist/internal/planning/fleet-ship-assembly.js +138 -0
  419. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  420. package/dist/internal/planning/governance-fees.d.ts +64 -0
  421. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  422. package/dist/internal/planning/governance-fees.js +239 -0
  423. package/dist/internal/planning/governance-fees.js.map +1 -0
  424. package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
  425. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
  426. package/dist/internal/planning/local-market-order-funding.js +127 -0
  427. package/dist/internal/planning/local-market-order-funding.js.map +1 -0
  428. package/dist/internal/planning/local-market-order.d.ts +40 -0
  429. package/dist/internal/planning/local-market-order.d.ts.map +1 -0
  430. package/dist/internal/planning/local-market-order.js +166 -0
  431. package/dist/internal/planning/local-market-order.js.map +1 -0
  432. package/dist/internal/planning/mining-stop.d.ts +14 -0
  433. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  434. package/dist/internal/planning/mining-stop.js +41 -0
  435. package/dist/internal/planning/mining-stop.js.map +1 -0
  436. package/dist/internal/planning/movement-character.d.ts +7 -0
  437. package/dist/internal/planning/movement-character.d.ts.map +1 -0
  438. package/dist/internal/planning/movement-character.js +41 -0
  439. package/dist/internal/planning/movement-character.js.map +1 -0
  440. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  441. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  442. package/dist/internal/planning/movement-xp-guard.js +103 -0
  443. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  444. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  445. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  446. package/dist/internal/planning/open-signal-guard.js +31 -0
  447. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  448. package/dist/internal/planning/open-signal.d.ts +31 -0
  449. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  450. package/dist/internal/planning/open-signal.js +86 -0
  451. package/dist/internal/planning/open-signal.js.map +1 -0
  452. package/dist/internal/planning/recipe-state.d.ts +6 -0
  453. package/dist/internal/planning/recipe-state.d.ts.map +1 -0
  454. package/dist/internal/planning/recipe-state.js +20 -0
  455. package/dist/internal/planning/recipe-state.js.map +1 -0
  456. package/dist/internal/planning/rent.d.ts +19 -0
  457. package/dist/internal/planning/rent.d.ts.map +1 -0
  458. package/dist/internal/planning/rent.js +35 -0
  459. package/dist/internal/planning/rent.js.map +1 -0
  460. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  461. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  462. package/dist/internal/planning/respawn-guards.js +41 -0
  463. package/dist/internal/planning/respawn-guards.js.map +1 -0
  464. package/dist/internal/planning/runtime-guards.d.ts +43 -0
  465. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  466. package/dist/internal/planning/runtime-guards.js +638 -0
  467. package/dist/internal/planning/runtime-guards.js.map +1 -0
  468. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  469. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  470. package/dist/internal/planning/scan-completion-guard.js +94 -0
  471. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  472. package/dist/internal/planning/scan-completion.d.ts +20 -0
  473. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  474. package/dist/internal/planning/scan-completion.js +197 -0
  475. package/dist/internal/planning/scan-completion.js.map +1 -0
  476. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  477. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  478. package/dist/internal/planning/scan-detect-guard.js +77 -0
  479. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  480. package/dist/internal/planning/scan-detect.d.ts +24 -0
  481. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  482. package/dist/internal/planning/scan-detect.js +245 -0
  483. package/dist/internal/planning/scan-detect.js.map +1 -0
  484. package/dist/internal/planning/scan-input.d.ts +9 -0
  485. package/dist/internal/planning/scan-input.d.ts.map +1 -0
  486. package/dist/internal/planning/scan-input.js +58 -0
  487. package/dist/internal/planning/scan-input.js.map +1 -0
  488. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  489. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  490. package/dist/internal/planning/ship-import-funding.js +53 -0
  491. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  492. package/dist/internal/planning/ship-token.d.ts +0 -1
  493. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  494. package/dist/internal/planning/ship-token.js +2 -5
  495. package/dist/internal/planning/ship-token.js.map +1 -1
  496. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  497. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  498. package/dist/internal/planning/starbase-system-guard.js +93 -0
  499. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  500. package/dist/internal/planning/starbase-system.d.ts +15 -0
  501. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  502. package/dist/internal/planning/starbase-system.js +25 -0
  503. package/dist/internal/planning/starbase-system.js.map +1 -0
  504. package/dist/internal/planning/token-mint.d.ts +4 -0
  505. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  506. package/dist/internal/planning/token-mint.js +15 -0
  507. package/dist/internal/planning/token-mint.js.map +1 -0
  508. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  509. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  510. package/dist/internal/planning/trade-faction-market.js +56 -0
  511. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  512. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  513. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  514. package/dist/internal/planning/xp-runtime.js +126 -0
  515. package/dist/internal/planning/xp-runtime.js.map +1 -0
  516. package/dist/internal/system-program.d.ts +4 -0
  517. package/dist/internal/system-program.d.ts.map +1 -0
  518. package/dist/internal/system-program.js +3 -0
  519. package/dist/internal/system-program.js.map +1 -0
  520. package/dist/loyalty/actions/index.d.ts.map +1 -1
  521. package/dist/loyalty/actions/index.js +8 -21
  522. package/dist/loyalty/actions/index.js.map +1 -1
  523. package/dist/loyalty/index.d.ts.map +1 -1
  524. package/dist/loyalty/index.js +2 -6
  525. package/dist/loyalty/index.js.map +1 -1
  526. package/dist/markets/actions/index.d.ts +61 -3
  527. package/dist/markets/actions/index.d.ts.map +1 -1
  528. package/dist/markets/actions/index.js +143 -37
  529. package/dist/markets/actions/index.js.map +1 -1
  530. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  531. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  532. package/dist/markets/actions/trade-faction-market.js +282 -0
  533. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  534. package/dist/markets/index.d.ts +38 -7
  535. package/dist/markets/index.d.ts.map +1 -1
  536. package/dist/markets/index.js +57 -10
  537. package/dist/markets/index.js.map +1 -1
  538. package/dist/mining/actions/index.d.ts +87 -0
  539. package/dist/mining/actions/index.d.ts.map +1 -0
  540. package/dist/mining/actions/index.js +332 -0
  541. package/dist/mining/actions/index.js.map +1 -0
  542. package/dist/mining/estimate.d.ts +114 -0
  543. package/dist/mining/estimate.d.ts.map +1 -0
  544. package/dist/mining/estimate.js +127 -0
  545. package/dist/mining/estimate.js.map +1 -0
  546. package/dist/mining/index.d.ts +9 -2
  547. package/dist/mining/index.d.ts.map +1 -1
  548. package/dist/mining/index.js +7 -2
  549. package/dist/mining/index.js.map +1 -1
  550. package/dist/mining/profile.d.ts +82 -0
  551. package/dist/mining/profile.d.ts.map +1 -0
  552. package/dist/mining/profile.js +109 -0
  553. package/dist/mining/profile.js.map +1 -0
  554. package/dist/planning/assembly.d.ts +5 -0
  555. package/dist/planning/assembly.d.ts.map +1 -1
  556. package/dist/planning/assembly.js +30 -2
  557. package/dist/planning/assembly.js.map +1 -1
  558. package/dist/planning/execution.d.ts +18 -3
  559. package/dist/planning/execution.d.ts.map +1 -1
  560. package/dist/planning/execution.js +492 -40
  561. package/dist/planning/execution.js.map +1 -1
  562. package/dist/planning/index.d.ts +196 -149
  563. package/dist/planning/index.d.ts.map +1 -1
  564. package/dist/planning/index.js +910 -121
  565. package/dist/planning/index.js.map +1 -1
  566. package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
  567. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
  568. package/dist/planning/plan-sequence-checkpoint.js +16 -7
  569. package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
  570. package/dist/planning/plan-sequence-execution.d.ts +5 -0
  571. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  572. package/dist/planning/plan-sequence-execution.js +74 -30
  573. package/dist/planning/plan-sequence-execution.js.map +1 -1
  574. package/dist/planning/plan-sequence.d.ts +2 -1
  575. package/dist/planning/plan-sequence.d.ts.map +1 -1
  576. package/dist/planning/plan-sequence.js +8 -1
  577. package/dist/planning/plan-sequence.js.map +1 -1
  578. package/dist/planning/simulation.d.ts +25 -1
  579. package/dist/planning/simulation.d.ts.map +1 -1
  580. package/dist/planning/simulation.js +111 -11
  581. package/dist/planning/simulation.js.map +1 -1
  582. package/dist/registry/cargo.d.ts +7 -12
  583. package/dist/registry/cargo.d.ts.map +1 -1
  584. package/dist/registry/cargo.js +19 -19
  585. package/dist/registry/cargo.js.map +1 -1
  586. package/dist/registry/docking.d.ts +10 -0
  587. package/dist/registry/docking.d.ts.map +1 -0
  588. package/dist/registry/docking.js +12 -0
  589. package/dist/registry/docking.js.map +1 -0
  590. package/dist/registry/index.d.ts +4 -0
  591. package/dist/registry/index.d.ts.map +1 -1
  592. package/dist/registry/index.js.map +1 -1
  593. package/dist/registry/onboarding.d.ts +10 -2
  594. package/dist/registry/onboarding.d.ts.map +1 -1
  595. package/dist/registry/onboarding.js +20 -7
  596. package/dist/registry/onboarding.js.map +1 -1
  597. package/dist/registry/scanning.d.ts +7 -0
  598. package/dist/registry/scanning.d.ts.map +1 -0
  599. package/dist/registry/scanning.js +13 -0
  600. package/dist/registry/scanning.js.map +1 -0
  601. package/dist/registry/ship-stats-snapshot.js +19 -19
  602. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  603. package/dist/registry/ships.d.ts +22 -2
  604. package/dist/registry/ships.d.ts.map +1 -1
  605. package/dist/registry/ships.js +31 -4
  606. package/dist/registry/ships.js.map +1 -1
  607. package/dist/registry/xp-runtime.d.ts +4 -0
  608. package/dist/registry/xp-runtime.d.ts.map +1 -0
  609. package/dist/registry/xp-runtime.js +14 -0
  610. package/dist/registry/xp-runtime.js.map +1 -0
  611. package/dist/scanning/actions/index.d.ts +116 -0
  612. package/dist/scanning/actions/index.d.ts.map +1 -0
  613. package/dist/scanning/actions/index.js +185 -0
  614. package/dist/scanning/actions/index.js.map +1 -0
  615. package/dist/scanning/index.d.ts +5 -2
  616. package/dist/scanning/index.d.ts.map +1 -1
  617. package/dist/scanning/index.js +13 -9
  618. package/dist/scanning/index.js.map +1 -1
  619. package/dist/scanning/lifecycle.d.ts +77 -0
  620. package/dist/scanning/lifecycle.d.ts.map +1 -0
  621. package/dist/scanning/lifecycle.js +93 -0
  622. package/dist/scanning/lifecycle.js.map +1 -0
  623. package/dist/scanning/odds.d.ts +111 -0
  624. package/dist/scanning/odds.d.ts.map +1 -0
  625. package/dist/scanning/odds.js +294 -0
  626. package/dist/scanning/odds.js.map +1 -0
  627. package/dist/scanning/signals.d.ts +121 -0
  628. package/dist/scanning/signals.d.ts.map +1 -0
  629. package/dist/scanning/signals.js +171 -0
  630. package/dist/scanning/signals.js.map +1 -0
  631. package/dist/starbases/actions/index.js +1 -1
  632. package/dist/starbases/actions/index.js.map +1 -1
  633. package/dist/world/index.d.ts +110 -5
  634. package/dist/world/index.d.ts.map +1 -1
  635. package/dist/world/index.js +109 -4
  636. package/dist/world/index.js.map +1 -1
  637. package/dist/world/planet-claim-stake-plots.d.ts +130 -0
  638. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
  639. package/dist/world/planet-claim-stake-plots.js +110 -0
  640. package/dist/world/planet-claim-stake-plots.js.map +1 -0
  641. package/dist/world/starbase-status.d.ts +176 -0
  642. package/dist/world/starbase-status.d.ts.map +1 -0
  643. package/dist/world/starbase-status.js +153 -0
  644. package/dist/world/starbase-status.js.map +1 -0
  645. package/package.json +10 -2
@@ -0,0 +1,35 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import type { PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
4
+ import { type Plan } from '../../planning/index.js';
5
+ /** Explicit address-only selection of escrowed ships for an owned Docked Fleet.
6
+ * @example
7
+ * ```ts
8
+ * declare const profile: Address, authority: Address;
9
+ * const options: PlanAddShipToFleetOptions = {authorization:{profile,authority,keyIndex:0},shipId:1,amount:1n};
10
+ * ```
11
+ */
12
+ export interface PlanAddShipToFleetOptions {
13
+ readonly authorization: PlanAuthorization;
14
+ readonly shipId: number;
15
+ readonly amount: bigint;
16
+ }
17
+ /** Plans one singleton transfer of an exact ship configuration from StarbasePlayer entitlement to an owned Docked Fleet.
18
+ * Supports requirements-free XXS ships at own-faction CSS Starbases, current Fleet
19
+ * definition sequences and both Character and Game ship-assembly capacity limits.
20
+ * The explicit ship ID must be a u16 and the whole ship amount must be 1n through 255n. Uses a direct Profile
21
+ * AUTH or SAGE manageFleet key; a positive Profile rent shortfall additionally
22
+ * requires vault-funding permission. No token transfer or onboarding occurs.
23
+ * Final stats, research, refresh and outcomes remain chain-authoritative.
24
+ * Simulate before signing. The observed debit ceiling is rechecked before
25
+ * signing and is not an atomic on-chain spending cap. Two assembly Plans for the same Profile
26
+ * cannot compose because they share funds and assembly state.
27
+ * @example
28
+ * ```ts
29
+ * declare const ctx:SageContext, fleet:Address, profile:Address, authority:Address;
30
+ * const plan = await planAddShipToFleet(ctx,fleet,{authorization:{profile,authority,keyIndex:0},shipId:1,amount:1n});
31
+ * console.log(plan.describe());
32
+ * ```
33
+ */
34
+ export declare function planAddShipToFleet(ctx: SageContext, fleet: Address, input: PlanAddShipToFleetOptions): Promise<Plan>;
35
+ //# sourceMappingURL=add-ship.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-ship.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/add-ship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAS1F,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA8DD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
@@ -0,0 +1,149 @@
1
+ import { isAddress, isOffCurveAddress } from '@solana/kit';
2
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
4
+ import { requireGameAddress } from '../../internal/game-context.js';
5
+ import { fleetAccountDefinition } from '../../internal/c4/fleet.js';
6
+ import { addShipToFleetInstruction } from '../../internal/c4/fleet-ship-assembly.js';
7
+ import { resolveFleetShipAssembly, validateFleetShipAssembly, } from '../../internal/planning/fleet-ship-assembly.js';
8
+ import { readFreshGameShipAssemblyCatalog } from '../../registry/ships.js';
9
+ import { createPlan } from '../../planning/index.js';
10
+ function options(input) {
11
+ const bad = () => {
12
+ throw new InvalidActionInputError('options', input, 'authorization, shipId and amount only; direct authority, Profile, u16 keyIndex and shipId, and a bigint amount from 1n through 255n', 'Pass address-only ship assembly options. Certificates and other access routes are unsupported; use a direct Profile key and an existing own-faction StarbasePlayer.');
13
+ };
14
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
15
+ bad();
16
+ const value = input;
17
+ if (Object.keys(value).length !== 3 ||
18
+ !Object.hasOwn(value, 'authorization') ||
19
+ !Object.hasOwn(value, 'shipId') ||
20
+ !Object.hasOwn(value, 'amount'))
21
+ bad();
22
+ const authorization = value.authorization;
23
+ if (authorization === null ||
24
+ typeof authorization !== 'object' ||
25
+ Array.isArray(authorization))
26
+ bad();
27
+ const a = authorization;
28
+ if (Object.keys(a).length !== 3 ||
29
+ !Object.hasOwn(a, 'profile') ||
30
+ !Object.hasOwn(a, 'authority') ||
31
+ !Object.hasOwn(a, 'keyIndex') ||
32
+ typeof a.profile !== 'string' ||
33
+ !isAddress(a.profile) ||
34
+ typeof a.authority !== 'string' ||
35
+ !isAddress(a.authority) ||
36
+ isOffCurveAddress(a.authority) ||
37
+ !Number.isInteger(a.keyIndex) ||
38
+ typeof a.keyIndex !== 'number' ||
39
+ a.keyIndex < 0 ||
40
+ a.keyIndex > 65535 ||
41
+ typeof value.shipId !== 'number' ||
42
+ !Number.isInteger(value.shipId) ||
43
+ value.shipId < 0 ||
44
+ value.shipId > 65535 ||
45
+ typeof value.amount !== 'bigint' ||
46
+ value.amount < 1n ||
47
+ value.amount > 255n)
48
+ bad();
49
+ return {
50
+ authorization: {
51
+ profile: a.profile,
52
+ authority: a.authority,
53
+ keyIndex: a.keyIndex,
54
+ },
55
+ shipId: value.shipId,
56
+ amount: value.amount,
57
+ };
58
+ }
59
+ /** Plans one singleton transfer of an exact ship configuration from StarbasePlayer entitlement to an owned Docked Fleet.
60
+ * Supports requirements-free XXS ships at own-faction CSS Starbases, current Fleet
61
+ * definition sequences and both Character and Game ship-assembly capacity limits.
62
+ * The explicit ship ID must be a u16 and the whole ship amount must be 1n through 255n. Uses a direct Profile
63
+ * AUTH or SAGE manageFleet key; a positive Profile rent shortfall additionally
64
+ * requires vault-funding permission. No token transfer or onboarding occurs.
65
+ * Final stats, research, refresh and outcomes remain chain-authoritative.
66
+ * Simulate before signing. The observed debit ceiling is rechecked before
67
+ * signing and is not an atomic on-chain spending cap. Two assembly Plans for the same Profile
68
+ * cannot compose because they share funds and assembly state.
69
+ * @example
70
+ * ```ts
71
+ * declare const ctx:SageContext, fleet:Address, profile:Address, authority:Address;
72
+ * const plan = await planAddShipToFleet(ctx,fleet,{authorization:{profile,authority,keyIndex:0},shipId:1,amount:1n});
73
+ * console.log(plan.describe());
74
+ * ```
75
+ */
76
+ export async function planAddShipToFleet(ctx, fleet, input) {
77
+ const captured = options(input);
78
+ if (typeof fleet !== 'string' || !isAddress(fleet))
79
+ throw new InvalidActionInputError('fleet', fleet, 'a Fleet address', 'Select an owned Fleet and replan ship assembly.');
80
+ const game = requireGameAddress(ctx);
81
+ const [fleetRaw] = await readContextRawAccounts(ctx, [fleet]);
82
+ if (!fleetRaw || fleetRaw.address !== fleet || fleetRaw.executable)
83
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The selected Fleet is missing, executable or has a contradictory address. Refresh a valid owned Fleet and replan.');
84
+ const decoded = fleetAccountDefinition.decode(fleetRaw);
85
+ if (decoded.state.kind !== 'docked')
86
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Ship assembly currently requires a Docked Fleet. Dock at an own-faction CSS Starbase and replan.');
87
+ const intent = {
88
+ address: fleet,
89
+ game,
90
+ profile: captured.authorization.profile,
91
+ authority: captured.authorization.authority,
92
+ keyIndex: captured.authorization.keyIndex,
93
+ system: decoded.state.system,
94
+ shipId: captured.shipId,
95
+ amount: captured.amount,
96
+ };
97
+ const resolved = await resolveFleetShipAssembly(intent);
98
+ const addresses = [
99
+ resolved.profile,
100
+ resolved.character,
101
+ resolved.profileFaction,
102
+ resolved.system,
103
+ resolved.starbasePlayer,
104
+ resolved.rent,
105
+ resolved.clock,
106
+ ];
107
+ const [{ rawAccount, catalog }, raw] = await Promise.all([
108
+ readFreshGameShipAssemblyCatalog(ctx),
109
+ readContextRawAccounts(ctx, addresses),
110
+ ]);
111
+ const accounts = new Map(addresses.map((address, index) => [address, raw[index]]));
112
+ accounts.set(fleet, fleetRaw);
113
+ accounts.set(game, rawAccount);
114
+ const { profileDebit, configHash } = await validateFleetShipAssembly(intent, resolved, accounts, undefined, catalog);
115
+ const summary = `Add ${intent.amount} of ship configuration ${intent.shipId} from StarbasePlayer ${resolved.starbasePlayer} to Fleet ${fleet}. Observed Profile rent debit: ${profileDebit} lamports from Profile ${intent.profile}. Execution rejects a higher observed debit before signing; this is not an atomic on-chain spending cap. Transaction fees are separate. Final stats, research, refresh and outcomes remain chain-authoritative; simulate before signing.`;
116
+ return createPlan({
117
+ kind: 'fleets.add-ship',
118
+ summary,
119
+ preconditions: [
120
+ {
121
+ kind: 'fleet-add-ship',
122
+ ...intent,
123
+ configHash,
124
+ maximumProfileDebit: profileDebit,
125
+ describes: 'Ship assembly retains canonical relationships, supported configuration, exact entitlement, capacity, direct-key permission and affordable rent within the observed Profile debit.',
126
+ },
127
+ ],
128
+ steps: [
129
+ {
130
+ describes: summary,
131
+ instruction: addShipToFleetInstruction(intent, resolved),
132
+ signers: [intent.authority],
133
+ semantics: [
134
+ {
135
+ kind: 'requires',
136
+ resource: `profile:${intent.profile}`,
137
+ fact: 'fleet-ship-assembly',
138
+ },
139
+ {
140
+ kind: 'invalidates',
141
+ resource: `profile:${intent.profile}`,
142
+ fact: 'fleet-ship-assembly',
143
+ },
144
+ ],
145
+ },
146
+ ],
147
+ });
148
+ }
149
+ //# sourceMappingURL=add-ship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-ship.js","sourceRoot":"","sources":["../../../src/fleets/actions/add-ship.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import type { PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
4
+ import { type Plan } from '../../planning/index.js';
5
+ /** Address-only options for creating an empty Fleet at an existing own-faction StarbasePlayer.
6
+ * @example
7
+ * ```ts
8
+ * declare const profile:Address, authority:Address, system:Address;
9
+ * const options:PlanCreateFleetOptions={authorization:{profile,authority,keyIndex:0},system,label:'Scout'};
10
+ * ```
11
+ */
12
+ export interface PlanCreateFleetOptions {
13
+ readonly authorization: PlanAuthorization;
14
+ readonly system: Address;
15
+ readonly label: string;
16
+ }
17
+ /** Plans a standalone empty Docked Fleet, without signing or submitting.
18
+ * Derives all account addresses from the configured Game, Profile, exact label
19
+ * and System. Accepted label bytes are preserved. Requires an existing own-faction
20
+ * StarbasePlayer, a direct Profile AUTH or SAGE manageFleet key, and available
21
+ * stored Character capacity. The Profile pays only the Fleet target's rent
22
+ * shortfall; a non-AUTH key needs drainSolVault only for a positive debit.
23
+ * The observed debit is checked again before signing; it is not an atomic
24
+ * on-chain spending cap. Final rent and funding remain chain-authoritative.
25
+ * No implicit key grants, registration or funding occurs. Final modifier refresh
26
+ * and deployed eligibility remain chain-authoritative: simulate before signing.
27
+ * Creation Plans for the same Character cannot be combined.
28
+ * @example
29
+ * ```ts
30
+ * declare const ctx:SageContext, profile:Address, authority:Address, system:Address;
31
+ * const plan=await planCreateFleet(ctx,{authorization:{profile,authority,keyIndex:0},system,label:'Scout'});
32
+ * console.log(plan.describe());
33
+ * ```
34
+ */
35
+ export declare function planCreateFleet(ctx: SageContext, input: PlanCreateFleetOptions): Promise<Plan>;
36
+ //# sourceMappingURL=create-fleet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-fleet.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/create-fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAU7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAyDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -0,0 +1,138 @@
1
+ import { isAddress, isOffCurveAddress } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../../client/errors.js';
3
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
4
+ import { requireGameAddress } from '../../internal/game-context.js';
5
+ import { createFleetInstruction } from '../../internal/c4/fleet-creation.js';
6
+ import { resolveFleetCreation, validateFleetCreation, validateFleetCreationLabel, } from '../../internal/planning/fleet-creation.js';
7
+ import { createPlan } from '../../planning/index.js';
8
+ import { readFreshGameForCharacterRegistration } from '../../registry/onboarding.js';
9
+ function options(input) {
10
+ const bad = () => {
11
+ throw new InvalidActionInputError('options', input, 'authorization, system and label only; direct authority, Profile and u16 keyIndex', 'Pass address-only Fleet creation options. Certificates and other access routes are unsupported; use a direct Profile key and an existing own-faction StarbasePlayer.');
12
+ };
13
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
14
+ bad();
15
+ const value = input;
16
+ if (Object.keys(value).length !== 3 ||
17
+ !Object.hasOwn(value, 'authorization') ||
18
+ !Object.hasOwn(value, 'system') ||
19
+ !Object.hasOwn(value, 'label'))
20
+ bad();
21
+ const authorization = value.authorization;
22
+ if (authorization === null ||
23
+ typeof authorization !== 'object' ||
24
+ Array.isArray(authorization))
25
+ bad();
26
+ const a = authorization;
27
+ if (Object.keys(a).length !== 3 ||
28
+ !Object.hasOwn(a, 'profile') ||
29
+ !Object.hasOwn(a, 'authority') ||
30
+ !Object.hasOwn(a, 'keyIndex') ||
31
+ typeof a.profile !== 'string' ||
32
+ !isAddress(a.profile) ||
33
+ typeof a.authority !== 'string' ||
34
+ !isAddress(a.authority) ||
35
+ isOffCurveAddress(a.authority) ||
36
+ !Number.isInteger(a.keyIndex) ||
37
+ typeof a.keyIndex !== 'number' ||
38
+ a.keyIndex < 0 ||
39
+ a.keyIndex > 65535 ||
40
+ typeof value.system !== 'string' ||
41
+ !isAddress(value.system))
42
+ bad();
43
+ validateFleetCreationLabel(value.label);
44
+ return {
45
+ authorization: {
46
+ profile: a.profile,
47
+ authority: a.authority,
48
+ keyIndex: a.keyIndex,
49
+ },
50
+ system: value.system,
51
+ label: value.label,
52
+ };
53
+ }
54
+ /** Plans a standalone empty Docked Fleet, without signing or submitting.
55
+ * Derives all account addresses from the configured Game, Profile, exact label
56
+ * and System. Accepted label bytes are preserved. Requires an existing own-faction
57
+ * StarbasePlayer, a direct Profile AUTH or SAGE manageFleet key, and available
58
+ * stored Character capacity. The Profile pays only the Fleet target's rent
59
+ * shortfall; a non-AUTH key needs drainSolVault only for a positive debit.
60
+ * The observed debit is checked again before signing; it is not an atomic
61
+ * on-chain spending cap. Final rent and funding remain chain-authoritative.
62
+ * No implicit key grants, registration or funding occurs. Final modifier refresh
63
+ * and deployed eligibility remain chain-authoritative: simulate before signing.
64
+ * Creation Plans for the same Character cannot be combined.
65
+ * @example
66
+ * ```ts
67
+ * declare const ctx:SageContext, profile:Address, authority:Address, system:Address;
68
+ * const plan=await planCreateFleet(ctx,{authorization:{profile,authority,keyIndex:0},system,label:'Scout'});
69
+ * console.log(plan.describe());
70
+ * ```
71
+ */
72
+ export async function planCreateFleet(ctx, input) {
73
+ const captured = options(input);
74
+ const game = requireGameAddress(ctx);
75
+ const intent = {
76
+ game,
77
+ profile: captured.authorization.profile,
78
+ authority: captured.authorization.authority,
79
+ keyIndex: captured.authorization.keyIndex,
80
+ system: captured.system,
81
+ label: captured.label,
82
+ };
83
+ const resolved = await resolveFleetCreation(intent);
84
+ const addresses = [
85
+ resolved.profile,
86
+ resolved.character,
87
+ resolved.profileFaction,
88
+ resolved.system,
89
+ resolved.starbasePlayer,
90
+ resolved.fleet,
91
+ resolved.rent,
92
+ resolved.clock,
93
+ ];
94
+ const [gameAccount, raw] = await Promise.all([
95
+ readFreshGameForCharacterRegistration(ctx),
96
+ readContextRawAccounts(ctx, addresses),
97
+ ]);
98
+ const { profileDebit } = await validateFleetCreation(intent, resolved, new Map(addresses.map((address, index) => [address, raw[index]])));
99
+ const summary = `Create empty Fleet ${intent.label} (${resolved.fleet}), Docked at Starbase ${intent.system}, consuming one Character Fleet slot. Observed Profile rent debit: ${profileDebit} lamports from Profile ${intent.profile}. Execution rejects a higher observed debit before signing; final rent and funding remain chain-authoritative. Transaction fees are separate. Final modifier refresh and deployed eligibility remain chain-authoritative: simulate before signing.`;
100
+ return createPlan({
101
+ kind: 'fleets.create-fleet',
102
+ summary,
103
+ preconditions: [
104
+ {
105
+ kind: 'game-account',
106
+ address: gameAccount.address,
107
+ describes: 'The configured Game remains valid; unrelated definitions may change.',
108
+ },
109
+ {
110
+ kind: 'fleet-create',
111
+ address: resolved.fleet,
112
+ ...intent,
113
+ maximumProfileDebit: profileDebit,
114
+ describes: 'Fleet creation retains canonical relationships, direct-key permission, available capacity and funding within the approved Profile debit.',
115
+ },
116
+ ],
117
+ steps: [
118
+ {
119
+ describes: summary,
120
+ instruction: createFleetInstruction(intent, resolved),
121
+ signers: [intent.authority],
122
+ semantics: [
123
+ {
124
+ kind: 'requires',
125
+ resource: `character:${resolved.character}`,
126
+ fact: 'fleet-creation-capacity',
127
+ },
128
+ {
129
+ kind: 'invalidates',
130
+ resource: `character:${resolved.character}`,
131
+ fact: 'fleet-creation-capacity',
132
+ },
133
+ ],
134
+ },
135
+ ],
136
+ });
137
+ }
138
+ //# sourceMappingURL=create-fleet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-fleet.js","sourceRoot":"","sources":["../../../src/fleets/actions/create-fleet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import type { PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
4
+ import { type Plan } from '../../planning/index.js';
5
+ /** Direct player authorization and the positive count for ordinary Docked Fleet crew transfer.
6
+ * @example
7
+ * ```ts
8
+ * declare const authorization: PlanAuthorization;
9
+ * const options: PlanFleetCrewTransferOptions = { authorization, count: 1 };
10
+ * ```
11
+ */
12
+ export interface PlanFleetCrewTransferOptions {
13
+ readonly authorization: PlanAuthorization;
14
+ readonly count: number;
15
+ }
16
+ /** Loads an explicit positive u16 crew count from the canonical StarbasePlayer into a directly owned Docked Fleet.
17
+ * Requires a direct Profile AUTH key, current ship definitions, no Character roster,
18
+ * and an absent or exact-neutral Fleet binding. Rented crew are unsupported.
19
+ * Available Starbase crew exclude busy crew; capacity includes required crew and passengers.
20
+ * Planning never signs or submits. This transfer must execute alone.
21
+ * @example
22
+ * ```ts
23
+ * declare const ctx: SageContext, fleet: Address, authorization: PlanAuthorization;
24
+ * const plan = await planLoadFleetCrew(ctx, fleet, { authorization, count: 1 });
25
+ * console.log(plan.describe());
26
+ * ```
27
+ */
28
+ export declare function planLoadFleetCrew(ctx: SageContext, fleet: Address, options: PlanFleetCrewTransferOptions): Promise<Plan>;
29
+ /** Unloads an explicit positive u16 crew count from a directly owned Docked Fleet into its canonical StarbasePlayer.
30
+ * Unloading every crew member is allowed while Docked; departure requires reloading required crew.
31
+ * Supports the same ordinary-crew and direct AUTH boundary as loading. Execute separately
32
+ * and refresh after confirmation before preparing another transfer or movement.
33
+ * @example
34
+ * ```ts
35
+ * declare const ctx: SageContext, fleet: Address, authorization: PlanAuthorization;
36
+ * const plan = await planUnloadFleetCrew(ctx, fleet, { authorization, count: 1 });
37
+ * console.log(plan.describe());
38
+ * ```
39
+ */
40
+ export declare function planUnloadFleetCrew(ctx: SageContext, fleet: Address, options: PlanFleetCrewTransferOptions): Promise<Plan>;
41
+ //# sourceMappingURL=crew-transfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crew-transfer.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAsGD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf;AACD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,114 @@
1
+ import { isAddress, isOffCurveAddress } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../../client/errors.js';
3
+ import { requireGameAddress } from '../../internal/game-context.js';
4
+ import { resolveFleetCrewTransfer } from '../../internal/planning/fleet-crew-transfer.js';
5
+ import { crewTransferInstruction } from '../../internal/planning/fleet-crew-guard.js';
6
+ import { createPlan } from '../../planning/index.js';
7
+ function options(input) {
8
+ const bad = () => {
9
+ throw new InvalidActionInputError('options', input, 'authorization and count only; direct authority, Profile, u16 keyIndex and positive u16 count', 'Pass address-only Fleet crew transfer options. Certificates and other access routes are unsupported; use a direct Profile key and an existing canonical StarbasePlayer.');
10
+ };
11
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
12
+ bad();
13
+ const value = input;
14
+ if (Object.keys(value).length !== 2 ||
15
+ !Object.hasOwn(value, 'authorization') ||
16
+ !Object.hasOwn(value, 'count'))
17
+ bad();
18
+ const authorization = value.authorization;
19
+ if (authorization === null ||
20
+ typeof authorization !== 'object' ||
21
+ Array.isArray(authorization))
22
+ bad();
23
+ const a = authorization;
24
+ if (Object.keys(a).length !== 3 ||
25
+ !Object.hasOwn(a, 'profile') ||
26
+ !Object.hasOwn(a, 'authority') ||
27
+ !Object.hasOwn(a, 'keyIndex') ||
28
+ typeof a.profile !== 'string' ||
29
+ !isAddress(a.profile) ||
30
+ typeof a.authority !== 'string' ||
31
+ !isAddress(a.authority) ||
32
+ isOffCurveAddress(a.authority) ||
33
+ !Number.isInteger(a.keyIndex) ||
34
+ typeof a.keyIndex !== 'number' ||
35
+ a.keyIndex < 0 ||
36
+ a.keyIndex > 65535 ||
37
+ typeof value.count !== 'number' ||
38
+ !Number.isInteger(value.count) ||
39
+ value.count < 1 ||
40
+ value.count > 65535)
41
+ bad();
42
+ return {
43
+ authorization: {
44
+ profile: a.profile,
45
+ authority: a.authority,
46
+ keyIndex: a.keyIndex,
47
+ },
48
+ count: value.count,
49
+ };
50
+ }
51
+ async function planTransfer(ctx, fleet, input, direction) {
52
+ const captured = options(input);
53
+ if (typeof fleet !== 'string' || !isAddress(fleet))
54
+ throw new InvalidActionInputError('fleet', fleet, 'a Fleet address', 'Select a directly owned Docked Fleet for crew transfer.');
55
+ const intent = {
56
+ address: fleet,
57
+ game: requireGameAddress(ctx),
58
+ ...captured.authorization,
59
+ count: captured.count,
60
+ direction,
61
+ };
62
+ const resolved = await resolveFleetCrewTransfer(ctx, intent);
63
+ const summary = `${direction === 'load' ? 'Load' : 'Unload'} ${intent.count} ordinary crew ${direction === 'load' ? 'from' : 'to'} StarbasePlayer ${resolved.starbasePlayer} ${direction === 'load' ? 'aboard' : 'from'} Fleet ${fleet}. Crew may be unloaded to zero while Docked; reload the required departure crew before undocking. Individual rosters, rented crew and restricted keys are unsupported. Execute this transfer alone; refresh Fleet and Starbase crew after confirmation before planning another action. Simulate before signing.`;
64
+ return createPlan({
65
+ kind: `fleets.${direction}-crew`,
66
+ summary,
67
+ preconditions: [
68
+ {
69
+ kind: 'fleet-crew-transfer',
70
+ ...intent,
71
+ ...resolved,
72
+ describes: 'Direct authority, canonical docking generation, ordinary crew state, current capacity and available source crew remain valid.',
73
+ },
74
+ ],
75
+ steps: [
76
+ {
77
+ instruction: crewTransferInstruction({ ...intent, ...resolved }),
78
+ describes: summary,
79
+ signers: [intent.authority],
80
+ semantics: [{ kind: 'exclusive', scope: 'transaction' }],
81
+ },
82
+ ],
83
+ });
84
+ }
85
+ /** Loads an explicit positive u16 crew count from the canonical StarbasePlayer into a directly owned Docked Fleet.
86
+ * Requires a direct Profile AUTH key, current ship definitions, no Character roster,
87
+ * and an absent or exact-neutral Fleet binding. Rented crew are unsupported.
88
+ * Available Starbase crew exclude busy crew; capacity includes required crew and passengers.
89
+ * Planning never signs or submits. This transfer must execute alone.
90
+ * @example
91
+ * ```ts
92
+ * declare const ctx: SageContext, fleet: Address, authorization: PlanAuthorization;
93
+ * const plan = await planLoadFleetCrew(ctx, fleet, { authorization, count: 1 });
94
+ * console.log(plan.describe());
95
+ * ```
96
+ */
97
+ export function planLoadFleetCrew(ctx, fleet, options) {
98
+ return planTransfer(ctx, fleet, options, 'load');
99
+ }
100
+ /** Unloads an explicit positive u16 crew count from a directly owned Docked Fleet into its canonical StarbasePlayer.
101
+ * Unloading every crew member is allowed while Docked; departure requires reloading required crew.
102
+ * Supports the same ordinary-crew and direct AUTH boundary as loading. Execute separately
103
+ * and refresh after confirmation before preparing another transfer or movement.
104
+ * @example
105
+ * ```ts
106
+ * declare const ctx: SageContext, fleet: Address, authorization: PlanAuthorization;
107
+ * const plan = await planUnloadFleetCrew(ctx, fleet, { authorization, count: 1 });
108
+ * console.log(plan.describe());
109
+ * ```
110
+ */
111
+ export function planUnloadFleetCrew(ctx, fleet, options) {
112
+ return planTransfer(ctx, fleet, options, 'unload');
113
+ }
114
+ //# sourceMappingURL=crew-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crew-transfer.js","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Address } from '../../client/contracts.js';
2
+ import type { Plan } from '../../planning/index.js';
3
+ import { type DockBoundsUnavailableReason } from '../../internal/planning/fleet-dock-funding-guard.js';
4
+ /** Conservative gross Profile storage debit for qualified ordinary docking.
5
+ * Surplus and refunds are not credited; unavailable never implies zero cost.
6
+ * @example
7
+ * ```ts
8
+ * declare const bounds: FleetDockDebitBounds;
9
+ * if (bounds.status === 'available') console.log(bounds.maximumProfileDebit);
10
+ * ```
11
+ */
12
+ export type FleetDockDebitBounds = {
13
+ readonly status: 'unavailable';
14
+ readonly reason: DockBoundsUnavailableReason | 'not-fleet-dock' | 'multiple-fleet-docks' | 'combined-plan';
15
+ toJSON(): unknown;
16
+ } | {
17
+ readonly status: 'available';
18
+ readonly maximumProfileDebit: bigint;
19
+ readonly profile: Address;
20
+ readonly fleet: Address;
21
+ readonly starbasePlayer: Address;
22
+ readonly profileUnit: 'lamports';
23
+ readonly maximumFleetGrowthBytes: 40;
24
+ readonly transactionFees: 'excluded';
25
+ toJSON(): unknown;
26
+ };
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
29
+ * on-chain spending cap; state can change before landing.
30
+ * @example
31
+ * ```ts
32
+ * declare const plan: Plan;
33
+ * const bounds = getFleetDockDebitBounds(plan);
34
+ * if (bounds.status === 'available') console.log(bounds.maximumProfileDebit);
35
+ * ```
36
+ */
37
+ export declare function getFleetDockDebitBounds(plan: Plan): FleetDockDebitBounds;
38
+ //# sourceMappingURL=dock-bounds.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,46 @@
1
+ import { attachJsonSerialization } from '../../internal/json.js';
2
+ import { InvalidActionInputError } from '../../client/errors.js';
3
+ import { isPlanInstance } from '../../planning/plan-instances.js';
4
+ import { MAXIMUM_DOCK_GROWTH_BYTES, } from '../../internal/planning/fleet-dock-funding-guard.js';
5
+ /** 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
+ * on-chain spending cap; state can change before landing.
8
+ * @example
9
+ * ```ts
10
+ * declare const plan: Plan;
11
+ * const bounds = getFleetDockDebitBounds(plan);
12
+ * if (bounds.status === 'available') console.log(bounds.maximumProfileDebit);
13
+ * ```
14
+ */
15
+ export function getFleetDockDebitBounds(plan) {
16
+ if (!isPlanInstance(plan))
17
+ throw new InvalidActionInputError('plan', plan, 'a genuine Plan from a planning factory', 'Create or hydrate the Plan through this SDK before reading its debit bounds.');
18
+ const guards = plan.preconditions.filter((g) => g.kind === 'fleet-dock-funding');
19
+ if (guards.length !== 1)
20
+ return Object.freeze(attachJsonSerialization({
21
+ status: 'unavailable',
22
+ reason: guards.length === 0 ? 'not-fleet-dock' : 'multiple-fleet-docks',
23
+ }));
24
+ if (plan.steps.length !== 1)
25
+ return Object.freeze(attachJsonSerialization({
26
+ status: 'unavailable',
27
+ reason: 'combined-plan',
28
+ }));
29
+ const guard = guards[0];
30
+ if (guard.status === 'unavailable')
31
+ return Object.freeze(attachJsonSerialization({
32
+ status: 'unavailable',
33
+ reason: guard.reason,
34
+ }));
35
+ return Object.freeze(attachJsonSerialization({
36
+ status: 'available',
37
+ maximumProfileDebit: guard.maximumProfileDebit,
38
+ profile: guard.profile,
39
+ fleet: guard.address,
40
+ starbasePlayer: guard.starbasePlayer,
41
+ profileUnit: 'lamports',
42
+ maximumFleetGrowthBytes: MAXIMUM_DOCK_GROWTH_BYTES,
43
+ transactionFees: 'excluded',
44
+ }));
45
+ }
46
+ //# sourceMappingURL=dock-bounds.js.map