@aephia/atlas-kit 0.6.0-next.17 → 0.6.0-next.170

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 (926) hide show
  1. package/README.md +2 -1
  2. package/dist/cargo/actions/deposit.d.ts +5 -2
  3. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  4. package/dist/cargo/actions/deposit.js +60 -129
  5. package/dist/cargo/actions/deposit.js.map +1 -1
  6. package/dist/cargo/actions/index.d.ts +12 -6
  7. package/dist/cargo/actions/index.d.ts.map +1 -1
  8. package/dist/cargo/actions/index.js +98 -94
  9. package/dist/cargo/actions/index.js.map +1 -1
  10. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  11. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  12. package/dist/cargo/actions/wallet-context.js +118 -7
  13. package/dist/cargo/actions/wallet-context.js.map +1 -1
  14. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  15. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  16. package/dist/cargo/actions/wallet-token.js +0 -45
  17. package/dist/cargo/actions/wallet-token.js.map +1 -1
  18. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  19. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  20. package/dist/cargo/actions/withdrawal.js +39 -168
  21. package/dist/cargo/actions/withdrawal.js.map +1 -1
  22. package/dist/cargo/index.d.ts.map +1 -1
  23. package/dist/cargo/index.js +2 -10
  24. package/dist/cargo/index.js.map +1 -1
  25. package/dist/claim-stakes/actions/index.d.ts +93 -14
  26. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  27. package/dist/claim-stakes/actions/index.js +739 -742
  28. package/dist/claim-stakes/actions/index.js.map +1 -1
  29. package/dist/claim-stakes/index.d.ts +22 -6
  30. package/dist/claim-stakes/index.d.ts.map +1 -1
  31. package/dist/claim-stakes/index.js +34 -19
  32. package/dist/claim-stakes/index.js.map +1 -1
  33. package/dist/client/context.d.ts.map +1 -1
  34. package/dist/client/context.js +354 -38
  35. package/dist/client/context.js.map +1 -1
  36. package/dist/client/contracts.d.ts +69 -6
  37. package/dist/client/contracts.d.ts.map +1 -1
  38. package/dist/client/deployments.d.ts +17 -0
  39. package/dist/client/deployments.d.ts.map +1 -1
  40. package/dist/client/deployments.js +17 -0
  41. package/dist/client/deployments.js.map +1 -1
  42. package/dist/client/errors.d.ts +2 -2
  43. package/dist/client/errors.d.ts.map +1 -1
  44. package/dist/client/errors.js.map +1 -1
  45. package/dist/client/index.d.ts +57 -1
  46. package/dist/client/index.d.ts.map +1 -1
  47. package/dist/client/index.js +56 -0
  48. package/dist/client/index.js.map +1 -1
  49. package/dist/client/rpc-subscription-provider.d.ts +37 -0
  50. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  51. package/dist/client/rpc-subscription-provider.js +224 -0
  52. package/dist/client/rpc-subscription-provider.js.map +1 -0
  53. package/dist/combat/actions/index.d.ts +30 -12
  54. package/dist/combat/actions/index.d.ts.map +1 -1
  55. package/dist/combat/actions/index.js +360 -302
  56. package/dist/combat/actions/index.js.map +1 -1
  57. package/dist/combat/index.d.ts +25 -8
  58. package/dist/combat/index.d.ts.map +1 -1
  59. package/dist/combat/index.js +21 -18
  60. package/dist/combat/index.js.map +1 -1
  61. package/dist/crafting/actions/fee-rate.d.ts +47 -0
  62. package/dist/crafting/actions/fee-rate.d.ts.map +1 -0
  63. package/dist/crafting/actions/fee-rate.js +58 -0
  64. package/dist/crafting/actions/fee-rate.js.map +1 -0
  65. package/dist/crafting/actions/index.d.ts +29 -18
  66. package/dist/crafting/actions/index.d.ts.map +1 -1
  67. package/dist/crafting/actions/index.js +298 -352
  68. package/dist/crafting/actions/index.js.map +1 -1
  69. package/dist/crafting/estimate.d.ts +101 -0
  70. package/dist/crafting/estimate.d.ts.map +1 -0
  71. package/dist/crafting/estimate.js +108 -0
  72. package/dist/crafting/estimate.js.map +1 -0
  73. package/dist/crafting/index.d.ts +34 -3
  74. package/dist/crafting/index.d.ts.map +1 -1
  75. package/dist/crafting/index.js +50 -28
  76. package/dist/crafting/index.js.map +1 -1
  77. package/dist/factions/actions/index.d.ts +2 -1
  78. package/dist/factions/actions/index.d.ts.map +1 -1
  79. package/dist/factions/actions/index.js +6 -4
  80. package/dist/factions/actions/index.js.map +1 -1
  81. package/dist/factions/index.d.ts +19 -2
  82. package/dist/factions/index.d.ts.map +1 -1
  83. package/dist/factions/index.js +38 -26
  84. package/dist/factions/index.js.map +1 -1
  85. package/dist/factions/profile-faction.d.ts +20 -8
  86. package/dist/factions/profile-faction.d.ts.map +1 -1
  87. package/dist/factions/profile-faction.js +20 -8
  88. package/dist/factions/profile-faction.js.map +1 -1
  89. package/dist/fleets/actions/add-ship.d.ts +48 -0
  90. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  91. package/dist/fleets/actions/add-ship.js +136 -0
  92. package/dist/fleets/actions/add-ship.js.map +1 -0
  93. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  94. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  95. package/dist/fleets/actions/create-fleet.js +108 -0
  96. package/dist/fleets/actions/create-fleet.js.map +1 -0
  97. package/dist/fleets/actions/crew-transfer.d.ts +45 -0
  98. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  99. package/dist/fleets/actions/crew-transfer.js +99 -0
  100. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  101. package/dist/fleets/actions/deployment-storage.d.ts +161 -0
  102. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -0
  103. package/dist/fleets/actions/deployment-storage.js +297 -0
  104. package/dist/fleets/actions/deployment-storage.js.map +1 -0
  105. package/dist/fleets/actions/disband.d.ts +42 -0
  106. package/dist/fleets/actions/disband.d.ts.map +1 -0
  107. package/dist/fleets/actions/disband.js +107 -0
  108. package/dist/fleets/actions/disband.js.map +1 -0
  109. package/dist/fleets/actions/dock-bounds.d.ts +38 -0
  110. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
  111. package/dist/fleets/actions/dock-bounds.js +46 -0
  112. package/dist/fleets/actions/dock-bounds.js.map +1 -0
  113. package/dist/fleets/actions/index.d.ts +90 -25
  114. package/dist/fleets/actions/index.d.ts.map +1 -1
  115. package/dist/fleets/actions/index.js +492 -353
  116. package/dist/fleets/actions/index.js.map +1 -1
  117. package/dist/fleets/actions/respawn.d.ts +38 -0
  118. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  119. package/dist/fleets/actions/respawn.js +93 -0
  120. package/dist/fleets/actions/respawn.js.map +1 -0
  121. package/dist/fleets/actions/ship-import.d.ts +1 -1
  122. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  123. package/dist/fleets/actions/ship-import.js +61 -90
  124. package/dist/fleets/actions/ship-import.js.map +1 -1
  125. package/dist/fleets/actions/sync.d.ts +24 -0
  126. package/dist/fleets/actions/sync.d.ts.map +1 -0
  127. package/dist/fleets/actions/sync.js +55 -0
  128. package/dist/fleets/actions/sync.js.map +1 -0
  129. package/dist/fleets/composition-stats.d.ts +101 -0
  130. package/dist/fleets/composition-stats.d.ts.map +1 -0
  131. package/dist/fleets/composition-stats.js +354 -0
  132. package/dist/fleets/composition-stats.js.map +1 -0
  133. package/dist/fleets/cooldown.d.ts +47 -0
  134. package/dist/fleets/cooldown.d.ts.map +1 -0
  135. package/dist/fleets/cooldown.js +48 -0
  136. package/dist/fleets/cooldown.js.map +1 -0
  137. package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
  138. package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
  139. package/dist/fleets/coordinate-warp-estimate.js +46 -0
  140. package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
  141. package/dist/fleets/index.d.ts +36 -0
  142. package/dist/fleets/index.d.ts.map +1 -1
  143. package/dist/fleets/index.js +55 -12
  144. package/dist/fleets/index.js.map +1 -1
  145. package/dist/fleets/movement-arithmetic.d.ts +21 -0
  146. package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
  147. package/dist/fleets/movement-arithmetic.js +45 -0
  148. package/dist/fleets/movement-arithmetic.js.map +1 -0
  149. package/dist/fleets/subwarp-estimate.d.ts +72 -0
  150. package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
  151. package/dist/fleets/subwarp-estimate.js +40 -0
  152. package/dist/fleets/subwarp-estimate.js.map +1 -0
  153. package/dist/fleets/travel-profile.d.ts +102 -0
  154. package/dist/fleets/travel-profile.d.ts.map +1 -0
  155. package/dist/fleets/travel-profile.js +120 -0
  156. package/dist/fleets/travel-profile.js.map +1 -0
  157. package/dist/fleets/warp-lane-estimate.d.ts +59 -0
  158. package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
  159. package/dist/fleets/warp-lane-estimate.js +36 -0
  160. package/dist/fleets/warp-lane-estimate.js.map +1 -0
  161. package/dist/fleets/warp-lane-policy.d.ts +74 -0
  162. package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
  163. package/dist/fleets/warp-lane-policy.js +103 -0
  164. package/dist/fleets/warp-lane-policy.js.map +1 -0
  165. package/dist/fleets/warp-lane-toll.d.ts +55 -0
  166. package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
  167. package/dist/fleets/warp-lane-toll.js +79 -0
  168. package/dist/fleets/warp-lane-toll.js.map +1 -0
  169. package/dist/identity/actions/create-profile.d.ts +1 -1
  170. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  171. package/dist/identity/actions/create-profile.js +2 -2
  172. package/dist/identity/actions/create-profile.js.map +1 -1
  173. package/dist/identity/actions/index.d.ts +5 -4
  174. package/dist/identity/actions/index.d.ts.map +1 -1
  175. package/dist/identity/actions/index.js +52 -29
  176. package/dist/identity/actions/index.js.map +1 -1
  177. package/dist/identity/actions/research-unlock.d.ts +61 -0
  178. package/dist/identity/actions/research-unlock.d.ts.map +1 -0
  179. package/dist/identity/actions/research-unlock.js +166 -0
  180. package/dist/identity/actions/research-unlock.js.map +1 -0
  181. package/dist/identity/index.d.ts +63 -2
  182. package/dist/identity/index.d.ts.map +1 -1
  183. package/dist/identity/index.js +64 -12
  184. package/dist/identity/index.js.map +1 -1
  185. package/dist/identity/research-state.d.ts +60 -0
  186. package/dist/identity/research-state.d.ts.map +1 -0
  187. package/dist/identity/research-state.js +68 -0
  188. package/dist/identity/research-state.js.map +1 -0
  189. package/dist/index.d.ts +26 -1
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.js +24 -7
  192. package/dist/index.js.map +1 -1
  193. package/dist/internal/c4/account-decoding.d.ts +49 -0
  194. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  195. package/dist/internal/c4/account-decoding.js +74 -0
  196. package/dist/internal/c4/account-decoding.js.map +1 -0
  197. package/dist/internal/c4/career-xp.d.ts +58 -0
  198. package/dist/internal/c4/career-xp.d.ts.map +1 -0
  199. package/dist/internal/c4/career-xp.js +80 -0
  200. package/dist/internal/c4/career-xp.js.map +1 -0
  201. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  202. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  203. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  204. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  205. package/dist/internal/c4/cargo-instructions.d.ts +24 -0
  206. package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
  207. package/dist/internal/c4/cargo-instructions.js +30 -0
  208. package/dist/internal/c4/cargo-instructions.js.map +1 -0
  209. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  210. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  211. package/dist/internal/c4/cargo-pod.js +13 -0
  212. package/dist/internal/c4/cargo-pod.js.map +1 -0
  213. package/dist/internal/c4/character-modifier.d.ts +1 -1
  214. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  215. package/dist/internal/c4/character-registration.d.ts +2 -0
  216. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  217. package/dist/internal/c4/character-registration.js +2 -0
  218. package/dist/internal/c4/character-registration.js.map +1 -1
  219. package/dist/internal/c4/character.d.ts +157 -0
  220. package/dist/internal/c4/character.d.ts.map +1 -0
  221. package/dist/internal/c4/character.js +64 -0
  222. package/dist/internal/c4/character.js.map +1 -0
  223. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  224. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  225. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  226. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  227. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  228. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  229. package/dist/internal/c4/claim-stake-definitions.d.ts +8 -4
  230. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  231. package/dist/internal/c4/claim-stake-definitions.js +6 -2
  232. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  233. package/dist/internal/c4/claim-stake-plots.d.ts +17 -0
  234. package/dist/internal/c4/claim-stake-plots.d.ts.map +1 -0
  235. package/dist/internal/c4/claim-stake-plots.js +29 -0
  236. package/dist/internal/c4/claim-stake-plots.js.map +1 -0
  237. package/dist/internal/c4/claim-stake-standing.d.ts +80 -0
  238. package/dist/internal/c4/claim-stake-standing.d.ts.map +1 -0
  239. package/dist/internal/c4/claim-stake-standing.js +61 -0
  240. package/dist/internal/c4/claim-stake-standing.js.map +1 -0
  241. package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
  242. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
  243. package/dist/internal/c4/claim-stake-storage.js +207 -0
  244. package/dist/internal/c4/claim-stake-storage.js.map +1 -0
  245. package/dist/internal/c4/claim-stake.d.ts +13 -33
  246. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  247. package/dist/internal/c4/claim-stake.js +49 -94
  248. package/dist/internal/c4/claim-stake.js.map +1 -1
  249. package/dist/internal/c4/combat-storage.d.ts +20 -0
  250. package/dist/internal/c4/combat-storage.d.ts.map +1 -0
  251. package/dist/internal/c4/combat-storage.js +43 -0
  252. package/dist/internal/c4/combat-storage.js.map +1 -0
  253. package/dist/internal/c4/combat.d.ts +1 -82
  254. package/dist/internal/c4/combat.d.ts.map +1 -1
  255. package/dist/internal/c4/combat.js +16 -213
  256. package/dist/internal/c4/combat.js.map +1 -1
  257. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  258. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  259. package/dist/internal/c4/crafting-process-codec.js +34 -0
  260. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  261. package/dist/internal/c4/crafting-storage.d.ts +20 -0
  262. package/dist/internal/c4/crafting-storage.d.ts.map +1 -0
  263. package/dist/internal/c4/crafting-storage.js +54 -0
  264. package/dist/internal/c4/crafting-storage.js.map +1 -0
  265. package/dist/internal/c4/crafting.d.ts +33 -33
  266. package/dist/internal/c4/crafting.d.ts.map +1 -1
  267. package/dist/internal/c4/crafting.js +76 -127
  268. package/dist/internal/c4/crafting.js.map +1 -1
  269. package/dist/internal/c4/currency-cache.d.ts +6 -0
  270. package/dist/internal/c4/currency-cache.d.ts.map +1 -0
  271. package/dist/internal/c4/currency-cache.js +27 -0
  272. package/dist/internal/c4/currency-cache.js.map +1 -0
  273. package/dist/internal/c4/discriminators.d.ts +93 -0
  274. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  275. package/dist/internal/c4/discriminators.js +190 -0
  276. package/dist/internal/c4/discriminators.js.map +1 -0
  277. package/dist/internal/c4/docking-funding.d.ts +4 -0
  278. package/dist/internal/c4/docking-funding.d.ts.map +1 -0
  279. package/dist/internal/c4/docking-funding.js +11 -0
  280. package/dist/internal/c4/docking-funding.js.map +1 -0
  281. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  282. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  283. package/dist/internal/c4/faction-epoch-meter.js +26 -0
  284. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  285. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  286. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  287. package/dist/internal/c4/faction-treasury.js +41 -0
  288. package/dist/internal/c4/faction-treasury.js.map +1 -0
  289. package/dist/internal/c4/faction.d.ts +21 -0
  290. package/dist/internal/c4/faction.d.ts.map +1 -0
  291. package/dist/internal/c4/faction.js +23 -0
  292. package/dist/internal/c4/faction.js.map +1 -0
  293. package/dist/internal/c4/factions.d.ts +40 -60
  294. package/dist/internal/c4/factions.d.ts.map +1 -1
  295. package/dist/internal/c4/factions.js +106 -225
  296. package/dist/internal/c4/factions.js.map +1 -1
  297. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  298. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  299. package/dist/internal/c4/fleet-arrival.js +42 -0
  300. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  301. package/dist/internal/c4/fleet-creation.d.ts +14 -0
  302. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  303. package/dist/internal/c4/fleet-creation.js +177 -0
  304. package/dist/internal/c4/fleet-creation.js.map +1 -0
  305. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  306. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  307. package/dist/internal/c4/fleet-crew-binding.js +31 -44
  308. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  309. package/dist/internal/c4/fleet-disband-layout.d.ts +7 -0
  310. package/dist/internal/c4/fleet-disband-layout.d.ts.map +1 -0
  311. package/dist/internal/c4/fleet-disband-layout.js +7 -0
  312. package/dist/internal/c4/fleet-disband-layout.js.map +1 -0
  313. package/dist/internal/c4/fleet-disband.d.ts +41 -0
  314. package/dist/internal/c4/fleet-disband.d.ts.map +1 -0
  315. package/dist/internal/c4/fleet-disband.js +86 -0
  316. package/dist/internal/c4/fleet-disband.js.map +1 -0
  317. package/dist/internal/c4/fleet-points.d.ts +3 -0
  318. package/dist/internal/c4/fleet-points.d.ts.map +1 -0
  319. package/dist/internal/c4/fleet-points.js +8 -0
  320. package/dist/internal/c4/fleet-points.js.map +1 -0
  321. package/dist/internal/c4/fleet-respawn.d.ts +17 -0
  322. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  323. package/dist/internal/c4/fleet-respawn.js +62 -0
  324. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  325. package/dist/internal/c4/fleet-ship-assembly.d.ts +26 -0
  326. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  327. package/dist/internal/c4/fleet-ship-assembly.js +96 -0
  328. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  329. package/dist/internal/c4/fleet-storage.d.ts +44 -0
  330. package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
  331. package/dist/internal/c4/fleet-storage.js +108 -0
  332. package/dist/internal/c4/fleet-storage.js.map +1 -0
  333. package/dist/internal/c4/fleet-sync.d.ts +5 -0
  334. package/dist/internal/c4/fleet-sync.d.ts.map +1 -0
  335. package/dist/internal/c4/fleet-sync.js +15 -0
  336. package/dist/internal/c4/fleet-sync.js.map +1 -0
  337. package/dist/internal/c4/fleet.d.ts +65 -24
  338. package/dist/internal/c4/fleet.d.ts.map +1 -1
  339. package/dist/internal/c4/fleet.js +50 -91
  340. package/dist/internal/c4/fleet.js.map +1 -1
  341. package/dist/internal/c4/game-definition-layout.d.ts +2 -0
  342. package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
  343. package/dist/internal/c4/game-definition-layout.js +4 -0
  344. package/dist/internal/c4/game-definition-layout.js.map +1 -1
  345. package/dist/internal/c4/game.d.ts +122 -32
  346. package/dist/internal/c4/game.d.ts.map +1 -1
  347. package/dist/internal/c4/game.js +229 -130
  348. package/dist/internal/c4/game.js.map +1 -1
  349. package/dist/internal/c4/identity.d.ts +3 -152
  350. package/dist/internal/c4/identity.d.ts.map +1 -1
  351. package/dist/internal/c4/identity.js +19 -126
  352. package/dist/internal/c4/identity.js.map +1 -1
  353. package/dist/internal/c4/local-market-order.d.ts +29 -0
  354. package/dist/internal/c4/local-market-order.d.ts.map +1 -0
  355. package/dist/internal/c4/local-market-order.js +46 -0
  356. package/dist/internal/c4/local-market-order.js.map +1 -0
  357. package/dist/internal/c4/loot-layout.js +1 -1
  358. package/dist/internal/c4/loot-layout.js.map +1 -1
  359. package/dist/internal/c4/loot.d.ts +89 -0
  360. package/dist/internal/c4/loot.d.ts.map +1 -0
  361. package/dist/internal/c4/loot.js +109 -0
  362. package/dist/internal/c4/loot.js.map +1 -0
  363. package/dist/internal/c4/loyalty.d.ts +7 -30
  364. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  365. package/dist/internal/c4/loyalty.js +41 -163
  366. package/dist/internal/c4/loyalty.js.map +1 -1
  367. package/dist/internal/c4/market-storage.d.ts +25 -0
  368. package/dist/internal/c4/market-storage.d.ts.map +1 -0
  369. package/dist/internal/c4/market-storage.js +53 -0
  370. package/dist/internal/c4/market-storage.js.map +1 -0
  371. package/dist/internal/c4/market.d.ts +5 -38
  372. package/dist/internal/c4/market.d.ts.map +1 -1
  373. package/dist/internal/c4/market.js +26 -120
  374. package/dist/internal/c4/market.js.map +1 -1
  375. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  376. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  377. package/dist/internal/c4/mining-instructions.js +3 -0
  378. package/dist/internal/c4/mining-instructions.js.map +1 -0
  379. package/dist/internal/c4/open-signal.d.ts +8 -0
  380. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  381. package/dist/internal/c4/open-signal.js +37 -0
  382. package/dist/internal/c4/open-signal.js.map +1 -0
  383. package/dist/internal/c4/pda.d.ts +49 -1
  384. package/dist/internal/c4/pda.d.ts.map +1 -1
  385. package/dist/internal/c4/pda.js +122 -17
  386. package/dist/internal/c4/pda.js.map +1 -1
  387. package/dist/internal/c4/profile-faction.d.ts +2 -1
  388. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  389. package/dist/internal/c4/profile-faction.js +36 -72
  390. package/dist/internal/c4/profile-faction.js.map +1 -1
  391. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  392. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  393. package/dist/internal/c4/profile-permissions.js +17 -1
  394. package/dist/internal/c4/profile-permissions.js.map +1 -1
  395. package/dist/internal/c4/region-geometry.d.ts +8 -0
  396. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  397. package/dist/internal/c4/region-geometry.js +43 -0
  398. package/dist/internal/c4/region-geometry.js.map +1 -0
  399. package/dist/internal/c4/rewards.d.ts +1 -61
  400. package/dist/internal/c4/rewards.d.ts.map +1 -1
  401. package/dist/internal/c4/rewards.js +23 -203
  402. package/dist/internal/c4/rewards.js.map +1 -1
  403. package/dist/internal/c4/runtime-bindings.d.ts +4 -0
  404. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  405. package/dist/internal/c4/runtime-bindings.js +4 -0
  406. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  407. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  408. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  409. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  410. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  411. package/dist/internal/c4/scan-lifecycle.d.ts +324 -0
  412. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  413. package/dist/internal/c4/scan-lifecycle.js +249 -0
  414. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  415. package/dist/internal/c4/scan-storage.d.ts +7 -0
  416. package/dist/internal/c4/scan-storage.d.ts.map +1 -0
  417. package/dist/internal/c4/scan-storage.js +10 -0
  418. package/dist/internal/c4/scan-storage.js.map +1 -0
  419. package/dist/internal/c4/scanning.d.ts +4 -41
  420. package/dist/internal/c4/scanning.d.ts.map +1 -1
  421. package/dist/internal/c4/scanning.js +27 -108
  422. package/dist/internal/c4/scanning.js.map +1 -1
  423. package/dist/internal/c4/ship-import.d.ts +4 -0
  424. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  425. package/dist/internal/c4/ship-import.js +13 -0
  426. package/dist/internal/c4/ship-import.js.map +1 -0
  427. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  428. package/dist/internal/c4/ship-stats.js +46 -44
  429. package/dist/internal/c4/ship-stats.js.map +1 -1
  430. package/dist/internal/c4/starbase.d.ts +0 -32
  431. package/dist/internal/c4/starbase.d.ts.map +1 -1
  432. package/dist/internal/c4/starbase.js +26 -136
  433. package/dist/internal/c4/starbase.js.map +1 -1
  434. package/dist/internal/c4/stimulant.d.ts +26 -0
  435. package/dist/internal/c4/stimulant.d.ts.map +1 -0
  436. package/dist/internal/c4/stimulant.js +36 -0
  437. package/dist/internal/c4/stimulant.js.map +1 -0
  438. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  439. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  440. package/dist/internal/c4/world.d.ts +40 -7
  441. package/dist/internal/c4/world.d.ts.map +1 -1
  442. package/dist/internal/c4/world.js +87 -129
  443. package/dist/internal/c4/world.js.map +1 -1
  444. package/dist/internal/cargo.d.ts +2 -0
  445. package/dist/internal/cargo.d.ts.map +1 -1
  446. package/dist/internal/cargo.js +8 -0
  447. package/dist/internal/cargo.js.map +1 -1
  448. package/dist/internal/fleet-route.d.ts +12 -0
  449. package/dist/internal/fleet-route.d.ts.map +1 -0
  450. package/dist/internal/fleet-route.js +11 -0
  451. package/dist/internal/fleet-route.js.map +1 -0
  452. package/dist/internal/fleet.d.ts +3 -2
  453. package/dist/internal/fleet.d.ts.map +1 -1
  454. package/dist/internal/fleet.js +3 -5
  455. package/dist/internal/fleet.js.map +1 -1
  456. package/dist/internal/loyalty-atlas-bank-state.d.ts +17 -0
  457. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  458. package/dist/internal/loyalty-atlas-bank-state.js +11 -0
  459. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  460. package/dist/internal/planning/account-state.d.ts +6 -0
  461. package/dist/internal/planning/account-state.d.ts.map +1 -1
  462. package/dist/internal/planning/account-state.js +13 -0
  463. package/dist/internal/planning/account-state.js.map +1 -1
  464. package/dist/internal/planning/action-runtime.d.ts +38 -0
  465. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  466. package/dist/internal/planning/action-runtime.js +63 -0
  467. package/dist/internal/planning/action-runtime.js.map +1 -0
  468. package/dist/internal/planning/arrival-guards.d.ts +19 -0
  469. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  470. package/dist/internal/planning/arrival-guards.js +172 -0
  471. package/dist/internal/planning/arrival-guards.js.map +1 -0
  472. package/dist/internal/planning/authorization-adapter.d.ts +61 -39
  473. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  474. package/dist/internal/planning/authorization-adapter.js +219 -83
  475. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  476. package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
  477. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
  478. package/dist/internal/planning/cargo-storage-actions.js +97 -0
  479. package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
  480. package/dist/internal/planning/character-access.d.ts +28 -0
  481. package/dist/internal/planning/character-access.d.ts.map +1 -0
  482. package/dist/internal/planning/character-access.js +41 -0
  483. package/dist/internal/planning/character-access.js.map +1 -0
  484. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  485. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  486. package/dist/internal/planning/character-registration-guard.js +59 -0
  487. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  488. package/dist/internal/planning/character-registration.d.ts +23 -0
  489. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  490. package/dist/internal/planning/character-registration.js +87 -0
  491. package/dist/internal/planning/character-registration.js.map +1 -0
  492. package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
  493. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
  494. package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
  495. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
  496. package/dist/internal/planning/combat-storage-actions.d.ts +9 -0
  497. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -0
  498. package/dist/internal/planning/combat-storage-actions.js +55 -0
  499. package/dist/internal/planning/combat-storage-actions.js.map +1 -0
  500. package/dist/internal/planning/crafting-storage-actions.d.ts +7 -0
  501. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -0
  502. package/dist/internal/planning/crafting-storage-actions.js +64 -0
  503. package/dist/internal/planning/crafting-storage-actions.js.map +1 -0
  504. package/dist/internal/planning/currency-cache-guard.d.ts +6 -0
  505. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
  506. package/dist/internal/planning/currency-cache-guard.js +77 -0
  507. package/dist/internal/planning/currency-cache-guard.js.map +1 -0
  508. package/dist/internal/planning/democracy-history.d.ts +50 -0
  509. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  510. package/dist/internal/planning/democracy-history.js +189 -0
  511. package/dist/internal/planning/democracy-history.js.map +1 -0
  512. package/dist/internal/planning/direct-options.d.ts +17 -0
  513. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  514. package/dist/internal/planning/direct-options.js +43 -0
  515. package/dist/internal/planning/direct-options.js.map +1 -0
  516. package/dist/internal/planning/disband-storage-actions.d.ts +9 -0
  517. package/dist/internal/planning/disband-storage-actions.d.ts.map +1 -0
  518. package/dist/internal/planning/disband-storage-actions.js +24 -0
  519. package/dist/internal/planning/disband-storage-actions.js.map +1 -0
  520. package/dist/internal/planning/faction-enrollment.d.ts +0 -4
  521. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  522. package/dist/internal/planning/faction-enrollment.js +1 -31
  523. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  524. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  525. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  526. package/dist/internal/planning/faction-trade-guards.js +15 -0
  527. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  528. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  529. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  530. package/dist/internal/planning/faction-trade-state.js +43 -0
  531. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  532. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  533. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  534. package/dist/internal/planning/fleet-arrival.js +107 -0
  535. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  536. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  537. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  538. package/dist/internal/planning/fleet-attack-xp.js +104 -0
  539. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  540. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  541. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  542. package/dist/internal/planning/fleet-creation.js +89 -0
  543. package/dist/internal/planning/fleet-creation.js.map +1 -0
  544. package/dist/internal/planning/fleet-crew-guard.d.ts +29 -0
  545. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  546. package/dist/internal/planning/fleet-crew-guard.js +48 -0
  547. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  548. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  549. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  550. package/dist/internal/planning/fleet-crew-transfer.js +152 -0
  551. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  552. package/dist/internal/planning/fleet-disband-guard.d.ts +12 -0
  553. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -0
  554. package/dist/internal/planning/fleet-disband-guard.js +54 -0
  555. package/dist/internal/planning/fleet-disband-guard.js.map +1 -0
  556. package/dist/internal/planning/fleet-disband.d.ts +36 -0
  557. package/dist/internal/planning/fleet-disband.d.ts.map +1 -0
  558. package/dist/internal/planning/fleet-disband.js +82 -0
  559. package/dist/internal/planning/fleet-disband.js.map +1 -0
  560. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +42 -0
  561. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
  562. package/dist/internal/planning/fleet-dock-funding-guard.js +216 -0
  563. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
  564. package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
  565. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
  566. package/dist/internal/planning/fleet-dock-funding.js +164 -0
  567. package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
  568. package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
  569. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
  570. package/dist/internal/planning/fleet-docking-guard.js +44 -0
  571. package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
  572. package/dist/internal/planning/fleet-docking.d.ts +25 -0
  573. package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
  574. package/dist/internal/planning/fleet-docking.js +106 -0
  575. package/dist/internal/planning/fleet-docking.js.map +1 -0
  576. package/dist/internal/planning/fleet-rental.d.ts +5 -0
  577. package/dist/internal/planning/fleet-rental.d.ts.map +1 -0
  578. package/dist/internal/planning/fleet-rental.js +9 -0
  579. package/dist/internal/planning/fleet-rental.js.map +1 -0
  580. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  581. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  582. package/dist/internal/planning/fleet-respawn.js +164 -0
  583. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  584. package/dist/internal/planning/fleet-ship-assembly.d.ts +38 -0
  585. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  586. package/dist/internal/planning/fleet-ship-assembly.js +167 -0
  587. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  588. package/dist/internal/planning/fleet-state.d.ts +25 -0
  589. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  590. package/dist/internal/planning/fleet-state.js +28 -0
  591. package/dist/internal/planning/fleet-state.js.map +1 -0
  592. package/dist/internal/planning/governance-fees.d.ts +64 -0
  593. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  594. package/dist/internal/planning/governance-fees.js +231 -0
  595. package/dist/internal/planning/governance-fees.js.map +1 -0
  596. package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
  597. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
  598. package/dist/internal/planning/local-market-order-funding.js +128 -0
  599. package/dist/internal/planning/local-market-order-funding.js.map +1 -0
  600. package/dist/internal/planning/local-market-order.d.ts +40 -0
  601. package/dist/internal/planning/local-market-order.d.ts.map +1 -0
  602. package/dist/internal/planning/local-market-order.js +139 -0
  603. package/dist/internal/planning/local-market-order.js.map +1 -0
  604. package/dist/internal/planning/market-storage-actions.d.ts +7 -0
  605. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -0
  606. package/dist/internal/planning/market-storage-actions.js +71 -0
  607. package/dist/internal/planning/market-storage-actions.js.map +1 -0
  608. package/dist/internal/planning/mining-stop.d.ts +14 -0
  609. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  610. package/dist/internal/planning/mining-stop.js +42 -0
  611. package/dist/internal/planning/mining-stop.js.map +1 -0
  612. package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
  613. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
  614. package/dist/internal/planning/mining-storage-actions.js +57 -0
  615. package/dist/internal/planning/mining-storage-actions.js.map +1 -0
  616. package/dist/internal/planning/movement-storage-actions.d.ts +7 -0
  617. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -0
  618. package/dist/internal/planning/movement-storage-actions.js +38 -0
  619. package/dist/internal/planning/movement-storage-actions.js.map +1 -0
  620. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  621. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  622. package/dist/internal/planning/movement-xp-guard.js +104 -0
  623. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  624. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  625. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  626. package/dist/internal/planning/open-signal-guard.js +32 -0
  627. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  628. package/dist/internal/planning/open-signal.d.ts +31 -0
  629. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  630. package/dist/internal/planning/open-signal.js +94 -0
  631. package/dist/internal/planning/open-signal.js.map +1 -0
  632. package/dist/internal/planning/original-token.d.ts +40 -0
  633. package/dist/internal/planning/original-token.d.ts.map +1 -0
  634. package/dist/internal/planning/original-token.js +112 -0
  635. package/dist/internal/planning/original-token.js.map +1 -0
  636. package/dist/internal/planning/own-starbase-facts.d.ts +37 -0
  637. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  638. package/dist/internal/planning/own-starbase-facts.js +52 -0
  639. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  640. package/dist/internal/planning/plan-fields.d.ts +60 -0
  641. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  642. package/dist/internal/planning/plan-fields.js +159 -0
  643. package/dist/internal/planning/plan-fields.js.map +1 -0
  644. package/dist/internal/planning/plan-guards.d.ts +4 -0
  645. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  646. package/dist/internal/planning/plan-guards.js +184 -0
  647. package/dist/internal/planning/plan-guards.js.map +1 -0
  648. package/dist/internal/planning/profile-key.d.ts +13 -0
  649. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  650. package/dist/internal/planning/profile-key.js +20 -0
  651. package/dist/internal/planning/profile-key.js.map +1 -0
  652. package/dist/internal/planning/profile-storage-funding-guard.d.ts +29 -0
  653. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
  654. package/dist/internal/planning/profile-storage-funding-guard.js +115 -0
  655. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
  656. package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
  657. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
  658. package/dist/internal/planning/profile-storage-funding.js +58 -0
  659. package/dist/internal/planning/profile-storage-funding.js.map +1 -0
  660. package/dist/internal/planning/recipe-state.d.ts +9 -0
  661. package/dist/internal/planning/recipe-state.d.ts.map +1 -0
  662. package/dist/internal/planning/recipe-state.js +23 -0
  663. package/dist/internal/planning/recipe-state.js.map +1 -0
  664. package/dist/internal/planning/region-access.d.ts +30 -0
  665. package/dist/internal/planning/region-access.d.ts.map +1 -0
  666. package/dist/internal/planning/region-access.js +94 -0
  667. package/dist/internal/planning/region-access.js.map +1 -0
  668. package/dist/internal/planning/rent-catalog.d.ts +37 -0
  669. package/dist/internal/planning/rent-catalog.d.ts.map +1 -0
  670. package/dist/internal/planning/rent-catalog.js +165 -0
  671. package/dist/internal/planning/rent-catalog.js.map +1 -0
  672. package/dist/internal/planning/rent.d.ts +19 -0
  673. package/dist/internal/planning/rent.d.ts.map +1 -0
  674. package/dist/internal/planning/rent.js +35 -0
  675. package/dist/internal/planning/rent.js.map +1 -0
  676. package/dist/internal/planning/research-unlock.d.ts +69 -0
  677. package/dist/internal/planning/research-unlock.d.ts.map +1 -0
  678. package/dist/internal/planning/research-unlock.js +287 -0
  679. package/dist/internal/planning/research-unlock.js.map +1 -0
  680. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  681. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  682. package/dist/internal/planning/respawn-guards.js +42 -0
  683. package/dist/internal/planning/respawn-guards.js.map +1 -0
  684. package/dist/internal/planning/runtime-guards.d.ts +41 -0
  685. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  686. package/dist/internal/planning/runtime-guards.js +658 -0
  687. package/dist/internal/planning/runtime-guards.js.map +1 -0
  688. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  689. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  690. package/dist/internal/planning/scan-completion-guard.js +95 -0
  691. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  692. package/dist/internal/planning/scan-completion.d.ts +20 -0
  693. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  694. package/dist/internal/planning/scan-completion.js +198 -0
  695. package/dist/internal/planning/scan-completion.js.map +1 -0
  696. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  697. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  698. package/dist/internal/planning/scan-detect-guard.js +77 -0
  699. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  700. package/dist/internal/planning/scan-detect.d.ts +24 -0
  701. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  702. package/dist/internal/planning/scan-detect.js +246 -0
  703. package/dist/internal/planning/scan-detect.js.map +1 -0
  704. package/dist/internal/planning/scan-idle-scope.d.ts +5 -0
  705. package/dist/internal/planning/scan-idle-scope.d.ts.map +1 -0
  706. package/dist/internal/planning/scan-idle-scope.js +5 -0
  707. package/dist/internal/planning/scan-idle-scope.js.map +1 -0
  708. package/dist/internal/planning/scan-input.d.ts +9 -0
  709. package/dist/internal/planning/scan-input.d.ts.map +1 -0
  710. package/dist/internal/planning/scan-input.js +58 -0
  711. package/dist/internal/planning/scan-input.js.map +1 -0
  712. package/dist/internal/planning/scan-storage-actions.d.ts +9 -0
  713. package/dist/internal/planning/scan-storage-actions.d.ts.map +1 -0
  714. package/dist/internal/planning/scan-storage-actions.js +27 -0
  715. package/dist/internal/planning/scan-storage-actions.js.map +1 -0
  716. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  717. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  718. package/dist/internal/planning/ship-import-funding.js +53 -0
  719. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  720. package/dist/internal/planning/ship-token.d.ts +1 -6
  721. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  722. package/dist/internal/planning/ship-token.js +0 -37
  723. package/dist/internal/planning/ship-token.js.map +1 -1
  724. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  725. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  726. package/dist/internal/planning/starbase-player-owner.js +17 -0
  727. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  728. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +7 -0
  729. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -0
  730. package/dist/internal/planning/starbase-player-recovery-guard.js +39 -0
  731. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -0
  732. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  733. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  734. package/dist/internal/planning/starbase-system-guard.js +94 -0
  735. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  736. package/dist/internal/planning/starbase-system.d.ts +15 -0
  737. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  738. package/dist/internal/planning/starbase-system.js +25 -0
  739. package/dist/internal/planning/starbase-system.js.map +1 -0
  740. package/dist/internal/planning/storage-action-readers.d.ts +10 -0
  741. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
  742. package/dist/internal/planning/storage-action-readers.js +58 -0
  743. package/dist/internal/planning/storage-action-readers.js.map +1 -0
  744. package/dist/internal/planning/storage-actions.d.ts +89 -0
  745. package/dist/internal/planning/storage-actions.d.ts.map +1 -0
  746. package/dist/internal/planning/storage-actions.js +183 -0
  747. package/dist/internal/planning/storage-actions.js.map +1 -0
  748. package/dist/internal/planning/token-mint.d.ts.map +1 -1
  749. package/dist/internal/planning/token-mint.js +2 -1
  750. package/dist/internal/planning/token-mint.js.map +1 -1
  751. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  752. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  753. package/dist/internal/planning/trade-faction-market.js +56 -0
  754. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  755. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  756. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  757. package/dist/internal/planning/wallet-starbase.js +39 -0
  758. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  759. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  760. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  761. package/dist/internal/planning/xp-runtime.js +122 -0
  762. package/dist/internal/planning/xp-runtime.js.map +1 -0
  763. package/dist/internal/read-meta.d.ts +12 -0
  764. package/dist/internal/read-meta.d.ts.map +1 -1
  765. package/dist/internal/read-meta.js +10 -0
  766. package/dist/internal/read-meta.js.map +1 -1
  767. package/dist/internal/system-program.d.ts +4 -0
  768. package/dist/internal/system-program.d.ts.map +1 -0
  769. package/dist/internal/system-program.js +3 -0
  770. package/dist/internal/system-program.js.map +1 -0
  771. package/dist/loyalty/actions/index.d.ts +1 -1
  772. package/dist/loyalty/actions/index.d.ts.map +1 -1
  773. package/dist/loyalty/actions/index.js +16 -46
  774. package/dist/loyalty/actions/index.js.map +1 -1
  775. package/dist/loyalty/index.d.ts +4 -0
  776. package/dist/loyalty/index.d.ts.map +1 -1
  777. package/dist/loyalty/index.js +21 -33
  778. package/dist/loyalty/index.js.map +1 -1
  779. package/dist/markets/actions/index.d.ts +62 -4
  780. package/dist/markets/actions/index.d.ts.map +1 -1
  781. package/dist/markets/actions/index.js +261 -187
  782. package/dist/markets/actions/index.js.map +1 -1
  783. package/dist/markets/actions/trade-faction-market.d.ts +45 -0
  784. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  785. package/dist/markets/actions/trade-faction-market.js +311 -0
  786. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  787. package/dist/markets/index.d.ts +38 -7
  788. package/dist/markets/index.d.ts.map +1 -1
  789. package/dist/markets/index.js +59 -20
  790. package/dist/markets/index.js.map +1 -1
  791. package/dist/mining/actions/index.d.ts +18 -15
  792. package/dist/mining/actions/index.d.ts.map +1 -1
  793. package/dist/mining/actions/index.js +146 -69
  794. package/dist/mining/actions/index.js.map +1 -1
  795. package/dist/mining/estimate-input.d.ts +103 -0
  796. package/dist/mining/estimate-input.d.ts.map +1 -0
  797. package/dist/mining/estimate-input.js +86 -0
  798. package/dist/mining/estimate-input.js.map +1 -0
  799. package/dist/mining/estimate.d.ts +114 -0
  800. package/dist/mining/estimate.d.ts.map +1 -0
  801. package/dist/mining/estimate.js +127 -0
  802. package/dist/mining/estimate.js.map +1 -0
  803. package/dist/mining/index.d.ts +10 -2
  804. package/dist/mining/index.d.ts.map +1 -1
  805. package/dist/mining/index.js +11 -13
  806. package/dist/mining/index.js.map +1 -1
  807. package/dist/mining/profile.d.ts +82 -0
  808. package/dist/mining/profile.d.ts.map +1 -0
  809. package/dist/mining/profile.js +109 -0
  810. package/dist/mining/profile.js.map +1 -0
  811. package/dist/planning/assembly.d.ts +6 -1
  812. package/dist/planning/assembly.d.ts.map +1 -1
  813. package/dist/planning/assembly.js +12 -8
  814. package/dist/planning/assembly.js.map +1 -1
  815. package/dist/planning/execution.d.ts +19 -3
  816. package/dist/planning/execution.d.ts.map +1 -1
  817. package/dist/planning/execution.js +623 -72
  818. package/dist/planning/execution.js.map +1 -1
  819. package/dist/planning/index.d.ts +252 -165
  820. package/dist/planning/index.d.ts.map +1 -1
  821. package/dist/planning/index.js +31 -388
  822. package/dist/planning/index.js.map +1 -1
  823. package/dist/planning/plan-construction.d.ts +25 -0
  824. package/dist/planning/plan-construction.d.ts.map +1 -0
  825. package/dist/planning/plan-construction.js +143 -0
  826. package/dist/planning/plan-construction.js.map +1 -0
  827. package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
  828. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
  829. package/dist/planning/plan-sequence-checkpoint.js +16 -7
  830. package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
  831. package/dist/planning/plan-sequence-execution.d.ts +5 -0
  832. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  833. package/dist/planning/plan-sequence-execution.js +74 -40
  834. package/dist/planning/plan-sequence-execution.js.map +1 -1
  835. package/dist/planning/plan-sequence.d.ts +2 -1
  836. package/dist/planning/plan-sequence.d.ts.map +1 -1
  837. package/dist/planning/plan-sequence.js +8 -1
  838. package/dist/planning/plan-sequence.js.map +1 -1
  839. package/dist/planning/plan-validation.d.ts +17 -0
  840. package/dist/planning/plan-validation.d.ts.map +1 -0
  841. package/dist/planning/plan-validation.js +147 -0
  842. package/dist/planning/plan-validation.js.map +1 -0
  843. package/dist/planning/simulation.d.ts +25 -1
  844. package/dist/planning/simulation.d.ts.map +1 -1
  845. package/dist/planning/simulation.js +111 -11
  846. package/dist/planning/simulation.js.map +1 -1
  847. package/dist/registry/cargo.d.ts +7 -12
  848. package/dist/registry/cargo.d.ts.map +1 -1
  849. package/dist/registry/cargo.js +19 -20
  850. package/dist/registry/cargo.js.map +1 -1
  851. package/dist/registry/definition-section-snapshot.d.ts +1 -1
  852. package/dist/registry/definition-section-snapshot.d.ts.map +1 -1
  853. package/dist/registry/definition-section-snapshot.js +10 -3
  854. package/dist/registry/definition-section-snapshot.js.map +1 -1
  855. package/dist/registry/docking.d.ts +10 -0
  856. package/dist/registry/docking.d.ts.map +1 -0
  857. package/dist/registry/docking.js +12 -0
  858. package/dist/registry/docking.js.map +1 -0
  859. package/dist/registry/index.d.ts +35 -4
  860. package/dist/registry/index.d.ts.map +1 -1
  861. package/dist/registry/index.js +226 -227
  862. package/dist/registry/index.js.map +1 -1
  863. package/dist/registry/onboarding.d.ts +10 -2
  864. package/dist/registry/onboarding.d.ts.map +1 -1
  865. package/dist/registry/onboarding.js +22 -7
  866. package/dist/registry/onboarding.js.map +1 -1
  867. package/dist/registry/scanning.d.ts +7 -0
  868. package/dist/registry/scanning.d.ts.map +1 -0
  869. package/dist/registry/scanning.js +13 -0
  870. package/dist/registry/scanning.js.map +1 -0
  871. package/dist/registry/ship-stats-snapshot.d.ts.map +1 -1
  872. package/dist/registry/ship-stats-snapshot.js +38 -24
  873. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  874. package/dist/registry/ships.d.ts +22 -2
  875. package/dist/registry/ships.d.ts.map +1 -1
  876. package/dist/registry/ships.js +31 -4
  877. package/dist/registry/ships.js.map +1 -1
  878. package/dist/registry/xp-runtime.d.ts +4 -0
  879. package/dist/registry/xp-runtime.d.ts.map +1 -0
  880. package/dist/registry/xp-runtime.js +14 -0
  881. package/dist/registry/xp-runtime.js.map +1 -0
  882. package/dist/rewards/index.d.ts +11 -5
  883. package/dist/rewards/index.d.ts.map +1 -1
  884. package/dist/rewards/index.js +10 -21
  885. package/dist/rewards/index.js.map +1 -1
  886. package/dist/scanning/actions/index.d.ts +116 -0
  887. package/dist/scanning/actions/index.d.ts.map +1 -0
  888. package/dist/scanning/actions/index.js +215 -0
  889. package/dist/scanning/actions/index.js.map +1 -0
  890. package/dist/scanning/index.d.ts +10 -12
  891. package/dist/scanning/index.d.ts.map +1 -1
  892. package/dist/scanning/index.js +19 -23
  893. package/dist/scanning/index.js.map +1 -1
  894. package/dist/scanning/lifecycle.d.ts +77 -0
  895. package/dist/scanning/lifecycle.d.ts.map +1 -0
  896. package/dist/scanning/lifecycle.js +93 -0
  897. package/dist/scanning/lifecycle.js.map +1 -0
  898. package/dist/scanning/odds.d.ts +115 -0
  899. package/dist/scanning/odds.d.ts.map +1 -0
  900. package/dist/scanning/odds.js +294 -0
  901. package/dist/scanning/odds.js.map +1 -0
  902. package/dist/scanning/signals.d.ts +126 -0
  903. package/dist/scanning/signals.d.ts.map +1 -0
  904. package/dist/scanning/signals.js +173 -0
  905. package/dist/scanning/signals.js.map +1 -0
  906. package/dist/starbases/actions/index.d.ts +49 -4
  907. package/dist/starbases/actions/index.d.ts.map +1 -1
  908. package/dist/starbases/actions/index.js +120 -69
  909. package/dist/starbases/actions/index.js.map +1 -1
  910. package/dist/starbases/index.d.ts +18 -0
  911. package/dist/starbases/index.d.ts.map +1 -1
  912. package/dist/starbases/index.js +24 -11
  913. package/dist/starbases/index.js.map +1 -1
  914. package/dist/world/index.d.ts +185 -6
  915. package/dist/world/index.d.ts.map +1 -1
  916. package/dist/world/index.js +186 -15
  917. package/dist/world/index.js.map +1 -1
  918. package/dist/world/planet-claim-stake-plots.d.ts +139 -0
  919. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
  920. package/dist/world/planet-claim-stake-plots.js +117 -0
  921. package/dist/world/planet-claim-stake-plots.js.map +1 -0
  922. package/dist/world/starbase-status.d.ts +217 -0
  923. package/dist/world/starbase-status.d.ts.map +1 -0
  924. package/dist/world/starbase-status.js +218 -0
  925. package/dist/world/starbase-status.js.map +1 -0
  926. package/package.json +6 -2
@@ -0,0 +1,79 @@
1
+ import { InvalidDerivationInputError } from '../client/index.js';
2
+ import { attachJsonSerialization } from '../internal/json.js';
3
+ const amountMax = (1n << 64n) - 1n;
4
+ const modifierScale = 1n << 32n;
5
+ const remedy = 'Refresh the source connection, source Starbase level, playable Fleet/Starbase factions, Fleet-to-destination relationship, fee modifier and toll basis points. Only qualified nonnegative values and a u64 ATLAS debit are supported; simulate the lane Plan before signing.';
6
+ function invalid(field, value) {
7
+ throw new InvalidDerivationInputError(field, value, remedy);
8
+ }
9
+ /** Estimates the Character ATLAS toll using deployment-54356023 lane rules.
10
+ * Selects cost by departure level. Ceils the Character-modified base, then adds
11
+ * a separately floored surcharge on the unmodified base if either endpoint is
12
+ * foreign. Allied uses allied bps; neutral/hostile/ceasefire use neutral bps.
13
+ * A foreign source with own destination uses neutral bps. Modifier zero waives
14
+ * only the modified base. Relationship expiry does not alter the measured toll.
15
+ *
16
+ * Accepts playable factions only, usable source levels, u64 raw base cost,
17
+ * nonnegative i64 raw I32F32 modifier, and u16 bps. Rejects a result beyond u64.
18
+ * No RPC, balance, connection, region, permission or execution checks occur.
19
+ * ATLAS is paid from Character, not wallet. Requalify after program changes.
20
+ * @example
21
+ * ```ts
22
+ * declare const input: FleetWarpLaneTollInput;
23
+ * const toll = deriveFleetWarpLaneToll(input);
24
+ * console.log(toll.totalRaw);
25
+ * ```
26
+ */
27
+ export function deriveFleetWarpLaneToll(input) {
28
+ for (const [field, faction] of [
29
+ ['Fleet faction', input.fleetFaction],
30
+ ['Source owner', input.sourceOwner],
31
+ ['Destination owner', input.destinationOwner],
32
+ ])
33
+ if (faction !== 'mud' && faction !== 'oni' && faction !== 'ustur')
34
+ invalid(field, faction);
35
+ const levelKeys = {
36
+ 'level-1': 'level1Raw',
37
+ 'level-2': 'level2Raw',
38
+ 'level-3': 'level3Raw',
39
+ 'level-4': 'level4Raw',
40
+ 'level-5': 'level5Raw',
41
+ css: 'cssRaw',
42
+ };
43
+ if (!Object.hasOwn(levelKeys, input.sourceLevel))
44
+ invalid('Source Starbase level', input.sourceLevel);
45
+ const baseRaw = input.costs[levelKeys[input.sourceLevel]];
46
+ if (baseRaw < 0n || baseRaw > amountMax)
47
+ invalid('Base ATLAS toll raw', baseRaw);
48
+ if (input.feeModifierRaw < 0n || input.feeModifierRaw > (1n << 63n) - 1n)
49
+ invalid('Character lane fee modifier raw', input.feeModifierRaw);
50
+ for (const [field, bps] of [
51
+ ['Allied toll bps', input.alliedTollBps],
52
+ ['Neutral toll bps', input.neutralTollBps],
53
+ ])
54
+ if (!Number.isInteger(bps) || bps < 0 || bps > 65535)
55
+ invalid(field, bps);
56
+ const relation = input.destinationRelationship;
57
+ if (relation !== 'allied' &&
58
+ relation !== 'neutral' &&
59
+ relation !== 'hostile' &&
60
+ relation !== 'ceasefire')
61
+ invalid('Destination relationship', relation);
62
+ const crossFaction = input.sourceOwner !== input.fleetFaction ||
63
+ input.destinationOwner !== input.fleetFaction;
64
+ const bps = input.destinationOwner !== input.fleetFaction && relation === 'allied'
65
+ ? input.alliedTollBps
66
+ : input.neutralTollBps;
67
+ const modifiedBaseRaw = (baseRaw * input.feeModifierRaw + modifierScale - 1n) / modifierScale;
68
+ const surchargeRaw = crossFaction ? (baseRaw * BigInt(bps)) / 10000n : 0n;
69
+ const totalRaw = modifiedBaseRaw + surchargeRaw;
70
+ if (totalRaw > amountMax)
71
+ invalid('Total ATLAS toll raw', totalRaw);
72
+ return Object.freeze(attachJsonSerialization({
73
+ baseRaw,
74
+ modifiedBaseRaw,
75
+ surchargeRaw,
76
+ totalRaw,
77
+ }));
78
+ }
79
+ //# sourceMappingURL=warp-lane-toll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-lane-toll.js","sourceRoot":"","sources":["../../src/fleets/warp-lane-toll.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type Address } from '@solana/kit';
2
2
  import type { SageContext } from '../../client/contracts.js';
3
- import { type Plan } from '../../planning/index.js';
3
+ import type { Plan } from '../../planning/index.js';
4
4
  /** One explicitly scoped key and its exact unsigned 64-bit permission mask.
5
5
  * `expiresAt` is a nonnegative Unix timestamp in seconds; omission means no expiry.
6
6
  * Profile AUTH keys must omit expiry and must be directly signing addresses.
@@ -1 +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"}
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,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;;;;;;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"}
@@ -2,7 +2,7 @@ import { isAddress, isOffCurveAddress } from '@solana/kit';
2
2
  import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
3
  import { readContextRawAccounts } from '../../client/reconciliation.js';
4
4
  import { createProfileInstruction, isProfileCreationAuthority, } from '../../internal/c4/profile-creation.js';
5
- import { createPlan } from '../../planning/index.js';
5
+ import { buildPlannerPlan } from '../../planning/plan-construction.js';
6
6
  function invalid(field, value, remedy) {
7
7
  throw new InvalidActionInputError(field, value, 'explicit valid Profile creation input', remedy);
8
8
  }
@@ -111,7 +111,7 @@ export async function planCreateProfile(ctx, profileAddress, input) {
111
111
  if (existing)
112
112
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Profile target ${profile} already exists. Read an existing Profile with getProfile, or select a fresh signer address; creation is not idempotent.`, { address: profile });
113
113
  const summary = `Create Profile ${profile} with ${captured.keys.length} explicitly scoped keys and protected Profile update threshold ${captured.keyThreshold}. ${captured.keys.map((key, index) => `Key ${index}: address ${key.address}, scope ${key.scope}, permissionsRaw ${key.permissionsRaw} (0x${key.permissionsRaw.toString(16)}), expiresAt ${key.expiresAt === undefined ? 'never' : key.expiresAt}, role ${isProfileCreationAuthority(key) ? 'Profile AUTH signer' : 'readonly key'}.`).join(' ')} Review these exact scoped permission masks; the threshold does not establish gameplay-wide multisig. Funder ${captured.funder} pays storage rent; transaction fees are separate. The Profile, funder and every Profile AUTH key sign creation. Rent, balances and final creation remain chain-authoritative: simulate before signing, then use getProfile after confirmed execution to verify keys, scopes, permissionsRaw and keyThreshold. No other onboarding or balance top-up is included.`;
114
- return createPlan({
114
+ return buildPlannerPlan({
115
115
  kind: 'identity.create-profile',
116
116
  summary,
117
117
  preconditions: [
@@ -1 +1 @@
1
- {"version":3,"file":"create-profile.js","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-profile.js","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type Address } from '@solana/kit';
2
2
  import type { SageContext } from '../../client/contracts.js';
3
- import { type Plan } from '../../planning/index.js';
3
+ import type { Plan } from '../../planning/index.js';
4
4
  /** Address of the external signer that will fund Character account storage.
5
5
  * Character registration has no Profile-authority or faction signer role.
6
6
  * @example
@@ -17,9 +17,9 @@ export interface PlanRegisterCharacterOptions {
17
17
  * enrollment are not prerequisites for this instruction. Planning never creates
18
18
  * an account, signs, submits, or retains a signer. Existing Characters are rejected;
19
19
  * reuse them through `getCharacterForProfile` or `maybeGetCharacterForProfile`.
20
- * New Plans tolerate unrelated Game definition changes while requiring a valid
21
- * C4 Game, unchanged Profile state, and an absent canonical Character.
22
- * Rent, funder balance, and final creation remain chain-authoritative. Simulate
20
+ * New Plans bind the current Game-2 Character and Career XP creation intent.
21
+ * The canonical accounts, absence, storage pricing, and funder balance are
22
+ * revalidated before signing. Final creation remains chain-authoritative. Simulate
23
23
  * before signing and read the Character after confirmed execution to verify its
24
24
  * exact Profile/Game identity. Submission alone does not prove creation.
25
25
  * @example
@@ -35,4 +35,5 @@ export interface PlanRegisterCharacterOptions {
35
35
  */
36
36
  export declare function planRegisterCharacter(ctx: SageContext, profileAddress: Address, input: PlanRegisterCharacterOptions): Promise<Plan>;
37
37
  export { planCreateProfile, type PlanCreateProfileOptions, type ProfileCreationKeyInput, } from './create-profile.js';
38
+ export { planUnlockResearchNode, type PlanUnlockResearchNodeOptions, } from './research-unlock.js';
38
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identity/actions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAUzE,OAAO,EAEL,KAAK,IAAI,EAEV,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AA2CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,IAAI,CAAC,CA4Ef;AAED,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identity/actions/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAY7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AA+BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,IAAI,CAAC,CAsHf;AAED,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC"}
@@ -1,12 +1,16 @@
1
- import { hashAccountState } from '../../internal/planning/account-state.js';
1
+ import { readCharacterInitialization } from '../../registry/onboarding.js';
2
+ import { calculateRegistrationFunding, isEmptySystemAccount, } from '../../internal/planning/character-registration.js';
2
3
  import { isAddress, isOffCurveAddress } from '@solana/kit';
4
+ import { hashAccountState } from '../../internal/planning/account-state.js';
3
5
  import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
4
6
  import { readContextRawAccounts } from '../../client/reconciliation.js';
5
7
  import { createRegisterCharacterInstruction } from '../../internal/c4/character-registration.js';
6
- import { characterAccountDefinition, profileAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
8
+ import { profileAccountDefinition } from '../../internal/c4/identity.js';
9
+ import { characterAccountDefinition, findCharacterPda, } from '../../internal/c4/character.js';
7
10
  import { requireGameAddress } from '../../internal/game-context.js';
8
- import { createPlan, } from '../../planning/index.js';
9
- import { readFreshGameForCharacterRegistration } from '../../registry/onboarding.js';
11
+ import { RENT_ADDRESS, readRent } from '../../internal/planning/rent.js';
12
+ import { resolveCharacterRegistrationXpRuntime } from '../../internal/planning/xp-runtime.js';
13
+ import { buildPlannerPlan } from '../../planning/plan-construction.js';
10
14
  function validateOptions(input) {
11
15
  if (input === null || typeof input !== 'object' || Array.isArray(input))
12
16
  throw new InvalidActionInputError('options', input, 'an object containing only funder', 'Pass { funder } with the address that will pay for Character account storage.');
@@ -22,22 +26,14 @@ function validateOptions(input) {
22
26
  function fail(message, address) {
23
27
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
24
28
  }
25
- async function observe(account, describes) {
26
- return {
27
- kind: 'account-state',
28
- address: account.address,
29
- dataHash: await hashAccountState(account.owner, account.data),
30
- describes,
31
- };
32
- }
33
29
  /** Plans creation of an existing Profile's canonical Character in the configured Game.
34
30
  * Only the explicit storage funder signs. The Profile's authority and faction
35
31
  * enrollment are not prerequisites for this instruction. Planning never creates
36
32
  * an account, signs, submits, or retains a signer. Existing Characters are rejected;
37
33
  * reuse them through `getCharacterForProfile` or `maybeGetCharacterForProfile`.
38
- * New Plans tolerate unrelated Game definition changes while requiring a valid
39
- * C4 Game, unchanged Profile state, and an absent canonical Character.
40
- * Rent, funder balance, and final creation remain chain-authoritative. Simulate
34
+ * New Plans bind the current Game-2 Character and Career XP creation intent.
35
+ * The canonical accounts, absence, storage pricing, and funder balance are
36
+ * revalidated before signing. Final creation remains chain-authoritative. Simulate
41
37
  * before signing and read the Character after confirmed execution to verify its
42
38
  * exact Profile/Game identity. Submission alone does not prove creation.
43
39
  * @example
@@ -57,16 +53,19 @@ export async function planRegisterCharacter(ctx, profileAddress, input) {
57
53
  throw new InvalidActionInputError('profileAddress', profileAddress, 'an existing Profile account address', 'Pass the Profile address, not a wallet address or loaded signer.');
58
54
  const game = requireGameAddress(ctx);
59
55
  const character = await findCharacterPda(profileAddress, game);
60
- const [gameAccount, [profileAccount, characterAccount]] = await Promise.all([
61
- readFreshGameForCharacterRegistration(ctx),
62
- readContextRawAccounts(ctx, [profileAddress, character]),
56
+ const raw = await readContextRawAccounts(ctx, [
57
+ profileAddress,
58
+ character,
59
+ RENT_ADDRESS,
60
+ funder,
63
61
  ]);
62
+ const [profileAccount, characterAccount, rentAccount, funderAccount] = raw;
64
63
  if (!profileAccount)
65
64
  fail(`Profile ${profileAddress} does not exist. Create or select an existing Profile before registering its Character.`, profileAddress);
66
65
  if (profileAccount.executable)
67
66
  fail(`Profile ${profileAddress} is executable instead of Profile state. Select a valid Player Profile account and retry.`, profileAddress);
68
67
  profileAccountDefinition.decode(profileAccount);
69
- if (characterAccount) {
68
+ if (characterAccount && !isEmptySystemAccount(characterAccount)) {
70
69
  if (characterAccount.executable)
71
70
  fail(`Canonical Character ${character} is executable instead of Character state. Verify the configured Game and account data before retrying.`, character);
72
71
  const existing = characterAccountDefinition.decode(characterAccount);
@@ -74,21 +73,42 @@ export async function planRegisterCharacter(ctx, profileAddress, input) {
74
73
  fail(`Canonical Character ${character} contains a different Profile or Game relationship. Verify the deployment and refresh the account; do not treat it as a missing Character.`, character);
75
74
  fail(`Character ${character} is already registered for Profile ${profileAddress} in Game ${game}. Read and reuse it with getCharacterForProfile or maybeGetCharacterForProfile; registration is not idempotent.`, character);
76
75
  }
77
- const summary = `Register canonical Character ${character} for existing Profile ${profileAddress} in Game ${game}. Funder ${funder} is the sole instruction signer and pays Character account storage; transaction fees are separate. No Profile-authority or faction signature is required. Storage rent, funder balance and final creation remain chain-authoritative: simulate before signing, then use getCharacterForProfile after confirmed execution to verify the Profile/Game identity.`;
78
- return createPlan({
76
+ const initialization = await readCharacterInitialization(ctx);
77
+ const xp = await resolveCharacterRegistrationXpRuntime(ctx, {
78
+ game,
79
+ character,
80
+ });
81
+ if (!rentAccount)
82
+ fail(`Rent sysvar ${RENT_ADDRESS} is missing. Refresh the configured deployment before calculating Character storage funding.`, RENT_ADDRESS);
83
+ if (!funderAccount ||
84
+ funderAccount.executable ||
85
+ funderAccount.owner !== '11111111111111111111111111111111' ||
86
+ funderAccount.data.length !== 0)
87
+ fail(`Character storage funder ${funder} must be an existing non-executable System wallet. Select and fund that signer separately, then prepare registration again.`, funder);
88
+ const minimum = readRent(rentAccount);
89
+ const storage = calculateRegistrationFunding(minimum, initialization.characterSize, characterAccount?.lamports ?? 0n, xp.budgetLamports);
90
+ const funding = storage.requiredLamports;
91
+ if (funderAccount.lamports < funding)
92
+ fail(`Character storage funder ${funder} needs ${funding - funderAccount.lamports} more native lamports. Fund it separately and recreate registration.`, funder);
93
+ const summary = `Register canonical Character ${character} and Career XP budget ${xp.xpBudget} for existing Profile ${profileAddress} in Game ${game}. Funder ${funder} is the sole instruction signer and provides the observed ${funding} lamports of account storage funding; transaction fees are separate. Character v0 allocates ${initialization.characterSize} bytes, Career XP budget v1 allocates 280 bytes with reconciliation marker 1. Net storage debit is ${storage.netDebit} lamports, including a ${storage.refund} lamport Character refund after budget funding; excess budget funding is retained. Valid empty System pre-funded targets are supported. XP budget configuration ${xp.xpBudgetConfig} remains Game-owned and is not created. No Profile-authority or faction signature is required. Funding is revalidated before signing; fees, intervening changes and final creation remain chain-authoritative. Simulate before signing, then use getCharacterForProfile after confirmed execution to verify the Profile/Game identity.`;
94
+ return buildPlannerPlan({
79
95
  kind: 'identity.register-character',
80
96
  summary,
81
97
  preconditions: [
82
- await observe(profileAccount, `Profile ${profileAddress} retains its validated Player Profile state.`),
83
- {
84
- kind: 'game-account',
85
- address: gameAccount.address,
86
- describes: `Game ${game} remains a valid non-executable C4 Game; unrelated definition changes do not invalidate Character registration.`,
87
- },
88
98
  {
89
- kind: 'account-absent',
99
+ kind: 'character-registration',
90
100
  address: character,
91
- describes: `Canonical Character ${character} remains absent; if another transaction registers it, read and reuse it instead.`,
101
+ game,
102
+ profile: profileAddress,
103
+ profileDataHash: await hashAccountState(profileAccount.owner, profileAccount.data),
104
+ funder,
105
+ xpBudget: xp.xpBudget,
106
+ xpBudgetConfig: xp.xpBudgetConfig,
107
+ maximumFunderDebit: funding,
108
+ characterLamports: characterAccount?.lamports ?? 0n,
109
+ budgetLamports: xp.budgetLamports,
110
+ ...initialization,
111
+ describes: `Create canonical Character ${character} and Career XP budget ${xp.xpBudget} with at most ${funding} lamports of storage funding from System wallet ${funder}; require current Game 2, valid Profile and XP configuration, and both targets to remain absent or valid empty System accounts. Initial allocation, refunds and final funder rent status are rechecked before signing.`,
92
112
  },
93
113
  ],
94
114
  steps: [
@@ -100,10 +120,13 @@ export async function planRegisterCharacter(ctx, profileAddress, input) {
100
120
  funder,
101
121
  character,
102
122
  game,
123
+ xpBudget: xp.xpBudget,
124
+ xpBudgetConfig: xp.xpBudgetConfig,
103
125
  }),
104
126
  },
105
127
  ],
106
128
  });
107
129
  }
108
130
  export { planCreateProfile, } from './create-profile.js';
131
+ export { planUnlockResearchNode, } from './research-unlock.js';
109
132
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/identity/actions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/identity/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,uCAAuC,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAcvE,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,MAAM,IAAI,uBAAuB,CAC/B,SAAS,EACT,KAAK,EACL,kCAAkC,EAClC,+EAA+E,CAChF,CAAC;IACJ,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAChC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QACjC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QACzB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;QAEhC,MAAM,IAAI,uBAAuB,CAC/B,gBAAgB,EAChB,MAAM,CAAC,MAAM,EACb,sEAAsE,EACtE,2FAA2F,CAC5F,CAAC;IACJ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,IAAI,CAAC,OAAe,EAAE,OAAgB;IAC7C,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAgB,EAChB,cAAuB,EACvB,KAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;QAClE,MAAM,IAAI,uBAAuB,CAC/B,gBAAgB,EAChB,cAAc,EACd,qCAAqC,EACrC,kEAAkE,CACnE,CAAC;IACJ,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE;QAC5C,cAAc;QACd,SAAS;QACT,YAAY;QACZ,MAAM;KACP,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,GAAG,CAAC;IAC3E,IAAI,CAAC,cAAc;QACjB,IAAI,CACF,WAAW,cAAc,yFAAyF,EAClH,cAAc,CACf,CAAC;IACJ,IAAI,cAAc,CAAC,UAAU;QAC3B,IAAI,CACF,WAAW,cAAc,2FAA2F,EACpH,cAAc,CACf,CAAC;IACJ,wBAAwB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChE,IAAI,gBAAgB,CAAC,UAAU;YAC7B,IAAI,CACF,uBAAuB,SAAS,yGAAyG,EACzI,SAAS,CACV,CAAC;QACJ,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,aAAa,KAAK,cAAc,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;YACrE,IAAI,CACF,uBAAuB,SAAS,4IAA4I,EAC5K,SAAS,CACV,CAAC;QACJ,IAAI,CACF,aAAa,SAAS,sCAAsC,cAAc,YAAY,IAAI,iHAAiH,EAC3M,SAAS,CACV,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,MAAM,qCAAqC,CAAC,GAAG,EAAE;QAC1D,IAAI;QACJ,SAAS;KACV,CAAC,CAAC;IACH,IAAI,CAAC,WAAW;QACd,IAAI,CACF,eAAe,YAAY,8FAA8F,EACzH,YAAY,CACb,CAAC;IACJ,IACE,CAAC,aAAa;QACd,aAAa,CAAC,UAAU;QACxB,aAAa,CAAC,KAAK,KAAK,kCAAkC;QAC1D,aAAa,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAE/B,IAAI,CACF,4BAA4B,MAAM,6HAA6H,EAC/J,MAAM,CACP,CAAC;IACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,4BAA4B,CAC1C,OAAO,EACP,cAAc,CAAC,aAAa,EAC5B,gBAAgB,EAAE,QAAQ,IAAI,EAAE,EAChC,EAAE,CAAC,cAAc,CAClB,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACzC,IAAI,aAAa,CAAC,QAAQ,GAAG,OAAO;QAClC,IAAI,CACF,4BAA4B,MAAM,UAAU,OAAO,GAAG,aAAa,CAAC,QAAQ,sEAAsE,EAClJ,MAAM,CACP,CAAC;IACJ,MAAM,OAAO,GAAG,gCAAgC,SAAS,yBAAyB,EAAE,CAAC,QAAQ,yBAAyB,cAAc,YAAY,IAAI,YAAY,MAAM,6DAA6D,OAAO,+FAA+F,cAAc,CAAC,aAAa,sGAAsG,OAAO,CAAC,QAAQ,0BAA0B,OAAO,CAAC,MAAM,mKAAmK,EAAE,CAAC,cAAc,wUAAwU,CAAC;IAChgC,OAAO,gBAAgB,CAAC;QACtB,IAAI,EAAE,6BAA6B;QACnC,OAAO;QACP,aAAa,EAAE;YACb;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,SAAS;gBAClB,IAAI;gBACJ,OAAO,EAAE,cAAc;gBACvB,eAAe,EAAE,MAAM,gBAAgB,CACrC,cAAc,CAAC,KAAK,EACpB,cAAc,CAAC,IAAI,CACpB;gBACD,MAAM;gBACN,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,cAAc,EAAE,EAAE,CAAC,cAAc;gBACjC,kBAAkB,EAAE,OAAO;gBAC3B,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE;gBACnD,cAAc,EAAE,EAAE,CAAC,cAAc;gBACjC,GAAG,cAAc;gBACjB,SAAS,EAAE,8BAA8B,SAAS,yBAAyB,EAAE,CAAC,QAAQ,iBAAiB,OAAO,mDAAmD,MAAM,wNAAwN;aAChY;SACF;QACD,KAAK,EAAE;YACL;gBACE,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,CAAC,MAAM,CAAC;gBACjB,WAAW,EAAE,kCAAkC,CAAC;oBAC9C,OAAO,EAAE,cAAc;oBACvB,MAAM;oBACN,SAAS;oBACT,IAAI;oBACJ,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,cAAc,EAAE,EAAE,CAAC,cAAc;iBAClC,CAAC;aACH;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EACL,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import { type PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
4
+ import type { Plan } from '../../planning/index.js';
5
+ /** Address-only options for one explicit research node unlock.
6
+ * `system` names the Starbase where the Character's Starbase Player pays any
7
+ * cargo cost; `level` is the level the node reaches, its current level plus one.
8
+ * @example
9
+ * ```ts
10
+ * declare const profile: Address, authority: Address, system: Address;
11
+ * const options: PlanUnlockResearchNodeOptions = {
12
+ * authorization: { profile, authority, keyIndex: 0 },
13
+ * system,
14
+ * level: 1,
15
+ * };
16
+ * ```
17
+ */
18
+ export interface PlanUnlockResearchNodeOptions {
19
+ readonly authorization: PlanAuthorization;
20
+ readonly system: Address;
21
+ readonly level: number;
22
+ }
23
+ /** Plans one explicit research node unlock: the node's next level for the
24
+ * Profile's Character, paid at one of its current Starbase Players.
25
+ * Every required research tag, minimum category level, research point or
26
+ * Renown cost, and ATLAS and Starbase Player cargo cost grown linearly with
27
+ * the current level and rounded down, is checked from fresh accounts, with an
28
+ * exact shortfall when one is missing. The Character's research and XP must
29
+ * match the current Game definitions: the program resynchronizes a stale
30
+ * Character itself when at most 8 node levels are pending, but its result
31
+ * decides eligibility, so the planner refuses with the next step (any SAGE
32
+ * action that validates the Character, or `syncCharacter`). Daily XP costs are
33
+ * refused as unqualified. Uses a direct Profile AUTH key or a doResearch key
34
+ * scoped to SAGE or the Game; certificates are unsupported. The program funds
35
+ * the Character's storage growth, and any Starbase Player rent shortfall, from
36
+ * the Profile vault with the signing key:
37
+ * the Plan bounds that Profile lamport debit from the node's new entries, and
38
+ * a positive debit needs Profile AUTH or a key that also holds drainSolVault,
39
+ * plus Profile lamports above its own rent reserve. The Plan never chooses a
40
+ * level, unlocks prerequisites, synchronizes the Character or signs.
41
+ * Eligibility, definition sequences, the observed ATLAS debit and the Profile
42
+ * storage debit are rechecked before signing; the ceilings are not atomic
43
+ * on-chain caps. The program folds the node's tags and modifier into the
44
+ * Character, and the resulting modifiers remain chain-authoritative: simulate
45
+ * before signing and read the Character after confirmed execution. One unlock
46
+ * per Character composes into a transaction.
47
+ * @example
48
+ * ```ts
49
+ * import { planUnlockResearchNode } from '@aephia/atlas-kit/identity/actions';
50
+ * declare const ctx: SageContext;
51
+ * declare const profile: Address, authority: Address, system: Address;
52
+ * const plan = await planUnlockResearchNode(ctx, 62, {
53
+ * authorization: { profile, authority, keyIndex: 0 },
54
+ * system,
55
+ * level: 1,
56
+ * });
57
+ * console.log(plan.describe());
58
+ * ```
59
+ */
60
+ export declare function planUnlockResearchNode(ctx: SageContext, nodeId: number, input: PlanUnlockResearchNodeOptions): Promise<Plan>;
61
+ //# sourceMappingURL=research-unlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-unlock.d.ts","sourceRoot":"","sources":["../../../src/identity/actions/research-unlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAM1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AA8CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
@@ -0,0 +1,166 @@
1
+ import { isAddress } from '@solana/kit';
2
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
4
+ import { decodeGameResearchUnlockRules } from '../../internal/c4/game.js';
5
+ import { requireGameAddress } from '../../internal/game-context.js';
6
+ import { adaptUnlockResearchNodeInstruction, } from '../../internal/planning/authorization-adapter.js';
7
+ import { readDirectOptions } from '../../internal/planning/direct-options.js';
8
+ import { resolveResearchUnlock, validateResearchUnlock, } from '../../internal/planning/research-unlock.js';
9
+ import { buildPlannerPlan } from '../../planning/plan-construction.js';
10
+ function options(input) {
11
+ const bad = () => {
12
+ throw new InvalidActionInputError('options', input, 'authorization, system and level only; a direct Profile, on-curve authority and u16 keyIndex, a Star System address, and a u32 level of at least 1', 'Pass address-only research options. Certificates are unsupported; use a direct Profile AUTH or doResearch key and the System of a current Starbase Player.');
13
+ };
14
+ const { authorization, value } = readDirectOptions(input, ['authorization', 'system', 'level'], bad);
15
+ if (typeof value.system !== 'string' ||
16
+ !isAddress(value.system) ||
17
+ typeof value.level !== 'number' ||
18
+ !Number.isInteger(value.level) ||
19
+ value.level < 1 ||
20
+ value.level > 4294967295)
21
+ bad();
22
+ return {
23
+ authorization,
24
+ system: value.system,
25
+ level: value.level,
26
+ };
27
+ }
28
+ const UNITS = {
29
+ 'council-rank': 'Renown',
30
+ pilot: 'Pilot research point',
31
+ 'data-runner': 'Data Runner research point',
32
+ mining: 'Mining research point',
33
+ building: 'Building research point',
34
+ crafting: 'Crafting research point',
35
+ combat: 'Combat research point',
36
+ };
37
+ /** Plans one explicit research node unlock: the node's next level for the
38
+ * Profile's Character, paid at one of its current Starbase Players.
39
+ * Every required research tag, minimum category level, research point or
40
+ * Renown cost, and ATLAS and Starbase Player cargo cost grown linearly with
41
+ * the current level and rounded down, is checked from fresh accounts, with an
42
+ * exact shortfall when one is missing. The Character's research and XP must
43
+ * match the current Game definitions: the program resynchronizes a stale
44
+ * Character itself when at most 8 node levels are pending, but its result
45
+ * decides eligibility, so the planner refuses with the next step (any SAGE
46
+ * action that validates the Character, or `syncCharacter`). Daily XP costs are
47
+ * refused as unqualified. Uses a direct Profile AUTH key or a doResearch key
48
+ * scoped to SAGE or the Game; certificates are unsupported. The program funds
49
+ * the Character's storage growth, and any Starbase Player rent shortfall, from
50
+ * the Profile vault with the signing key:
51
+ * the Plan bounds that Profile lamport debit from the node's new entries, and
52
+ * a positive debit needs Profile AUTH or a key that also holds drainSolVault,
53
+ * plus Profile lamports above its own rent reserve. The Plan never chooses a
54
+ * level, unlocks prerequisites, synchronizes the Character or signs.
55
+ * Eligibility, definition sequences, the observed ATLAS debit and the Profile
56
+ * storage debit are rechecked before signing; the ceilings are not atomic
57
+ * on-chain caps. The program folds the node's tags and modifier into the
58
+ * Character, and the resulting modifiers remain chain-authoritative: simulate
59
+ * before signing and read the Character after confirmed execution. One unlock
60
+ * per Character composes into a transaction.
61
+ * @example
62
+ * ```ts
63
+ * import { planUnlockResearchNode } from '@aephia/atlas-kit/identity/actions';
64
+ * declare const ctx: SageContext;
65
+ * declare const profile: Address, authority: Address, system: Address;
66
+ * const plan = await planUnlockResearchNode(ctx, 62, {
67
+ * authorization: { profile, authority, keyIndex: 0 },
68
+ * system,
69
+ * level: 1,
70
+ * });
71
+ * console.log(plan.describe());
72
+ * ```
73
+ */
74
+ export async function planUnlockResearchNode(ctx, nodeId, input) {
75
+ const captured = options(input);
76
+ if (typeof nodeId !== 'number' ||
77
+ !Number.isInteger(nodeId) ||
78
+ nodeId < 0 ||
79
+ nodeId > 65535)
80
+ throw new InvalidActionInputError('nodeId', nodeId, 'a u16 research node ID', 'Choose a node ID from getResearchCatalog and replan.');
81
+ const game = requireGameAddress(ctx);
82
+ const intent = {
83
+ game,
84
+ profile: captured.authorization.profile,
85
+ authority: captured.authorization.authority,
86
+ keyIndex: captured.authorization.keyIndex,
87
+ system: captured.system,
88
+ nodeId,
89
+ level: captured.level,
90
+ };
91
+ const resolved = await resolveResearchUnlock(intent);
92
+ const addresses = [
93
+ game,
94
+ intent.profile,
95
+ resolved.character,
96
+ intent.system,
97
+ resolved.starbasePlayer,
98
+ resolved.currencyCache,
99
+ resolved.clock,
100
+ resolved.rent,
101
+ ];
102
+ const raw = await readContextRawAccounts(ctx, addresses);
103
+ const accounts = new Map(addresses.map((address, index) => [address, raw[index]]));
104
+ const gameAccount = accounts.get(game);
105
+ if (!gameAccount)
106
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `The configured Game ${game} is missing. Refresh the deployment Game before planning research.`, { address: game });
107
+ const rules = decodeGameResearchUnlockRules(gameAccount);
108
+ const spend = await validateResearchUnlock(intent, resolved, accounts, rules);
109
+ const points = spend.points
110
+ .filter(({ costRaw }) => costRaw > 0n)
111
+ .map(({ category, costRaw }) => `${costRaw} ${UNITS[category]}${costRaw === 1n || category === 'council-rank' ? '' : 's'}`);
112
+ const cargo = spend.cargo.map(({ cargoId, quantityRaw }) => `${quantityRaw} of cargo ${cargoId}`);
113
+ const summary = `Unlock research node ${nodeId} "${spend.rule.name}" to level ${spend.level} for Character ${resolved.character}, paid at Starbase Player ${resolved.starbasePlayer} in System ${intent.system}. Spends ${spend.atlasDebit} ATLAS Floyds (100,000,000 Floyds per ATLAS) from the Character into Currency Cache ${resolved.currencyCache}${points.length > 0 ? `, ${points.join(', ')}` : ''}${cargo.length > 0 ? ` and ${cargo.join(', ')} from the Starbase Player cargo` : ''}. The program adds the node's research tags and modifier to the Character; the resulting modifiers remain chain-authoritative. The Character grows by ${spend.characterGrowthBytes} bytes; Character and Starbase Player storage takes at most ${spend.profileDebit} lamports from the Profile vault as locked rent deposit, and any surplus storage lamports return to the Profile. Requirements, definition sequences, the ATLAS debit and the Profile storage debit are rechecked before signing; the ceilings are not atomic on-chain caps. Transaction fees are separate. Simulate before signing and read the Character after confirmed execution.`;
114
+ return buildPlannerPlan({
115
+ kind: 'identity.unlock-research-node',
116
+ summary,
117
+ preconditions: [
118
+ {
119
+ kind: 'research-unlock',
120
+ address: resolved.character,
121
+ game,
122
+ profile: intent.profile,
123
+ authority: intent.authority,
124
+ system: intent.system,
125
+ keyIndex: intent.keyIndex,
126
+ starbasePlayer: resolved.starbasePlayer,
127
+ currencyCache: resolved.currencyCache,
128
+ nodeId,
129
+ level: spend.level,
130
+ researchSequenceId: rules.sequenceId,
131
+ xpSequenceId: rules.xpSequenceId,
132
+ maximumAtlasDebit: spend.atlasDebit,
133
+ maximumProfileDebit: spend.profileDebit,
134
+ describes: 'The research unlock retains the canonical Character, current Starbase Player and Currency Cache, synchronized definitions, the exact next level, every requirement and cost, direct-key doResearch permission, an ATLAS cost within the approved debit, and Profile storage funding within the approved debit with drainSolVault authority when that debit is positive.',
135
+ },
136
+ ],
137
+ steps: [
138
+ {
139
+ describes: summary,
140
+ instruction: adaptUnlockResearchNodeInstruction({
141
+ authorization: captured.authorization,
142
+ character: resolved.character,
143
+ game,
144
+ starbasePlayer: resolved.starbasePlayer,
145
+ system: intent.system,
146
+ currencyCache: resolved.currencyCache,
147
+ nodeId,
148
+ }),
149
+ signers: [intent.authority],
150
+ semantics: [
151
+ {
152
+ kind: 'requires',
153
+ resource: `character:${resolved.character}`,
154
+ fact: 'research-unlock',
155
+ },
156
+ {
157
+ kind: 'invalidates',
158
+ resource: `character:${resolved.character}`,
159
+ fact: 'research-unlock',
160
+ },
161
+ ],
162
+ },
163
+ ],
164
+ });
165
+ }
166
+ //# sourceMappingURL=research-unlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-unlock.js","sourceRoot":"","sources":["../../../src/identity/actions/research-unlock.ts"],"names":[],"mappings":"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"}