@aephia/atlas-kit 0.7.0-next.2 → 0.7.0-next.3
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.
- package/dist/cargo/actions/deposit.d.ts.map +1 -1
- package/dist/cargo/actions/deposit.js +4 -4
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +20 -20
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/cargo/actions/transfer-bounds.d.ts +4 -3
- package/dist/cargo/actions/transfer-bounds.d.ts.map +1 -1
- package/dist/cargo/actions/transfer-bounds.js +11 -7
- package/dist/cargo/actions/transfer-bounds.js.map +1 -1
- package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-context.js +4 -4
- package/dist/cargo/actions/wallet-context.js.map +1 -1
- package/dist/cargo/actions/withdrawal.js +2 -2
- package/dist/cargo/actions/withdrawal.js.map +1 -1
- package/dist/cargo/index.js +2 -2
- package/dist/cargo/index.js.map +1 -1
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +84 -84
- package/dist/claim-stakes/actions/index.js.map +1 -1
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/context.js +49 -20
- package/dist/client/context.js.map +1 -1
- package/dist/client/contracts.d.ts +42 -4
- package/dist/client/contracts.d.ts.map +1 -1
- package/dist/client/deployments.d.ts +11 -1
- package/dist/client/deployments.d.ts.map +1 -1
- package/dist/client/deployments.js +14 -0
- package/dist/client/deployments.js.map +1 -1
- package/dist/client/index.d.ts +18 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +17 -0
- package/dist/client/index.js.map +1 -1
- package/dist/combat/actions/index.d.ts.map +1 -1
- package/dist/combat/actions/index.js +70 -66
- package/dist/combat/actions/index.js.map +1 -1
- package/dist/combat/index.d.ts.map +1 -1
- package/dist/combat/index.js +2 -2
- package/dist/combat/index.js.map +1 -1
- package/dist/crafting/actions/fee-rate.d.ts.map +1 -1
- package/dist/crafting/actions/fee-rate.js +1 -1
- package/dist/crafting/actions/fee-rate.js.map +1 -1
- package/dist/crafting/actions/index.d.ts.map +1 -1
- package/dist/crafting/actions/index.js +44 -45
- package/dist/crafting/actions/index.js.map +1 -1
- package/dist/crafting/index.d.ts.map +1 -1
- package/dist/crafting/index.js +4 -4
- package/dist/crafting/index.js.map +1 -1
- package/dist/factions/actions/index.d.ts.map +1 -1
- package/dist/factions/actions/index.js +7 -8
- package/dist/factions/actions/index.js.map +1 -1
- package/dist/factions/index.d.ts.map +1 -1
- package/dist/factions/index.js +12 -12
- package/dist/factions/index.js.map +1 -1
- package/dist/factions/profile-faction.js +2 -2
- package/dist/factions/profile-faction.js.map +1 -1
- package/dist/fleets/actions/add-ship.d.ts.map +1 -1
- package/dist/fleets/actions/add-ship.js +5 -5
- package/dist/fleets/actions/add-ship.js.map +1 -1
- package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
- package/dist/fleets/actions/create-fleet.js +4 -4
- package/dist/fleets/actions/create-fleet.js.map +1 -1
- package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
- package/dist/fleets/actions/crew-transfer.js +5 -2
- package/dist/fleets/actions/crew-transfer.js.map +1 -1
- package/dist/fleets/actions/deployment-storage.d.ts.map +1 -1
- package/dist/fleets/actions/deployment-storage.js +4 -4
- package/dist/fleets/actions/deployment-storage.js.map +1 -1
- package/dist/fleets/actions/disband.d.ts.map +1 -1
- package/dist/fleets/actions/disband.js +6 -6
- package/dist/fleets/actions/disband.js.map +1 -1
- package/dist/fleets/actions/dock-bounds.d.ts +3 -2
- package/dist/fleets/actions/dock-bounds.d.ts.map +1 -1
- package/dist/fleets/actions/dock-bounds.js +8 -1
- package/dist/fleets/actions/dock-bounds.js.map +1 -1
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +85 -84
- package/dist/fleets/actions/index.js.map +1 -1
- package/dist/fleets/actions/respawn.js +1 -1
- package/dist/fleets/actions/respawn.js.map +1 -1
- package/dist/fleets/actions/ship-import.d.ts.map +1 -1
- package/dist/fleets/actions/ship-import.js +7 -8
- package/dist/fleets/actions/ship-import.js.map +1 -1
- package/dist/fleets/actions/sync.d.ts.map +1 -1
- package/dist/fleets/actions/sync.js +5 -4
- package/dist/fleets/actions/sync.js.map +1 -1
- package/dist/fleets/index.js +1 -1
- package/dist/fleets/index.js.map +1 -1
- package/dist/identity/actions/create-profile.d.ts.map +1 -1
- package/dist/identity/actions/create-profile.js +11 -8
- package/dist/identity/actions/create-profile.js.map +1 -1
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +5 -5
- package/dist/identity/actions/index.js.map +1 -1
- package/dist/identity/actions/research-unlock.d.ts.map +1 -1
- package/dist/identity/actions/research-unlock.js +5 -5
- package/dist/identity/actions/research-unlock.js.map +1 -1
- package/dist/identity/index.d.ts +0 -14
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +5 -19
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/permissions.d.ts +31 -23
- package/dist/identity/permissions.d.ts.map +1 -1
- package/dist/identity/permissions.js +27 -30
- package/dist/identity/permissions.js.map +1 -1
- package/dist/index.d.ts +1 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +1 -1
- package/dist/internal/c4/account-decoding.d.ts +9 -5
- package/dist/internal/c4/account-decoding.d.ts.map +1 -1
- package/dist/internal/c4/account-decoding.js +8 -7
- package/dist/internal/c4/account-decoding.js.map +1 -1
- package/dist/internal/c4/adapter.d.ts +2 -2
- package/dist/internal/c4/adapter.d.ts.map +1 -1
- package/dist/internal/c4/career-xp.d.ts.map +1 -1
- package/dist/internal/c4/career-xp.js +3 -3
- package/dist/internal/c4/career-xp.js.map +1 -1
- package/dist/internal/c4/character-registration.d.ts +2 -1
- package/dist/internal/c4/character-registration.d.ts.map +1 -1
- package/dist/internal/c4/character-registration.js +3 -3
- package/dist/internal/c4/character-registration.js.map +1 -1
- package/dist/internal/c4/character.d.ts +3 -3
- package/dist/internal/c4/character.d.ts.map +1 -1
- package/dist/internal/c4/character.js +6 -6
- package/dist/internal/c4/character.js.map +1 -1
- package/dist/internal/c4/claim-stake-storage.d.ts +2 -2
- package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-storage.js +2 -2
- package/dist/internal/c4/claim-stake-storage.js.map +1 -1
- package/dist/internal/c4/claim-stake.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake.js +2 -2
- package/dist/internal/c4/claim-stake.js.map +1 -1
- package/dist/internal/c4/combat-storage.d.ts +2 -2
- package/dist/internal/c4/combat-storage.d.ts.map +1 -1
- package/dist/internal/c4/combat-storage.js +4 -2
- package/dist/internal/c4/combat-storage.js.map +1 -1
- package/dist/internal/c4/combat.d.ts +2 -2
- package/dist/internal/c4/combat.d.ts.map +1 -1
- package/dist/internal/c4/combat.js +4 -4
- package/dist/internal/c4/combat.js.map +1 -1
- package/dist/internal/c4/crafting.d.ts +4 -4
- package/dist/internal/c4/crafting.d.ts.map +1 -1
- package/dist/internal/c4/crafting.js +10 -10
- package/dist/internal/c4/crafting.js.map +1 -1
- package/dist/internal/c4/currency-cache.d.ts +3 -3
- package/dist/internal/c4/currency-cache.d.ts.map +1 -1
- package/dist/internal/c4/currency-cache.js +6 -6
- package/dist/internal/c4/currency-cache.js.map +1 -1
- package/dist/internal/c4/faction-enrollment.d.ts +0 -3
- package/dist/internal/c4/faction-enrollment.d.ts.map +1 -1
- package/dist/internal/c4/faction-enrollment.js +1 -3
- package/dist/internal/c4/faction-enrollment.js.map +1 -1
- package/dist/internal/c4/faction-epoch-meter.d.ts +3 -3
- package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
- package/dist/internal/c4/faction-epoch-meter.js +5 -5
- package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
- package/dist/internal/c4/faction-treasury.d.ts +2 -1
- package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
- package/dist/internal/c4/faction-treasury.js +4 -4
- package/dist/internal/c4/faction-treasury.js.map +1 -1
- package/dist/internal/c4/factions.d.ts +12 -12
- package/dist/internal/c4/factions.d.ts.map +1 -1
- package/dist/internal/c4/factions.js +31 -31
- package/dist/internal/c4/factions.js.map +1 -1
- package/dist/internal/c4/fleet-arrival.d.ts +2 -2
- package/dist/internal/c4/fleet-arrival.d.ts.map +1 -1
- package/dist/internal/c4/fleet-arrival.js +3 -3
- package/dist/internal/c4/fleet-arrival.js.map +1 -1
- package/dist/internal/c4/fleet-creation.d.ts +3 -2
- package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
- package/dist/internal/c4/fleet-creation.js +7 -8
- package/dist/internal/c4/fleet-creation.js.map +1 -1
- package/dist/internal/c4/fleet-crew-binding.d.ts +2 -2
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
- package/dist/internal/c4/fleet-crew-binding.js +4 -4
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
- package/dist/internal/c4/fleet-disband.d.ts +2 -2
- package/dist/internal/c4/fleet-disband.d.ts.map +1 -1
- package/dist/internal/c4/fleet-disband.js +7 -8
- package/dist/internal/c4/fleet-disband.js.map +1 -1
- package/dist/internal/c4/fleet-respawn.d.ts +2 -4
- package/dist/internal/c4/fleet-respawn.d.ts.map +1 -1
- package/dist/internal/c4/fleet-respawn.js +6 -8
- package/dist/internal/c4/fleet-respawn.js.map +1 -1
- package/dist/internal/c4/fleet-ship-assembly.d.ts +2 -2
- package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
- package/dist/internal/c4/fleet-ship-assembly.js +5 -6
- package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
- package/dist/internal/c4/fleet-sync.d.ts +2 -1
- package/dist/internal/c4/fleet-sync.d.ts.map +1 -1
- package/dist/internal/c4/fleet-sync.js +3 -3
- package/dist/internal/c4/fleet-sync.js.map +1 -1
- package/dist/internal/c4/fleet.d.ts +4 -4
- package/dist/internal/c4/fleet.d.ts.map +1 -1
- package/dist/internal/c4/fleet.js +9 -9
- package/dist/internal/c4/fleet.js.map +1 -1
- package/dist/internal/c4/game.d.ts +12 -12
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +24 -24
- package/dist/internal/c4/game.js.map +1 -1
- package/dist/internal/c4/identity.d.ts +2 -2
- package/dist/internal/c4/identity.d.ts.map +1 -1
- package/dist/internal/c4/identity.js +6 -6
- package/dist/internal/c4/identity.js.map +1 -1
- package/dist/internal/c4/local-market-order.d.ts +2 -3
- package/dist/internal/c4/local-market-order.d.ts.map +1 -1
- package/dist/internal/c4/local-market-order.js +4 -9
- package/dist/internal/c4/local-market-order.js.map +1 -1
- package/dist/internal/c4/loot.d.ts.map +1 -1
- package/dist/internal/c4/loot.js +2 -2
- package/dist/internal/c4/loot.js.map +1 -1
- package/dist/internal/c4/loyalty.d.ts +4 -4
- package/dist/internal/c4/loyalty.d.ts.map +1 -1
- package/dist/internal/c4/loyalty.js +10 -10
- package/dist/internal/c4/loyalty.js.map +1 -1
- package/dist/internal/c4/market.d.ts +3 -3
- package/dist/internal/c4/market.d.ts.map +1 -1
- package/dist/internal/c4/market.js +7 -7
- package/dist/internal/c4/market.js.map +1 -1
- package/dist/internal/c4/open-signal.d.ts +3 -4
- package/dist/internal/c4/open-signal.d.ts.map +1 -1
- package/dist/internal/c4/open-signal.js +7 -10
- package/dist/internal/c4/open-signal.js.map +1 -1
- package/dist/internal/c4/pda.d.ts +18 -18
- package/dist/internal/c4/pda.d.ts.map +1 -1
- package/dist/internal/c4/pda.js +35 -36
- package/dist/internal/c4/pda.js.map +1 -1
- package/dist/internal/c4/profile-creation.d.ts +3 -2
- package/dist/internal/c4/profile-creation.d.ts.map +1 -1
- package/dist/internal/c4/profile-creation.js +6 -7
- package/dist/internal/c4/profile-creation.js.map +1 -1
- package/dist/internal/c4/profile-faction.d.ts +2 -2
- package/dist/internal/c4/profile-faction.d.ts.map +1 -1
- package/dist/internal/c4/profile-faction.js +4 -4
- package/dist/internal/c4/profile-faction.js.map +1 -1
- package/dist/internal/c4/profile-permissions.d.ts +3 -4
- package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
- package/dist/internal/c4/profile-permissions.js +7 -9
- package/dist/internal/c4/profile-permissions.js.map +1 -1
- package/dist/internal/c4/rewards.d.ts +3 -3
- package/dist/internal/c4/rewards.d.ts.map +1 -1
- package/dist/internal/c4/rewards.js +8 -8
- package/dist/internal/c4/rewards.js.map +1 -1
- package/dist/internal/c4/runtime-bindings.d.ts +1 -2
- package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
- package/dist/internal/c4/runtime-bindings.js +1 -2
- package/dist/internal/c4/runtime-bindings.js.map +1 -1
- package/dist/internal/c4/scan-lifecycle.d.ts +2 -2
- package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
- package/dist/internal/c4/scan-lifecycle.js +4 -4
- package/dist/internal/c4/scan-lifecycle.js.map +1 -1
- package/dist/internal/c4/scanning.d.ts +2 -2
- package/dist/internal/c4/scanning.d.ts.map +1 -1
- package/dist/internal/c4/scanning.js +4 -4
- package/dist/internal/c4/scanning.js.map +1 -1
- package/dist/internal/c4/starbase.d.ts +2 -2
- package/dist/internal/c4/starbase.d.ts.map +1 -1
- package/dist/internal/c4/starbase.js +5 -5
- package/dist/internal/c4/starbase.js.map +1 -1
- package/dist/internal/c4/wallet-cargo-cache.d.ts +2 -2
- package/dist/internal/c4/wallet-cargo-cache.d.ts.map +1 -1
- package/dist/internal/c4/wallet-cargo-cache.js +3 -3
- package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
- package/dist/internal/c4/world.d.ts +3 -3
- package/dist/internal/c4/world.d.ts.map +1 -1
- package/dist/internal/c4/world.js +9 -9
- package/dist/internal/c4/world.js.map +1 -1
- package/dist/internal/planning/arrival-guards.d.ts +2 -1
- package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
- package/dist/internal/planning/arrival-guards.js +4 -5
- package/dist/internal/planning/arrival-guards.js.map +1 -1
- package/dist/internal/planning/authorization-adapter.d.ts +35 -34
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +105 -105
- package/dist/internal/planning/authorization-adapter.js.map +1 -1
- package/dist/internal/planning/cargo-storage-actions.d.ts +2 -2
- package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/cargo-storage-actions.js +7 -5
- package/dist/internal/planning/cargo-storage-actions.js.map +1 -1
- package/dist/internal/planning/character-access.d.ts +3 -3
- package/dist/internal/planning/character-access.d.ts.map +1 -1
- package/dist/internal/planning/character-access.js +6 -5
- package/dist/internal/planning/character-access.js.map +1 -1
- package/dist/internal/planning/character-registration-guard.d.ts +2 -1
- package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
- package/dist/internal/planning/character-registration-guard.js +3 -4
- package/dist/internal/planning/character-registration-guard.js.map +1 -1
- package/dist/internal/planning/character-registration.d.ts.map +1 -1
- package/dist/internal/planning/character-registration.js +2 -2
- package/dist/internal/planning/character-registration.js.map +1 -1
- package/dist/internal/planning/claim-stake-storage-actions.d.ts +2 -2
- package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/claim-stake-storage-actions.js +3 -3
- package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -1
- package/dist/internal/planning/combat-storage-actions.d.ts +2 -2
- package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/combat-storage-actions.js +3 -3
- package/dist/internal/planning/combat-storage-actions.js.map +1 -1
- package/dist/internal/planning/crafting-storage-actions.d.ts +2 -2
- package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/crafting-storage-actions.js +6 -6
- package/dist/internal/planning/crafting-storage-actions.js.map +1 -1
- package/dist/internal/planning/currency-cache-guard.d.ts +2 -1
- package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
- package/dist/internal/planning/currency-cache-guard.js +2 -3
- package/dist/internal/planning/currency-cache-guard.js.map +1 -1
- package/dist/internal/planning/democracy-history.d.ts.map +1 -1
- package/dist/internal/planning/democracy-history.js +9 -9
- package/dist/internal/planning/democracy-history.js.map +1 -1
- package/dist/internal/planning/faction-enrollment.d.ts +2 -2
- package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
- package/dist/internal/planning/faction-enrollment.js +6 -6
- package/dist/internal/planning/faction-enrollment.js.map +1 -1
- package/dist/internal/planning/faction-trade-state.d.ts +4 -4
- package/dist/internal/planning/faction-trade-state.d.ts.map +1 -1
- package/dist/internal/planning/faction-trade-state.js +9 -9
- package/dist/internal/planning/faction-trade-state.js.map +1 -1
- package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
- package/dist/internal/planning/fleet-arrival.js +8 -9
- package/dist/internal/planning/fleet-arrival.js.map +1 -1
- package/dist/internal/planning/fleet-attack-xp.d.ts +2 -2
- package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
- package/dist/internal/planning/fleet-attack-xp.js +7 -7
- package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
- package/dist/internal/planning/fleet-creation.d.ts +3 -3
- package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
- package/dist/internal/planning/fleet-creation.js +9 -10
- package/dist/internal/planning/fleet-creation.js.map +1 -1
- package/dist/internal/planning/fleet-crew-guard.d.ts +4 -3
- package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
- package/dist/internal/planning/fleet-crew-guard.js +7 -8
- package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
- package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
- package/dist/internal/planning/fleet-crew-transfer.js +16 -17
- package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
- package/dist/internal/planning/fleet-disband-guard.d.ts +2 -1
- package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -1
- package/dist/internal/planning/fleet-disband-guard.js +4 -5
- package/dist/internal/planning/fleet-disband-guard.js.map +1 -1
- package/dist/internal/planning/fleet-disband.d.ts +3 -3
- package/dist/internal/planning/fleet-disband.d.ts.map +1 -1
- package/dist/internal/planning/fleet-disband.js +11 -12
- package/dist/internal/planning/fleet-disband.js.map +1 -1
- package/dist/internal/planning/fleet-dock-funding-guard.d.ts +2 -1
- package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
- package/dist/internal/planning/fleet-dock-funding-guard.js +2 -3
- package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
- package/dist/internal/planning/fleet-dock-funding.d.ts +2 -2
- package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
- package/dist/internal/planning/fleet-dock-funding.js +9 -9
- package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
- package/dist/internal/planning/fleet-docking-guard.d.ts +2 -1
- package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
- package/dist/internal/planning/fleet-docking-guard.js +4 -5
- package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
- package/dist/internal/planning/fleet-docking.d.ts +2 -2
- package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
- package/dist/internal/planning/fleet-docking.js +11 -12
- package/dist/internal/planning/fleet-docking.js.map +1 -1
- package/dist/internal/planning/fleet-rental.d.ts +2 -1
- package/dist/internal/planning/fleet-rental.d.ts.map +1 -1
- package/dist/internal/planning/fleet-rental.js +2 -3
- package/dist/internal/planning/fleet-rental.js.map +1 -1
- package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
- package/dist/internal/planning/fleet-respawn.js +16 -18
- package/dist/internal/planning/fleet-respawn.js.map +1 -1
- package/dist/internal/planning/fleet-ship-assembly.d.ts +3 -3
- package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
- package/dist/internal/planning/fleet-ship-assembly.js +12 -13
- package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
- package/dist/internal/planning/governance-fees.d.ts.map +1 -1
- package/dist/internal/planning/governance-fees.js +12 -12
- package/dist/internal/planning/governance-fees.js.map +1 -1
- package/dist/internal/planning/local-market-order-funding.d.ts +2 -2
- package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
- package/dist/internal/planning/local-market-order-funding.js +11 -11
- package/dist/internal/planning/local-market-order-funding.js.map +1 -1
- package/dist/internal/planning/local-market-order.d.ts +2 -1
- package/dist/internal/planning/local-market-order.d.ts.map +1 -1
- package/dist/internal/planning/local-market-order.js +4 -4
- package/dist/internal/planning/local-market-order.js.map +1 -1
- package/dist/internal/planning/market-storage-actions.d.ts +2 -2
- package/dist/internal/planning/market-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/market-storage-actions.js +3 -3
- package/dist/internal/planning/market-storage-actions.js.map +1 -1
- package/dist/internal/planning/mining-stop.d.ts +3 -3
- package/dist/internal/planning/mining-stop.d.ts.map +1 -1
- package/dist/internal/planning/mining-stop.js +5 -6
- package/dist/internal/planning/mining-stop.js.map +1 -1
- package/dist/internal/planning/mining-storage-actions.d.ts +2 -2
- package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/mining-storage-actions.js +2 -2
- package/dist/internal/planning/mining-storage-actions.js.map +1 -1
- package/dist/internal/planning/movement-storage-actions.d.ts +2 -2
- package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/movement-storage-actions.js +2 -2
- package/dist/internal/planning/movement-storage-actions.js.map +1 -1
- package/dist/internal/planning/movement-xp-guard.d.ts +2 -1
- package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
- package/dist/internal/planning/movement-xp-guard.js +3 -3
- package/dist/internal/planning/movement-xp-guard.js.map +1 -1
- package/dist/internal/planning/open-signal-guard.d.ts +2 -1
- package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
- package/dist/internal/planning/open-signal-guard.js +4 -4
- package/dist/internal/planning/open-signal-guard.js.map +1 -1
- package/dist/internal/planning/open-signal.d.ts +3 -3
- package/dist/internal/planning/open-signal.d.ts.map +1 -1
- package/dist/internal/planning/open-signal.js +12 -13
- package/dist/internal/planning/open-signal.js.map +1 -1
- package/dist/internal/planning/own-starbase-facts.d.ts +2 -2
- package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -1
- package/dist/internal/planning/own-starbase-facts.js +7 -7
- package/dist/internal/planning/own-starbase-facts.js.map +1 -1
- package/dist/internal/planning/profile-storage-funding-guard.d.ts +3 -2
- package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -1
- package/dist/internal/planning/profile-storage-funding-guard.js +4 -5
- package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -1
- package/dist/internal/planning/profile-storage-funding.d.ts +3 -3
- package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -1
- package/dist/internal/planning/profile-storage-funding.js +5 -6
- package/dist/internal/planning/profile-storage-funding.js.map +1 -1
- package/dist/internal/planning/qualified-deployment.d.ts +11 -0
- package/dist/internal/planning/qualified-deployment.d.ts.map +1 -0
- package/dist/internal/planning/qualified-deployment.js +15 -0
- package/dist/internal/planning/qualified-deployment.js.map +1 -0
- package/dist/internal/planning/recipe-state.d.ts +3 -3
- package/dist/internal/planning/recipe-state.d.ts.map +1 -1
- package/dist/internal/planning/recipe-state.js +5 -5
- package/dist/internal/planning/recipe-state.js.map +1 -1
- package/dist/internal/planning/region-access.d.ts +5 -5
- package/dist/internal/planning/region-access.d.ts.map +1 -1
- package/dist/internal/planning/region-access.js +12 -12
- package/dist/internal/planning/region-access.js.map +1 -1
- package/dist/internal/planning/rent-catalog.d.ts +2 -2
- package/dist/internal/planning/rent-catalog.d.ts.map +1 -1
- package/dist/internal/planning/rent-catalog.js +8 -9
- package/dist/internal/planning/rent-catalog.js.map +1 -1
- package/dist/internal/planning/research-unlock.d.ts +4 -4
- package/dist/internal/planning/research-unlock.d.ts.map +1 -1
- package/dist/internal/planning/research-unlock.js +19 -21
- package/dist/internal/planning/research-unlock.js.map +1 -1
- package/dist/internal/planning/respawn-guards.d.ts +2 -1
- package/dist/internal/planning/respawn-guards.d.ts.map +1 -1
- package/dist/internal/planning/respawn-guards.js +2 -3
- package/dist/internal/planning/respawn-guards.js.map +1 -1
- package/dist/internal/planning/runtime-guards.d.ts +2 -2
- package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
- package/dist/internal/planning/runtime-guards.js +10 -11
- package/dist/internal/planning/runtime-guards.js.map +1 -1
- package/dist/internal/planning/scan-completion-guard.d.ts +4 -3
- package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
- package/dist/internal/planning/scan-completion-guard.js +7 -8
- package/dist/internal/planning/scan-completion-guard.js.map +1 -1
- package/dist/internal/planning/scan-completion.d.ts +1 -1
- package/dist/internal/planning/scan-completion.d.ts.map +1 -1
- package/dist/internal/planning/scan-completion.js +12 -14
- package/dist/internal/planning/scan-completion.js.map +1 -1
- package/dist/internal/planning/scan-detect-guard.d.ts +5 -4
- package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
- package/dist/internal/planning/scan-detect-guard.js +7 -8
- package/dist/internal/planning/scan-detect-guard.js.map +1 -1
- package/dist/internal/planning/scan-detect.d.ts +2 -2
- package/dist/internal/planning/scan-detect.d.ts.map +1 -1
- package/dist/internal/planning/scan-detect.js +17 -18
- package/dist/internal/planning/scan-detect.js.map +1 -1
- package/dist/internal/planning/ship-import-funding.d.ts +3 -3
- package/dist/internal/planning/ship-import-funding.d.ts.map +1 -1
- package/dist/internal/planning/ship-import-funding.js +7 -7
- package/dist/internal/planning/ship-import-funding.js.map +1 -1
- package/dist/internal/planning/starbase-player-owner.d.ts +2 -1
- package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -1
- package/dist/internal/planning/starbase-player-owner.js +3 -4
- package/dist/internal/planning/starbase-player-owner.js.map +1 -1
- package/dist/internal/planning/starbase-player-recovery-guard.d.ts +2 -1
- package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -1
- package/dist/internal/planning/starbase-player-recovery-guard.js +4 -5
- package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -1
- package/dist/internal/planning/starbase-system-guard.d.ts +3 -2
- package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
- package/dist/internal/planning/starbase-system-guard.js +8 -8
- package/dist/internal/planning/starbase-system-guard.js.map +1 -1
- package/dist/internal/planning/starbase-system.d.ts +2 -2
- package/dist/internal/planning/starbase-system.d.ts.map +1 -1
- package/dist/internal/planning/starbase-system.js +3 -3
- package/dist/internal/planning/starbase-system.js.map +1 -1
- package/dist/internal/planning/storage-action-readers.d.ts +2 -2
- package/dist/internal/planning/storage-action-readers.d.ts.map +1 -1
- package/dist/internal/planning/storage-action-readers.js +7 -5
- package/dist/internal/planning/storage-action-readers.js.map +1 -1
- package/dist/internal/planning/storage-actions.d.ts +4 -4
- package/dist/internal/planning/storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/storage-actions.js +7 -7
- package/dist/internal/planning/storage-actions.js.map +1 -1
- package/dist/internal/planning/trade-faction-market.d.ts +2 -1
- package/dist/internal/planning/trade-faction-market.d.ts.map +1 -1
- package/dist/internal/planning/trade-faction-market.js +6 -6
- package/dist/internal/planning/trade-faction-market.js.map +1 -1
- package/dist/internal/planning/wallet-starbase.d.ts +2 -2
- package/dist/internal/planning/wallet-starbase.d.ts.map +1 -1
- package/dist/internal/planning/wallet-starbase.js +7 -8
- package/dist/internal/planning/wallet-starbase.js.map +1 -1
- package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
- package/dist/internal/planning/xp-runtime.js +13 -13
- package/dist/internal/planning/xp-runtime.js.map +1 -1
- package/dist/loyalty/actions/index.d.ts.map +1 -1
- package/dist/loyalty/actions/index.js +7 -7
- package/dist/loyalty/actions/index.js.map +1 -1
- package/dist/loyalty/index.d.ts.map +1 -1
- package/dist/loyalty/index.js +9 -9
- package/dist/loyalty/index.js.map +1 -1
- package/dist/markets/actions/index.d.ts +4 -2
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +28 -20
- package/dist/markets/actions/index.js.map +1 -1
- package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
- package/dist/markets/actions/trade-faction-market.js +22 -23
- package/dist/markets/actions/trade-faction-market.js.map +1 -1
- package/dist/markets/index.d.ts +12 -5
- package/dist/markets/index.d.ts.map +1 -1
- package/dist/markets/index.js +17 -10
- package/dist/markets/index.js.map +1 -1
- package/dist/mining/actions/index.d.ts.map +1 -1
- package/dist/mining/actions/index.js +25 -24
- package/dist/mining/actions/index.js.map +1 -1
- package/dist/mining/index.d.ts.map +1 -1
- package/dist/mining/index.js +2 -2
- package/dist/mining/index.js.map +1 -1
- package/dist/planning/assembly.d.ts +2 -2
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +6 -3
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +34 -35
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +15 -3
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +32 -11
- package/dist/planning/index.js.map +1 -1
- package/dist/planning/plan-construction.d.ts +5 -2
- package/dist/planning/plan-construction.d.ts.map +1 -1
- package/dist/planning/plan-construction.js +16 -4
- package/dist/planning/plan-construction.js.map +1 -1
- package/dist/planning/plan-validation.d.ts +4 -3
- package/dist/planning/plan-validation.d.ts.map +1 -1
- package/dist/planning/plan-validation.js +56 -56
- package/dist/planning/plan-validation.js.map +1 -1
- package/dist/planning/simulation.js +1 -1
- package/dist/planning/simulation.js.map +1 -1
- package/dist/registry/cargo.d.ts.map +1 -1
- package/dist/registry/cargo.js +2 -2
- package/dist/registry/cargo.js.map +1 -1
- package/dist/registry/claim-stakes.d.ts.map +1 -1
- package/dist/registry/claim-stakes.js +1 -1
- package/dist/registry/claim-stakes.js.map +1 -1
- package/dist/registry/docking.d.ts +2 -2
- package/dist/registry/docking.d.ts.map +1 -1
- package/dist/registry/docking.js +2 -2
- package/dist/registry/docking.js.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/onboarding.d.ts +2 -2
- package/dist/registry/onboarding.d.ts.map +1 -1
- package/dist/registry/onboarding.js +4 -4
- package/dist/registry/onboarding.js.map +1 -1
- package/dist/registry/scanning.js +1 -1
- package/dist/registry/scanning.js.map +1 -1
- package/dist/registry/ships.d.ts +3 -3
- package/dist/registry/ships.d.ts.map +1 -1
- package/dist/registry/ships.js +10 -7
- package/dist/registry/ships.js.map +1 -1
- package/dist/registry/xp-runtime.js +1 -1
- package/dist/registry/xp-runtime.js.map +1 -1
- package/dist/rewards/index.d.ts.map +1 -1
- package/dist/rewards/index.js +3 -3
- package/dist/rewards/index.js.map +1 -1
- package/dist/scanning/actions/index.d.ts.map +1 -1
- package/dist/scanning/actions/index.js +7 -7
- package/dist/scanning/actions/index.js.map +1 -1
- package/dist/scanning/index.d.ts.map +1 -1
- package/dist/scanning/index.js +4 -4
- package/dist/scanning/index.js.map +1 -1
- package/dist/scanning/signals.d.ts.map +1 -1
- package/dist/scanning/signals.js +1 -1
- package/dist/scanning/signals.js.map +1 -1
- package/dist/starbases/actions/index.d.ts.map +1 -1
- package/dist/starbases/actions/index.js +25 -26
- package/dist/starbases/actions/index.js.map +1 -1
- package/dist/starbases/index.d.ts.map +1 -1
- package/dist/starbases/index.js +1 -1
- package/dist/starbases/index.js.map +1 -1
- package/dist/world/index.d.ts +7 -4
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +11 -9
- package/dist/world/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/internal/c4/mining-instructions.d.ts +0 -2
- package/dist/internal/c4/mining-instructions.d.ts.map +0 -1
- package/dist/internal/c4/mining-instructions.js +0 -3
- package/dist/internal/c4/mining-instructions.js.map +0 -1
|
@@ -48,7 +48,7 @@ export async function planFleetDisband(ctx, fleet, input) {
|
|
|
48
48
|
const [fleetRaw] = await readContextRawAccounts(ctx, [fleet]);
|
|
49
49
|
if (!fleetRaw || fleetRaw.executable)
|
|
50
50
|
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The selected Fleet is missing or executable. Refresh a valid owned Fleet and replan the disband.', { address: fleet });
|
|
51
|
-
const docked = fleetAccountDefinition.decode(fleetRaw).state;
|
|
51
|
+
const docked = fleetAccountDefinition.decode(fleetRaw, ctx.programs).state;
|
|
52
52
|
if (docked.kind !== 'docked')
|
|
53
53
|
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Only a Docked Fleet can disband. Dock it at a Starbase where the Character has a current StarbasePlayer and replan.', { address: fleet });
|
|
54
54
|
const intent = {
|
|
@@ -59,7 +59,7 @@ export async function planFleetDisband(ctx, fleet, input) {
|
|
|
59
59
|
fleet,
|
|
60
60
|
system: docked.system,
|
|
61
61
|
};
|
|
62
|
-
const resolved = await resolveFleetDisband(intent);
|
|
62
|
+
const resolved = await resolveFleetDisband(ctx.programs, intent);
|
|
63
63
|
const addresses = [
|
|
64
64
|
resolved.profile,
|
|
65
65
|
resolved.character,
|
|
@@ -72,13 +72,13 @@ export async function planFleetDisband(ctx, fleet, input) {
|
|
|
72
72
|
const raw = await readContextRawAccounts(ctx, addresses);
|
|
73
73
|
const accounts = new Map(addresses.map((address, index) => [address, raw[index]]));
|
|
74
74
|
accounts.set(fleet, fleetRaw);
|
|
75
|
-
const { fleet: data } = await validateFleetDisband(intent, resolved, accounts);
|
|
76
|
-
const instruction = disbandFleetInstruction({
|
|
75
|
+
const { fleet: data } = await validateFleetDisband(ctx.programs, intent, resolved, accounts);
|
|
76
|
+
const instruction = disbandFleetInstruction(ctx.programs, {
|
|
77
77
|
...intent,
|
|
78
78
|
character: resolved.character,
|
|
79
79
|
starbasePlayer: resolved.starbasePlayer,
|
|
80
80
|
});
|
|
81
|
-
const storage = planStorageFunding({
|
|
81
|
+
const storage = planStorageFunding(ctx.programs, {
|
|
82
82
|
action: readDisbandStorageAction(instruction, accounts),
|
|
83
83
|
accounts,
|
|
84
84
|
label: 'Fleet disband',
|
|
@@ -87,7 +87,7 @@ export async function planFleetDisband(ctx, fleet, input) {
|
|
|
87
87
|
.map(({ shipId, quantity }) => `${String(quantity)} of configuration ${String(shipId)}`)
|
|
88
88
|
.join(', ');
|
|
89
89
|
const summary = `Disband Fleet ${data.name} (${fleet}) at StarbasePlayer ${resolved.starbasePlayer}: ${ships || 'no ships'} return to its hangar, ${String(data.crewCount)} crew return to it, and the Fleet's fuel, ammo, cargo hold and components merge into its cargo. The Character's Fleet slot is freed, and the Fleet closes, refunding its ${String(fleetRaw.lamports)}-lamport balance to Profile ${intent.profile}. ${storage.disclosure} The program also needs full AP and SP when the instruction runs. Transaction fees are separate. Simulate before signing; the chain stays authoritative.`;
|
|
90
|
-
return buildPlannerPlan({
|
|
90
|
+
return buildPlannerPlan(ctx.programs, {
|
|
91
91
|
kind: 'fleets.disband',
|
|
92
92
|
summary,
|
|
93
93
|
preconditions: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disband.js","sourceRoot":"","sources":["../../../src/fleets/actions/disband.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAavE,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE;QACzE,MAAM,IAAI,uBAAuB,CAC/B,SAAS,EACT,KAAK,EACL,gEAAgE,EAChE,4FAA4F,CAC7F,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAgB,EAChB,KAAc,EACd,KAA8B;IAE9B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU;QAClC,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,kGAAkG,EAClG,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;IACJ,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"disband.js","sourceRoot":"","sources":["../../../src/fleets/actions/disband.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { type DockBoundsUnavailableReason } from '../../internal/planning/fleet-
|
|
|
11
11
|
*/
|
|
12
12
|
export type FleetDockDebitBounds = {
|
|
13
13
|
readonly status: 'unavailable';
|
|
14
|
-
readonly reason: DockBoundsUnavailableReason | 'not-fleet-dock' | 'multiple-fleet-docks' | 'combined-plan';
|
|
14
|
+
readonly reason: DockBoundsUnavailableReason | 'not-fleet-dock' | 'multiple-fleet-docks' | 'combined-plan' | 'unqualified-deployment';
|
|
15
15
|
toJSON(): unknown;
|
|
16
16
|
} | {
|
|
17
17
|
readonly status: 'available';
|
|
@@ -25,7 +25,8 @@ export type FleetDockDebitBounds = {
|
|
|
25
25
|
toJSON(): unknown;
|
|
26
26
|
};
|
|
27
27
|
/** Inspects the persisted docking ceiling without network I/O. Inspect individual
|
|
28
|
-
* Plans before combining distinct Fleets.
|
|
28
|
+
* Plans before combining distinct Fleets. The ceiling is qualified for the
|
|
29
|
+
* z.ink PTR deployment only; any other deployment is `unqualified-deployment`. Fresh pre-sign checks are not an atomic
|
|
29
30
|
* on-chain spending cap; state can change before landing.
|
|
30
31
|
* @example
|
|
31
32
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dock-bounds.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"dock-bounds.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qDAAqD,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EACX,2BAA2B,GAC3B,gBAAgB,GAChB,sBAAsB,GACtB,eAAe,GACf,wBAAwB,CAAC;IAC7B,MAAM,IAAI,OAAO,CAAC;CACnB,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,MAAM,IAAI,OAAO,CAAC;CACnB,CAAC;AAEN;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CAoDxE"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { attachJsonSerialization } from '../../internal/json.js';
|
|
2
2
|
import { InvalidActionInputError } from '../../client/errors.js';
|
|
3
3
|
import { isPlanInstance } from '../../planning/plan-instances.js';
|
|
4
|
+
import { isDebitQualifiedDeployment } from '../../internal/planning/qualified-deployment.js';
|
|
4
5
|
import { MAXIMUM_DOCK_GROWTH_BYTES, } from '../../internal/planning/fleet-dock-funding-guard.js';
|
|
5
6
|
/** Inspects the persisted docking ceiling without network I/O. Inspect individual
|
|
6
|
-
* Plans before combining distinct Fleets.
|
|
7
|
+
* Plans before combining distinct Fleets. The ceiling is qualified for the
|
|
8
|
+
* z.ink PTR deployment only; any other deployment is `unqualified-deployment`. Fresh pre-sign checks are not an atomic
|
|
7
9
|
* on-chain spending cap; state can change before landing.
|
|
8
10
|
* @example
|
|
9
11
|
* ```ts
|
|
@@ -26,6 +28,11 @@ export function getFleetDockDebitBounds(plan) {
|
|
|
26
28
|
status: 'unavailable',
|
|
27
29
|
reason: 'combined-plan',
|
|
28
30
|
}));
|
|
31
|
+
if (!isDebitQualifiedDeployment(plan.programs))
|
|
32
|
+
return Object.freeze(attachJsonSerialization({
|
|
33
|
+
status: 'unavailable',
|
|
34
|
+
reason: 'unqualified-deployment',
|
|
35
|
+
}));
|
|
29
36
|
const guard = guards[0];
|
|
30
37
|
if (guard.status === 'unavailable')
|
|
31
38
|
return Object.freeze(attachJsonSerialization({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dock-bounds.js","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACL,yBAAyB,GAE1B,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"dock-bounds.js","sourceRoot":"","sources":["../../../src/fleets/actions/dock-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EACL,yBAAyB,GAE1B,MAAM,qDAAqD,CAAC;AAiC7D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAU;IAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,uBAAuB,CAC/B,MAAM,EACN,IAAI,EACJ,wCAAwC,EACxC,8EAA8E,CAC/E,CAAC;IACJ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CACvC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB;SAC/D,CAAC,CACZ,CAAC;IACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,eAAe;SACf,CAAC,CACZ,CAAC;IACJ,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,wBAAwB;SACxB,CAAC,CACZ,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,KAAK,CAAC,MAAM;SACZ,CAAC,CACZ,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAClB,uBAAuB,CAAC;QACtB,MAAM,EAAE,WAAW;QACnB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,UAAU;QACvB,uBAAuB,EAAE,yBAAyB;QAClD,eAAe,EAAE,UAAU;KACnB,CAAC,CACZ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAa,KAAK,OAAO,EAAoB,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,8 +112,8 @@ function requireNormalizedCrew(data, fleet, action, requireShips = false) {
|
|
|
112
112
|
if (requireShips && data.fleetShips.length === 0)
|
|
113
113
|
fail(`Fleet ${fleet.name} has no ships and cannot ${action}. Add ships while docked, refresh the Fleet, and retry.`, fleet.address);
|
|
114
114
|
}
|
|
115
|
-
function validateFleetRead(account, fleet, game, system, systemSequenceId) {
|
|
116
|
-
const data = fleetAccountDefinition.decode(account);
|
|
115
|
+
function validateFleetRead(programs, account, fleet, game, system, systemSequenceId) {
|
|
116
|
+
const data = fleetAccountDefinition.decode(account, programs);
|
|
117
117
|
if (account.address !== fleet.address ||
|
|
118
118
|
data.game !== game ||
|
|
119
119
|
data.ownerProfile !== fleet.ownerProfile.address ||
|
|
@@ -127,17 +127,18 @@ function validateFleetRead(account, fleet, game, system, systemSequenceId) {
|
|
|
127
127
|
}
|
|
128
128
|
/** Requires a Star System of the configured Game at its canonical PDA and,
|
|
129
129
|
* for a docked Fleet, at the docked sequence. */
|
|
130
|
-
async function validateFleetSystemRead(account, fleet, game, action, label = 'Star System', sequenceId) {
|
|
131
|
-
const data = starSystemAccountDefinition.decode(account);
|
|
130
|
+
async function validateFleetSystemRead(programs, account, fleet, game, action, label = 'Star System', sequenceId) {
|
|
131
|
+
const data = starSystemAccountDefinition.decode(account, programs);
|
|
132
132
|
if (data.game !== game ||
|
|
133
|
-
(await deriveStarSystemAddress(game, data.systemId)) !==
|
|
133
|
+
(await deriveStarSystemAddress(programs, game, data.systemId)) !==
|
|
134
|
+
account.address ||
|
|
134
135
|
(sequenceId !== undefined && data.sequenceId !== sequenceId)) {
|
|
135
136
|
fail(`Fleet ${fleet.name} cannot ${action} because ${label} ${account.address} does not match the configured Game${sequenceId === undefined ? ' or its canonical PDA' : ', its canonical PDA or the docked sequence'}. Refresh the Fleet and galaxy, then retry.`, account.address);
|
|
136
137
|
}
|
|
137
138
|
return data;
|
|
138
139
|
}
|
|
139
|
-
function validateStarbasePlayerRead(account, fleet, profile, character, system, canonicalAddress, action = 'undock') {
|
|
140
|
-
const data = starbasePlayerAccountDefinition.decode(account);
|
|
140
|
+
function validateStarbasePlayerRead(programs, account, fleet, profile, character, system, canonicalAddress, action = 'undock') {
|
|
141
|
+
const data = starbasePlayerAccountDefinition.decode(account, programs);
|
|
141
142
|
if (account.address !== canonicalAddress ||
|
|
142
143
|
data.playerProfile !== profile ||
|
|
143
144
|
data.character !== character ||
|
|
@@ -215,9 +216,9 @@ function resolveCoordinateDestination(fleet, actionLocation, options) {
|
|
|
215
216
|
}
|
|
216
217
|
/** Requires the authorization Profile's canonical Character in the
|
|
217
218
|
* configured Game. */
|
|
218
|
-
function requireFleetCharacter(account, fleet, profile, game, address, action) {
|
|
219
|
+
function requireFleetCharacter(programs, account, fleet, profile, game, address, action) {
|
|
219
220
|
const character = requireRawAccount(account, `Fleet ${fleet.name} cannot ${action} because its Profile has no canonical Character at ${address}. Create the Character for Profile ${profile} in the configured Game, refresh the Fleet, and retry.`, address);
|
|
220
|
-
const data = characterAccountDefinition.decode(character);
|
|
221
|
+
const data = characterAccountDefinition.decode(character, programs);
|
|
221
222
|
if (character.address !== address ||
|
|
222
223
|
data.playerProfile !== profile ||
|
|
223
224
|
data.game !== game) {
|
|
@@ -225,9 +226,9 @@ function requireFleetCharacter(account, fleet, profile, game, address, action) {
|
|
|
225
226
|
}
|
|
226
227
|
return character;
|
|
227
228
|
}
|
|
228
|
-
async function validateIdleFleetRead(account, fleet, game, actionLocation, planName = 'coordinate movement') {
|
|
229
|
-
const data = fleetAccountDefinition.decode(account);
|
|
230
|
-
const canonicalAddress = await deriveFleetAddress(data);
|
|
229
|
+
async function validateIdleFleetRead(programs, account, fleet, game, actionLocation, planName = 'coordinate movement') {
|
|
230
|
+
const data = fleetAccountDefinition.decode(account, programs);
|
|
231
|
+
const canonicalAddress = await deriveFleetAddress(programs, data);
|
|
231
232
|
const stateLocation = data.state.kind === 'idle'
|
|
232
233
|
? data.location
|
|
233
234
|
: data.state.kind === 'warp' || data.state.kind === 'subwarp'
|
|
@@ -261,15 +262,15 @@ async function validateIdleFleetRead(account, fleet, game, actionLocation, planN
|
|
|
261
262
|
npc: data.npcFactionId !== 0,
|
|
262
263
|
};
|
|
263
264
|
}
|
|
264
|
-
function validateRegionTrackerRead(account, fleet, game, canonicalAddress, action = 'move') {
|
|
265
|
-
const data = regionTrackerAccountDefinition.decode(account);
|
|
265
|
+
function validateRegionTrackerRead(programs, account, fleet, game, canonicalAddress, action = 'move') {
|
|
266
|
+
const data = regionTrackerAccountDefinition.decode(account, programs);
|
|
266
267
|
if (account.address !== canonicalAddress || data.game !== game) {
|
|
267
268
|
fail(`Fleet ${fleet.name} cannot ${action} because RegionTracker does not match the configured Game or canonical PDA: ${account.address}; refresh the world region data for the configured Game and retry.`, account.address);
|
|
268
269
|
}
|
|
269
270
|
return getRegionTrackerDecoder().decode(account.data);
|
|
270
271
|
}
|
|
271
|
-
function validateCrewBindingRead(account, fleet, canonicalAddress) {
|
|
272
|
-
const data = fleetCrewBindingAccountDefinition.decode(account);
|
|
272
|
+
function validateCrewBindingRead(programs, account, fleet, canonicalAddress) {
|
|
273
|
+
const data = fleetCrewBindingAccountDefinition.decode(account, programs);
|
|
273
274
|
if (account.address !== canonicalAddress ||
|
|
274
275
|
!matchesFleetCrewBindingIdentity(data, fleet.address, fleet.ownerProfile.address)) {
|
|
275
276
|
fail(`FleetCrewBinding does not match Fleet ${fleet.address}, its owner Profile, or its canonical PDA: ${account.address}. Refresh the Fleet crew registration or remove the invalid binding before retrying.`, account.address);
|
|
@@ -290,9 +291,9 @@ function exactCoordinate(coordinate) {
|
|
|
290
291
|
async function resolveCoordinateMovement(mode, ctx, fleet, authorization, actionLocation, destination) {
|
|
291
292
|
const game = requireGameAddress(ctx);
|
|
292
293
|
const [character, regionTracker, crewBinding] = await Promise.all([
|
|
293
|
-
findCharacterPda(authorization.profile, game),
|
|
294
|
-
deriveRegionTrackerAddress(game),
|
|
295
|
-
deriveFleetCrewBindingAddress(fleet.address),
|
|
294
|
+
findCharacterPda(ctx.programs, authorization.profile, game),
|
|
295
|
+
deriveRegionTrackerAddress(ctx.programs, game),
|
|
296
|
+
deriveFleetCrewBindingAddress(ctx.programs, fleet.address),
|
|
296
297
|
]);
|
|
297
298
|
const [fleetCandidate, characterCandidate, regionCandidate, crewCandidate] = await readContextRawAccounts(ctx, [
|
|
298
299
|
fleet.address,
|
|
@@ -301,9 +302,9 @@ async function resolveCoordinateMovement(mode, ctx, fleet, authorization, action
|
|
|
301
302
|
crewBinding,
|
|
302
303
|
]);
|
|
303
304
|
const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning coordinate movement.`, fleet.address);
|
|
304
|
-
const characterAccount = requireFleetCharacter(characterCandidate, fleet, authorization.profile, game, character, 'move');
|
|
305
|
+
const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, authorization.profile, game, character, 'move');
|
|
305
306
|
const regionTrackerAccount = requireRawAccount(regionCandidate, `Fleet ${fleet.name} cannot move because the canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh the world region data, and retry.`, regionTracker);
|
|
306
|
-
const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation);
|
|
307
|
+
const validatedFleet = await validateIdleFleetRead(ctx.programs, fleetAccount, fleet, game, actionLocation);
|
|
307
308
|
requireNormalizedCrew(validatedFleet.data, fleet, mode);
|
|
308
309
|
if (destination.exact.x === validatedFleet.location.x &&
|
|
309
310
|
destination.exact.y === validatedFleet.location.y) {
|
|
@@ -313,17 +314,17 @@ async function resolveCoordinateMovement(mode, ctx, fleet, authorization, action
|
|
|
313
314
|
isSubPrecisionRoute(validatedFleet.location, destination.exact)) {
|
|
314
315
|
fail(`Fleet ${fleet.name} ${destination.field} ${destination.description} is closer to its action coordinate than the program can measure, so this subwarp would be refused. Choose a destination farther away and retry.`, fleet.address);
|
|
315
316
|
}
|
|
316
|
-
const tracker = validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker);
|
|
317
|
+
const tracker = validateRegionTrackerRead(ctx.programs, regionTrackerAccount, fleet, game, regionTracker);
|
|
317
318
|
if (crewCandidate !== undefined) {
|
|
318
|
-
validateCrewBindingRead(crewCandidate, fleet, crewBinding);
|
|
319
|
+
validateCrewBindingRead(ctx.programs, crewCandidate, fleet, crewBinding);
|
|
319
320
|
}
|
|
320
321
|
const destinationRegionId = resolveRegionId(tracker, destination.exact);
|
|
321
322
|
// A player Fleet may cross deep space, but stopping there needs High Risk
|
|
322
323
|
// zone access.
|
|
323
324
|
if (destinationRegionId === null &&
|
|
324
325
|
!validatedFleet.npc &&
|
|
325
|
-
characterAccountDefinition.decode(characterAccount).modifiers
|
|
326
|
-
.securityZoneAccess !== 'high') {
|
|
326
|
+
characterAccountDefinition.decode(characterAccount, ctx.programs).modifiers
|
|
327
|
+
.values.securityZoneAccess !== 'high') {
|
|
327
328
|
fail(`Fleet ${fleet.name} ${destination.field} ${destination.field === 'destinationRaw' ? `(${String(destination.exact.x)}, ${String(destination.exact.y)}) raw I8F56` : destination.description} is in deep space, outside every Region, and its Character lacks the High Risk zone access needed to stop there. Research High Risk zone access or choose a destination inside a Region, then retry.`, character);
|
|
328
329
|
}
|
|
329
330
|
return {
|
|
@@ -352,8 +353,8 @@ async function planMovementStorage(ctx, instruction, fleetAccount, profile) {
|
|
|
352
353
|
[profile, profileAccount],
|
|
353
354
|
[RENT_ADDRESS, rentAccount],
|
|
354
355
|
]);
|
|
355
|
-
return planStorageFunding({
|
|
356
|
-
action: readMovementStorageAction(instruction, accounts),
|
|
356
|
+
return planStorageFunding(ctx.programs, {
|
|
357
|
+
action: readMovementStorageAction(ctx.programs, instruction, accounts),
|
|
357
358
|
accounts,
|
|
358
359
|
label: 'movement start',
|
|
359
360
|
});
|
|
@@ -384,11 +385,11 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
384
385
|
startRegionId: resolved.startRegionId,
|
|
385
386
|
};
|
|
386
387
|
const instruction = mode === 'subwarp'
|
|
387
|
-
? adaptStartSubwarpInstruction({
|
|
388
|
+
? adaptStartSubwarpInstruction(ctx.programs, {
|
|
388
389
|
...common,
|
|
389
390
|
toCoordinate: [destination.exact.x, destination.exact.y],
|
|
390
391
|
})
|
|
391
|
-
: adaptWarpToCoordinateInstruction({
|
|
392
|
+
: adaptWarpToCoordinateInstruction(ctx.programs, {
|
|
392
393
|
...common,
|
|
393
394
|
destination: [destination.exact.x, destination.exact.y],
|
|
394
395
|
});
|
|
@@ -406,7 +407,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
406
407
|
await accountStatePrecondition(resolved.fleetAccount, fleet.state.kind === 'idle'
|
|
407
408
|
? `Fleet ${fleet.name} remains idle at coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
|
|
408
409
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} with action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
409
|
-
await characterAccessPrecondition(resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
|
|
410
|
+
await characterAccessPrecondition(ctx.programs, resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
|
|
410
411
|
{
|
|
411
412
|
kind: 'region-path',
|
|
412
413
|
address: resolved.regionTracker,
|
|
@@ -416,7 +417,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
416
417
|
fromY: resolved.from.y,
|
|
417
418
|
toX: destination.exact.x,
|
|
418
419
|
toY: destination.exact.y,
|
|
419
|
-
pathHash: await hashRegionPath(resolved.regionTrackerAccount, game, resolved.from, destination.exact),
|
|
420
|
+
pathHash: await hashRegionPath(ctx.programs, resolved.regionTrackerAccount, game, resolved.from, destination.exact),
|
|
420
421
|
describes: `The Regions Fleet ${fleet.name}'s straight path to ${destination.description} can cross keep their borders, owner, safety status and risk zone, and no Region is added or removed; other Regions may change.`,
|
|
421
422
|
},
|
|
422
423
|
...(resolved.crewBindingAccount === undefined
|
|
@@ -426,7 +427,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
426
427
|
]),
|
|
427
428
|
storage.guard,
|
|
428
429
|
];
|
|
429
|
-
return buildPlannerPlan({
|
|
430
|
+
return buildPlannerPlan(ctx.programs, {
|
|
430
431
|
kind: mode === 'subwarp' ? 'fleet.subwarp' : 'fleet.warp-to-coordinate',
|
|
431
432
|
preconditions: accounts,
|
|
432
433
|
steps: [
|
|
@@ -440,8 +441,8 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
440
441
|
summary: description,
|
|
441
442
|
});
|
|
442
443
|
}
|
|
443
|
-
function hasExactSystemLocation(account, location) {
|
|
444
|
-
starSystemAccountDefinition.decode(account);
|
|
444
|
+
function hasExactSystemLocation(programs, account, location) {
|
|
445
|
+
starSystemAccountDefinition.decode(account, programs);
|
|
445
446
|
const exact = getStarSystemDecoder().decode(account.data);
|
|
446
447
|
return (exact.coordinates[0].raw === location.x &&
|
|
447
448
|
exact.coordinates[1].raw === location.y);
|
|
@@ -458,19 +459,19 @@ async function discoverSystemsAt(ctx, game, location) {
|
|
|
458
459
|
.map(({ address }) => address);
|
|
459
460
|
}
|
|
460
461
|
/** Selects the one fresh candidate whose exact coordinate is the Fleet's. */
|
|
461
|
-
function selectSystemAt(fleet, location, exact, candidates, accounts) {
|
|
462
|
-
const matches = accounts.filter((account) => account !== undefined && hasExactSystemLocation(account, exact));
|
|
462
|
+
function selectSystemAt(programs, fleet, location, exact, candidates, accounts) {
|
|
463
|
+
const matches = accounts.filter((account) => account !== undefined && hasExactSystemLocation(programs, account, exact));
|
|
463
464
|
if (matches.length === 1)
|
|
464
465
|
return matches[0];
|
|
465
466
|
const coordinate = `Fleet ${fleet.name} action coordinate (${String(location.x)}, ${String(location.y)})`;
|
|
466
467
|
if (candidates.length === 1) {
|
|
467
468
|
const [only] = accounts;
|
|
468
|
-
fail(`${coordinate} no longer matches Star System ${only === undefined ? candidates[0] : starSystemAccountDefinition.decode(only).name}. Refresh the Fleet and galaxy, then retry.`, candidates[0]);
|
|
469
|
+
fail(`${coordinate} no longer matches Star System ${only === undefined ? candidates[0] : starSystemAccountDefinition.decode(only, programs).name}. Refresh the Fleet and galaxy, then retry.`, candidates[0]);
|
|
469
470
|
}
|
|
470
471
|
return fail(`${coordinate} matches multiple Star Systems in the configured Game. Refresh the galaxy and repair the contradictory System data before retrying.`, fleet.address);
|
|
471
472
|
}
|
|
472
|
-
function validateFactionRelationTrackerRead(account, fleet, game, canonicalAddress) {
|
|
473
|
-
const data = factionRelationTrackerAccountDefinition.decode(account);
|
|
473
|
+
function validateFactionRelationTrackerRead(programs, account, fleet, game, canonicalAddress) {
|
|
474
|
+
const data = factionRelationTrackerAccountDefinition.decode(account, programs);
|
|
474
475
|
if (account.address !== canonicalAddress || data.game !== game) {
|
|
475
476
|
fail(`Fleet ${fleet.name} cannot use a warp lane because FactionRelationTracker ${account.address} does not match the configured Game or canonical PDA. Refresh the faction relation data and retry.`, account.address);
|
|
476
477
|
}
|
|
@@ -482,10 +483,10 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
|
|
|
482
483
|
fail(`Fleet ${fleet.name} action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}) does not match a Star System in the configured Game. Refresh the galaxy or move the Fleet to a Star System before retrying.`, fleet.address);
|
|
483
484
|
}
|
|
484
485
|
const [character, currencyCache, factionRelationTracker, regionTracker] = await Promise.all([
|
|
485
|
-
findCharacterPda(options.authorization.profile, game),
|
|
486
|
-
deriveCurrencyCache(game).then(([address]) => address),
|
|
487
|
-
deriveFactionRelationTrackerAddress(game),
|
|
488
|
-
deriveRegionTrackerAddress(game),
|
|
486
|
+
findCharacterPda(ctx.programs, options.authorization.profile, game),
|
|
487
|
+
deriveCurrencyCache(ctx.programs, game).then(([address]) => address),
|
|
488
|
+
deriveFactionRelationTrackerAddress(ctx.programs, game),
|
|
489
|
+
deriveRegionTrackerAddress(ctx.programs, game),
|
|
489
490
|
]);
|
|
490
491
|
const sourceOffset = 2;
|
|
491
492
|
const destinationOffset = sourceOffset + sourceCandidates.length;
|
|
@@ -505,20 +506,20 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
|
|
|
505
506
|
const factionCandidate = reads[destinationOffset + 2];
|
|
506
507
|
const regionCandidate = reads[destinationOffset + 3];
|
|
507
508
|
const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the warp lane.`, fleet.address);
|
|
508
|
-
const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation, 'warp lane');
|
|
509
|
+
const validatedFleet = await validateIdleFleetRead(ctx.programs, fleetAccount, fleet, game, actionLocation, 'warp lane');
|
|
509
510
|
requireNormalizedCrew(validatedFleet.data, fleet, 'use a warp lane');
|
|
510
|
-
const sourceAccount = selectSystemAt(fleet, actionLocation, validatedFleet.location, sourceCandidates, reads.slice(sourceOffset, destinationOffset));
|
|
511
|
+
const sourceAccount = selectSystemAt(ctx.programs, fleet, actionLocation, validatedFleet.location, sourceCandidates, reads.slice(sourceOffset, destinationOffset));
|
|
511
512
|
const sourceSystem = sourceAccount.address;
|
|
512
|
-
const characterAccount = requireFleetCharacter(characterCandidate, fleet, options.authorization.profile, game, character, 'use a warp lane');
|
|
513
|
+
const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, options.authorization.profile, game, character, 'use a warp lane');
|
|
513
514
|
const destinationAccount = requireRawAccount(destinationCandidate, `Fleet ${fleet.name} cannot use a warp lane because destination Star System ${options.destinationSystem} is missing. Choose a Star System in the configured Game, refresh the galaxy, and retry.`, options.destinationSystem);
|
|
514
515
|
const currencyCacheAccount = requireRawAccount(currencyCandidate, `Fleet ${fleet.name} cannot use a warp lane because canonical CurrencyCache ${currencyCache} is missing. Verify the configured Game and cluster, refresh the Game currency configuration, and retry.`, currencyCache);
|
|
515
516
|
const factionRelationTrackerAccount = requireRawAccount(factionCandidate, `Fleet ${fleet.name} cannot use a warp lane because canonical FactionRelationTracker ${factionRelationTracker} is missing. Verify the configured Game and cluster, refresh the faction relation data, and retry.`, factionRelationTracker);
|
|
516
517
|
const regionTrackerAccount = requireRawAccount(regionCandidate, `Fleet ${fleet.name} cannot use a warp lane because canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh the world region data, and retry.`, regionTracker);
|
|
517
|
-
const source = await validateFleetSystemRead(sourceAccount, fleet, game, 'use a warp lane', 'source Star System');
|
|
518
|
-
const destination = await validateFleetSystemRead(destinationAccount, fleet, game, 'use a warp lane', 'destination Star System');
|
|
519
|
-
await validateCurrencyCache(currencyCacheAccount, game, 'warp lane');
|
|
520
|
-
validateFactionRelationTrackerRead(factionRelationTrackerAccount, fleet, game, factionRelationTracker);
|
|
521
|
-
validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker);
|
|
518
|
+
const source = await validateFleetSystemRead(ctx.programs, sourceAccount, fleet, game, 'use a warp lane', 'source Star System');
|
|
519
|
+
const destination = await validateFleetSystemRead(ctx.programs, destinationAccount, fleet, game, 'use a warp lane', 'destination Star System');
|
|
520
|
+
await validateCurrencyCache(ctx.programs, currencyCacheAccount, game, 'warp lane');
|
|
521
|
+
validateFactionRelationTrackerRead(ctx.programs, factionRelationTrackerAccount, fleet, game, factionRelationTracker);
|
|
522
|
+
validateRegionTrackerRead(ctx.programs, regionTrackerAccount, fleet, game, regionTracker);
|
|
522
523
|
if (sourceSystem === options.destinationSystem) {
|
|
523
524
|
fail(`Fleet ${fleet.name} destination Star System ${source.name} is its current Star System. Choose a different connected Star System and retry.`, options.destinationSystem);
|
|
524
525
|
}
|
|
@@ -581,7 +582,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
581
582
|
character: resolved.character,
|
|
582
583
|
profile: options.authorization.profile,
|
|
583
584
|
});
|
|
584
|
-
const instruction = adaptWarpLaneInstruction({
|
|
585
|
+
const instruction = adaptWarpLaneInstruction(ctx.programs, {
|
|
585
586
|
...xp.accounts,
|
|
586
587
|
authorization: options.authorization,
|
|
587
588
|
character: resolved.character,
|
|
@@ -595,7 +596,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
595
596
|
});
|
|
596
597
|
const storage = await planMovementStorage(ctx, instruction, resolved.fleetAccount, options.authorization.profile);
|
|
597
598
|
const description = `Warp fleet ${fleet.name} from Star System ${resolved.source.name} to Star System ${resolved.destination.name} via warp lane. ${storage.disclosure}`;
|
|
598
|
-
return buildPlannerPlan({
|
|
599
|
+
return buildPlannerPlan(ctx.programs, {
|
|
599
600
|
kind: 'fleet.warp-lane',
|
|
600
601
|
preconditions: [
|
|
601
602
|
{
|
|
@@ -609,7 +610,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
609
610
|
accountStatePrecondition(resolved.fleetAccount, fleet.state.kind === 'idle'
|
|
610
611
|
? `Fleet ${fleet.name} remains idle at Star System ${resolved.source.name}.`
|
|
611
612
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} at action source Star System ${resolved.source.name}.`),
|
|
612
|
-
characterAccessPrecondition(resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
|
|
613
|
+
characterAccessPrecondition(ctx.programs, resolved.characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with the research modifiers that set its movement and Region access; its ATLAS, XP and asset counts may change.`),
|
|
613
614
|
accountStatePrecondition(resolved.sourceAccount, `Source Star System ${resolved.source.name} remains at Fleet ${fleet.name}'s action coordinate with a connection to system id ${String(resolved.destination.systemId)}.`),
|
|
614
615
|
accountStatePrecondition(resolved.destinationAccount, `Destination Star System ${resolved.destination.name} remains system id ${String(resolved.destination.systemId)} in the configured Game.`),
|
|
615
616
|
Promise.resolve({
|
|
@@ -619,7 +620,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
619
620
|
describes: 'The canonical CurrencyCache retains its supported Game identity and layout; shared accounting may change.',
|
|
620
621
|
}),
|
|
621
622
|
accountStatePrecondition(resolved.factionRelationTrackerAccount, 'The canonical FactionRelationTracker remains assigned to the configured Game.'),
|
|
622
|
-
hashRegionAccess(resolved.regionTrackerAccount, resolved.destinationAccount, game).then((accessHash) => ({
|
|
623
|
+
hashRegionAccess(ctx.programs, resolved.regionTrackerAccount, resolved.destinationAccount, game).then((accessHash) => ({
|
|
623
624
|
kind: 'region-access',
|
|
624
625
|
address: resolved.regionTracker,
|
|
625
626
|
game,
|
|
@@ -717,7 +718,7 @@ export async function planFleetSettleArrival(ctx, fleet, input) {
|
|
|
717
718
|
? ' Fuel is below the recorded journey budget (at planning); may stop short with no Fuel.'
|
|
718
719
|
: '';
|
|
719
720
|
const description = `Settle subwarp: fuel and Career XP; possible rent refund to Profile ${intent.profile}. Settlement does not guarantee reaching the destination.${fuelWarning} Read confirmed state/location. A race could stop a new journey.`;
|
|
720
|
-
const instruction = adaptStopSubwarpInstruction({
|
|
721
|
+
const instruction = adaptStopSubwarpInstruction(ctx.programs, {
|
|
721
722
|
authorization: intent.authorization,
|
|
722
723
|
character,
|
|
723
724
|
fleet: intent.fleet,
|
|
@@ -725,7 +726,7 @@ export async function planFleetSettleArrival(ctx, fleet, input) {
|
|
|
725
726
|
regionTracker,
|
|
726
727
|
...xp.accounts,
|
|
727
728
|
});
|
|
728
|
-
return buildPlannerPlan({
|
|
729
|
+
return buildPlannerPlan(ctx.programs, {
|
|
729
730
|
kind: 'fleet.settle-arrival',
|
|
730
731
|
preconditions: [
|
|
731
732
|
{
|
|
@@ -777,18 +778,18 @@ export async function planFleetStopSubwarp(ctx, fleet, options) {
|
|
|
777
778
|
if (fleet.state.kind !== 'subwarp' && fleet.state.kind !== 'idle')
|
|
778
779
|
failFleetState(fleet, fleet.state.kind, 'stop subwarp', 'it must be subwarping or idle');
|
|
779
780
|
const game = requireGameAddress(ctx);
|
|
780
|
-
const character = await findCharacterPda(options.authorization.profile, game);
|
|
781
|
-
const regionTracker = await deriveRegionTrackerAddress(game);
|
|
781
|
+
const character = await findCharacterPda(ctx.programs, options.authorization.profile, game);
|
|
782
|
+
const regionTracker = await deriveRegionTrackerAddress(ctx.programs, game);
|
|
782
783
|
const [regionCandidate] = await readContextRawAccounts(ctx, [regionTracker]);
|
|
783
784
|
const regionTrackerAccount = requireRawAccount(regionCandidate, `Canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh world region data, and retry stopping Fleet ${fleet.name}.`, regionTracker);
|
|
784
|
-
validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker, 'stop subwarp');
|
|
785
|
+
validateRegionTrackerRead(ctx.programs, regionTrackerAccount, fleet, game, regionTracker, 'stop subwarp');
|
|
785
786
|
const xp = await resolveXpRuntime(ctx, {
|
|
786
787
|
game,
|
|
787
788
|
character,
|
|
788
789
|
profile: options.authorization.profile,
|
|
789
790
|
});
|
|
790
791
|
const description = `Stop subwarp early for fleet ${fleet.name}; leave it idle if the trip already completed.`;
|
|
791
|
-
return buildPlannerPlan({
|
|
792
|
+
return buildPlannerPlan(ctx.programs, {
|
|
792
793
|
kind: 'fleet.stop-subwarp',
|
|
793
794
|
preconditions: [
|
|
794
795
|
{
|
|
@@ -802,7 +803,7 @@ export async function planFleetStopSubwarp(ctx, fleet, options) {
|
|
|
802
803
|
steps: [
|
|
803
804
|
{
|
|
804
805
|
describes: description,
|
|
805
|
-
instruction: adaptStopSubwarpInstruction({
|
|
806
|
+
instruction: adaptStopSubwarpInstruction(ctx.programs, {
|
|
806
807
|
...xp.accounts,
|
|
807
808
|
authorization: options.authorization,
|
|
808
809
|
character,
|
|
@@ -836,8 +837,8 @@ export async function planFleetUndock(ctx, fleet, options) {
|
|
|
836
837
|
assertFleetOwner(fleet, options.authorization);
|
|
837
838
|
const docked = requireDockedState(fleet);
|
|
838
839
|
const game = requireGameAddress(ctx);
|
|
839
|
-
const characterAddress = await findCharacterPda(options.authorization.profile, game);
|
|
840
|
-
const starbasePlayerAddress = await deriveStarbasePlayerAddress(docked.system.address, characterAddress);
|
|
840
|
+
const characterAddress = await findCharacterPda(ctx.programs, options.authorization.profile, game);
|
|
841
|
+
const starbasePlayerAddress = await deriveStarbasePlayerAddress(ctx.programs, docked.system.address, characterAddress);
|
|
841
842
|
const [fleetCandidate, characterCandidate, systemCandidate, playerCandidate] = await readContextRawAccounts(ctx, [
|
|
842
843
|
fleet.address,
|
|
843
844
|
characterAddress,
|
|
@@ -845,13 +846,13 @@ export async function planFleetUndock(ctx, fleet, options) {
|
|
|
845
846
|
starbasePlayerAddress,
|
|
846
847
|
]);
|
|
847
848
|
const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the undock action.`, fleet.address);
|
|
848
|
-
const characterAccount = requireFleetCharacter(characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'undock');
|
|
849
|
+
const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'undock');
|
|
849
850
|
const systemAccount = requireRawAccount(systemCandidate, `Fleet ${fleet.name} is docked at Star System ${docked.system.address}, but that System account is missing. Verify the configured Game and cluster, refresh the Fleet, and retry.`, docked.system.address);
|
|
850
851
|
const playerAccount = requireRawAccount(playerCandidate, `Fleet ${fleet.name} cannot undock because its Starbase Player registration is missing at ${starbasePlayerAddress}. Register the Character at this Starbase, refresh the Fleet, and retry.`, starbasePlayerAddress);
|
|
851
|
-
validateFleetRead(fleetAccount, fleet, game, docked.system.address, docked.systemSeqId);
|
|
852
|
-
const system = await validateFleetSystemRead(systemAccount, fleet, game, 'undock', 'Star System', docked.systemSeqId);
|
|
853
|
-
validateStarbasePlayerRead(playerAccount, fleet, options.authorization.profile, characterAddress, docked.system.address, starbasePlayerAddress);
|
|
854
|
-
const instruction = adaptDockedToIdleInstruction({
|
|
852
|
+
validateFleetRead(ctx.programs, fleetAccount, fleet, game, docked.system.address, docked.systemSeqId);
|
|
853
|
+
const system = await validateFleetSystemRead(ctx.programs, systemAccount, fleet, game, 'undock', 'Star System', docked.systemSeqId);
|
|
854
|
+
validateStarbasePlayerRead(ctx.programs, playerAccount, fleet, options.authorization.profile, characterAddress, docked.system.address, starbasePlayerAddress);
|
|
855
|
+
const instruction = adaptDockedToIdleInstruction(ctx.programs, {
|
|
855
856
|
authorization: options.authorization,
|
|
856
857
|
fleet: fleet.address,
|
|
857
858
|
game,
|
|
@@ -859,11 +860,11 @@ export async function planFleetUndock(ctx, fleet, options) {
|
|
|
859
860
|
systemAndStarbasePlayerSystem: docked.system.address,
|
|
860
861
|
});
|
|
861
862
|
const description = `Undock fleet ${fleet.name} from the Starbase in Star System ${system.name}.`;
|
|
862
|
-
return buildPlannerPlan({
|
|
863
|
+
return buildPlannerPlan(ctx.programs, {
|
|
863
864
|
kind: 'fleet.undock',
|
|
864
865
|
preconditions: await Promise.all([
|
|
865
866
|
accountStatePrecondition(fleetAccount, `Fleet ${fleet.name} remains docked at Star System ${system.name}.`),
|
|
866
|
-
characterAccessPrecondition(characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
|
|
867
|
+
characterAccessPrecondition(ctx.programs, characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
|
|
867
868
|
accountStatePrecondition(systemAccount, `Star System ${system.name} remains the docked System for Fleet ${fleet.name}.`),
|
|
868
869
|
accountStatePrecondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Star System ${system.name}.`),
|
|
869
870
|
]),
|
|
@@ -908,29 +909,29 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
908
909
|
const game = requireGameAddress(ctx);
|
|
909
910
|
const [fleetCandidate] = await readContextRawAccounts(ctx, [fleet.address]);
|
|
910
911
|
const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the dock action.`, fleet.address);
|
|
911
|
-
const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation, 'dock');
|
|
912
|
-
const characterAddress = await findCharacterPda(options.authorization.profile, game);
|
|
912
|
+
const validatedFleet = await validateIdleFleetRead(ctx.programs, fleetAccount, fleet, game, actionLocation, 'dock');
|
|
913
|
+
const characterAddress = await findCharacterPda(ctx.programs, options.authorization.profile, game);
|
|
913
914
|
const [characterCandidate] = await readContextRawAccounts(ctx, [
|
|
914
915
|
characterAddress,
|
|
915
916
|
]);
|
|
916
|
-
const characterAccount = requireFleetCharacter(characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'dock');
|
|
917
|
+
const characterAccount = requireFleetCharacter(ctx.programs, characterCandidate, fleet, options.authorization.profile, game, characterAddress, 'dock');
|
|
917
918
|
const candidates = await discoverSystemsAt(ctx, game, actionLocation);
|
|
918
919
|
if (candidates.length === 0)
|
|
919
920
|
failNoDockableStarbase(fleet, actionLocation);
|
|
920
|
-
const systemAccount = selectSystemAt(fleet, actionLocation, validatedFleet.location, candidates, await readContextRawAccounts(ctx, candidates));
|
|
921
|
+
const systemAccount = selectSystemAt(ctx.programs, fleet, actionLocation, validatedFleet.location, candidates, await readContextRawAccounts(ctx, candidates));
|
|
921
922
|
const systemAddress = systemAccount.address;
|
|
922
|
-
const system = await validateFleetSystemRead(systemAccount, fleet, game, 'dock');
|
|
923
|
+
const system = await validateFleetSystemRead(ctx.programs, systemAccount, fleet, game, 'dock');
|
|
923
924
|
if (system.starbase === undefined)
|
|
924
925
|
failNoDockableStarbase(fleet, actionLocation);
|
|
925
|
-
const starbasePlayerAddress = await deriveStarbasePlayerAddress(systemAddress, characterAddress);
|
|
926
|
+
const starbasePlayerAddress = await deriveStarbasePlayerAddress(ctx.programs, systemAddress, characterAddress);
|
|
926
927
|
const [playerCandidate] = await readContextRawAccounts(ctx, [
|
|
927
928
|
starbasePlayerAddress,
|
|
928
929
|
]);
|
|
929
930
|
const playerAccount = requireRawAccount(playerCandidate, `Fleet ${fleet.name} cannot dock because Character ${characterAddress} is not registered at Starbase ${system.name} in Star System ${systemAddress}. Register the Character at this Starbase before docking, refresh the Fleet, and retry.`, starbasePlayerAddress);
|
|
930
|
-
const playerData = validateStarbasePlayerRead(playerAccount, fleet, options.authorization.profile, characterAddress, systemAddress, starbasePlayerAddress, 'dock');
|
|
931
|
+
const playerData = validateStarbasePlayerRead(ctx.programs, playerAccount, fleet, options.authorization.profile, characterAddress, systemAddress, starbasePlayerAddress, 'dock');
|
|
931
932
|
const [tracker, ownership] = await Promise.all([
|
|
932
|
-
deriveFactionRelationTrackerAddress(game),
|
|
933
|
-
deriveFactionOwnershipAddress(game, 'starbase', systemAddress),
|
|
933
|
+
deriveFactionRelationTrackerAddress(ctx.programs, game),
|
|
934
|
+
deriveFactionOwnershipAddress(ctx.programs, game, 'starbase', systemAddress),
|
|
934
935
|
]);
|
|
935
936
|
const policy = {
|
|
936
937
|
kind: 'fleet-docking-policy',
|
|
@@ -945,13 +946,13 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
945
946
|
tracker,
|
|
946
947
|
ownership,
|
|
947
948
|
]);
|
|
948
|
-
await validateFleetDockingPolicy({
|
|
949
|
+
await validateFleetDockingPolicy(ctx.programs, {
|
|
949
950
|
tracker: trackerAccount,
|
|
950
951
|
ownership: ownershipAccount,
|
|
951
952
|
system: systemAccount,
|
|
952
953
|
starbasePlayer: playerAccount,
|
|
953
954
|
}, policy);
|
|
954
|
-
const instruction = adaptIdleToDockedInstruction({
|
|
955
|
+
const instruction = adaptIdleToDockedInstruction(ctx.programs, {
|
|
955
956
|
factionRelationTracker: tracker,
|
|
956
957
|
factionOwnership: ownership,
|
|
957
958
|
authorization: options.authorization,
|
|
@@ -985,7 +986,7 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
985
986
|
: `Docking storage debit bounds are unavailable (${amounts.reason}); this does not imply zero Profile debit. Inspect simulation and fund the Profile explicitly if needed; transaction fees are separate.`,
|
|
986
987
|
};
|
|
987
988
|
const description = `Dock fleet ${fleet.name} at the Starbase in Star System ${system.name}.`;
|
|
988
|
-
return buildPlannerPlan({
|
|
989
|
+
return buildPlannerPlan(ctx.programs, {
|
|
989
990
|
kind: 'fleet.dock',
|
|
990
991
|
preconditions: [
|
|
991
992
|
policy,
|
|
@@ -993,7 +994,7 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
993
994
|
accountStatePrecondition(fleetAccount, fleet.state.kind === 'idle'
|
|
994
995
|
? `Fleet ${fleet.name} remains idle at Starbase System ${system.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
|
|
995
996
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} at Starbase System ${system.name} action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
996
|
-
characterAccessPrecondition(characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
|
|
997
|
+
characterAccessPrecondition(ctx.programs, characterAccount, { game, profile: options.authorization.profile }, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game with its research modifiers; its ATLAS, XP and asset counts may change.`),
|
|
997
998
|
accountStatePrecondition(systemAccount, `Star System ${system.name} remains the Starbase System at Fleet ${fleet.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
998
999
|
accountStatePrecondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Starbase ${system.name}.`),
|
|
999
1000
|
])),
|