@aephia/atlas-kit 0.6.0-next.37 → 0.6.0-next.38

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 (31) hide show
  1. package/dist/fleets/actions/index.d.ts +24 -15
  2. package/dist/fleets/actions/index.d.ts.map +1 -1
  3. package/dist/fleets/actions/index.js +90 -49
  4. package/dist/fleets/actions/index.js.map +1 -1
  5. package/dist/internal/c4/fleet-arrival.d.ts +27 -0
  6. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  7. package/dist/internal/c4/fleet-arrival.js +39 -0
  8. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  9. package/dist/internal/c4/runtime-bindings.d.ts +2 -1
  10. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  11. package/dist/internal/c4/runtime-bindings.js +2 -1
  12. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  13. package/dist/internal/planning/arrival-guards.d.ts +20 -0
  14. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  15. package/dist/internal/planning/arrival-guards.js +231 -0
  16. package/dist/internal/planning/arrival-guards.js.map +1 -0
  17. package/dist/internal/planning/fleet-arrival.d.ts +49 -0
  18. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  19. package/dist/internal/planning/fleet-arrival.js +134 -0
  20. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  21. package/dist/planning/assembly.d.ts.map +1 -1
  22. package/dist/planning/assembly.js +2 -0
  23. package/dist/planning/assembly.js.map +1 -1
  24. package/dist/planning/execution.d.ts.map +1 -1
  25. package/dist/planning/execution.js +32 -2
  26. package/dist/planning/execution.js.map +1 -1
  27. package/dist/planning/index.d.ts +16 -4
  28. package/dist/planning/index.d.ts.map +1 -1
  29. package/dist/planning/index.js +28 -14
  30. package/dist/planning/index.js.map +1 -1
  31. package/package.json +1 -1
@@ -0,0 +1,231 @@
1
+ import { AccountRole, isAddress } from '@solana/kit';
2
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
+ import { deepFreeze } from '../immutable-tree.js';
4
+ import { SAGE_PROGRAM_ADDRESS, PLAYER_PROFILE_PROGRAM_ADDRESS, STOP_SUBWARP_DISCRIMINATOR, THE_ONE_FLEET_STATE_HANDLER_DISCRIMINATOR, } from '../c4/runtime-bindings.js';
5
+ function invalid(field, value) {
6
+ throw new InvalidActionInputError(field, value, 'the exact supported Fleet arrival safeguard', 'Refresh the Fleet and recreate its arrival Plan with this SDK version.');
7
+ }
8
+ function record(value, field, keys) {
9
+ if (!value || typeof value !== 'object' || Array.isArray(value))
10
+ invalid(field, value);
11
+ const row = value;
12
+ if (keys.some((key) => !Object.hasOwn(row, key)) ||
13
+ Object.keys(row).some((key) => !keys.includes(key)))
14
+ invalid(field, value);
15
+ return row;
16
+ }
17
+ function address(value, field) {
18
+ if (typeof value !== 'string' || !isAddress(value))
19
+ invalid(field, value);
20
+ return value;
21
+ }
22
+ function integer(value, field, wire, bits = 64) {
23
+ if (wire) {
24
+ if (typeof value !== 'string' ||
25
+ !/^(0|[1-9][0-9]*|-[1-9][0-9]*)$/.test(value))
26
+ invalid(field, value);
27
+ value = BigInt(value);
28
+ }
29
+ const bound = 1n << BigInt(bits - 1);
30
+ if (typeof value !== 'bigint' || value < -bound || value >= bound)
31
+ invalid(field, value);
32
+ return value;
33
+ }
34
+ function coordinates(value, field, wire) {
35
+ const row = record(value, field, ['x', 'y']);
36
+ return { x: integer(row.x, field, wire), y: integer(row.y, field, wire) };
37
+ }
38
+ export function normalizeArrivalGuard(value, field, wire = false) {
39
+ const route = value?.intent
40
+ ?.route;
41
+ if (route !== 'legacy' && route !== 'authorized')
42
+ invalid(field, value);
43
+ const row = record(value, field, [
44
+ 'kind',
45
+ 'address',
46
+ 'describes',
47
+ 'intent',
48
+ 'character',
49
+ ...(route === 'authorized' ? ['regionTracker'] : []),
50
+ ]);
51
+ if (row.kind !== 'fleet-arrival' || typeof row.describes !== 'string')
52
+ invalid(field, value);
53
+ const intent = record(row.intent, field, [
54
+ 'fleet',
55
+ 'game',
56
+ 'profile',
57
+ 'route',
58
+ 'journey',
59
+ route === 'legacy' ? 'funder' : 'authorization',
60
+ ]);
61
+ const kind = intent.journey?.kind;
62
+ if (kind !== 'subwarp' && kind !== 'warp')
63
+ invalid(field, intent.journey);
64
+ if (route === 'authorized' && kind !== 'subwarp')
65
+ invalid(field, intent.journey);
66
+ const journey = record(intent.journey, field, [
67
+ 'kind',
68
+ 'from',
69
+ 'to',
70
+ 'departure',
71
+ kind === 'subwarp' ? 'duration' : 'arrival',
72
+ ]);
73
+ const departure = integer(journey.departure, field, wire);
74
+ const base = {
75
+ from: coordinates(journey.from, field, wire),
76
+ to: coordinates(journey.to, field, wire),
77
+ departure,
78
+ };
79
+ const duration = kind === 'subwarp'
80
+ ? integer(journey.duration, field, wire, 128)
81
+ : undefined;
82
+ const arrival = kind === 'warp' ? integer(journey.arrival, field, wire) : undefined;
83
+ if ((duration !== undefined && duration < 0n) ||
84
+ (arrival !== undefined && arrival < departure))
85
+ invalid(field, journey);
86
+ const profile = address(intent.profile, field);
87
+ const shared = {
88
+ fleet: address(intent.fleet, field),
89
+ game: address(intent.game, field),
90
+ profile,
91
+ journey: kind === 'subwarp'
92
+ ? { ...base, kind: 'subwarp', duration: duration }
93
+ : { ...base, kind: 'warp', arrival: arrival },
94
+ };
95
+ let normalized;
96
+ if (route === 'legacy')
97
+ normalized = { ...shared, route, funder: address(intent.funder, field) };
98
+ else {
99
+ const auth = record(intent.authorization, field, [
100
+ 'authority',
101
+ 'profile',
102
+ 'keyIndex',
103
+ ]);
104
+ if (auth.profile !== profile ||
105
+ typeof auth.keyIndex !== 'number' ||
106
+ !Number.isInteger(auth.keyIndex) ||
107
+ auth.keyIndex < 0 ||
108
+ auth.keyIndex > 65535)
109
+ invalid(field, auth);
110
+ normalized = {
111
+ ...shared,
112
+ route,
113
+ authorization: {
114
+ authority: address(auth.authority, field),
115
+ profile,
116
+ keyIndex: auth.keyIndex,
117
+ },
118
+ };
119
+ }
120
+ if (row.address !== normalized.fleet)
121
+ invalid(field, row.address);
122
+ return deepFreeze({
123
+ kind: 'fleet-arrival',
124
+ address: normalized.fleet,
125
+ describes: row.describes,
126
+ intent: normalized,
127
+ character: address(row.character, field),
128
+ ...(route === 'authorized'
129
+ ? { regionTracker: address(row.regionTracker, field) }
130
+ : {}),
131
+ });
132
+ }
133
+ export function arrivalGuardToJSON(guard) {
134
+ const j = guard.intent.journey;
135
+ return {
136
+ ...guard,
137
+ intent: {
138
+ ...guard.intent,
139
+ journey: {
140
+ ...j,
141
+ from: { x: String(j.from.x), y: String(j.from.y) },
142
+ to: { x: String(j.to.x), y: String(j.to.y) },
143
+ departure: String(j.departure),
144
+ ...(j.kind === 'subwarp'
145
+ ? { duration: String(j.duration) }
146
+ : { arrival: String(j.arrival) }),
147
+ },
148
+ },
149
+ };
150
+ }
151
+ function fail() {
152
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'This arrival instruction has no matching journey, authority and XP safeguards or has an unsupported layout. Refresh the Fleet and recreate the Plan with planFleetSettleArrival before signing.');
153
+ }
154
+ /** Preserve old instructions as data, but never execute unguarded historical settlement. */
155
+ export function validateArrivalInstructions(steps, guards) {
156
+ const arrivals = guards.filter((guard) => guard.kind === 'fleet-arrival');
157
+ const matched = new Set();
158
+ for (let index = 0; index < steps.length; index += 1) {
159
+ const step = steps[index];
160
+ const ix = step.instruction;
161
+ if (ix.programAddress !== SAGE_PROGRAM_ADDRESS)
162
+ continue;
163
+ const is = (disc) => disc.every((byte, offset) => ix.data?.[offset] === byte);
164
+ const generic = is(THE_ONE_FLEET_STATE_HANDLER_DISCRIMINATOR);
165
+ const stop = is(STOP_SUBWARP_DISCRIMINATOR);
166
+ if (!generic && !stop)
167
+ continue;
168
+ const metas = ix.accounts ?? [];
169
+ const fleet = metas[generic ? 1 : 5]?.address;
170
+ const candidates = arrivals.filter((g) => g.address === fleet &&
171
+ g.intent.route === (generic ? 'legacy' : 'authorized'));
172
+ if (!generic && candidates.length === 0)
173
+ continue; // Explicit raw early-stop has no arrival intent.
174
+ if (steps
175
+ .slice(0, index)
176
+ .some((prior) => prior.instruction.accounts?.some((meta) => meta.address === fleet)))
177
+ throw new SageSdkError('INCOMPATIBLE_PLAN_COMPOSITION', `An earlier instruction references Fleet ${fleet} before its guarded arrival. Account write privileges are transaction-wide. Confirm that transaction separately, then refresh the Fleet and recreate its arrival Plan.`);
178
+ if (candidates.length > 1)
179
+ throw new SageSdkError('INCOMPATIBLE_PLAN_COMPOSITION', `Arrival Plans repeat Fleet ${fleet}. Settle this journey once, then refresh before preparing another arrival.`);
180
+ if (candidates.length === 0)
181
+ fail();
182
+ const guard = candidates[0];
183
+ const intent = guard.intent;
184
+ const xp = guards.find((g) => g.kind === 'xp-runtime' &&
185
+ g.intent.game === intent.game &&
186
+ g.intent.character === (generic ? undefined : guard.character) &&
187
+ g.intent.structure === undefined);
188
+ if (!xp ||
189
+ xp.kind !== 'xp-runtime' ||
190
+ xp.intent.gameVersion !== (generic ? 0 : 2))
191
+ fail();
192
+ const r = AccountRole.READONLY, w = AccountRole.WRITABLE;
193
+ const expected = intent.route === 'legacy'
194
+ ? [
195
+ [intent.funder, AccountRole.WRITABLE_SIGNER],
196
+ [intent.fleet, w],
197
+ [intent.game, r],
198
+ [SAGE_PROGRAM_ADDRESS, r],
199
+ [SAGE_PROGRAM_ADDRESS, r],
200
+ [guard.character, w],
201
+ ]
202
+ : [
203
+ [intent.authorization.authority, AccountRole.READONLY_SIGNER],
204
+ [intent.profile, w],
205
+ [SAGE_PROGRAM_ADDRESS, r],
206
+ [PLAYER_PROFILE_PROGRAM_ADDRESS, r],
207
+ [guard.character, w],
208
+ [intent.fleet, w],
209
+ [intent.game, r],
210
+ [guard.regionTracker, r],
211
+ [xp.accounts.xpBudget, w],
212
+ [xp.accounts.xpBudgetConfig, r],
213
+ ];
214
+ const signer = intent.route === 'legacy'
215
+ ? intent.funder
216
+ : intent.authorization.authority;
217
+ if (ix.data?.length !== (generic ? 8 : 10) ||
218
+ metas.length !== expected.length ||
219
+ expected.some(([address, role], i) => !address || metas[i]?.address !== address || metas[i]?.role !== role) ||
220
+ step.signers.length !== 1 ||
221
+ step.signers[0] !== signer)
222
+ fail();
223
+ if (intent.route === 'authorized' &&
224
+ ix.data[8] + 256 * ix.data[9] !== intent.authorization.keyIndex)
225
+ fail();
226
+ matched.add(guard);
227
+ }
228
+ if (arrivals.some((guard) => !matched.has(guard)))
229
+ fail();
230
+ }
231
+ //# sourceMappingURL=arrival-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrival-guards.js","sourceRoot":"","sources":["../../../src/internal/planning/arrival-guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { Address, SageContext } from '../../client/contracts.js';
2
+ import { type FleetArrivalJourney } from '../c4/fleet-arrival.js';
3
+ import type { PlanAuthorization } from './authorization-adapter.js';
4
+ export type FleetArrivalOptions = {
5
+ readonly funder: Address;
6
+ readonly authorization?: never;
7
+ } | {
8
+ readonly authorization: PlanAuthorization;
9
+ readonly funder?: never;
10
+ };
11
+ type ArrivalBase = {
12
+ readonly fleet: Address;
13
+ readonly game: Address;
14
+ readonly profile: Address;
15
+ readonly journey: FleetArrivalJourney;
16
+ };
17
+ export type FleetArrivalIntent = ArrivalBase & ({
18
+ readonly route: 'legacy';
19
+ readonly funder: Address;
20
+ readonly authorization?: never;
21
+ } | {
22
+ readonly route: 'authorized';
23
+ readonly authorization: Omit<PlanAuthorization, 'certificate'>;
24
+ readonly funder?: never;
25
+ });
26
+ /** Read fresh movement, chain time and direct authority without retaining signer data. */
27
+ export declare function resolveFleetArrival(ctx: SageContext, fleetAddress: Address, options: FleetArrivalOptions): Promise<{
28
+ intent: FleetArrivalIntent;
29
+ character: Address;
30
+ regionTracker: Address | undefined;
31
+ xp: {
32
+ readonly gameVersion: 0 | 2;
33
+ readonly intent: import("./xp-runtime.js").XpRuntimeIntent;
34
+ readonly accounts: import("./xp-runtime.js").XpRuntimeAccounts;
35
+ };
36
+ }>;
37
+ /** Recheck only the selected journey/authority, permitting unrelated Fleet and XP changes. */
38
+ export declare function validateFleetArrivalIntent(ctx: SageContext, intent: FleetArrivalIntent): Promise<{
39
+ intent: FleetArrivalIntent;
40
+ character: Address;
41
+ regionTracker: Address | undefined;
42
+ xp: {
43
+ readonly gameVersion: 0 | 2;
44
+ readonly intent: import("./xp-runtime.js").XpRuntimeIntent;
45
+ readonly accounts: import("./xp-runtime.js").XpRuntimeAccounts;
46
+ };
47
+ }>;
48
+ export {};
49
+ //# sourceMappingURL=fleet-arrival.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-arrival.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-arrival.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAahC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAC3E,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,CACI;IACE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;CAChC,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,CACJ,CAAC;AAaJ,0FAA0F;AAC1F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,mBAAmB;;;;;;;;;GAgJ7B;AACD,8FAA8F;AAC9F,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,kBAAkB;;;;;;;;;GA2B3B"}
@@ -0,0 +1,134 @@
1
+ import { SageSdkError } from '../../client/errors.js';
2
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
3
+ import { decodeFleetArrival, } from '../c4/fleet-arrival.js';
4
+ import { findCharacterPda, characterAccountDefinition, profileAccountDefinition, } from '../c4/identity.js';
5
+ import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../c4/factions.js';
6
+ import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
7
+ import { requireGameAddress } from '../game-context.js';
8
+ import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
9
+ import { resolveXpRuntime } from './xp-runtime.js';
10
+ function fail(address, reason) {
11
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Arrival settlement ${reason}. Refresh the Fleet and prepare a new arrival Plan after completed travel.`, { address });
12
+ }
13
+ function required(raw, address) {
14
+ if (!raw || raw.address !== address || raw.executable)
15
+ fail(address, `requires the existing non-executable account ${address}`);
16
+ return raw;
17
+ }
18
+ /** Read fresh movement, chain time and direct authority without retaining signer data. */
19
+ export async function resolveFleetArrival(ctx, fleetAddress, options) {
20
+ const game = requireGameAddress(ctx);
21
+ const [fleetRaw, clockRaw] = await readContextRawAccounts(ctx, [
22
+ fleetAddress,
23
+ CLOCK_ADDRESS,
24
+ ]);
25
+ const fleet = await decodeFleetArrival(required(fleetRaw, fleetAddress));
26
+ if (fleet.game !== game || fleet.canonical !== fleetAddress)
27
+ fail(fleetAddress, 'requires the canonical Fleet for the configured Game');
28
+ const journey = fleet.journey;
29
+ if (!journey)
30
+ fail(fleetAddress, 'requires a travelling Fleet; Idle and other non-travel states have no arrival to settle');
31
+ const now = readClock(required(clockRaw, CLOCK_ADDRESS));
32
+ if (journey.kind === 'subwarp'
33
+ ? journey.duration < 0n
34
+ : journey.arrival < journey.departure)
35
+ fail(fleetAddress, 'found invalid journey timing');
36
+ if (now < journey.departure ||
37
+ (journey.kind === 'subwarp'
38
+ ? (now - journey.departure) * (1n << 56n) < journey.duration
39
+ : now < journey.arrival))
40
+ fail(fleetAddress, 'cannot stop an unfinished journey that has not yet arrived; wait for chain time to reach the destination or choose the separate intentional early-stop action');
41
+ const character = await findCharacterPda(fleet.profile, game);
42
+ // Only the authorized route consumes Character XP. Legacy funders must receive
43
+ // an authorization remedy even when the XP budget is missing.
44
+ const xp = await resolveXpRuntime(ctx, {
45
+ game,
46
+ ...(options.authorization ? { character } : {}),
47
+ });
48
+ if (xp.gameVersion === 2 && journey.kind === 'warp')
49
+ fail(fleetAddress, 'for Game version 2 warp is unsupported; wait for a separately supported warp settlement route');
50
+ if (xp.gameVersion === 2 && !options.authorization)
51
+ fail(fleetAddress, 'for this XP-era subwarp requires explicit Profile authorization; supply { authorization } rather than a funder');
52
+ if (xp.gameVersion === 0 && options.authorization)
53
+ fail(fleetAddress, 'on legacy Game version 0 requires an explicit funder; use the legacy { funder } route');
54
+ const regionTracker = options.authorization
55
+ ? await deriveRegionTrackerAddress(game)
56
+ : undefined;
57
+ const addresses = [
58
+ character,
59
+ ...(options.authorization ? [fleet.profile, regionTracker] : []),
60
+ ];
61
+ const accounts = await readContextRawAccounts(ctx, addresses);
62
+ const characterData = characterAccountDefinition.decode(required(accounts[0], character));
63
+ if (characterData.game !== game ||
64
+ characterData.playerProfile !== fleet.profile)
65
+ fail(character, 'requires the canonical Character for this Game and owning Profile');
66
+ let intent;
67
+ if (options.authorization) {
68
+ const authorization = options.authorization;
69
+ if (authorization.certificate !== undefined ||
70
+ authorization.profile !== fleet.profile ||
71
+ fleet.subProfile !== SAGE_SCOPE)
72
+ fail(fleetAddress, 'supports only the owning Profile and its direct key, without a certificate or delegated sub-Profile');
73
+ if (!Number.isInteger(authorization.keyIndex) ||
74
+ authorization.keyIndex < 0 ||
75
+ authorization.keyIndex > 65535)
76
+ fail(fleet.profile, 'requires a valid direct Profile key index');
77
+ const profile = profileAccountDefinition.decode(required(accounts[1], fleet.profile));
78
+ const key = profile.keys[authorization.keyIndex];
79
+ if (!key || key.address !== authorization.authority)
80
+ fail(fleet.profile, 'requires the current direct key index for the selected authority');
81
+ if (key.expiresAtRaw >= 0n && key.expiresAtRaw < now)
82
+ fail(fleet.profile, 'cannot use an expired Profile key; renew it or select an unexpired direct key');
83
+ if (!((key.scope === PROFILE_SCOPE && (key.permissionsRaw & 1n) !== 0n) ||
84
+ (key.scope === SAGE_SCOPE && (key.permissionsRaw & (1n << 10n)) !== 0n)))
85
+ fail(fleet.profile, 'requires direct Profile AUTH or SAGE moveFleet permission; select an appropriately scoped key');
86
+ const tracker = regionTrackerAccountDefinition.decode(required(accounts[2], regionTracker));
87
+ if (tracker.game !== game)
88
+ fail(regionTracker, 'requires the canonical RegionTracker bound to this Game');
89
+ intent = {
90
+ fleet: fleetAddress,
91
+ game,
92
+ profile: fleet.profile,
93
+ journey,
94
+ route: 'authorized',
95
+ authorization: {
96
+ profile: authorization.profile,
97
+ authority: authorization.authority,
98
+ keyIndex: authorization.keyIndex,
99
+ },
100
+ };
101
+ }
102
+ else
103
+ intent = {
104
+ fleet: fleetAddress,
105
+ game,
106
+ profile: fleet.profile,
107
+ journey,
108
+ route: 'legacy',
109
+ funder: options.funder,
110
+ };
111
+ return { intent, character, regionTracker, xp };
112
+ }
113
+ /** Recheck only the selected journey/authority, permitting unrelated Fleet and XP changes. */
114
+ export async function validateFleetArrivalIntent(ctx, intent) {
115
+ const current = await resolveFleetArrival(ctx, intent.fleet, intent.route === 'authorized'
116
+ ? { authorization: intent.authorization }
117
+ : { funder: intent.funder });
118
+ const a = intent.journey, b = current.intent.journey;
119
+ if (current.intent.game !== intent.game ||
120
+ current.intent.profile !== intent.profile ||
121
+ a.kind !== b.kind ||
122
+ a.departure !== b.departure ||
123
+ a.from.x !== b.from.x ||
124
+ a.from.y !== b.from.y ||
125
+ a.to.x !== b.to.x ||
126
+ a.to.y !== b.to.y ||
127
+ (a.kind === 'subwarp' &&
128
+ b.kind === 'subwarp' &&
129
+ a.duration !== b.duration) ||
130
+ (a.kind === 'warp' && b.kind === 'warp' && a.arrival !== b.arrival))
131
+ fail(intent.fleet, 'journey or ownership changed after planning');
132
+ return current;
133
+ }
134
+ //# sourceMappingURL=fleet-arrival.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-arrival.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-arrival.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAEA,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,CA6BhE;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":"AAGA,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,CA8BhE;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 { validateArrivalInstructions } from '../internal/planning/arrival-guards.js';
1
2
  import { validateRuntimeInstructions } from '../internal/planning/runtime-guards.js';
2
3
  import { validateMiningStopInstructions } from '../internal/planning/mining-stop.js';
3
4
  import { appendTransactionMessageInstructions, compileTransaction, createTransactionMessage, getTransactionSize, getTransactionSizeLimit, isAddress, isSolanaError, setTransactionMessageComputeUnitLimit, setTransactionMessageComputeUnitPrice, setTransactionMessageFeePayer, setTransactionMessageLifetimeUsingBlockhash, SOLANA_ERROR__TRANSACTION__TOO_MANY_ACCOUNT_ADDRESSES, SOLANA_ERROR__TRANSACTION__TOO_MANY_ACCOUNTS_IN_INSTRUCTION, SOLANA_ERROR__TRANSACTION__TOO_MANY_INSTRUCTIONS, SOLANA_ERROR__TRANSACTION__TOO_MANY_SIGNER_ADDRESSES, } from '@solana/kit';
@@ -89,6 +90,7 @@ export function validatePlan(plan) {
89
90
  const validatedPlan = plan;
90
91
  validatePlanComposition(validatedPlan.steps);
91
92
  validateRuntimeInstructions(validatedPlan.steps, validatedPlan.preconditions);
93
+ validateArrivalInstructions(validatedPlan.steps, validatedPlan.preconditions);
92
94
  validateMiningStopInstructions(validatedPlan.steps, validatedPlan.preconditions);
93
95
  for (let index = 0; index < validatedPlan.steps.length; index += 1) {
94
96
  if (validatedPlan.steps[index]?.instruction.programAddress ===
@@ -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":"AAkCA,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;AAikCD;;;;;;;;;;;;;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,CAiD9B"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"AAoCA,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;AAgnCD;;;;;;;;;;;;;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,CAiD9B"}
@@ -1,3 +1,4 @@
1
+ import { validateFleetArrivalIntent } from '../internal/planning/fleet-arrival.js';
1
2
  import { isRuntimeGuard, revalidateRuntimeGuards, } from '../internal/planning/runtime-guards.js';
2
3
  import { isFactionTradeGuard } from '../internal/planning/faction-trade-guards.js';
3
4
  import { resolveShipImportFunding, validateShipImportFunding, } from '../internal/planning/ship-import-funding.js';
@@ -303,8 +304,37 @@ function matchesTokenAccount(account, expected) {
303
304
  decoder.decode(account.data.subarray(32, 64)) === expected.owner);
304
305
  }
305
306
  async function checkPreconditions(context, allPreconditions, commitment) {
306
- await revalidateRuntimeGuards(context, allPreconditions.filter(isRuntimeGuard));
307
- const preconditions = allPreconditions.filter((guard) => !isRuntimeGuard(guard));
307
+ const checkedXp = new Set();
308
+ for (const guard of allPreconditions) {
309
+ if (guard.kind !== 'fleet-arrival')
310
+ continue;
311
+ try {
312
+ const current = await validateFleetArrivalIntent(context, guard.intent);
313
+ for (const xp of allPreconditions) {
314
+ if (xp.kind !== 'xp-runtime' ||
315
+ xp.intent.game !== current.xp.intent.game ||
316
+ xp.intent.character !== current.xp.intent.character ||
317
+ xp.intent.structure !== current.xp.intent.structure)
318
+ continue;
319
+ if (xp.intent.gameVersion !== current.xp.gameVersion ||
320
+ ['xpBudget', 'xpBudgetConfig', 'xpAccrual'].some((key) => xp.accounts[key] !== current.xp.accounts[key]))
321
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Arrival XP runtime changed. Refresh the Fleet and recreate the Plan.');
322
+ checkedXp.add(xp);
323
+ }
324
+ if (current.character !== guard.character ||
325
+ current.regionTracker !== guard.regionTracker)
326
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'Arrival account links changed. Refresh the Fleet and recreate the Plan.');
327
+ }
328
+ catch (error) {
329
+ throw new ActionPreconditionFailedError(guard, undefined, error instanceof SageSdkError
330
+ ? error.message
331
+ : 'Arrival prerequisites could not be validated. Refresh the Fleet and recreate the Plan.');
332
+ }
333
+ }
334
+ await revalidateRuntimeGuards(context, allPreconditions
335
+ .filter(isRuntimeGuard)
336
+ .filter((guard) => !checkedXp.has(guard)));
337
+ const preconditions = allPreconditions.filter((guard) => !isRuntimeGuard(guard) && guard.kind !== 'fleet-arrival');
308
338
  const fleetCreationAccounts = new Map();
309
339
  const fleetAssemblyAccounts = new Map();
310
340
  const importFundingAccounts = new Map();