# Project Progress ## Phase 1: Initial Setup 1. [x] Create `monitor_agent.py` 2. [x] Create `config.py` 3. [x] Create `requirements.txt` 4. [x] Create `README.md` 5. [x] Create `.gitignore` 6. [x] Create `SPEC.md` 7. [x] Create `PROMPT.md` 8. [x] Create `CONSTRAINTS.md` ## Phase 2: Data Storage 9. [x] Create `data_storage.py` 10. [x] Implement data storage functions in `data_storage.py` 11. [x] Update `monitor_agent.py` to use data storage 12. [x] Update `SPEC.md` to reflect data storage functionality ## Phase 3: Expanded Monitoring 13. [x] Implement CPU temperature monitoring 14. [x] Implement GPU temperature monitoring 15. [x] Implement system login attempt monitoring 16. [x] Update `monitor_agent.py` to include new metrics 17. [x] Update `SPEC.md` to reflect new metrics 18. [x] Extend `calculate_baselines` to include system temps ## Phase 4: Troubleshooting 19. [x] Investigated and resolved issue with `jc` library 20. [x] Removed `jc` library as a dependency 21. [x] Implemented manual parsing of `sensors` command output ## Tasks Already Done [x] Ensure we aren't using mockdata for get_system_logs() and get_network_metrics() [x] Improve `get_system_logs()` to read new lines since last check [x] Improve `get_network_metrics()` by using a library like `pingparsing` [x] Ensure we are including CONSTRAINTS.md in our analyze_data_with_llm() function [x] Summarize entire report into a single sentence to said to Home Assistant [x] Figure out why Home Assitant isn't using the speaker ## Keeping track of Current Objectives [x] Improve "high" priority detection by explicitly instructing LLM to output severity in structured JSON format. [x] Implement dynamic contextual information (Known/Resolved Issues Feed) for LLM to improve severity detection. ## Network Scanning (Nmap Integration) 1. [ ] Add `python-nmap` to `requirements.txt` and install. 2. [ ] Define `NMAP_TARGETS` and `NMAP_SCAN_OPTIONS` in `config.py`. 3. [ ] Create a new function `get_nmap_scan_results()` in `monitor_agent.py`: * [ ] Use `python-nmap` to perform a scan on the defined targets with the specified options. * [ ] Return the parsed results. 4. [ ] Integrate `get_nmap_scan_results()` into the main monitoring loop: * [ ] Call this function periodically (e.g., less frequently than other metrics). * [ ] Add the `nmap` results to the `combined_data` dictionary. 5. [ ] Update `data_storage.py` to store `nmap` results. 6. [ ] Extend `calculate_baselines()` in `data_storage.py` to include `nmap` baselines: * [ ] Compare current `nmap` results with historical data to identify changes. 7. [ ] Modify `analyze_data_with_llm()` prompt to include `nmap` scan results for analysis. 8. [ ] Consider how to handle `nmap` permissions.