TechToolbox.psd1
|
# # Module manifest for module 'TechToolbox' # # Generated by: Dan Damit # # Generated on: 9/5/2026 # @{ # Script module or binary module file associated with this manifest. RootModule = 'TechToolbox.psm1' # Version number of this module. ModuleVersion = '0.5.117' # Supported PSEditions CompatiblePSEditions = 'Core' # ID used to uniquely identify this module GUID = '5bfe2119-e8be-4ac4-8183-7ebc7400058c' # Author of this module Author = 'Dan Damit' # Company or vendor of this module CompanyName = 'Value Added Companies' # Copyright statement for this module Copyright = '(c) Dan Damit. All rights reserved.' # Description of the functionality provided by this module Description = 'A technician-grade toolbox for automation, diagnostics, and enterprise workflows. Invoke-TechAgent now supports OpenAI API key usage for cloud-based inference, allowing operators to leverage the TechAgent workflows without local inference requirements. First time users should start with Get-TechToolboxConfig and Get-ToolboxHelp. TechToolbox also utilizes the conventional PowerShell help system, so Get-Help <command-name> is your friend.' # Minimum version of the PowerShell engine required by this module PowerShellVersion = '7.6.5' # Name of the PowerShell host required by this module # PowerShellHostName = '' # Minimum version of the PowerShell host required by this module # PowerShellHostVersion = '' # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. # DotNetFrameworkVersion = '' # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. # ClrVersion = '' # Processor architecture (None, X86, Amd64) required by this module # ProcessorArchitecture = '' # Modules that must be imported into the global environment prior to importing this module # RequiredModules = @() # Assemblies that must be loaded prior to importing this module # RequiredAssemblies = @() # Script files (.ps1) that are run in the caller's environment prior to importing this module. # ScriptsToProcess = @() # Type files (.ps1xml) to be loaded when importing this module # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module # FormatsToProcess = @() # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess # NestedModules = @() # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. FunctionsToExport = 'Clear-BrowserProfileData', 'Copy-Directory', 'Disable-User', 'Enable-NetFx3', 'Export-ToolboxFunctions', 'Find-LargeFiles', 'Get-AllUsers', 'Get-AuditSharedMailboxDeletions', 'Get-AutodiscoverXmlInteractive', 'Get-BatteryHealth', 'Get-CUCredentialManagerContents', 'Get-DomainAdminCredential', 'Get-ErrorEvents', 'Get-FilesUsingKeywords', 'Get-InstalledPrinters', 'Get-LocalAdminMembers', 'Get-MessageTrace', 'Get-PDQDiagLogs', 'Get-RemoteInstalledSoftware', 'Get-SharedMailboxPermissions', 'Get-SystemSnapshot', 'Get-SystemTrustDiagnostic', 'Get-SystemUptime', 'Get-TechAgentQualitySummary', 'Get-TechToolboxConfig', 'Get-ToolboxHelp', 'Get-WindowsProductKey', 'Initialize-TTWordList', 'Install-TechAgentRuntime', 'Invoke-AADSyncRemote', 'Invoke-DownloadsCleanup', 'Invoke-PurviewPurge', 'Invoke-RestartService', 'Invoke-SubnetScan', 'Invoke-SystemRepair', 'Invoke-TechAgent', 'New-OnPremUserFromTemplate', 'Remove-EpicorEdgeAgent', 'Remove-Printers', 'Reset-ADPassword', 'Reset-WindowsUpdateComponents', 'Search-User', 'Set-EmailAlias', 'Set-OneTimeReboot', 'Set-PageFileSize', 'Set-ProxyAddress', 'Set-TechAgentApiKey', 'Set-TechAgentSearchWebApiKey', 'Start-DnsQueryLogger', 'Start-NewPSRemoteSession', 'Start-PDQDiagLocalElevated', 'Stop-PSRemoteSession', 'Test-MailHeaderAuth', 'Test-PathAs', 'Test-TechAgentProvider', 'Test-TTPathRoots', 'Use-TechAgentTaskTemplate', 'Watch-ISPConnection' # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. CmdletsToExport = '*' # Variables to export from this module VariablesToExport = '*' # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. AliasesToExport = @() # DSC resources to export from this module # DscResourcesToExport = @() # List of all modules packaged with this module # ModuleList = @() # List of all files packaged with this module # FileList = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. PrivateData = @{ #TechToolbox of this module TechToolbox = 'System.Collections.Hashtable' PSData = @{ # Tags applied to this module. These help with module discovery in online galleries. Tags = 'automation','networking','diagnostics','toolbox','troubleshooting','enterprise','sysadmin','itpro','helpdesk','technician','workflow','utilities','agent','ai','ad','exchange','windows','security','performance','monitoring' # A URL to the license for this module. LicenseUri = 'https://opensource.org/licenses/MIT' # A URL to the main website for this project. ProjectUri = 'https://github.com/dan-damit/TechToolbox' # A URL to an icon representing this module. # IconUri = '' # ReleaseNotes of this module ReleaseNotes = ' ## LLM Client Upgrade Release Notes ### Summary - Completed a seven-phase upgrade plan for reliability, architecture, capability handling, routing, testing, optional enhancements, and future extensibility. - Scope remains limited to the LLM client stack, related configuration, orchestration boundaries, and tests. - Each phase requires deterministic behavior, explicit ownership boundaries, sensitive-data redaction, resource limits, and bounded validation. ### Phase highlights #### Phase 1 - Critical reliability - Dispose all HTTP responses and avoid unnecessary private HttpClient instances. - Distinguish user cancellation from internal timeouts. - Refactor Ollama streaming to use response-header streaming with incremental token delivery. - Standardize callback and early-stop behavior across providers. - Add reliability characterization tests and enforce dependency and compatibility gates. #### Phase 2 - Architectural consistency - Add injectable transport seams where needed for deterministic testing. - Stop mutating caller-provided configuration during client resolution. - Prefer pure configuration and profile resolution. - Support configurable Ollama endpoints, including HTTPS and remote deployments. - Improve thread-safe, predictable provider construction and replace static environment reads where practical. #### Phase 3 - Capability normalization - Centralize provider capability metadata. - Normalize streaming, reasoning-effort, sampling, and Responses API support flags. - Make OpenAI-compatible streaming or non-streaming behavior explicit. - Preserve early-stop behavior even for non-streaming providers. - Unify callback semantics and cover provider differences with tests. #### Phase 4 - Routing heuristics - Replace simple substring coding detection with stronger token-based or weighted heuristics. - Reduce false-positive routing to coding models. - Normalize and validate thinking-mode values case-insensitively. - Emit diagnostics for missing, invalid, or fallback runtime profiles. - Keep routing deterministic and test the revised decision boundaries. #### Phase 5 - Comprehensive test suite - Add deterministic, network-independent coverage for chat and Responses-style payloads. - Test response disposal, cancellation, timeouts, streaming transport, callbacks, and early-stop handling. - Cover provider, model, and runtime-profile routing. - Cover endpoint overrides, reasoning effort, sampling, refusal extraction, and provider-specific behavior. - Require at least one previously untested edge case across payload, transport, routing, and callback areas. #### Phase 6 - Optional enhancements - Add structured error taxonomy only where it reduces ambiguity safely. - Introduce low-risk observability seams for timing, retries, and streaming latency. - Centralize retry and backoff only when provider behavior remains unchanged. - Keep enhancements isolated, testable, and compatible with the existing client behavior. - Defer broad rewrites or unsafe optional features rather than expanding scope. #### Phase 7 - Future proofing - Add small, declarative extension hooks for future providers and use cases. - Preserve current Ollama, OpenAI-compatible, and Azure OpenAI behavior as the baseline. - Avoid speculative multi-model execution, persistent memory, tool-state persistence, and framework-style redesigns. - Validate extension seams with characterization and phase-specific tests. - Prefer minimal composable abstractions and document gaps when no safe seam exists. ### Cross-phase safeguards - Every phase uses bounded discovery, edit, and validation budgets. - Validation is based on a Release build and targeted tests with at most one repair cycle. - Retry, transport, callback, configuration, routing, and extension ownership must remain explicit. - Diagnostics and logging must redact sensitive data and respect resource limits. - Scope expansion into multi-model execution, persistent context, compression, or unrelated provider changes is explicitly deferred.' # Prerelease string of this module # Prerelease = '' # Flag to indicate whether the module requires explicit user acceptance for install/update/save # RequireLicenseAcceptance = $false # External dependent modules of this module # ExternalModuleDependencies = @() } # End of PSData hashtable } # End of PrivateData hashtable # HelpInfo URI of this module HelpInfoURI = 'https://dan-damit.github.io/TechToolbox-Docs/' # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' } |