@aephia/atlas-kit 0.6.0-next.83 → 0.6.0-next.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/fleets/actions/dock-bounds.d.ts +36 -0
  2. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
  3. package/dist/fleets/actions/dock-bounds.js +38 -0
  4. package/dist/fleets/actions/dock-bounds.js.map +1 -0
  5. package/dist/fleets/actions/index.d.ts +1 -0
  6. package/dist/fleets/actions/index.d.ts.map +1 -1
  7. package/dist/fleets/actions/index.js +27 -0
  8. package/dist/fleets/actions/index.js.map +1 -1
  9. package/dist/internal/c4/docking-funding.d.ts +4 -0
  10. package/dist/internal/c4/docking-funding.d.ts.map +1 -0
  11. package/dist/internal/c4/docking-funding.js +11 -0
  12. package/dist/internal/c4/docking-funding.js.map +1 -0
  13. package/dist/internal/c4/game.d.ts +6 -0
  14. package/dist/internal/c4/game.d.ts.map +1 -1
  15. package/dist/internal/c4/game.js +10 -0
  16. package/dist/internal/c4/game.js.map +1 -1
  17. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  18. package/dist/internal/planning/faction-enrollment.js +2 -10
  19. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  20. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +41 -0
  21. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
  22. package/dist/internal/planning/fleet-dock-funding-guard.js +153 -0
  23. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
  24. package/dist/internal/planning/fleet-dock-funding.d.ts +10 -0
  25. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
  26. package/dist/internal/planning/fleet-dock-funding.js +115 -0
  27. package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
  28. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  29. package/dist/internal/planning/fleet-docking.js +32 -18
  30. package/dist/internal/planning/fleet-docking.js.map +1 -1
  31. package/dist/internal/planning/rent.d.ts +4 -0
  32. package/dist/internal/planning/rent.d.ts.map +1 -0
  33. package/dist/internal/planning/rent.js +13 -0
  34. package/dist/internal/planning/rent.js.map +1 -0
  35. package/dist/planning/assembly.d.ts.map +1 -1
  36. package/dist/planning/assembly.js +2 -0
  37. package/dist/planning/assembly.js.map +1 -1
  38. package/dist/planning/execution.d.ts.map +1 -1
  39. package/dist/planning/execution.js +48 -8
  40. package/dist/planning/execution.js.map +1 -1
  41. package/dist/planning/index.d.ts +3 -2
  42. package/dist/planning/index.d.ts.map +1 -1
  43. package/dist/planning/index.js +13 -3
  44. package/dist/planning/index.js.map +1 -1
  45. package/dist/registry/docking.d.ts +15 -0
  46. package/dist/registry/docking.d.ts.map +1 -0
  47. package/dist/registry/docking.js +16 -0
  48. package/dist/registry/docking.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-dock-funding-guard.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-dock-funding-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAMtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,QAAA,MAAM,OAAO,oSAWH,CAAC;AACX,MAAM,MAAM,2BAA2B,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC;AACN,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AACD,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GACnD,kBAAkB,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AACJ,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AACD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,UAAQ,GACX,qBAAqB,CA4GvB;AACD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,qBAAqB,GAC3B,WAAW,CAAC,qBAAqB,CAAC,CAOpC;AACD,iFAAiF;AACjF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAyDN"}
@@ -0,0 +1,153 @@
1
+ import { isAddress } from '@solana/kit';
2
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
+ import { IDLE_TO_DOCKED_DISCRIMINATOR, SAGE_PROGRAM_ADDRESS, } from '../c4/runtime-bindings.js';
4
+ import { rentMinimumBalance } from './rent.js';
5
+ const REASONS = [
6
+ 'unsupported-account-layout',
7
+ 'unsupported-fleet-state',
8
+ 'noncanonical-account-encoding',
9
+ 'stale-definition-sequences',
10
+ 'stale-starbase-sequence',
11
+ 'pending-recovery',
12
+ 'active-stimulants',
13
+ 'funding-state-unavailable',
14
+ 'accounts-below-rent-reserve',
15
+ 'profile-below-storage-ceiling',
16
+ ];
17
+ export function dockGrowthDebit(rate, threshold, length) {
18
+ return (rentMinimumBalance(rate, threshold, length + 40) -
19
+ rentMinimumBalance(rate, threshold, length));
20
+ }
21
+ export function normalizeFleetDockFundingGuard(value, wire = false) {
22
+ const bad = () => {
23
+ throw new InvalidActionInputError('fleet-dock-funding', value, 'the exact current docking intent, Rent quote and gross storage ceiling', 'Recreate the docking Plan; do not alter its saved qualification or debit fields.');
24
+ };
25
+ const row = { ...value };
26
+ const addresses = [
27
+ 'address',
28
+ 'game',
29
+ 'profile',
30
+ 'authority',
31
+ 'certificate',
32
+ 'character',
33
+ 'system',
34
+ 'starbasePlayer',
35
+ ];
36
+ const quote = [
37
+ 'maximumProfileDebit',
38
+ 'fleetDataLengthBytes',
39
+ 'rentLamportsPerByteYear',
40
+ 'rentExemptionThreshold',
41
+ 'shipSequenceId',
42
+ 'cargoSequenceId',
43
+ 'starbaseSequenceId',
44
+ ];
45
+ const keys = [
46
+ 'kind',
47
+ ...addresses,
48
+ 'keyIndex',
49
+ 'status',
50
+ 'describes',
51
+ ...(row.status === 'available' ? quote : ['reason']),
52
+ ];
53
+ if (keys.some((k) => !Object.hasOwn(row, k)) ||
54
+ Object.keys(row).some((k) => !keys.includes(k)))
55
+ bad();
56
+ for (const k of addresses)
57
+ if (typeof row[k] !== 'string' || !isAddress(row[k]))
58
+ bad();
59
+ if (row.kind !== 'fleet-dock-funding' ||
60
+ typeof row.describes !== 'string' ||
61
+ !row.describes.trim() ||
62
+ !Number.isInteger(row.keyIndex) ||
63
+ row.keyIndex < 0 ||
64
+ row.keyIndex > 65535)
65
+ bad();
66
+ if (row.status === 'available') {
67
+ for (const k of [
68
+ 'maximumProfileDebit',
69
+ 'rentLamportsPerByteYear',
70
+ 'starbaseSequenceId',
71
+ ]) {
72
+ if (wire) {
73
+ if (typeof row[k] !== 'string' || !/^(0|[1-9][0-9]*)$/.test(row[k]))
74
+ bad();
75
+ row[k] = BigInt(row[k]);
76
+ }
77
+ if (typeof row[k] !== 'bigint' ||
78
+ row[k] < 0n ||
79
+ row[k] > 0xffffffffffffffffn)
80
+ bad();
81
+ }
82
+ for (const k of [
83
+ 'fleetDataLengthBytes',
84
+ 'shipSequenceId',
85
+ 'cargoSequenceId',
86
+ ])
87
+ if (!Number.isInteger(row[k]) ||
88
+ row[k] < 0 ||
89
+ row[k] > 0xffffffff)
90
+ bad();
91
+ if (row.fleetDataLengthBytes < 685 ||
92
+ typeof row.rentExemptionThreshold !== 'number' ||
93
+ !Number.isFinite(row.rentExemptionThreshold) ||
94
+ row.rentExemptionThreshold < 0)
95
+ bad();
96
+ try {
97
+ if (row.maximumProfileDebit !==
98
+ dockGrowthDebit(row.rentLamportsPerByteYear, row.rentExemptionThreshold, row.fleetDataLengthBytes))
99
+ bad();
100
+ }
101
+ catch {
102
+ bad();
103
+ }
104
+ }
105
+ else if (row.status !== 'unavailable' ||
106
+ !REASONS.includes(row.reason))
107
+ bad();
108
+ return Object.freeze(row);
109
+ }
110
+ export function dockFundingGuardToJSON(guard) {
111
+ return Object.fromEntries(Object.entries(guard).map(([key, value]) => [
112
+ key,
113
+ typeof value === 'bigint' ? String(value) : value,
114
+ ]));
115
+ }
116
+ /** Requires one exact funding assertion for each current docking instruction. */
117
+ export function validateFleetDockFundingGuards(steps, guards) {
118
+ const selected = guards.filter((g) => g.kind === 'fleet-dock-funding');
119
+ const docks = steps.filter((s) => s.instruction.programAddress === SAGE_PROGRAM_ADDRESS &&
120
+ IDLE_TO_DOCKED_DISCRIMINATOR.every((v, n) => s.instruction.data?.[n] === v));
121
+ const fail = () => {
122
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Docking requires its exact instruction-bound Profile storage safeguard. Refresh the Fleet and recreate the docking Plan before signing.');
123
+ };
124
+ if (selected.length !== docks.length)
125
+ fail();
126
+ for (const step of docks) {
127
+ const a = step.instruction.accounts;
128
+ const matches = selected.filter((g) => g.address === a[4].address);
129
+ if (matches.length !== 1)
130
+ fail();
131
+ const g = matches[0];
132
+ const data = step.instruction.data;
133
+ if (g.profile !== a[1].address ||
134
+ g.authority !== a[0].address ||
135
+ g.certificate !== a[2].address ||
136
+ g.system !== a[5].address ||
137
+ g.starbasePlayer !== a[6].address ||
138
+ g.game !== a[7].address ||
139
+ g.keyIndex !== (data[8] | (data[9] << 8)) ||
140
+ step.signers.length !== 1 ||
141
+ step.signers[0] !== g.authority)
142
+ fail();
143
+ for (const address of [g.address, g.character, g.system, g.starbasePlayer])
144
+ if (!guards.some((v) => v.kind === 'account-state' && v.address === address))
145
+ fail();
146
+ // Transaction compilation unions privileges: a locally readonly reference
147
+ // also becomes writable because this docking instruction writes the Fleet.
148
+ if (steps.some((other) => other !== step &&
149
+ other.instruction.accounts?.some((meta) => meta.address === g.address)))
150
+ throw new SageSdkError('INCOMPATIBLE_PLAN_COMPOSITION', 'Docking cannot share a transaction with another instruction referencing the same Fleet. Confirm the first action, refresh the Fleet and prepare the next Plan separately.');
151
+ }
152
+ }
153
+ //# sourceMappingURL=fleet-dock-funding-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-dock-funding-guard.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-dock-funding-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Address, RawAccount, SageContext } from '../../client/contracts.js';
2
+ import { type DockingSequences } from '../../registry/docking.js';
3
+ import { type DockFundingAmounts, type DockFundingIntent, type FleetDockFundingGuard } from './fleet-dock-funding-guard.js';
4
+ export declare function calculateDockFunding(intent: DockFundingIntent, accounts: ReadonlyMap<Address, RawAccount | undefined>, sequences?: DockingSequences): DockFundingAmounts;
5
+ export declare function resolveDockFunding(ctx: SageContext, intent: DockFundingIntent, raw: readonly RawAccount[]): Promise<DockFundingAmounts>;
6
+ export declare function revalidateDockFunding(guard: FleetDockFundingGuard, accounts: ReadonlyMap<Address, RawAccount | undefined>, sequences: DockingSequences | undefined): {
7
+ profileDebit: bigint;
8
+ profileReserve: bigint;
9
+ } | undefined;
10
+ //# sourceMappingURL=fleet-dock-funding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-dock-funding.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-dock-funding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAOvC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,SAAS,CAAC,EAAE,gBAAgB,GAC3B,kBAAkB,CAyFpB;AACD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,SAAS,UAAU,EAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AACD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,SAAS,EAAE,gBAAgB,GAAG,SAAS,GACtC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAsB9D"}
@@ -0,0 +1,115 @@
1
+ import { SageSdkError } from '../../client/errors.js';
2
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
3
+ import { fleetAccountDefinition } from '../c4/fleet.js';
4
+ import { starbasePlayerAccountDefinition } from '../c4/starbase.js';
5
+ import { starSystemAccountDefinition } from '../c4/world.js';
6
+ import { validateProfileAccountShape } from '../c4/identity.js';
7
+ import { hasCanonicalDockingEncoding } from '../c4/docking-funding.js';
8
+ import { readFreshGameDockingSequences, } from '../../registry/docking.js';
9
+ import { RENT_ADDRESS, readRent } from './faction-enrollment.js';
10
+ import { dockGrowthDebit, } from './fleet-dock-funding-guard.js';
11
+ function unavailable(reason) {
12
+ return { status: 'unavailable', reason };
13
+ }
14
+ export function calculateDockFunding(intent, accounts, sequences) {
15
+ const fleetRaw = accounts.get(intent.address), playerRaw = accounts.get(intent.starbasePlayer), systemRaw = accounts.get(intent.system);
16
+ if (!fleetRaw || !playerRaw || !systemRaw)
17
+ return unavailable('funding-state-unavailable');
18
+ const fleet = fleetAccountDefinition.decode(fleetRaw), player = starbasePlayerAccountDefinition.decode(playerRaw), system = starSystemAccountDefinition.decode(systemRaw);
19
+ if (fleetRaw.executable ||
20
+ playerRaw.executable ||
21
+ systemRaw.executable ||
22
+ fleet.game !== intent.game ||
23
+ fleet.ownerProfile !== intent.profile ||
24
+ player.playerProfile !== intent.profile ||
25
+ player.character !== intent.character ||
26
+ player.system !== intent.system ||
27
+ system.game !== intent.game)
28
+ return unavailable('funding-state-unavailable');
29
+ if (fleet.version !== 0 || player.version !== 0)
30
+ return unavailable('unsupported-account-layout');
31
+ if (fleet.state.kind !== 'idle')
32
+ return unavailable('unsupported-fleet-state');
33
+ if (!hasCanonicalDockingEncoding(fleetRaw, playerRaw))
34
+ return unavailable('noncanonical-account-encoding');
35
+ if (fleet.activeStimulants.length)
36
+ return unavailable('active-stimulants');
37
+ if (fleet.pendingHp !== 0 ||
38
+ fleet.respawningCargo.amounts.length ||
39
+ fleet.respawningCargo.storageCost !== 0n ||
40
+ player.respawning.cargo.amounts.length ||
41
+ player.respawning.cargo.usedStorageUnitsRaw !== 0n ||
42
+ player.respawning.ships.length ||
43
+ player.respawning.claimStakes.length ||
44
+ player.respawning.craftingHabs.length ||
45
+ player.respawning.crew.quantityRaw !== 0n ||
46
+ player.respawning.crew.completesAtUnixSeconds !== 0n ||
47
+ player.cargoRespawnEndsAtUnixSeconds !== 0n)
48
+ return unavailable('pending-recovery');
49
+ if (!system.starbase || player.sequenceId !== system.sequenceId)
50
+ return unavailable('stale-starbase-sequence');
51
+ if (!sequences)
52
+ return unavailable('funding-state-unavailable');
53
+ if (sequences.version !== 2)
54
+ return unavailable('unsupported-account-layout');
55
+ if (fleet.shipDefinitionsSeqId !== sequences.shipSequenceId ||
56
+ [
57
+ fleet.cargoHold.seqId,
58
+ fleet.components.seqId,
59
+ fleet.respawningCargo.seqId,
60
+ player.cargo.sequenceId,
61
+ player.respawning.cargo.sequenceId,
62
+ ].some((seq) => seq !== sequences.cargoSequenceId))
63
+ return unavailable('stale-definition-sequences');
64
+ const profile = accounts.get(intent.profile), rentRaw = accounts.get(RENT_ADDRESS);
65
+ if (!profile || !rentRaw || profile.executable)
66
+ return unavailable('funding-state-unavailable');
67
+ validateProfileAccountShape(profile);
68
+ const rent = readRent(rentRaw);
69
+ if ([fleetRaw, playerRaw].some((a) => a.lamports < rent(a.data.length)))
70
+ return unavailable('accounts-below-rent-reserve');
71
+ const view = new DataView(rentRaw.data.buffer, rentRaw.data.byteOffset, rentRaw.data.byteLength);
72
+ const rentLamportsPerByteYear = view.getBigUint64(0, true), rentExemptionThreshold = view.getFloat64(8, true);
73
+ const maximumProfileDebit = dockGrowthDebit(rentLamportsPerByteYear, rentExemptionThreshold, fleetRaw.data.length);
74
+ if (profile.lamports < rent(profile.data.length) + maximumProfileDebit)
75
+ return unavailable('profile-below-storage-ceiling');
76
+ return {
77
+ status: 'available',
78
+ maximumProfileDebit,
79
+ fleetDataLengthBytes: fleetRaw.data.length,
80
+ rentLamportsPerByteYear,
81
+ rentExemptionThreshold,
82
+ shipSequenceId: sequences.shipSequenceId,
83
+ cargoSequenceId: sequences.cargoSequenceId,
84
+ starbaseSequenceId: player.sequenceId,
85
+ };
86
+ }
87
+ export async function resolveDockFunding(ctx, intent, raw) {
88
+ const accounts = new Map(raw.map((a) => [a.address, a]));
89
+ const initial = calculateDockFunding(intent, accounts);
90
+ if (initial.status === 'unavailable' &&
91
+ initial.reason !== 'funding-state-unavailable')
92
+ return initial;
93
+ const sequences = await readFreshGameDockingSequences(ctx);
94
+ const addresses = [intent.profile, RENT_ADDRESS];
95
+ const rows = await readContextRawAccounts(ctx, addresses);
96
+ addresses.forEach((a, n) => accounts.set(a, rows[n]));
97
+ return calculateDockFunding(intent, accounts, sequences);
98
+ }
99
+ export function revalidateDockFunding(guard, accounts, sequences) {
100
+ if (guard.status === 'unavailable')
101
+ return undefined;
102
+ const current = calculateDockFunding(guard, accounts, sequences);
103
+ if (current.status !== 'available' ||
104
+ current.maximumProfileDebit > guard.maximumProfileDebit ||
105
+ current.shipSequenceId !== guard.shipSequenceId ||
106
+ current.cargoSequenceId !== guard.cargoSequenceId ||
107
+ current.starbaseSequenceId !== guard.starbaseSequenceId ||
108
+ current.fleetDataLengthBytes !== guard.fleetDataLengthBytes)
109
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Docking no longer has qualified storage funding within its approved Profile ceiling. Refresh the Fleet, Starbase Player, definitions and Rent; fund the Profile explicitly if needed, then recreate and inspect the Plan before signing.', { address: guard.profile });
110
+ return {
111
+ profileDebit: guard.maximumProfileDebit,
112
+ profileReserve: readRent(accounts.get(RENT_ADDRESS))(accounts.get(guard.profile).data.length),
113
+ };
114
+ }
115
+ //# sourceMappingURL=fleet-dock-funding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-dock-funding.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-dock-funding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-docking.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAoB5D,kFAAkF;AAClF,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,GACA,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"fleet-docking.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAoB5D,kFAAkF;AAClF,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,GACA,OAAO,CAAC,IAAI,CAAC,CAuGf"}
@@ -21,16 +21,21 @@ const ownershipDefinition = /* @__PURE__ */ adapter({
21
21
  });
22
22
  /** Validates only the measured legacy-controller/default-gating docking route. */
23
23
  export async function validateFleetDockingPolicy(tracker, ownership, scope) {
24
- const fail = () => {
25
- throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Docking faction policy is missing, invalid, or outside the qualified default-gating legacy-controller route. Refresh the Game relation tracker and System ownership; dynamic controllers or enabled territory/economic gating require independently qualified SDK support before docking.');
24
+ const invalid = (address, cause) => {
25
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}. Refresh the indicated faction account for the configured Game and System, verify its current binding version, and recreate the docking Plan.`, { address });
26
26
  };
27
- if (!tracker ||
28
- !ownership ||
29
- tracker.executable ||
30
- ownership.executable ||
31
- tracker.address !== scope.address ||
32
- ownership.address !== scope.ownership)
33
- fail();
27
+ if (!tracker)
28
+ invalid(scope.address, `missing Game faction relation tracker ${scope.address}`);
29
+ if (!ownership)
30
+ invalid(scope.ownership, `missing System ownership ${scope.ownership}`);
31
+ if (tracker.executable)
32
+ invalid(scope.address, `Game faction relation tracker ${scope.address} is executable`);
33
+ if (ownership.executable)
34
+ invalid(scope.ownership, `System ownership ${scope.ownership} is executable`);
35
+ if (tracker.address !== scope.address)
36
+ invalid(scope.address, `Game faction relation tracker ${scope.address} returned account ${tracker.address}`);
37
+ if (ownership.address !== scope.ownership)
38
+ invalid(scope.ownership, `System ownership ${scope.ownership} returned account ${ownership.address}`);
34
39
  const [trackerPda, ownershipPda] = await Promise.all([
35
40
  getProgramDerivedAddress({
36
41
  programAddress: SAGE_PROGRAM_ADDRESS,
@@ -51,21 +56,30 @@ export async function validateFleetDockingPolicy(tracker, ownership, scope) {
51
56
  ]);
52
57
  const relation = trackerDefinition.decode(tracker);
53
58
  const owner = ownershipDefinition.decode(ownership);
59
+ if (relation.version !== 0)
60
+ invalid(scope.address, `Game faction relation tracker ${scope.address} has unsupported account version ${String(relation.version)}`);
61
+ if (owner.version !== 0)
62
+ invalid(scope.ownership, `System ownership ${scope.ownership} has unsupported account version ${String(owner.version)}`);
54
63
  if (trackerPda[0] !== scope.address ||
55
- ownershipPda[0] !== scope.ownership ||
56
- relation.version !== 0 ||
57
- owner.version !== 0 ||
58
64
  relation.bump !== trackerPda[1] ||
65
+ relation.gameId !== scope.game)
66
+ invalid(scope.address, `Game faction relation tracker ${scope.address} does not match its canonical Game identity or PDA`);
67
+ if (ownershipPda[0] !== scope.ownership ||
59
68
  owner.bump !== ownershipPda[1] ||
60
- relation.gameId !== scope.game ||
61
69
  owner.gameId !== scope.game ||
62
70
  owner.assetKind !== 0 ||
63
71
  !getAddressEncoder()
64
72
  .encode(scope.system)
65
- .every((byte, index) => owner.assetKey[index] === byte) ||
66
- relation.territoryAccessEnabled !== 0 ||
67
- relation.crossFactionEconomicsEnabled !== 0 ||
68
- owner.controllingFaction > 3)
69
- fail();
73
+ .every((byte, index) => owner.assetKey[index] === byte))
74
+ invalid(scope.ownership, `System ownership ${scope.ownership} does not match its canonical Game/System identity or PDA`);
75
+ const unsupported = (address, cause) => {
76
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}; this policy is unsupported by the qualified docking route. Choose a System with controller 0–3 and disabled territory/economic gates, or use independently qualified SDK support for this policy. Refresh the faction accounts and recreate the Plan after the policy changes.`, { address });
77
+ };
78
+ if (relation.territoryAccessEnabled !== 0)
79
+ unsupported(scope.address, 'territory access gating is enabled');
80
+ if (relation.crossFactionEconomicsEnabled !== 0)
81
+ unsupported(scope.address, 'cross-faction economic gating is enabled');
82
+ if (owner.controllingFaction > 3)
83
+ unsupported(scope.ownership, `controller ${String(owner.controllingFaction)} governs this System`);
70
84
  }
71
85
  //# sourceMappingURL=fleet-docking.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-docking.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-docking.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Address } from '@solana/kit';
2
+ /** Shared exact-range Rent calculation, including the account overhead. */
3
+ export declare function rentMinimumBalance(rate: bigint, threshold: number, length: number, address?: Address): bigint;
4
+ //# sourceMappingURL=rent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rent.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/rent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAkE,GAC1E,MAAM,CAeR"}
@@ -0,0 +1,13 @@
1
+ import { SageSdkError } from '../../client/errors.js';
2
+ /** Shared exact-range Rent calculation, including the account overhead. */
3
+ export function rentMinimumBalance(rate, threshold, length, address = 'SysvarRent111111111111111111111111111111111') {
4
+ const base = (BigInt(length) + 128n) * rate;
5
+ const result = Number(base) * threshold;
6
+ if (base > BigInt(Number.MAX_SAFE_INTEGER) ||
7
+ !Number.isFinite(result) ||
8
+ result < 0 ||
9
+ result > Number.MAX_SAFE_INTEGER)
10
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Profile storage funding exceeds the supported exact calculation range. Use a supported Rent configuration before planning this action.', { address });
11
+ return BigInt(Math.trunc(result));
12
+ }
13
+ //# sourceMappingURL=rent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rent.js","sourceRoot":"","sources":["../../../src/internal/planning/rent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,SAAiB,EACjB,MAAc,EACd,UAAmB,6CAAwD;IAE3E,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,IACE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACtC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxB,MAAM,GAAG,CAAC;QACV,MAAM,GAAG,MAAM,CAAC,gBAAgB;QAEhC,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,wIAAwI,EACxI,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAWA,OAAO,EAgBL,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gCAAgC,EACtC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAevC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAgCD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAIlE;AAaD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,eAAe,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAA4B,GAChE,uBAAuB,CAmFzB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAwDhE;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,CACV,uBAAuB,EACvB,kBAAkB,GAAG,0BAA0B,CAChD,GACA,IAAI,CAqBN;AASD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,WAAW,GAAG,gCAAgC,CAAC,CAKzD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,uBAAuB,GACvC,OAAO,CAAC,WAAW,GAAG,gCAAgC,CAAC,CAqCzD"}
1
+ {"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAYA,OAAO,EAgBL,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gCAAgC,EACtC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAevC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAgCD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAIlE;AAaD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,eAAe,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAA4B,GAChE,uBAAuB,CAmFzB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CA4DhE;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,CACV,uBAAuB,EACvB,kBAAkB,GAAG,0BAA0B,CAChD,GACA,IAAI,CAqBN;AASD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,WAAW,GAAG,gCAAgC,CAAC,CAKzD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,uBAAuB,GACvC,OAAO,CAAC,WAAW,GAAG,gCAAgC,CAAC,CAqCzD"}
@@ -1,3 +1,4 @@
1
+ import { validateFleetDockFundingGuards } from '../internal/planning/fleet-dock-funding-guard.js';
1
2
  import { validateLocalMarketOrderInstructions } from '../internal/planning/local-market-order.js';
2
3
  import { validateOpenSignalInstructions } from '../internal/planning/open-signal-guard.js';
3
4
  import { validateRespawnInstructions } from '../internal/planning/respawn-guards.js';
@@ -100,6 +101,7 @@ export function validatePlan(plan) {
100
101
  validatePlanComposition(validatedPlan.steps);
101
102
  validateOpenSignalInstructions(validatedPlan.steps, validatedPlan.preconditions);
102
103
  validateFleetDockingGuards(validatedPlan.steps, validatedPlan.preconditions);
104
+ validateFleetDockFundingGuards(validatedPlan.steps, validatedPlan.preconditions);
103
105
  validateStarbaseSystemInstructions(validatedPlan.steps, validatedPlan.preconditions);
104
106
  validateCharacterRegistrationInstructions(validatedPlan.steps, validatedPlan.preconditions);
105
107
  validateRuntimeInstructions(validatedPlan.steps, validatedPlan.preconditions);
@@ -1 +1 @@
1
- {"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"AAmEA,OAAO,EAcL,KAAK,UAAU,EACf,KAAK,SAAS,EAOd,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAEV,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,IAAI,EAAoB,MAAM,YAAY,CAAC;AAgBzD;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,YAAY,GAAG,kBAAkB,GAAG,cAAc,CAAC;IAC9D,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAYhF,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAk1CD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,EAC3B,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA2G9B"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"AAqEA,OAAO,EAcL,KAAK,UAAU,EACf,KAAK,SAAS,EAOd,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAEV,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,IAAI,EAAoB,MAAM,YAAY,CAAC;AAgBzD;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,YAAY,GAAG,kBAAkB,GAAG,cAAc,CAAC;IAC9D,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAYhF,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAq4CD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,EAC3B,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA2G9B"}
@@ -1,3 +1,5 @@
1
+ import { revalidateDockFunding } from '../internal/planning/fleet-dock-funding.js';
2
+ import { decodeDockingSequences } from '../registry/docking.js';
1
3
  import { revalidateMarketOrder, marketOrderFundingAddresses, } from '../internal/planning/local-market-order-funding.js';
2
4
  import { resolveFleetCrewTransfer } from '../internal/planning/fleet-crew-transfer.js';
3
5
  import { revalidateScanCompletion } from '../internal/planning/scan-completion.js';
@@ -451,6 +453,16 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
451
453
  const assemblyCatalogs = new Map();
452
454
  const requiredAddresses = new Set(preconditions.map(({ address }) => address));
453
455
  for (const guard of preconditions) {
456
+ if (guard.kind === 'fleet-dock-funding' && guard.status === 'available') {
457
+ for (const address of [
458
+ guard.profile,
459
+ guard.starbasePlayer,
460
+ guard.system,
461
+ guard.game,
462
+ RENT_ADDRESS,
463
+ ])
464
+ requiredAddresses.add(address);
465
+ }
454
466
  if (guard.kind === 'fleet-docking-policy')
455
467
  requiredAddresses.add(guard.ownership);
456
468
  if (guard.kind === 'local-market-order' && guard.status === 'available') {
@@ -572,8 +584,31 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
572
584
  return new ActionPreconditionFailedError(guard, byAddress.get(error.address)?.slot, error.message, error.address);
573
585
  return new ActionPreconditionFailedError(guard, undefined, 'Fleet prerequisites could not be validated. Refresh the related accounts and replan with a supported binding version.');
574
586
  };
587
+ const dockingGuard = preconditions.find((g) => g.kind === 'fleet-dock-funding' && g.status === 'available');
588
+ let dockingSequences;
589
+ if (dockingGuard) {
590
+ try {
591
+ dockingSequences = decodeDockingSequences(byAddress.get(requireGameAddress(context)));
592
+ }
593
+ catch (error) {
594
+ throw fleetFailure(dockingGuard, error);
595
+ }
596
+ }
575
597
  for (const precondition of preconditions) {
576
598
  const account = byAddress.get(precondition.address);
599
+ if (precondition.kind === 'fleet-dock-funding') {
600
+ try {
601
+ if (precondition.game !== requireGameAddress(context))
602
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The docking Plan belongs to another Game. Recreate it with the intended Game context.');
603
+ const funding = revalidateDockFunding(precondition, byAddress, dockingSequences);
604
+ if (funding)
605
+ recordFunding(precondition, funding);
606
+ }
607
+ catch (error) {
608
+ throw fleetFailure(precondition, error);
609
+ }
610
+ continue;
611
+ }
577
612
  if (precondition.kind === 'local-market-order') {
578
613
  try {
579
614
  if (precondition.game !== requireGameAddress(context))
@@ -635,13 +670,23 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
635
670
  }
636
671
  continue;
637
672
  }
673
+ if (precondition.kind === 'fleet-docking-policy') {
674
+ try {
675
+ if (precondition.game !== requireGameAddress(context))
676
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The docking faction policy belongs to another Game. Recreate the Plan with the intended Game context.', { address: precondition.address });
677
+ await validateFleetDockingPolicy(account, byAddress.get(precondition.ownership), precondition);
678
+ }
679
+ catch (error) {
680
+ throw fleetFailure(precondition, error);
681
+ }
682
+ continue;
683
+ }
638
684
  let narrowed = true;
639
685
  let cause;
640
686
  if (precondition.kind === 'token-account')
641
687
  narrowed =
642
688
  account !== undefined && matchesTokenAccount(account, precondition);
643
- if (precondition.kind === 'fleet-docking-policy' ||
644
- precondition.kind === 'movement-character' ||
689
+ if (precondition.kind === 'movement-character' ||
645
690
  precondition.kind === 'starbase-system' ||
646
691
  precondition.kind === 'fleet-mining' ||
647
692
  isFactionTradeGuard(precondition) ||
@@ -653,11 +698,6 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
653
698
  try {
654
699
  if (!account)
655
700
  narrowed = false;
656
- else if (precondition.kind === 'fleet-docking-policy') {
657
- narrowed = precondition.game === requireGameAddress(context);
658
- if (narrowed)
659
- await validateFleetDockingPolicy(account, byAddress.get(precondition.ownership), precondition);
660
- }
661
701
  else if (precondition.kind === 'movement-character') {
662
702
  narrowed =
663
703
  precondition.game === requireGameAddress(context) &&
@@ -754,7 +794,7 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
754
794
  // Validation above guarantees a fresh Profile from the same finite batch.
755
795
  const account = byAddress.get(profile);
756
796
  if (account.lamports < funding.reserve + funding.debit)
757
- throw new ActionPreconditionFailedError(funding.guard, account.slot, 'The Profile cannot cover the combined Fleet creation, assembly and ship import debits while preserving its rent reserve. Fund the Profile or the Fleet/StarbasePlayer targets explicitly, then replan.', profile);
797
+ throw new ActionPreconditionFailedError(funding.guard, account.slot, 'The Profile cannot cover the combined Profile storage debits while preserving its rent reserve. Fund the Profile or the Fleet/StarbasePlayer targets explicitly, then replan.', profile);
758
798
  }
759
799
  return registrationFunding;
760
800
  }