crafting/actions
Interfaces
Section titled “Interfaces”PlanCancelCraftingProcessOptions
Section titled “PlanCancelCraftingProcessOptions”Defined in: packages/sage/src/crafting/actions/index.ts:140
Inputs for cancelling one Crafting Process.
Cancellation has no timing rule, so it takes no timestamp. Final inventory capacity, permissions, input and crew returns, and account closure remain chain-authoritative.
Example
Section titled “Example”declare const authorization: PlanAuthorization;const options: PlanCancelCraftingProcessOptions = { authorization };Properties
Section titled “Properties”authorization
Section titled “authorization”readonly authorization: PlanAuthorization;Defined in: packages/sage/src/crafting/actions/index.ts:141
PlanCompleteCraftingProcessOptions
Section titled “PlanCompleteCraftingProcessOptions”Defined in: packages/sage/src/crafting/actions/index.ts:123
Inputs for completing one Crafting Process.
atUnixSeconds is an explicit non-negative Unix timestamp used only for the
deterministic local lifecycle check. Final permission, freshness, output
capacity, XP, and account closure remain chain-authoritative.
Example
Section titled “Example”declare const authorization: PlanAuthorization;const options: PlanCompleteCraftingProcessOptions = { authorization, atUnixSeconds: 1_700_004_000n,};Properties
Section titled “Properties”atUnixSeconds
Section titled “atUnixSeconds”readonly atUnixSeconds: bigint;Defined in: packages/sage/src/crafting/actions/index.ts:125
authorization
Section titled “authorization”readonly authorization: PlanAuthorization;Defined in: packages/sage/src/crafting/actions/index.ts:124
PlanStartCraftingProcessOptions
Section titled “PlanStartCraftingProcessOptions”Defined in: packages/sage/src/crafting/actions/index.ts:98
Inputs for starting one exact Crafting Process.
quantity is a positive raw unsigned-u64 integer. numCrew is the exact
crew count requested by the instruction, at least 1 and within unsigned u32.
With a Crafting Hab the job reserves numCrew scaled by the Hab’s
crew-count modifier, rounded up, from the Starbase Player’s available crew. craftingProcess is
the address of a new caller-created signer; planning retains only its address.
Supply craftingHab when the Recipe requires or should use Hab production.
Recipe inputs are always taken from the Starbase Player’s Starbase cargo,
with or without a Hab; the Hab contributes production and modifiers only.
Example
Section titled “Example”declare const authorization: PlanAuthorization;declare const craftingProcess: Address;const options: PlanStartCraftingProcessOptions = { authorization, craftingProcess, quantity: 2n, numCrew: 6,};Properties
Section titled “Properties”authorization
Section titled “authorization”readonly authorization: PlanAuthorization;Defined in: packages/sage/src/crafting/actions/index.ts:99
craftingHab?
Section titled “craftingHab?”readonly optional craftingHab?: CraftingHabSnapshot;Defined in: packages/sage/src/crafting/actions/index.ts:103
craftingProcess
Section titled “craftingProcess”readonly craftingProcess: Address;Defined in: packages/sage/src/crafting/actions/index.ts:100
numCrew
Section titled “numCrew”readonly numCrew: number;Defined in: packages/sage/src/crafting/actions/index.ts:102
quantity
Section titled “quantity”readonly quantity: bigint;Defined in: packages/sage/src/crafting/actions/index.ts:101
Functions
Section titled “Functions”planCancelCraftingProcess()
Section titled “planCancelCraftingProcess()”function planCancelCraftingProcess( ctx, process,input): Promise<Plan>;Defined in: packages/sage/src/crafting/actions/index.ts:1125
Plans cancellation of one Crafting Process without signing or writes.
The planner resolves and validates the Process account graph, requires Profile ownership, and rejects a Process whose Starbase was destroyed. Cancellation has no timing rule: a finished Process can still be cancelled, which returns its inputs and crew instead of producing outputs. A Process Hab is passed by its stored address in whatever state it is in, or even if it no longer exists. Final inventory capacity, permissions, returned inputs and crew, and account closure remain chain-authoritative.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
ctx | SageContext |
process | CraftingProcessSnapshot |
input | PlanCancelCraftingProcessOptions |
Returns
Section titled “Returns”Promise<Plan>
Example
Section titled “Example”declare const ctx: SageContext;declare const process: CraftingProcessSnapshot;declare const options: PlanCancelCraftingProcessOptions;const plan = await planCancelCraftingProcess(ctx, process, options);console.log(plan.describe());planCompleteCraftingProcess()
Section titled “planCompleteCraftingProcess()”function planCompleteCraftingProcess( ctx, process,input): Promise<Plan>;Defined in: packages/sage/src/crafting/actions/index.ts:1022
Plans completion of one Crafting Process without signing, simulation, or writes.
The planner resolves and validates the Process account graph, requires Profile ownership, and checks the translated lifecycle at the caller-provided Unix timestamp. Output capacity, permissions, XP, closure, and final execution freshness remain chain-authoritative.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
ctx | SageContext |
process | CraftingProcessSnapshot |
input | PlanCompleteCraftingProcessOptions |
Returns
Section titled “Returns”Promise<Plan>
Example
Section titled “Example”declare const ctx: SageContext;declare const process: CraftingProcessSnapshot;declare const options: PlanCompleteCraftingProcessOptions;const plan = await planCompleteCraftingProcess(ctx, process, options);console.log(plan.describe());planStartCraftingProcess()
Section titled “planStartCraftingProcess()”function planStartCraftingProcess( ctx, recipe, player,input): Promise<Plan>;Defined in: packages/sage/src/crafting/actions/index.ts:541
Plans one Crafting Process start without signing, simulation, or writes.
The planner validates the loaded Recipe and Starbase Player, optional Hab, known ingredient balances, the crew the job reserves, the Hab job limit including the Character’s research concurrency bonus, and exact whole-account state. The ATLAS fee and any crew-roster bonuses remain chain-authoritative. It returns one inert Plan whose two required signer roles are bound only during execution.
Each start consumes exactly one Recipe use, whatever its quantity, and needs
the Recipe’s fresh usageCountRaw to be below usageLimitRaw. A stored
limit of 0n is therefore never usable. Cancelling or destroying a process
returns its use. See docs/evidence/crafting-zero-usage-limit.md.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
ctx | SageContext |
recipe | RecipeSnapshot |
player | StarbasePlayerSnapshot |
input | PlanStartCraftingProcessOptions |
Returns
Section titled “Returns”Promise<Plan>
Example
Section titled “Example”declare const ctx: SageContext;declare const recipe: RecipeSnapshot;declare const player: StarbasePlayerSnapshot;declare const options: PlanStartCraftingProcessOptions;const plan = await planStartCraftingProcess(ctx, recipe, player, options);console.log(plan.describe());References
Section titled “References”PlanAuthorization
Section titled “PlanAuthorization”Re-exports PlanAuthorization