From d2a4cb4e645979f20c22a5c46c1c767db460f54a Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 15:16:23 +0800 Subject: feat(ship): HNX-01 crewed starship design branch (7-step ship.py, --design ship, 409 replays completed run history) --- src/SomhairlesDream.Cli/Arguments.fs | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'src/SomhairlesDream.Cli/Arguments.fs') diff --git a/src/SomhairlesDream.Cli/Arguments.fs b/src/SomhairlesDream.Cli/Arguments.fs index fa9087b..c1c7bff 100644 --- a/src/SomhairlesDream.Cli/Arguments.fs +++ b/src/SomhairlesDream.Cli/Arguments.fs @@ -21,7 +21,7 @@ module Arguments = let usage = "usage: dotnet run --project src/SomhairlesDream.Cli -- run [options]\n" + " dotnet run --project src/SomhairlesDream.Cli -- verify \n" - + "options: --project-id --run-id --base-id --target-id --output-root --stage-root --python --render --design heritage|probe" + + "options: --project-id --run-id --base-id --target-id --output-root --stage-root --python --render --design heritage|probe|ship" let private defaultPython () = let configured = Environment.GetEnvironmentVariable("SOMHAIRLES_BPYTHON") @@ -39,6 +39,12 @@ module Arguments = BaseId = "probe-base-000" TargetId = "probe-target-007" } + let private shipIds = + { ProjectId = "ship-001" + RunId = "run-001" + BaseId = "ship-base-000" + TargetId = "ship-target-007" } + let private defaults () = { Ids = heritageIds OutputRoot = ".artifacts" @@ -66,21 +72,27 @@ module Arguments = | _ -> Error $"unknown option: {optionName}" let private resolveIds (options: RunOptions) = - if options.Design = "probe" then - let swap heritage probe value = if value = heritage then probe else value + if options.Design = "heritage" then + options + else + let designIds = + match options.Design with + | "probe" -> probeIds + | "ship" -> shipIds + | _ -> heritageIds + + let swap heritage design value = if value = heritage then design else value let ids = - { ProjectId = swap heritageIds.ProjectId probeIds.ProjectId options.Ids.ProjectId - RunId = swap heritageIds.RunId probeIds.RunId options.Ids.RunId - BaseId = swap heritageIds.BaseId probeIds.BaseId options.Ids.BaseId - TargetId = swap heritageIds.TargetId probeIds.TargetId options.Ids.TargetId } + { ProjectId = swap heritageIds.ProjectId designIds.ProjectId options.Ids.ProjectId + RunId = swap heritageIds.RunId designIds.RunId options.Ids.RunId + BaseId = swap heritageIds.BaseId designIds.BaseId options.Ids.BaseId + TargetId = swap heritageIds.TargetId designIds.TargetId options.Ids.TargetId } { options with Ids = ids } - else - options let private validateRunOptions (options: RunOptions) = - if options.Design <> "heritage" && options.Design <> "probe" then + if options.Design <> "heritage" && options.Design <> "probe" && options.Design <> "ship" then Error $"invalid design: {options.Design}" else let resolved = resolveIds options -- cgit v1.2.3