@aephia/atlas-kit 0.6.0-next.99 → 0.6.0

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 (761) hide show
  1. package/dist/cargo/actions/deposit.d.ts +4 -1
  2. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  3. package/dist/cargo/actions/deposit.js +56 -133
  4. package/dist/cargo/actions/deposit.js.map +1 -1
  5. package/dist/cargo/actions/index.d.ts +14 -7
  6. package/dist/cargo/actions/index.d.ts.map +1 -1
  7. package/dist/cargo/actions/index.js +101 -89
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  10. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  11. package/dist/cargo/actions/wallet-context.js +118 -7
  12. package/dist/cargo/actions/wallet-context.js.map +1 -1
  13. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  14. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  15. package/dist/cargo/actions/wallet-token.js +0 -45
  16. package/dist/cargo/actions/wallet-token.js.map +1 -1
  17. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  18. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  19. package/dist/cargo/actions/withdrawal.js +37 -163
  20. package/dist/cargo/actions/withdrawal.js.map +1 -1
  21. package/dist/cargo/index.d.ts.map +1 -1
  22. package/dist/cargo/index.js +2 -10
  23. package/dist/cargo/index.js.map +1 -1
  24. package/dist/claim-stakes/actions/index.d.ts +80 -14
  25. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  26. package/dist/claim-stakes/actions/index.js +660 -709
  27. package/dist/claim-stakes/actions/index.js.map +1 -1
  28. package/dist/claim-stakes/index.d.ts +8 -6
  29. package/dist/claim-stakes/index.d.ts.map +1 -1
  30. package/dist/claim-stakes/index.js +12 -18
  31. package/dist/claim-stakes/index.js.map +1 -1
  32. package/dist/client/context.d.ts.map +1 -1
  33. package/dist/client/context.js +353 -37
  34. package/dist/client/context.js.map +1 -1
  35. package/dist/client/contracts.d.ts +54 -1
  36. package/dist/client/contracts.d.ts.map +1 -1
  37. package/dist/client/deployments.d.ts +17 -0
  38. package/dist/client/deployments.d.ts.map +1 -1
  39. package/dist/client/deployments.js +17 -0
  40. package/dist/client/deployments.js.map +1 -1
  41. package/dist/client/index.d.ts +22 -1
  42. package/dist/client/index.d.ts.map +1 -1
  43. package/dist/client/index.js +21 -0
  44. package/dist/client/index.js.map +1 -1
  45. package/dist/client/rpc-subscription-provider.d.ts +2 -0
  46. package/dist/client/rpc-subscription-provider.d.ts.map +1 -1
  47. package/dist/client/rpc-subscription-provider.js +135 -101
  48. package/dist/client/rpc-subscription-provider.js.map +1 -1
  49. package/dist/combat/actions/index.d.ts +30 -12
  50. package/dist/combat/actions/index.d.ts.map +1 -1
  51. package/dist/combat/actions/index.js +264 -252
  52. package/dist/combat/actions/index.js.map +1 -1
  53. package/dist/combat/index.d.ts +25 -8
  54. package/dist/combat/index.d.ts.map +1 -1
  55. package/dist/combat/index.js +21 -18
  56. package/dist/combat/index.js.map +1 -1
  57. package/dist/crafting/actions/fee-rate.d.ts +47 -0
  58. package/dist/crafting/actions/fee-rate.d.ts.map +1 -0
  59. package/dist/crafting/actions/fee-rate.js +58 -0
  60. package/dist/crafting/actions/fee-rate.js.map +1 -0
  61. package/dist/crafting/actions/index.d.ts +28 -28
  62. package/dist/crafting/actions/index.d.ts.map +1 -1
  63. package/dist/crafting/actions/index.js +243 -314
  64. package/dist/crafting/actions/index.js.map +1 -1
  65. package/dist/crafting/estimate.d.ts +101 -0
  66. package/dist/crafting/estimate.d.ts.map +1 -0
  67. package/dist/crafting/estimate.js +108 -0
  68. package/dist/crafting/estimate.js.map +1 -0
  69. package/dist/crafting/index.d.ts +6 -5
  70. package/dist/crafting/index.d.ts.map +1 -1
  71. package/dist/crafting/index.js +6 -13
  72. package/dist/crafting/index.js.map +1 -1
  73. package/dist/factions/actions/index.d.ts +1 -1
  74. package/dist/factions/actions/index.d.ts.map +1 -1
  75. package/dist/factions/actions/index.js +5 -4
  76. package/dist/factions/actions/index.js.map +1 -1
  77. package/dist/factions/index.d.ts +18 -1
  78. package/dist/factions/index.d.ts.map +1 -1
  79. package/dist/factions/index.js +24 -18
  80. package/dist/factions/index.js.map +1 -1
  81. package/dist/fleets/actions/add-ship.d.ts +18 -5
  82. package/dist/fleets/actions/add-ship.d.ts.map +1 -1
  83. package/dist/fleets/actions/add-ship.js +35 -48
  84. package/dist/fleets/actions/add-ship.js.map +1 -1
  85. package/dist/fleets/actions/create-fleet.d.ts +1 -1
  86. package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
  87. package/dist/fleets/actions/create-fleet.js +8 -38
  88. package/dist/fleets/actions/create-fleet.js.map +1 -1
  89. package/dist/fleets/actions/crew-transfer.d.ts +8 -4
  90. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
  91. package/dist/fleets/actions/crew-transfer.js +27 -42
  92. package/dist/fleets/actions/crew-transfer.js.map +1 -1
  93. package/dist/fleets/actions/deployment-storage.d.ts +161 -0
  94. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -0
  95. package/dist/fleets/actions/deployment-storage.js +297 -0
  96. package/dist/fleets/actions/deployment-storage.js.map +1 -0
  97. package/dist/fleets/actions/disband.d.ts +42 -0
  98. package/dist/fleets/actions/disband.d.ts.map +1 -0
  99. package/dist/fleets/actions/disband.js +107 -0
  100. package/dist/fleets/actions/disband.js.map +1 -0
  101. package/dist/fleets/actions/index.d.ts +55 -11
  102. package/dist/fleets/actions/index.d.ts.map +1 -1
  103. package/dist/fleets/actions/index.js +282 -235
  104. package/dist/fleets/actions/index.js.map +1 -1
  105. package/dist/fleets/actions/respawn.d.ts +1 -1
  106. package/dist/fleets/actions/respawn.d.ts.map +1 -1
  107. package/dist/fleets/actions/respawn.js +8 -37
  108. package/dist/fleets/actions/respawn.js.map +1 -1
  109. package/dist/fleets/actions/ship-import.d.ts +1 -1
  110. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  111. package/dist/fleets/actions/ship-import.js +39 -91
  112. package/dist/fleets/actions/ship-import.js.map +1 -1
  113. package/dist/fleets/actions/sync.d.ts +24 -0
  114. package/dist/fleets/actions/sync.d.ts.map +1 -0
  115. package/dist/fleets/actions/sync.js +55 -0
  116. package/dist/fleets/actions/sync.js.map +1 -0
  117. package/dist/fleets/composition-stats.d.ts +101 -0
  118. package/dist/fleets/composition-stats.d.ts.map +1 -0
  119. package/dist/fleets/composition-stats.js +354 -0
  120. package/dist/fleets/composition-stats.js.map +1 -0
  121. package/dist/fleets/cooldown.d.ts +7 -4
  122. package/dist/fleets/cooldown.d.ts.map +1 -1
  123. package/dist/fleets/cooldown.js +11 -6
  124. package/dist/fleets/cooldown.js.map +1 -1
  125. package/dist/fleets/index.d.ts +1 -0
  126. package/dist/fleets/index.d.ts.map +1 -1
  127. package/dist/fleets/index.js +3 -10
  128. package/dist/fleets/index.js.map +1 -1
  129. package/dist/fleets/movement-arithmetic.d.ts.map +1 -1
  130. package/dist/fleets/movement-arithmetic.js +4 -0
  131. package/dist/fleets/movement-arithmetic.js.map +1 -1
  132. package/dist/fleets/subwarp-estimate.d.ts +3 -1
  133. package/dist/fleets/subwarp-estimate.d.ts.map +1 -1
  134. package/dist/fleets/subwarp-estimate.js +3 -1
  135. package/dist/fleets/subwarp-estimate.js.map +1 -1
  136. package/dist/fleets/warp-lane-policy.d.ts +13 -7
  137. package/dist/fleets/warp-lane-policy.d.ts.map +1 -1
  138. package/dist/fleets/warp-lane-policy.js +19 -7
  139. package/dist/fleets/warp-lane-policy.js.map +1 -1
  140. package/dist/identity/actions/create-profile.d.ts +1 -1
  141. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  142. package/dist/identity/actions/create-profile.js +2 -2
  143. package/dist/identity/actions/create-profile.js.map +1 -1
  144. package/dist/identity/actions/index.d.ts +2 -1
  145. package/dist/identity/actions/index.d.ts.map +1 -1
  146. package/dist/identity/actions/index.js +6 -4
  147. package/dist/identity/actions/index.js.map +1 -1
  148. package/dist/identity/actions/research-unlock.d.ts +61 -0
  149. package/dist/identity/actions/research-unlock.d.ts.map +1 -0
  150. package/dist/identity/actions/research-unlock.js +166 -0
  151. package/dist/identity/actions/research-unlock.js.map +1 -0
  152. package/dist/identity/index.d.ts +62 -2
  153. package/dist/identity/index.d.ts.map +1 -1
  154. package/dist/identity/index.js +63 -12
  155. package/dist/identity/index.js.map +1 -1
  156. package/dist/index.d.ts +2 -1
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +4 -4
  159. package/dist/index.js.map +1 -1
  160. package/dist/internal/c4/account-decoding.d.ts +49 -0
  161. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  162. package/dist/internal/c4/account-decoding.js +74 -0
  163. package/dist/internal/c4/account-decoding.js.map +1 -0
  164. package/dist/internal/c4/career-xp.d.ts +58 -0
  165. package/dist/internal/c4/career-xp.d.ts.map +1 -0
  166. package/dist/internal/c4/career-xp.js +80 -0
  167. package/dist/internal/c4/career-xp.js.map +1 -0
  168. package/dist/internal/c4/cargo-instructions.d.ts +24 -0
  169. package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
  170. package/dist/internal/c4/cargo-instructions.js +30 -0
  171. package/dist/internal/c4/cargo-instructions.js.map +1 -0
  172. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  173. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  174. package/dist/internal/c4/cargo-pod.js +13 -0
  175. package/dist/internal/c4/cargo-pod.js.map +1 -0
  176. package/dist/internal/c4/character-modifier.d.ts +1 -1
  177. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  178. package/dist/internal/c4/character.d.ts +157 -0
  179. package/dist/internal/c4/character.d.ts.map +1 -0
  180. package/dist/internal/c4/character.js +64 -0
  181. package/dist/internal/c4/character.js.map +1 -0
  182. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  183. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  184. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  185. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  186. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  187. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  188. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -0
  189. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  190. package/dist/internal/c4/claim-stake-definitions.js +6 -2
  191. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  192. package/dist/internal/c4/claim-stake-plots.d.ts +17 -0
  193. package/dist/internal/c4/claim-stake-plots.d.ts.map +1 -0
  194. package/dist/internal/c4/claim-stake-plots.js +29 -0
  195. package/dist/internal/c4/claim-stake-plots.js.map +1 -0
  196. package/dist/internal/c4/claim-stake-standing.d.ts +80 -0
  197. package/dist/internal/c4/claim-stake-standing.d.ts.map +1 -0
  198. package/dist/internal/c4/claim-stake-standing.js +61 -0
  199. package/dist/internal/c4/claim-stake-standing.js.map +1 -0
  200. package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
  201. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
  202. package/dist/internal/c4/claim-stake-storage.js +207 -0
  203. package/dist/internal/c4/claim-stake-storage.js.map +1 -0
  204. package/dist/internal/c4/claim-stake.d.ts +9 -6
  205. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  206. package/dist/internal/c4/claim-stake.js +24 -56
  207. package/dist/internal/c4/claim-stake.js.map +1 -1
  208. package/dist/internal/c4/combat-storage.d.ts +20 -0
  209. package/dist/internal/c4/combat-storage.d.ts.map +1 -0
  210. package/dist/internal/c4/combat-storage.js +43 -0
  211. package/dist/internal/c4/combat-storage.js.map +1 -0
  212. package/dist/internal/c4/combat.d.ts +1 -55
  213. package/dist/internal/c4/combat.d.ts.map +1 -1
  214. package/dist/internal/c4/combat.js +16 -180
  215. package/dist/internal/c4/combat.js.map +1 -1
  216. package/dist/internal/c4/crafting-storage.d.ts +20 -0
  217. package/dist/internal/c4/crafting-storage.d.ts.map +1 -0
  218. package/dist/internal/c4/crafting-storage.js +54 -0
  219. package/dist/internal/c4/crafting-storage.js.map +1 -0
  220. package/dist/internal/c4/crafting.d.ts +9 -1
  221. package/dist/internal/c4/crafting.d.ts.map +1 -1
  222. package/dist/internal/c4/crafting.js +38 -98
  223. package/dist/internal/c4/crafting.js.map +1 -1
  224. package/dist/internal/c4/currency-cache.d.ts +1 -1
  225. package/dist/internal/c4/currency-cache.d.ts.map +1 -1
  226. package/dist/internal/c4/currency-cache.js +6 -9
  227. package/dist/internal/c4/currency-cache.js.map +1 -1
  228. package/dist/internal/c4/discriminators.d.ts +93 -0
  229. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  230. package/dist/internal/c4/discriminators.js +190 -0
  231. package/dist/internal/c4/discriminators.js.map +1 -0
  232. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
  233. package/dist/internal/c4/faction-epoch-meter.js +5 -10
  234. package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
  235. package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
  236. package/dist/internal/c4/faction-treasury.js +11 -18
  237. package/dist/internal/c4/faction-treasury.js.map +1 -1
  238. package/dist/internal/c4/faction.d.ts +21 -0
  239. package/dist/internal/c4/faction.d.ts.map +1 -0
  240. package/dist/internal/c4/faction.js +23 -0
  241. package/dist/internal/c4/faction.js.map +1 -0
  242. package/dist/internal/c4/factions.d.ts +31 -3
  243. package/dist/internal/c4/factions.d.ts.map +1 -1
  244. package/dist/internal/c4/factions.js +103 -104
  245. package/dist/internal/c4/factions.js.map +1 -1
  246. package/dist/internal/c4/fleet-creation.d.ts +9 -2
  247. package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
  248. package/dist/internal/c4/fleet-creation.js +15 -18
  249. package/dist/internal/c4/fleet-creation.js.map +1 -1
  250. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  251. package/dist/internal/c4/fleet-crew-binding.js +21 -49
  252. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  253. package/dist/internal/c4/fleet-disband-layout.d.ts +7 -0
  254. package/dist/internal/c4/fleet-disband-layout.d.ts.map +1 -0
  255. package/dist/internal/c4/fleet-disband-layout.js +7 -0
  256. package/dist/internal/c4/fleet-disband-layout.js.map +1 -0
  257. package/dist/internal/c4/fleet-disband.d.ts +41 -0
  258. package/dist/internal/c4/fleet-disband.d.ts.map +1 -0
  259. package/dist/internal/c4/fleet-disband.js +86 -0
  260. package/dist/internal/c4/fleet-disband.js.map +1 -0
  261. package/dist/internal/c4/fleet-points.d.ts +3 -0
  262. package/dist/internal/c4/fleet-points.d.ts.map +1 -0
  263. package/dist/internal/c4/fleet-points.js +8 -0
  264. package/dist/internal/c4/fleet-points.js.map +1 -0
  265. package/dist/internal/c4/fleet-ship-assembly.d.ts +20 -5
  266. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
  267. package/dist/internal/c4/fleet-ship-assembly.js +62 -10
  268. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
  269. package/dist/internal/c4/fleet-storage.d.ts +44 -0
  270. package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
  271. package/dist/internal/c4/fleet-storage.js +108 -0
  272. package/dist/internal/c4/fleet-storage.js.map +1 -0
  273. package/dist/internal/c4/fleet-sync.d.ts +5 -0
  274. package/dist/internal/c4/fleet-sync.d.ts.map +1 -0
  275. package/dist/internal/c4/fleet-sync.js +15 -0
  276. package/dist/internal/c4/fleet-sync.js.map +1 -0
  277. package/dist/internal/c4/fleet.d.ts +20 -5
  278. package/dist/internal/c4/fleet.d.ts.map +1 -1
  279. package/dist/internal/c4/fleet.js +24 -84
  280. package/dist/internal/c4/fleet.js.map +1 -1
  281. package/dist/internal/c4/game.d.ts +76 -21
  282. package/dist/internal/c4/game.d.ts.map +1 -1
  283. package/dist/internal/c4/game.js +127 -116
  284. package/dist/internal/c4/game.js.map +1 -1
  285. package/dist/internal/c4/identity.d.ts +2 -153
  286. package/dist/internal/c4/identity.d.ts.map +1 -1
  287. package/dist/internal/c4/identity.js +19 -126
  288. package/dist/internal/c4/identity.js.map +1 -1
  289. package/dist/internal/c4/local-market-order.d.ts +4 -6
  290. package/dist/internal/c4/local-market-order.d.ts.map +1 -1
  291. package/dist/internal/c4/local-market-order.js +5 -6
  292. package/dist/internal/c4/local-market-order.js.map +1 -1
  293. package/dist/internal/c4/loot-layout.js +1 -1
  294. package/dist/internal/c4/loot-layout.js.map +1 -1
  295. package/dist/internal/c4/loot.d.ts +89 -0
  296. package/dist/internal/c4/loot.d.ts.map +1 -0
  297. package/dist/internal/c4/loot.js +109 -0
  298. package/dist/internal/c4/loot.js.map +1 -0
  299. package/dist/internal/c4/loyalty.d.ts +7 -3
  300. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  301. package/dist/internal/c4/loyalty.js +41 -130
  302. package/dist/internal/c4/loyalty.js.map +1 -1
  303. package/dist/internal/c4/market-storage.d.ts +25 -0
  304. package/dist/internal/c4/market-storage.d.ts.map +1 -0
  305. package/dist/internal/c4/market-storage.js +53 -0
  306. package/dist/internal/c4/market-storage.js.map +1 -0
  307. package/dist/internal/c4/market.d.ts +3 -0
  308. package/dist/internal/c4/market.d.ts.map +1 -1
  309. package/dist/internal/c4/market.js +20 -76
  310. package/dist/internal/c4/market.js.map +1 -1
  311. package/dist/internal/c4/mining-instructions.d.ts +1 -1
  312. package/dist/internal/c4/mining-instructions.d.ts.map +1 -1
  313. package/dist/internal/c4/mining-instructions.js +1 -1
  314. package/dist/internal/c4/mining-instructions.js.map +1 -1
  315. package/dist/internal/c4/open-signal.d.ts +1 -1
  316. package/dist/internal/c4/open-signal.d.ts.map +1 -1
  317. package/dist/internal/c4/open-signal.js +1 -1
  318. package/dist/internal/c4/open-signal.js.map +1 -1
  319. package/dist/internal/c4/pda.d.ts +49 -1
  320. package/dist/internal/c4/pda.d.ts.map +1 -1
  321. package/dist/internal/c4/pda.js +122 -17
  322. package/dist/internal/c4/pda.js.map +1 -1
  323. package/dist/internal/c4/profile-faction.d.ts +2 -1
  324. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  325. package/dist/internal/c4/profile-faction.js +36 -72
  326. package/dist/internal/c4/profile-faction.js.map +1 -1
  327. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  328. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  329. package/dist/internal/c4/profile-permissions.js +16 -1
  330. package/dist/internal/c4/profile-permissions.js.map +1 -1
  331. package/dist/internal/c4/rewards.d.ts +1 -34
  332. package/dist/internal/c4/rewards.d.ts.map +1 -1
  333. package/dist/internal/c4/rewards.js +23 -170
  334. package/dist/internal/c4/rewards.js.map +1 -1
  335. package/dist/internal/c4/runtime-bindings.d.ts +1 -1
  336. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  337. package/dist/internal/c4/runtime-bindings.js +1 -1
  338. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  339. package/dist/internal/c4/scan-lifecycle.d.ts +21 -3
  340. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  341. package/dist/internal/c4/scan-lifecycle.js +35 -44
  342. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  343. package/dist/internal/c4/scan-storage.d.ts +7 -0
  344. package/dist/internal/c4/scan-storage.d.ts.map +1 -0
  345. package/dist/internal/c4/scan-storage.js +10 -0
  346. package/dist/internal/c4/scan-storage.js.map +1 -0
  347. package/dist/internal/c4/scanning.d.ts +3 -13
  348. package/dist/internal/c4/scanning.d.ts.map +1 -1
  349. package/dist/internal/c4/scanning.js +25 -75
  350. package/dist/internal/c4/scanning.js.map +1 -1
  351. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  352. package/dist/internal/c4/ship-stats.js +24 -26
  353. package/dist/internal/c4/ship-stats.js.map +1 -1
  354. package/dist/internal/c4/starbase.d.ts.map +1 -1
  355. package/dist/internal/c4/starbase.js +24 -96
  356. package/dist/internal/c4/starbase.js.map +1 -1
  357. package/dist/internal/c4/stimulant.d.ts +26 -0
  358. package/dist/internal/c4/stimulant.d.ts.map +1 -0
  359. package/dist/internal/c4/stimulant.js +36 -0
  360. package/dist/internal/c4/stimulant.js.map +1 -0
  361. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  362. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  363. package/dist/internal/c4/world.d.ts +6 -2
  364. package/dist/internal/c4/world.d.ts.map +1 -1
  365. package/dist/internal/c4/world.js +32 -107
  366. package/dist/internal/c4/world.js.map +1 -1
  367. package/dist/internal/fleet-route.d.ts +12 -0
  368. package/dist/internal/fleet-route.d.ts.map +1 -0
  369. package/dist/internal/fleet-route.js +11 -0
  370. package/dist/internal/fleet-route.js.map +1 -0
  371. package/dist/internal/fleet.d.ts +3 -3
  372. package/dist/internal/fleet.d.ts.map +1 -1
  373. package/dist/internal/fleet.js +1 -5
  374. package/dist/internal/fleet.js.map +1 -1
  375. package/dist/internal/loyalty-atlas-bank-state.d.ts +3 -2
  376. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -1
  377. package/dist/internal/loyalty-atlas-bank-state.js +4 -3
  378. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -1
  379. package/dist/internal/planning/account-state.d.ts +6 -0
  380. package/dist/internal/planning/account-state.d.ts.map +1 -1
  381. package/dist/internal/planning/account-state.js +13 -0
  382. package/dist/internal/planning/account-state.js.map +1 -1
  383. package/dist/internal/planning/arrival-guards.d.ts +0 -1
  384. package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
  385. package/dist/internal/planning/arrival-guards.js +3 -18
  386. package/dist/internal/planning/arrival-guards.js.map +1 -1
  387. package/dist/internal/planning/authorization-adapter.d.ts +34 -11
  388. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  389. package/dist/internal/planning/authorization-adapter.js +116 -12
  390. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  391. package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
  392. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
  393. package/dist/internal/planning/cargo-storage-actions.js +97 -0
  394. package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
  395. package/dist/internal/planning/character-access.d.ts +28 -0
  396. package/dist/internal/planning/character-access.d.ts.map +1 -0
  397. package/dist/internal/planning/character-access.js +41 -0
  398. package/dist/internal/planning/character-access.js.map +1 -0
  399. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
  400. package/dist/internal/planning/character-registration-guard.js +2 -1
  401. package/dist/internal/planning/character-registration-guard.js.map +1 -1
  402. package/dist/internal/planning/character-registration.d.ts.map +1 -1
  403. package/dist/internal/planning/character-registration.js +2 -1
  404. package/dist/internal/planning/character-registration.js.map +1 -1
  405. package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
  406. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
  407. package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
  408. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
  409. package/dist/internal/planning/combat-storage-actions.d.ts +9 -0
  410. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -0
  411. package/dist/internal/planning/combat-storage-actions.js +55 -0
  412. package/dist/internal/planning/combat-storage-actions.js.map +1 -0
  413. package/dist/internal/planning/crafting-storage-actions.d.ts +7 -0
  414. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -0
  415. package/dist/internal/planning/crafting-storage-actions.js +64 -0
  416. package/dist/internal/planning/crafting-storage-actions.js.map +1 -0
  417. package/dist/internal/planning/currency-cache-guard.d.ts +3 -1
  418. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
  419. package/dist/internal/planning/currency-cache-guard.js +47 -2
  420. package/dist/internal/planning/currency-cache-guard.js.map +1 -1
  421. package/dist/internal/planning/democracy-history.d.ts.map +1 -1
  422. package/dist/internal/planning/democracy-history.js +6 -15
  423. package/dist/internal/planning/democracy-history.js.map +1 -1
  424. package/dist/internal/planning/direct-options.d.ts +17 -0
  425. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  426. package/dist/internal/planning/direct-options.js +43 -0
  427. package/dist/internal/planning/direct-options.js.map +1 -0
  428. package/dist/internal/planning/disband-storage-actions.d.ts +9 -0
  429. package/dist/internal/planning/disband-storage-actions.d.ts.map +1 -0
  430. package/dist/internal/planning/disband-storage-actions.js +24 -0
  431. package/dist/internal/planning/disband-storage-actions.js.map +1 -0
  432. package/dist/internal/planning/faction-enrollment.d.ts +0 -2
  433. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  434. package/dist/internal/planning/faction-enrollment.js +0 -9
  435. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  436. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
  437. package/dist/internal/planning/fleet-arrival.js +10 -8
  438. package/dist/internal/planning/fleet-arrival.js.map +1 -1
  439. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
  440. package/dist/internal/planning/fleet-attack-xp.js +5 -11
  441. package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
  442. package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
  443. package/dist/internal/planning/fleet-creation.js +17 -36
  444. package/dist/internal/planning/fleet-creation.js.map +1 -1
  445. package/dist/internal/planning/fleet-crew-guard.d.ts +2 -1
  446. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
  447. package/dist/internal/planning/fleet-crew-guard.js +2 -1
  448. package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
  449. package/dist/internal/planning/fleet-crew-transfer.d.ts +1 -1
  450. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
  451. package/dist/internal/planning/fleet-crew-transfer.js +45 -24
  452. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
  453. package/dist/internal/planning/fleet-disband-guard.d.ts +12 -0
  454. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -0
  455. package/dist/internal/planning/fleet-disband-guard.js +54 -0
  456. package/dist/internal/planning/fleet-disband-guard.js.map +1 -0
  457. package/dist/internal/planning/fleet-disband.d.ts +36 -0
  458. package/dist/internal/planning/fleet-disband.d.ts.map +1 -0
  459. package/dist/internal/planning/fleet-disband.js +82 -0
  460. package/dist/internal/planning/fleet-disband.js.map +1 -0
  461. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +3 -3
  462. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
  463. package/dist/internal/planning/fleet-dock-funding-guard.js +87 -96
  464. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
  465. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
  466. package/dist/internal/planning/fleet-dock-funding.js +10 -0
  467. package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
  468. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
  469. package/dist/internal/planning/fleet-docking-guard.js +3 -1
  470. package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
  471. package/dist/internal/planning/fleet-docking.d.ts +17 -2
  472. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  473. package/dist/internal/planning/fleet-docking.js +83 -62
  474. package/dist/internal/planning/fleet-docking.js.map +1 -1
  475. package/dist/internal/planning/fleet-rental.d.ts +5 -0
  476. package/dist/internal/planning/fleet-rental.d.ts.map +1 -0
  477. package/dist/internal/planning/fleet-rental.js +9 -0
  478. package/dist/internal/planning/fleet-rental.js.map +1 -0
  479. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
  480. package/dist/internal/planning/fleet-respawn.js +10 -12
  481. package/dist/internal/planning/fleet-respawn.js.map +1 -1
  482. package/dist/internal/planning/fleet-ship-assembly.d.ts +2 -0
  483. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
  484. package/dist/internal/planning/fleet-ship-assembly.js +94 -64
  485. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
  486. package/dist/internal/planning/fleet-state.d.ts +25 -0
  487. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  488. package/dist/internal/planning/fleet-state.js +28 -0
  489. package/dist/internal/planning/fleet-state.js.map +1 -0
  490. package/dist/internal/planning/governance-fees.d.ts.map +1 -1
  491. package/dist/internal/planning/governance-fees.js +7 -15
  492. package/dist/internal/planning/governance-fees.js.map +1 -1
  493. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
  494. package/dist/internal/planning/local-market-order-funding.js +4 -2
  495. package/dist/internal/planning/local-market-order-funding.js.map +1 -1
  496. package/dist/internal/planning/local-market-order.d.ts +4 -4
  497. package/dist/internal/planning/local-market-order.d.ts.map +1 -1
  498. package/dist/internal/planning/local-market-order.js +82 -109
  499. package/dist/internal/planning/local-market-order.js.map +1 -1
  500. package/dist/internal/planning/market-storage-actions.d.ts +7 -0
  501. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -0
  502. package/dist/internal/planning/market-storage-actions.js +71 -0
  503. package/dist/internal/planning/market-storage-actions.js.map +1 -0
  504. package/dist/internal/planning/mining-stop.d.ts.map +1 -1
  505. package/dist/internal/planning/mining-stop.js +2 -1
  506. package/dist/internal/planning/mining-stop.js.map +1 -1
  507. package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
  508. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
  509. package/dist/internal/planning/mining-storage-actions.js +57 -0
  510. package/dist/internal/planning/mining-storage-actions.js.map +1 -0
  511. package/dist/internal/planning/movement-storage-actions.d.ts +7 -0
  512. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -0
  513. package/dist/internal/planning/movement-storage-actions.js +38 -0
  514. package/dist/internal/planning/movement-storage-actions.js.map +1 -0
  515. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
  516. package/dist/internal/planning/movement-xp-guard.js +3 -2
  517. package/dist/internal/planning/movement-xp-guard.js.map +1 -1
  518. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
  519. package/dist/internal/planning/open-signal-guard.js +2 -1
  520. package/dist/internal/planning/open-signal-guard.js.map +1 -1
  521. package/dist/internal/planning/open-signal.d.ts.map +1 -1
  522. package/dist/internal/planning/open-signal.js +16 -7
  523. package/dist/internal/planning/open-signal.js.map +1 -1
  524. package/dist/internal/planning/original-token.d.ts +40 -0
  525. package/dist/internal/planning/original-token.d.ts.map +1 -0
  526. package/dist/internal/planning/original-token.js +112 -0
  527. package/dist/internal/planning/original-token.js.map +1 -0
  528. package/dist/internal/planning/own-starbase-facts.d.ts +37 -0
  529. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  530. package/dist/internal/planning/own-starbase-facts.js +52 -0
  531. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  532. package/dist/internal/planning/plan-fields.d.ts +60 -0
  533. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  534. package/dist/internal/planning/plan-fields.js +159 -0
  535. package/dist/internal/planning/plan-fields.js.map +1 -0
  536. package/dist/internal/planning/plan-guards.d.ts +4 -0
  537. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  538. package/dist/internal/planning/plan-guards.js +184 -0
  539. package/dist/internal/planning/plan-guards.js.map +1 -0
  540. package/dist/internal/planning/profile-key.d.ts +13 -0
  541. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  542. package/dist/internal/planning/profile-key.js +20 -0
  543. package/dist/internal/planning/profile-key.js.map +1 -0
  544. package/dist/internal/planning/profile-storage-funding-guard.d.ts +29 -0
  545. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
  546. package/dist/internal/planning/profile-storage-funding-guard.js +115 -0
  547. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
  548. package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
  549. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
  550. package/dist/internal/planning/profile-storage-funding.js +58 -0
  551. package/dist/internal/planning/profile-storage-funding.js.map +1 -0
  552. package/dist/internal/planning/recipe-state.d.ts +4 -1
  553. package/dist/internal/planning/recipe-state.d.ts.map +1 -1
  554. package/dist/internal/planning/recipe-state.js +7 -4
  555. package/dist/internal/planning/recipe-state.js.map +1 -1
  556. package/dist/internal/planning/region-access.d.ts +30 -0
  557. package/dist/internal/planning/region-access.d.ts.map +1 -0
  558. package/dist/internal/planning/region-access.js +94 -0
  559. package/dist/internal/planning/region-access.js.map +1 -0
  560. package/dist/internal/planning/rent-catalog.d.ts +37 -0
  561. package/dist/internal/planning/rent-catalog.d.ts.map +1 -0
  562. package/dist/internal/planning/rent-catalog.js +165 -0
  563. package/dist/internal/planning/rent-catalog.js.map +1 -0
  564. package/dist/internal/planning/research-unlock.d.ts +69 -0
  565. package/dist/internal/planning/research-unlock.d.ts.map +1 -0
  566. package/dist/internal/planning/research-unlock.js +287 -0
  567. package/dist/internal/planning/research-unlock.js.map +1 -0
  568. package/dist/internal/planning/respawn-guards.js +2 -1
  569. package/dist/internal/planning/respawn-guards.js.map +1 -1
  570. package/dist/internal/planning/runtime-guards.d.ts +0 -2
  571. package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
  572. package/dist/internal/planning/runtime-guards.js +49 -29
  573. package/dist/internal/planning/runtime-guards.js.map +1 -1
  574. package/dist/internal/planning/scan-completion-guard.d.ts +6 -6
  575. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
  576. package/dist/internal/planning/scan-completion-guard.js +8 -7
  577. package/dist/internal/planning/scan-completion-guard.js.map +1 -1
  578. package/dist/internal/planning/scan-completion.d.ts.map +1 -1
  579. package/dist/internal/planning/scan-completion.js +9 -7
  580. package/dist/internal/planning/scan-completion.js.map +1 -1
  581. package/dist/internal/planning/scan-detect-guard.d.ts +1 -1
  582. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
  583. package/dist/internal/planning/scan-detect-guard.js +2 -2
  584. package/dist/internal/planning/scan-detect-guard.js.map +1 -1
  585. package/dist/internal/planning/scan-detect.d.ts +1 -1
  586. package/dist/internal/planning/scan-detect.d.ts.map +1 -1
  587. package/dist/internal/planning/scan-detect.js +10 -8
  588. package/dist/internal/planning/scan-detect.js.map +1 -1
  589. package/dist/internal/planning/scan-idle-scope.d.ts +5 -0
  590. package/dist/internal/planning/scan-idle-scope.d.ts.map +1 -0
  591. package/dist/internal/planning/scan-idle-scope.js +5 -0
  592. package/dist/internal/planning/scan-idle-scope.js.map +1 -0
  593. package/dist/internal/planning/scan-storage-actions.d.ts +9 -0
  594. package/dist/internal/planning/scan-storage-actions.d.ts.map +1 -0
  595. package/dist/internal/planning/scan-storage-actions.js +27 -0
  596. package/dist/internal/planning/scan-storage-actions.js.map +1 -0
  597. package/dist/internal/planning/ship-import-funding.js +3 -2
  598. package/dist/internal/planning/ship-import-funding.js.map +1 -1
  599. package/dist/internal/planning/ship-token.d.ts +1 -5
  600. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  601. package/dist/internal/planning/ship-token.js +0 -36
  602. package/dist/internal/planning/ship-token.js.map +1 -1
  603. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  604. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  605. package/dist/internal/planning/starbase-player-owner.js +17 -0
  606. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  607. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +7 -0
  608. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -0
  609. package/dist/internal/planning/starbase-player-recovery-guard.js +39 -0
  610. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -0
  611. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
  612. package/dist/internal/planning/starbase-system-guard.js +2 -1
  613. package/dist/internal/planning/starbase-system-guard.js.map +1 -1
  614. package/dist/internal/planning/starbase-system.d.ts +5 -2
  615. package/dist/internal/planning/starbase-system.d.ts.map +1 -1
  616. package/dist/internal/planning/starbase-system.js +6 -3
  617. package/dist/internal/planning/starbase-system.js.map +1 -1
  618. package/dist/internal/planning/storage-action-readers.d.ts +10 -0
  619. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
  620. package/dist/internal/planning/storage-action-readers.js +58 -0
  621. package/dist/internal/planning/storage-action-readers.js.map +1 -0
  622. package/dist/internal/planning/storage-actions.d.ts +89 -0
  623. package/dist/internal/planning/storage-actions.d.ts.map +1 -0
  624. package/dist/internal/planning/storage-actions.js +183 -0
  625. package/dist/internal/planning/storage-actions.js.map +1 -0
  626. package/dist/internal/planning/token-mint.d.ts.map +1 -1
  627. package/dist/internal/planning/token-mint.js +2 -1
  628. package/dist/internal/planning/token-mint.js.map +1 -1
  629. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  630. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  631. package/dist/internal/planning/wallet-starbase.js +39 -0
  632. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  633. package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
  634. package/dist/internal/planning/xp-runtime.js +16 -20
  635. package/dist/internal/planning/xp-runtime.js.map +1 -1
  636. package/dist/internal/read-meta.d.ts +12 -0
  637. package/dist/internal/read-meta.d.ts.map +1 -1
  638. package/dist/internal/read-meta.js +10 -0
  639. package/dist/internal/read-meta.js.map +1 -1
  640. package/dist/loyalty/actions/index.d.ts +1 -1
  641. package/dist/loyalty/actions/index.d.ts.map +1 -1
  642. package/dist/loyalty/actions/index.js +12 -43
  643. package/dist/loyalty/actions/index.js.map +1 -1
  644. package/dist/loyalty/index.d.ts +4 -0
  645. package/dist/loyalty/index.d.ts.map +1 -1
  646. package/dist/loyalty/index.js +19 -27
  647. package/dist/loyalty/index.js.map +1 -1
  648. package/dist/markets/actions/index.d.ts +1 -1
  649. package/dist/markets/actions/index.d.ts.map +1 -1
  650. package/dist/markets/actions/index.js +138 -176
  651. package/dist/markets/actions/index.js.map +1 -1
  652. package/dist/markets/actions/trade-faction-market.d.ts +4 -2
  653. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
  654. package/dist/markets/actions/trade-faction-market.js +59 -39
  655. package/dist/markets/actions/trade-faction-market.js.map +1 -1
  656. package/dist/markets/index.d.ts.map +1 -1
  657. package/dist/markets/index.js +3 -11
  658. package/dist/markets/index.js.map +1 -1
  659. package/dist/mining/actions/index.d.ts +1 -1
  660. package/dist/mining/actions/index.d.ts.map +1 -1
  661. package/dist/mining/actions/index.js +81 -44
  662. package/dist/mining/actions/index.js.map +1 -1
  663. package/dist/mining/estimate-input.d.ts +103 -0
  664. package/dist/mining/estimate-input.d.ts.map +1 -0
  665. package/dist/mining/estimate-input.js +86 -0
  666. package/dist/mining/estimate-input.js.map +1 -0
  667. package/dist/mining/index.d.ts +1 -0
  668. package/dist/mining/index.d.ts.map +1 -1
  669. package/dist/mining/index.js +4 -11
  670. package/dist/mining/index.js.map +1 -1
  671. package/dist/planning/assembly.d.ts +1 -1
  672. package/dist/planning/assembly.d.ts.map +1 -1
  673. package/dist/planning/assembly.js +6 -30
  674. package/dist/planning/assembly.js.map +1 -1
  675. package/dist/planning/execution.d.ts +1 -0
  676. package/dist/planning/execution.d.ts.map +1 -1
  677. package/dist/planning/execution.js +149 -45
  678. package/dist/planning/execution.js.map +1 -1
  679. package/dist/planning/index.d.ts +70 -7
  680. package/dist/planning/index.d.ts.map +1 -1
  681. package/dist/planning/index.js +28 -1141
  682. package/dist/planning/index.js.map +1 -1
  683. package/dist/planning/plan-construction.d.ts +25 -0
  684. package/dist/planning/plan-construction.d.ts.map +1 -0
  685. package/dist/planning/plan-construction.js +143 -0
  686. package/dist/planning/plan-construction.js.map +1 -0
  687. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  688. package/dist/planning/plan-sequence-execution.js +1 -11
  689. package/dist/planning/plan-sequence-execution.js.map +1 -1
  690. package/dist/planning/plan-validation.d.ts +17 -0
  691. package/dist/planning/plan-validation.d.ts.map +1 -0
  692. package/dist/planning/plan-validation.js +147 -0
  693. package/dist/planning/plan-validation.js.map +1 -0
  694. package/dist/registry/cargo.d.ts +2 -2
  695. package/dist/registry/cargo.d.ts.map +1 -1
  696. package/dist/registry/cargo.js +3 -4
  697. package/dist/registry/cargo.js.map +1 -1
  698. package/dist/registry/definition-section-snapshot.d.ts +1 -1
  699. package/dist/registry/definition-section-snapshot.d.ts.map +1 -1
  700. package/dist/registry/definition-section-snapshot.js +10 -3
  701. package/dist/registry/definition-section-snapshot.js.map +1 -1
  702. package/dist/registry/index.d.ts +31 -4
  703. package/dist/registry/index.d.ts.map +1 -1
  704. package/dist/registry/index.js +226 -227
  705. package/dist/registry/index.js.map +1 -1
  706. package/dist/registry/onboarding.d.ts.map +1 -1
  707. package/dist/registry/onboarding.js +4 -2
  708. package/dist/registry/onboarding.js.map +1 -1
  709. package/dist/registry/ship-stats-snapshot.d.ts.map +1 -1
  710. package/dist/registry/ship-stats-snapshot.js +19 -5
  711. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  712. package/dist/registry/ships.js +1 -1
  713. package/dist/registry/ships.js.map +1 -1
  714. package/dist/rewards/index.d.ts +11 -5
  715. package/dist/rewards/index.d.ts.map +1 -1
  716. package/dist/rewards/index.js +10 -21
  717. package/dist/rewards/index.js.map +1 -1
  718. package/dist/scanning/actions/index.d.ts +1 -1
  719. package/dist/scanning/actions/index.d.ts.map +1 -1
  720. package/dist/scanning/actions/index.js +38 -8
  721. package/dist/scanning/actions/index.js.map +1 -1
  722. package/dist/scanning/index.d.ts +6 -11
  723. package/dist/scanning/index.d.ts.map +1 -1
  724. package/dist/scanning/index.js +7 -15
  725. package/dist/scanning/index.js.map +1 -1
  726. package/dist/scanning/odds.d.ts +5 -1
  727. package/dist/scanning/odds.d.ts.map +1 -1
  728. package/dist/scanning/odds.js.map +1 -1
  729. package/dist/scanning/signals.d.ts +6 -1
  730. package/dist/scanning/signals.d.ts.map +1 -1
  731. package/dist/scanning/signals.js +3 -1
  732. package/dist/scanning/signals.js.map +1 -1
  733. package/dist/starbases/actions/index.d.ts +49 -4
  734. package/dist/starbases/actions/index.d.ts.map +1 -1
  735. package/dist/starbases/actions/index.js +120 -69
  736. package/dist/starbases/actions/index.js.map +1 -1
  737. package/dist/starbases/index.d.ts +18 -0
  738. package/dist/starbases/index.d.ts.map +1 -1
  739. package/dist/starbases/index.js +24 -11
  740. package/dist/starbases/index.js.map +1 -1
  741. package/dist/world/index.d.ts +87 -13
  742. package/dist/world/index.d.ts.map +1 -1
  743. package/dist/world/index.js +88 -22
  744. package/dist/world/index.js.map +1 -1
  745. package/dist/world/planet-claim-stake-plots.d.ts +49 -40
  746. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -1
  747. package/dist/world/planet-claim-stake-plots.js +47 -40
  748. package/dist/world/planet-claim-stake-plots.js.map +1 -1
  749. package/dist/world/starbase-status.d.ts +54 -13
  750. package/dist/world/starbase-status.d.ts.map +1 -1
  751. package/dist/world/starbase-status.js +65 -0
  752. package/dist/world/starbase-status.js.map +1 -1
  753. package/package.json +2 -2
  754. package/dist/internal/c4/faction-adapter.d.ts +0 -12
  755. package/dist/internal/c4/faction-adapter.d.ts.map +0 -1
  756. package/dist/internal/c4/faction-adapter.js +0 -52
  757. package/dist/internal/c4/faction-adapter.js.map +0 -1
  758. package/dist/internal/planning/movement-character.d.ts +0 -7
  759. package/dist/internal/planning/movement-character.d.ts.map +0 -1
  760. package/dist/internal/planning/movement-character.js +0 -41
  761. package/dist/internal/planning/movement-character.js.map +0 -1
@@ -0,0 +1,165 @@
1
+ import { AccountRole } from '@solana/kit';
2
+ import { SageSdkError } from '../../client/errors.js';
3
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
4
+ import { ATTACK_STARBASE_DISCRIMINATOR, CANCEL_CLAIM_STAKE_BUILDING_DESIGN_DISCRIMINATOR, CLAIM_STAKES_RENT_TOP_UP_DISCRIMINATOR, DECONSTRUCT_CLAIM_STAKE_INSTANCE_DISCRIMINATOR, FINALIZE_BUILDING_CHANGES_DISCRIMINATOR, PLACE_CLAIM_STAKE_BUILDINGS_DISCRIMINATOR, PLACE_CLAIM_STAKE_INSTANCE_WITH_HUB_DISCRIMINATOR, START_CLAIM_STAKES_FLEET_TRANSFER_DISCRIMINATOR, } from '../c4/discriminators.js';
5
+ import { deriveRentCatalogAddress, deriveRentLevelHeadAddress, deriveRentSettlementAuthorityAddress, } from '../c4/pda.js';
6
+ import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
7
+ import { accountAbsentPrecondition } from './account-state.js';
8
+ /** Baseline-record hints; the program reads them only under an Active catalog. */
9
+ export const DISABLED_RENT_HINTS = Object.freeze([0, 0, 0]);
10
+ const RENT_HINTS_BYTES = 12;
11
+ async function requireAbsent(ctx, accounts) {
12
+ const raw = await readContextRawAccounts(ctx, accounts.map(({ address }) => address));
13
+ accounts.forEach(({ address, present }, index) => {
14
+ if (raw[index] !== undefined)
15
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', present, {
16
+ address,
17
+ });
18
+ });
19
+ return accounts.map(({ address, describes }) => accountAbsentPrecondition(address, describes));
20
+ }
21
+ function catalogAccount(rentCatalog, game, action) {
22
+ return {
23
+ address: rentCatalog,
24
+ present: `Game ${game} has rent catalog ${rentCatalog}, so its rent is no longer Disabled and ${action} needs rent history accounts this SDK does not plan yet. Use the game client for ${action}.`,
25
+ describes: `Rent catalog ${rentCatalog} remains absent, so rent stays Disabled.`,
26
+ };
27
+ }
28
+ /** Requires Disabled rent for an existing Claim Stake: neither the Game's rent
29
+ * catalog nor the stake's settlement authority exists. */
30
+ export async function requireDisabledStakeRent(ctx, game, stake, action) {
31
+ const [[rentCatalog], [rentAuthority]] = await Promise.all([
32
+ deriveRentCatalogAddress(game),
33
+ deriveRentSettlementAuthorityAddress(stake),
34
+ ]);
35
+ const guards = await requireAbsent(ctx, [
36
+ catalogAccount(rentCatalog, game, action),
37
+ {
38
+ address: rentAuthority,
39
+ present: `Claim Stake ${stake} has rent settlement authority ${rentAuthority}, so it may hold a rent evaluation this SDK does not plan yet. Use the game client for ${action}.`,
40
+ describes: `Claim Stake ${stake} rent settlement authority ${rentAuthority} remains absent.`,
41
+ },
42
+ ]);
43
+ return { accounts: { rentAuthority, rentCatalog }, guards };
44
+ }
45
+ /** Requires that a new Claim Stake address has no rent settlement authority. */
46
+ export async function requireNewStakeRent(ctx, stake) {
47
+ const [rentAuthority] = await deriveRentSettlementAuthorityAddress(stake);
48
+ const guards = await requireAbsent(ctx, [
49
+ {
50
+ address: rentAuthority,
51
+ present: `Rent settlement authority ${rentAuthority} already exists for new Claim Stake address ${stake}. Generate a fresh address-only Claim Stake signer and retry placement.`,
52
+ describes: `New Claim Stake ${stake} rent settlement authority ${rentAuthority} remains absent.`,
53
+ },
54
+ ]);
55
+ return { rentAuthority, guards };
56
+ }
57
+ /** Requires Disabled rent for a Starbase-level change in `system`: neither the
58
+ * Game's rent catalog nor the System's level history head exists. */
59
+ export async function requireDisabledLevelRent(ctx, game, system, action) {
60
+ const [[rentCatalog], [rentHead]] = await Promise.all([
61
+ deriveRentCatalogAddress(game),
62
+ deriveRentLevelHeadAddress(game, system.systemId),
63
+ ]);
64
+ const guards = await requireAbsent(ctx, [
65
+ catalogAccount(rentCatalog, game, action),
66
+ {
67
+ address: rentHead,
68
+ present: `Star System ${system.address} has Starbase-level rent history ${rentHead}, which ${action} must extend with history pages this SDK does not plan yet. Use the game client for ${action}.`,
69
+ describes: `Star System ${system.address} Starbase-level rent history ${rentHead} remains absent.`,
70
+ },
71
+ ]);
72
+ return { accounts: { rentCatalog, rentHead }, guards };
73
+ }
74
+ // Disabled-rent layouts of the pinned generated builders, without rent pages.
75
+ // The adapter suites pin each layout to its builder, and rent-catalog tests
76
+ // build every layout through those adapters.
77
+ function rentLayouts() {
78
+ return [
79
+ [CLAIM_STAKES_RENT_TOP_UP_DISCRIMINATOR, 13, 10, 11, [12], false, 18],
80
+ [
81
+ PLACE_CLAIM_STAKE_INSTANCE_WITH_HUB_DISCRIMINATOR,
82
+ 14,
83
+ -1,
84
+ 13,
85
+ [],
86
+ false,
87
+ 0,
88
+ ],
89
+ [
90
+ PLACE_CLAIM_STAKE_BUILDINGS_DISCRIMINATOR,
91
+ 19,
92
+ 14,
93
+ 15,
94
+ [16, 17, 18],
95
+ true,
96
+ 0,
97
+ ],
98
+ [
99
+ CANCEL_CLAIM_STAKE_BUILDING_DESIGN_DISCRIMINATOR,
100
+ 17,
101
+ 12,
102
+ 13,
103
+ [14, 15, 16],
104
+ true,
105
+ 22,
106
+ ],
107
+ [
108
+ FINALIZE_BUILDING_CHANGES_DISCRIMINATOR,
109
+ 20,
110
+ 15,
111
+ 16,
112
+ [17, 18, 19],
113
+ true,
114
+ 22,
115
+ ],
116
+ [
117
+ START_CLAIM_STAKES_FLEET_TRANSFER_DISCRIMINATOR,
118
+ 19,
119
+ 14,
120
+ 15,
121
+ [16, 17, 18],
122
+ true,
123
+ 0,
124
+ ],
125
+ [
126
+ DECONSTRUCT_CLAIM_STAKE_INSTANCE_DISCRIMINATOR,
127
+ 22,
128
+ 11,
129
+ 12,
130
+ [13, 14, 16, 17, 18],
131
+ true,
132
+ 27,
133
+ ],
134
+ [ATTACK_STARBASE_DISCRIMINATOR, 32, 25, 26, [27, 28], false, 11],
135
+ ];
136
+ }
137
+ /** Binds every rent account of a recognized instruction to an absence guard
138
+ * and rejects rent pages, supplied optional rent accounts and nonzero hints. */
139
+ export function validateRentInstructions(steps, guards) {
140
+ for (const [index, { instruction }] of steps.entries()) {
141
+ if (instruction.programAddress !== SAGE_PROGRAM_ADDRESS)
142
+ continue;
143
+ const data = instruction.data;
144
+ const layout = rentLayouts().find(([discriminator]) => discriminator.every((byte, offset) => data?.[offset] === byte));
145
+ if (!layout)
146
+ continue;
147
+ const [, count, catalog, writable, omitted, hints, dataLength] = layout;
148
+ const metas = instruction.accounts;
149
+ const guarded = (at, role) => metas[at].role === role &&
150
+ guards.some((g) => g.kind === 'account-absent' && g.address === metas[at].address);
151
+ if (!data ||
152
+ !metas ||
153
+ metas.length !== count ||
154
+ (dataLength !== 0 && data.length !== dataLength) ||
155
+ (hints &&
156
+ (data.length < 8 + RENT_HINTS_BYTES ||
157
+ data.subarray(data.length - RENT_HINTS_BYTES).some(Boolean))) ||
158
+ omitted.some((at) => metas[at].address !== SAGE_PROGRAM_ADDRESS ||
159
+ metas[at].role !== AccountRole.READONLY) ||
160
+ (catalog >= 0 && !guarded(catalog, AccountRole.READONLY)) ||
161
+ !guarded(writable, AccountRole.WRITABLE))
162
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Step ${index}: this instruction needs the current Disabled-rent layout with an absence safeguard for each rent account. Refresh the accounts and recreate the Plan with its planner before signing.`);
163
+ }
164
+ }
165
+ //# sourceMappingURL=rent-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rent-catalog.js","sourceRoot":"","sources":["../../../src/internal/planning/rent-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { RawAccount } from '../../client/contracts.js';
3
+ import type { PlanPrecondition, PlanStep } from '../../planning/index.js';
4
+ import type { GameResearchUnlockRule, GameXpCategory } from '../c4/game.js';
5
+ /** Persisted research unlock guard: one exact next level of one node. */
6
+ export type ResearchUnlockGuard = Extract<PlanPrecondition, {
7
+ readonly kind: 'research-unlock';
8
+ }>;
9
+ /** Caller intent before planning fills the observed sequences and debit. */
10
+ export interface ResearchUnlockIntent {
11
+ readonly game: Address;
12
+ readonly profile: Address;
13
+ readonly authority: Address;
14
+ readonly keyIndex: number;
15
+ readonly system: Address;
16
+ readonly nodeId: number;
17
+ readonly level: number;
18
+ readonly researchSequenceId?: number;
19
+ readonly xpSequenceId?: number;
20
+ readonly maximumAtlasDebit?: bigint;
21
+ readonly maximumProfileDebit?: bigint;
22
+ }
23
+ /** Canonical accounts the unlock reads and writes. */
24
+ export interface ResearchUnlockAccounts {
25
+ readonly character: Address;
26
+ readonly starbasePlayer: Address;
27
+ readonly currencyCache: Address;
28
+ readonly clock: Address;
29
+ readonly rent: Address;
30
+ }
31
+ /** Validated rule, resulting level and exact costs of one unlock. */
32
+ export interface ResearchUnlockSpend {
33
+ readonly rule: GameResearchUnlockRule;
34
+ readonly level: number;
35
+ readonly atlasDebit: bigint;
36
+ readonly cargo: readonly {
37
+ readonly cargoId: number;
38
+ readonly quantityRaw: bigint;
39
+ }[];
40
+ readonly points: readonly {
41
+ readonly category: GameXpCategory;
42
+ readonly costRaw: bigint;
43
+ }[];
44
+ /** Bytes the unlock adds to the Character. */
45
+ readonly characterGrowthBytes: number;
46
+ /** Conservative Profile lamport debit for Character and Starbase Player
47
+ * storage; surplus refunds to the Profile are not credited. */
48
+ readonly profileDebit: bigint;
49
+ /** The Profile's own rent minimum, which the vault withdrawal preserves. */
50
+ readonly profileReserve: bigint;
51
+ }
52
+ /** Derives the canonical Character, Starbase Player and Currency Cache. */
53
+ export declare function resolveResearchUnlock(intent: {
54
+ readonly game: Address;
55
+ readonly profile: Address;
56
+ readonly system: Address;
57
+ }): Promise<ResearchUnlockAccounts>;
58
+ /** Validates one next-level unlock against fresh accounts and Game rules and
59
+ * returns its exact costs. Planning and execution share every check; an
60
+ * intent carrying observed sequences and a debit also requires them to hold. */
61
+ export declare function validateResearchUnlock(intent: ResearchUnlockIntent, resolved: ResearchUnlockAccounts, accounts: ReadonlyMap<Address, RawAccount | undefined>, rules: {
62
+ readonly sequenceId: number;
63
+ readonly xpSequenceId: number;
64
+ readonly rules: readonly GameResearchUnlockRule[];
65
+ }): Promise<ResearchUnlockSpend>;
66
+ /** Binds every research unlock instruction to exactly one persisted guard:
67
+ * direct key, accounts, roles, key index and node must all match. */
68
+ export declare function validateResearchUnlockInstructions(steps: readonly PlanStep[], preconditions: readonly PlanPrecondition[]): void;
69
+ //# sourceMappingURL=research-unlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-unlock.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/research-unlock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ import { AccountRole, isOffCurveAddress } from '@solana/kit';
2
+ import { SageSdkError } from '../../client/errors.js';
3
+ import { characterAccountDefinition, findCharacterPda, } from '../c4/character.js';
4
+ import { deriveCurrencyCache, validateCurrencyCache, } from '../c4/currency-cache.js';
5
+ import { UNLOCK_RESEARCH_NODE_DISCRIMINATOR } from '../c4/discriminators.js';
6
+ import { profileAccountDefinition } from '../c4/identity.js';
7
+ import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
8
+ import { PLAYER_PROFILE_PROGRAM_ADDRESS, SAGE_PROGRAM_ADDRESS, } from '../c4/runtime-bindings.js';
9
+ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../c4/starbase.js';
10
+ import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../c4/world.js';
11
+ import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
12
+ import { directProfileKey, grantsPermission, hasPermissionBit, profileKeyExpired, } from './profile-key.js';
13
+ import { RENT_ADDRESS, readRent } from './rent.js';
14
+ const BASIS_POINTS = 10000n;
15
+ // SAGE doResearch permission bit (SAGE_FLAGS.DO_RESEARCH).
16
+ const DO_RESEARCH = 40n;
17
+ // Profile drainSolVault permission bit, any scope.
18
+ const DRAIN_SOL_VAULT = 63n;
19
+ // Encoded entry sizes of the Character's research sets and maps: a u16 node,
20
+ // tag, cargo category or cargo ID, a u32 node level and a u64 multiplier.
21
+ const NODE_BYTES = 2;
22
+ const NODE_LEVEL_BYTES = 6;
23
+ const TAG_BYTES = 2;
24
+ const CARGO_CATEGORY_BYTES = 2;
25
+ const RARE_MINERAL_BYTES = 10;
26
+ // Pending node levels the program resynchronizes inside an ordinary action.
27
+ const MAX_INLINE_SYNC_NODE_LEVELS = 8;
28
+ const U64_MAX = (1n << 64n) - 1n;
29
+ const CAREERS = {
30
+ 'council-rank': 'councilRank',
31
+ pilot: 'pilot',
32
+ 'data-runner': 'dataRunner',
33
+ mining: 'mining',
34
+ building: 'building',
35
+ crafting: 'crafting',
36
+ combat: 'combat',
37
+ };
38
+ const LABELS = {
39
+ pilot: 'Pilot',
40
+ 'data-runner': 'Data Runner',
41
+ mining: 'Mining',
42
+ building: 'Building',
43
+ crafting: 'Crafting',
44
+ combat: 'Combat',
45
+ };
46
+ function fail(address, message) {
47
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
48
+ }
49
+ /** Derives the canonical Character, Starbase Player and Currency Cache. */
50
+ export async function resolveResearchUnlock(intent) {
51
+ const [character, [currencyCache]] = await Promise.all([
52
+ findCharacterPda(intent.profile, intent.game),
53
+ deriveCurrencyCache(intent.game),
54
+ ]);
55
+ return {
56
+ character,
57
+ starbasePlayer: await deriveStarbasePlayerAddress(intent.system, character),
58
+ currencyCache,
59
+ clock: CLOCK_ADDRESS,
60
+ rent: RENT_ADDRESS,
61
+ };
62
+ }
63
+ /** Validates one next-level unlock against fresh accounts and Game rules and
64
+ * returns its exact costs. Planning and execution share every check; an
65
+ * intent carrying observed sequences and a debit also requires them to hold. */
66
+ export async function validateResearchUnlock(intent, resolved, accounts, rules) {
67
+ const node = `Research node ${intent.nodeId}`;
68
+ if (isOffCurveAddress(intent.authority))
69
+ fail(intent.profile, 'Research requires an on-curve direct Profile authority. Select a current direct key and replan.');
70
+ const required = (address, name) => {
71
+ const raw = accounts.get(address);
72
+ if (!raw || raw.executable)
73
+ fail(address, `${name} ${address} is missing or executable. Select an existing Character, Star System and Starbase Player, then replan the research unlock.`);
74
+ return raw;
75
+ };
76
+ const profileRaw = required(intent.profile, 'Profile');
77
+ const characterRaw = required(resolved.character, 'Character');
78
+ const playerRaw = required(resolved.starbasePlayer, 'Starbase Player');
79
+ const profile = profileAccountDefinition.decode(profileRaw);
80
+ const character = characterAccountDefinition.decode(characterRaw);
81
+ const system = starSystemAccountDefinition.decode(required(intent.system, 'Star System'));
82
+ const player = starbasePlayerAccountDefinition.decode(playerRaw);
83
+ await validateCurrencyCache(required(resolved.currencyCache, 'Currency Cache'), intent.game, 'research unlock');
84
+ const now = readClock(required(resolved.clock, 'Clock sysvar'));
85
+ const rent = readRent(required(resolved.rent, 'Rent sysvar'));
86
+ if (character.game !== intent.game ||
87
+ character.playerProfile !== intent.profile)
88
+ fail(resolved.character, 'The Character belongs to a different Game or Profile. Refresh the canonical Character and replan the research unlock.');
89
+ if (system.game !== intent.game ||
90
+ (await deriveStarSystemAddress(system.game, system.systemId)) !==
91
+ intent.system ||
92
+ !system.starbase)
93
+ fail(intent.system, 'The selected System is not canonical for this Game or has no Starbase. Choose a Starbase System where the Character has a Starbase Player and replan.');
94
+ if (player.playerProfile !== intent.profile ||
95
+ player.character !== resolved.character ||
96
+ player.system !== intent.system)
97
+ fail(resolved.starbasePlayer, 'The Starbase Player has a different Profile, Character or System. Refresh the canonical Starbase Player and replan.');
98
+ if (player.sequenceId !== system.sequenceId)
99
+ fail(resolved.starbasePlayer, `The Starbase Player belongs to Starbase generation ${player.sequenceId}, but the Starbase at System ${intent.system} is at generation ${system.sequenceId}; the program rejects it as destroyed. Choose a System where the Character's Starbase Player is current and replan.`);
100
+ if ((intent.researchSequenceId !== undefined &&
101
+ rules.sequenceId !== intent.researchSequenceId) ||
102
+ (intent.xpSequenceId !== undefined &&
103
+ rules.xpSequenceId !== intent.xpSequenceId))
104
+ fail(intent.game, 'The Game research or XP definitions changed after planning. Replan to review the current requirements and costs before signing.');
105
+ if (character.modifiers.seqId !== rules.sequenceId) {
106
+ // The program replays every pending unlocked node, each at its stored
107
+ // level and at least once; with nothing staged, every unlocked node.
108
+ const { unlockedNodes, nodeLevels, unupdatedCount } = character.modifiers;
109
+ const pending = unlockedNodes
110
+ .slice(unupdatedCount === 0
111
+ ? 0
112
+ : Math.max(0, unlockedNodes.length - unupdatedCount))
113
+ .reduce((sum, id) => sum +
114
+ Math.max(nodeLevels.find(({ nodeId }) => nodeId === id)?.level ?? 1, 1), 0);
115
+ const state = `The Character's research modifiers predate the current research definitions (sequence ${character.modifiers.seqId} of ${rules.sequenceId}, ${pending} pending node levels)`;
116
+ fail(resolved.character, pending > MAX_INLINE_SYNC_NODE_LEVELS
117
+ ? `${state}, more than the ${MAX_INLINE_SYNC_NODE_LEVELS} the program resynchronizes inside an action, so the unlock would fail with characterSyncRequired. Run the permissionless syncCharacter instruction until it reports no remaining nodes, then replan.`
118
+ : `${state}. The program resynchronizes them at the start of the unlock, but the resulting tags and modifiers decide eligibility, which this SDK does not project. Run any SAGE action that validates the Character, or the permissionless syncCharacter instruction, then replan.`);
119
+ }
120
+ if (character.xp.seqId !== rules.xpSequenceId)
121
+ fail(resolved.character, `The Character's XP levels predate the current XP definitions (sequence ${character.xp.seqId} of ${rules.xpSequenceId}). The program recomputes them from earned XP at the start of the unlock, but the resulting levels decide eligibility, which this SDK does not project. Run any SAGE action that validates the Character, or the permissionless syncCharacter instruction, then replan.`);
122
+ const rule = rules.rules.find(({ id }) => id === intent.nodeId);
123
+ if (!rule)
124
+ fail(intent.game, `${node} is not in the current Game research catalog. Choose a node from getResearchCatalog and replan.`);
125
+ const unlocked = character.modifiers.unlockedNodes.includes(intent.nodeId);
126
+ const stored = character.modifiers.nodeLevels.find(({ nodeId }) => nodeId === intent.nodeId)?.level;
127
+ if (unlocked ? stored === 0 : stored !== undefined)
128
+ fail(resolved.character, `${node} has an inconsistent stored level on this Character, so its next level is undefined and this SDK does not plan it. Choose another node.`);
129
+ const current = unlocked ? (stored ?? 1) : 0;
130
+ if (rule.maxLevel !== 0 && current >= rule.maxLevel)
131
+ fail(resolved.character, `${node} "${rule.name}" is already at its maximum level ${rule.maxLevel}. Choose another node.`);
132
+ if (intent.level !== current + 1)
133
+ fail(resolved.character, `${node} "${rule.name}" is at level ${current}, so an unlock reaches level ${current + 1}, not ${intent.level}. Replan with level ${current + 1}.`);
134
+ const tags = character.modifiers.values.researchTags;
135
+ const missing = rule.requiredTagIds.filter((tag) => !tags.includes(tag));
136
+ if (missing.length > 0)
137
+ fail(resolved.character, `${node} "${rule.name}" requires every research tag in [${rule.requiredTagIds.join(', ')}]; the Character lacks [${missing.join(', ')}]. Unlock the nodes that grant them first, then replan.`);
138
+ for (const cost of rule.xpCosts) {
139
+ const field = CAREERS[cost.category];
140
+ if (field === undefined)
141
+ fail(intent.game, `${node} "${rule.name}" costs Daily XP, which this SDK has not qualified for research. Use the game client for this node.`);
142
+ const xp = character.xp[field];
143
+ const council = field === 'councilRank';
144
+ const label = LABELS[cost.category] ?? 'Council Rank';
145
+ const earn = council ? 'career levels toward Renown' : `${label} XP`;
146
+ if (xp.level < cost.minimumLevel)
147
+ fail(resolved.character, `${node} "${rule.name}" requires ${label} level ${cost.minimumLevel}; the Character is at level ${xp.level}. Earn ${earn}, then replan.`);
148
+ const earned = council ? xp.earned : BigInt(xp.level);
149
+ const available = earned > xp.spent ? earned - xp.spent : 0n;
150
+ const unit = council
151
+ ? 'Renown'
152
+ : `${label} research point${cost.costRaw === 1n ? '' : 's'}`;
153
+ if (available < cost.costRaw)
154
+ fail(resolved.character, `${node} "${rule.name}" costs ${cost.costRaw} ${unit}; the Character has ${available} available. Earn ${earn}, then replan.`);
155
+ }
156
+ // The program grows ATLAS and cargo costs linearly with the current level
157
+ // and rounds down; research point costs do not grow.
158
+ const growth = BASIS_POINTS + BigInt(rule.costGrowthBasisPoints) * BigInt(current);
159
+ const grown = (cost, what) => {
160
+ const scaled = (cost * growth) / BASIS_POINTS;
161
+ if (scaled > U64_MAX)
162
+ fail(intent.game, `${node} "${rule.name}" at level ${current} grows its ${what} cost beyond a u64, which the program refuses as numericOverflow. Choose another node.`);
163
+ return scaled;
164
+ };
165
+ const atlasDebit = grown(rule.atlasCostRaw, 'ATLAS');
166
+ const cargo = rule.cargoCosts.map(({ cargoId, quantityRaw }) => ({
167
+ cargoId,
168
+ quantityRaw: grown(quantityRaw, `cargo ${cargoId}`),
169
+ }));
170
+ if (intent.maximumAtlasDebit !== undefined &&
171
+ atlasDebit > intent.maximumAtlasDebit)
172
+ fail(intent.game, `${node} "${rule.name}" now costs ${atlasDebit} ATLAS Floyds, above the ${intent.maximumAtlasDebit} this Plan approved. Replan and review the cost before signing.`);
173
+ if (character.atlasRaw < atlasDebit)
174
+ fail(resolved.character, `${node} "${rule.name}" costs ${atlasDebit} ATLAS Floyds; the Character holds ${character.atlasRaw}. Add ATLAS to the Character, then replan.`);
175
+ for (const { cargoId, quantityRaw } of cargo) {
176
+ const held = player.cargo.amounts.find((amount) => amount.cargoId === cargoId)
177
+ ?.amount ?? 0n;
178
+ if (held < quantityRaw)
179
+ fail(resolved.starbasePlayer, `${node} "${rule.name}" consumes ${quantityRaw} of cargo ${cargoId} from the Starbase Player; it holds ${held}. Move that cargo to the Starbase Player at System ${intent.system}, then replan.`);
180
+ }
181
+ const values = character.modifiers.values;
182
+ const fresh = (granted, held) => granted.filter((id) => !held.includes(id)).length;
183
+ const characterGrowthBytes = (unlocked ? 0 : NODE_BYTES) +
184
+ (stored === undefined ? NODE_LEVEL_BYTES : 0) +
185
+ fresh(rule.grants.tagIds, values.researchTags) * TAG_BYTES +
186
+ fresh(rule.grants.cargoCategoryIds, values.cargoCategories) *
187
+ CARGO_CATEGORY_BYTES +
188
+ fresh(rule.grants.rareMineralCargoIds, values.rareMineralDiscovery.map(({ cargoId }) => cargoId)) *
189
+ RARE_MINERAL_BYTES;
190
+ const key = directProfileKey(profile.keys, intent.keyIndex, intent.authority);
191
+ if (!key)
192
+ fail(intent.profile, 'The selected direct Profile key is absent or belongs to another authority. Select the current key index for this authority and replan.');
193
+ if (profileKeyExpired(key, now))
194
+ fail(intent.profile, 'The selected Profile key has expired. Renew it or select a current direct key and replan the research unlock.');
195
+ const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
196
+ if (!auth &&
197
+ !grantsPermission(key, SAGE_SCOPE, DO_RESEARCH) &&
198
+ !grantsPermission(key, intent.game, DO_RESEARCH))
199
+ fail(intent.profile, 'The selected key cannot do research. Use a direct Profile AUTH key or a doResearch key scoped to SAGE or this Game, and replan.');
200
+ const shortfall = (raw, length) => {
201
+ const minimum = rent(length);
202
+ return raw.lamports < minimum ? minimum - raw.lamports : 0n;
203
+ };
204
+ // The program resizes the Character and funds any shortfall from the
205
+ // Profile vault, then does the same for the Starbase Player, whose cargo
206
+ // consumption can only shrink it. Refunds of surplus are not credited.
207
+ const characterDebit = shortfall(characterRaw, characterRaw.data.length + characterGrowthBytes);
208
+ const playerDebit = shortfall(playerRaw, playerRaw.data.length);
209
+ const profileDebit = characterDebit + playerDebit;
210
+ if (intent.maximumProfileDebit !== undefined &&
211
+ profileDebit > intent.maximumProfileDebit)
212
+ fail(intent.profile, `${node} "${rule.name}" now needs ${profileDebit} Profile lamports for Character and Starbase Player storage, above the ${intent.maximumProfileDebit} this Plan approved. Replan and review the storage funding before signing.`);
213
+ const profileReserve = rent(profileRaw.data.length);
214
+ if (profileDebit > 0n) {
215
+ const shortAccounts = [
216
+ characterDebit > 0n ? `Character ${resolved.character}` : undefined,
217
+ playerDebit > 0n
218
+ ? `Starbase Player ${resolved.starbasePlayer}`
219
+ : undefined,
220
+ ]
221
+ .filter((account) => account !== undefined)
222
+ .join(' and ');
223
+ if (!auth && !hasPermissionBit(key, DRAIN_SOL_VAULT))
224
+ fail(intent.profile, `${node} "${rule.name}" needs ${profileDebit} Profile lamports for the storage of ${shortAccounts}, which the program withdraws from the Profile vault with the signing key; this doResearch key lacks drainSolVault. Use a direct Profile AUTH key or a key that also holds drainSolVault, or fund ${shortAccounts} to its rent minimum, then replan.`);
225
+ if (profileRaw.lamports < profileReserve + profileDebit)
226
+ fail(intent.profile, `${node} "${rule.name}" needs ${profileDebit} Profile lamports for storage above the Profile's own ${profileReserve}-lamport rent reserve; the Profile holds ${profileRaw.lamports}. Add ${profileReserve + profileDebit - profileRaw.lamports} lamports to the Profile, then replan.`);
227
+ }
228
+ return {
229
+ rule,
230
+ level: current + 1,
231
+ atlasDebit,
232
+ cargo,
233
+ points: rule.xpCosts.map(({ category, costRaw }) => ({
234
+ category,
235
+ costRaw,
236
+ })),
237
+ characterGrowthBytes,
238
+ profileDebit,
239
+ profileReserve,
240
+ };
241
+ }
242
+ function isUnlock(step) {
243
+ const { instruction } = step;
244
+ return (instruction.programAddress === SAGE_PROGRAM_ADDRESS &&
245
+ UNLOCK_RESEARCH_NODE_DISCRIMINATOR.every((byte, index) => instruction.data?.[index] === byte));
246
+ }
247
+ function u16(data, offset) {
248
+ return data[offset] | (data[offset + 1] << 8);
249
+ }
250
+ /** Binds every research unlock instruction to exactly one persisted guard:
251
+ * direct key, accounts, roles, key index and node must all match. */
252
+ export function validateResearchUnlockInstructions(steps, preconditions) {
253
+ const guards = preconditions.filter((guard) => guard.kind === 'research-unlock');
254
+ const unlocks = steps.filter(isUnlock);
255
+ const characters = new Set(guards.map(({ address }) => address));
256
+ if (unlocks.length !== guards.length || characters.size !== guards.length)
257
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Every research unlock instruction requires exactly one matching research-unlock guard, with at most one unlock per Character. Recreate the Plan with planUnlockResearchNode.');
258
+ const remaining = [...guards];
259
+ for (const { instruction, signers } of unlocks) {
260
+ const data = instruction.data;
261
+ const metas = instruction.accounts;
262
+ const index = remaining.findIndex((guard) => {
263
+ const expected = [
264
+ [guard.authority, AccountRole.READONLY_SIGNER],
265
+ [guard.profile, AccountRole.WRITABLE],
266
+ [SAGE_PROGRAM_ADDRESS, AccountRole.READONLY],
267
+ [PLAYER_PROFILE_PROGRAM_ADDRESS, AccountRole.READONLY],
268
+ [guard.address, AccountRole.WRITABLE],
269
+ [guard.game, AccountRole.READONLY],
270
+ [guard.starbasePlayer, AccountRole.WRITABLE],
271
+ [guard.system, AccountRole.READONLY],
272
+ [guard.currencyCache, AccountRole.WRITABLE],
273
+ ];
274
+ return (data?.length === 12 &&
275
+ u16(data, 8) === guard.keyIndex &&
276
+ u16(data, 10) === guard.nodeId &&
277
+ metas?.length === expected.length &&
278
+ expected.every(([address, role], at) => metas[at].address === address && metas[at].role === role) &&
279
+ signers.length === 1 &&
280
+ signers[0] === guard.authority);
281
+ });
282
+ if (index < 0)
283
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'A research unlock instruction does not match its persisted Profile key, Character, Starbase Player, System, Currency Cache or node. Recreate the Plan with planUnlockResearchNode.');
284
+ remaining.splice(index, 1);
285
+ }
286
+ }
287
+ //# sourceMappingURL=research-unlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-unlock.js","sourceRoot":"","sources":["../../../src/internal/planning/research-unlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAsDnD,MAAM,YAAY,GAAG,MAAO,CAAC;AAC7B,2DAA2D;AAC3D,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,mDAAmD;AACnD,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,6EAA6E;AAC7E,0EAA0E;AAC1E,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,4EAA4E;AAC5E,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,OAAO,GAOT;IACF,cAAc,EAAE,aAAa;IAC7B,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,YAAY;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF,MAAM,MAAM,GAAsD;IAChE,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,aAAa;IAC5B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,SAAS,IAAI,CAAC,OAAgB,EAAE,OAAe;IAC7C,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAI3C;IACC,MAAM,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;QAC7C,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;KACjC,CAAC,CAAC;IACH,OAAO;QACL,SAAS;QACT,cAAc,EAAE,MAAM,2BAA2B,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;QAC3E,aAAa;QACb,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC;AAED;;gFAEgF;AAChF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAA4B,EAC5B,QAAgC,EAChC,QAAsD,EACtD,KAIC;IAED,MAAM,IAAI,GAAG,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9C,IAAI,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;QACrC,IAAI,CACF,MAAM,CAAC,OAAO,EACd,iGAAiG,CAClG,CAAC;IACJ,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAc,EAAE;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU;YACxB,IAAI,CACF,OAAO,EACP,GAAG,IAAI,IAAI,OAAO,4HAA4H,CAC/I,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAC/C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CACvC,CAAC;IACF,MAAM,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,qBAAqB,CACzB,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAClD,MAAM,CAAC,IAAI,EACX,iBAAiB,CAClB,CAAC;IACF,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9D,IACE,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAC9B,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO;QAE1C,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,uHAAuH,CACxH,CAAC;IACJ,IACE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAC3B,CAAC,MAAM,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM;QACf,CAAC,MAAM,CAAC,QAAQ;QAEhB,IAAI,CACF,MAAM,CAAC,MAAM,EACb,uJAAuJ,CACxJ,CAAC;IACJ,IACE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO;QACvC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACvC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAE/B,IAAI,CACF,QAAQ,CAAC,cAAc,EACvB,qHAAqH,CACtH,CAAC;IACJ,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;QACzC,IAAI,CACF,QAAQ,CAAC,cAAc,EACvB,sDAAsD,MAAM,CAAC,UAAU,gCAAgC,MAAM,CAAC,MAAM,qBAAqB,MAAM,CAAC,UAAU,qHAAqH,CAChR,CAAC;IACJ,IACE,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS;QACtC,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,kBAAkB,CAAC;QACjD,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;YAChC,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CAAC;QAE7C,IAAI,CACF,MAAM,CAAC,IAAI,EACX,iIAAiI,CAClI,CAAC;IACJ,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;QACnD,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;QAC1E,MAAM,OAAO,GAAG,aAAa;aAC1B,KAAK,CACJ,cAAc,KAAK,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,CACvD;aACA,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CACV,GAAG;YACH,IAAI,CAAC,GAAG,CACN,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAC1D,CAAC,CACF,EACH,CAAC,CACF,CAAC;QACJ,MAAM,KAAK,GAAG,yFAAyF,SAAS,CAAC,SAAS,CAAC,KAAK,OAAO,KAAK,CAAC,UAAU,KAAK,OAAO,uBAAuB,CAAC;QAC3L,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,OAAO,GAAG,2BAA2B;YACnC,CAAC,CAAC,GAAG,KAAK,mBAAmB,2BAA2B,uMAAuM;YAC/P,CAAC,CAAC,GAAG,KAAK,yQAAyQ,CACtR,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY;QAC3C,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,0EAA0E,SAAS,CAAC,EAAE,CAAC,KAAK,OAAO,KAAK,CAAC,YAAY,yQAAyQ,CAC/X,CAAC;IACJ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QACP,IAAI,CACF,MAAM,CAAC,IAAI,EACX,GAAG,IAAI,iGAAiG,CACzG,CAAC;IACJ,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAChD,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CACzC,EAAE,KAAK,CAAC;IACT,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;QAChD,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,yIAAyI,CACjJ,CAAC;IACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ;QACjD,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,qCAAqC,IAAI,CAAC,QAAQ,wBAAwB,CAChG,CAAC;IACJ,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,GAAG,CAAC;QAC9B,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,iBAAiB,OAAO,gCAAgC,OAAO,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,uBAAuB,OAAO,GAAG,CAAC,GAAG,CACnJ,CAAC;IACJ,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACpB,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,qCAAqC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yDAAyD,CAC/L,CAAC;IACJ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS;YACrB,IAAI,CACF,MAAM,CAAC,IAAI,EACX,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,qGAAqG,CAC3H,CAAC;QACJ,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,KAAK,aAAa,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;QACrE,IAAI,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY;YAC9B,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,cAAc,KAAK,UAAU,IAAI,CAAC,YAAY,+BAA+B,EAAE,CAAC,KAAK,UAAU,IAAI,gBAAgB,CACzI,CAAC;QACJ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,GAAG,KAAK,kBAAkB,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO;YAC1B,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,OAAO,IAAI,IAAI,uBAAuB,SAAS,oBAAoB,IAAI,gBAAgB,CAC7H,CAAC;IACN,CAAC;IACD,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,MAAM,GACV,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC;QAC9C,IAAI,MAAM,GAAG,OAAO;YAClB,IAAI,CACF,MAAM,CAAC,IAAI,EACX,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,cAAc,OAAO,cAAc,IAAI,wFAAwF,CACrJ,CAAC;QACJ,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,OAAO,EAAE,CAAC;KACpD,CAAC,CAAC,CAAC;IACJ,IACE,MAAM,CAAC,iBAAiB,KAAK,SAAS;QACtC,UAAU,GAAG,MAAM,CAAC,iBAAiB;QAErC,IAAI,CACF,MAAM,CAAC,IAAI,EACX,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,eAAe,UAAU,4BAA4B,MAAM,CAAC,iBAAiB,iEAAiE,CACpK,CAAC;IACJ,IAAI,SAAS,CAAC,QAAQ,GAAG,UAAU;QACjC,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,WAAW,UAAU,sCAAsC,SAAS,CAAC,QAAQ,4CAA4C,CAC/I,CAAC;IACJ,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,GACR,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;YAC/D,EAAE,MAAM,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,GAAG,WAAW;YACpB,IAAI,CACF,QAAQ,CAAC,cAAc,EACvB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,cAAc,WAAW,aAAa,OAAO,uCAAuC,IAAI,sDAAsD,MAAM,CAAC,MAAM,gBAAgB,CACjM,CAAC;IACN,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,OAA0B,EAAE,IAAuB,EAAE,EAAE,CACpE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACpD,MAAM,oBAAoB,GACxB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3B,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS;QAC1D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC;YACzD,oBAAoB;QACtB,KAAK,CACH,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAC1D;YACC,kBAAkB,CAAC;IACvB,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,CAAC,GAAG;QACN,IAAI,CACF,MAAM,CAAC,OAAO,EACd,wIAAwI,CACzI,CAAC;IACJ,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;QAC7B,IAAI,CACF,MAAM,CAAC,OAAO,EACd,+GAA+G,CAChH,CAAC;IACJ,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACtD,IACE,CAAC,IAAI;QACL,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC;QAC/C,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC;QAEhD,IAAI,CACF,MAAM,CAAC,OAAO,EACd,iIAAiI,CAClI,CAAC;IACJ,MAAM,SAAS,GAAG,CAAC,GAAe,EAAE,MAAc,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC,CAAC;IACF,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,cAAc,GAAG,SAAS,CAC9B,YAAY,EACZ,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAChD,CAAC;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,cAAc,GAAG,WAAW,CAAC;IAClD,IACE,MAAM,CAAC,mBAAmB,KAAK,SAAS;QACxC,YAAY,GAAG,MAAM,CAAC,mBAAmB;QAEzC,IAAI,CACF,MAAM,CAAC,OAAO,EACd,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,eAAe,YAAY,0EAA0E,MAAM,CAAC,mBAAmB,4EAA4E,CACjO,CAAC;IACJ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,aAAa,GAAG;YACpB,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;YACnE,WAAW,GAAG,EAAE;gBACd,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,EAAE;gBAC9C,CAAC,CAAC,SAAS;SACd;aACE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC;aAC1C,IAAI,CAAC,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC;YAClD,IAAI,CACF,MAAM,CAAC,OAAO,EACd,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,WAAW,YAAY,wCAAwC,aAAa,qMAAqM,aAAa,oCAAoC,CACxV,CAAC;QACJ,IAAI,UAAU,CAAC,QAAQ,GAAG,cAAc,GAAG,YAAY;YACrD,IAAI,CACF,MAAM,CAAC,OAAO,EACd,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,WAAW,YAAY,yDAAyD,cAAc,4CAA4C,UAAU,CAAC,QAAQ,SAAS,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC,QAAQ,wCAAwC,CACvR,CAAC;IACN,CAAC;IACD,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,OAAO,GAAG,CAAC;QAClB,UAAU;QACV,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;QACH,oBAAoB;QACpB,YAAY;QACZ,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc;IAC9B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7B,OAAO,CACL,WAAW,CAAC,cAAc,KAAK,oBAAoB;QACnD,kCAAkC,CAAC,KAAK,CACtC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CACpD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,IAAuB,EAAE,MAAc;IAClD,OAAO,IAAI,CAAC,MAAM,CAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,kCAAkC,CAChD,KAA0B,EAC1B,aAA0C;IAE1C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CACjC,CAAC,KAAK,EAAgC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAC1E,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM;QACvE,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,8KAA8K,CAC/K,CAAC;IACJ,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC9B,KAAK,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG;gBACf,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC;gBAC9C,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACrC,CAAC,oBAAoB,EAAE,WAAW,CAAC,QAAQ,CAAC;gBAC5C,CAAC,8BAA8B,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACtD,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACrC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;gBAClC,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC;gBAC5C,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACpC,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC;aACnC,CAAC;YACX,OAAO,CACL,IAAI,EAAE,MAAM,KAAK,EAAE;gBACnB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ;gBAC/B,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM;gBAC9B,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC,MAAM;gBACjC,QAAQ,CAAC,KAAK,CACZ,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CACtB,KAAK,CAAC,EAAE,CAAE,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,EAAE,CAAE,CAAC,IAAI,KAAK,IAAI,CAC7D;gBACD,OAAO,CAAC,MAAM,KAAK,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,CAAC;YACX,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,oLAAoL,CACrL,CAAC;QACJ,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AccountRole } from '@solana/kit';
2
2
  import { InvalidActionInputError } from '../../client/errors.js';
3
- import { IDLE_TO_RESPAWN_DISCRIMINATOR, RESPAWN_TO_DOCKED_DISCRIMINATOR, SAGE_PROGRAM_ADDRESS, } from '../c4/runtime-bindings.js';
3
+ import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
4
+ import { IDLE_TO_RESPAWN_DISCRIMINATOR, RESPAWN_TO_DOCKED_DISCRIMINATOR, } from '../c4/discriminators.js';
4
5
  export function validateRespawnInstructions(steps, guards) {
5
6
  const selected = guards.filter((g) => g.kind === 'fleet-respawn');
6
7
  const recovery = steps.filter(({ instruction: i }) => i.programAddress === SAGE_PROGRAM_ADDRESS &&
@@ -1 +1 @@
1
- {"version":3,"file":"respawn-guards.js","sourceRoot":"","sources":["../../../src/internal/planning/respawn-guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"respawn-guards.js","sourceRoot":"","sources":["../../../src/internal/planning/respawn-guards.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,6 @@ export declare function isRuntimeGuard(value: {
33
33
  }): value is RuntimeGuard;
34
34
  /** Strict nested runtime parsing applies both to factory values and persisted JSON. */
35
35
  export declare function normalizeRuntimeGuard(value: unknown, field: string, wire?: boolean): RuntimeGuard;
36
- /** Bigints use canonical decimal strings; schema validation excludes arbitrary object graphs. */
37
- export declare function runtimeGuardToJSON(guard: RuntimeGuard): RuntimeGuardJson;
38
36
  /** Resolve canonical accounts again; shared balances and XP counters are not compared. */
39
37
  export declare function revalidateRuntimeGuards(ctx: SageContext, guards: readonly RuntimeGuard[], freshGameVersions?: Map<Address, number>): Promise<void>;
40
38
  /** Old layouts and unguarded persisted instructions fail before assembly or signing. */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-guards.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/runtime-guards.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAwB7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EAErB,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,KAAK,WAAW,GAAG,OAAO,CACxB,UAAU,CAAC,OAAO,qBAAqB,CAAC,CACzC,CAAC,UAAU,CAAC,CAAC;AACd,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AACF,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAAG,SAAS,GAClC,CACI;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;CACzD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC,CACJ,CAAC;AACJ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC,MAAM,GACN,CAAC,SAAS,OAAO,GACf,MAAM,GACN,CAAC,SAAS,MAAM,GACd;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,CAAC,CAAC;AACV,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AACzD,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,KAAK,IAAI,YAAY,CAMxB;AAsLD,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,UAAQ,GACX,YAAY,CAqDd;AACD,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB,CAMxE;AAiBD,0FAA0F;AAC1F,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,iBAAiB,uBAA6B,GAC7C,OAAO,CAAC,IAAI,CAAC,CA2Cf;AA8YD,wFAAwF;AACxF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,aAAa,EAAE,SAAS,gBAAgB,EAAE,GACzC,IAAI,CA6IN"}
1
+ {"version":3,"file":"runtime-guards.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/runtime-guards.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgB7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EAErB,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAc9B,KAAK,WAAW,GAAG,OAAO,CACxB,UAAU,CAAC,OAAO,qBAAqB,CAAC,CACzC,CAAC,UAAU,CAAC,CAAC;AACd,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AACF,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAAG,SAAS,GAClC,CACI;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;CACzD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC,CACJ,CAAC;AACJ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC,MAAM,GACN,CAAC,SAAS,OAAO,GACf,MAAM,GACN,CAAC,SAAS,MAAM,GACd;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,CAAC,CAAC;AACV,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AACzD,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,KAAK,IAAI,YAAY,CAMxB;AAsLD,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,UAAQ,GACX,YAAY,CAqDd;AAkBD,0FAA0F;AAC1F,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,iBAAiB,uBAA6B,GAC7C,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAmbD,wFAAwF;AACxF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,aAAa,EAAE,SAAS,gBAAgB,EAAE,GACzC,IAAI,CA6IN"}