diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 00000000..12e2af62 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"bb6994f9-af09-43bb-878c-0461b669706b","pid":28492,"acquiredAt":1778626705410} \ No newline at end of file diff --git a/clients/grabb-durando/collect-rmm-install-diag.ps1 b/clients/grabb-durando/collect-rmm-install-diag.ps1 new file mode 100644 index 00000000..57f6ecbd --- /dev/null +++ b/clients/grabb-durando/collect-rmm-install-diag.ps1 @@ -0,0 +1,163 @@ +#Requires -RunAsAdministrator +# GuruRMM Agent Install Diagnostic +# Run on GND-SERVER after MSI install attempt + +$out = [System.Collections.Generic.List[string]]::new() +function Log($msg) { $out.Add($msg); Write-Host $msg } +function Section($title) { Log ""; Log ("=" * 60); Log " $title"; Log ("=" * 60) } + +Section "SYSTEM INFO" +Log "Hostname: $env:COMPUTERNAME" +Log "Date/Time: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" +Log "OS: $((Get-CimInstance Win32_OperatingSystem).Caption)" +Log "Arch: $env:PROCESSOR_ARCHITECTURE" + +Section "SERVICE STATUS" +$svc = Get-Service -Name "gururmm*" -ErrorAction SilentlyContinue +if ($svc) { + foreach ($s in $svc) { + Log "Name: $($s.Name)" + Log "DisplayName: $($s.DisplayName)" + Log "Status: $($s.Status)" + Log "StartType: $($s.StartType)" + } +} else { + Log "[NOT FOUND] No service matching 'gururmm*'" +} + +Section "SERVICE BINARY" +$svcWmi = Get-WmiObject Win32_Service -Filter "Name LIKE 'gururmm%'" -ErrorAction SilentlyContinue +if ($svcWmi) { + Log "PathName: $($svcWmi.PathName)" + Log "StartName: $($svcWmi.StartName)" + $binPath = $svcWmi.PathName -replace '"','' + if (Test-Path $binPath) { + $bin = Get-Item $binPath + Log "Binary: $($bin.FullName)" + Log "Size: $($bin.Length) bytes" + Log "Modified: $($bin.LastWriteTime)" + $ver = (Get-Item $binPath).VersionInfo + Log "FileVersion: $($ver.FileVersion)" + } else { + Log "[NOT FOUND] Binary path does not exist: $binPath" + } +} else { + Log "[NOT FOUND] No WMI service entry for gururmm" +} + +Section "REGISTRY" +$regPath = "HKLM:\SOFTWARE\GuruRMM" +if (Test-Path $regPath) { + Log "Key exists: $regPath" + Get-ItemProperty $regPath -ErrorAction SilentlyContinue | ForEach-Object { + $_.PSObject.Properties | Where-Object { $_.Name -notmatch '^PS' } | ForEach-Object { + Log " $($_.Name) = $($_.Value)" + } + } +} else { + Log "[NOT FOUND] $regPath does not exist" +} + +Section "INSTALLED PROGRAMS (MSI)" +$rmm = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", + "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" ` + -ErrorAction SilentlyContinue | + Where-Object { $_.DisplayName -match "GuruRMM|gururmm" } +if ($rmm) { + foreach ($r in $rmm) { + Log "DisplayName: $($r.DisplayName)" + Log "DisplayVersion: $($r.DisplayVersion)" + Log "InstallDate: $($r.InstallDate)" + Log "InstallLocation:$($r.InstallLocation)" + Log "Publisher: $($r.Publisher)" + } +} else { + Log "[NOT FOUND] No GuruRMM entry in Add/Remove Programs" +} + +Section "MSI EVENT LOG (last 20 MsiInstaller events)" +Get-WinEvent -FilterHashtable @{ + LogName = 'Application' + ProviderName = 'MsiInstaller' +} -MaxEvents 20 -ErrorAction SilentlyContinue | ForEach-Object { + Log "$($_.TimeCreated) [$($_.Id)] $($_.Message -replace '\r?\n',' ' | Select-Object -First 1)" +} + +Section "APPLICATION EVENT LOG (gururmm, last 30 entries)" +Get-WinEvent -FilterHashtable @{ + LogName = 'Application' + StartTime = (Get-Date).AddHours(-4) +} -ErrorAction SilentlyContinue | +Where-Object { $_.Message -match "gururmm|GuruRMM" -or $_.ProviderName -match "gururmm" } | +Select-Object -Last 30 | ForEach-Object { + Log "$($_.TimeCreated) [$($_.LevelDisplayName)] $($_.ProviderName): $($_.Message -replace '\r?\n',' ')" +} + +Section "SYSTEM EVENT LOG (service control, last 20)" +Get-WinEvent -FilterHashtable @{ + LogName = 'System' + StartTime = (Get-Date).AddHours(-4) + Id = @(7000,7001,7009,7023,7031,7034,7036,7040,7045) +} -ErrorAction SilentlyContinue | +Where-Object { $_.Message -match "gururmm|GuruRMM" } | +Select-Object -Last 20 | ForEach-Object { + Log "$($_.TimeCreated) [ID $($_.Id)] $($_.Message -replace '\r?\n',' ')" +} + +Section "AGENT LOG FILES" +$searchPaths = @( + "$env:ProgramData\GuruRMM", + "$env:ProgramFiles\GuruRMM", + "$env:ProgramFiles\gururmm-agent", + "C:\Program Files\GuruRMM", + "C:\ProgramData\GuruRMM" +) +$foundAny = $false +foreach ($p in $searchPaths) { + if (Test-Path $p) { + $foundAny = $true + Log "Found: $p" + Get-ChildItem $p -Recurse -ErrorAction SilentlyContinue | ForEach-Object { + Log " $($_.FullName) ($($_.Length) bytes)" + } + # Print last 50 lines of any .log files + Get-ChildItem $p -Recurse -Filter "*.log" -ErrorAction SilentlyContinue | ForEach-Object { + Log "" + Log "--- $($_.FullName) (last 50 lines) ---" + Get-Content $_.FullName -Tail 50 -ErrorAction SilentlyContinue | ForEach-Object { Log $_ } + } + } +} +if (-not $foundAny) { Log "[NOT FOUND] No agent data directories found" } + +Section "NETWORK CONNECTIVITY" +$targets = @( + @{Host="rmm.azcomputerguru.com"; Port=443; Label="RMM HTTPS"}, + @{Host="172.16.3.30"; Port=3001; Label="RMM API (internal)"}, + @{Host="8.8.8.8"; Port=53; Label="DNS (Google)"} +) +foreach ($t in $targets) { + $hp = "$($t.Host):$($t.Port)" + try { + $tcp = [System.Net.Sockets.TcpClient]::new() + $r = $tcp.BeginConnect($t.Host, $t.Port, $null, $null) + $ok = $r.AsyncWaitHandle.WaitOne(3000) + $tcp.Close() + if ($ok) { Log "[OK] $($t.Label) ($hp)" } + else { Log "[FAIL] $($t.Label) ($hp) -- timeout" } + } catch { + Log "[FAIL] $($t.Label) ($hp) -- $($_.Exception.Message)" + } +} + +Section "FIREWALL (outbound rules for gururmm)" +Get-NetFirewallRule -ErrorAction SilentlyContinue | +Where-Object { $_.DisplayName -match "gururmm|GuruRMM" } | +ForEach-Object { Log "$($_.DisplayName) [$($_.Direction)] [$($_.Action)] [$($_.Enabled)]" } + +# Write output file +$outFile = "$env:TEMP\gururmm-diag-$env:COMPUTERNAME-$(Get-Date -Format 'yyyyMMdd-HHmmss').txt" +$out | Set-Content $outFile -Encoding UTF8 +Write-Host "" +Write-Host "Diagnostic saved to: $outFile" +Write-Host "Copy it back with: type `"$outFile`"" diff --git a/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Checklist (2).docx b/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Checklist (2).docx new file mode 100644 index 00000000..928cf4ff Binary files /dev/null and b/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Checklist (2).docx differ diff --git a/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Phase_Two_Package.docx b/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Phase_Two_Package.docx new file mode 100644 index 00000000..b1ea1c4f Binary files /dev/null and b/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Phase_Two_Package.docx differ diff --git a/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Template_and_Docs.zip b/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Template_and_Docs.zip new file mode 100644 index 00000000..f83fd815 Binary files /dev/null and b/clients/grabb-durando/extracted-attachments/AI_Demand_Review_Template_and_Docs.zip differ diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/01 Intake and Client Facts/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/01 Intake and Client Facts/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..d62d5c24 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/01 Intake and Client Facts/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 01 Intake and Client Facts +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/02 Liability Documents/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/02 Liability Documents/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..d09b7b46 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/02 Liability Documents/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 02 Liability Documents +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/03 Photos and Videos/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/03 Photos and Videos/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..834acc76 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/03 Photos and Videos/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 03 Photos and Videos +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/04 Insurance and Claim Info/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/04 Insurance and Claim Info/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..4aeafcec --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/04 Insurance and Claim Info/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 04 Insurance and Claim Info +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/05 Medical Records/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/05 Medical Records/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..f4b77cc5 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/05 Medical Records/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 05 Medical Records +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/06 Medical Bills/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/06 Medical Bills/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..02cc051c --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/06 Medical Bills/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 06 Medical Bills +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/07 Liens and LOPs/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/07 Liens and LOPs/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..41820698 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/07 Liens and LOPs/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 07 Liens and LOPs +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/08 Wage Loss/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/08 Wage Loss/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..1c6ee6a7 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/08 Wage Loss/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 08 Wage Loss +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/09 Adjuster Correspondence/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/09 Adjuster Correspondence/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..f04eaac2 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/09 Adjuster Correspondence/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 09 Adjuster Correspondence +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/10 Prior Offers and Demands/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/10 Prior Offers and Demands/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..0087a4c1 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/10 Prior Offers and Demands/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 10 Prior Offers and Demands +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/11 AI Output/PUT DOCUMENTS HERE.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/11 AI Output/PUT DOCUMENTS HERE.txt new file mode 100644 index 00000000..b31dbc15 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/11 AI Output/PUT DOCUMENTS HERE.txt @@ -0,0 +1,2 @@ +This folder is for: 11 AI Output +Delete this placeholder after adding case documents. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Checklist.docx b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Checklist.docx new file mode 100644 index 00000000..928cf4ff Binary files /dev/null and b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Checklist.docx differ diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Checklist.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Checklist.txt new file mode 100644 index 00000000..9d140c1c --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Checklist.txt @@ -0,0 +1,54 @@ +AI DEMAND REVIEW CHECKLIST + +Client Name: _______________________________ +Date of Loss: _______________________________ +Staff Member: ______________________________ +Attorney Reviewer: __________________________ + +Before using AI, confirm that the AI Demand Review folder contains, if available: + +[ ] Intake/client facts +[ ] Police report or incident report +[ ] Photos/videos +[ ] Insurance/claim information +[ ] Medical records +[ ] Medical bills +[ ] Liens/LOPs +[ ] Wage loss documents +[ ] Adjuster correspondence +[ ] Prior offers/demands + +Before uploading to AI: + +[ ] Confirm we are using the firm-approved AI account only +[ ] Confirm no personal AI account is being used +[ ] Confirm documents are in the correct AI Demand Review folder +[ ] Confirm obvious duplicate/junk documents are removed +[ ] Confirm highly sensitive unnecessary documents are excluded + +After AI produces output: + +[ ] Save AI case snapshot to 11 AI Output +[ ] Save AI medical chronology to 11 AI Output +[ ] Save AI specials summary to 11 AI Output +[ ] Save AI missing-items list to 11 AI Output +[ ] Save AI demand draft to 11 AI Output + +Before demand is sent, verify: + +[ ] Client name +[ ] Date of loss +[ ] Defendant/tortfeasor name +[ ] Insurance carrier +[ ] Claim number +[ ] Policy limits, if known +[ ] Treatment dates +[ ] Provider names +[ ] Diagnoses/injuries +[ ] Medical bill totals +[ ] Liens/LOPs +[ ] Wage loss +[ ] Prior offers +[ ] Demand amount +[ ] Response deadline +[ ] Attorney approval diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Office Procedure.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Office Procedure.txt new file mode 100644 index 00000000..20dc3ed4 --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/AI Demand Review Office Procedure.txt @@ -0,0 +1,38 @@ +AI DEMAND REVIEW OFFICE PROCEDURE + +Purpose +This procedure creates a repeatable process for using the firm-approved AI account to prepare pre-suit personal injury demand packages. + +1. When to use this procedure +Use this procedure when a case is ready for demand preparation or when the attorney asks staff to prepare an AI demand review. + +2. Create the case AI folder +Copy the folder named "AI Demand Review - TEMPLATE" into the client's case file. Rename it using this format: + +[Client Last Name], [Client First Name] - AI Demand Review + +Example: +Smith, Mary - AI Demand Review + +3. Add documents to the correct folders +Place the relevant documents into the matching subfolders. Do not place unrelated documents, duplicate scans, or obvious junk documents into the AI review folder. + +4. Use only firm-approved AI +Client materials may be uploaded only to the firm-approved AI account/workspace. Do not use personal ChatGPT accounts, random AI websites, browser extensions, free PDF summarizers, or unapproved AI tools. + +5. Run the standard prompt +Upload the documents or selected folder contents to the firm-approved AI account. Copy and paste the "Standard AI Demand Prompt" into the AI chat. + +6. Save AI output +Save the AI output in the "11 AI Output" folder, using clear filenames such as: +- AI Case Snapshot.docx +- AI Medical Chronology.docx +- AI Specials Summary.docx +- AI Missing Items List.docx +- AI Demand Draft.docx + +7. Required review +The demand letter may not be sent until staff verifies the key facts and the attorney approves the final demand. + +8. Attorney approval +AI is a drafting and organization tool. It does not replace attorney judgment. No AI output may be sent to an adjuster, opposing counsel, court, or client unless reviewed and approved under firm procedure. diff --git a/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/Standard AI Demand Prompt.txt b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/Standard AI Demand Prompt.txt new file mode 100644 index 00000000..1128bc1e --- /dev/null +++ b/clients/grabb-durando/extracted-attachments/zip-contents/AI_Demand_Review_Phase_Two/AI Demand Review - TEMPLATE/Standard AI Demand Prompt.txt @@ -0,0 +1,39 @@ +You are assisting a plaintiff personal injury law firm in Arizona with a pre-suit demand package. + +Review the uploaded materials for this case. Prepare the following: + +1. One-page case snapshot +2. Liability summary +3. Medical chronology by date and provider +4. Medical specials summary by provider +5. Summary of liens, LOPs, MedPay, or reimbursement issues if shown in the documents +6. Missing records, missing bills, or missing information +7. Case strengths +8. Case weaknesses or defense arguments +9. Questions for staff or attorney review +10. Draft settlement demand letter + +Important instructions: + +Do not invent facts. +Do not assume facts not shown in the documents. +If something is unclear, say "unclear from the materials provided." +If documents are missing, identify what is missing. +Separate confirmed facts from assumptions. +Use a professional plaintiff personal injury tone. +Do not include legal citations unless specifically requested. +Do not send anything. This is a draft for attorney review. + +After preparing the demand letter, create a short checklist of facts that staff or attorney must verify before the demand is sent, including: +- client name +- date of loss +- defendant name +- insurance carrier +- claim number +- treatment dates +- providers +- bill totals +- liens +- policy limits, if known +- demand amount +- response deadline diff --git a/clients/grabb-durando/gururmm-agent-grabb-main-office.msi b/clients/grabb-durando/gururmm-agent-grabb-main-office.msi new file mode 100644 index 00000000..afb22415 Binary files /dev/null and b/clients/grabb-durando/gururmm-agent-grabb-main-office.msi differ diff --git a/clients/grabb-durando/gururmm-diag-GND-SERVER-20260512-155234.txt b/clients/grabb-durando/gururmm-diag-GND-SERVER-20260512-155234.txt new file mode 100644 index 00000000..2dfdb2d0 --- /dev/null +++ b/clients/grabb-durando/gururmm-diag-GND-SERVER-20260512-155234.txt @@ -0,0 +1,88 @@ + +============================================================ + SYSTEM INFO +============================================================ +Hostname: GND-SERVER +Date/Time: 2026-05-12 15:52:21 +OS: Microsoft Windows Server 2019 Standard +Arch: AMD64 + +============================================================ + SERVICE STATUS +============================================================ +Name: GuruRMMAgent +DisplayName: GuruRMM Agent +Status: Running +StartType: Automatic + +============================================================ + SERVICE BINARY +============================================================ +PathName: "C:\Program Files\GuruRMM\gururmm-agent.exe" service +StartName: LocalSystem +[NOT FOUND] Binary path does not exist: C:\Program Files\GuruRMM\gururmm-agent.exe service + +============================================================ + REGISTRY +============================================================ +Key exists: HKLM:\SOFTWARE\GuruRMM + InstallDir = C:\Program Files\GuruRMM\ + SiteId = d526d700-7210-48b1-94a9-40c87a29dc25 + Version = 0.6.2 + AgentKey = agk_NEzx7sRA9JdDSL2xr2ukAYK2L427G4G0 + +============================================================ + INSTALLED PROGRAMS (MSI) +============================================================ +DisplayName: GuruRMM Agent +DisplayVersion: 0.6.2 +InstallDate: 20260512 +InstallLocation: +Publisher: Arizona Computer Guru LLC + +============================================================ + MSI EVENT LOG (last 20 MsiInstaller events) +============================================================ +05/12/2026 15:44:22 [1033] Windows Installer installed the product. Product Name: GuruRMM Agent. Product Version: 0.6.2. Product Language: 1033. Manufacturer: Arizona Computer Guru LLC. Installation success or error status: 0. +05/12/2026 15:44:22 [11707] Product: GuruRMM Agent -- Installation completed successfully. +05/12/2026 15:44:22 [1042] Ending a Windows Installer transaction: C:\Users\sysadmin.gd\Desktop\gururmm-agent-grabb-main-office.msi. Client Process Id: 12280. +05/12/2026 15:44:18 [1040] Beginning a Windows Installer transaction: C:\Users\sysadmin.gd\Desktop\gururmm-agent-grabb-main-office.msi. Client Process Id: 12280. + +============================================================ + APPLICATION EVENT LOG (gururmm, last 30 entries) +============================================================ +05/12/2026 15:44:22 [Information] MsiInstaller: Windows Installer installed the product. Product Name: GuruRMM Agent. Product Version: 0.6.2. Product Language: 1033. Manufacturer: Arizona Computer Guru LLC. Installation success or error status: 0. +05/12/2026 15:44:22 [Information] MsiInstaller: Product: GuruRMM Agent -- Installation completed successfully. +05/12/2026 15:44:22 [Information] MsiInstaller: Ending a Windows Installer transaction: C:\Users\sysadmin.gd\Desktop\gururmm-agent-grabb-main-office.msi. Client Process Id: 12280. +05/12/2026 15:44:18 [Information] MsiInstaller: Beginning a Windows Installer transaction: C:\Users\sysadmin.gd\Desktop\gururmm-agent-grabb-main-office.msi. Client Process Id: 12280. + +============================================================ + SYSTEM EVENT LOG (service control, last 20) +============================================================ +05/12/2026 15:44:22 [ID 7036] The GuruRMM Agent service entered the running state. +05/12/2026 15:44:21 [ID 7045] A service was installed in the system. Service Name: GuruRMM Agent Service File Name: "C:\Program Files\GuruRMM\gururmm-agent.exe" service Service Type: user mode service Service Start Type: auto start Service Account: LocalSystem + +============================================================ + AGENT LOG FILES +============================================================ +Found: C:\ProgramData\GuruRMM + C:\ProgramData\GuruRMM\agent.log.2026-05-12 (0 bytes) + C:\ProgramData\GuruRMM\install-report.ps1 (15766 bytes) +Found: C:\Program Files\GuruRMM + C:\Program Files\GuruRMM\gururmm-agent.exe (4235264 bytes) +Found: C:\Program Files\GuruRMM + C:\Program Files\GuruRMM\gururmm-agent.exe (4235264 bytes) +Found: C:\ProgramData\GuruRMM + C:\ProgramData\GuruRMM\agent.log.2026-05-12 (0 bytes) + C:\ProgramData\GuruRMM\install-report.ps1 (15766 bytes) + +============================================================ + NETWORK CONNECTIVITY +============================================================ +[OK] RMM HTTPS (rmm.azcomputerguru.com:443) +[FAIL] RMM API (internal) (172.16.3.30:3001) -- timeout +[OK] DNS (Google) (8.8.8.8:53) + +============================================================ + FIREWALL (outbound rules for gururmm) +============================================================ diff --git a/projects/msp-tools/guru-rmm b/projects/msp-tools/guru-rmm index 0191481b..90e8ae60 160000 --- a/projects/msp-tools/guru-rmm +++ b/projects/msp-tools/guru-rmm @@ -1 +1 @@ -Subproject commit 0191481b3080067f71e36a87eab39c791c190fd2 +Subproject commit 90e8ae60bf70275b8ca16ab45006bf06dba6bfd8