TerminalTracker.psm1
|
#Requires -Version 5.1 <# .SYNOPSIS TerminalTracker - Monitor, save, and restore terminal sessions on Windows. .DESCRIPTION Tracks open CLI windows (Windows Terminal, PowerShell, CMD, Git Bash), their working directories, and session metadata. Supports save-and-close, restore, hide/show, archive, sync, and auto-start with Windows. #> # --------------------------------------------------------------------------- # Configuration & paths # --------------------------------------------------------------------------- $script:DataRoot = Join-Path $env:APPDATA 'TerminalTracker' $script:SessionsFile = Join-Path $script:DataRoot 'sessions.json' $script:ArchiveFile = Join-Path $script:DataRoot 'archive.json' $script:ConfigFile = Join-Path $script:DataRoot 'config.json' $script:SuspendedFile = Join-Path $script:DataRoot 'suspended.json' $script:LockFile = Join-Path $script:DataRoot '.lock' $script:NativeHelperLoaded = $false # --------------------------------------------------------------------------- # Dot-source module files in dependency order # --------------------------------------------------------------------------- . (Join-Path $PSScriptRoot 'Private/NativeHelper.ps1') . (Join-Path $PSScriptRoot 'Private/DataStore.ps1') . (Join-Path $PSScriptRoot 'Private/ArchiveHelper.ps1') . (Join-Path $PSScriptRoot 'Public/Config.ps1') . (Join-Path $PSScriptRoot 'Public/Session.ps1') . (Join-Path $PSScriptRoot 'Public/Archive.ps1') . (Join-Path $PSScriptRoot 'Public/WindowControl.ps1') . (Join-Path $PSScriptRoot 'Public/SuspendResume.ps1') . (Join-Path $PSScriptRoot 'Public/Discovery.ps1') . (Join-Path $PSScriptRoot 'Public/Monitor.ps1') . (Join-Path $PSScriptRoot 'Public/AutoStart.ps1') . (Join-Path $PSScriptRoot 'Public/Sync.ps1') . (Join-Path $PSScriptRoot 'Public/ProfileHook.ps1') . (Join-Path $PSScriptRoot 'Public/Dashboard.ps1') . (Join-Path $PSScriptRoot 'Public/Doctor.ps1') . (Join-Path $PSScriptRoot 'Public/Tray.ps1') # --------------------------------------------------------------------------- # Module initialization # --------------------------------------------------------------------------- Initialize-TTDataStore Initialize-NativeHelper # Export all public functions Export-ModuleMember -Function @( # Config 'Get-TTConfig' 'Set-TTConfig' # Session tracking 'Update-TTSession' 'Get-TTSession' 'Set-TTNote' 'Set-TTTag' 'Remove-TTSession' # Archive 'Get-TTArchive' 'Clear-TTArchive' # Window control 'Hide-TTWindow' 'Show-TTWindow' # Suspend / Resume 'Suspend-TTSession' 'Get-TTSuspended' 'Resume-TTSession' 'Open-TerminalAt' # Monitor 'Start-TTMonitor' 'Stop-TTMonitor' 'Invoke-TTMonitorCycle' # Auto-start 'Install-TTAutoStart' 'Remove-TTAutoStart' # Sync 'Export-TTState' 'Import-TTState' # Profile 'Install-TTProfileHook' 'Remove-TTProfileHook' 'Repair-TTProfileHook' # Doctor 'Invoke-TTDoctor' # Discovery 'Get-InteractiveTerminal' 'Find-TTTerminal' # Dashboard 'Show-TTDashboard' # Tray 'Start-TTTray' 'Stop-TTTray' 'Get-TTTrayStatus' ) |