@aephia/atlas-kit 0.6.0-next.6 → 0.6.0-next.61

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 (456) 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 +25 -12
  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 +3 -2
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  10. package/dist/cargo/actions/wallet-context.js +3 -9
  11. package/dist/cargo/actions/wallet-context.js.map +1 -1
  12. package/dist/cargo/actions/wallet-token.d.ts +1 -1
  13. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  14. package/dist/cargo/actions/wallet-token.js +1 -9
  15. package/dist/cargo/actions/wallet-token.js.map +1 -1
  16. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  17. package/dist/cargo/actions/withdrawal.js +22 -10
  18. package/dist/cargo/actions/withdrawal.js.map +1 -1
  19. package/dist/claim-stakes/actions/index.d.ts +13 -0
  20. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  21. package/dist/claim-stakes/actions/index.js +87 -37
  22. package/dist/claim-stakes/actions/index.js.map +1 -1
  23. package/dist/client/contracts.d.ts +16 -6
  24. package/dist/client/contracts.d.ts.map +1 -1
  25. package/dist/client/errors.d.ts +4 -0
  26. package/dist/client/errors.d.ts.map +1 -1
  27. package/dist/client/errors.js +31 -1
  28. package/dist/client/errors.js.map +1 -1
  29. package/dist/client/index.d.ts +1 -0
  30. package/dist/client/index.d.ts.map +1 -1
  31. package/dist/client/index.js +1 -0
  32. package/dist/client/index.js.map +1 -1
  33. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  34. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  35. package/dist/client/rpc-subscription-provider.js +190 -0
  36. package/dist/client/rpc-subscription-provider.js.map +1 -0
  37. package/dist/combat/actions/index.d.ts.map +1 -1
  38. package/dist/combat/actions/index.js +98 -50
  39. package/dist/combat/actions/index.js.map +1 -1
  40. package/dist/crafting/actions/index.d.ts.map +1 -1
  41. package/dist/crafting/actions/index.js +49 -29
  42. package/dist/crafting/actions/index.js.map +1 -1
  43. package/dist/crafting/index.d.ts +24 -2
  44. package/dist/crafting/index.d.ts.map +1 -1
  45. package/dist/crafting/index.js +31 -2
  46. package/dist/crafting/index.js.map +1 -1
  47. package/dist/factions/actions/index.d.ts +3 -0
  48. package/dist/factions/actions/index.d.ts.map +1 -1
  49. package/dist/factions/actions/index.js +19 -4
  50. package/dist/factions/actions/index.js.map +1 -1
  51. package/dist/factions/index.d.ts +1 -1
  52. package/dist/factions/index.d.ts.map +1 -1
  53. package/dist/factions/index.js +1 -1
  54. package/dist/factions/index.js.map +1 -1
  55. package/dist/factions/profile-faction.d.ts +20 -8
  56. package/dist/factions/profile-faction.d.ts.map +1 -1
  57. package/dist/factions/profile-faction.js +20 -8
  58. package/dist/factions/profile-faction.js.map +1 -1
  59. package/dist/fleets/actions/add-ship.d.ts +35 -0
  60. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  61. package/dist/fleets/actions/add-ship.js +149 -0
  62. package/dist/fleets/actions/add-ship.js.map +1 -0
  63. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  64. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  65. package/dist/fleets/actions/create-fleet.js +138 -0
  66. package/dist/fleets/actions/create-fleet.js.map +1 -0
  67. package/dist/fleets/actions/index.d.ts +27 -15
  68. package/dist/fleets/actions/index.d.ts.map +1 -1
  69. package/dist/fleets/actions/index.js +161 -109
  70. package/dist/fleets/actions/index.js.map +1 -1
  71. package/dist/fleets/actions/respawn.d.ts +38 -0
  72. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  73. package/dist/fleets/actions/respawn.js +122 -0
  74. package/dist/fleets/actions/respawn.js.map +1 -0
  75. package/dist/fleets/actions/ship-import.d.ts +48 -0
  76. package/dist/fleets/actions/ship-import.d.ts.map +1 -0
  77. package/dist/fleets/actions/ship-import.js +330 -0
  78. package/dist/fleets/actions/ship-import.js.map +1 -0
  79. package/dist/identity/actions/create-profile.d.ts +56 -0
  80. package/dist/identity/actions/create-profile.d.ts.map +1 -0
  81. package/dist/identity/actions/create-profile.js +139 -0
  82. package/dist/identity/actions/create-profile.js.map +1 -0
  83. package/dist/identity/actions/index.d.ts +4 -1
  84. package/dist/identity/actions/index.d.ts.map +1 -1
  85. package/dist/identity/actions/index.js +50 -28
  86. package/dist/identity/actions/index.js.map +1 -1
  87. package/dist/identity/index.d.ts +15 -0
  88. package/dist/identity/index.d.ts.map +1 -1
  89. package/dist/identity/index.js +15 -0
  90. package/dist/identity/index.js.map +1 -1
  91. package/dist/identity/permissions.d.ts +124 -0
  92. package/dist/identity/permissions.d.ts.map +1 -0
  93. package/dist/identity/permissions.js +171 -0
  94. package/dist/identity/permissions.js.map +1 -0
  95. package/dist/index.d.ts +9 -0
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +4 -1
  98. package/dist/index.js.map +1 -1
  99. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  100. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  101. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  102. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  103. package/dist/internal/c4/character-registration.d.ts +2 -0
  104. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  105. package/dist/internal/c4/character-registration.js +2 -0
  106. package/dist/internal/c4/character-registration.js.map +1 -1
  107. package/dist/internal/c4/claim-stake.d.ts +0 -27
  108. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  109. package/dist/internal/c4/claim-stake.js +0 -33
  110. package/dist/internal/c4/claim-stake.js.map +1 -1
  111. package/dist/internal/c4/combat.d.ts +0 -27
  112. package/dist/internal/c4/combat.d.ts.map +1 -1
  113. package/dist/internal/c4/combat.js +0 -33
  114. package/dist/internal/c4/combat.js.map +1 -1
  115. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  116. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  117. package/dist/internal/c4/crafting-process-codec.js +34 -0
  118. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  119. package/dist/internal/c4/crafting.d.ts +11 -31
  120. package/dist/internal/c4/crafting.d.ts.map +1 -1
  121. package/dist/internal/c4/crafting.js +26 -43
  122. package/dist/internal/c4/crafting.js.map +1 -1
  123. package/dist/internal/c4/faction-adapter.d.ts +12 -0
  124. package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
  125. package/dist/internal/c4/faction-adapter.js +52 -0
  126. package/dist/internal/c4/faction-adapter.js.map +1 -0
  127. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  128. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  129. package/dist/internal/c4/faction-epoch-meter.js +31 -0
  130. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  131. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  132. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  133. package/dist/internal/c4/faction-treasury.js +48 -0
  134. package/dist/internal/c4/faction-treasury.js.map +1 -0
  135. package/dist/internal/c4/factions.d.ts +9 -57
  136. package/dist/internal/c4/factions.d.ts.map +1 -1
  137. package/dist/internal/c4/factions.js +21 -139
  138. package/dist/internal/c4/factions.js.map +1 -1
  139. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  140. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  141. package/dist/internal/c4/fleet-arrival.js +42 -0
  142. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  143. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  144. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  145. package/dist/internal/c4/fleet-creation.js +180 -0
  146. package/dist/internal/c4/fleet-creation.js.map +1 -0
  147. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  148. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  149. package/dist/internal/c4/fleet-crew-binding.js +15 -0
  150. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  151. package/dist/internal/c4/fleet-respawn.d.ts +19 -0
  152. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  153. package/dist/internal/c4/fleet-respawn.js +91 -0
  154. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  155. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  156. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  157. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  158. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  159. package/dist/internal/c4/fleet.d.ts +38 -19
  160. package/dist/internal/c4/fleet.d.ts.map +1 -1
  161. package/dist/internal/c4/fleet.js.map +1 -1
  162. package/dist/internal/c4/game.d.ts +31 -8
  163. package/dist/internal/c4/game.d.ts.map +1 -1
  164. package/dist/internal/c4/game.js +88 -12
  165. package/dist/internal/c4/game.js.map +1 -1
  166. package/dist/internal/c4/identity.d.ts +2 -7
  167. package/dist/internal/c4/identity.d.ts.map +1 -1
  168. package/dist/internal/c4/identity.js +2 -23
  169. package/dist/internal/c4/identity.js.map +1 -1
  170. package/dist/internal/c4/loyalty.d.ts +0 -27
  171. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  172. package/dist/internal/c4/loyalty.js +0 -33
  173. package/dist/internal/c4/loyalty.js.map +1 -1
  174. package/dist/internal/c4/market.d.ts +1 -37
  175. package/dist/internal/c4/market.d.ts.map +1 -1
  176. package/dist/internal/c4/market.js +11 -49
  177. package/dist/internal/c4/market.js.map +1 -1
  178. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  179. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  180. package/dist/internal/c4/mining-instructions.js +3 -0
  181. package/dist/internal/c4/mining-instructions.js.map +1 -0
  182. package/dist/internal/c4/open-signal.d.ts +8 -0
  183. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  184. package/dist/internal/c4/open-signal.js +37 -0
  185. package/dist/internal/c4/open-signal.js.map +1 -0
  186. package/dist/internal/c4/profile-creation.d.ts +17 -0
  187. package/dist/internal/c4/profile-creation.d.ts.map +1 -0
  188. package/dist/internal/c4/profile-creation.js +36 -0
  189. package/dist/internal/c4/profile-creation.js.map +1 -0
  190. package/dist/internal/c4/profile-permissions.d.ts +14 -0
  191. package/dist/internal/c4/profile-permissions.d.ts.map +1 -0
  192. package/dist/internal/c4/profile-permissions.js +81 -0
  193. package/dist/internal/c4/profile-permissions.js.map +1 -0
  194. package/dist/internal/c4/region-geometry.d.ts +8 -0
  195. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  196. package/dist/internal/c4/region-geometry.js +43 -0
  197. package/dist/internal/c4/region-geometry.js.map +1 -0
  198. package/dist/internal/c4/rewards.d.ts +0 -27
  199. package/dist/internal/c4/rewards.d.ts.map +1 -1
  200. package/dist/internal/c4/rewards.js +0 -33
  201. package/dist/internal/c4/rewards.js.map +1 -1
  202. package/dist/internal/c4/runtime-bindings.d.ts +3 -0
  203. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  204. package/dist/internal/c4/runtime-bindings.js +4 -0
  205. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  206. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  207. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  208. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  209. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  210. package/dist/internal/c4/scan-lifecycle.d.ts +278 -0
  211. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  212. package/dist/internal/c4/scan-lifecycle.js +236 -0
  213. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  214. package/dist/internal/c4/scanning.d.ts +1 -28
  215. package/dist/internal/c4/scanning.d.ts.map +1 -1
  216. package/dist/internal/c4/scanning.js +2 -33
  217. package/dist/internal/c4/scanning.js.map +1 -1
  218. package/dist/internal/c4/ship-import.d.ts +4 -0
  219. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  220. package/dist/internal/c4/ship-import.js +13 -0
  221. package/dist/internal/c4/ship-import.js.map +1 -0
  222. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  223. package/dist/internal/c4/ship-stats.js +25 -21
  224. package/dist/internal/c4/ship-stats.js.map +1 -1
  225. package/dist/internal/c4/starbase.d.ts +0 -32
  226. package/dist/internal/c4/starbase.d.ts.map +1 -1
  227. package/dist/internal/c4/starbase.js +3 -41
  228. package/dist/internal/c4/starbase.js.map +1 -1
  229. package/dist/internal/c4/world.js +2 -1
  230. package/dist/internal/c4/world.js.map +1 -1
  231. package/dist/internal/cargo.d.ts +2 -0
  232. package/dist/internal/cargo.d.ts.map +1 -1
  233. package/dist/internal/cargo.js +8 -0
  234. package/dist/internal/cargo.js.map +1 -1
  235. package/dist/internal/fleet.d.ts +1 -0
  236. package/dist/internal/fleet.d.ts.map +1 -1
  237. package/dist/internal/fleet.js +3 -1
  238. package/dist/internal/fleet.js.map +1 -1
  239. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  240. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  241. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  242. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  243. package/dist/internal/planning/account-state.d.ts +4 -0
  244. package/dist/internal/planning/account-state.d.ts.map +1 -0
  245. package/dist/internal/planning/account-state.js +11 -0
  246. package/dist/internal/planning/account-state.js.map +1 -0
  247. package/dist/internal/planning/action-runtime.d.ts +38 -0
  248. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  249. package/dist/internal/planning/action-runtime.js +63 -0
  250. package/dist/internal/planning/action-runtime.js.map +1 -0
  251. package/dist/internal/planning/arrival-guards.d.ts +20 -0
  252. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  253. package/dist/internal/planning/arrival-guards.js +187 -0
  254. package/dist/internal/planning/arrival-guards.js.map +1 -0
  255. package/dist/internal/planning/authorization-adapter.d.ts +19 -6
  256. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  257. package/dist/internal/planning/authorization-adapter.js +102 -16
  258. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  259. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  260. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  261. package/dist/internal/planning/character-registration-guard.js +58 -0
  262. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  263. package/dist/internal/planning/character-registration.d.ts +23 -0
  264. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  265. package/dist/internal/planning/character-registration.js +86 -0
  266. package/dist/internal/planning/character-registration.js.map +1 -0
  267. package/dist/internal/planning/democracy-history.d.ts +50 -0
  268. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  269. package/dist/internal/planning/democracy-history.js +198 -0
  270. package/dist/internal/planning/democracy-history.js.map +1 -0
  271. package/dist/internal/planning/faction-enrollment.d.ts +1 -1
  272. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  273. package/dist/internal/planning/faction-enrollment.js +7 -13
  274. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  275. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  276. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  277. package/dist/internal/planning/faction-trade-guards.js +15 -0
  278. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  279. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  280. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  281. package/dist/internal/planning/faction-trade-state.js +43 -0
  282. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  283. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  284. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  285. package/dist/internal/planning/fleet-arrival.js +106 -0
  286. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  287. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  288. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  289. package/dist/internal/planning/fleet-attack-xp.js +110 -0
  290. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  291. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  292. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  293. package/dist/internal/planning/fleet-creation.js +107 -0
  294. package/dist/internal/planning/fleet-creation.js.map +1 -0
  295. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  296. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  297. package/dist/internal/planning/fleet-respawn.js +164 -0
  298. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  299. package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
  300. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  301. package/dist/internal/planning/fleet-ship-assembly.js +136 -0
  302. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  303. package/dist/internal/planning/governance-fees.d.ts +64 -0
  304. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  305. package/dist/internal/planning/governance-fees.js +239 -0
  306. package/dist/internal/planning/governance-fees.js.map +1 -0
  307. package/dist/internal/planning/mining-stop.d.ts +14 -0
  308. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  309. package/dist/internal/planning/mining-stop.js +41 -0
  310. package/dist/internal/planning/mining-stop.js.map +1 -0
  311. package/dist/internal/planning/movement-character.d.ts +7 -0
  312. package/dist/internal/planning/movement-character.d.ts.map +1 -0
  313. package/dist/internal/planning/movement-character.js +41 -0
  314. package/dist/internal/planning/movement-character.js.map +1 -0
  315. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  316. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  317. package/dist/internal/planning/movement-xp-guard.js +103 -0
  318. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  319. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  320. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  321. package/dist/internal/planning/open-signal-guard.js +31 -0
  322. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  323. package/dist/internal/planning/open-signal.d.ts +31 -0
  324. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  325. package/dist/internal/planning/open-signal.js +84 -0
  326. package/dist/internal/planning/open-signal.js.map +1 -0
  327. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  328. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  329. package/dist/internal/planning/respawn-guards.js +41 -0
  330. package/dist/internal/planning/respawn-guards.js.map +1 -0
  331. package/dist/internal/planning/runtime-guards.d.ts +43 -0
  332. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  333. package/dist/internal/planning/runtime-guards.js +636 -0
  334. package/dist/internal/planning/runtime-guards.js.map +1 -0
  335. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  336. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  337. package/dist/internal/planning/scan-completion-guard.js +94 -0
  338. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  339. package/dist/internal/planning/scan-completion.d.ts +20 -0
  340. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  341. package/dist/internal/planning/scan-completion.js +220 -0
  342. package/dist/internal/planning/scan-completion.js.map +1 -0
  343. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  344. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  345. package/dist/internal/planning/scan-detect-guard.js +77 -0
  346. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  347. package/dist/internal/planning/scan-detect.d.ts +24 -0
  348. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  349. package/dist/internal/planning/scan-detect.js +244 -0
  350. package/dist/internal/planning/scan-detect.js.map +1 -0
  351. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  352. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  353. package/dist/internal/planning/ship-import-funding.js +52 -0
  354. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  355. package/dist/internal/planning/ship-token.d.ts +10 -0
  356. package/dist/internal/planning/ship-token.d.ts.map +1 -0
  357. package/dist/internal/planning/ship-token.js +47 -0
  358. package/dist/internal/planning/ship-token.js.map +1 -0
  359. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  360. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  361. package/dist/internal/planning/starbase-system-guard.js +93 -0
  362. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  363. package/dist/internal/planning/starbase-system.d.ts +12 -0
  364. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  365. package/dist/internal/planning/starbase-system.js +22 -0
  366. package/dist/internal/planning/starbase-system.js.map +1 -0
  367. package/dist/internal/planning/token-mint.d.ts +4 -0
  368. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  369. package/dist/internal/planning/token-mint.js +15 -0
  370. package/dist/internal/planning/token-mint.js.map +1 -0
  371. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  372. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  373. package/dist/internal/planning/trade-faction-market.js +56 -0
  374. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  375. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  376. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  377. package/dist/internal/planning/xp-runtime.js +126 -0
  378. package/dist/internal/planning/xp-runtime.js.map +1 -0
  379. package/dist/loyalty/actions/index.d.ts.map +1 -1
  380. package/dist/loyalty/actions/index.js +4 -3
  381. package/dist/loyalty/actions/index.js.map +1 -1
  382. package/dist/loyalty/index.d.ts.map +1 -1
  383. package/dist/loyalty/index.js +2 -6
  384. package/dist/loyalty/index.js.map +1 -1
  385. package/dist/markets/actions/index.d.ts +1 -0
  386. package/dist/markets/actions/index.d.ts.map +1 -1
  387. package/dist/markets/actions/index.js +40 -16
  388. package/dist/markets/actions/index.js.map +1 -1
  389. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  390. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  391. package/dist/markets/actions/trade-faction-market.js +291 -0
  392. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  393. package/dist/mining/actions/index.d.ts +84 -0
  394. package/dist/mining/actions/index.d.ts.map +1 -0
  395. package/dist/mining/actions/index.js +328 -0
  396. package/dist/mining/actions/index.js.map +1 -0
  397. package/dist/mining/index.d.ts +7 -2
  398. package/dist/mining/index.d.ts.map +1 -1
  399. package/dist/mining/index.js +5 -2
  400. package/dist/mining/index.js.map +1 -1
  401. package/dist/planning/assembly.d.ts.map +1 -1
  402. package/dist/planning/assembly.js +18 -0
  403. package/dist/planning/assembly.js.map +1 -1
  404. package/dist/planning/execution.d.ts.map +1 -1
  405. package/dist/planning/execution.js +374 -18
  406. package/dist/planning/execution.js.map +1 -1
  407. package/dist/planning/index.d.ts +185 -117
  408. package/dist/planning/index.d.ts.map +1 -1
  409. package/dist/planning/index.js +796 -87
  410. package/dist/planning/index.js.map +1 -1
  411. package/dist/planning/simulation.d.ts +25 -1
  412. package/dist/planning/simulation.d.ts.map +1 -1
  413. package/dist/planning/simulation.js +111 -11
  414. package/dist/planning/simulation.js.map +1 -1
  415. package/dist/registry/cargo.d.ts +6 -11
  416. package/dist/registry/cargo.d.ts.map +1 -1
  417. package/dist/registry/cargo.js +19 -19
  418. package/dist/registry/cargo.js.map +1 -1
  419. package/dist/registry/index.d.ts +4 -0
  420. package/dist/registry/index.d.ts.map +1 -1
  421. package/dist/registry/index.js.map +1 -1
  422. package/dist/registry/onboarding.d.ts +10 -1
  423. package/dist/registry/onboarding.d.ts.map +1 -1
  424. package/dist/registry/onboarding.js +26 -8
  425. package/dist/registry/onboarding.js.map +1 -1
  426. package/dist/registry/scanning.d.ts +7 -0
  427. package/dist/registry/scanning.d.ts.map +1 -0
  428. package/dist/registry/scanning.js +13 -0
  429. package/dist/registry/scanning.js.map +1 -0
  430. package/dist/registry/ship-stats-snapshot.js +19 -19
  431. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  432. package/dist/registry/ships.d.ts +28 -0
  433. package/dist/registry/ships.d.ts.map +1 -0
  434. package/dist/registry/ships.js +51 -0
  435. package/dist/registry/ships.js.map +1 -0
  436. package/dist/registry/xp-runtime.d.ts +4 -0
  437. package/dist/registry/xp-runtime.d.ts.map +1 -0
  438. package/dist/registry/xp-runtime.js +14 -0
  439. package/dist/registry/xp-runtime.js.map +1 -0
  440. package/dist/scanning/actions/index.d.ts +116 -0
  441. package/dist/scanning/actions/index.d.ts.map +1 -0
  442. package/dist/scanning/actions/index.js +209 -0
  443. package/dist/scanning/actions/index.js.map +1 -0
  444. package/dist/scanning/index.d.ts +3 -1
  445. package/dist/scanning/index.d.ts.map +1 -1
  446. package/dist/scanning/index.js +4 -2
  447. package/dist/scanning/index.js.map +1 -1
  448. package/dist/scanning/lifecycle.d.ts +77 -0
  449. package/dist/scanning/lifecycle.d.ts.map +1 -0
  450. package/dist/scanning/lifecycle.js +93 -0
  451. package/dist/scanning/lifecycle.js.map +1 -0
  452. package/dist/scanning/signals.d.ts +121 -0
  453. package/dist/scanning/signals.d.ts.map +1 -0
  454. package/dist/scanning/signals.js +171 -0
  455. package/dist/scanning/signals.js.map +1 -0
  456. package/package.json +10 -2
@@ -0,0 +1,122 @@
1
+ import { isAddress, isOffCurveAddress } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../../client/errors.js';
3
+ import { requireGameAddress } from '../../internal/game-context.js';
4
+ import { resolveFleetRespawn } from '../../internal/planning/fleet-respawn.js';
5
+ import { createPlan } from '../../planning/index.js';
6
+ function options(input) {
7
+ const bad = () => {
8
+ throw new InvalidActionInputError('options', input, 'authorization and system only; direct authority, Profile and u16 keyIndex', 'Pass address-only Fleet recovery options. Certificates and other access routes are unsupported; use a direct Profile key and an existing own-faction StarbasePlayer.');
9
+ };
10
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
11
+ bad();
12
+ const value = input;
13
+ if (Object.keys(value).length !== 2 ||
14
+ !Object.hasOwn(value, 'authorization') ||
15
+ !Object.hasOwn(value, 'system'))
16
+ bad();
17
+ const authorization = value.authorization;
18
+ if (authorization === null ||
19
+ typeof authorization !== 'object' ||
20
+ Array.isArray(authorization))
21
+ bad();
22
+ const a = authorization;
23
+ if (Object.keys(a).length !== 3 ||
24
+ !Object.hasOwn(a, 'profile') ||
25
+ !Object.hasOwn(a, 'authority') ||
26
+ !Object.hasOwn(a, 'keyIndex') ||
27
+ typeof a.profile !== 'string' ||
28
+ !isAddress(a.profile) ||
29
+ typeof a.authority !== 'string' ||
30
+ !isAddress(a.authority) ||
31
+ isOffCurveAddress(a.authority) ||
32
+ !Number.isInteger(a.keyIndex) ||
33
+ typeof a.keyIndex !== 'number' ||
34
+ a.keyIndex < 0 ||
35
+ a.keyIndex > 65535 ||
36
+ typeof value.system !== 'string' ||
37
+ !isAddress(value.system))
38
+ bad();
39
+ return {
40
+ authorization: {
41
+ profile: a.profile,
42
+ authority: a.authority,
43
+ keyIndex: a.keyIndex,
44
+ },
45
+ system: value.system,
46
+ };
47
+ }
48
+ async function planRecovery(ctx, fleet, input, phase) {
49
+ const captured = options(input);
50
+ if (typeof fleet !== 'string' || !isAddress(fleet))
51
+ throw new InvalidActionInputError('fleet', fleet, 'a Fleet address', 'Pass the owned Fleet address to prepare recovery.');
52
+ const intent = {
53
+ phase,
54
+ fleet,
55
+ game: requireGameAddress(ctx),
56
+ ...captured.authorization,
57
+ system: captured.system,
58
+ };
59
+ const current = await resolveFleetRespawn(ctx, intent);
60
+ const inventory = current.inventory;
61
+ const cargo = inventory.cargo
62
+ .map((item) => `cargo ID ${item.cargoId}: ${item.amount} raw units`)
63
+ .join(', ') || 'empty';
64
+ const inventoryDisclosure = phase === 'start'
65
+ ? ` Inventory exposed to recovery: cargo hold [${cargo}]; ammunition (cargo ID ${inventory.ammunition.cargoId}): ${inventory.ammunition.amount} raw units; Fuel (cargo ID ${inventory.fuel.cargoId}): ${inventory.fuel.amount} raw units.`
66
+ : '';
67
+ const summary = `${phase === 'start' ? 'Start timed recovery for Idle' : 'Complete elapsed recovery for'} Fleet ${fleet} at faction CSS ${intent.system}. Observed recovery fee: ${current.recoveryFee} ATLAS Floyds (100,000,000 Floyds per ATLAS); Profile storage debit: ${current.profileDebit} lamports. These amounts are rechecked before signing, not atomic spending caps. Transaction fees are separate.${inventoryDisclosure} Recovery can destroy cargo or other assets; preservation of ships, crew and HP is not guaranteed. Simulate and inspect before signing. Refresh the Fleet after confirmation; completion is established only by Docked state at this CSS. Start and completion must be separate transactions.`;
68
+ return createPlan({
69
+ kind: `fleets.${phase}-respawn`,
70
+ summary,
71
+ preconditions: [
72
+ {
73
+ kind: 'fleet-respawn',
74
+ address: fleet,
75
+ game: intent.game,
76
+ profile: intent.profile,
77
+ authority: intent.authority,
78
+ keyIndex: intent.keyIndex,
79
+ system: intent.system,
80
+ phase,
81
+ fleetHash: current.fleetHash,
82
+ maximumRecoveryFee: current.recoveryFee,
83
+ maximumProfileDebit: current.profileDebit,
84
+ describes: 'Selected Fleet state and assets remain unchanged since planning; canonical faction CSS, direct permission, chain timer and funding remain valid within the reviewed amounts.',
85
+ },
86
+ ],
87
+ steps: [
88
+ {
89
+ instruction: current.instruction,
90
+ signers: [intent.authority],
91
+ describes: summary,
92
+ },
93
+ ],
94
+ });
95
+ }
96
+ /** Prepares explicit timed recovery for an owned Idle Fleet, including a zero-Fuel Fleet.
97
+ * Requires Character ATLAS for the current hull recovery fees. Never deposits funds,
98
+ * signs, submits, waits or automatically falls back from movement. Recovery may lose assets.
99
+ * @example
100
+ * ```ts
101
+ * declare const ctx: SageContext, fleet: Address, options: PlanFleetRespawnOptions;
102
+ * const plan = await planFleetStartRespawn(ctx, fleet, options);
103
+ * console.log(plan.describe());
104
+ * ```
105
+ */
106
+ export function planFleetStartRespawn(ctx, fleet, options) {
107
+ return planRecovery(ctx, fleet, options, 'start');
108
+ }
109
+ /** Prepares timed completion only after the stored Respawn end time according to chain Clock.
110
+ * Uses the explicit Respawn-to-Docked route; never pays to bypass the timer.
111
+ * Refresh confirmed state to establish arrival at the faction CSS; simulation is not confirmation.
112
+ * @example
113
+ * ```ts
114
+ * declare const ctx: SageContext, fleet: Address, options: PlanFleetRespawnOptions;
115
+ * const plan = await planFleetCompleteRespawn(ctx, fleet, options);
116
+ * console.log(plan.describe());
117
+ * ```
118
+ */
119
+ export function planFleetCompleteRespawn(ctx, fleet, options) {
120
+ return planRecovery(ctx, fleet, options, 'complete');
121
+ }
122
+ //# sourceMappingURL=respawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"respawn.js","sourceRoot":"","sources":["../../../src/fleets/actions/respawn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import type { EntityRef } from '../../client/refs.js';
4
+ import { type PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
5
+ import { type Plan } from '../../planning/index.js';
6
+ interface ShipImportStarbaseIntent {
7
+ readonly kind: 'starbasePlayer';
8
+ readonly address: Address;
9
+ readonly playerProfile: EntityRef<'profile'>;
10
+ readonly character: EntityRef<'character'>;
11
+ readonly system: EntityRef<'starSystem'>;
12
+ }
13
+ /** Exact whole ships to import under one explicit configuration ID.
14
+ * Optional escrow creation requires an explicit payer; it never registers onboarding accounts.
15
+ * @example
16
+ * ```ts
17
+ * declare const owner: Address;
18
+ * declare const authorization: PlanAuthorization;
19
+ * const options: PlanDepositShipsToGameOptions = { shipId: 1, amount: 2n, owner, authorization };
20
+ * ```
21
+ */
22
+ export interface PlanDepositShipsToGameOptions {
23
+ readonly shipId: number;
24
+ readonly amount: bigint;
25
+ readonly owner: Address;
26
+ readonly authorization: PlanAuthorization;
27
+ readonly source?: Address;
28
+ readonly escrowAccount?: {
29
+ readonly mode: 'create-if-missing';
30
+ readonly payer: Address;
31
+ };
32
+ }
33
+ /** Plans importing whole ship tokens into a registered player's CSS ship escrow.
34
+ * Requires direct Profile AUTH and token-owner authorization. The Profile vault
35
+ * funds any StarbasePlayer storage shortfall; an explicit ATA payer funds optional
36
+ * escrow creation. Fees are separate. No Fleet is created and no signer is retained.
37
+ * @example
38
+ * ```ts
39
+ * declare const ctx: SageContext;
40
+ * declare const starbase: import('@aephia/atlas-kit/starbases').StarbasePlayerSnapshot;
41
+ * declare const options: PlanDepositShipsToGameOptions;
42
+ * const plan = await planDepositShipsToGame(ctx, starbase, options);
43
+ * console.log(plan.describe());
44
+ * ```
45
+ */
46
+ export declare function planDepositShipsToGame(ctx: SageContext, starbase: ShipImportStarbaseIntent, options: PlanDepositShipsToGameOptions): Promise<Plan>;
47
+ export {};
48
+ //# sourceMappingURL=ship-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-import.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/ship-import.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkBtD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAkB1D,OAAO,EAEL,KAAK,IAAI,EAGV,MAAM,yBAAyB,CAAC;AAEjC,UAAU,wBAAwB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;CAC1C;AACD;;;;;;;;GAQG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AA2GD;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CAyUf"}
@@ -0,0 +1,330 @@
1
+ import { validateStarbaseSystem } from '../../internal/planning/starbase-system.js';
2
+ import { resolveShipImportFunding, validateShipImportFunding, } from '../../internal/planning/ship-import-funding.js';
3
+ import { isAddress, isOffCurveAddress } from '@solana/kit';
4
+ import { InvalidActionInputError } from '../../client/errors.js';
5
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
6
+ import { characterAccountDefinition, profileAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
7
+ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
8
+ import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
9
+ import { PLAYER_PROFILE_PROGRAM_ADDRESS } from '../../internal/c4/faction-enrollment.js';
10
+ import { requireGameAddress } from '../../internal/game-context.js';
11
+ import { adaptAddShipEscrowInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
12
+ import { hashAccountState } from '../../internal/planning/account-state.js';
13
+ import { readRent, readClock, RENT_ADDRESS, CLOCK_ADDRESS, } from '../../internal/planning/faction-enrollment.js';
14
+ import { deriveShipTokenAddress, validateShipMint, validateShipToken, failShipImport, ORIGINAL_TOKEN_PROGRAM, ATA_PROGRAM, SYSTEM_PROGRAM, } from '../../internal/planning/ship-token.js';
15
+ import { readFreshGameShipConfiguration } from '../../registry/ships.js';
16
+ import { createPlan, } from '../../planning/index.js';
17
+ function address(value) {
18
+ return typeof value === 'string' && isAddress(value);
19
+ }
20
+ function invalid(field, value, expected) {
21
+ throw new InvalidActionInputError(field, value, expected, 'Select an explicit ship configuration, positive bigint amount and address-only authorization before planning again.');
22
+ }
23
+ function validate(options) {
24
+ if (!options ||
25
+ typeof options !== 'object' ||
26
+ Array.isArray(options) ||
27
+ Object.keys(options).some((k) => ![
28
+ 'shipId',
29
+ 'amount',
30
+ 'owner',
31
+ 'authorization',
32
+ 'source',
33
+ 'escrowAccount',
34
+ ].includes(k)))
35
+ invalid('options', options, 'ship import options only');
36
+ if (typeof options.amount !== 'bigint' ||
37
+ options.amount <= 0n ||
38
+ options.amount > (1n << 64n) - 1n)
39
+ invalid('amount', options.amount, 'a positive u64 bigint');
40
+ if (typeof options.shipId !== 'number' ||
41
+ !Number.isInteger(options.shipId) ||
42
+ options.shipId < 0 ||
43
+ options.shipId > 65535)
44
+ invalid('shipId', options.shipId, 'an explicit u16 ship configuration ID');
45
+ if (!address(options.owner) || isOffCurveAddress(options.owner))
46
+ invalid('owner', options.owner, 'a directly signing token owner address');
47
+ if (options.source !== undefined && !address(options.source))
48
+ invalid('source', options.source, 'an existing token account address');
49
+ const a = options.authorization;
50
+ if (!a ||
51
+ typeof a !== 'object' ||
52
+ Array.isArray(a) ||
53
+ Object.keys(a).some((k) => !['profile', 'authority', 'keyIndex', 'certificate'].includes(k)) ||
54
+ !address(a.profile) ||
55
+ !address(a.authority) ||
56
+ isOffCurveAddress(a.authority) ||
57
+ (a.certificate !== undefined && !address(a.certificate)))
58
+ invalid('authorization', a, 'valid Profile, direct authority, keyIndex and optional certificate addresses');
59
+ validatePlanAuthorization(a);
60
+ const e = options.escrowAccount;
61
+ if (e !== undefined &&
62
+ (!e ||
63
+ typeof e !== 'object' ||
64
+ Array.isArray(e) ||
65
+ Object.keys(e).some((k) => !['mode', 'payer'].includes(k)) ||
66
+ e.mode !== 'create-if-missing' ||
67
+ !address(e.payer) ||
68
+ isOffCurveAddress(e.payer)))
69
+ invalid('escrowAccount', e, '{ mode: create-if-missing, payer: a directly signing address }');
70
+ }
71
+ function required(raw, account, role) {
72
+ return (raw ??
73
+ failShipImport(`${role} ${account} is missing. Complete onboarding or create the required account separately.`, account));
74
+ }
75
+ async function observe(raw, role) {
76
+ return {
77
+ kind: 'account-state',
78
+ address: raw.address,
79
+ dataHash: await hashAccountState(raw.owner, raw.data),
80
+ describes: `${role} ${raw.address} retains its observed owner and data; native balance is an observation, not reserved. Refresh and replan if it changes.`,
81
+ };
82
+ }
83
+ /** Plans importing whole ship tokens into a registered player's CSS ship escrow.
84
+ * Requires direct Profile AUTH and token-owner authorization. The Profile vault
85
+ * funds any StarbasePlayer storage shortfall; an explicit ATA payer funds optional
86
+ * escrow creation. Fees are separate. No Fleet is created and no signer is retained.
87
+ * @example
88
+ * ```ts
89
+ * declare const ctx: SageContext;
90
+ * declare const starbase: import('@aephia/atlas-kit/starbases').StarbasePlayerSnapshot;
91
+ * declare const options: PlanDepositShipsToGameOptions;
92
+ * const plan = await planDepositShipsToGame(ctx, starbase, options);
93
+ * console.log(plan.describe());
94
+ * ```
95
+ */
96
+ export async function planDepositShipsToGame(ctx, starbase, options) {
97
+ validate(options);
98
+ if (!starbase ||
99
+ starbase.kind !== 'starbasePlayer' ||
100
+ !address(starbase.address) ||
101
+ !address(starbase.system?.address) ||
102
+ !address(starbase.playerProfile?.address) ||
103
+ !address(starbase.character?.address))
104
+ invalid('starbase', starbase, 'a loaded StarbasePlayer snapshot');
105
+ // Capture caller-owned input before PDA derivation or the first asynchronous read.
106
+ // Plans must retain the validated intent even if the application edits its form.
107
+ options = {
108
+ ...options,
109
+ authorization: { ...options.authorization },
110
+ ...(options.escrowAccount
111
+ ? { escrowAccount: { ...options.escrowAccount } }
112
+ : {}),
113
+ };
114
+ starbase = {
115
+ kind: 'starbasePlayer',
116
+ address: starbase.address,
117
+ system: { ...starbase.system },
118
+ character: { ...starbase.character },
119
+ playerProfile: { ...starbase.playerProfile },
120
+ };
121
+ const { authorization, owner, shipId, amount } = options;
122
+ const game = requireGameAddress(ctx), character = await findCharacterPda(authorization.profile, game), player = await deriveStarbasePlayerAddress(starbase.system.address, character);
123
+ if (starbase.address !== player ||
124
+ starbase.character.address !== character ||
125
+ starbase.playerProfile.address !== authorization.profile)
126
+ failShipImport('The loaded StarbasePlayer must be the canonical registration for the authorized Profile and Character.', starbase.address);
127
+ const config = await readFreshGameShipConfiguration(ctx, shipId), mint = config.ship.mint;
128
+ const source = options.source ?? (await deriveShipTokenAddress(owner, mint)), escrow = await deriveShipTokenAddress(character, mint);
129
+ if (source === escrow)
130
+ failShipImport('Source and Character escrow must be different token accounts.', source);
131
+ const addresses = [
132
+ authorization.profile,
133
+ character,
134
+ player,
135
+ starbase.system.address,
136
+ mint,
137
+ source,
138
+ RENT_ADDRESS,
139
+ CLOCK_ADDRESS,
140
+ escrow,
141
+ owner,
142
+ ];
143
+ const values = await readContextRawAccounts(ctx, addresses);
144
+ const profileRaw = required(values[0], addresses[0], 'Profile'), characterRaw = required(values[1], character, 'Character'), playerRaw = required(values[2], player, 'StarbasePlayer'), systemRaw = required(values[3], addresses[3], 'System'), mintRaw = required(values[4], mint, 'Ship mint'), sourceRaw = required(values[5], source, 'Ship source'), rentRaw = required(values[6], RENT_ADDRESS, 'Rent sysvar'), clockRaw = required(values[7], CLOCK_ADDRESS, 'Clock sysvar');
145
+ const escrowRaw = values[8], ownerRaw = values[9];
146
+ for (const raw of [profileRaw, characterRaw, playerRaw, systemRaw])
147
+ if (raw.executable)
148
+ failShipImport('A gameplay prerequisite is executable rather than account state.', raw.address);
149
+ const p = profileAccountDefinition.decode(profileRaw), c = characterAccountDefinition.decode(characterRaw), s = starbasePlayerAccountDefinition.decode(playerRaw), w = starSystemAccountDefinition.decode(systemRaw);
150
+ if (c.playerProfile !== authorization.profile ||
151
+ c.game !== game ||
152
+ s.playerProfile !== authorization.profile ||
153
+ s.character !== character ||
154
+ s.system !== starbase.system.address ||
155
+ w.game !== game ||
156
+ (await deriveStarSystemAddress(game, w.systemId)) !==
157
+ starbase.system.address)
158
+ failShipImport('Fresh Character, StarbasePlayer and System relationships must match the configured Game and authorized Profile.', player);
159
+ const systemGuard = {
160
+ kind: 'starbase-system',
161
+ address: systemRaw.address,
162
+ game,
163
+ starbaseSequenceId: w.sequenceId,
164
+ requireCss: true,
165
+ describes: 'The canonical Star System retains its active Starbase and generation as a Central Space Station; unrelated shared activity may change.',
166
+ };
167
+ await validateStarbaseSystem(systemRaw, systemGuard);
168
+ const key = p.keys[authorization.keyIndex], now = readClock(clockRaw);
169
+ if (!key ||
170
+ key.address !== authorization.authority ||
171
+ key.scope !== PLAYER_PROFILE_PROGRAM_ADDRESS ||
172
+ (key.permissionsRaw & 1n) === 0n)
173
+ failShipImport('Ship import supports a direct Profile AUTH key. Select a matching authorized Profile key; delegated certificates and other permission scopes are not yet verified.', profileRaw.address);
174
+ if (key.expiresAtRaw >= 0n && key.expiresAtRaw < now)
175
+ failShipImport('The selected Profile key has expired. Choose a current AUTH key.', profileRaw.address);
176
+ if (ownerRaw &&
177
+ ownerRaw.data.length === 355 &&
178
+ (ownerRaw.owner === ORIGINAL_TOKEN_PROGRAM ||
179
+ ownerRaw.owner === 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'))
180
+ failShipImport('Token multisig owners are unsupported. Use a directly signing token owner.', owner);
181
+ validateShipMint(mintRaw);
182
+ const sourceAmount = validateShipToken(sourceRaw, mint, owner);
183
+ if (sourceAmount < amount)
184
+ failShipImport(`Source has ${sourceAmount} ships but import requests ${amount}. Reduce the amount.`, source);
185
+ const existingCredit = s.shipsInEscrow.find((item) => item.shipId === shipId);
186
+ if ((existingCredit?.quantityRaw ?? 0n) + amount > (1n << 64n) - 1n)
187
+ failShipImport('The selected ship inventory would exceed u64 capacity. Reduce the amount.', player);
188
+ const fundingIntent = {
189
+ address: player,
190
+ game,
191
+ profile: authorization.profile,
192
+ system: starbase.system.address,
193
+ shipId,
194
+ };
195
+ const resolvedFunding = await resolveShipImportFunding(fundingIntent);
196
+ const { profileDebit: growthFunding } = validateShipImportFunding(fundingIntent, resolvedFunding, new Map(addresses.map((address, index) => [address, values[index]])));
197
+ const minimum = readRent(rentRaw);
198
+ const preconditions = [
199
+ systemGuard,
200
+ {
201
+ kind: 'ship-import-funding',
202
+ ...fundingIntent,
203
+ maximumProfileDebit: growthFunding,
204
+ describes: 'Profile reserve and actual StarbasePlayer storage shortfall remain affordable within the approved debit ceiling; target prefunding may reduce the debit.',
205
+ },
206
+ {
207
+ kind: 'token-mint',
208
+ address: mintRaw.address,
209
+ decimals: 0,
210
+ describes: `Mint ${mintRaw.address} remains a valid initialized original Token Mint with unchanged decimals; supply and authorities may change.`,
211
+ },
212
+ {
213
+ kind: 'game-ship-config',
214
+ address: game,
215
+ shipId,
216
+ configHash: config.configHash,
217
+ describes: 'The selected ship configuration remains unchanged; unrelated Game definitions may change.',
218
+ },
219
+ {
220
+ kind: 'token-account',
221
+ address: source,
222
+ mint,
223
+ owner,
224
+ minimumBalance: amount,
225
+ describes: 'Source remains an initialized unfrozen original Token account with sufficient whole ships.',
226
+ },
227
+ ...(await Promise.all([
228
+ [profileRaw, 'Profile authorization'],
229
+ [characterRaw, 'Character identity'],
230
+ [playerRaw, 'Player ship inventory'],
231
+ [rentRaw, 'Rent pricing'],
232
+ ...(ownerRaw ? [[ownerRaw, 'Token owner identity']] : []),
233
+ ].map(([raw, role]) => observe(raw, role)))),
234
+ ];
235
+ if (!ownerRaw)
236
+ preconditions.push({
237
+ kind: 'system-account-or-absent',
238
+ address: owner,
239
+ describes: 'The token owner wallet may remain absent or receive native funding as an empty, non-executable System account.',
240
+ });
241
+ const steps = [];
242
+ let ataFunding = 0n;
243
+ if (escrowRaw) {
244
+ const balance = validateShipToken(escrowRaw, mint, character);
245
+ if (balance + amount > (1n << 64n) - 1n)
246
+ failShipImport('Escrow token balance would exceed u64 capacity. Reduce the amount.', escrow);
247
+ preconditions.push({
248
+ kind: 'token-account',
249
+ address: escrow,
250
+ mint,
251
+ owner: character,
252
+ minimumBalance: 0n,
253
+ describes: 'Existing Character escrow remains initialized and unfrozen with the selected mint and Character owner; incoming tokens are allowed.',
254
+ });
255
+ }
256
+ else {
257
+ const creation = options.escrowAccount;
258
+ if (!creation)
259
+ failShipImport('Character ship escrow is missing. Explicitly select escrowAccount create-if-missing with a payer or create it separately.', escrow);
260
+ const extraAddresses = [
261
+ creation.payer,
262
+ ATA_PROGRAM,
263
+ SYSTEM_PROGRAM,
264
+ ORIGINAL_TOKEN_PROGRAM,
265
+ ];
266
+ const extraValues = await readContextRawAccounts(ctx, extraAddresses);
267
+ const extras = extraAddresses.map((a, i) => required(extraValues[i], a, 'ATA prerequisite'));
268
+ const payer = extras[0];
269
+ ataFunding = minimum(165);
270
+ if (payer.owner !== SYSTEM_PROGRAM ||
271
+ payer.executable ||
272
+ payer.data.length !== 0 ||
273
+ payer.lamports < ataFunding)
274
+ failShipImport(`ATA payer must be a System wallet with at least ${ataFunding} native lamports for escrow storage plus separate fees.`, creation.payer);
275
+ if (extras.slice(1).some((a) => !a.executable))
276
+ failShipImport('ATA creation requires executable associated-token, System and original Token programs.', ATA_PROGRAM);
277
+ preconditions.push(...(await Promise.all(extras.map((raw, i) => observe(raw, [
278
+ 'ATA payer identity',
279
+ 'Associated-token program',
280
+ 'System program',
281
+ 'Token program',
282
+ ][i])))), {
283
+ kind: 'token-account-or-absent',
284
+ address: escrow,
285
+ mint,
286
+ owner: character,
287
+ describes: 'Explicit idempotent creation permits an absent or already valid canonical Character ATA.',
288
+ });
289
+ steps.push({
290
+ instruction: {
291
+ programAddress: ATA_PROGRAM,
292
+ accounts: [
293
+ { address: creation.payer, role: 3 },
294
+ { address: escrow, role: 1 },
295
+ { address: character, role: 0 },
296
+ { address: mint, role: 0 },
297
+ { address: SYSTEM_PROGRAM, role: 0 },
298
+ { address: ORIGINAL_TOKEN_PROGRAM, role: 0 },
299
+ ],
300
+ data: Uint8Array.of(1),
301
+ },
302
+ signers: [creation.payer],
303
+ describes: `Create the canonical Character ship ATA idempotently; payer ${creation.payer} provides observed storage funding ${ataFunding} native lamports, separate from transaction fees.`,
304
+ });
305
+ }
306
+ const describes = `Import ${amount} whole ships for configuration ${shipId} (mint ${mint}): source ${source} decreases by ${amount}, Character escrow ${escrow} increases by ${amount}, and StarbasePlayer ${player} shipsInEscrow[${shipId}] increases by ${amount}. Profile authority ${authorization.authority} and token owner ${owner} authorize import. Profile ${authorization.profile} provides observed StarbasePlayer storage funding ${growthFunding} native lamports; ATA storage funding ${ataFunding} and execution fees are separate. The actual Profile debit and its rent reserve are rechecked before signing within the approved storage ceiling; compatible creation/assembly debits are combined per Profile. Different ship configurations for one StarbasePlayer require separate confirmed imports. Funding is not reserved; permissions, current access and outcomes remain chain-authoritative. Simulate before signing and verify all three balances after confirmation; never automatically retry an unknown outcome. Import does not create a Fleet. System identity, active Starbase generation and applicable CSS requirements are rechecked before signing; unrelated System combat, shield, health and hab activity is not equality-bound. Execution access checks remain chain-authoritative, not a client-side atomicity guarantee. Mint supply and authorities may change; initialized original Token mint layout and decimals are rechecked before signing.${ownerRaw ? '' : ' An absent token owner wallet may receive native funding as an empty, non-executable System account.'}`;
307
+ steps.push({
308
+ instruction: adaptAddShipEscrowInstruction({
309
+ authorization,
310
+ owner,
311
+ character,
312
+ source,
313
+ escrow,
314
+ system: starbase.system.address,
315
+ starbasePlayer: player,
316
+ game,
317
+ amount,
318
+ shipId,
319
+ }),
320
+ signers: [...new Set([authorization.authority, owner])],
321
+ describes,
322
+ });
323
+ return createPlan({
324
+ kind: 'fleet.ship-import',
325
+ summary: describes,
326
+ preconditions,
327
+ steps,
328
+ });
329
+ }
330
+ //# sourceMappingURL=ship-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-import.js","sourceRoot":"","sources":["../../../src/fleets/actions/ship-import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import { type Plan } from '../../planning/index.js';
4
+ /** One explicitly scoped key and its exact unsigned 64-bit permission mask.
5
+ * `expiresAt` is a nonnegative Unix timestamp in seconds; omission means no expiry.
6
+ * Profile AUTH keys must omit expiry and must be directly signing addresses.
7
+ * @example
8
+ * ```ts
9
+ * declare const authority: Address;
10
+ * declare const playerProfileProgram: Address;
11
+ * const key: ProfileCreationKeyInput = {address: authority, scope: playerProfileProgram, permissionsRaw: 1n};
12
+ * ```
13
+ */
14
+ export interface ProfileCreationKeyInput {
15
+ readonly address: Address;
16
+ readonly scope: Address;
17
+ readonly permissionsRaw: bigint;
18
+ readonly expiresAt?: bigint;
19
+ }
20
+ /** Explicit storage funder, ordered keys, and protected Profile update threshold.
21
+ * No permissions or threshold are selected automatically.
22
+ * @example
23
+ * ```ts
24
+ * declare const funder: Address;
25
+ * declare const keys: readonly ProfileCreationKeyInput[];
26
+ * const options: PlanCreateProfileOptions = {funder, keys, keyThreshold: 1};
27
+ * ```
28
+ */
29
+ export interface PlanCreateProfileOptions {
30
+ readonly funder: Address;
31
+ readonly keys: readonly ProfileCreationKeyInput[];
32
+ readonly keyThreshold: number;
33
+ }
34
+ /** Plans a new signer-created Profile with explicit scoped permissions.
35
+ * The new Profile, storage funder, and every Player Profile AUTH key sign creation,
36
+ * even when the editing threshold is lower. Other keys remain readonly.
37
+ * The new Profile signer is needed only for creation unless explicitly listed
38
+ * among the initial authority keys; creating the account does not grant it AUTH.
39
+ * The threshold governs protected Profile updates; it is not a gameplay-wide multisig policy.
40
+ * Existing target accounts and a Profile address equal to its funder are rejected.
41
+ * No Game load, onboarding, funding top-up, key generation or signing is implicit.
42
+ * Storage rent, balances and final creation remain chain-authoritative. Simulate
43
+ * before requesting signatures; after confirmed execution, read `getProfile` and
44
+ * verify the exact keys, scopes, permission masks and threshold.
45
+ * @example
46
+ * ```ts
47
+ * import {planCreateProfile} from '@aephia/atlas-kit/identity/actions';
48
+ * declare const ctx: SageContext;
49
+ * declare const profileAddress: Address;
50
+ * declare const options: PlanCreateProfileOptions;
51
+ * const plan = await planCreateProfile(ctx, profileAddress, options);
52
+ * console.log(plan.summary, plan.requiredSigners);
53
+ * ```
54
+ */
55
+ export declare function planCreateProfile(ctx: SageContext, profileAddress: Address, input: PlanCreateProfileOptions): Promise<Plan>;
56
+ //# sourceMappingURL=create-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-profile.d.ts","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAyID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA0Cf"}