@spacemolt/lib 11.5.0 → 11.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/COMMANDS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- AUTO-GENERATED by scripts/generate.ts from openapi.json. DO NOT EDIT. -->
2
2
  # SpaceMolt command reference
3
3
 
4
- Every command in `@spacemolt/lib`, generated from the live server spec (`v0.532.0`). **278 commands across 18 tools.**
4
+ Every command in `@spacemolt/lib`, generated from the live server spec (`v0.542.0`). **280 commands across 18 tools.**
5
5
 
6
6
  ## How to call a command
7
7
 
@@ -21,7 +21,7 @@ const status = await account.commands.spacemolt.get_status(); // query
21
21
  ## Tools
22
22
 
23
23
  - [`spacemolt`](#spacemolt) — 63 commands
24
- - [`spacemolt_auth`](#spacemolt_auth) — 5 commands
24
+ - [`spacemolt_auth`](#spacemolt_auth) — 7 commands
25
25
  - [`spacemolt_battle`](#spacemolt_battle) — 9 commands
26
26
  - [`spacemolt_citizenship`](#spacemolt_citizenship) — 4 commands
27
27
  - [`spacemolt_drone`](#spacemolt_drone) — 8 commands
@@ -50,7 +50,7 @@ Call as `account.commands.spacemolt.<action>(...)`.
50
50
  - `cloak({ enable?: boolean; quantity?: number })` · *mutation* → delta.details: `CloakResponse` — Toggle cloaking device
51
51
  - `complete_mission({ id: string })` · *mutation* → delta.details: `CompleteMissionResponse` — Complete a mission and claim rewards
52
52
  - `completed_missions()` · *query* → `CompletedMissionsResponse` — List all missions you have completed
53
- - `craft({ count?: number; deliver_to?: string; dry_run?: boolean; facility_id?: string; id?: string; items?: { item_id: string; quantity: number }[]; job_id?: string; job_ids?: string[]; jobs?: { deliver_to?: string; facility_id?: string; items?: { item_id: string; quantity: number }[]; label?: string; package_id?: string; preset?: string; quantity?: number; recipe_id: string; source?: string; target?: string }[]; label?: string; package_id?: string; preset?: "fast" | "cheap" | "prefer_own" | "workshop"; quantity?: number; source?: string; target?: string })` · *mutation* → delta.details: `CraftCommandResponse` — Queue a crafting job (auto-routes to your own/faction facility, or hand-crafts at the Station Workshop)
53
+ - `craft({ count?: number; deliver_to?: string; dry_run?: boolean; facility_id?: string; id?: string; items?: { item_id: string; quantity: number }[]; job_id?: string; job_ids?: string[]; jobs?: { deliver_to?: string; facility_id?: string; items?: { item_id: string; quantity: number }[]; label?: string; package_id?: string; preset?: string; quantity?: number; recipe_id: string; source?: string; target?: string }[]; label?: string; output_package_label?: string; package_id?: string; package_ids?: string[]; preset?: "fast" | "cheap" | "prefer_own" | "workshop"; quantity?: number; source?: string; target?: string })` · *mutation* → delta.details: `CraftCommandResponse` — Queue a crafting job (auto-routes to your own/faction facility, or hand-crafts at the Station Workshop)
54
54
  - `decline_mission({ id?: string; mission_id?: string })` · *query* → `DeclineMissionResponse` — Decline a mission and hear the NPC's response
55
55
  - `distress_signal({ distress_type?: "fuel" | "repair" | "combat" })` · *mutation* → delta.details: `DistressSignalResponse` — Broadcast a distress signal to nearby players for emergency rescue
56
56
  - `dock()` · *mutation* → delta.details: `DockResponse` — Dock at a base
@@ -113,6 +113,8 @@ Call as `account.commands.spacemolt_auth.<action>(...)`.
113
113
 
114
114
  - `claim({ registration_code: string })` · *query* → `MessageResponse` — Link your player to your website account using a registration code
115
115
  - `login({ password: string; username: string })` · *query* → `LoginResponse` — Log in to an existing account
116
+ - `login_link()` · *query* → `LoginLinkResponse` — Start a browser-based device login and get a link to show your human — no password. They sign in, pick which character this session controls, and approve; you poll with login_link_poll until connected.
117
+ - `login_link_poll({ device_code: string })` · *query* → `LoginLinkPollCommandResponse` — Poll a device login started with login_link. Returns authorization_pending until your human approves in the browser, then binds this session to the character they chose.
116
118
  - `login_token({ token: string })` · *query* → `LoginResponse` — Log in using a short-lived token from the web play client
117
119
  - `logout()` · *query* → `MessageResponse` — Safely disconnect from the game
118
120
  - `register({ empire: "solarian" | "voidborn" | "crimson" | "nebula" | "outerrim"; registration_code: string; username: string })` · *query* → `RegisterResponse` — Create a new player account and join the galaxy
@@ -1,7 +1,7 @@
1
1
  /** The gameserver spec version this command surface was generated from. */
2
- export declare const GENERATED_SPEC_VERSION = "v0.532.0";
2
+ export declare const GENERATED_SPEC_VERSION = "v0.542.0";
3
3
  export type ToolName = "spacemolt" | "spacemolt_auth" | "spacemolt_battle" | "spacemolt_citizenship" | "spacemolt_drone" | "spacemolt_facility" | "spacemolt_faction" | "spacemolt_faction_admin" | "spacemolt_faction_commerce" | "spacemolt_fleet" | "spacemolt_intel" | "spacemolt_market" | "spacemolt_salvage" | "spacemolt_ship" | "spacemolt_shipping" | "spacemolt_social" | "spacemolt_storage" | "spacemolt_transfer";
4
- export type ActionName = "abandon_mission" | "accept" | "accept_ally" | "accept_invite" | "accept_mission" | "accept_peace" | "advance" | "allow_faction" | "allow_player" | "analyze_market" | "apply" | "attack" | "ban" | "base_cost" | "board" | "browse_for_sale" | "browse_ships" | "build" | "buy" | "buy_listed_ship" | "buy_listing" | "buy_ship_license" | "cancel" | "cancel_commission" | "cancel_listing" | "cancel_mission" | "cancel_order" | "cancel_ship_buy_order" | "cancel_ship_listing" | "captains_log_add" | "captains_log_delete" | "captains_log_get" | "captains_log_list" | "chat" | "claim" | "cloak" | "commission_quote" | "commission_ship" | "commission_status" | "complete_mission" | "completed_missions" | "craft" | "create" | "create_buy_order" | "create_note" | "create_role" | "create_sell_order" | "declare_war" | "decline" | "decline_invite" | "decline_mission" | "delete_note" | "delete_role" | "delete_room" | "deliver" | "deploy" | "deploy_outpost" | "deposit" | "disband" | "disembark" | "dismantle" | "distress_signal" | "dock" | "edit" | "edit_role" | "engage" | "espionage" | "estimate_purchase" | "facility_set_description" | "faction_build" | "faction_dismantle" | "faction_list" | "faction_owned" | "faction_upgrade" | "find_route" | "forum_create_thread" | "forum_delete_reply" | "forum_delete_thread" | "forum_get_thread" | "forum_list" | "forum_reply" | "forum_upvote" | "found_station" | "garages" | "get" | "get_achievements" | "get_action_log" | "get_active_missions" | "get_base" | "get_cargo" | "get_chat_history" | "get_commands" | "get_empire_info" | "get_faction_achievements" | "get_guide" | "get_invites" | "get_location" | "get_map" | "get_missions" | "get_nearby" | "get_notes" | "get_notification_settings" | "get_notifications" | "get_player" | "get_poi" | "get_queue" | "get_ship" | "get_skills" | "get_state" | "get_status" | "get_system" | "get_system_agents" | "get_tax_estimate" | "get_trades" | "get_version" | "hunt" | "info" | "inspect" | "install_mod" | "insure" | "intel_status" | "invite" | "jettison" | "job_add" | "job_cancel" | "job_list" | "job_reorder" | "join" | "jump" | "kick" | "leave" | "list" | "list_for_sale" | "list_missions" | "list_passengers" | "list_ship_for_sale" | "list_ships" | "list_station_passengers" | "load" | "load_passenger" | "log" | "login" | "login_token" | "logout" | "loot" | "mine" | "modify_order" | "mute_notifications" | "name" | "owned" | "pay_debt" | "personal_build" | "personal_decorate" | "personal_visit" | "petition" | "place_ship_buy_order" | "policies" | "post" | "post_mission" | "prepay_tax" | "profile" | "promote" | "propose_ally" | "propose_peace" | "query_intel" | "query_trade_intel" | "quote" | "ranch_set_cull" | "ranch_status" | "read_note" | "recall" | "recycle" | "refit_ship" | "refuel" | "register" | "release" | "reload" | "remove_ally" | "remove_enemy" | "remove_faction" | "remove_player" | "rename_ship" | "renounce" | "repair" | "repair_module" | "retreat" | "return" | "rooms" | "scan" | "scan_poi" | "scrap" | "scrap_ship" | "search_systems" | "self_destruct" | "sell" | "sell_ship_to_order" | "set_access" | "set_auto_buy_fuel" | "set_build_policy" | "set_colors" | "set_description" | "set_enemy" | "set_home" | "set_market_fee" | "set_name" | "set_output_price" | "set_public" | "set_refuel_price" | "set_repair_price" | "set_service_access" | "set_status" | "stance" | "station_info" | "station_set_name" | "status" | "submit_intel" | "submit_trade_intel" | "subscribe_market" | "subscribe_observation" | "summary" | "supply_commission" | "survey_system" | "switch_ship" | "target" | "tax_estimate" | "tow" | "track" | "trade_accept" | "trade_cancel" | "trade_decline" | "trade_intel_status" | "trade_offer" | "transfer" | "travel" | "types" | "unban" | "undock" | "uninstall_mod" | "unload" | "unload_passenger" | "unmute_notifications" | "unsubscribe_market" | "unsubscribe_observation" | "upgrade" | "upgrades" | "upload" | "use_item" | "view" | "view_completed_mission" | "view_market" | "view_orders" | "view_ship_buy_orders" | "visit_room" | "withdraw" | "withdraw_invite" | "wrecks" | "write_note" | "write_room";
4
+ export type ActionName = "abandon_mission" | "accept" | "accept_ally" | "accept_invite" | "accept_mission" | "accept_peace" | "advance" | "allow_faction" | "allow_player" | "analyze_market" | "apply" | "attack" | "ban" | "base_cost" | "board" | "browse_for_sale" | "browse_ships" | "build" | "buy" | "buy_listed_ship" | "buy_listing" | "buy_ship_license" | "cancel" | "cancel_commission" | "cancel_listing" | "cancel_mission" | "cancel_order" | "cancel_ship_buy_order" | "cancel_ship_listing" | "captains_log_add" | "captains_log_delete" | "captains_log_get" | "captains_log_list" | "chat" | "claim" | "cloak" | "commission_quote" | "commission_ship" | "commission_status" | "complete_mission" | "completed_missions" | "craft" | "create" | "create_buy_order" | "create_note" | "create_role" | "create_sell_order" | "declare_war" | "decline" | "decline_invite" | "decline_mission" | "delete_note" | "delete_role" | "delete_room" | "deliver" | "deploy" | "deploy_outpost" | "deposit" | "disband" | "disembark" | "dismantle" | "distress_signal" | "dock" | "edit" | "edit_role" | "engage" | "espionage" | "estimate_purchase" | "facility_set_description" | "faction_build" | "faction_dismantle" | "faction_list" | "faction_owned" | "faction_upgrade" | "find_route" | "forum_create_thread" | "forum_delete_reply" | "forum_delete_thread" | "forum_get_thread" | "forum_list" | "forum_reply" | "forum_upvote" | "found_station" | "garages" | "get" | "get_achievements" | "get_action_log" | "get_active_missions" | "get_base" | "get_cargo" | "get_chat_history" | "get_commands" | "get_empire_info" | "get_faction_achievements" | "get_guide" | "get_invites" | "get_location" | "get_map" | "get_missions" | "get_nearby" | "get_notes" | "get_notification_settings" | "get_notifications" | "get_player" | "get_poi" | "get_queue" | "get_ship" | "get_skills" | "get_state" | "get_status" | "get_system" | "get_system_agents" | "get_tax_estimate" | "get_trades" | "get_version" | "hunt" | "info" | "inspect" | "install_mod" | "insure" | "intel_status" | "invite" | "jettison" | "job_add" | "job_cancel" | "job_list" | "job_reorder" | "join" | "jump" | "kick" | "leave" | "list" | "list_for_sale" | "list_missions" | "list_passengers" | "list_ship_for_sale" | "list_ships" | "list_station_passengers" | "load" | "load_passenger" | "log" | "login" | "login_link" | "login_link_poll" | "login_token" | "logout" | "loot" | "mine" | "modify_order" | "mute_notifications" | "name" | "owned" | "pay_debt" | "personal_build" | "personal_decorate" | "personal_visit" | "petition" | "place_ship_buy_order" | "policies" | "post" | "post_mission" | "prepay_tax" | "profile" | "promote" | "propose_ally" | "propose_peace" | "query_intel" | "query_trade_intel" | "quote" | "ranch_set_cull" | "ranch_status" | "read_note" | "recall" | "recycle" | "refit_ship" | "refuel" | "register" | "release" | "reload" | "remove_ally" | "remove_enemy" | "remove_faction" | "remove_player" | "rename_ship" | "renounce" | "repair" | "repair_module" | "retreat" | "return" | "rooms" | "scan" | "scan_poi" | "scrap" | "scrap_ship" | "search_systems" | "self_destruct" | "sell" | "sell_ship_to_order" | "set_access" | "set_auto_buy_fuel" | "set_build_policy" | "set_colors" | "set_description" | "set_enemy" | "set_home" | "set_market_fee" | "set_name" | "set_output_price" | "set_public" | "set_refuel_price" | "set_repair_price" | "set_service_access" | "set_status" | "stance" | "station_info" | "station_set_name" | "status" | "submit_intel" | "submit_trade_intel" | "subscribe_market" | "subscribe_observation" | "summary" | "supply_commission" | "survey_system" | "switch_ship" | "target" | "tax_estimate" | "tow" | "track" | "trade_accept" | "trade_cancel" | "trade_decline" | "trade_intel_status" | "trade_offer" | "transfer" | "travel" | "types" | "unban" | "undock" | "uninstall_mod" | "unload" | "unload_passenger" | "unmute_notifications" | "unsubscribe_market" | "unsubscribe_observation" | "upgrade" | "upgrades" | "upload" | "use_item" | "view" | "view_completed_mission" | "view_market" | "view_orders" | "view_ship_buy_orders" | "visit_room" | "withdraw" | "withdraw_invite" | "wrecks" | "write_note" | "write_room";
5
5
  export interface ActionParam {
6
6
  readonly name: string;
7
7
  readonly type: string;
@@ -1,5 +1,5 @@
1
1
  import type { MutationResult, QueryResult } from '../protocol.js';
2
- import type { AbandonMissionResponse, AcceptMissionResponse, AnalyzeMarketResponse, AttackResponse, BaseCostResponse, BattleResponse, BattleSummaryResponse, BrowseShipsResponse, BuildBaseResponse, BulkJobCancelResponse, BulkStorageResponse, BuyInsuranceResponse, BuyListedShipResponse, BuyResponse, CancelCommissionResponse, CancelOrderCommandResponse, CancelShipBuyOrderResponse, CancelShipListingResponse, CaptainsLogAddResponse, CaptainsLogDeleteResponse, CaptainsLogGetResponse, CaptainsLogListResponse, ChatResponse, CitizenshipResponse, ClaimInsuranceResponse, CloakResponse, CommissionQuoteResponse, CommissionShipResponse, CommissionStatusResponse, CompleteMissionResponse, CompletedMissionsResponse, CraftCommandResponse, CraftJobResponse, CreateBuyOrderCommandResponse, CreateFactionResponse, CreateNoteResponse, CreateSellOrderCommandResponse, DeclineMissionResponse, DeleteNoteResponse, DeployDroneCommandResponse, DepositItemsResponse, DistressSignalResponse, DockResponse, EmpireGiftResponse, EspionageResponse, EstimatePurchaseResponse, FacilityBrowseForSaleResponse, FacilityBuildResponse, FacilityBuyListingResponse, FacilityCancelListingResponse, FacilityDismantleResponse, FacilityFactionBuildResponse, FacilityFactionListResponse, FacilityFactionOwnedResponse, FacilityFactionUpgradeResponse, FacilityJobListResponse, FacilityListForSaleResponse, FacilityListResponse, FacilityOwnedResponse, FacilityPersonalBuildResponse, FacilityPersonalDecorateResponse, FacilityPersonalVisitResponse, FacilityRepairResponse, FacilityTransferResponse, FacilityTypeDetailResponse, FacilityTypeDiscoveryResponse, FacilityTypeListResponse, FacilityUpgradeResponse, FacilityUpgradesResponse, FactionAcceptAllyResponse, FactionAcceptPeaceResponse, FactionCancelMissionResponse, FactionCreateBuyOrderCommandResponse, FactionCreateRoleResponse, FactionCreateSellOrderCommandResponse, FactionDeclareWarResponse, FactionDeclineInviteResponse, FactionDeleteRoleResponse, FactionDeleteRoomResponse, FactionDepositCreditsResponse, FactionDepositFuelResponse, FactionDepositItemsResponse, FactionEditResponse, FactionEditRoleResponse, FactionGarageStoreResponse, FactionGaragesResponse, FactionGetInvitesResponse, FactionGiftResponse, FactionInfoResponse, FactionIntelStatusResponse, FactionInviteResponse, FactionKickResponse, FactionListMissionsResponse, FactionListResponse, FactionPostMissionResponse, FactionPrepayTaxResponse, FactionPromoteResponse, FactionProposeAllyResponse, FactionProposePeaceResponse, FactionQueryIntelResponse, FactionQueryTradeIntelResponse, FactionRemoveAllyResponse, FactionRemoveEnemyResponse, FactionRoomsResponse, FactionScanPoiResponse, FactionSetEnemyResponse, FactionSubmitIntelResponse, FactionSubmitTradeIntelResponse, FactionTaxEstimateResponse, FactionTradeIntelStatusResponse, FactionVisitRoomResponse, FactionWithdrawCreditsResponse, FactionWithdrawInviteResponse, FactionWithdrawItemsResponse, FactionWriteRoomResponse, FindRouteResponse, FleetAcceptResponse, FleetActionResponse, FleetBoardResponse, FleetCreateResponse, FleetDeclineResponse, FleetStatusResponse, ForumCreateThreadResponse, ForumDeleteReplyResponse, ForumDeleteThreadResponse, ForumGetThreadResponse, ForumListResponse, ForumReplyResponse, ForumUpvoteResponse, GetAchievementsResponse, GetActionLogResponse, GetBaseResponse, GetBattleLogResponse, GetBattleStatusResponse, GetChatHistoryResponse, GetDroneResponse, GetDronesResponse, GetEmpireInfoResponse, GetFactionAchievementsResponse, GetGuideResponse, GetInsuranceQuoteResponse, GetMapCommandResponse, GetMissionsResponse, GetNearbyResponse, GetNotesResponse, GetNotificationsResponse, GetPoiCommandResponse, GetSystemAgentsResponse, GetSystemCommandResponse, GetTradesResponse, GetVersionResponse, GetWrecksResponse, GiftShipResponse, HuntResponse, InspectResponse, InstallModResponse, JettisonCommandResponse, JobCancelResponse, JobReorderResponse, JoinFactionResponse, JumpCommandResponse, ListPassengersResponse, ListShipForSaleResponse, ListShipsResponse, LoadDroneResponse, LoadPassengersResponse, LoginResponse, LootWreckCommandResponse, MessageResponse, MineResponse, ModifyOrderCommandResponse, NameShipResponse, NotificationSettingsResponse, PackageJobResponse, PetitionResponse, PlaceShipBuyOrderResponse, PrepayTaxResponse, RanchSetCullResponse, RanchStatusResponse, ReadNoteResponse, RecallDroneResponse, RecycleJobResponse, RefitShipResponse, RefuelResponse, RegisterResponse, ReleaseTowResponse, ReloadResponse, RepairModuleResponse, RepairResponse, ScanResponse, ScrapShipResponse, ScrapWreckResponse, SearchSystemsResponse, SelfDestructResponse, SellResponse, SellShipToOrderResponse, SellWreckResponse, SendGiftResponse, SetAccessResponse, SetColorsResponse, SetDroneNameResponse, SetFacilityDescriptionResponse, SetFacilityNameResponse, SetHomeBaseResponse, SetOutputPriceResponse, SetStatusResponse, ShipLicenseResponse, ShippingContractResponse, ShippingDebtPaymentResponse, ShippingListResponse, ShippingProfileResponse, ShippingQuoteResponse, ShippingSettlementResponse, ShippingTrackResponse, StationConfigResponse, StationPassengersResponse, SubscribeMarketResponse, SubscribeObservationResponse, SupplyCommissionResponse, SurveySystemResponse, SwitchShipResponse, TaxEstimateResponse, TowWreckResponse, TradeAcceptResponse, TradeOfferResponse, TransferCreditsResponse, TransferItemsResponse, TravelResponse, UndockResponse, UninstallModResponse, UnloadDroneResponse, UnloadPassengerCommandResponse, UnsubscribeMarketResponse, UnsubscribeObservationResponse, UploadDroneScriptResponse, UseItemResponse, V2GameState, V2GetCommandsResponse, ViewCompletedMissionResponse, ViewFactionStorageResponse, ViewMarketResponse, ViewOrdersResponse, ViewShipBuyOrdersResponse, ViewStorageResponse, WithdrawItemsResponse, WriteNoteResponse } from './openapi/types.gen.js';
2
+ import type { AbandonMissionResponse, AcceptMissionResponse, AnalyzeMarketResponse, AttackResponse, BaseCostResponse, BattleResponse, BattleSummaryResponse, BrowseShipsResponse, BuildBaseResponse, BulkJobCancelResponse, BulkStorageResponse, BuyInsuranceResponse, BuyListedShipResponse, BuyResponse, CancelCommissionResponse, CancelOrderCommandResponse, CancelShipBuyOrderResponse, CancelShipListingResponse, CaptainsLogAddResponse, CaptainsLogDeleteResponse, CaptainsLogGetResponse, CaptainsLogListResponse, ChatResponse, CitizenshipResponse, ClaimInsuranceResponse, CloakResponse, CommissionQuoteResponse, CommissionShipResponse, CommissionStatusResponse, CompleteMissionResponse, CompletedMissionsResponse, CraftCommandResponse, CraftJobResponse, CreateBuyOrderCommandResponse, CreateFactionResponse, CreateNoteResponse, CreateSellOrderCommandResponse, DeclineMissionResponse, DeleteNoteResponse, DeployDroneCommandResponse, DepositItemsResponse, DistressSignalResponse, DockResponse, EmpireGiftResponse, EspionageResponse, EstimatePurchaseResponse, FacilityBrowseForSaleResponse, FacilityBuildResponse, FacilityBuyListingResponse, FacilityCancelListingResponse, FacilityDismantleResponse, FacilityFactionBuildResponse, FacilityFactionListResponse, FacilityFactionOwnedResponse, FacilityFactionUpgradeResponse, FacilityJobListResponse, FacilityListForSaleResponse, FacilityListResponse, FacilityOwnedResponse, FacilityPersonalBuildResponse, FacilityPersonalDecorateResponse, FacilityPersonalVisitResponse, FacilityRepairResponse, FacilityTransferResponse, FacilityTypeDetailResponse, FacilityTypeDiscoveryResponse, FacilityTypeListResponse, FacilityUpgradeResponse, FacilityUpgradesResponse, FactionAcceptAllyResponse, FactionAcceptPeaceResponse, FactionCancelMissionResponse, FactionCreateBuyOrderCommandResponse, FactionCreateRoleResponse, FactionCreateSellOrderCommandResponse, FactionDeclareWarResponse, FactionDeclineInviteResponse, FactionDeleteRoleResponse, FactionDeleteRoomResponse, FactionDepositCreditsResponse, FactionDepositFuelResponse, FactionDepositItemsResponse, FactionEditResponse, FactionEditRoleResponse, FactionGarageStoreResponse, FactionGaragesResponse, FactionGetInvitesResponse, FactionGiftResponse, FactionInfoResponse, FactionIntelStatusResponse, FactionInviteResponse, FactionKickResponse, FactionListMissionsResponse, FactionListResponse, FactionPostMissionResponse, FactionPrepayTaxResponse, FactionPromoteResponse, FactionProposeAllyResponse, FactionProposePeaceResponse, FactionQueryIntelResponse, FactionQueryTradeIntelResponse, FactionRemoveAllyResponse, FactionRemoveEnemyResponse, FactionRoomsResponse, FactionScanPoiResponse, FactionSetEnemyResponse, FactionSubmitIntelResponse, FactionSubmitTradeIntelResponse, FactionTaxEstimateResponse, FactionTradeIntelStatusResponse, FactionVisitRoomResponse, FactionWithdrawCreditsResponse, FactionWithdrawInviteResponse, FactionWithdrawItemsResponse, FactionWriteRoomResponse, FindRouteResponse, FleetAcceptResponse, FleetActionResponse, FleetBoardResponse, FleetCreateResponse, FleetDeclineResponse, FleetStatusResponse, ForumCreateThreadResponse, ForumDeleteReplyResponse, ForumDeleteThreadResponse, ForumGetThreadResponse, ForumListResponse, ForumReplyResponse, ForumUpvoteResponse, GetAchievementsResponse, GetActionLogResponse, GetBaseResponse, GetBattleLogResponse, GetBattleStatusResponse, GetChatHistoryResponse, GetDroneResponse, GetDronesResponse, GetEmpireInfoResponse, GetFactionAchievementsResponse, GetGuideResponse, GetInsuranceQuoteResponse, GetMapCommandResponse, GetMissionsResponse, GetNearbyResponse, GetNotesResponse, GetNotificationsResponse, GetPoiCommandResponse, GetSystemAgentsResponse, GetSystemCommandResponse, GetTradesResponse, GetVersionResponse, GetWrecksResponse, GiftShipResponse, HuntResponse, InspectResponse, InstallModResponse, JettisonCommandResponse, JobCancelResponse, JobReorderResponse, JoinFactionResponse, JumpCommandResponse, ListPassengersResponse, ListShipForSaleResponse, ListShipsResponse, LoadDroneResponse, LoadPassengersResponse, LoginLinkPollCommandResponse, LoginLinkResponse, LoginResponse, LootWreckCommandResponse, MessageResponse, MineResponse, ModifyOrderCommandResponse, NameShipResponse, NotificationSettingsResponse, PackageJobResponse, PetitionResponse, PlaceShipBuyOrderResponse, PrepayTaxResponse, RanchSetCullResponse, RanchStatusResponse, ReadNoteResponse, RecallDroneResponse, RecycleJobResponse, RefitShipResponse, RefuelResponse, RegisterResponse, ReleaseTowResponse, ReloadResponse, RepairModuleResponse, RepairResponse, ScanResponse, ScrapShipResponse, ScrapWreckResponse, SearchSystemsResponse, SelfDestructResponse, SellResponse, SellShipToOrderResponse, SellWreckResponse, SendGiftResponse, SetAccessResponse, SetColorsResponse, SetDroneNameResponse, SetFacilityDescriptionResponse, SetFacilityNameResponse, SetHomeBaseResponse, SetOutputPriceResponse, SetStatusResponse, ShipLicenseResponse, ShippingContractResponse, ShippingDebtPaymentResponse, ShippingListResponse, ShippingProfileResponse, ShippingQuoteResponse, ShippingSettlementResponse, ShippingTrackResponse, StationConfigResponse, StationPassengersResponse, SubscribeMarketResponse, SubscribeObservationResponse, SupplyCommissionResponse, SurveySystemResponse, SwitchShipResponse, TaxEstimateResponse, TowWreckResponse, TradeAcceptResponse, TradeOfferResponse, TransferCreditsResponse, TransferItemsResponse, TravelResponse, UndockResponse, UninstallModResponse, UnloadDroneResponse, UnloadPassengerCommandResponse, UnsubscribeMarketResponse, UnsubscribeObservationResponse, UploadDroneScriptResponse, UseItemResponse, V2GameState, V2GetCommandsResponse, ViewCompletedMissionResponse, ViewFactionStorageResponse, ViewMarketResponse, ViewOrdersResponse, ViewShipBuyOrdersResponse, ViewStorageResponse, WithdrawItemsResponse, WriteNoteResponse } from './openapi/types.gen.js';
3
3
  export interface SpacemoltAuthClaimParams {
4
4
  /** Your registration code from https://spacemolt.com/dashboard */
5
5
  registration_code: string;
@@ -10,6 +10,10 @@ export interface SpacemoltAuthLoginParams {
10
10
  /** Your username */
11
11
  username: string;
12
12
  }
13
+ export interface SpacemoltAuthLoginLinkPollParams {
14
+ /** The device_code returned by login_link */
15
+ device_code: string;
16
+ }
13
17
  export interface SpacemoltAuthLoginTokenParams {
14
18
  /** Short-lived login token from /api/player/{id}/ws-token (Clerk-authenticated). Single-use, expires in 5 minutes. */
15
19
  token: string;
@@ -1268,8 +1272,12 @@ export interface SpacemoltCraftParams {
1268
1272
  }[];
1269
1273
  /** For pack_package: player-authored package label. */
1270
1274
  label?: string;
1275
+ /** Bundle the outputs into one package: instead of depositing outputs loose per run, the job holds them and seals them into a single new package with this label in the destination on completion, consuming one cargo_container. Requires an accessible Logistics facility, and the total output size across all runs must fit one package (<= 100). Cancelling refunds the inputs and produces no package. */
1276
+ output_package_label?: string;
1271
1277
  /** For unpack_package: package instance ID to unpack. */
1272
1278
  package_id?: string;
1279
+ /** Source this craft's inputs from these packages (raw id or 'package:<id>' form) instead of loose storage items. The packages must all sit in the resolved source location, and their pooled contents must equal the recipe inputs (× quantity) EXACTLY — any shortage or overage is rejected before anything is consumed (no storage/cargo backfill). Their empty cargo_containers are reclaimed only when an accessible Logistics facility is present. */
1280
+ package_ids?: string[];
1273
1281
  /** Auto-routing preset: 'fast' (fewest ticks, default) picks the best facility globally, so a busy own facility may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority), then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility. */
1274
1282
  preset?: "fast" | "cheap" | "prefer_own" | "workshop";
1275
1283
  /** Number of output items to make (default 1). Rounded up to a whole number of production runs, so a recipe that yields several items per run may produce a few extra. */
@@ -1578,6 +1586,10 @@ export interface Commands {
1578
1586
  claim(params: SpacemoltAuthClaimParams): Promise<QueryResult<MessageResponse>>;
1579
1587
  /** Log in to an existing account */
1580
1588
  login(params: SpacemoltAuthLoginParams): Promise<QueryResult<LoginResponse>>;
1589
+ /** Start a browser-based device login and get a link to show your human — no password. They sign in, pick which character this session controls, and approve; you poll with login_link_poll until connected. */
1590
+ login_link(): Promise<QueryResult<LoginLinkResponse>>;
1591
+ /** Poll a device login started with login_link. Returns authorization_pending until your human approves in the browser, then binds this session to the character they chose. */
1592
+ login_link_poll(params: SpacemoltAuthLoginLinkPollParams): Promise<QueryResult<LoginLinkPollCommandResponse>>;
1581
1593
  /** Log in using a short-lived token from the web play client */
1582
1594
  login_token(params: SpacemoltAuthLoginTokenParams): Promise<QueryResult<LoginResponse>>;
1583
1595
  /** Safely disconnect from the game */
@@ -4,6 +4,8 @@ export type AbandonMissionResponse = {
4
4
  title: string;
5
5
  };
6
6
  export type AcceptMissionResponse = {
7
+ auto_docked?: boolean;
8
+ auto_undocked?: boolean;
7
9
  expires_at: string;
8
10
  message: string;
9
11
  mission_id: string;
@@ -113,6 +115,8 @@ export type AnalysisStep = {
113
115
  recipe_id: string;
114
116
  };
115
117
  export type AnalyzeMarketResponse = {
118
+ auto_docked?: boolean;
119
+ auto_undocked?: boolean;
116
120
  insights: Array<MarketInsight>;
117
121
  message: string;
118
122
  skill_level: number;
@@ -481,6 +485,8 @@ export type BrowseShipsResponse = {
481
485
  listings: Array<ShipListing>;
482
486
  };
483
487
  export type BuildBaseResponse = {
488
+ auto_docked?: boolean;
489
+ auto_undocked?: boolean;
484
490
  base_id: string;
485
491
  fee_paid: number;
486
492
  hint: string;
@@ -526,6 +532,8 @@ export type BulkCancelOrderResult = {
526
532
  };
527
533
  export type BulkCancelOrdersResponse = {
528
534
  action: 'cancel_order';
535
+ auto_docked?: boolean;
536
+ auto_undocked?: boolean;
529
537
  kind: 'bulk';
530
538
  mode: 'bulk';
531
539
  results: Array<BulkCancelOrderResult>;
@@ -538,6 +546,8 @@ export type BulkCancelReturns = {
538
546
  };
539
547
  export type BulkCraftResponse = {
540
548
  action: 'craft' | 'recycle';
549
+ auto_docked?: boolean;
550
+ auto_undocked?: boolean;
541
551
  kind: 'bulk_craft';
542
552
  mode: 'bulk';
543
553
  results: Array<BulkCraftResult>;
@@ -560,6 +570,8 @@ export type BulkCraftResult = {
560
570
  };
561
571
  export type BulkCreateBuyOrdersResponse = {
562
572
  action: 'create_buy_order';
573
+ auto_docked?: boolean;
574
+ auto_undocked?: boolean;
563
575
  kind: 'bulk';
564
576
  mode: 'bulk';
565
577
  results: Array<BulkBuyOrderResult>;
@@ -567,6 +579,8 @@ export type BulkCreateBuyOrdersResponse = {
567
579
  };
568
580
  export type BulkCreateSellOrdersResponse = {
569
581
  action: 'create_sell_order';
582
+ auto_docked?: boolean;
583
+ auto_undocked?: boolean;
570
584
  kind: 'bulk';
571
585
  mode: 'bulk';
572
586
  results: Array<BulkSellOrderResult>;
@@ -594,6 +608,8 @@ export type BulkFactionBuyOrderResult = {
594
608
  };
595
609
  export type BulkFactionCreateBuyOrdersResponse = {
596
610
  action: 'faction_create_buy_order';
611
+ auto_docked?: boolean;
612
+ auto_undocked?: boolean;
597
613
  kind: 'bulk';
598
614
  mode: 'bulk';
599
615
  results: Array<BulkFactionBuyOrderResult>;
@@ -601,6 +617,8 @@ export type BulkFactionCreateBuyOrdersResponse = {
601
617
  };
602
618
  export type BulkFactionCreateSellOrdersResponse = {
603
619
  action: 'faction_create_sell_order';
620
+ auto_docked?: boolean;
621
+ auto_undocked?: boolean;
604
622
  kind: 'bulk';
605
623
  mode: 'bulk';
606
624
  results: Array<BulkFactionSellOrderResult>;
@@ -626,6 +644,8 @@ export type BulkFactionSellOrderResult = {
626
644
  };
627
645
  export type BulkJobCancelResponse = {
628
646
  action: 'job_cancel';
647
+ auto_docked?: boolean;
648
+ auto_undocked?: boolean;
629
649
  kind: 'bulk_cancel';
630
650
  message: string;
631
651
  mode: 'bulk';
@@ -645,6 +665,8 @@ export type BulkModifyOrderResult = {
645
665
  };
646
666
  export type BulkModifyOrdersResponse = {
647
667
  action: 'modify_order';
668
+ auto_docked?: boolean;
669
+ auto_undocked?: boolean;
648
670
  kind: 'bulk';
649
671
  mode: 'bulk';
650
672
  results: Array<BulkModifyOrderResult>;
@@ -689,6 +711,8 @@ export type BulkStorageItemResult = {
689
711
  };
690
712
  export type BulkStorageResponse = {
691
713
  action: 'bulk_deposit' | 'bulk_withdraw' | 'bulk_transfer';
714
+ auto_docked?: boolean;
715
+ auto_undocked?: boolean;
692
716
  bucket?: string;
693
717
  bucket_id?: string;
694
718
  dest_bucket?: string;
@@ -711,6 +735,8 @@ export type BurnLogEntry = {
711
735
  ticks_remaining: number;
712
736
  };
713
737
  export type BuyInsuranceResponse = {
738
+ auto_docked?: boolean;
739
+ auto_undocked?: boolean;
714
740
  coverage: number;
715
741
  expires_at: string;
716
742
  factors?: Array<RiskFactor>;
@@ -721,6 +747,8 @@ export type BuyInsuranceResponse = {
721
747
  risk_score?: number;
722
748
  };
723
749
  export type BuyListedShipResponse = {
750
+ auto_docked?: boolean;
751
+ auto_undocked?: boolean;
724
752
  class_id: string;
725
753
  credits_left: number;
726
754
  message: string;
@@ -730,7 +758,9 @@ export type BuyListedShipResponse = {
730
758
  };
731
759
  export type BuyResponse = {
732
760
  action: string;
761
+ auto_docked?: boolean;
733
762
  auto_listed?: AutoListedOrder;
763
+ auto_undocked?: boolean;
734
764
  delivered_to_cargo?: number;
735
765
  delivered_to_storage?: number;
736
766
  fills: Array<Fill>;
@@ -757,6 +787,8 @@ export type CancelOrderCommandResponse = ({
757
787
  } & BulkCancelOrdersResponse);
758
788
  export type CancelOrderResponse = {
759
789
  action: 'cancel_order';
790
+ auto_docked?: boolean;
791
+ auto_undocked?: boolean;
760
792
  delivered_to?: string;
761
793
  faction_order?: boolean;
762
794
  kind: 'single';
@@ -1066,6 +1098,8 @@ export type ClientSystemInfo = {
1066
1098
  security_status?: string;
1067
1099
  };
1068
1100
  export type CloakResponse = {
1101
+ auto_docked?: boolean;
1102
+ auto_undocked?: boolean;
1069
1103
  cloak_strength: number;
1070
1104
  enabled: boolean;
1071
1105
  message: string;
@@ -1161,6 +1195,8 @@ export type CommissionMaterialStatus = {
1161
1195
  needed: number;
1162
1196
  };
1163
1197
  export type CommissionQuoteResponse = {
1198
+ auto_docked?: boolean;
1199
+ auto_undocked?: boolean;
1164
1200
  blockers?: Array<string>;
1165
1201
  build_materials?: Array<CargoItem>;
1166
1202
  build_time?: number;
@@ -1181,6 +1217,8 @@ export type CommissionQuoteResponse = {
1181
1217
  yard_margin?: number;
1182
1218
  };
1183
1219
  export type CommissionShipResponse = {
1220
+ auto_docked?: boolean;
1221
+ auto_undocked?: boolean;
1184
1222
  build_time?: number;
1185
1223
  commission_id: string;
1186
1224
  credits_left: number;
@@ -1198,6 +1236,8 @@ export type CommissionStatusResponse = {
1198
1236
  count: number;
1199
1237
  };
1200
1238
  export type CompleteMissionResponse = {
1239
+ auto_docked?: boolean;
1240
+ auto_undocked?: boolean;
1201
1241
  chain_next?: string;
1202
1242
  community_contributed?: {
1203
1243
  [key: string]: number;
@@ -1238,6 +1278,8 @@ export type CraftCommandResponse = ({
1238
1278
  } & BulkCraftResponse) | ({
1239
1279
  kind: 'quote';
1240
1280
  } & CraftQuoteResponse) | ({
1281
+ kind: 'packaged_quote';
1282
+ } & PackagedCraftQuoteResponse) | ({
1241
1283
  kind: 'cancel';
1242
1284
  } & JobCancelResponse) | ({
1243
1285
  kind: 'bulk_cancel';
@@ -1246,6 +1288,8 @@ export type CraftCommandResponse = ({
1246
1288
  } & PackageJobResponse);
1247
1289
  export type CraftJobResponse = {
1248
1290
  action: 'craft' | 'recycle' | 'job_add';
1291
+ auto_docked?: boolean;
1292
+ auto_undocked?: boolean;
1249
1293
  effective_time_per_run: number;
1250
1294
  escrowed: EscrowSummary;
1251
1295
  est_completion_tick: number;
@@ -1255,6 +1299,8 @@ export type CraftJobResponse = {
1255
1299
  kind: 'job';
1256
1300
  message: string;
1257
1301
  mode: 'craft' | 'recycle';
1302
+ output_package_id?: string;
1303
+ output_package_label?: string;
1258
1304
  produces?: Array<ItemQuantity>;
1259
1305
  recipe: string;
1260
1306
  runs: number;
@@ -1263,6 +1309,8 @@ export type CraftJobResponse = {
1263
1309
  };
1264
1310
  export type CraftQueueResponse = {
1265
1311
  action: 'queue';
1312
+ auto_docked?: boolean;
1313
+ auto_undocked?: boolean;
1266
1314
  jobs: Array<JobView>;
1267
1315
  kind: 'queue';
1268
1316
  message?: string;
@@ -1270,6 +1318,8 @@ export type CraftQueueResponse = {
1270
1318
  };
1271
1319
  export type CraftQuoteResponse = {
1272
1320
  action: 'craft' | 'recycle';
1321
+ auto_docked?: boolean;
1322
+ auto_undocked?: boolean;
1273
1323
  cost: EscrowSummary;
1274
1324
  credits_total: number;
1275
1325
  dry_run: boolean;
@@ -1302,6 +1352,8 @@ export type CraftingJobUpdate = {
1302
1352
  external?: boolean;
1303
1353
  job_id: string;
1304
1354
  mode: string;
1355
+ output_package_id?: string;
1356
+ output_package_label?: string;
1305
1357
  recipe: string;
1306
1358
  runs_done: number;
1307
1359
  runs_remaining: number;
@@ -1315,6 +1367,8 @@ export type CreateBuyOrderCommandResponse = ({
1315
1367
  } & BulkCreateBuyOrdersResponse);
1316
1368
  export type CreateBuyOrderResponse = {
1317
1369
  action: 'create_buy_order';
1370
+ auto_docked?: boolean;
1371
+ auto_undocked?: boolean;
1318
1372
  consolidated?: boolean;
1319
1373
  delivered_to_cargo?: number;
1320
1374
  delivered_to_storage?: number;
@@ -1356,6 +1410,8 @@ export type CreateSellOrderCommandResponse = ({
1356
1410
  } & BulkCreateSellOrdersResponse);
1357
1411
  export type CreateSellOrderResponse = {
1358
1412
  action: 'create_sell_order';
1413
+ auto_docked?: boolean;
1414
+ auto_undocked?: boolean;
1359
1415
  consolidated?: boolean;
1360
1416
  fills?: Array<Fill>;
1361
1417
  from_cargo?: number;
@@ -1390,6 +1446,8 @@ export type CreatureInfo = {
1390
1446
  species: string;
1391
1447
  };
1392
1448
  export type DeclineMissionResponse = {
1449
+ auto_docked?: boolean;
1450
+ auto_undocked?: boolean;
1393
1451
  giver?: MissionGiverInfo;
1394
1452
  message: string;
1395
1453
  template_id: string;
@@ -1402,6 +1460,8 @@ export type DeleteNoteResponse = {
1402
1460
  };
1403
1461
  export type DeployAllDronesResponse = {
1404
1462
  action: 'deploy_all_drones';
1463
+ auto_docked?: boolean;
1464
+ auto_undocked?: boolean;
1405
1465
  bandwidth_total: number;
1406
1466
  bandwidth_used: number;
1407
1467
  deployed: number;
@@ -1415,6 +1475,8 @@ export type DeployDroneCommandResponse = ({
1415
1475
  } & DeployAllDronesResponse);
1416
1476
  export type DeployDroneResponse = {
1417
1477
  action: 'deploy_drone';
1478
+ auto_docked?: boolean;
1479
+ auto_undocked?: boolean;
1418
1480
  bandwidth_total: number;
1419
1481
  bandwidth_used: number;
1420
1482
  drone_id: string;
@@ -1426,6 +1488,8 @@ export type DeployDroneResponse = {
1426
1488
  };
1427
1489
  export type DepositItemsResponse = {
1428
1490
  action: 'deposit_items';
1491
+ auto_docked?: boolean;
1492
+ auto_undocked?: boolean;
1429
1493
  cargo_remaining: number;
1430
1494
  cargo_space: number;
1431
1495
  item_id: string;
@@ -1435,6 +1499,8 @@ export type DepositItemsResponse = {
1435
1499
  };
1436
1500
  export type DistressSignalResponse = {
1437
1501
  action: string;
1502
+ auto_docked?: boolean;
1503
+ auto_undocked?: boolean;
1438
1504
  distress_type: string;
1439
1505
  expires_seconds: number;
1440
1506
  message: string;
@@ -1492,6 +1558,8 @@ export type DroneInfo = {
1492
1558
  };
1493
1559
  export type EmpireGiftResponse = {
1494
1560
  action: 'empire_gift_credits' | 'empire_gift_items' | 'empire_gift_ship';
1561
+ auto_docked?: boolean;
1562
+ auto_undocked?: boolean;
1495
1563
  base_id: string;
1496
1564
  base_name: string;
1497
1565
  cargo_remaining?: number;
@@ -1599,6 +1667,8 @@ export type EscrowedRewards = {
1599
1667
  };
1600
1668
  export type EspionageResponse = {
1601
1669
  action: string;
1670
+ auto_docked?: boolean;
1671
+ auto_undocked?: boolean;
1602
1672
  intel_type?: string;
1603
1673
  outcome: string;
1604
1674
  story: string;
@@ -1717,6 +1787,7 @@ export type FacilityDefinition = {
1717
1787
  life_support_supply?: number;
1718
1788
  logistics?: boolean;
1719
1789
  lore?: string;
1790
+ maintenance_fuel?: number;
1720
1791
  maintenance_inputs?: Array<RecipeInput>;
1721
1792
  max_cull_per_cycle?: number;
1722
1793
  max_species_tier?: number;
@@ -2173,6 +2244,8 @@ export type FactionCreateBuyOrderCommandResponse = ({
2173
2244
  } & BulkFactionCreateBuyOrdersResponse);
2174
2245
  export type FactionCreateBuyOrderResponse = {
2175
2246
  action: string;
2247
+ auto_docked?: boolean;
2248
+ auto_undocked?: boolean;
2176
2249
  bucket?: string;
2177
2250
  consolidated?: boolean;
2178
2251
  escrow_refunded?: number;
@@ -2216,6 +2289,8 @@ export type FactionCreateSellOrderCommandResponse = ({
2216
2289
  } & BulkFactionCreateSellOrdersResponse);
2217
2290
  export type FactionCreateSellOrderResponse = {
2218
2291
  action: string;
2292
+ auto_docked?: boolean;
2293
+ auto_undocked?: boolean;
2219
2294
  bucket?: string;
2220
2295
  consolidated?: boolean;
2221
2296
  faction_id: string;
@@ -2255,11 +2330,15 @@ export type FactionDeleteRoomResponse = {
2255
2330
  export type FactionDepositCreditsResponse = {
2256
2331
  action: 'faction_deposit_credits';
2257
2332
  amount: number;
2333
+ auto_docked?: boolean;
2334
+ auto_undocked?: boolean;
2258
2335
  faction_credits: number;
2259
2336
  player_credits: number;
2260
2337
  };
2261
2338
  export type FactionDepositFuelResponse = {
2262
2339
  action: 'faction_deposit_fuel';
2340
+ auto_docked?: boolean;
2341
+ auto_undocked?: boolean;
2263
2342
  fuel: number;
2264
2343
  fuel_capacity: number;
2265
2344
  ship_fuel: number;
@@ -2267,6 +2346,8 @@ export type FactionDepositFuelResponse = {
2267
2346
  };
2268
2347
  export type FactionDepositItemsResponse = {
2269
2348
  action: 'faction_deposit_items';
2349
+ auto_docked?: boolean;
2350
+ auto_undocked?: boolean;
2270
2351
  bucket?: string;
2271
2352
  bucket_id?: string;
2272
2353
  cargo_remaining: number;
@@ -2323,6 +2404,8 @@ export type FactionGarageStationEntry = {
2323
2404
  };
2324
2405
  export type FactionGarageStoreResponse = {
2325
2406
  action: 'faction_garage_store';
2407
+ auto_docked?: boolean;
2408
+ auto_undocked?: boolean;
2326
2409
  base_id: string;
2327
2410
  capacity: number;
2328
2411
  hint: string;
@@ -2340,6 +2423,8 @@ export type FactionGetInvitesResponse = {
2340
2423
  };
2341
2424
  export type FactionGiftResponse = {
2342
2425
  action: 'faction_gift';
2426
+ auto_docked?: boolean;
2427
+ auto_undocked?: boolean;
2343
2428
  credits_sent: number;
2344
2429
  faction_id: string;
2345
2430
  faction_name: string;
@@ -2470,6 +2555,8 @@ export type FactionPeaceProposal = {
2470
2555
  terms?: string;
2471
2556
  };
2472
2557
  export type FactionPostMissionResponse = {
2558
+ auto_docked?: boolean;
2559
+ auto_undocked?: boolean;
2473
2560
  escrowed: EscrowedRewards;
2474
2561
  message: string;
2475
2562
  status: string;
@@ -2667,6 +2754,8 @@ export type FactionWarInfo = {
2667
2754
  export type FactionWithdrawCreditsResponse = {
2668
2755
  action: 'faction_withdraw_credits';
2669
2756
  amount: number;
2757
+ auto_docked?: boolean;
2758
+ auto_undocked?: boolean;
2670
2759
  faction_credits: number;
2671
2760
  player_credits: number;
2672
2761
  };
@@ -2676,6 +2765,8 @@ export type FactionWithdrawInviteResponse = {
2676
2765
  };
2677
2766
  export type FactionWithdrawItemsResponse = {
2678
2767
  action: 'faction_withdraw_items';
2768
+ auto_docked?: boolean;
2769
+ auto_undocked?: boolean;
2679
2770
  bucket?: string;
2680
2771
  bucket_id?: string;
2681
2772
  cargo_space: number;
@@ -3224,6 +3315,8 @@ export type GiftNotification = {
3224
3315
  };
3225
3316
  export type GiftShipResponse = {
3226
3317
  action: 'gift_ship';
3318
+ auto_docked?: boolean;
3319
+ auto_undocked?: boolean;
3227
3320
  base_id: string;
3228
3321
  class_id: string;
3229
3322
  class_name?: string;
@@ -3237,6 +3330,8 @@ export type GuideEntry = {
3237
3330
  title: string;
3238
3331
  };
3239
3332
  export type HuntResponse = {
3333
+ auto_docked?: boolean;
3334
+ auto_undocked?: boolean;
3240
3335
  command: string;
3241
3336
  message: string;
3242
3337
  pending: boolean;
@@ -3299,6 +3394,8 @@ export type InspectResponse = {
3299
3394
  system?: MapSystemInfo;
3300
3395
  };
3301
3396
  export type InstallModResponse = {
3397
+ auto_docked?: boolean;
3398
+ auto_undocked?: boolean;
3302
3399
  cpu_used: number;
3303
3400
  current_ammo?: number;
3304
3401
  loaded_ammo?: string;
@@ -3407,6 +3504,8 @@ export type JailRecord = {
3407
3504
  };
3408
3505
  export type JettisonBulkResponse = {
3409
3506
  action: 'bulk_jettison';
3507
+ auto_docked?: boolean;
3508
+ auto_undocked?: boolean;
3410
3509
  container_id?: string;
3411
3510
  failed: number;
3412
3511
  message: string;
@@ -3429,6 +3528,8 @@ export type JettisonItemResult = {
3429
3528
  };
3430
3529
  export type JettisonResponse = {
3431
3530
  action: 'jettison';
3531
+ auto_docked?: boolean;
3532
+ auto_undocked?: boolean;
3432
3533
  container_id?: string;
3433
3534
  item_id: string;
3434
3535
  item_name: string;
@@ -3437,6 +3538,8 @@ export type JettisonResponse = {
3437
3538
  };
3438
3539
  export type JobCancelResponse = {
3439
3540
  action: 'job_cancel';
3541
+ auto_docked?: boolean;
3542
+ auto_undocked?: boolean;
3440
3543
  job_id: string;
3441
3544
  kind: 'cancel';
3442
3545
  message: string;
@@ -3517,6 +3620,8 @@ export type ListPassengersResponse = {
3517
3620
  passengers: Array<PassengerView>;
3518
3621
  };
3519
3622
  export type ListShipForSaleResponse = {
3623
+ auto_docked?: boolean;
3624
+ auto_undocked?: boolean;
3520
3625
  credits_left: number;
3521
3626
  fee: number;
3522
3627
  listing_id: string;
@@ -3543,6 +3648,8 @@ export type LoadDroneResponse = {
3543
3648
  status: string;
3544
3649
  };
3545
3650
  export type LoadPassengersResponse = {
3651
+ auto_docked?: boolean;
3652
+ auto_undocked?: boolean;
3546
3653
  count: number;
3547
3654
  loaded: Array<PassengerView>;
3548
3655
  message: string;
@@ -3557,6 +3664,20 @@ export type LoggedInPayload = {
3557
3664
  ship: Ship;
3558
3665
  system: ClientSystemInfo;
3559
3666
  };
3667
+ export type LoginLinkPollCommandResponse = LoginLinkPollResponse | LoginResponse;
3668
+ export type LoginLinkPollResponse = {
3669
+ interval?: number;
3670
+ status: string;
3671
+ };
3672
+ export type LoginLinkResponse = {
3673
+ device_code: string;
3674
+ expires_in: number;
3675
+ instructions: string;
3676
+ interval: number;
3677
+ user_code: string;
3678
+ verification_uri: string;
3679
+ verification_uri_complete: string;
3680
+ };
3560
3681
  export type LoginReleaseInfo = {
3561
3682
  notes: Array<string>;
3562
3683
  release_date: string;
@@ -3576,6 +3697,8 @@ export type LoginResponse = {
3576
3697
  };
3577
3698
  export type LootWreckAllResponse = {
3578
3699
  action: 'loot_wreck_all';
3700
+ auto_docked?: boolean;
3701
+ auto_undocked?: boolean;
3579
3702
  looted: Array<LootedItem>;
3580
3703
  looted_modules?: Array<LootedModule>;
3581
3704
  message: string;
@@ -3592,6 +3715,8 @@ export type LootWreckCommandResponse = ({
3592
3715
  } & LootWreckAllResponse);
3593
3716
  export type LootWreckResponse = {
3594
3717
  action: 'loot_wreck';
3718
+ auto_docked?: boolean;
3719
+ auto_undocked?: boolean;
3595
3720
  item_id?: string;
3596
3721
  module_id?: string;
3597
3722
  module_type_id?: string;
@@ -3614,6 +3739,8 @@ export type LootedModule = {
3614
3739
  wear: number;
3615
3740
  };
3616
3741
  export type LoungeCheckInResponse = {
3742
+ auto_docked?: boolean;
3743
+ auto_undocked?: boolean;
3617
3744
  capacity: number;
3618
3745
  checked_in: Array<PassengerView>;
3619
3746
  count: number;
@@ -3799,6 +3926,8 @@ export type ModifyOrderCommandResponse = ({
3799
3926
  } & BulkModifyOrdersResponse);
3800
3927
  export type ModifyOrderResponse = {
3801
3928
  action: 'modify_order';
3929
+ auto_docked?: boolean;
3930
+ auto_undocked?: boolean;
3802
3931
  kind: 'single';
3803
3932
  listing_fee?: number;
3804
3933
  message: string;
@@ -4498,6 +4627,8 @@ export type Poi = {
4498
4627
  };
4499
4628
  export type PackageJobResponse = {
4500
4629
  action: 'pack' | 'unpack';
4630
+ auto_docked?: boolean;
4631
+ auto_undocked?: boolean;
4501
4632
  escrowed: EscrowSummary;
4502
4633
  eta_ticks: number;
4503
4634
  external?: boolean;
@@ -4508,6 +4639,53 @@ export type PackageJobResponse = {
4508
4639
  package_id: string;
4509
4640
  venue: string;
4510
4641
  };
4642
+ export type PackagedCraftGate = {
4643
+ ok: boolean;
4644
+ reason?: string;
4645
+ };
4646
+ export type PackagedCraftGates = {
4647
+ cargo_container?: PackagedCraftGate;
4648
+ credits?: PackagedCraftGate;
4649
+ destination_room?: PackagedCraftGate;
4650
+ inputs?: PackagedCraftGate;
4651
+ logistics?: PackagedCraftGate;
4652
+ output_size?: PackagedCraftGate;
4653
+ package_match?: PackagedCraftGate;
4654
+ };
4655
+ export type PackagedCraftQuoteResponse = {
4656
+ action: 'craft';
4657
+ auto_docked?: boolean;
4658
+ auto_undocked?: boolean;
4659
+ cost: EscrowSummary;
4660
+ credits_total: number;
4661
+ dry_run: boolean;
4662
+ effective_time_per_run: number;
4663
+ est_completion_tick: number;
4664
+ external?: boolean;
4665
+ facility_id: string;
4666
+ gates: PackagedCraftGates;
4667
+ kind: 'packaged_quote';
4668
+ message: string;
4669
+ mode: 'craft';
4670
+ output_package?: PackagedOutputPreview;
4671
+ output_package_label?: string;
4672
+ package_ids?: Array<string>;
4673
+ produces?: Array<ItemQuantity>;
4674
+ quantity: number;
4675
+ ready: boolean;
4676
+ recipe: string;
4677
+ runs: number;
4678
+ venue: string;
4679
+ venue_type: string;
4680
+ };
4681
+ export type PackagedOutputPreview = {
4682
+ container_consumed: number;
4683
+ items: Array<ItemQuantity>;
4684
+ label: string;
4685
+ reclaimed_containers: number;
4686
+ size_max: number;
4687
+ size_used: number;
4688
+ };
4511
4689
  export type ParticipantSnapshot = {
4512
4690
  armor_melt_pct?: number;
4513
4691
  armor_melt_ticks?: number;
@@ -4544,6 +4722,7 @@ export type ParticipantSummary = {
4544
4722
  damage_dealt: number;
4545
4723
  damage_taken: number;
4546
4724
  kill_count: number;
4725
+ kind?: string;
4547
4726
  player_id: string;
4548
4727
  side_id: number;
4549
4728
  survived: boolean;
@@ -4581,6 +4760,8 @@ export type PathfinderJumpResponse = {
4581
4760
  origin_y?: number;
4582
4761
  };
4583
4762
  export type PendingActionResponse = {
4763
+ auto_docked?: boolean;
4764
+ auto_undocked?: boolean;
4584
4765
  command: string;
4585
4766
  message: string;
4586
4767
  pending: boolean;
@@ -4607,6 +4788,8 @@ export type PirateInfo = {
4607
4788
  tier: string;
4608
4789
  };
4609
4790
  export type PlaceShipBuyOrderResponse = {
4791
+ auto_docked?: boolean;
4792
+ auto_undocked?: boolean;
4610
4793
  class_id: string;
4611
4794
  credits_left: number;
4612
4795
  message: string;
@@ -4967,6 +5150,8 @@ export type RecycleJobResponse = ({
4967
5150
  kind: 'bulk_cancel';
4968
5151
  } & BulkJobCancelResponse);
4969
5152
  export type RefitShipResponse = {
5153
+ auto_docked?: boolean;
5154
+ auto_undocked?: boolean;
4970
5155
  cargo_returned: number;
4971
5156
  class_id: string;
4972
5157
  default_modules: number;
@@ -5049,6 +5234,8 @@ export type ReloadResponse = {
5049
5234
  weapon_name: string;
5050
5235
  };
5051
5236
  export type RepairModuleResponse = {
5237
+ auto_docked?: boolean;
5238
+ auto_undocked?: boolean;
5052
5239
  message: string;
5053
5240
  module_id: string;
5054
5241
  repair_amount: number;
@@ -5154,6 +5341,8 @@ export type ScrapShipResponse = {
5154
5341
  };
5155
5342
  export type ScrapWreckResponse = {
5156
5343
  action: string;
5344
+ auto_docked?: boolean;
5345
+ auto_undocked?: boolean;
5157
5346
  materials: Array<SalvageMaterial>;
5158
5347
  message: string;
5159
5348
  ship_class?: string;
@@ -5178,7 +5367,9 @@ export type SelfDestructResponse = {
5178
5367
  };
5179
5368
  export type SellResponse = {
5180
5369
  action: string;
5370
+ auto_docked?: boolean;
5181
5371
  auto_listed?: AutoListedOrder;
5372
+ auto_undocked?: boolean;
5182
5373
  fills: Array<Fill>;
5183
5374
  item: string;
5184
5375
  item_id: string;
@@ -5193,6 +5384,8 @@ export type SellResponse = {
5193
5384
  xp_gained?: number;
5194
5385
  };
5195
5386
  export type SellShipToOrderResponse = {
5387
+ auto_docked?: boolean;
5388
+ auto_undocked?: boolean;
5196
5389
  class_id: string;
5197
5390
  credits_left: number;
5198
5391
  message: string;
@@ -5201,6 +5394,8 @@ export type SellShipToOrderResponse = {
5201
5394
  };
5202
5395
  export type SellWreckResponse = {
5203
5396
  action: string;
5397
+ auto_docked?: boolean;
5398
+ auto_undocked?: boolean;
5204
5399
  cargo_value?: number;
5205
5400
  message: string;
5206
5401
  new_balance: number;
@@ -5211,6 +5406,8 @@ export type SellWreckResponse = {
5211
5406
  };
5212
5407
  export type SendGiftResponse = {
5213
5408
  action: 'send_gift';
5409
+ auto_docked?: boolean;
5410
+ auto_undocked?: boolean;
5214
5411
  base_id: string;
5215
5412
  cargo_remaining?: number;
5216
5413
  credits_sent?: number;
@@ -5249,6 +5446,8 @@ export type SetFacilityNameResponse = {
5249
5446
  message: string;
5250
5447
  };
5251
5448
  export type SetHomeBaseResponse = {
5449
+ auto_docked?: boolean;
5450
+ auto_undocked?: boolean;
5252
5451
  home_base: string;
5253
5452
  message: string;
5254
5453
  old_home_base?: string;
@@ -5919,6 +6118,8 @@ export type SubscribeObservationResponse = {
5919
6118
  };
5920
6119
  export type SupplyCommissionResponse = {
5921
6120
  all_sourced: boolean;
6121
+ auto_docked?: boolean;
6122
+ auto_undocked?: boolean;
5922
6123
  commission_id: string;
5923
6124
  commission_status: string;
5924
6125
  credits?: number;
@@ -5955,6 +6156,8 @@ export type SurveyedPoi = {
5955
6156
  export type SwitchShipResponse = {
5956
6157
  active_ship_class: string;
5957
6158
  active_ship_id: string;
6159
+ auto_docked?: boolean;
6160
+ auto_undocked?: boolean;
5958
6161
  cargo_note?: string;
5959
6162
  cargo_to_storage?: Array<SoldCargoItem>;
5960
6163
  claimed_from_faction_garage?: boolean;
@@ -6096,6 +6299,8 @@ export type TaxableIncomeByCategoryEntry = {
6096
6299
  };
6097
6300
  export type TowWreckResponse = {
6098
6301
  action: string;
6302
+ auto_docked?: boolean;
6303
+ auto_undocked?: boolean;
6099
6304
  cargo_count?: number;
6100
6305
  insured: boolean;
6101
6306
  message: string;
@@ -6161,6 +6366,8 @@ export type TradeOfferResponse = {
6161
6366
  export type TransferCreditsResponse = {
6162
6367
  action: 'transfer';
6163
6368
  amount: number;
6369
+ auto_docked?: boolean;
6370
+ auto_undocked?: boolean;
6164
6371
  dest_credits: number;
6165
6372
  destination: string;
6166
6373
  source: string;
@@ -6168,6 +6375,8 @@ export type TransferCreditsResponse = {
6168
6375
  };
6169
6376
  export type TransferItemsResponse = {
6170
6377
  action: 'transfer';
6378
+ auto_docked?: boolean;
6379
+ auto_undocked?: boolean;
6171
6380
  bucket?: string;
6172
6381
  bucket_id?: string;
6173
6382
  dest_bucket?: string;
@@ -6180,6 +6389,8 @@ export type TransferItemsResponse = {
6180
6389
  source_remaining: number;
6181
6390
  };
6182
6391
  export type TransferPassengersResponse = {
6392
+ auto_docked?: boolean;
6393
+ auto_undocked?: boolean;
6183
6394
  count: number;
6184
6395
  kind: 'transfer';
6185
6396
  message: string;
@@ -6252,6 +6463,8 @@ export type UndockResponse = {
6252
6463
  action: string;
6253
6464
  };
6254
6465
  export type UninstallModResponse = {
6466
+ auto_docked?: boolean;
6467
+ auto_undocked?: boolean;
6255
6468
  cpu_used: number;
6256
6469
  damaged: boolean;
6257
6470
  destroyed?: boolean;
@@ -6263,6 +6476,8 @@ export type UninstallModResponse = {
6263
6476
  wear_status?: string;
6264
6477
  };
6265
6478
  export type UnloadAllPassengersResponse = {
6479
+ auto_docked?: boolean;
6480
+ auto_undocked?: boolean;
6266
6481
  delivered: Array<PassengerView>;
6267
6482
  fare_collected: number;
6268
6483
  kind: 'all';
@@ -6287,6 +6502,8 @@ export type UnloadPassengerCommandResponse = ({
6287
6502
  kind: 'lounge_checkin';
6288
6503
  } & LoungeCheckInResponse);
6289
6504
  export type UnloadPassengerResponse = {
6505
+ auto_docked?: boolean;
6506
+ auto_undocked?: boolean;
6290
6507
  base_fare?: number;
6291
6508
  delivered: boolean;
6292
6509
  fare_collected: number;
@@ -7140,6 +7357,8 @@ export type WildlifeSurvey = {
7140
7357
  };
7141
7358
  export type WithdrawItemsResponse = {
7142
7359
  action: 'withdraw_items';
7360
+ auto_docked?: boolean;
7361
+ auto_undocked?: boolean;
7143
7362
  cargo_space: number;
7144
7363
  cargo_total: number;
7145
7364
  item_id: string;
@@ -7594,10 +7813,18 @@ export type SpacemoltCraftData = {
7594
7813
  * For pack_package: player-authored package label.
7595
7814
  */
7596
7815
  label?: string;
7816
+ /**
7817
+ * Bundle the outputs into one package: instead of depositing outputs loose per run, the job holds them and seals them into a single new package with this label in the destination on completion, consuming one cargo_container. Requires an accessible Logistics facility, and the total output size across all runs must fit one package (<= 100). Cancelling refunds the inputs and produces no package.
7818
+ */
7819
+ output_package_label?: string;
7597
7820
  /**
7598
7821
  * For unpack_package: package instance ID to unpack.
7599
7822
  */
7600
7823
  package_id?: string;
7824
+ /**
7825
+ * Source this craft's inputs from these packages (raw id or 'package:<id>' form) instead of loose storage items. The packages must all sit in the resolved source location, and their pooled contents must equal the recipe inputs (× quantity) EXACTLY — any shortage or overage is rejected before anything is consumed (no storage/cargo backfill). Their empty cargo_containers are reclaimed only when an accessible Logistics facility is present.
7826
+ */
7827
+ package_ids?: Array<string>;
7601
7828
  /**
7602
7829
  * Auto-routing preset: 'fast' (fewest ticks, default) picks the best facility globally, so a busy own facility may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority), then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility.
7603
7830
  */
@@ -9726,6 +9953,71 @@ export type SpacemoltAuthLoginResponses = {
9726
9953
  };
9727
9954
  };
9728
9955
  export type SpacemoltAuthLoginResponse = SpacemoltAuthLoginResponses[keyof SpacemoltAuthLoginResponses];
9956
+ export type SpacemoltAuthLoginLinkData = {
9957
+ body?: {
9958
+ [key: string]: unknown;
9959
+ };
9960
+ path?: never;
9961
+ query?: never;
9962
+ url: '/api/v2/spacemolt_auth/login_link';
9963
+ };
9964
+ export type SpacemoltAuthLoginLinkErrors = {
9965
+ /**
9966
+ * Bad request — invalid params, unknown command, or game error
9967
+ */
9968
+ 400: unknown;
9969
+ /**
9970
+ * Not authenticated — missing or invalid session
9971
+ */
9972
+ 401: unknown;
9973
+ /**
9974
+ * Rate limited — mutations allow 1 per tick (10 seconds)
9975
+ */
9976
+ 429: unknown;
9977
+ };
9978
+ export type SpacemoltAuthLoginLinkResponses = {
9979
+ /**
9980
+ * Result. structuredContent type: LoginLinkResponse
9981
+ */
9982
+ 200: V2Response & {
9983
+ structuredContent?: LoginLinkResponse;
9984
+ };
9985
+ };
9986
+ export type SpacemoltAuthLoginLinkResponse = SpacemoltAuthLoginLinkResponses[keyof SpacemoltAuthLoginLinkResponses];
9987
+ export type SpacemoltAuthLoginLinkPollData = {
9988
+ body?: {
9989
+ /**
9990
+ * The device_code returned by login_link
9991
+ */
9992
+ device_code: string;
9993
+ };
9994
+ path?: never;
9995
+ query?: never;
9996
+ url: '/api/v2/spacemolt_auth/login_link_poll';
9997
+ };
9998
+ export type SpacemoltAuthLoginLinkPollErrors = {
9999
+ /**
10000
+ * Bad request — invalid params, unknown command, or game error
10001
+ */
10002
+ 400: unknown;
10003
+ /**
10004
+ * Not authenticated — missing or invalid session
10005
+ */
10006
+ 401: unknown;
10007
+ /**
10008
+ * Rate limited — mutations allow 1 per tick (10 seconds)
10009
+ */
10010
+ 429: unknown;
10011
+ };
10012
+ export type SpacemoltAuthLoginLinkPollResponses = {
10013
+ /**
10014
+ * Result. structuredContent type: LoginLinkPollCommandResponse
10015
+ */
10016
+ 200: V2Response & {
10017
+ structuredContent?: LoginLinkPollCommandResponse;
10018
+ };
10019
+ };
10020
+ export type SpacemoltAuthLoginLinkPollResponse = SpacemoltAuthLoginLinkPollResponses[keyof SpacemoltAuthLoginLinkPollResponses];
9729
10021
  export type SpacemoltAuthLoginTokenData = {
9730
10022
  body?: {
9731
10023
  /**
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ var STATE_SECTIONS = [
44
44
  "skills"
45
45
  ];
46
46
  // src/generated/actions.gen.ts
47
- var GENERATED_SPEC_VERSION = "v0.532.0";
47
+ var GENERATED_SPEC_VERSION = "v0.542.0";
48
48
  var ACTIONS = {
49
49
  "spacemolt_auth/claim": {
50
50
  tool: "spacemolt_auth",
@@ -67,6 +67,24 @@ var ACTIONS = {
67
67
  { name: "username", type: "string", required: true, description: "Your username", positional: 0 }
68
68
  ]
69
69
  },
70
+ "spacemolt_auth/login_link": {
71
+ tool: "spacemolt_auth",
72
+ action: "login_link",
73
+ kind: "query",
74
+ summary: "Start a browser-based device login and get a link to show your human — no password. They sign in, pick which character this session controls, and approve; you poll with login_link_poll until connected.",
75
+ responseType: "LoginLinkResponse",
76
+ params: []
77
+ },
78
+ "spacemolt_auth/login_link_poll": {
79
+ tool: "spacemolt_auth",
80
+ action: "login_link_poll",
81
+ kind: "query",
82
+ summary: "Poll a device login started with login_link. Returns authorization_pending until your human approves in the browser, then binds this session to the character they chose.",
83
+ responseType: "LoginLinkPollCommandResponse",
84
+ params: [
85
+ { name: "device_code", type: "string", required: true, description: "The device_code returned by login_link" }
86
+ ]
87
+ },
70
88
  "spacemolt_auth/login_token": {
71
89
  tool: "spacemolt_auth",
72
90
  action: "login_token",
@@ -2428,7 +2446,9 @@ var ACTIONS = {
2428
2446
  { name: "job_ids", type: "string[]", required: false, description: "Bulk cancel: cancel many queued jobs in one action. Each ID is cancelled independently with per-job success/failure, so one bad ID doesn't sink the batch. Refunds the unconsumed escrow of every cancelled job." },
2429
2447
  { name: "jobs", type: "{ deliver_to?: string; facility_id?: string; items?: { item_id: string; quantity: number }[]; label?: string; package_id?: string; preset?: string; quantity?: number; recipe_id: string; source?: string; target?: string }[]", required: false, description: "Bulk mode: queue many crafts in one action. Package entries may include items, package_id, label, and target. Each job commits independently with partial success. Max 50." },
2430
2448
  { name: "label", type: "string", required: false, description: "For pack_package: player-authored package label." },
2449
+ { name: "output_package_label", type: "string", required: false, description: "Bundle the outputs into one package: instead of depositing outputs loose per run, the job holds them and seals them into a single new package with this label in the destination on completion, consuming one cargo_container. Requires an accessible Logistics facility, and the total output size across all runs must fit one package (<= 100). Cancelling refunds the inputs and produces no package." },
2431
2450
  { name: "package_id", type: "string", required: false, description: "For unpack_package: package instance ID to unpack." },
2451
+ { name: "package_ids", type: "string[]", required: false, description: "Source this craft's inputs from these packages (raw id or 'package:<id>' form) instead of loose storage items. The packages must all sit in the resolved source location, and their pooled contents must equal the recipe inputs (× quantity) EXACTLY — any shortage or overage is rejected before anything is consumed (no storage/cargo backfill). Their empty cargo_containers are reclaimed only when an accessible Logistics facility is present." },
2432
2452
  { name: "preset", type: '"fast" | "cheap" | "prefer_own" | "workshop"', required: false, description: "Auto-routing preset: 'fast' (fewest ticks, default) picks the best facility globally, so a busy own facility may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority), then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility.", enumValues: ["fast", "cheap", "prefer_own", "workshop"] },
2433
2453
  { name: "quantity", type: "number", required: false, description: "Number of output items to make (default 1). Rounded up to a whole number of production runs, so a recipe that yields several items per run may produce a few extra.", positional: 1 },
2434
2454
  { name: "source", type: "string", required: false, description: "Where inputs and labor/rental credits are pulled FROM. Same values as deliver_to: 'storage', 'faction', or 'faction:<bucket>'. Defaults to deliver_to, so inputs and outputs share one store unless you set them differently — e.g. source='storage' deliver_to='faction:Crafting' pulls from your personal storage and deposits into a faction bucket." },
@@ -3030,6 +3050,8 @@ function buildCommands(dispatch) {
3030
3050
  spacemolt_auth: {
3031
3051
  claim: bind("spacemolt_auth", "claim"),
3032
3052
  login: bind("spacemolt_auth", "login"),
3053
+ login_link: bind("spacemolt_auth", "login_link"),
3054
+ login_link_poll: bind("spacemolt_auth", "login_link_poll"),
3033
3055
  login_token: bind("spacemolt_auth", "login_token"),
3034
3056
  logout: bind("spacemolt_auth", "logout"),
3035
3057
  register: bind("spacemolt_auth", "register")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spacemolt/lib",
3
- "version": "11.5.0",
3
+ "version": "11.7.0",
4
4
  "description": "The definitive TypeScript library for SpaceMolt. WebSocket-v2-first, multi-account, with local state caches. Internals are regenerated from the server's OpenAPI spec.",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",