@@ -155,7 +155,7 @@ function Invoke-HeadroomDocker {
155155 param([string[]]$Arguments)
156156
157157 $dockerArgs = New-Object System.Collections.Generic.List[string]
158- $dockerArgs.AddRange(@('run','--rm','-it'))
158+ $dockerArgs.AddRange([string[]] @('run','--rm','-it'))
159159 $dockerArgs.AddRange((Get-SharedDockerArgs))
160160 $dockerArgs.Add('--entrypoint')
161161 $dockerArgs.Add('headroom')
@@ -201,7 +201,7 @@ function Start-ProxyContainer {
201201
202202 $containerName = "headroom-proxy-$Port-$PID"
203203 $dockerArgs = New-Object System.Collections.Generic.List[string]
204- $dockerArgs.AddRange(@('run','-d','--rm','--name',$containerName,'-p',"$Port`:$Port"))
204+ $dockerArgs.AddRange([string[]] @('run','-d','--rm','--name',$containerName,'-p',"$Port`:$Port"))
205205 $dockerArgs.AddRange((Get-SharedDockerArgs))
206206 $dockerArgs.Add($HeadroomImage)
207207 $dockerArgs.Add('--host')
@@ -269,6 +269,9 @@ function Test-HelpFlag {
269269 param([string[]]$Arguments)
270270
271271 foreach ($arg in $Arguments) {
272+ if ($arg -eq '--') {
273+ break
274+ }
272275 if ($arg -eq '--help' -or $arg -eq '-?') {
273276 return $true
274277 }
@@ -481,12 +484,12 @@ function Invoke-OpenClawPrepareEntryJson {
481484 )
482485
483486 $dockerArgs = New-Object System.Collections.Generic.List[string]
484- $dockerArgs.AddRange(@('run','--rm'))
487+ $dockerArgs.AddRange([string[]] @('run','--rm'))
485488 $dockerArgs.AddRange((Get-SharedDockerArgs))
486489 $dockerArgs.Add('--entrypoint')
487490 $dockerArgs.Add('headroom')
488491 $dockerArgs.Add($HeadroomImage)
489- $dockerArgs.AddRange(@('wrap','openclaw','--prepare-only','--proxy-port',"$($Parsed.ProxyPort)",'--startup-timeout-ms',"$($Parsed.StartupTimeoutMs)"))
492+ $dockerArgs.AddRange([string[]] @('wrap','openclaw','--prepare-only','--proxy-port',"$($Parsed.ProxyPort)",'--startup-timeout-ms',"$($Parsed.StartupTimeoutMs)"))
490493 if ($ExistingEntryJson) {
491494 $dockerArgs.Add('--existing-entry-json')
492495 $dockerArgs.Add($ExistingEntryJson)
@@ -515,12 +518,12 @@ function Invoke-OpenClawPrepareUnwrapEntryJson {
515518 param([string]$ExistingEntryJson)
516519
517520 $dockerArgs = New-Object System.Collections.Generic.List[string]
518- $dockerArgs.AddRange(@('run','--rm'))
521+ $dockerArgs.AddRange([string[]] @('run','--rm'))
519522 $dockerArgs.AddRange((Get-SharedDockerArgs))
520523 $dockerArgs.Add('--entrypoint')
521524 $dockerArgs.Add('headroom')
522525 $dockerArgs.Add($HeadroomImage)
523- $dockerArgs.AddRange(@('unwrap','openclaw','--prepare-only'))
526+ $dockerArgs.AddRange([string[]] @('unwrap','openclaw','--prepare-only'))
524527 if ($ExistingEntryJson) {
525528 $dockerArgs.Add('--existing-entry-json')
526529 $dockerArgs.Add($ExistingEntryJson)
@@ -883,14 +886,14 @@ function Invoke-PrepareOnly {
883886 )
884887
885888 $dockerArgs = New-Object System.Collections.Generic.List[string]
886- $dockerArgs.AddRange(@('run','--rm','-it'))
889+ $dockerArgs.AddRange([string[]] @('run','--rm','-it'))
887890 $dockerArgs.AddRange((Get-SharedDockerArgs))
888891 $dockerArgs.Add('--env')
889892 $dockerArgs.Add("HEADROOM_RTK_TARGET=$(Get-RtkTarget)")
890893 $dockerArgs.Add('--entrypoint')
891894 $dockerArgs.Add('headroom')
892895 $dockerArgs.Add($HeadroomImage)
893- $dockerArgs.AddRange(@('wrap',$Tool,'--prepare-only'))
896+ $dockerArgs.AddRange([string[]] @('wrap',$Tool,'--prepare-only'))
894897 foreach ($arg in $KnownArgs) {
895898 $dockerArgs.Add($arg)
896899 }
@@ -910,6 +913,11 @@ if ($args.Count -eq 0) {
910913
911914switch ($args[0]) {
912915 'wrap' {
916+ if ($args.Count -eq 1 -or $args[1] -eq '--help' -or $args[1] -eq '-?') {
917+ Invoke-HeadroomDocker -Arguments @('wrap','--help')
918+ exit 0
919+ }
920+
913921 if ($args.Count -lt 2) {
914922 Fail 'Usage: headroom wrap <claude|codex|aider|cursor|openclaw> [...]'
915923 }
@@ -928,12 +936,18 @@ switch ($args[0]) {
928936 exit 0
929937 }
930938
939+ if (Test-HelpFlag -Arguments $wrapArgs) {
940+ $helpArgs = @('wrap', $tool) + $wrapArgs
941+ Invoke-HeadroomDocker -Arguments $helpArgs
942+ exit 0
943+ }
944+
931945 $parsed = Parse-WrapArgs -Arguments $wrapArgs
932946 $proxyArgs = New-Object System.Collections.Generic.List[string]
933947 if ($parsed.Learn) { $proxyArgs.Add('--learn') }
934- if ($parsed.Backend) { $proxyArgs.AddRange(@('--backend', $parsed.Backend)) }
935- if ($parsed.Anyllm) { $proxyArgs.AddRange(@('--anyllm-provider', $parsed.Anyllm)) }
936- if ($parsed.Region) { $proxyArgs.AddRange(@('--region', $parsed.Region)) }
948+ if ($parsed.Backend) { $proxyArgs.AddRange([string[]] @('--backend', $parsed.Backend)) }
949+ if ($parsed.Anyllm) { $proxyArgs.AddRange([string[]] @('--anyllm-provider', $parsed.Anyllm)) }
950+ if ($parsed.Region) { $proxyArgs.AddRange([string[]] @('--region', $parsed.Region)) }
937951
938952 switch ($tool) {
939953 'claude' { }
@@ -990,6 +1004,11 @@ switch ($args[0]) {
9901004 }
9911005 }
9921006 'unwrap' {
1007+ if ($args.Count -eq 1 -or $args[1] -eq '--help' -or $args[1] -eq '-?') {
1008+ Invoke-HeadroomDocker -Arguments @('unwrap','--help')
1009+ exit 0
1010+ }
1011+
9931012 if ($args.Count -ge 2 -and $args[1] -eq 'openclaw') {
9941013 $unwrapArgs = if ($args.Count -gt 2) { $args[2..($args.Count - 1)] } else { @() }
9951014 if (Test-HelpFlag -Arguments $unwrapArgs) {
@@ -1019,7 +1038,7 @@ switch ($args[0]) {
10191038 }
10201039
10211040 $dockerArgs = New-Object System.Collections.Generic.List[string]
1022- $dockerArgs.AddRange(@('run','--rm','-it','-p',"$port`:$port"))
1041+ $dockerArgs.AddRange([string[]] @('run','--rm','-it','-p',"$port`:$port"))
10231042 $dockerArgs.AddRange((Get-SharedDockerArgs))
10241043 $dockerArgs.Add('--entrypoint')
10251044 $dockerArgs.Add('headroom')
0 commit comments