@aephia/atlas-kit 0.6.0-next.105 → 0.6.0-next.107

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.
@@ -3,6 +3,7 @@ import { validateStarbaseSystem } from '../../internal/planning/starbase-system.
3
3
  import { SYSTEM_PROGRAM } from '../../internal/system-program.js';
4
4
  import { getAddressEncoder, isAddress } from '@solana/kit';
5
5
  import { resolveActionRuntime } from '../../internal/planning/action-runtime.js';
6
+ import { requireProfileStarbasePlayer } from '../../internal/planning/starbase-player-owner.js';
6
7
  import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
7
8
  import { readContextRawAccounts } from '../../client/reconciliation.js';
8
9
  import { GAME_DISCRIMINATOR, SAGE_PROGRAM_ADDRESS, } from '../../internal/c4/runtime-bindings.js';
@@ -12,7 +13,7 @@ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '.
12
13
  import { deriveInternalCraftingProcessState } from '../../internal/crafting-process-state.js';
13
14
  import { requireGameAddress } from '../../internal/game-context.js';
14
15
  import { adaptCancelCraftingProcessInstruction, adaptStartCraftingProcessInstruction, adaptCompleteCraftingProcessInstruction, readPlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
15
- import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
16
+ import { starSystemAccountDefinition } from '../../internal/c4/world.js';
16
17
  import { createPlan, } from '../../planning/index.js';
17
18
  import { hashRecipeConfiguration, validateRecipeUsage, } from '../../internal/planning/recipe-state.js';
18
19
  const U64_MAX = (1n << 64n) - 1n;
@@ -65,16 +66,8 @@ function validateStartOptions(value) {
65
66
  : { craftingHab: options.craftingHab }),
66
67
  };
67
68
  }
68
- function validateCompleteOptions(value) {
69
- const options = readRecord(value, 'options');
70
- assertKeys(options, 'options', ['authorization', 'atUnixSeconds']);
71
- const authorization = readPlanAuthorization(options.authorization);
72
- if (typeof options.atUnixSeconds !== 'bigint' || options.atUnixSeconds < 0n) {
73
- invalid('atUnixSeconds', options.atUnixSeconds, 'a non-negative bigint Unix timestamp', 'Set atUnixSeconds to the explicit current Unix timestamp before retrying.');
74
- }
75
- return { atUnixSeconds: options.atUnixSeconds, authorization };
76
- }
77
- function validateCancelOptions(value) {
69
+ /** Validates completion or cancellation options, which share one shape. */
70
+ function validateProcessOptions(value) {
78
71
  const options = readRecord(value, 'options');
79
72
  assertKeys(options, 'options', ['authorization', 'atUnixSeconds']);
80
73
  const authorization = readPlanAuthorization(options.authorization);
@@ -140,8 +133,7 @@ async function recipePrecondition(account, describes, requiredUses = 0n) {
140
133
  describes,
141
134
  };
142
135
  }
143
- async function resolveAccounts(ctx, recipe, player, options, game) {
144
- const character = await findCharacterPda(options.authorization.profile, game);
136
+ async function resolveAccounts(ctx, recipe, player, options, game, character) {
145
137
  const currencyCache = options.craftingHab === undefined
146
138
  ? undefined
147
139
  : await deriveCurrencyCache(game).then(([address]) => address);
@@ -255,13 +247,7 @@ export async function planStartCraftingProcess(ctx, recipe, player, input) {
255
247
  if (recipe.game.address !== game || canonicalRecipe !== recipe.address) {
256
248
  fail(`Recipe ${recipe.address} does not match the configured Game ${game} or its canonical recipe-id PDA. Refresh the Recipe through this context and retry.`, recipe.address);
257
249
  }
258
- if (player.playerProfile.address !== options.authorization.profile) {
259
- fail(`Starbase Player ${player.address} does not belong to authorization Profile ${options.authorization.profile}. Refresh the Starbase Player for that Profile and retry.`, player.address);
260
- }
261
- const canonicalPlayer = await deriveStarbasePlayerAddress(player.system.address, player.character.address);
262
- if (canonicalPlayer !== player.address) {
263
- fail(`Starbase Player ${player.address} is not canonical for its Character and System. Refresh the Starbase Player through this context and retry.`, player.address);
264
- }
250
+ const character = await requireProfileStarbasePlayer(player, options.authorization.profile, game);
265
251
  if (recipe.status !== 'active') {
266
252
  fail(`Recipe ${recipe.name} is ${recipe.status}, so it cannot start a Crafting Process. Choose an active Recipe, refresh it, and retry.`, recipe.address);
267
253
  }
@@ -295,7 +281,7 @@ export async function planStartCraftingProcess(ctx, recipe, player, input) {
295
281
  else {
296
282
  validateKnownInputs(recipe, player.cargo.items, options.quantity, 'Starbase Player', player.address);
297
283
  }
298
- const resolved = await resolveAccounts(ctx, recipe, player, options, game);
284
+ const resolved = await resolveAccounts(ctx, recipe, player, options, game, character);
299
285
  const [runtimeSystem] = await readContextRawAccounts(ctx, [
300
286
  player.system.address,
301
287
  ]);
@@ -386,35 +372,40 @@ function validateGameRead(account, game) {
386
372
  fail(`Game ${account.address} does not match the configured address, owner, or pinned account layout. Refresh the configured Game and retry.`, account.address);
387
373
  }
388
374
  }
389
- async function resolveCompleteAccounts(ctx, process, options, game) {
390
- const character = await findCharacterPda(options.authorization.profile, game);
391
- const currencyCache = await deriveCurrencyCache(game).then(([address]) => address);
375
+ /** Reads and validates the Crafting Process graph shared by completion and
376
+ * cancellation, with `extra` in the same read: the unchanged Process, its
377
+ * canonical System and Starbase, the unchanged Recipe and its Hab policy, the
378
+ * Profile's canonical Starbase Player and Character, and the Process Hab,
379
+ * active and owned, when present. `action` completes the remedies, and
380
+ * `staleStarbaseGuidance` adds advice for a replaced Starbase. */
381
+ async function resolveProcessAccounts(ctx, process, profile, game, action, extra, staleStarbaseGuidance) {
382
+ const character = await findCharacterPda(profile, game);
392
383
  const habAddress = processHabAddress(process);
393
- const addresses = [
384
+ const [processCandidate, recipeCandidate, playerCandidate, systemCandidate, characterCandidate, extraAccount, habCandidate,] = await readContextRawAccounts(ctx, [
394
385
  process.address,
395
386
  process.recipe.address,
396
387
  process.starbasePlayer.address,
397
388
  process.system.address,
398
- ...(habAddress === undefined ? [] : [habAddress]),
399
389
  character,
400
- currencyCache,
401
- ];
402
- const reads = await readContextRawAccounts(ctx, addresses);
403
- const byAddress = new Map(addresses.map((address, index) => [address, reads[index]]));
404
- const processAccount = requireAccount(byAddress.get(process.address), process.address, `Crafting Process ${process.address} is missing, so it may already be cancelled or closed. Refresh the Crafting Process and retry only if it still exists.`);
405
- const recipeAccount = requireAccount(byAddress.get(process.recipe.address), process.recipe.address, `Recipe ${process.recipe.address} is missing. Refresh the Crafting Process and its Recipe before retrying completion.`);
406
- const playerAccount = requireAccount(byAddress.get(process.starbasePlayer.address), process.starbasePlayer.address, `Starbase Player ${process.starbasePlayer.address} is missing. Refresh the Crafting Process and Starbase Player before retrying completion.`);
407
- const systemAccount = requireAccount(byAddress.get(process.system.address), process.system.address, `Star System ${process.system.address} is missing. Refresh the Crafting Process and Star System before retrying completion.`);
408
- const characterAccount = requireAccount(byAddress.get(character), character, `Canonical Character ${character} is missing for Profile ${options.authorization.profile}. Create or repair the Character in the configured Game before retrying completion.`);
409
- const currencyCacheAccount = requireAccount(byAddress.get(currencyCache), currencyCache, `Canonical CurrencyCache ${currencyCache} is missing for the configured Game. Refresh the Game currency configuration before retrying completion.`);
410
- const habAccount = habAddress === undefined
411
- ? undefined
412
- : requireAccount(byAddress.get(habAddress), habAddress, `Crafting Hab ${habAddress} is missing. Refresh the Crafting Process and Hab before retrying completion.`);
413
- const processData = craftingProcessAccountDefinition.decode(processAccount);
390
+ extra,
391
+ ...(habAddress === undefined ? [] : [habAddress]),
392
+ ]);
393
+ const processAccount = requireAccount(processCandidate, process.address, `Crafting Process ${process.address} is missing, so it may already be completed, cancelled, or closed. Refresh the Crafting Process and retry only if it still exists.`);
414
394
  if (processAccount.address !== process.address ||
415
- !sameProcessSnapshot(process, processData)) {
395
+ !sameProcessSnapshot(process, craftingProcessAccountDefinition.decode(processAccount))) {
416
396
  fail(`Crafting Process ${process.address} changed or no longer matches its relationships, timing, crew, quantity, fee, or inputs. Refresh the Crafting Process and retry.`, process.address);
417
397
  }
398
+ await validateStarbaseSystem(requireAccount(systemCandidate, process.system.address, `Star System ${process.system.address} is missing. Refresh the Crafting Process and Star System before retrying ${action}.`), {
399
+ address: process.system.address,
400
+ game,
401
+ starbaseSequenceId: process.starbaseSequenceId,
402
+ }, staleStarbaseGuidance);
403
+ const recipeAccount = requireAccount(recipeCandidate, process.recipe.address, `Recipe ${process.recipe.address} is missing. Refresh the Crafting Process and its Recipe before retrying ${action}.`);
404
+ const playerAccount = requireAccount(playerCandidate, process.starbasePlayer.address, `Starbase Player ${process.starbasePlayer.address} is missing. Refresh the Crafting Process and Starbase Player before retrying ${action}.`);
405
+ const characterAccount = requireAccount(characterCandidate, character, `Canonical Character ${character} is missing for Profile ${profile}. Create or repair the Character in the configured Game before retrying ${action}.`);
406
+ const habAccount = habAddress === undefined
407
+ ? undefined
408
+ : requireAccount(habCandidate, habAddress, `Crafting Hab ${habAddress} is missing. Refresh the Crafting Process and Hab before retrying ${action}.`);
418
409
  const recipeData = recipeAccountDefinition.decode(recipeAccount);
419
410
  const canonicalRecipe = await deriveRecipeAddress(game, recipeData.id);
420
411
  if (recipeAccount.address !== process.recipe.address ||
@@ -427,59 +418,69 @@ async function resolveCompleteAccounts(ctx, process, options, game) {
427
418
  recipeData.usageLimitRaw !== process.recipe.usageLimitRaw ||
428
419
  !sameBalances(process.recipe.ingredients, recipeData.inputs) ||
429
420
  !sameBalances(process.recipe.outputs, recipeData.outputs)) {
430
- fail(`Recipe ${process.recipe.address} changed or does not match the configured Game, canonical recipe-id PDA, status, Hab policy, limits, ingredients, or outputs. Refresh the Crafting Process and Recipe before retrying completion.`, process.recipe.address);
421
+ fail(`Recipe ${process.recipe.address} changed or does not match the configured Game, canonical recipe-id PDA, status, Hab policy, limits, ingredients, or outputs. Refresh the Crafting Process and Recipe before retrying ${action}.`, process.recipe.address);
431
422
  }
432
423
  if (recipeData.habRequired && habAddress === undefined) {
433
- fail(`Recipe ${recipeData.name} requires a Crafting Hab, but Crafting Process ${process.address} omits one. Refresh or repair the Process relationship before retrying completion.`, process.address);
424
+ fail(`Recipe ${recipeData.name} requires a Crafting Hab, but Crafting Process ${process.address} omits one. Refresh or repair the Process relationship before retrying ${action}.`, process.address);
434
425
  }
435
426
  const playerData = starbasePlayerAccountDefinition.decode(playerAccount);
436
427
  const canonicalPlayer = await deriveStarbasePlayerAddress(process.system.address, character);
437
428
  if (playerAccount.address !== process.starbasePlayer.address ||
438
429
  canonicalPlayer !== process.starbasePlayer.address ||
439
- playerData.playerProfile !== options.authorization.profile ||
430
+ playerData.playerProfile !== profile ||
440
431
  playerData.character !== character ||
441
432
  playerData.system !== process.system.address) {
442
- fail(`Starbase Player ${process.starbasePlayer.address} does not match the authorization Profile, canonical Character, or Crafting Process System. Refresh the Crafting Process and Starbase Player before retrying completion.`, process.starbasePlayer.address);
443
- }
444
- const systemData = starSystemAccountDefinition.decode(systemAccount);
445
- const canonicalSystem = await deriveStarSystemAddress(game, systemData.systemId);
446
- if (systemAccount.address !== process.system.address ||
447
- canonicalSystem !== process.system.address ||
448
- systemData.game !== game ||
449
- systemData.sequenceId !== process.starbaseSequenceId ||
450
- systemData.starbase === undefined) {
451
- fail(`Star System ${process.system.address} does not match the configured Game, canonical system-id PDA, active Starbase, or Crafting Process Starbase sequence. Refresh the Crafting Process and Star System before retrying completion.`, process.system.address);
433
+ fail(`Starbase Player ${process.starbasePlayer.address} does not match the authorization Profile, canonical Character, or Crafting Process System. Refresh the Crafting Process and Starbase Player before retrying ${action}.`, process.starbasePlayer.address);
452
434
  }
453
435
  if (habAccount !== undefined) {
454
436
  const habData = craftingHabAccountDefinition.decode(habAccount);
455
437
  if (habAccount.address !== habAddress ||
456
438
  habData.game !== game ||
457
- habData.ownerProfile !== options.authorization.profile ||
439
+ habData.ownerProfile !== profile ||
458
440
  habData.system !== process.system.address ||
459
441
  habData.systemSequenceId !== process.starbaseSequenceId ||
460
442
  habData.state.kind !== 'active') {
461
- fail(`Crafting Hab ${habAddress} is not active or does not match the configured Game, authorization Profile, Crafting Process System, or Starbase sequence. Refresh the Crafting Process and Hab before retrying completion.`, habAccount.address);
443
+ fail(`Crafting Hab ${habAddress} is not active or does not match the configured Game, authorization Profile, Crafting Process System, or Starbase sequence. Refresh the Crafting Process and Hab before retrying ${action}.`, habAccount.address);
462
444
  }
463
445
  }
464
446
  const characterData = characterAccountDefinition.decode(characterAccount);
465
447
  if (characterAccount.address !== character ||
466
- characterData.playerProfile !== options.authorization.profile ||
448
+ characterData.playerProfile !== profile ||
467
449
  characterData.game !== game) {
468
- fail(`The canonical Character does not match Profile ${options.authorization.profile} and the configured Game ${game}. Refresh or repair the Character relationship before retrying completion.`, characterAccount.address);
450
+ fail(`The canonical Character does not match Profile ${profile} and the configured Game ${game}. Refresh or repair the Character relationship before retrying ${action}.`, characterAccount.address);
469
451
  }
470
- await validateCurrencyCache(currencyCacheAccount, game, 'crafting');
471
452
  return {
472
453
  character,
473
454
  characterAccount,
474
- currencyCache,
475
- currencyCacheAccount,
476
- ...(habAccount === undefined ? {} : { habAccount }),
455
+ extraAccount,
456
+ habAccount,
477
457
  playerAccount,
478
458
  processAccount,
479
459
  recipeAccount,
480
- systemAccount,
481
460
  };
482
461
  }
462
+ /** The validated Process graph preconditions, with `systemGuard` after the
463
+ * Starbase Player when the action guards the Starbase separately. */
464
+ function processPreconditions(process, resolved, profile, systemGuard = []) {
465
+ return [
466
+ precondition(resolved.processAccount, `Crafting Process ${process.address} retains its validated relationships, timing, crew, quantity, fee, and inputs.`),
467
+ recipePrecondition(resolved.recipeAccount, `Recipe ${process.recipe.name} retains its validated Game, Hab policy, ingredients, and outputs.`),
468
+ precondition(resolved.playerAccount, `Starbase Player ${process.starbasePlayer.address} retains its Profile, Character, and System relationships.`),
469
+ ...systemGuard.map((guard) => Promise.resolve(guard)),
470
+ ...(resolved.habAccount === undefined
471
+ ? []
472
+ : [
473
+ precondition(resolved.habAccount, `Crafting Hab ${resolved.habAccount.address} remains active in the validated Game, Profile, System, and Starbase sequence.`),
474
+ ]),
475
+ precondition(resolved.characterAccount, `The canonical Character remains assigned to Profile ${profile} in the configured Game.`),
476
+ ];
477
+ }
478
+ /** Requires the authorization Profile to own the Process. */
479
+ function requireProcessOwner(process, profile) {
480
+ if (process.profile.address !== profile) {
481
+ fail(`Crafting Process ${process.address} does not belong to authorization Profile ${profile}. Use the owning Profile, refresh the Process, and retry.`, process.address);
482
+ }
483
+ }
483
484
  /** Plans completion of one Crafting Process without signing, simulation, or writes.
484
485
  *
485
486
  * The planner resolves and validates the Process account graph, requires Profile
@@ -497,11 +498,10 @@ async function resolveCompleteAccounts(ctx, process, options, game) {
497
498
  * ```
498
499
  */
499
500
  export async function planCompleteCraftingProcess(ctx, process, input) {
500
- const options = validateCompleteOptions(input);
501
+ const options = validateProcessOptions(input);
501
502
  const game = requireGameAddress(ctx);
502
- if (process.profile.address !== options.authorization.profile) {
503
- fail(`Crafting Process ${process.address} does not belong to authorization Profile ${options.authorization.profile}. Use the owning Profile, refresh the Process, and retry.`, process.address);
504
- }
503
+ const { profile } = options.authorization;
504
+ requireProcessOwner(process, profile);
505
505
  const state = deriveInternalCraftingProcessState(process, options.atUnixSeconds);
506
506
  if (state.kind !== 'complete') {
507
507
  const timing = state.kind === 'scheduled'
@@ -509,13 +509,14 @@ export async function planCompleteCraftingProcess(ctx, process, input) {
509
509
  : `in-progress and not complete with ${String(state.remainingSeconds)} seconds remaining`;
510
510
  fail(`Crafting Process ${process.address} is ${timing} at Unix timestamp ${String(options.atUnixSeconds)}. Wait until it is complete, provide a current timestamp, and retry.`, process.address);
511
511
  }
512
- const resolved = await resolveCompleteAccounts(ctx, process, options, game);
512
+ const [currencyCache] = await deriveCurrencyCache(game);
513
+ const resolved = await resolveProcessAccounts(ctx, process, profile, game, 'completion', currencyCache);
514
+ await validateCurrencyCache(requireAccount(resolved.extraAccount, currencyCache, `Canonical CurrencyCache ${currencyCache} is missing for the configured Game. Refresh the Game currency configuration before retrying completion.`), game, 'crafting');
513
515
  const runtime = await resolveActionRuntime(ctx, {
514
516
  mode: 'crafting-complete',
515
517
  game,
516
518
  system: process.system.address,
517
- starbaseSeqId: starSystemAccountDefinition.decode(resolved.systemAccount)
518
- .sequenceId,
519
+ starbaseSeqId: process.starbaseSequenceId,
519
520
  character: resolved.character,
520
521
  process: process.address,
521
522
  ...(resolved.habAccount === undefined
@@ -523,20 +524,12 @@ export async function planCompleteCraftingProcess(ctx, process, input) {
523
524
  : { structure: resolved.habAccount.address }),
524
525
  });
525
526
  const description = `Complete crafting ${String(process.quantityRaw)} units of ${process.recipe.name} at Starbase Player ${process.starbasePlayer.address}, returning ${String(process.numCrew)} crew and producing the Recipe outputs.`;
526
- const preconditions = [
527
- precondition(resolved.processAccount, `Crafting Process ${process.address} retains its validated relationships, timing, crew, quantity, fee, and inputs.`),
528
- recipePrecondition(resolved.recipeAccount, `Recipe ${process.recipe.name} retains its validated Game, Hab policy, ingredients, and outputs.`),
529
- precondition(resolved.playerAccount, `Starbase Player ${process.starbasePlayer.address} retains its Profile, Character, and System relationships.`),
530
- ...(resolved.habAccount === undefined
531
- ? []
532
- : [
533
- precondition(resolved.habAccount, `Crafting Hab ${resolved.habAccount.address} remains active in the validated Game, Profile, System, and Starbase sequence.`),
534
- ]),
535
- precondition(resolved.characterAccount, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game.`),
536
- ];
537
527
  return createPlan({
538
528
  kind: 'crafting.complete-process',
539
- preconditions: [...runtime.guards, ...(await Promise.all(preconditions))],
529
+ preconditions: [
530
+ ...runtime.guards,
531
+ ...(await Promise.all(processPreconditions(process, resolved, profile))),
532
+ ],
540
533
  steps: [
541
534
  {
542
535
  describes: `${description} ${runtime.description}`,
@@ -545,7 +538,7 @@ export async function planCompleteCraftingProcess(ctx, process, input) {
545
538
  authorization: options.authorization,
546
539
  character: resolved.character,
547
540
  craftingProcess: process.address,
548
- currencyCache: resolved.currencyCache,
541
+ currencyCache,
549
542
  game,
550
543
  recipe: process.recipe.address,
551
544
  starbasePlayer: process.starbasePlayer.address,
@@ -560,93 +553,6 @@ export async function planCompleteCraftingProcess(ctx, process, input) {
560
553
  summary: `${description} ${runtime.description}`,
561
554
  });
562
555
  }
563
- async function resolveCancelAccounts(ctx, process, options, game) {
564
- const character = await findCharacterPda(options.authorization.profile, game);
565
- const habAddress = processHabAddress(process);
566
- const addresses = [
567
- process.address,
568
- process.recipe.address,
569
- process.starbasePlayer.address,
570
- process.system.address,
571
- ...(habAddress === undefined ? [] : [habAddress]),
572
- character,
573
- game,
574
- ];
575
- const reads = await readContextRawAccounts(ctx, addresses);
576
- const byAddress = new Map(addresses.map((address, index) => [address, reads[index]]));
577
- const processAccount = requireAccount(byAddress.get(process.address), process.address, `Crafting Process ${process.address} is missing, so it may already be completed, cancelled, or closed. Refresh the Crafting Process and retry only if it still exists.`);
578
- const systemAccount = requireAccount(byAddress.get(process.system.address), process.system.address, `Star System ${process.system.address} is missing. Refresh the Crafting Process and Star System before retrying cancellation.`);
579
- const processData = craftingProcessAccountDefinition.decode(processAccount);
580
- if (processAccount.address !== process.address ||
581
- !sameProcessSnapshot(process, processData)) {
582
- fail(`Crafting Process ${process.address} changed or no longer matches its relationships, timing, crew, quantity, fee, or inputs. Refresh the Crafting Process and retry.`, process.address);
583
- }
584
- await validateStarbaseSystem(systemAccount, {
585
- address: process.system.address,
586
- game,
587
- starbaseSequenceId: process.starbaseSequenceId,
588
- }, 'For a Crafting Process belonging to the destroyed Starbase, use destroyCraftingProcess; do not cancel the Process.');
589
- const recipeAccount = requireAccount(byAddress.get(process.recipe.address), process.recipe.address, `Recipe ${process.recipe.address} is missing. Refresh the Crafting Process and its Recipe before retrying cancellation.`);
590
- const playerAccount = requireAccount(byAddress.get(process.starbasePlayer.address), process.starbasePlayer.address, `Starbase Player ${process.starbasePlayer.address} is missing. Refresh the Crafting Process and Starbase Player before retrying cancellation.`);
591
- const characterAccount = requireAccount(byAddress.get(character), character, `Canonical Character ${character} is missing for Profile ${options.authorization.profile}. Create or repair the Character in the configured Game before retrying cancellation.`);
592
- const gameAccount = requireAccount(byAddress.get(game), game, `Configured Game ${game} is missing. Refresh the configured Game before retrying cancellation.`);
593
- const habAccount = habAddress === undefined
594
- ? undefined
595
- : requireAccount(byAddress.get(habAddress), habAddress, `Crafting Hab ${habAddress} is missing. Refresh the Crafting Process and Hab before retrying cancellation.`);
596
- const recipeData = recipeAccountDefinition.decode(recipeAccount);
597
- const canonicalRecipe = await deriveRecipeAddress(game, recipeData.id);
598
- if (recipeAccount.address !== process.recipe.address ||
599
- canonicalRecipe !== process.recipe.address ||
600
- recipeData.game !== game ||
601
- recipeData.id !== process.recipe.id ||
602
- recipeData.name !== process.recipe.name ||
603
- recipeData.status !== process.recipe.status ||
604
- recipeData.habRequired !== process.recipe.habRequired ||
605
- recipeData.usageLimitRaw !== process.recipe.usageLimitRaw ||
606
- !sameBalances(process.recipe.ingredients, recipeData.inputs) ||
607
- !sameBalances(process.recipe.outputs, recipeData.outputs)) {
608
- fail(`Recipe ${process.recipe.address} changed or does not match the configured Game, canonical recipe-id PDA, status, Hab policy, limits, ingredients, or outputs. Refresh the Crafting Process and Recipe before retrying cancellation.`, process.recipe.address);
609
- }
610
- if (recipeData.habRequired && habAddress === undefined) {
611
- fail(`Recipe ${recipeData.name} requires a Crafting Hab, but Crafting Process ${process.address} omits one. Refresh or repair the Process relationship before retrying cancellation.`, process.address);
612
- }
613
- const playerData = starbasePlayerAccountDefinition.decode(playerAccount);
614
- const canonicalPlayer = await deriveStarbasePlayerAddress(process.system.address, character);
615
- if (playerAccount.address !== process.starbasePlayer.address ||
616
- canonicalPlayer !== process.starbasePlayer.address ||
617
- playerData.playerProfile !== options.authorization.profile ||
618
- playerData.character !== character ||
619
- playerData.system !== process.system.address) {
620
- fail(`Starbase Player ${process.starbasePlayer.address} does not match the authorization Profile, canonical Character, or Crafting Process System. Refresh the Crafting Process and Starbase Player before retrying cancellation.`, process.starbasePlayer.address);
621
- }
622
- if (habAccount !== undefined) {
623
- const habData = craftingHabAccountDefinition.decode(habAccount);
624
- if (habAccount.address !== habAddress ||
625
- habData.game !== game ||
626
- habData.ownerProfile !== options.authorization.profile ||
627
- habData.system !== process.system.address ||
628
- habData.systemSequenceId !== process.starbaseSequenceId ||
629
- habData.state.kind !== 'active') {
630
- fail(`Crafting Hab ${habAddress} is not active or does not match the configured Game, authorization Profile, Crafting Process System, or Starbase sequence. Refresh the Crafting Process and Hab before retrying cancellation.`, habAccount.address);
631
- }
632
- }
633
- const characterData = characterAccountDefinition.decode(characterAccount);
634
- if (characterAccount.address !== character ||
635
- characterData.playerProfile !== options.authorization.profile ||
636
- characterData.game !== game) {
637
- fail(`The canonical Character does not match Profile ${options.authorization.profile} and the configured Game ${game}. Refresh or repair the Character relationship before retrying cancellation.`, characterAccount.address);
638
- }
639
- validateGameRead(gameAccount, game);
640
- return {
641
- character,
642
- characterAccount,
643
- gameAccount,
644
- ...(habAccount === undefined ? {} : { habAccount }),
645
- playerAccount,
646
- processAccount,
647
- recipeAccount,
648
- };
649
- }
650
556
  /** Plans cancellation of one unfinished Crafting Process without signing or writes.
651
557
  *
652
558
  * The planner resolves and validates the Process account graph, requires Profile
@@ -664,39 +570,32 @@ async function resolveCancelAccounts(ctx, process, options, game) {
664
570
  * ```
665
571
  */
666
572
  export async function planCancelCraftingProcess(ctx, process, input) {
667
- const options = validateCancelOptions(input);
573
+ const options = validateProcessOptions(input);
668
574
  const game = requireGameAddress(ctx);
669
- if (process.profile.address !== options.authorization.profile) {
670
- fail(`Crafting Process ${process.address} does not belong to authorization Profile ${options.authorization.profile}. Use the owning Profile, refresh the Process, and retry.`, process.address);
671
- }
575
+ const { profile } = options.authorization;
576
+ requireProcessOwner(process, profile);
672
577
  const state = deriveInternalCraftingProcessState(process, options.atUnixSeconds);
673
578
  if (state.kind === 'complete') {
674
579
  fail(`Crafting Process ${process.address} is complete at Unix timestamp ${String(options.atUnixSeconds)} and cannot be cancelled. Use planCompleteCraftingProcess with a refreshed snapshot instead.`, process.address);
675
580
  }
676
- const resolved = await resolveCancelAccounts(ctx, process, options, game);
581
+ const resolved = await resolveProcessAccounts(ctx, process, profile, game, 'cancellation', game, 'For a Crafting Process belonging to the destroyed Starbase, use destroyCraftingProcess; do not cancel the Process.');
582
+ const gameAccount = requireAccount(resolved.extraAccount, game, `Configured Game ${game} is missing. Refresh the configured Game before retrying cancellation.`);
583
+ validateGameRead(gameAccount, game);
677
584
  const description = `Cancel crafting ${String(process.quantityRaw)} units of ${process.recipe.name} at Starbase Player ${process.starbasePlayer.address}, returning all inputs and ${String(process.numCrew)} crew and closing the Crafting Process.`;
678
- const preconditions = [
679
- precondition(resolved.processAccount, `Crafting Process ${process.address} retains its validated relationships, timing, crew, quantity, fee, and inputs.`),
680
- recipePrecondition(resolved.recipeAccount, `Recipe ${process.recipe.name} retains its validated Game, Hab policy, ingredients, and outputs.`),
681
- precondition(resolved.playerAccount, `Starbase Player ${process.starbasePlayer.address} retains its Profile, Character, and System relationships.`),
682
- Promise.resolve({
683
- kind: 'starbase-system',
684
- address: process.system.address,
685
- game,
686
- starbaseSequenceId: process.starbaseSequenceId,
687
- describes: `Star System ${process.system.address} retains its canonical Game identity, active Starbase and sequence ${process.starbaseSequenceId}; unrelated shared activity may change.`,
688
- }),
689
- ...(resolved.habAccount === undefined
690
- ? []
691
- : [
692
- precondition(resolved.habAccount, `Crafting Hab ${resolved.habAccount.address} remains active in the validated Game, Profile, System, and Starbase sequence.`),
693
- ]),
694
- precondition(resolved.characterAccount, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game.`),
695
- precondition(resolved.gameAccount, `Game ${game} retains its pinned owner and account layout.`),
696
- ];
697
585
  return createPlan({
698
586
  kind: 'crafting.cancel-process',
699
- preconditions: await Promise.all(preconditions),
587
+ preconditions: await Promise.all([
588
+ ...processPreconditions(process, resolved, profile, [
589
+ {
590
+ kind: 'starbase-system',
591
+ address: process.system.address,
592
+ game,
593
+ starbaseSequenceId: process.starbaseSequenceId,
594
+ describes: `Star System ${process.system.address} retains its canonical Game identity, active Starbase and sequence ${process.starbaseSequenceId}; unrelated shared activity may change.`,
595
+ },
596
+ ]),
597
+ precondition(gameAccount, `Game ${game} retains its pinned owner and account layout.`),
598
+ ]),
700
599
  steps: [
701
600
  {
702
601
  describes: description,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crafting/actions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crafting/actions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Address } from '@solana/kit';
2
+ /** The identity fields of a loaded Starbase Player snapshot. */
3
+ interface StarbasePlayerIdentity {
4
+ readonly address: Address;
5
+ readonly playerProfile: {
6
+ readonly address: Address;
7
+ };
8
+ readonly character: {
9
+ readonly address: Address;
10
+ };
11
+ readonly system: {
12
+ readonly address: Address;
13
+ };
14
+ }
15
+ /** Requires a loaded Starbase Player to belong to the authorization Profile,
16
+ * reference that Profile's canonical Character in the configured Game, and sit
17
+ * at its canonical address; returns the Character. Fresh-state checks remain
18
+ * the caller's. */
19
+ export declare function requireProfileStarbasePlayer(player: StarbasePlayerIdentity, profile: Address, game: Address): Promise<Address>;
20
+ export {};
21
+ //# sourceMappingURL=starbase-player-owner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starbase-player-owner.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/starbase-player-owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,gEAAgE;AAChE,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAChD;AAMD;;;mBAGmB;AACnB,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAwBlB"}