Classes/Extensions/AutoSave.psm1
using module "..\Dialog.psm1" using module "..\OpenAiChat.psm1" using module "..\Options.psm1" using module "..\..\Private\OutHelper.psm1" class AutoSave { [string]$Path [bool]$Enabled = $false [string] GetName() { return (Join-Path $($PWD) "pschat-$(Get-Date -Format "yyyy-MM-dd-HHmmss").json") } Save([Dialog]$dialog) { if(!$this.Enabled) { return } $fileContent = $dialog.ExportMessages($true) Out-File -FilePath $this.Path -InputObject $fileContent Write-Debug("AutoSaved to $($this.Path)") } [Dialog] AfterAnswer([Dialog]$dialog) { $this.Save($dialog) return $dialog } [Dialog] AfterQuestion([Dialog]$dialog) { $this.Save($dialog) return $dialog } [Dialog] BeforeChatLoop([Dialog]$dialog) { if(!$this.Enabled) { return $dialog } $this.Path = if($this.Path) { $this.Path } else { $this.GetName() } [OutHelper]::Info("- AutoSave: Saving to $($this.Path)") return $dialog } } |