@aephia/atlas-kit 0.6.0-next.11 → 0.6.0-next.110

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 (686) 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 +26 -115
  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 +15 -37
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/wallet-context.d.ts +51 -2
  10. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  11. package/dist/cargo/actions/wallet-context.js +125 -2
  12. package/dist/cargo/actions/wallet-context.js.map +1 -1
  13. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  14. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  15. package/dist/cargo/actions/wallet-token.js +0 -53
  16. package/dist/cargo/actions/wallet-token.js.map +1 -1
  17. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  18. package/dist/cargo/actions/withdrawal.js +37 -162
  19. package/dist/cargo/actions/withdrawal.js.map +1 -1
  20. package/dist/claim-stakes/actions/index.d.ts +13 -0
  21. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  22. package/dist/claim-stakes/actions/index.js +373 -544
  23. package/dist/claim-stakes/actions/index.js.map +1 -1
  24. package/dist/claim-stakes/index.d.ts +14 -0
  25. package/dist/claim-stakes/index.d.ts.map +1 -1
  26. package/dist/claim-stakes/index.js +23 -2
  27. package/dist/claim-stakes/index.js.map +1 -1
  28. package/dist/client/context.d.ts.map +1 -1
  29. package/dist/client/context.js +1 -1
  30. package/dist/client/context.js.map +1 -1
  31. package/dist/client/contracts.d.ts +16 -6
  32. package/dist/client/contracts.d.ts.map +1 -1
  33. package/dist/client/errors.d.ts +6 -2
  34. package/dist/client/errors.d.ts.map +1 -1
  35. package/dist/client/errors.js +31 -1
  36. package/dist/client/errors.js.map +1 -1
  37. package/dist/client/index.d.ts +35 -0
  38. package/dist/client/index.d.ts.map +1 -1
  39. package/dist/client/index.js +35 -0
  40. package/dist/client/index.js.map +1 -1
  41. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  42. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  43. package/dist/client/rpc-subscription-provider.js +190 -0
  44. package/dist/client/rpc-subscription-provider.js.map +1 -0
  45. package/dist/combat/actions/index.d.ts +2 -2
  46. package/dist/combat/actions/index.d.ts.map +1 -1
  47. package/dist/combat/actions/index.js +192 -224
  48. package/dist/combat/actions/index.js.map +1 -1
  49. package/dist/combat/index.d.ts +4 -3
  50. package/dist/combat/index.d.ts.map +1 -1
  51. package/dist/combat/index.js +3 -2
  52. package/dist/combat/index.js.map +1 -1
  53. package/dist/crafting/actions/index.d.ts +11 -0
  54. package/dist/crafting/actions/index.d.ts.map +1 -1
  55. package/dist/crafting/actions/index.js +175 -283
  56. package/dist/crafting/actions/index.js.map +1 -1
  57. package/dist/crafting/index.d.ts +33 -3
  58. package/dist/crafting/index.d.ts.map +1 -1
  59. package/dist/crafting/index.js +45 -16
  60. package/dist/crafting/index.js.map +1 -1
  61. package/dist/factions/actions/index.d.ts +1 -0
  62. package/dist/factions/actions/index.d.ts.map +1 -1
  63. package/dist/factions/actions/index.js +2 -1
  64. package/dist/factions/actions/index.js.map +1 -1
  65. package/dist/factions/index.d.ts +1 -1
  66. package/dist/factions/index.d.ts.map +1 -1
  67. package/dist/factions/index.js +14 -8
  68. package/dist/factions/index.js.map +1 -1
  69. package/dist/factions/profile-faction.d.ts +20 -8
  70. package/dist/factions/profile-faction.d.ts.map +1 -1
  71. package/dist/factions/profile-faction.js +20 -8
  72. package/dist/factions/profile-faction.js.map +1 -1
  73. package/dist/fleets/actions/add-ship.d.ts +35 -0
  74. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  75. package/dist/fleets/actions/add-ship.js +149 -0
  76. package/dist/fleets/actions/add-ship.js.map +1 -0
  77. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  78. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  79. package/dist/fleets/actions/create-fleet.js +138 -0
  80. package/dist/fleets/actions/create-fleet.js.map +1 -0
  81. package/dist/fleets/actions/crew-transfer.d.ts +41 -0
  82. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  83. package/dist/fleets/actions/crew-transfer.js +114 -0
  84. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  85. package/dist/fleets/actions/dock-bounds.d.ts +38 -0
  86. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
  87. package/dist/fleets/actions/dock-bounds.js +46 -0
  88. package/dist/fleets/actions/dock-bounds.js.map +1 -0
  89. package/dist/fleets/actions/index.d.ts +37 -16
  90. package/dist/fleets/actions/index.d.ts.map +1 -1
  91. package/dist/fleets/actions/index.js +303 -284
  92. package/dist/fleets/actions/index.js.map +1 -1
  93. package/dist/fleets/actions/respawn.d.ts +38 -0
  94. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  95. package/dist/fleets/actions/respawn.js +122 -0
  96. package/dist/fleets/actions/respawn.js.map +1 -0
  97. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  98. package/dist/fleets/actions/ship-import.js +59 -76
  99. package/dist/fleets/actions/ship-import.js.map +1 -1
  100. package/dist/fleets/cooldown.d.ts +44 -0
  101. package/dist/fleets/cooldown.d.ts.map +1 -0
  102. package/dist/fleets/cooldown.js +43 -0
  103. package/dist/fleets/cooldown.js.map +1 -0
  104. package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
  105. package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
  106. package/dist/fleets/coordinate-warp-estimate.js +46 -0
  107. package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
  108. package/dist/fleets/index.d.ts +35 -0
  109. package/dist/fleets/index.d.ts.map +1 -1
  110. package/dist/fleets/index.js +52 -2
  111. package/dist/fleets/index.js.map +1 -1
  112. package/dist/fleets/movement-arithmetic.d.ts +21 -0
  113. package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
  114. package/dist/fleets/movement-arithmetic.js +41 -0
  115. package/dist/fleets/movement-arithmetic.js.map +1 -0
  116. package/dist/fleets/subwarp-estimate.d.ts +70 -0
  117. package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
  118. package/dist/fleets/subwarp-estimate.js +38 -0
  119. package/dist/fleets/subwarp-estimate.js.map +1 -0
  120. package/dist/fleets/travel-profile.d.ts +102 -0
  121. package/dist/fleets/travel-profile.d.ts.map +1 -0
  122. package/dist/fleets/travel-profile.js +120 -0
  123. package/dist/fleets/travel-profile.js.map +1 -0
  124. package/dist/fleets/warp-lane-estimate.d.ts +59 -0
  125. package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
  126. package/dist/fleets/warp-lane-estimate.js +36 -0
  127. package/dist/fleets/warp-lane-estimate.js.map +1 -0
  128. package/dist/fleets/warp-lane-policy.d.ts +68 -0
  129. package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
  130. package/dist/fleets/warp-lane-policy.js +91 -0
  131. package/dist/fleets/warp-lane-policy.js.map +1 -0
  132. package/dist/fleets/warp-lane-toll.d.ts +55 -0
  133. package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
  134. package/dist/fleets/warp-lane-toll.js +79 -0
  135. package/dist/fleets/warp-lane-toll.js.map +1 -0
  136. package/dist/identity/actions/index.d.ts +3 -3
  137. package/dist/identity/actions/index.d.ts.map +1 -1
  138. package/dist/identity/actions/index.js +50 -28
  139. package/dist/identity/actions/index.js.map +1 -1
  140. package/dist/identity/index.d.ts +12 -2
  141. package/dist/identity/index.d.ts.map +1 -1
  142. package/dist/identity/index.js +10 -1
  143. package/dist/identity/index.js.map +1 -1
  144. package/dist/identity/permissions.d.ts +11 -2
  145. package/dist/identity/permissions.d.ts.map +1 -1
  146. package/dist/identity/permissions.js +13 -4
  147. package/dist/identity/permissions.js.map +1 -1
  148. package/dist/identity/research-state.d.ts +60 -0
  149. package/dist/identity/research-state.d.ts.map +1 -0
  150. package/dist/identity/research-state.js +68 -0
  151. package/dist/identity/research-state.js.map +1 -0
  152. package/dist/index.d.ts +24 -0
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +20 -3
  155. package/dist/index.js.map +1 -1
  156. package/dist/internal/c4/account-decoding.d.ts +12 -0
  157. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  158. package/dist/internal/c4/account-decoding.js +36 -0
  159. package/dist/internal/c4/account-decoding.js.map +1 -0
  160. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  161. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  162. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  163. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  164. package/dist/internal/c4/character-modifier.d.ts +1 -1
  165. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  166. package/dist/internal/c4/character-registration.d.ts +2 -0
  167. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  168. package/dist/internal/c4/character-registration.js +2 -0
  169. package/dist/internal/c4/character-registration.js.map +1 -1
  170. package/dist/internal/c4/character.d.ts +155 -0
  171. package/dist/internal/c4/character.d.ts.map +1 -0
  172. package/dist/internal/c4/character.js +79 -0
  173. package/dist/internal/c4/character.js.map +1 -0
  174. package/dist/internal/c4/claim-stake-configuration.js +4 -2
  175. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  176. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -4
  177. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  178. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  179. package/dist/internal/c4/claim-stake.d.ts +4 -27
  180. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  181. package/dist/internal/c4/claim-stake.js +30 -41
  182. package/dist/internal/c4/claim-stake.js.map +1 -1
  183. package/dist/internal/c4/combat.d.ts +1 -82
  184. package/dist/internal/c4/combat.d.ts.map +1 -1
  185. package/dist/internal/c4/combat.js +10 -171
  186. package/dist/internal/c4/combat.js.map +1 -1
  187. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  188. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  189. package/dist/internal/c4/crafting-process-codec.js +34 -0
  190. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  191. package/dist/internal/c4/crafting.d.ts +25 -33
  192. package/dist/internal/c4/crafting.d.ts.map +1 -1
  193. package/dist/internal/c4/crafting.js +61 -49
  194. package/dist/internal/c4/crafting.js.map +1 -1
  195. package/dist/internal/c4/currency-cache.d.ts +6 -0
  196. package/dist/internal/c4/currency-cache.d.ts.map +1 -0
  197. package/dist/internal/c4/currency-cache.js +30 -0
  198. package/dist/internal/c4/currency-cache.js.map +1 -0
  199. package/dist/internal/c4/docking-funding.d.ts +4 -0
  200. package/dist/internal/c4/docking-funding.d.ts.map +1 -0
  201. package/dist/internal/c4/docking-funding.js +11 -0
  202. package/dist/internal/c4/docking-funding.js.map +1 -0
  203. package/dist/internal/c4/faction-adapter.d.ts +12 -0
  204. package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
  205. package/dist/internal/c4/faction-adapter.js +52 -0
  206. package/dist/internal/c4/faction-adapter.js.map +1 -0
  207. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  208. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  209. package/dist/internal/c4/faction-epoch-meter.js +31 -0
  210. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  211. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  212. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  213. package/dist/internal/c4/faction-treasury.js +48 -0
  214. package/dist/internal/c4/faction-treasury.js.map +1 -0
  215. package/dist/internal/c4/faction.d.ts +21 -0
  216. package/dist/internal/c4/faction.d.ts.map +1 -0
  217. package/dist/internal/c4/faction.js +23 -0
  218. package/dist/internal/c4/faction.js.map +1 -0
  219. package/dist/internal/c4/factions.d.ts +9 -57
  220. package/dist/internal/c4/factions.d.ts.map +1 -1
  221. package/dist/internal/c4/factions.js +29 -156
  222. package/dist/internal/c4/factions.js.map +1 -1
  223. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  224. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  225. package/dist/internal/c4/fleet-arrival.js +42 -0
  226. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  227. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  228. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  229. package/dist/internal/c4/fleet-creation.js +180 -0
  230. package/dist/internal/c4/fleet-creation.js.map +1 -0
  231. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  232. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  233. package/dist/internal/c4/fleet-crew-binding.js +20 -3
  234. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  235. package/dist/internal/c4/fleet-respawn.d.ts +17 -0
  236. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  237. package/dist/internal/c4/fleet-respawn.js +62 -0
  238. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  239. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  240. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  241. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  242. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  243. package/dist/internal/c4/fleet.d.ts +45 -19
  244. package/dist/internal/c4/fleet.d.ts.map +1 -1
  245. package/dist/internal/c4/fleet.js +37 -29
  246. package/dist/internal/c4/fleet.js.map +1 -1
  247. package/dist/internal/c4/game-definition-layout.d.ts +2 -0
  248. package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
  249. package/dist/internal/c4/game-definition-layout.js +4 -0
  250. package/dist/internal/c4/game-definition-layout.js.map +1 -1
  251. package/dist/internal/c4/game.d.ts +47 -12
  252. package/dist/internal/c4/game.d.ts.map +1 -1
  253. package/dist/internal/c4/game.js +110 -21
  254. package/dist/internal/c4/game.js.map +1 -1
  255. package/dist/internal/c4/identity.d.ts +2 -152
  256. package/dist/internal/c4/identity.d.ts.map +1 -1
  257. package/dist/internal/c4/identity.js +6 -110
  258. package/dist/internal/c4/identity.js.map +1 -1
  259. package/dist/internal/c4/local-market-order.d.ts +31 -0
  260. package/dist/internal/c4/local-market-order.d.ts.map +1 -0
  261. package/dist/internal/c4/local-market-order.js +47 -0
  262. package/dist/internal/c4/local-market-order.js.map +1 -0
  263. package/dist/internal/c4/loot-layout.js +1 -1
  264. package/dist/internal/c4/loot-layout.js.map +1 -1
  265. package/dist/internal/c4/loot.d.ts +58 -0
  266. package/dist/internal/c4/loot.d.ts.map +1 -0
  267. package/dist/internal/c4/loot.js +130 -0
  268. package/dist/internal/c4/loot.js.map +1 -0
  269. package/dist/internal/c4/loyalty.d.ts +0 -27
  270. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  271. package/dist/internal/c4/loyalty.js +14 -43
  272. package/dist/internal/c4/loyalty.js.map +1 -1
  273. package/dist/internal/c4/market.d.ts +2 -38
  274. package/dist/internal/c4/market.d.ts.map +1 -1
  275. package/dist/internal/c4/market.js +13 -51
  276. package/dist/internal/c4/market.js.map +1 -1
  277. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  278. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  279. package/dist/internal/c4/mining-instructions.js +3 -0
  280. package/dist/internal/c4/mining-instructions.js.map +1 -0
  281. package/dist/internal/c4/open-signal.d.ts +8 -0
  282. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  283. package/dist/internal/c4/open-signal.js +37 -0
  284. package/dist/internal/c4/open-signal.js.map +1 -0
  285. package/dist/internal/c4/pda.js +1 -1
  286. package/dist/internal/c4/pda.js.map +1 -1
  287. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  288. package/dist/internal/c4/profile-faction.js +11 -21
  289. package/dist/internal/c4/profile-faction.js.map +1 -1
  290. package/dist/internal/c4/profile-permissions.d.ts +5 -3
  291. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  292. package/dist/internal/c4/profile-permissions.js +61 -8
  293. package/dist/internal/c4/profile-permissions.js.map +1 -1
  294. package/dist/internal/c4/region-geometry.d.ts +8 -0
  295. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  296. package/dist/internal/c4/region-geometry.js +43 -0
  297. package/dist/internal/c4/region-geometry.js.map +1 -0
  298. package/dist/internal/c4/rewards.d.ts +1 -61
  299. package/dist/internal/c4/rewards.d.ts.map +1 -1
  300. package/dist/internal/c4/rewards.js +14 -115
  301. package/dist/internal/c4/rewards.js.map +1 -1
  302. package/dist/internal/c4/runtime-bindings.d.ts +4 -0
  303. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  304. package/dist/internal/c4/runtime-bindings.js +4 -0
  305. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  306. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  307. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  308. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  309. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  310. package/dist/internal/c4/scan-lifecycle.d.ts +306 -0
  311. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  312. package/dist/internal/c4/scan-lifecycle.js +261 -0
  313. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  314. package/dist/internal/c4/scanning.d.ts +1 -28
  315. package/dist/internal/c4/scanning.d.ts.map +1 -1
  316. package/dist/internal/c4/scanning.js +7 -36
  317. package/dist/internal/c4/scanning.js.map +1 -1
  318. package/dist/internal/c4/ship-import.d.ts +4 -0
  319. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  320. package/dist/internal/c4/ship-import.js +13 -0
  321. package/dist/internal/c4/ship-import.js.map +1 -0
  322. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  323. package/dist/internal/c4/ship-stats.js +25 -21
  324. package/dist/internal/c4/ship-stats.js.map +1 -1
  325. package/dist/internal/c4/starbase.d.ts +0 -32
  326. package/dist/internal/c4/starbase.d.ts.map +1 -1
  327. package/dist/internal/c4/starbase.js +12 -62
  328. package/dist/internal/c4/starbase.js.map +1 -1
  329. package/dist/internal/c4/world.d.ts +36 -7
  330. package/dist/internal/c4/world.d.ts.map +1 -1
  331. package/dist/internal/c4/world.js +67 -48
  332. package/dist/internal/c4/world.js.map +1 -1
  333. package/dist/internal/cargo.d.ts +2 -0
  334. package/dist/internal/cargo.d.ts.map +1 -1
  335. package/dist/internal/cargo.js +8 -0
  336. package/dist/internal/cargo.js.map +1 -1
  337. package/dist/internal/fleet.d.ts +1 -0
  338. package/dist/internal/fleet.d.ts.map +1 -1
  339. package/dist/internal/fleet.js +3 -1
  340. package/dist/internal/fleet.js.map +1 -1
  341. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  342. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  343. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  344. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  345. package/dist/internal/planning/action-runtime.d.ts +38 -0
  346. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  347. package/dist/internal/planning/action-runtime.js +63 -0
  348. package/dist/internal/planning/action-runtime.js.map +1 -0
  349. package/dist/internal/planning/arrival-guards.d.ts +19 -0
  350. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  351. package/dist/internal/planning/arrival-guards.js +171 -0
  352. package/dist/internal/planning/arrival-guards.js.map +1 -0
  353. package/dist/internal/planning/authorization-adapter.d.ts +45 -37
  354. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  355. package/dist/internal/planning/authorization-adapter.js +165 -76
  356. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  357. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  358. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  359. package/dist/internal/planning/character-registration-guard.js +58 -0
  360. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  361. package/dist/internal/planning/character-registration.d.ts +23 -0
  362. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  363. package/dist/internal/planning/character-registration.js +87 -0
  364. package/dist/internal/planning/character-registration.js.map +1 -0
  365. package/dist/internal/planning/currency-cache-guard.d.ts +4 -0
  366. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
  367. package/dist/internal/planning/currency-cache-guard.js +32 -0
  368. package/dist/internal/planning/currency-cache-guard.js.map +1 -0
  369. package/dist/internal/planning/democracy-history.d.ts +50 -0
  370. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  371. package/dist/internal/planning/democracy-history.js +198 -0
  372. package/dist/internal/planning/democracy-history.js.map +1 -0
  373. package/dist/internal/planning/faction-enrollment.d.ts +0 -2
  374. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  375. package/dist/internal/planning/faction-enrollment.js +1 -22
  376. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  377. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  378. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  379. package/dist/internal/planning/faction-trade-guards.js +15 -0
  380. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  381. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  382. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  383. package/dist/internal/planning/faction-trade-state.js +43 -0
  384. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  385. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  386. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  387. package/dist/internal/planning/fleet-arrival.js +106 -0
  388. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  389. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  390. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  391. package/dist/internal/planning/fleet-attack-xp.js +110 -0
  392. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  393. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  394. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  395. package/dist/internal/planning/fleet-creation.js +109 -0
  396. package/dist/internal/planning/fleet-creation.js.map +1 -0
  397. package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
  398. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  399. package/dist/internal/planning/fleet-crew-guard.js +47 -0
  400. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  401. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  402. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  403. package/dist/internal/planning/fleet-crew-transfer.js +132 -0
  404. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  405. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +42 -0
  406. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
  407. package/dist/internal/planning/fleet-dock-funding-guard.js +208 -0
  408. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
  409. package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
  410. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
  411. package/dist/internal/planning/fleet-dock-funding.js +154 -0
  412. package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
  413. package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
  414. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
  415. package/dist/internal/planning/fleet-docking-guard.js +42 -0
  416. package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
  417. package/dist/internal/planning/fleet-docking.d.ts +10 -0
  418. package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
  419. package/dist/internal/planning/fleet-docking.js +85 -0
  420. package/dist/internal/planning/fleet-docking.js.map +1 -0
  421. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  422. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  423. package/dist/internal/planning/fleet-respawn.js +167 -0
  424. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  425. package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
  426. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  427. package/dist/internal/planning/fleet-ship-assembly.js +138 -0
  428. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  429. package/dist/internal/planning/fleet-state.d.ts +25 -0
  430. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  431. package/dist/internal/planning/fleet-state.js +28 -0
  432. package/dist/internal/planning/fleet-state.js.map +1 -0
  433. package/dist/internal/planning/governance-fees.d.ts +64 -0
  434. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  435. package/dist/internal/planning/governance-fees.js +239 -0
  436. package/dist/internal/planning/governance-fees.js.map +1 -0
  437. package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
  438. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
  439. package/dist/internal/planning/local-market-order-funding.js +127 -0
  440. package/dist/internal/planning/local-market-order-funding.js.map +1 -0
  441. package/dist/internal/planning/local-market-order.d.ts +40 -0
  442. package/dist/internal/planning/local-market-order.d.ts.map +1 -0
  443. package/dist/internal/planning/local-market-order.js +138 -0
  444. package/dist/internal/planning/local-market-order.js.map +1 -0
  445. package/dist/internal/planning/mining-stop.d.ts +14 -0
  446. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  447. package/dist/internal/planning/mining-stop.js +41 -0
  448. package/dist/internal/planning/mining-stop.js.map +1 -0
  449. package/dist/internal/planning/movement-character.d.ts +7 -0
  450. package/dist/internal/planning/movement-character.d.ts.map +1 -0
  451. package/dist/internal/planning/movement-character.js +41 -0
  452. package/dist/internal/planning/movement-character.js.map +1 -0
  453. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  454. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  455. package/dist/internal/planning/movement-xp-guard.js +103 -0
  456. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  457. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  458. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  459. package/dist/internal/planning/open-signal-guard.js +31 -0
  460. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  461. package/dist/internal/planning/open-signal.d.ts +31 -0
  462. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  463. package/dist/internal/planning/open-signal.js +86 -0
  464. package/dist/internal/planning/open-signal.js.map +1 -0
  465. package/dist/internal/planning/original-token.d.ts +34 -0
  466. package/dist/internal/planning/original-token.d.ts.map +1 -0
  467. package/dist/internal/planning/original-token.js +98 -0
  468. package/dist/internal/planning/original-token.js.map +1 -0
  469. package/dist/internal/planning/plan-fields.d.ts +59 -0
  470. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  471. package/dist/internal/planning/plan-fields.js +153 -0
  472. package/dist/internal/planning/plan-fields.js.map +1 -0
  473. package/dist/internal/planning/plan-guards.d.ts +4 -0
  474. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  475. package/dist/internal/planning/plan-guards.js +168 -0
  476. package/dist/internal/planning/plan-guards.js.map +1 -0
  477. package/dist/internal/planning/recipe-state.d.ts +6 -0
  478. package/dist/internal/planning/recipe-state.d.ts.map +1 -0
  479. package/dist/internal/planning/recipe-state.js +20 -0
  480. package/dist/internal/planning/recipe-state.js.map +1 -0
  481. package/dist/internal/planning/rent.d.ts +19 -0
  482. package/dist/internal/planning/rent.d.ts.map +1 -0
  483. package/dist/internal/planning/rent.js +35 -0
  484. package/dist/internal/planning/rent.js.map +1 -0
  485. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  486. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  487. package/dist/internal/planning/respawn-guards.js +41 -0
  488. package/dist/internal/planning/respawn-guards.js.map +1 -0
  489. package/dist/internal/planning/runtime-guards.d.ts +41 -0
  490. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  491. package/dist/internal/planning/runtime-guards.js +635 -0
  492. package/dist/internal/planning/runtime-guards.js.map +1 -0
  493. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  494. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  495. package/dist/internal/planning/scan-completion-guard.js +94 -0
  496. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  497. package/dist/internal/planning/scan-completion.d.ts +20 -0
  498. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  499. package/dist/internal/planning/scan-completion.js +197 -0
  500. package/dist/internal/planning/scan-completion.js.map +1 -0
  501. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  502. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  503. package/dist/internal/planning/scan-detect-guard.js +77 -0
  504. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  505. package/dist/internal/planning/scan-detect.d.ts +24 -0
  506. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  507. package/dist/internal/planning/scan-detect.js +245 -0
  508. package/dist/internal/planning/scan-detect.js.map +1 -0
  509. package/dist/internal/planning/scan-input.d.ts +9 -0
  510. package/dist/internal/planning/scan-input.d.ts.map +1 -0
  511. package/dist/internal/planning/scan-input.js +58 -0
  512. package/dist/internal/planning/scan-input.js.map +1 -0
  513. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  514. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  515. package/dist/internal/planning/ship-import-funding.js +53 -0
  516. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  517. package/dist/internal/planning/ship-token.d.ts +1 -6
  518. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  519. package/dist/internal/planning/ship-token.js +2 -41
  520. package/dist/internal/planning/ship-token.js.map +1 -1
  521. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  522. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  523. package/dist/internal/planning/starbase-player-owner.js +17 -0
  524. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  525. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  526. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  527. package/dist/internal/planning/starbase-system-guard.js +93 -0
  528. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  529. package/dist/internal/planning/starbase-system.d.ts +15 -0
  530. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  531. package/dist/internal/planning/starbase-system.js +25 -0
  532. package/dist/internal/planning/starbase-system.js.map +1 -0
  533. package/dist/internal/planning/token-mint.d.ts +4 -0
  534. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  535. package/dist/internal/planning/token-mint.js +15 -0
  536. package/dist/internal/planning/token-mint.js.map +1 -0
  537. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  538. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  539. package/dist/internal/planning/trade-faction-market.js +56 -0
  540. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  541. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  542. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  543. package/dist/internal/planning/wallet-starbase.js +39 -0
  544. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  545. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  546. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  547. package/dist/internal/planning/xp-runtime.js +126 -0
  548. package/dist/internal/planning/xp-runtime.js.map +1 -0
  549. package/dist/internal/system-program.d.ts +4 -0
  550. package/dist/internal/system-program.d.ts.map +1 -0
  551. package/dist/internal/system-program.js +3 -0
  552. package/dist/internal/system-program.js.map +1 -0
  553. package/dist/loyalty/actions/index.d.ts.map +1 -1
  554. package/dist/loyalty/actions/index.js +8 -21
  555. package/dist/loyalty/actions/index.js.map +1 -1
  556. package/dist/loyalty/index.d.ts.map +1 -1
  557. package/dist/loyalty/index.js +2 -6
  558. package/dist/loyalty/index.js.map +1 -1
  559. package/dist/markets/actions/index.d.ts +61 -3
  560. package/dist/markets/actions/index.d.ts.map +1 -1
  561. package/dist/markets/actions/index.js +227 -160
  562. package/dist/markets/actions/index.js.map +1 -1
  563. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  564. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  565. package/dist/markets/actions/trade-faction-market.js +282 -0
  566. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  567. package/dist/markets/index.d.ts +38 -7
  568. package/dist/markets/index.d.ts.map +1 -1
  569. package/dist/markets/index.js +57 -10
  570. package/dist/markets/index.js.map +1 -1
  571. package/dist/mining/actions/index.d.ts +87 -0
  572. package/dist/mining/actions/index.d.ts.map +1 -0
  573. package/dist/mining/actions/index.js +319 -0
  574. package/dist/mining/actions/index.js.map +1 -0
  575. package/dist/mining/estimate.d.ts +114 -0
  576. package/dist/mining/estimate.d.ts.map +1 -0
  577. package/dist/mining/estimate.js +127 -0
  578. package/dist/mining/estimate.js.map +1 -0
  579. package/dist/mining/index.d.ts +9 -2
  580. package/dist/mining/index.d.ts.map +1 -1
  581. package/dist/mining/index.js +7 -2
  582. package/dist/mining/index.js.map +1 -1
  583. package/dist/mining/profile.d.ts +82 -0
  584. package/dist/mining/profile.d.ts.map +1 -0
  585. package/dist/mining/profile.js +109 -0
  586. package/dist/mining/profile.js.map +1 -0
  587. package/dist/planning/assembly.d.ts +5 -0
  588. package/dist/planning/assembly.d.ts.map +1 -1
  589. package/dist/planning/assembly.js +8 -4
  590. package/dist/planning/assembly.js.map +1 -1
  591. package/dist/planning/execution.d.ts +18 -3
  592. package/dist/planning/execution.d.ts.map +1 -1
  593. package/dist/planning/execution.js +492 -40
  594. package/dist/planning/execution.js.map +1 -1
  595. package/dist/planning/index.d.ts +196 -149
  596. package/dist/planning/index.d.ts.map +1 -1
  597. package/dist/planning/index.js +44 -292
  598. package/dist/planning/index.js.map +1 -1
  599. package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
  600. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
  601. package/dist/planning/plan-sequence-checkpoint.js +16 -7
  602. package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
  603. package/dist/planning/plan-sequence-execution.d.ts +5 -0
  604. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  605. package/dist/planning/plan-sequence-execution.js +74 -30
  606. package/dist/planning/plan-sequence-execution.js.map +1 -1
  607. package/dist/planning/plan-sequence.d.ts +2 -1
  608. package/dist/planning/plan-sequence.d.ts.map +1 -1
  609. package/dist/planning/plan-sequence.js +8 -1
  610. package/dist/planning/plan-sequence.js.map +1 -1
  611. package/dist/planning/plan-validation.d.ts +14 -0
  612. package/dist/planning/plan-validation.d.ts.map +1 -0
  613. package/dist/planning/plan-validation.js +124 -0
  614. package/dist/planning/plan-validation.js.map +1 -0
  615. package/dist/planning/simulation.d.ts +25 -1
  616. package/dist/planning/simulation.d.ts.map +1 -1
  617. package/dist/planning/simulation.js +111 -11
  618. package/dist/planning/simulation.js.map +1 -1
  619. package/dist/registry/cargo.d.ts +7 -12
  620. package/dist/registry/cargo.d.ts.map +1 -1
  621. package/dist/registry/cargo.js +19 -19
  622. package/dist/registry/cargo.js.map +1 -1
  623. package/dist/registry/docking.d.ts +10 -0
  624. package/dist/registry/docking.d.ts.map +1 -0
  625. package/dist/registry/docking.js +12 -0
  626. package/dist/registry/docking.js.map +1 -0
  627. package/dist/registry/index.d.ts +4 -0
  628. package/dist/registry/index.d.ts.map +1 -1
  629. package/dist/registry/index.js.map +1 -1
  630. package/dist/registry/onboarding.d.ts +10 -2
  631. package/dist/registry/onboarding.d.ts.map +1 -1
  632. package/dist/registry/onboarding.js +20 -7
  633. package/dist/registry/onboarding.js.map +1 -1
  634. package/dist/registry/scanning.d.ts +7 -0
  635. package/dist/registry/scanning.d.ts.map +1 -0
  636. package/dist/registry/scanning.js +13 -0
  637. package/dist/registry/scanning.js.map +1 -0
  638. package/dist/registry/ship-stats-snapshot.js +19 -19
  639. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  640. package/dist/registry/ships.d.ts +22 -2
  641. package/dist/registry/ships.d.ts.map +1 -1
  642. package/dist/registry/ships.js +31 -4
  643. package/dist/registry/ships.js.map +1 -1
  644. package/dist/registry/xp-runtime.d.ts +4 -0
  645. package/dist/registry/xp-runtime.d.ts.map +1 -0
  646. package/dist/registry/xp-runtime.js +14 -0
  647. package/dist/registry/xp-runtime.js.map +1 -0
  648. package/dist/rewards/index.d.ts.map +1 -1
  649. package/dist/rewards/index.js +5 -4
  650. package/dist/rewards/index.js.map +1 -1
  651. package/dist/scanning/actions/index.d.ts +116 -0
  652. package/dist/scanning/actions/index.d.ts.map +1 -0
  653. package/dist/scanning/actions/index.js +185 -0
  654. package/dist/scanning/actions/index.js.map +1 -0
  655. package/dist/scanning/index.d.ts +5 -2
  656. package/dist/scanning/index.d.ts.map +1 -1
  657. package/dist/scanning/index.js +13 -9
  658. package/dist/scanning/index.js.map +1 -1
  659. package/dist/scanning/lifecycle.d.ts +77 -0
  660. package/dist/scanning/lifecycle.d.ts.map +1 -0
  661. package/dist/scanning/lifecycle.js +93 -0
  662. package/dist/scanning/lifecycle.js.map +1 -0
  663. package/dist/scanning/odds.d.ts +111 -0
  664. package/dist/scanning/odds.d.ts.map +1 -0
  665. package/dist/scanning/odds.js +294 -0
  666. package/dist/scanning/odds.js.map +1 -0
  667. package/dist/scanning/signals.d.ts +121 -0
  668. package/dist/scanning/signals.d.ts.map +1 -0
  669. package/dist/scanning/signals.js +171 -0
  670. package/dist/scanning/signals.js.map +1 -0
  671. package/dist/starbases/actions/index.d.ts.map +1 -1
  672. package/dist/starbases/actions/index.js +3 -14
  673. package/dist/starbases/actions/index.js.map +1 -1
  674. package/dist/world/index.d.ts +110 -5
  675. package/dist/world/index.d.ts.map +1 -1
  676. package/dist/world/index.js +109 -4
  677. package/dist/world/index.js.map +1 -1
  678. package/dist/world/planet-claim-stake-plots.d.ts +130 -0
  679. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
  680. package/dist/world/planet-claim-stake-plots.js +110 -0
  681. package/dist/world/planet-claim-stake-plots.js.map +1 -0
  682. package/dist/world/starbase-status.d.ts +176 -0
  683. package/dist/world/starbase-status.d.ts.map +1 -0
  684. package/dist/world/starbase-status.js +153 -0
  685. package/dist/world/starbase-status.js.map +1 -0
  686. package/package.json +10 -2
@@ -0,0 +1,245 @@
1
+ import { isAddress } from '@solana/kit';
2
+ import { getDetectSignalInstructionDataEncoder, getFleetDecoder, getScanPatternPolicyDecoder, getScanSignalDecoder, getRegionTrackerDecoder, } from '../c4/scan-detection-codecs.js';
3
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
4
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
5
+ import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
6
+ import { profileAccountDefinition } from '../c4/identity.js';
7
+ import { characterAccountDefinition, findCharacterPda, } from '../c4/character.js';
8
+ import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../c4/factions.js';
9
+ import { scanPatternAccountDefinition, deriveScanPatternAddress, } from '../c4/scanning.js';
10
+ import { scanSignalAccountDefinition, scanPatternPolicyAccountDefinition, scanLootProfileAccountDefinition, deriveScanLifecycleAddress, } from '../c4/scan-lifecycle.js';
11
+ import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
12
+ import { requireGameAddress } from '../game-context.js';
13
+ import { readFreshGameScanningConfiguration } from '../../registry/scanning.js';
14
+ import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
15
+ import { hashAccountState } from './account-state.js';
16
+ import { regionContainsCoordinate } from '../c4/region-geometry.js';
17
+ import { detectInstruction, } from './scan-detect-guard.js';
18
+ const focuses = [
19
+ 'any',
20
+ 'industrial',
21
+ 'technology',
22
+ 'tactical',
23
+ 'exotic',
24
+ ];
25
+ function invalid(field, value) {
26
+ throw new InvalidActionInputError(field, value, 'the documented direct-owner detection inputs', 'Provide a Fleet address, explicit u16 pattern ID, supported focus and direct Profile authorization; no certificate or automatic setup.');
27
+ }
28
+ function fail(reason) {
29
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Signal detection ${reason}. Refresh the Fleet, signal and configuration; complete setup, cargo loading or movement separately before recreating the Plan.`);
30
+ }
31
+ export function validateDetectInput(fleet, options) {
32
+ if (!isAddress(fleet))
33
+ invalid('fleet', fleet);
34
+ if (!options ||
35
+ typeof options !== 'object' ||
36
+ Object.keys(options).some((k) => !['patternId', 'focus', 'authorization'].includes(k)))
37
+ invalid('options', options);
38
+ if (!Number.isInteger(options.patternId) ||
39
+ options.patternId < 0 ||
40
+ options.patternId > 65535)
41
+ invalid('patternId', options.patternId);
42
+ if (!focuses.includes(options.focus))
43
+ invalid('focus', options.focus);
44
+ const a = options.authorization;
45
+ if (!a ||
46
+ typeof a !== 'object' ||
47
+ Object.keys(a).some((k) => !['profile', 'authority', 'keyIndex'].includes(k)) ||
48
+ !isAddress(a.profile) ||
49
+ !isAddress(a.authority) ||
50
+ !Number.isInteger(a.keyIndex) ||
51
+ a.keyIndex < 0 ||
52
+ a.keyIndex > 65535)
53
+ invalid('authorization', a);
54
+ }
55
+ function required(raw, address) {
56
+ if (!raw || raw.address !== address || raw.executable)
57
+ fail(`requires existing non-executable account ${address}`);
58
+ return raw;
59
+ }
60
+ export async function resolveDetect(ctx, address, options, commitment) {
61
+ validateDetectInput(address, options);
62
+ const game = requireGameAddress(ctx);
63
+ const auth = options.authorization;
64
+ const read = (addresses) => readContextRawAccounts(ctx, addresses, commitment === undefined ? undefined : { commitment });
65
+ const [fleetRaw, clockRaw] = await read([address, CLOCK_ADDRESS]);
66
+ const raw = required(fleetRaw, address);
67
+ const fleet = fleetAccountDefinition.decode(raw);
68
+ if (fleet.game !== game ||
69
+ (await deriveFleetAddress(fleet)) !== address ||
70
+ fleet.ownerProfile !== auth.profile ||
71
+ fleet.subProfile !== '11111111111111111111111111111111')
72
+ fail('requires the canonical directly owned Fleet without delegation');
73
+ const exact = getFleetDecoder().decode(raw.data);
74
+ if (exact.state.__kind !== 'Idle')
75
+ fail('requires a currently Idle Fleet');
76
+ const now = readClock(required(clockRaw, CLOCK_ADDRESS));
77
+ if (exact.scanCooldownExpiresAt > now)
78
+ fail('requires the Fleet scan cooldown to have elapsed');
79
+ const character = await findCharacterPda(auth.profile, game);
80
+ const tracker = await deriveRegionTrackerAddress(game);
81
+ const [signal, signalBump] = await deriveScanLifecycleAddress('scanSignal', game, address);
82
+ const [policy, policyBump] = await deriveScanLifecycleAddress('scanPatternPolicy', game, options.patternId);
83
+ const pattern = await deriveScanPatternAddress(game, options.patternId);
84
+ const keys = [auth.profile, character, tracker, signal, policy, pattern];
85
+ const raws = await read(keys);
86
+ const accounts = raws.map((r, i) => required(r, keys[i]));
87
+ const profile = profileAccountDefinition.decode(accounts[0]);
88
+ const key = profile.keys[auth.keyIndex];
89
+ if (!key ||
90
+ key.address !== auth.authority ||
91
+ (key.expiresAtRaw >= 0n && key.expiresAtRaw < now) ||
92
+ ![PROFILE_SCOPE, SAGE_SCOPE].includes(key.scope))
93
+ fail('requires a current unexpired direct key scoped to Player Profile or SAGE; instruction permission acceptance remains chain-authoritative');
94
+ const owner = characterAccountDefinition.decode(accounts[1]);
95
+ if (owner.game !== game || owner.playerProfile !== auth.profile)
96
+ fail('requires the canonical owning Character');
97
+ const regionData = regionTrackerAccountDefinition.decode(accounts[2]);
98
+ if (regionData.game !== game)
99
+ fail('requires this Game’s RegionTracker');
100
+ const location = { x: exact.location[0].raw, y: exact.location[1].raw };
101
+ const region = getRegionTrackerDecoder()
102
+ .decode(accounts[2].data)
103
+ .regions.unsizedList.find((r) => regionContainsCoordinate(r, location));
104
+ if (!region)
105
+ fail('cannot map the current position to a configured Region');
106
+ const signalData = scanSignalAccountDefinition.decode(accounts[3]);
107
+ const rawSignal = getScanSignalDecoder().decode(accounts[3].data);
108
+ if (signalData.game !== game ||
109
+ signalData.fleet !== address ||
110
+ signalData.bump !== signalBump ||
111
+ rawSignal.ownerProfile !== auth.profile ||
112
+ rawSignal.ownerCharacter !== character ||
113
+ rawSignal.controllerProfile !== auth.profile ||
114
+ rawSignal.controllerCharacter !== character)
115
+ fail('requires a canonical signal owned and controlled by this Profile and Character');
116
+ if (signalData.status !== 'empty')
117
+ fail('requires an existing Empty signal; finish and acknowledge the previous result separately');
118
+ if (signalData.cooldownEndsAtUnixSeconds > now)
119
+ fail('requires the signal cooldown to have elapsed');
120
+ const p = scanPatternPolicyAccountDefinition.decode(accounts[4]);
121
+ const policyExact = getScanPatternPolicyDecoder().decode(accounts[4].data);
122
+ const patternData = scanPatternAccountDefinition.decode(accounts[5]);
123
+ if (p.game !== game ||
124
+ p.patternId !== options.patternId ||
125
+ p.bump !== policyBump ||
126
+ p.status !== 'active' ||
127
+ patternData.game !== game ||
128
+ patternData.id !== options.patternId ||
129
+ patternData.status !== 'active')
130
+ fail('requires the active selected pattern and canonical policy');
131
+ const focus = focuses.indexOf(options.focus);
132
+ if (focus !== 0 &&
133
+ (policyExact.allowedFocusCategoryMask & (1 << focus)) === 0)
134
+ fail('does not support the selected focus under this policy');
135
+ const tags = [
136
+ ...region.scanningResearchRequirements,
137
+ ...p.requiredResearchTagIds,
138
+ ];
139
+ if (tags.some((t) => !owner.modifiers.values.researchTags.includes(t)))
140
+ fail('requires the selected Region and policy research tags');
141
+ const [loot, lootBump] = await deriveScanLifecycleAddress('scanLootProfile', game, region.id);
142
+ const [lootRaw] = await read([loot]);
143
+ const l = scanLootProfileAccountDefinition.decode(required(lootRaw, loot));
144
+ if (l.game !== game ||
145
+ l.regionId !== region.id ||
146
+ l.bump !== lootBump ||
147
+ l.status !== 'active')
148
+ fail('requires the active canonical loot profile for the current Region');
149
+ const gameConfig = await readFreshGameScanningConfiguration(ctx, commitment === undefined ? undefined : { commitment });
150
+ if (fleet.shipDefinitionsSeqId !== gameConfig.shipSequenceId)
151
+ fail('supports current Fleet ship definitions only; synchronize the Fleet through a supported game client first');
152
+ const costs = new Map();
153
+ for (const row of patternData.costs) {
154
+ const amount = (BigInt(exact.stats.miscStats.scanCost) * row.multiplier.raw + 65535n) /
155
+ 65536n;
156
+ costs.set(row.cargoId, (costs.get(row.cargoId) ?? 0n) + amount);
157
+ }
158
+ const descriptions = [];
159
+ for (const [id, amount] of costs) {
160
+ const definition = gameConfig.cargo.definitions.find((row) => row.id === id);
161
+ if (!definition)
162
+ fail(`cannot resolve required cargo ${id} from current Game definitions`);
163
+ const held = exact.cargoHold.amounts.get(id) ?? 0n;
164
+ if (held < amount)
165
+ fail(`needs ${amount} raw ${definition.name}; only ${held} aboard`);
166
+ descriptions.push(`${amount} raw ${definition.name}`);
167
+ }
168
+ const selected = {
169
+ authority: {
170
+ profileVersion: profile.version,
171
+ scope: key.scope,
172
+ permissions: key.permissionsRaw,
173
+ expires: key.expiresAtRaw,
174
+ },
175
+ shipSequence: gameConfig.shipSequenceId,
176
+ location,
177
+ region: region.id,
178
+ regionTags: region.scanningResearchRequirements,
179
+ pattern: {
180
+ version: patternData.version,
181
+ costs: patternData.costs.map((c) => [c.cargoId, c.multiplier.raw]),
182
+ cooldown: patternData.cooldownMultiplier.raw,
183
+ },
184
+ policy: {
185
+ version: p.version,
186
+ revision: p.revision,
187
+ focusMask: policyExact.allowedFocusCategoryMask,
188
+ tags: p.requiredResearchTagIds,
189
+ },
190
+ loot: { version: l.version, revision: l.revision },
191
+ scanCost: exact.stats.miscStats.scanCost,
192
+ };
193
+ const configHash = await hashAccountState(game, new TextEncoder().encode(JSON.stringify(selected, (_, v) => typeof v === 'bigint' ? String(v) : v)));
194
+ const guard = {
195
+ kind: 'scan-detect',
196
+ address,
197
+ game,
198
+ profile: auth.profile,
199
+ authority: auth.authority,
200
+ character,
201
+ signal,
202
+ pattern,
203
+ policy,
204
+ loot,
205
+ tracker,
206
+ keyIndex: auth.keyIndex,
207
+ patternId: options.patternId,
208
+ focus,
209
+ expectedSequence: signalData.sequence,
210
+ policyRevision: p.revision,
211
+ profileRevision: l.revision,
212
+ configHash,
213
+ describes: 'The direct owner, Idle Fleet, Empty signal, sequence, selected region/configuration, elapsed cooldown and required cargo remain valid. Refresh and recreate detection if any prerequisite changes.',
214
+ };
215
+ return {
216
+ guard,
217
+ instruction: {
218
+ ...detectInstruction(guard),
219
+ data: getDetectSignalInstructionDataEncoder().encode({
220
+ keyIndex: auth.keyIndex,
221
+ expectedSequence: guard.expectedSequence,
222
+ scanPatternId: options.patternId,
223
+ expectedPolicyRevision: guard.policyRevision,
224
+ expectedProfileRevision: guard.profileRevision,
225
+ focus,
226
+ }),
227
+ },
228
+ costDescription: descriptions.join(', ') || 'no cargo',
229
+ };
230
+ }
231
+ export async function revalidateDetect(ctx, guard, commitment) {
232
+ const current = await resolveDetect(ctx, guard.address, {
233
+ authorization: {
234
+ profile: guard.profile,
235
+ authority: guard.authority,
236
+ keyIndex: guard.keyIndex,
237
+ },
238
+ patternId: guard.patternId,
239
+ focus: focuses[guard.focus],
240
+ }, commitment);
241
+ if (Object.entries(guard).some(([key, value]) => key !== 'describes' &&
242
+ current.guard[key] !== value))
243
+ fail('intent changed since planning');
244
+ }
245
+ //# sourceMappingURL=scan-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-detect.js","sourceRoot":"","sources":["../../../src/internal/planning/scan-detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type Address } from '@solana/kit';
2
+ import { type PlanAuthorization } from './authorization-adapter.js';
3
+ /** Rejects anything but one base58 Fleet account address. */
4
+ export declare function validateScanFleetAddress(fleet: unknown): asserts fleet is Address;
5
+ /** Rejects every options shape except exactly
6
+ * `{ authorization: { profile, authority, keyIndex } }`, with each field set
7
+ * on its own object rather than reached through a prototype. */
8
+ export declare function validateScanAuthorizationOptions(options: unknown): PlanAuthorization;
9
+ //# sourceMappingURL=scan-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-input.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/scan-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAyBpC,6DAA6D;AAC7D,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,OAAO,CAQ1B;AAED;;iEAEiE;AACjE,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,OAAO,GACf,iBAAiB,CA2EnB"}
@@ -0,0 +1,58 @@
1
+ import { isAddress } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../../client/errors.js';
3
+ import { validatePlanAuthorization, } from './authorization-adapter.js';
4
+ // Caller-input validation shared by the scanning planners. Every rejection
5
+ // names the failing field and its offending value before any account read.
6
+ const AUTHORIZATION_FIELDS = [
7
+ 'profile',
8
+ 'authority',
9
+ 'keyIndex',
10
+ ];
11
+ const SHAPE = 'Pass { authorization: { profile, authority, keyIndex } } with the Profile that owns the Fleet, the address of one of its direct keys and that key index, then plan again.';
12
+ function invalid(field, value, acceptedRange, remedy) {
13
+ throw new InvalidActionInputError(field, value, acceptedRange, remedy);
14
+ }
15
+ function isRecord(value) {
16
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
17
+ }
18
+ /** Rejects anything but one base58 Fleet account address. */
19
+ export function validateScanFleetAddress(fleet) {
20
+ if (typeof fleet !== 'string' || !isAddress(fleet))
21
+ invalid('fleet', fleet, 'one base58 Fleet account address', 'Pass the address of the directly owned Fleet, for example from a Fleet snapshot or finder, then plan again.');
22
+ }
23
+ /** Rejects every options shape except exactly
24
+ * `{ authorization: { profile, authority, keyIndex } }`, with each field set
25
+ * on its own object rather than reached through a prototype. */
26
+ export function validateScanAuthorizationOptions(options) {
27
+ if (!isRecord(options))
28
+ invalid('options', options, 'an object with exactly one authorization field', SHAPE);
29
+ const option = Object.keys(options).find((key) => key !== 'authorization');
30
+ if (option !== undefined)
31
+ invalid(`options.${option}`, options[option], 'no option other than authorization', `Remove ${option}. ${SHAPE}`);
32
+ const authorization = options.authorization;
33
+ if (!isRecord(authorization))
34
+ invalid('options.authorization', authorization, 'direct address-only Profile authorization', SHAPE);
35
+ // Explicit authorization is a field of the options object itself; a value
36
+ // reached through its prototype never supplies it.
37
+ if (!Object.hasOwn(options, 'authorization'))
38
+ invalid('options.authorization', authorization, 'authorization set on the options object itself rather than inherited from its prototype', `Set authorization directly on the options object. ${SHAPE}`);
39
+ const extra = Object.keys(authorization).find((key) => !AUTHORIZATION_FIELDS.includes(key));
40
+ if (extra !== undefined)
41
+ invalid(`options.authorization.${extra}`, authorization[extra], 'no authorization field other than profile, authority and keyIndex', `Remove ${extra}: certificates, substitute accounts and instruction metas are unsupported for signal actions. ${SHAPE}`);
42
+ const { profile, authority, keyIndex } = authorization;
43
+ if (typeof profile !== 'string' || !isAddress(profile))
44
+ invalid('options.authorization.profile', profile, 'the base58 address of the Profile that owns the Fleet', SHAPE);
45
+ if (typeof authority !== 'string' || !isAddress(authority))
46
+ invalid('options.authorization.authority', authority, 'the base58 address of one direct key on that Profile', SHAPE);
47
+ const validated = {
48
+ profile,
49
+ authority,
50
+ keyIndex: keyIndex,
51
+ };
52
+ validatePlanAuthorization(validated);
53
+ const inherited = AUTHORIZATION_FIELDS.find((field) => !Object.hasOwn(authorization, field));
54
+ if (inherited !== undefined)
55
+ invalid(`options.authorization.${inherited}`, authorization[inherited], `${inherited} set on the authorization object itself rather than inherited from its prototype`, `Set ${inherited} directly on the authorization object. ${SHAPE}`);
56
+ return validated;
57
+ }
58
+ //# sourceMappingURL=scan-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-input.js","sourceRoot":"","sources":["../../../src/internal/planning/scan-input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Address, RawAccount } from '../../client/contracts.js';
2
+ export interface ShipImportFundingIntent {
3
+ readonly address: Address;
4
+ readonly game: Address;
5
+ readonly profile: Address;
6
+ readonly system: Address;
7
+ readonly shipId: number;
8
+ }
9
+ export interface ShipImportFundingAccounts {
10
+ readonly profile: Address;
11
+ readonly character: Address;
12
+ readonly starbasePlayer: Address;
13
+ readonly rent: Address;
14
+ }
15
+ /** Resolves only the finite funding prerequisites; no implicit Game account read. */
16
+ export declare function resolveShipImportFunding(intent: ShipImportFundingIntent): Promise<ShipImportFundingAccounts>;
17
+ /** Shared preparation/execution funding calculation; existing action guards retain permissions and inventory intent. */
18
+ export declare function validateShipImportFunding(intent: ShipImportFundingIntent, resolved: ShipImportFundingAccounts, accounts: ReadonlyMap<Address, RawAccount | undefined>, maximumProfileDebit?: bigint): {
19
+ profileDebit: bigint;
20
+ profileReserve: bigint;
21
+ };
22
+ //# sourceMappingURL=ship-import-funding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-import-funding.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-import-funding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAcrE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAID,qFAAqF;AACrF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAiBpC;AACD,wHAAwH;AACxH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,mBAAmB,CAAC,EAAE,MAAM,GAC3B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAkDlD"}
@@ -0,0 +1,53 @@
1
+ import { SageSdkError } from '../../client/errors.js';
2
+ import { profileAccountDefinition } from '../c4/identity.js';
3
+ import { characterAccountDefinition, findCharacterPda, } from '../c4/character.js';
4
+ import { starbasePlayerAccountDefinition, deriveStarbasePlayerAddress, } from '../c4/starbase.js';
5
+ import { shipImportStorageSize } from '../c4/ship-import.js';
6
+ import { RENT_ADDRESS, readRent } from './rent.js';
7
+ function fail(address, message) {
8
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
9
+ }
10
+ /** Resolves only the finite funding prerequisites; no implicit Game account read. */
11
+ export async function resolveShipImportFunding(intent) {
12
+ const character = await findCharacterPda(intent.profile, intent.game);
13
+ const starbasePlayer = await deriveStarbasePlayerAddress(intent.system, character);
14
+ if (starbasePlayer !== intent.address)
15
+ fail(intent.address, 'Ship import funding requires the canonical StarbasePlayer for this Game, Profile and System. Refresh that registration and prepare a new import.');
16
+ return {
17
+ profile: intent.profile,
18
+ character,
19
+ starbasePlayer,
20
+ rent: RENT_ADDRESS,
21
+ };
22
+ }
23
+ /** Shared preparation/execution funding calculation; existing action guards retain permissions and inventory intent. */
24
+ export function validateShipImportFunding(intent, resolved, accounts, maximumProfileDebit) {
25
+ const required = (address, role) => {
26
+ const raw = accounts.get(address);
27
+ if (!raw || raw.address !== address || raw.executable)
28
+ fail(address, `${role} is missing or invalid for ship import funding. Refresh the canonical account and replan.`);
29
+ return raw;
30
+ };
31
+ const profile = required(resolved.profile, 'Profile');
32
+ profileAccountDefinition.decode(profile);
33
+ const character = characterAccountDefinition.decode(required(resolved.character, 'Character'));
34
+ if (character.game !== intent.game ||
35
+ character.playerProfile !== intent.profile)
36
+ fail(resolved.character, 'The Character has a different Game or Profile. Refresh the canonical Character and replan ship import.');
37
+ const target = required(resolved.starbasePlayer, 'StarbasePlayer');
38
+ const player = starbasePlayerAccountDefinition.decode(target);
39
+ if (player.playerProfile !== intent.profile ||
40
+ player.character !== resolved.character ||
41
+ player.system !== intent.system)
42
+ fail(target.address, 'The StarbasePlayer has a different Profile, Character or System. Refresh the canonical registration and replan ship import.');
43
+ const rent = readRent(required(resolved.rent, 'Rent sysvar'));
44
+ const storageRent = rent(shipImportStorageSize(target, intent.shipId));
45
+ const profileDebit = storageRent > target.lamports ? storageRent - target.lamports : 0n;
46
+ if (maximumProfileDebit !== undefined && profileDebit > maximumProfileDebit)
47
+ fail(intent.profile, 'Ship import now requires a larger Profile debit than this Plan approved. Refresh and replan the current StarbasePlayer storage shortfall before signing.');
48
+ const profileReserve = rent(profile.data.length);
49
+ if (profile.lamports < profileReserve + profileDebit)
50
+ fail(intent.profile, `Profile vault needs ${profileReserve + profileDebit - profile.lamports} more native lamports to fund StarbasePlayer storage while retaining its own reserve. Fund the Profile separately and replan ship import.`);
51
+ return { profileDebit, profileReserve };
52
+ }
53
+ //# sourceMappingURL=ship-import-funding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-import-funding.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-import-funding.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,5 @@
1
- import { type Address } from '@solana/kit';
1
+ import type { Address } from '@solana/kit';
2
2
  import type { RawAccount } from '../../client/contracts.js';
3
- export declare const ORIGINAL_TOKEN_PROGRAM: Address;
4
- export declare const ATA_PROGRAM: Address;
5
- export declare const SYSTEM_PROGRAM: Address;
6
3
  export declare function failShipImport(message: string, address: Address): never;
7
- export declare function deriveShipTokenAddress(owner: Address, mint: Address): Promise<Address>;
8
4
  export declare function validateShipMint(account: RawAccount): void;
9
- export declare function validateShipToken(account: RawAccount, mint: Address, owner: Address): bigint;
10
5
  //# sourceMappingURL=ship-token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ship-token.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,sBAAsB,EACgB,OAAO,CAAC;AAC3D,eAAO,MAAM,WAAW,EAC4B,OAAO,CAAC;AAC5D,eAAO,MAAM,cAAc,EAAyC,OAAO,CAAC;AAC5E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAMvE;AACD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAYlB;AAwBD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAS1D;AACD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAcR"}
1
+ {"version":3,"file":"ship-token.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAMvE;AACD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAM1D"}
@@ -1,49 +1,10 @@
1
- import { getAddressDecoder, getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
1
+ import { validateTokenMint } from './token-mint.js';
2
2
  import { SageSdkError } from '../../client/errors.js';
3
- export const ORIGINAL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
4
- export const ATA_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
5
- export const SYSTEM_PROGRAM = '11111111111111111111111111111111';
6
3
  export function failShipImport(message, address) {
7
4
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the relevant accounts and prepare a new ship import Plan.`, { address });
8
5
  }
9
- export async function deriveShipTokenAddress(owner, mint) {
10
- const encoder = getAddressEncoder();
11
- return (await getProgramDerivedAddress({
12
- programAddress: ATA_PROGRAM,
13
- seeds: [
14
- encoder.encode(owner),
15
- encoder.encode(ORIGINAL_TOKEN_PROGRAM),
16
- encoder.encode(mint),
17
- ],
18
- }))[0];
19
- }
20
- function bytes(account, length) {
21
- if (account.executable ||
22
- account.owner !== ORIGINAL_TOKEN_PROGRAM ||
23
- account.data.length !== length)
24
- failShipImport(`Account ${account.address} must be an original Token account with exactly ${length} bytes; Token-2022 is unsupported.`, account.address);
25
- return new DataView(account.data.buffer, account.data.byteOffset, account.data.byteLength);
26
- }
27
- function option(view, offset, account) {
28
- if (view.getUint32(offset, true) > 1)
29
- failShipImport('The Token account has malformed optional fields.', account.address);
30
- }
31
6
  export function validateShipMint(account) {
32
- const view = bytes(account, 82);
33
- option(view, 0, account);
34
- option(view, 46, account);
35
- if (view.getUint8(45) !== 1 || view.getUint8(44) !== 0)
7
+ if (validateTokenMint(account) !== 0)
36
8
  failShipImport('Ship import requires an initialized zero-decimal mint so each token is one ship.', account.address);
37
9
  }
38
- export function validateShipToken(account, mint, owner) {
39
- const view = bytes(account, 165);
40
- for (const offset of [72, 109, 129])
41
- option(view, offset, account);
42
- const decoder = getAddressDecoder();
43
- if (view.getUint8(108) !== 1 ||
44
- decoder.decode(account.data.subarray(0, 32)) !== mint ||
45
- decoder.decode(account.data.subarray(32, 64)) !== owner)
46
- failShipImport(`The token account must be initialized, unfrozen and hold ship mint ${mint} under authority ${owner}. Delegated token spending is unsupported.`, account.address);
47
- return view.getBigUint64(64, true);
48
- }
49
10
  //# sourceMappingURL=ship-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ship-token.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ship-token.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAAgB;IAC9D,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,GAAG,OAAO,oEAAoE,EAC9E,EAAE,OAAO,EAAE,CACZ,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IAClD,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,cAAc,CACZ,kFAAkF,EAClF,OAAO,CAAC,OAAO,CAChB,CAAC;AACN,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Address } from '@solana/kit';
2
+ /** The identity fields of a loaded Starbase Player snapshot. */
3
+ interface StarbasePlayerIdentity {
4
+ readonly address: Address;
5
+ readonly playerProfile: {
6
+ readonly address: Address;
7
+ };
8
+ readonly character: {
9
+ readonly address: Address;
10
+ };
11
+ readonly system: {
12
+ readonly address: Address;
13
+ };
14
+ }
15
+ /** Requires a loaded Starbase Player to belong to the authorization Profile,
16
+ * reference that Profile's canonical Character in the configured Game, and sit
17
+ * at its canonical address; returns the Character. Fresh-state checks remain
18
+ * the caller's. */
19
+ export declare function requireProfileStarbasePlayer(player: StarbasePlayerIdentity, profile: Address, game: Address): Promise<Address>;
20
+ export {};
21
+ //# sourceMappingURL=starbase-player-owner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starbase-player-owner.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/starbase-player-owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,gEAAgE;AAChE,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAChD;AAED;;;mBAGmB;AACnB,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAclB"}
@@ -0,0 +1,17 @@
1
+ import { SageSdkError } from '../../client/errors.js';
2
+ import { findCharacterPda } from '../c4/character.js';
3
+ import { deriveStarbasePlayerAddress } from '../c4/starbase.js';
4
+ /** Requires a loaded Starbase Player to belong to the authorization Profile,
5
+ * reference that Profile's canonical Character in the configured Game, and sit
6
+ * at its canonical address; returns the Character. Fresh-state checks remain
7
+ * the caller's. */
8
+ export async function requireProfileStarbasePlayer(player, profile, game) {
9
+ const character = await findCharacterPda(profile, game);
10
+ if (player.playerProfile.address !== profile ||
11
+ player.character.address !== character ||
12
+ (await deriveStarbasePlayerAddress(player.system.address, character)) !==
13
+ player.address)
14
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Starbase Player ${player.address} is not the canonical registration of authorization Profile ${profile} with its canonical Character ${character} in Star System ${player.system.address}. Load that Profile's Starbase Player through this context and retry.`, { address: player.address });
15
+ return character;
16
+ }
17
+ //# sourceMappingURL=starbase-player-owner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starbase-player-owner.js","sourceRoot":"","sources":["../../../src/internal/planning/starbase-player-owner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAUhE;;;mBAGmB;AACnB,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAA8B,EAC9B,OAAgB,EAChB,IAAa;IAEb,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IACE,MAAM,CAAC,aAAa,CAAC,OAAO,KAAK,OAAO;QACxC,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS;QACtC,CAAC,MAAM,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO;QAEhB,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,mBAAmB,MAAM,CAAC,OAAO,+DAA+D,OAAO,iCAAiC,SAAS,mBAAmB,MAAM,CAAC,MAAM,CAAC,OAAO,uEAAuE,EAChQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAC5B,CAAC;IACJ,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PlanPrecondition, PlanStep } from '../../planning/index.js';
2
+ /** Binds required guards to actual instruction accounts without pulling byte decoders into every action entry. */
3
+ export declare function validateStarbaseSystemGuards(steps: readonly PlanStep[], preconditions: readonly PlanPrecondition[]): void;
4
+ /** Hydration and assembly additionally verify exact bytes with the pinned generated decoders. */
5
+ export declare function validateStarbaseSystemInstructions(steps: readonly PlanStep[], preconditions: readonly PlanPrecondition[]): void;
6
+ //# sourceMappingURL=starbase-system-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starbase-system-guard.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/starbase-system-guard.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAuD1E,kHAAkH;AAClH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,aAAa,EAAE,SAAS,gBAAgB,EAAE,GACzC,IAAI,CAmBN;AAED,iGAAiG;AACjG,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,aAAa,EAAE,SAAS,gBAAgB,EAAE,GACzC,IAAI,CAoBN"}