$os = "Windows 11"
$shell = "PowerShell"
$model = "open-aigpt35-turbo"
Set-PSReadlineKeyHandler -Key 'Alt+s' -ScriptBlock {
# Generate a unique temporary file name
$tempFileName = [System.IO.Path]::GetTempFileName()
$bufferState = $cursorState = $null
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref] $bufferState, [ref] $cursorState)
# Write the buffer content to the temporary file
$bufferState | Out-File -FilePath $tempFileName -Force
# Run the CLI application with the temporary file
Start-Process shai -ArgumentList "ask --operating-system `"$os`" --shell `"$shell`" --model $model --edit-file $tempFileName" -Wait
$fileContents = Get-Content -Raw -Path $tempFileName
# # Remove the temporary file
Remove-Item -Path $tempFileName -Force
[Microsoft.PowerShell.PSConsoleReadLine]::BackwardKillLine()
[Microsoft.PowerShell.PSConsoleReadLine]::KillLine()
[Microsoft.PowerShell.PSConsoleReadLine]::Insert($fileContents)
}
Set-PSReadlineKeyHandler -Key 'Alt+e' -ScriptBlock {
# Generate a unique temporary file name
$tempFileName = [System.IO.Path]::GetTempFileName()
$bufferState = $cursorState = $null
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref] $bufferState, [ref] $cursorState)
# Write the buffer content to the temporary file
$bufferState | Out-File -FilePath $tempFileName -Force
# Run the CLI application with the temporary file
Start-Process shai -ArgumentList "explain --operating-system `"$os`" --shell `"$shell`" --model $model --edit-file $tempFileName" -Wait
$fileContents = Get-Content -Raw -Path $tempFileName
# # Remove the temporary file
Remove-Item -Path $tempFileName -Force
[Microsoft.PowerShell.PSConsoleReadLine]::BackwardKillLine()
[Microsoft.PowerShell.PSConsoleReadLine]::KillLine()
[Microsoft.PowerShell.PSConsoleReadLine]::Insert($fileContents)
}