safaai 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- safaai-0.1.0/.github/workflows/release.yml +44 -0
- safaai-0.1.0/.gitignore +14 -0
- safaai-0.1.0/.hermes/plans/2026-07-23_094100-safai-tui-implementation.md +1054 -0
- safaai-0.1.0/.hermes/plans/2026-07-25_001500-safai-vs-cleanmymac-benchmark.md +331 -0
- safaai-0.1.0/.hermes/plans/2026-07-25_031000-clean-workflow-ux-polish.md +543 -0
- safaai-0.1.0/.hermes/plans/2026-07-25_040000-live-streaming-parallel-cleanup-and-admin-modal.md +30 -0
- safaai-0.1.0/.hermes/plans/2026-07-25_141500-cleanmymac-cli-benchmark.md +242 -0
- safaai-0.1.0/.hermes/plans/2026-07-25_143000-gap-closure-execution.md +444 -0
- safaai-0.1.0/.hermes/plans/2026-07-25_225000-asciimatics-splash-animation.md +64 -0
- safaai-0.1.0/.python-version +1 -0
- safaai-0.1.0/AGENTS.md +105 -0
- safaai-0.1.0/PKG-INFO +118 -0
- safaai-0.1.0/README.md +98 -0
- safaai-0.1.0/design.md +75 -0
- safaai-0.1.0/graphify-out/.graphify_labels.json +66 -0
- safaai-0.1.0/graphify-out/.graphify_root +1 -0
- safaai-0.1.0/graphify-out/2026-07-25/.graphify_labels.json +74 -0
- safaai-0.1.0/graphify-out/2026-07-25/GRAPH_REPORT.md +353 -0
- safaai-0.1.0/graphify-out/2026-07-25/graph.json +44773 -0
- safaai-0.1.0/graphify-out/2026-07-25/manifest.json +442 -0
- safaai-0.1.0/graphify-out/2026-07-27/.graphify_labels.json +74 -0
- safaai-0.1.0/graphify-out/2026-07-27/GRAPH_REPORT.md +373 -0
- safaai-0.1.0/graphify-out/2026-07-27/graph.json +44520 -0
- safaai-0.1.0/graphify-out/2026-07-27/manifest.json +472 -0
- safaai-0.1.0/graphify-out/GRAPH_REPORT.md +329 -0
- safaai-0.1.0/graphify-out/graph.html +320 -0
- safaai-0.1.0/graphify-out/graph.json +35533 -0
- safaai-0.1.0/graphify-out/manifest.json +472 -0
- safaai-0.1.0/pyproject.toml +44 -0
- safaai-0.1.0/safaai/__init__.py +3 -0
- safaai-0.1.0/safaai/__main__.py +22 -0
- safaai-0.1.0/safaai/actions/__init__.py +1 -0
- safaai-0.1.0/safaai/actions/executor.py +201 -0
- safaai-0.1.0/safaai/actions/kill.py +33 -0
- safaai-0.1.0/safaai/actions/optimize.py +85 -0
- safaai-0.1.0/safaai/actions/trash.py +53 -0
- safaai-0.1.0/safaai/app.py +59 -0
- safaai-0.1.0/safaai/commands/__init__.py +1 -0
- safaai-0.1.0/safaai/commands/palette.py +317 -0
- safaai-0.1.0/safaai/config.py +36 -0
- safaai-0.1.0/safaai/core/__init__.py +30 -0
- safaai-0.1.0/safaai/core/debug_log.py +86 -0
- safaai-0.1.0/safaai/core/ignore_db.py +108 -0
- safaai-0.1.0/safaai/core/journal.py +164 -0
- safaai-0.1.0/safaai/core/log_db.py +203 -0
- safaai-0.1.0/safaai/core/updater.py +101 -0
- safaai-0.1.0/safaai/css/__init__.py +6 -0
- safaai-0.1.0/safaai/css/dashboard.py +96 -0
- safaai-0.1.0/safaai/css/scan_results.py +54 -0
- safaai-0.1.0/safaai/css/screens.py +23 -0
- safaai-0.1.0/safaai/css/splash.py +28 -0
- safaai-0.1.0/safaai/icon.txt +55 -0
- safaai-0.1.0/safaai/scanners/__init__.py +3 -0
- safaai-0.1.0/safaai/scanners/base.py +51 -0
- safaai-0.1.0/safaai/scanners/brew.py +172 -0
- safaai-0.1.0/safaai/scanners/disk.py +117 -0
- safaai-0.1.0/safaai/scanners/docker.py +197 -0
- safaai-0.1.0/safaai/scanners/graph.py +624 -0
- safaai-0.1.0/safaai/scanners/memory.py +84 -0
- safaai-0.1.0/safaai/scanners/node.py +167 -0
- safaai-0.1.0/safaai/scanners/project_purge.py +111 -0
- safaai-0.1.0/safaai/scanners/registry.py +37 -0
- safaai-0.1.0/safaai/scanners/startup.py +112 -0
- safaai-0.1.0/safaai/scanners/xcode.py +80 -0
- safaai-0.1.0/safaai/screens/__init__.py +42 -0
- safaai-0.1.0/safaai/screens/admin_password.py +124 -0
- safaai-0.1.0/safaai/screens/clean_result.py +120 -0
- safaai-0.1.0/safaai/screens/confirm.py +631 -0
- safaai-0.1.0/safaai/screens/dashboard.py +38 -0
- safaai-0.1.0/safaai/screens/ignore_screen.py +105 -0
- safaai-0.1.0/safaai/screens/log_screen.py +462 -0
- safaai-0.1.0/safaai/screens/optimize_confirm.py +85 -0
- safaai-0.1.0/safaai/screens/progress.py +40 -0
- safaai-0.1.0/safaai/screens/scan_results.py +94 -0
- safaai-0.1.0/safaai/screens/splash.py +30 -0
- safaai-0.1.0/safaai/screens/splash_asciimatics.py +99 -0
- safaai-0.1.0/safaai/screens/sysinfo.py +389 -0
- safaai-0.1.0/safaai/screens/update_confirm.py +101 -0
- safaai-0.1.0/safaai/widgets/broom_audit.py +55 -0
- safaai-0.1.0/safaai/widgets/confirm_row.py +342 -0
- safaai-0.1.0/safaai/widgets/disk_bento.py +77 -0
- safaai-0.1.0/safaai/widgets/health_gauge.py +44 -0
- safaai-0.1.0/safaai/widgets/metrics.py +115 -0
- safaai-0.1.0/safaai/widgets/suggestions.py +47 -0
- safaai-0.1.0/safaai/workflows/__init__.py +1 -0
- safaai-0.1.0/safaai/workflows/engine.py +152 -0
- safaai-0.1.0/tests/test_brew_scanner.py +64 -0
- safaai-0.1.0/tests/test_clean_workflow.py +306 -0
- safaai-0.1.0/tests/test_cleanup_graph.py +86 -0
- safaai-0.1.0/tests/test_command_palette.py +121 -0
- safaai-0.1.0/tests/test_confirm_row.py +32 -0
- safaai-0.1.0/tests/test_dashboard_metrics.py +138 -0
- safaai-0.1.0/tests/test_disk_scanner.py +99 -0
- safaai-0.1.0/tests/test_docker_scanner.py +47 -0
- safaai-0.1.0/tests/test_health_score.py +49 -0
- safaai-0.1.0/tests/test_ignore_db.py +63 -0
- safaai-0.1.0/tests/test_journal.py +33 -0
- safaai-0.1.0/tests/test_log_screen.py +115 -0
- safaai-0.1.0/tests/test_memory_scanner.py +28 -0
- safaai-0.1.0/tests/test_node_scanner.py +57 -0
- safaai-0.1.0/tests/test_optimize.py +29 -0
- safaai-0.1.0/tests/test_progress.py +91 -0
- safaai-0.1.0/tests/test_project_grouping.py +61 -0
- safaai-0.1.0/tests/test_project_purge.py +12 -0
- safaai-0.1.0/tests/test_scaffold.py +118 -0
- safaai-0.1.0/tests/test_scan_results_screen.py +63 -0
- safaai-0.1.0/tests/test_scanner_framework.py +168 -0
- safaai-0.1.0/tests/test_startup_scanner.py +26 -0
- safaai-0.1.0/tests/test_trash.py +21 -0
- safaai-0.1.0/tests/test_updater.py +110 -0
- safaai-0.1.0/tests/test_xcode_scanner.py +33 -0
- safaai-0.1.0/uv.lock +1257 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
pypi:
|
|
10
|
+
name: Publish to PyPI
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
- name: Install uv
|
|
15
|
+
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
16
|
+
- name: Build and Publish to PyPI
|
|
17
|
+
run: |
|
|
18
|
+
uv build
|
|
19
|
+
uv publish --token ${{ secrets.PYPI_API_TOKEN }}
|
|
20
|
+
|
|
21
|
+
binaries:
|
|
22
|
+
name: Build and Release Standalone Binaries
|
|
23
|
+
strategy:
|
|
24
|
+
matrix:
|
|
25
|
+
os: [macos-latest, ubuntu-latest]
|
|
26
|
+
runs-on: ${{ matrix.os }}
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- name: Setup Python
|
|
30
|
+
uses: actions/setup-python@v5
|
|
31
|
+
with:
|
|
32
|
+
python-version: '3.13'
|
|
33
|
+
- name: Install dependencies & PyInstaller
|
|
34
|
+
run: |
|
|
35
|
+
pip install uv
|
|
36
|
+
uv pip install --system . pyinstaller
|
|
37
|
+
- name: Build Binary
|
|
38
|
+
run: pyinstaller --onefile --name safaai safaai/__main__.py
|
|
39
|
+
- name: Upload Binaries to Release
|
|
40
|
+
uses: softprops/action-gh-release@v2
|
|
41
|
+
with:
|
|
42
|
+
files: dist/safaai
|
|
43
|
+
env:
|
|
44
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|