@aephia/atlas-kit 0.6.0-next.115 → 0.6.0-next.117
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 +1 -1
- package/dist/cargo/actions/deposit.d.ts.map +1 -1
- package/dist/cargo/actions/deposit.js +2 -2
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/index.d.ts +1 -1
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +8 -23
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-context.js +2 -7
- package/dist/cargo/actions/wallet-context.js.map +1 -1
- package/dist/cargo/actions/withdrawal.d.ts +1 -1
- package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
- package/dist/cargo/actions/withdrawal.js +2 -2
- package/dist/cargo/actions/withdrawal.js.map +1 -1
- package/dist/claim-stakes/actions/index.d.ts +1 -1
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +39 -61
- package/dist/claim-stakes/actions/index.js.map +1 -1
- package/dist/combat/actions/index.d.ts +1 -1
- package/dist/combat/actions/index.d.ts.map +1 -1
- package/dist/combat/actions/index.js +15 -37
- package/dist/combat/actions/index.js.map +1 -1
- package/dist/crafting/actions/index.d.ts +1 -1
- package/dist/crafting/actions/index.d.ts.map +1 -1
- package/dist/crafting/actions/index.js +14 -29
- package/dist/crafting/actions/index.js.map +1 -1
- package/dist/factions/actions/index.d.ts +1 -1
- package/dist/factions/actions/index.d.ts.map +1 -1
- package/dist/factions/actions/index.js +5 -4
- package/dist/factions/actions/index.js.map +1 -1
- package/dist/fleets/actions/add-ship.d.ts +1 -1
- package/dist/fleets/actions/add-ship.d.ts.map +1 -1
- package/dist/fleets/actions/add-ship.js +6 -6
- package/dist/fleets/actions/add-ship.js.map +1 -1
- package/dist/fleets/actions/create-fleet.d.ts +1 -1
- package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
- package/dist/fleets/actions/create-fleet.js +3 -3
- package/dist/fleets/actions/create-fleet.js.map +1 -1
- package/dist/fleets/actions/crew-transfer.d.ts +1 -1
- package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
- package/dist/fleets/actions/crew-transfer.js +12 -4
- package/dist/fleets/actions/crew-transfer.js.map +1 -1
- package/dist/fleets/actions/index.d.ts +1 -1
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +26 -41
- package/dist/fleets/actions/index.js.map +1 -1
- package/dist/fleets/actions/respawn.d.ts +1 -1
- package/dist/fleets/actions/respawn.d.ts.map +1 -1
- package/dist/fleets/actions/respawn.js +3 -3
- package/dist/fleets/actions/respawn.js.map +1 -1
- package/dist/fleets/actions/ship-import.d.ts +1 -1
- package/dist/fleets/actions/ship-import.d.ts.map +1 -1
- package/dist/fleets/actions/ship-import.js +4 -9
- package/dist/fleets/actions/ship-import.js.map +1 -1
- package/dist/identity/actions/create-profile.d.ts +1 -1
- package/dist/identity/actions/create-profile.d.ts.map +1 -1
- package/dist/identity/actions/create-profile.js +2 -2
- package/dist/identity/actions/create-profile.js.map +1 -1
- package/dist/identity/actions/index.d.ts +1 -1
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +3 -3
- package/dist/identity/actions/index.js.map +1 -1
- package/dist/internal/c4/local-market-order.d.ts +1 -3
- package/dist/internal/c4/local-market-order.d.ts.map +1 -1
- package/dist/internal/c4/local-market-order.js +1 -3
- package/dist/internal/c4/local-market-order.js.map +1 -1
- package/dist/internal/c4/runtime-bindings.d.ts +1 -1
- package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
- package/dist/internal/c4/runtime-bindings.js +1 -1
- package/dist/internal/c4/runtime-bindings.js.map +1 -1
- package/dist/internal/planning/account-state.d.ts +6 -0
- package/dist/internal/planning/account-state.d.ts.map +1 -1
- package/dist/internal/planning/account-state.js +13 -0
- package/dist/internal/planning/account-state.js.map +1 -1
- package/dist/internal/planning/arrival-guards.js +1 -1
- package/dist/internal/planning/arrival-guards.js.map +1 -1
- package/dist/internal/planning/faction-enrollment.d.ts +0 -2
- package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
- package/dist/internal/planning/faction-enrollment.js +0 -9
- package/dist/internal/planning/faction-enrollment.js.map +1 -1
- package/dist/internal/planning/fleet-arrival.js +2 -2
- package/dist/internal/planning/fleet-arrival.js.map +1 -1
- package/dist/internal/planning/fleet-creation.js +2 -2
- package/dist/internal/planning/fleet-creation.js.map +1 -1
- package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
- package/dist/internal/planning/fleet-crew-transfer.js +4 -5
- package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
- package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
- package/dist/internal/planning/fleet-respawn.js +2 -3
- package/dist/internal/planning/fleet-respawn.js.map +1 -1
- package/dist/internal/planning/fleet-ship-assembly.js +2 -2
- package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
- package/dist/internal/planning/open-signal.js +2 -2
- package/dist/internal/planning/open-signal.js.map +1 -1
- package/dist/internal/planning/plan-fields.d.ts +2 -1
- package/dist/internal/planning/plan-fields.d.ts.map +1 -1
- package/dist/internal/planning/plan-fields.js +8 -2
- package/dist/internal/planning/plan-fields.js.map +1 -1
- package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
- package/dist/internal/planning/runtime-guards.js +7 -3
- package/dist/internal/planning/runtime-guards.js.map +1 -1
- package/dist/internal/planning/scan-completion-guard.d.ts +6 -6
- package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
- package/dist/internal/planning/scan-completion-guard.js +10 -7
- package/dist/internal/planning/scan-completion-guard.js.map +1 -1
- package/dist/internal/planning/scan-completion.js +2 -2
- package/dist/internal/planning/scan-completion.js.map +1 -1
- package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
- package/dist/internal/planning/scan-detect-guard.js +4 -2
- package/dist/internal/planning/scan-detect-guard.js.map +1 -1
- package/dist/internal/planning/scan-detect.js +2 -2
- package/dist/internal/planning/scan-detect.js.map +1 -1
- package/dist/internal/planning/ship-import-funding.js +1 -1
- package/dist/internal/planning/ship-import-funding.js.map +1 -1
- package/dist/loyalty/actions/index.d.ts +1 -1
- package/dist/loyalty/actions/index.d.ts.map +1 -1
- package/dist/loyalty/actions/index.js +8 -25
- package/dist/loyalty/actions/index.js.map +1 -1
- package/dist/markets/actions/index.d.ts +1 -1
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +12 -27
- package/dist/markets/actions/index.js.map +1 -1
- package/dist/markets/actions/trade-faction-market.d.ts +1 -1
- package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
- package/dist/markets/actions/trade-faction-market.js +7 -12
- package/dist/markets/actions/trade-faction-market.js.map +1 -1
- package/dist/mining/actions/index.d.ts +1 -1
- package/dist/mining/actions/index.d.ts.map +1 -1
- package/dist/mining/actions/index.js +3 -3
- package/dist/mining/actions/index.js.map +1 -1
- package/dist/planning/assembly.d.ts +1 -1
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +4 -4
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts +1 -0
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +3 -10
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +4 -80
- package/dist/planning/index.js.map +1 -1
- package/dist/planning/plan-construction.d.ts +25 -0
- package/dist/planning/plan-construction.d.ts.map +1 -0
- package/dist/planning/plan-construction.js +143 -0
- package/dist/planning/plan-construction.js.map +1 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
- package/dist/planning/plan-sequence-execution.js +1 -11
- package/dist/planning/plan-sequence-execution.js.map +1 -1
- package/dist/planning/plan-validation.d.ts +4 -1
- package/dist/planning/plan-validation.d.ts.map +1 -1
- package/dist/planning/plan-validation.js +4 -1
- package/dist/planning/plan-validation.js.map +1 -1
- package/dist/scanning/actions/index.d.ts +1 -1
- package/dist/scanning/actions/index.d.ts.map +1 -1
- package/dist/scanning/actions/index.js +12 -6
- package/dist/scanning/actions/index.js.map +1 -1
- package/dist/starbases/actions/index.d.ts +1 -1
- package/dist/starbases/actions/index.d.ts.map +1 -1
- package/dist/starbases/actions/index.js +11 -26
- package/dist/starbases/actions/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,9 +5,10 @@ import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
|
5
5
|
import { profileAccountDefinition } from '../../internal/c4/identity.js';
|
|
6
6
|
import { deriveProfileFactionAddress, profileFactionAccountDefinition, } from '../../internal/c4/profile-faction.js';
|
|
7
7
|
import { validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
|
|
8
|
-
import { adaptChooseFaction, CLOCK_ADDRESS, enrollmentFailure,
|
|
8
|
+
import { adaptChooseFaction, CLOCK_ADDRESS, enrollmentFailure, readClock, } from '../../internal/planning/faction-enrollment.js';
|
|
9
9
|
import { RENT_ADDRESS, readRent } from '../../internal/planning/rent.js';
|
|
10
|
-
import {
|
|
10
|
+
import { buildPlannerPlan } from '../../planning/plan-construction.js';
|
|
11
|
+
import { accountStatePrecondition } from '../../internal/planning/account-state.js';
|
|
11
12
|
function validate(value) {
|
|
12
13
|
if (value === null ||
|
|
13
14
|
typeof value !== 'object' ||
|
|
@@ -113,8 +114,8 @@ export async function planChooseFaction(ctx, options) {
|
|
|
113
114
|
const reserve = minimum(profileRaw.data.length), funding = minimum(43);
|
|
114
115
|
if (profileRaw.lamports < reserve + funding)
|
|
115
116
|
enrollmentFailure(`Profile ${authorization.profile} needs ${reserve + funding - profileRaw.lamports} more native lamports in its on-chain vault for enrollment while retaining its own storage reserve. Fund that Profile separately, refresh it, and retry.`, profileRaw.address);
|
|
116
|
-
const preconditions = await Promise.all(observed.map(({ account, describes }) =>
|
|
117
|
-
return
|
|
117
|
+
const preconditions = await Promise.all(observed.map(({ account, describes }) => accountStatePrecondition(account, describes)));
|
|
118
|
+
return buildPlannerPlan({
|
|
118
119
|
kind: 'faction.choose',
|
|
119
120
|
summary: `Enroll Profile ${authorization.profile} in ${faction}.`,
|
|
120
121
|
preconditions: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factions/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,yBAAyB,GAE1B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factions/actions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Address } from '@solana/kit';
|
|
2
2
|
import type { SageContext } from '../../client/contracts.js';
|
|
3
3
|
import type { PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { Plan } from '../../planning/index.js';
|
|
5
5
|
/** Explicit address-only selection of escrowed ships for an owned Docked Fleet.
|
|
6
6
|
* @example
|
|
7
7
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-ship.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/add-ship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAS1F,OAAO,
|
|
1
|
+
{"version":3,"file":"add-ship.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/add-ship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAS1F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA8DD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
|
|
@@ -6,7 +6,7 @@ import { fleetAccountDefinition } from '../../internal/c4/fleet.js';
|
|
|
6
6
|
import { addShipToFleetInstruction } from '../../internal/c4/fleet-ship-assembly.js';
|
|
7
7
|
import { resolveFleetShipAssembly, validateFleetShipAssembly, } from '../../internal/planning/fleet-ship-assembly.js';
|
|
8
8
|
import { readFreshGameShipAssemblyCatalog } from '../../registry/ships.js';
|
|
9
|
-
import {
|
|
9
|
+
import { buildPlannerPlan } from '../../planning/plan-construction.js';
|
|
10
10
|
function options(input) {
|
|
11
11
|
const bad = () => {
|
|
12
12
|
throw new InvalidActionInputError('options', input, 'authorization, shipId and amount only; direct authority, Profile, u16 keyIndex and shipId, and a bigint amount from 1n through 255n', 'Pass address-only ship assembly options. Certificates and other access routes are unsupported; use a direct Profile key and an existing own-faction StarbasePlayer.');
|
|
@@ -79,8 +79,8 @@ export async function planAddShipToFleet(ctx, fleet, input) {
|
|
|
79
79
|
throw new InvalidActionInputError('fleet', fleet, 'a Fleet address', 'Select an owned Fleet and replan ship assembly.');
|
|
80
80
|
const game = requireGameAddress(ctx);
|
|
81
81
|
const [fleetRaw] = await readContextRawAccounts(ctx, [fleet]);
|
|
82
|
-
if (!fleetRaw || fleetRaw.
|
|
83
|
-
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The selected Fleet is missing
|
|
82
|
+
if (!fleetRaw || fleetRaw.executable)
|
|
83
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The selected Fleet is missing or executable. Refresh a valid owned Fleet and replan.');
|
|
84
84
|
const decoded = fleetAccountDefinition.decode(fleetRaw);
|
|
85
85
|
if (decoded.state.kind !== 'docked')
|
|
86
86
|
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Ship assembly currently requires a Docked Fleet. Dock at an own-faction CSS Starbase and replan.');
|
|
@@ -89,8 +89,8 @@ export async function planAddShipToFleet(ctx, fleet, input) {
|
|
|
89
89
|
game,
|
|
90
90
|
profile: captured.authorization.profile,
|
|
91
91
|
authority: captured.authorization.authority,
|
|
92
|
-
keyIndex: captured.authorization.keyIndex,
|
|
93
92
|
system: decoded.state.system,
|
|
93
|
+
keyIndex: captured.authorization.keyIndex,
|
|
94
94
|
shipId: captured.shipId,
|
|
95
95
|
amount: captured.amount,
|
|
96
96
|
};
|
|
@@ -113,15 +113,15 @@ export async function planAddShipToFleet(ctx, fleet, input) {
|
|
|
113
113
|
accounts.set(game, rawAccount);
|
|
114
114
|
const { profileDebit, configHash } = await validateFleetShipAssembly(intent, resolved, accounts, undefined, catalog);
|
|
115
115
|
const summary = `Add ${intent.amount} of ship configuration ${intent.shipId} from StarbasePlayer ${resolved.starbasePlayer} to Fleet ${fleet}. Observed Profile rent debit: ${profileDebit} lamports from Profile ${intent.profile}. Execution rejects a higher observed debit before signing; this is not an atomic on-chain spending cap. Transaction fees are separate. Final stats, research, refresh and outcomes remain chain-authoritative; simulate before signing.`;
|
|
116
|
-
return
|
|
116
|
+
return buildPlannerPlan({
|
|
117
117
|
kind: 'fleets.add-ship',
|
|
118
118
|
summary,
|
|
119
119
|
preconditions: [
|
|
120
120
|
{
|
|
121
121
|
kind: 'fleet-add-ship',
|
|
122
122
|
...intent,
|
|
123
|
-
configHash,
|
|
124
123
|
maximumProfileDebit: profileDebit,
|
|
124
|
+
configHash,
|
|
125
125
|
describes: 'Ship assembly retains canonical relationships, supported configuration, exact entitlement, capacity, direct-key permission and affordable rent within the observed Profile debit.',
|
|
126
126
|
},
|
|
127
127
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-ship.js","sourceRoot":"","sources":["../../../src/fleets/actions/add-ship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"add-ship.js","sourceRoot":"","sources":["../../../src/fleets/actions/add-ship.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Address } from '@solana/kit';
|
|
2
2
|
import type { SageContext } from '../../client/contracts.js';
|
|
3
3
|
import type { PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { Plan } from '../../planning/index.js';
|
|
5
5
|
/** Address-only options for creating an empty Fleet at an existing own-faction StarbasePlayer.
|
|
6
6
|
* @example
|
|
7
7
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-fleet.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/create-fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAU7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,
|
|
1
|
+
{"version":3,"file":"create-fleet.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/create-fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAU7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAyDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|
|
@@ -4,7 +4,7 @@ import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
|
4
4
|
import { requireGameAddress } from '../../internal/game-context.js';
|
|
5
5
|
import { createFleetInstruction } from '../../internal/c4/fleet-creation.js';
|
|
6
6
|
import { resolveFleetCreation, validateFleetCreation, validateFleetCreationLabel, } from '../../internal/planning/fleet-creation.js';
|
|
7
|
-
import {
|
|
7
|
+
import { buildPlannerPlan } from '../../planning/plan-construction.js';
|
|
8
8
|
import { readFreshGameForCharacterRegistration } from '../../registry/onboarding.js';
|
|
9
9
|
function options(input) {
|
|
10
10
|
const bad = () => {
|
|
@@ -76,8 +76,8 @@ export async function planCreateFleet(ctx, input) {
|
|
|
76
76
|
game,
|
|
77
77
|
profile: captured.authorization.profile,
|
|
78
78
|
authority: captured.authorization.authority,
|
|
79
|
-
keyIndex: captured.authorization.keyIndex,
|
|
80
79
|
system: captured.system,
|
|
80
|
+
keyIndex: captured.authorization.keyIndex,
|
|
81
81
|
label: captured.label,
|
|
82
82
|
};
|
|
83
83
|
const resolved = await resolveFleetCreation(intent);
|
|
@@ -97,7 +97,7 @@ export async function planCreateFleet(ctx, input) {
|
|
|
97
97
|
]);
|
|
98
98
|
const { profileDebit } = await validateFleetCreation(intent, resolved, new Map(addresses.map((address, index) => [address, raw[index]])));
|
|
99
99
|
const summary = `Create empty Fleet ${intent.label} (${resolved.fleet}), Docked at Starbase ${intent.system}, consuming one Character Fleet slot. Observed Profile rent debit: ${profileDebit} lamports from Profile ${intent.profile}. Execution rejects a higher observed debit before signing; final rent and funding remain chain-authoritative. Transaction fees are separate. Final modifier refresh and deployed eligibility remain chain-authoritative: simulate before signing.`;
|
|
100
|
-
return
|
|
100
|
+
return buildPlannerPlan({
|
|
101
101
|
kind: 'fleets.create-fleet',
|
|
102
102
|
summary,
|
|
103
103
|
preconditions: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-fleet.js","sourceRoot":"","sources":["../../../src/fleets/actions/create-fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"create-fleet.js","sourceRoot":"","sources":["../../../src/fleets/actions/create-fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Address } from '@solana/kit';
|
|
2
2
|
import type { SageContext } from '../../client/contracts.js';
|
|
3
3
|
import type { PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { Plan } from '../../planning/index.js';
|
|
5
5
|
/** Direct player authorization and the positive count for ordinary Docked Fleet crew transfer.
|
|
6
6
|
* @example
|
|
7
7
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crew-transfer.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,
|
|
1
|
+
{"version":3,"file":"crew-transfer.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AA8GD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf;AACD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -3,7 +3,7 @@ import { InvalidActionInputError } from '../../client/errors.js';
|
|
|
3
3
|
import { requireGameAddress } from '../../internal/game-context.js';
|
|
4
4
|
import { resolveFleetCrewTransfer } from '../../internal/planning/fleet-crew-transfer.js';
|
|
5
5
|
import { crewTransferInstruction } from '../../internal/planning/fleet-crew-guard.js';
|
|
6
|
-
import {
|
|
6
|
+
import { buildPlannerPlan } from '../../planning/plan-construction.js';
|
|
7
7
|
function options(input) {
|
|
8
8
|
const bad = () => {
|
|
9
9
|
throw new InvalidActionInputError('options', input, 'authorization and count only; direct authority, Profile, u16 keyIndex and positive u16 count', 'Pass address-only Fleet crew transfer options. Certificates and other access routes are unsupported; use a direct Profile key and an existing canonical StarbasePlayer.');
|
|
@@ -61,14 +61,22 @@ async function planTransfer(ctx, fleet, input, direction) {
|
|
|
61
61
|
};
|
|
62
62
|
const resolved = await resolveFleetCrewTransfer(ctx, intent);
|
|
63
63
|
const summary = `${direction === 'load' ? 'Load' : 'Unload'} ${intent.count} ordinary crew ${direction === 'load' ? 'from' : 'to'} StarbasePlayer ${resolved.starbasePlayer} ${direction === 'load' ? 'aboard' : 'from'} Fleet ${fleet}. Crew may be unloaded to zero while Docked; reload the required departure crew before undocking. Individual rosters, rented crew and restricted keys are unsupported. Execute this transfer alone; refresh Fleet and Starbase crew after confirmation before planning another action. Simulate before signing.`;
|
|
64
|
-
return
|
|
64
|
+
return buildPlannerPlan({
|
|
65
65
|
kind: `fleets.${direction}-crew`,
|
|
66
66
|
summary,
|
|
67
67
|
preconditions: [
|
|
68
68
|
{
|
|
69
69
|
kind: 'fleet-crew-transfer',
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
direction,
|
|
71
|
+
address: intent.address,
|
|
72
|
+
game: intent.game,
|
|
73
|
+
profile: intent.profile,
|
|
74
|
+
authority: intent.authority,
|
|
75
|
+
system: resolved.system,
|
|
76
|
+
starbasePlayer: resolved.starbasePlayer,
|
|
77
|
+
count: intent.count,
|
|
78
|
+
keyIndex: intent.keyIndex,
|
|
79
|
+
systemSequenceId: resolved.systemSequenceId,
|
|
72
80
|
describes: 'Direct authority, canonical docking generation, ordinary crew state, current capacity and available source crew remain valid.',
|
|
73
81
|
},
|
|
74
82
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crew-transfer.js","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"crew-transfer.js","sourceRoot":"","sources":["../../../src/fleets/actions/crew-transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Address } from '@solana/kit';
|
|
2
2
|
import type { SageContext } from '../../client/contracts.js';
|
|
3
3
|
import { type PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { Plan } from '../../planning/index.js';
|
|
5
5
|
import type { FleetSnapshot } from '../index.js';
|
|
6
6
|
export type { PlanAuthorization };
|
|
7
7
|
/** Inputs for planning one docked-to-idle Fleet transition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/index.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleets/actions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { deriveFactionOwnershipAddress } from '../../internal/c4/factions.js';
|
|
|
5
5
|
import { regionContainsCoordinate } from '../../internal/c4/region-geometry.js';
|
|
6
6
|
import { hashMovementCharacter } from '../../internal/planning/movement-character.js';
|
|
7
7
|
import { resolveXpRuntime } from '../../internal/planning/xp-runtime.js';
|
|
8
|
-
import {
|
|
8
|
+
import { isAddress } from '@solana/kit';
|
|
9
9
|
import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
|
|
10
10
|
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
11
11
|
import { deriveFleetAddress, fleetAccountDefinition, } from '../../internal/c4/fleet.js';
|
|
@@ -17,9 +17,10 @@ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '.
|
|
|
17
17
|
import { buildStarSystemDiscoveryFilters, deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
|
|
18
18
|
import { requireGameAddress } from '../../internal/game-context.js';
|
|
19
19
|
import { adaptDockedToIdleInstruction, adaptIdleToDockedInstruction, adaptStartSubwarpInstruction, adaptStopSubwarpInstruction, adaptWarpLaneInstruction, adaptWarpToCoordinateInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
|
|
20
|
-
import {
|
|
20
|
+
import { buildPlannerPlan } from '../../planning/plan-construction.js';
|
|
21
21
|
import { resolveFleetArrival } from '../../internal/planning/fleet-arrival.js';
|
|
22
22
|
import { failFleetState, requireActionCoordinate, } from '../../internal/planning/fleet-state.js';
|
|
23
|
+
import { accountStatePrecondition } from '../../internal/planning/account-state.js';
|
|
23
24
|
const FLEET_STATE_IDLE = 'fleet.state.idle';
|
|
24
25
|
const FLEET_STATE_MOVEMENT_STARTED = 'fleet.state.movement-started';
|
|
25
26
|
function movementStartSemantics(fleet) {
|
|
@@ -124,22 +125,6 @@ function validateStarbasePlayerRead(account, fleet, profile, character, system,
|
|
|
124
125
|
function failNoDockableStarbase(fleet, location) {
|
|
125
126
|
return fail(`Fleet ${fleet.name} action coordinate (${String(location.x)}, ${String(location.y)}) has no Starbase to dock at. Move the Fleet to a Starbase system first, refresh the Fleet and galaxy, and retry.`, fleet.address);
|
|
126
127
|
}
|
|
127
|
-
async function hashAccountState(account) {
|
|
128
|
-
const owner = getAddressEncoder().encode(account.owner);
|
|
129
|
-
const canonical = new Uint8Array(owner.length + account.data.length);
|
|
130
|
-
canonical.set(owner);
|
|
131
|
-
canonical.set(account.data, owner.length);
|
|
132
|
-
const digest = new Uint8Array(await globalThis.crypto.subtle.digest('SHA-256', canonical));
|
|
133
|
-
return [...digest].map((byte) => byte.toString(16).padStart(2, '0')).join('');
|
|
134
|
-
}
|
|
135
|
-
async function precondition(account, describes) {
|
|
136
|
-
return Object.freeze({
|
|
137
|
-
address: account.address,
|
|
138
|
-
dataHash: await hashAccountState(account),
|
|
139
|
-
describes,
|
|
140
|
-
kind: 'account-state',
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
128
|
function validateCoordinateComponent(field, value) {
|
|
144
129
|
if (!Number.isFinite(value)) {
|
|
145
130
|
throw new InvalidActionInputError(field, value, 'a finite SAGE coordinate', `Set ${field} to a finite number before planning coordinate movement.`);
|
|
@@ -364,7 +349,7 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
364
349
|
accounts: xp.accounts,
|
|
365
350
|
describes: 'The configured Game and canonical Character XP accounts remain eligible for movement.',
|
|
366
351
|
},
|
|
367
|
-
await
|
|
352
|
+
await accountStatePrecondition(resolved.fleetAccount, fleet.state.kind === 'idle'
|
|
368
353
|
? `Fleet ${fleet.name} remains idle at coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
|
|
369
354
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} with action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
370
355
|
{
|
|
@@ -378,14 +363,14 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
378
363
|
}),
|
|
379
364
|
describes: 'The canonical Character retains its movement modifiers and non-accrual state.',
|
|
380
365
|
},
|
|
381
|
-
await
|
|
366
|
+
await accountStatePrecondition(resolved.regionTrackerAccount, `The configured RegionTracker continues to map Fleet ${fleet.name}'s current and destination coordinates.`),
|
|
382
367
|
...(resolved.crewBindingAccount === undefined
|
|
383
368
|
? []
|
|
384
369
|
: [
|
|
385
|
-
await
|
|
370
|
+
await accountStatePrecondition(resolved.crewBindingAccount, `Fleet ${fleet.name}'s optional FleetCrewBinding remains assigned to the Fleet and owner Profile.`),
|
|
386
371
|
]),
|
|
387
372
|
];
|
|
388
|
-
return
|
|
373
|
+
return buildPlannerPlan({
|
|
389
374
|
kind: mode === 'subwarp' ? 'fleet.subwarp' : 'fleet.warp-to-coordinate',
|
|
390
375
|
preconditions: accounts,
|
|
391
376
|
steps: [
|
|
@@ -538,7 +523,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
538
523
|
profile: options.authorization.profile,
|
|
539
524
|
});
|
|
540
525
|
const description = `Warp fleet ${fleet.name} from Star System ${resolved.source.name} to Star System ${resolved.destination.name} via warp lane.`;
|
|
541
|
-
return
|
|
526
|
+
return buildPlannerPlan({
|
|
542
527
|
kind: 'fleet.warp-lane',
|
|
543
528
|
preconditions: [
|
|
544
529
|
{
|
|
@@ -549,7 +534,7 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
549
534
|
describes: 'The configured Game and canonical Character XP accounts remain eligible for movement.',
|
|
550
535
|
},
|
|
551
536
|
...(await Promise.all([
|
|
552
|
-
|
|
537
|
+
accountStatePrecondition(resolved.fleetAccount, fleet.state.kind === 'idle'
|
|
553
538
|
? `Fleet ${fleet.name} remains idle at Star System ${resolved.source.name}.`
|
|
554
539
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} at action source Star System ${resolved.source.name}.`),
|
|
555
540
|
hashMovementCharacter(resolved.characterAccount, {
|
|
@@ -563,16 +548,16 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
563
548
|
stateHash,
|
|
564
549
|
describes: 'The canonical Character retains its movement modifiers and non-accrual state.',
|
|
565
550
|
})),
|
|
566
|
-
|
|
567
|
-
|
|
551
|
+
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)}.`),
|
|
552
|
+
accountStatePrecondition(resolved.destinationAccount, `Destination Star System ${resolved.destination.name} remains system id ${String(resolved.destination.systemId)} in the configured Game.`),
|
|
568
553
|
Promise.resolve({
|
|
569
554
|
kind: 'currency-cache',
|
|
570
555
|
address: resolved.currencyCacheAccount.address,
|
|
571
556
|
game,
|
|
572
557
|
describes: 'The canonical CurrencyCache retains its supported Game identity and layout; shared accounting may change.',
|
|
573
558
|
}),
|
|
574
|
-
|
|
575
|
-
|
|
559
|
+
accountStatePrecondition(resolved.factionRelationTrackerAccount, 'The canonical FactionRelationTracker remains assigned to the configured Game.'),
|
|
560
|
+
accountStatePrecondition(resolved.regionTrackerAccount, 'The canonical RegionTracker remains assigned to the configured Game.'),
|
|
576
561
|
])),
|
|
577
562
|
],
|
|
578
563
|
steps: [
|
|
@@ -669,7 +654,7 @@ export async function planFleetSettleArrival(ctx, fleet, input) {
|
|
|
669
654
|
regionTracker,
|
|
670
655
|
...xp.accounts,
|
|
671
656
|
});
|
|
672
|
-
return
|
|
657
|
+
return buildPlannerPlan({
|
|
673
658
|
kind: 'fleet.settle-arrival',
|
|
674
659
|
preconditions: [
|
|
675
660
|
{
|
|
@@ -732,7 +717,7 @@ export async function planFleetStopSubwarp(ctx, fleet, options) {
|
|
|
732
717
|
profile: options.authorization.profile,
|
|
733
718
|
});
|
|
734
719
|
const description = `Stop subwarp early for fleet ${fleet.name}; leave it idle if the trip already completed.`;
|
|
735
|
-
return
|
|
720
|
+
return buildPlannerPlan({
|
|
736
721
|
kind: 'fleet.stop-subwarp',
|
|
737
722
|
preconditions: [
|
|
738
723
|
{
|
|
@@ -803,13 +788,13 @@ export async function planFleetUndock(ctx, fleet, options) {
|
|
|
803
788
|
systemAndStarbasePlayerSystem: docked.system.address,
|
|
804
789
|
});
|
|
805
790
|
const description = `Undock fleet ${fleet.name} from the Starbase in Star System ${system.name}.`;
|
|
806
|
-
return
|
|
791
|
+
return buildPlannerPlan({
|
|
807
792
|
kind: 'fleet.undock',
|
|
808
793
|
preconditions: await Promise.all([
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
794
|
+
accountStatePrecondition(fleetAccount, `Fleet ${fleet.name} remains docked at Star System ${system.name}.`),
|
|
795
|
+
accountStatePrecondition(characterAccount, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game.`),
|
|
796
|
+
accountStatePrecondition(systemAccount, `Star System ${system.name} remains the docked System for Fleet ${fleet.name}.`),
|
|
797
|
+
accountStatePrecondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Star System ${system.name}.`),
|
|
813
798
|
]),
|
|
814
799
|
steps: [
|
|
815
800
|
{
|
|
@@ -896,10 +881,10 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
896
881
|
profile: options.authorization.profile,
|
|
897
882
|
authority: options.authorization.authority,
|
|
898
883
|
certificate: instruction.accounts[2].address,
|
|
899
|
-
keyIndex: options.authorization.keyIndex,
|
|
900
884
|
character: characterAddress,
|
|
901
885
|
system: systemAddress,
|
|
902
886
|
starbasePlayer: starbasePlayerAddress,
|
|
887
|
+
keyIndex: options.authorization.keyIndex,
|
|
903
888
|
};
|
|
904
889
|
const amounts = await resolveDockFunding(ctx, fundingIntent, [
|
|
905
890
|
fleetAccount,
|
|
@@ -915,17 +900,17 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
915
900
|
: `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.`,
|
|
916
901
|
};
|
|
917
902
|
const description = `Dock fleet ${fleet.name} at the Starbase in Star System ${system.name}.`;
|
|
918
|
-
return
|
|
903
|
+
return buildPlannerPlan({
|
|
919
904
|
kind: 'fleet.dock',
|
|
920
905
|
preconditions: [
|
|
921
906
|
policy,
|
|
922
907
|
...(await Promise.all([
|
|
923
|
-
|
|
908
|
+
accountStatePrecondition(fleetAccount, fleet.state.kind === 'idle'
|
|
924
909
|
? `Fleet ${fleet.name} remains idle at Starbase System ${system.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
|
|
925
910
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} at Starbase System ${system.name} action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
911
|
+
accountStatePrecondition(characterAccount, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game.`),
|
|
912
|
+
accountStatePrecondition(systemAccount, `Star System ${system.name} remains the Starbase System at Fleet ${fleet.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
913
|
+
accountStatePrecondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Starbase ${system.name}.`),
|
|
929
914
|
])),
|
|
930
915
|
funding,
|
|
931
916
|
],
|