Metadata-Version: 2.4
Name: toolboxv2
Version: 0.1.27
Summary: Add your description here
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: requests>=2.31.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: rich
Requires-Dist: aiohttp>=3.12.15
Requires-Dist: aiohttp-cors>=0.8.1
Requires-Dist: cryptography>=45.0.7
Requires-Dist: packaging>=24.2
Requires-Dist: pyjwt>=2.10.1
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: tqdm>=4.67.1
Requires-Dist: pydantic>=2.11.7
Requires-Dist: pyzmq>=27.1.0
Requires-Dist: aiosqlite>=0.22.1
Requires-Dist: psutil
Requires-Dist: prompt-toolkit>=3.0.52
Requires-Dist: minio>=7.2.20
Provides-Extra: core
Requires-Dist: radon>=6.0.1; extra == "core"
Requires-Dist: qrcode>=8.0; extra == "core"
Requires-Dist: watchfiles>=1.0.4; extra == "core"
Requires-Dist: gitpython>=3.1.45; extra == "core"
Requires-Dist: redis>=6.4.0; extra == "core"
Requires-Dist: xmltodict>=0.14.2; extra == "core"
Requires-Dist: minio>=7.2.20; extra == "core"
Requires-Dist: prompt-toolkit>=3.0.52; extra == "core"
Requires-Dist: opentelemetry-api>=1.36.0; extra == "core"
Requires-Dist: opentelemetry-sdk>=1.36.0; extra == "core"
Requires-Dist: docker>=7.0.0; extra == "core"
Provides-Extra: cli
Requires-Dist: prompt-toolkit>=3.0.52; extra == "cli"
Requires-Dist: ipython>=8.5.0; extra == "cli"
Requires-Dist: rich>=14.1.0; extra == "cli"
Requires-Dist: google-auth-oauthlib>=1.2.2; extra == "cli"
Requires-Dist: google-api-python-client>=2.179.0; extra == "cli"
Requires-Dist: pyperclip>=1.9.0; extra == "cli"
Requires-Dist: dateparser>=1.2.2; extra == "cli"
Provides-Extra: web
Requires-Dist: websockets>=15.0.1; extra == "web"
Requires-Dist: webauthn>=2.5.1; extra == "web"
Requires-Dist: waitress>=3.0.2; extra == "web"
Provides-Extra: desktop
Requires-Dist: pygetwindow>=0.0.9; extra == "desktop"
Requires-Dist: pyautogui>=0.9.54; extra == "desktop"
Requires-Dist: google-auth-oauthlib>=1.2.2; extra == "desktop"
Requires-Dist: google-api-python-client>=2.179.0; extra == "desktop"
Requires-Dist: dateparser>=1.2.2; extra == "desktop"
Requires-Dist: pyperclip>=1.9.0; extra == "desktop"
Requires-Dist: webrtcvad>=2.0.10; extra == "desktop"
Requires-Dist: customtkinter>=5.2.2; extra == "desktop"
Provides-Extra: isaa
Requires-Dist: networkx>=3.4.2; extra == "isaa"
Requires-Dist: numpy>=2.2.6; extra == "isaa"
Requires-Dist: dill>=0.3.8; extra == "isaa"
Requires-Dist: groq>=0.31.0; extra == "isaa"
Requires-Dist: pypdf2>=3.0.1; extra == "isaa"
Requires-Dist: nest-asyncio>=1.5.0; extra == "isaa"
Requires-Dist: pyvis>=0.3.0; extra == "isaa"
Requires-Dist: mcp>=1.6.0; extra == "isaa"
Requires-Dist: tenacity>=9.1.2; extra == "isaa"
Requires-Dist: playwright; extra == "isaa"
Requires-Dist: html2text>=2025.4.15; extra == "isaa"
Requires-Dist: chardet>=5.2.0; extra == "isaa"
Requires-Dist: faiss-cpu>=1.12.0; extra == "isaa"
Requires-Dist: beautifulsoup4>=4.14.3; extra == "isaa"
Requires-Dist: pillow>=12.1.1; extra == "isaa"
Requires-Dist: fitz>=0.0.1.dev2; extra == "isaa"
Provides-Extra: exotic
Requires-Dist: langchain-community>=0.3.29; extra == "exotic"
Requires-Dist: spacy>=3.8.11; extra == "exotic"
Requires-Dist: matplotlib>=3.10.0; extra == "exotic"
Requires-Dist: hnswlib>=0.8.0; extra == "exotic"
Requires-Dist: python-a2a>=0.5.1; extra == "exotic"
Provides-Extra: all
Requires-Dist: toolboxv2[cli]; extra == "all"
Requires-Dist: toolboxv2[web]; extra == "all"
Requires-Dist: toolboxv2[desktop]; extra == "all"
Requires-Dist: toolboxv2[exotic]; extra == "all"
Requires-Dist: toolboxv2[isaa]; extra == "all"
Requires-Dist: toolboxv2[core]; extra == "all"
Provides-Extra: production
Requires-Dist: toolboxv2[core]; extra == "production"
Requires-Dist: toolboxv2[cli]; extra == "production"
Requires-Dist: toolboxv2[web]; extra == "production"
Provides-Extra: dev
Requires-Dist: toolboxv2[all]; extra == "dev"
Requires-Dist: pytest>=9.0.2; extra == "dev"
Requires-Dist: ruff>=0.8.0; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Dynamic: license-file

# ToolBoxV2 🧰

[![PyPI Version](https://img.shields.io/pypi/v/ToolBoxV2.svg)](https://pypi.python.org/pypi/ToolBoxV2)

A flexible modular framework for utilitys, functions, and complete capability's – deployable live/local, on the web, or as a desktop/mobile app system agnosic.

---


## 🎯 Goal

The primary goal of ToolBoxV2 is to provide a flexible platform that enables developers, end-users, and small to medium-sized businesses to efficiently create, customize, and use digital products. It aims to:
*   Handel seamlessly Execute.
*   Integrates in to diverse functionalities.
*   Ensure system-independence.

The underlying system, built on a monolithic modular architecture, enabling intuitive interaction with the digital world. It connects various components and core utility functions accessible from anywhere.
This platform promotes creative collaboration and eases access to digital resources.

---

## 🎯 Target Audiences & Use Cases

### 👩‍💻 For Developers

Utilize ToolBoxV2 as a framework to:
*   Create custom functions, widgets, or complete mini-applications.
*   Leverage existing modules (`mods`) or extend them with new components.
*   Build web, desktop, or mobile applications using a unified Python stack.
*   Customize the user interface via the web frontend (tbjs).

### 🙋 For End Users

Access and use a variety of pre-built applications and functions:
*   Directly in a web browser, or as a native desktop/mobile application (powered by Tauri).
*   No prior technical knowledge required.
*   Access flexible tools for tasks such as calendar management, note-taking, image diffusion, quote generation, etc.
*   Personalize the user interface to meet individual needs.

### 🏢 For Businesses / Operators

Deploy ToolBoxV2 as a customizable internal management system for:
*   Self-hosted and highly adaptable solutions.
*   Project, process, or employee management.
*   Integration of proprietary modules and functions.
*   Scalability suitable for small to medium-sized enterprises.
*   Modular, API-ready, and easily extensible.

---
## 🚀 Installation

### Linux / macOS

```bash
curl -fsSL https://raw.githubusercontent.com/MarkinHaus/ToolBoxV2/refs/heads/master/installer.sh | bash
```

### Windows

```powershell
irm "https://raw.githubusercontent.com/MarkinHaus/ToolBoxV2/refs/heads/master/installer.ps1" | tee tbInstaller.ps1 | % { & ([scriptblock]::Create($_)) }
```

### pip

```bash
pip install ToolBoxV2
```

The installer auto-detects your platform, selects a runtime (`uv` → `venv` → bootstrap), and guides you through feature selection. Supports four install modes: `native` (single binary), `uv`, `docker`, and `source`.

→ [Full Installation Guide](docs/new/analysis/installation/installation.md) · [Quickstart](docs/core/quickstart.md)

---

### 💻 Advanced / Alternative Methods

#### 1. Python Package (Direct Installation)

For users who prefer to manage their Python environments manually.

**Using `pip`:**
```bash
    # Ensure you have Python 3.11 and pip installed
    # Recommended: Create and activate a virtual environment first!
    # python -m venv .venv && source .venv/bin/activate

    pip install ToolBoxV2
    # To install with optional extras (e.g., isaa, dev):
    # pip install "ToolBoxV2[isaa,dev]"
```

**Using `uv` (a fast Python package installer & resolver):**
```bash

    uv pip install ToolBoxV2
    # To install with optional extras:
    # uv pip install "ToolBoxV2[isaa,dev]"
```

After installation with pip or uv, you may need to initialize ToolBoxV2 manually:
```bash
    tb -init main
```
Ensure the directory containing the `tb` script (e.g., `~/.local/bin` for user installs, or your venv's `bin` directory) is in your system's `PATH`.

#### 2. From Source (For Developers / Bleeding Edge)

If you want to contribute or use the very latest (potentially unstable) code:

```bash
    git clone https://github.com/MarkinHaus/ToolBoxV2.git
    cd ToolBoxV2

    # IMPORTANT: Set up and activate a Python virtual environment
    # Example using Python's built-in venv:
    # python3 -m venv .venv
    # source .venv/bin/activate
    #
    # Example using uv:
    # uv venv .venv --python 3.11 # or your desired Python version
    # source .venv/bin/activate

    # Install in editable mode:
    echo "Choose your preferred installation method:"

    echo "  Option A: Using pip"
    echo "    pip install -e \".[dev,isaa]\"  # Install with dev and isaa extras"
    echo "    # or just: pip install -e ."

    echo "  Option B: Using uv"
    echo "    uv pip install -e \".[dev,isaa]\" # Install with dev and isaa extras"
    echo "    # or just: uv pip install -e ."

    # Your existing script for Python environment setup (if it offers more specific dev setup):
    # If you have specific Python dev environment needs beyond a simple venv, you can use:
    # chmod +x install_python_env.sh
    # ./install_python_env.sh

    # Initialize Git hooks (for contributors)
    bash .github/hooks/setup_hooks.sh

    # Initialize ToolBoxV2
    tb -init main
```

---

#### 📦 Installers via GitHub Releases (Recommended for GUI App)

Find platform-specific installers (e.g., `.dmg`, `.exe`, `.deb`, `.AppImage`, `.apk`) on our [**GitHub Releases Page**](https://github.com/MarkinHaus/ToolBoxV2/releases).
Look for releases tagged with "-App" (e.g., `simple-vX.Y.Z-App`).

1.  Go to the [**Latest App Release on GitHub**](https://github.com/MarkinHaus/ToolBoxV2/releases/latest). (Note: Manually filter/find the latest release with "App" in its name if the "latest" tag doesn't point to an App release).
2.  Download the appropriate installer for your operating system from the "Assets" section (e.g., `simple-core_X.Y.Z_aarch64.dmg` for macOS ARM, `simple-core_X.Y.Z_x64-setup.exe` for Windows).
3.  Run the installer and follow the on-screen instructions.

You can also use our [**Interactive Web Installer Page**](https://simplecore.app/web/core0/Installer.html) which attempts to auto-detect your OS and provide the correct download link from the latest GitHub App release.

---

### 🖥️ Worker System Deployment (Production)

ToolBoxV2 uses a Python-based worker infrastructure instead of a Rust server. For production deployments:

#### Start Worker System

```bash
# Start all workers (HTTP + WebSocket)
cd toolboxv2/utils/workers
python cli_worker_manager.py start

# Or use the tb command
tb workers start
```

#### Worker Components

- **HTTP Workers**: Handle API requests via raw WSGI (~5000 req/s per worker)
- **WebSocket Workers**: Handle real-time connections (~10,000 concurrent per instance)
- **ZeroMQ Event Broker**: High-performance inter-worker communication

For full documentation, see [toolboxv2/utils/workers/README.md](toolboxv2/utils/workers/README.md).

---

### 🖥️ Full Stack Desktop/Web Application (Tauri + Web)

This setup includes the Python backend, worker system, and Tauri/Web frontend.

**Prerequisites:**
*   Python 3.10 or higher
*   [Node.js](https://nodejs.org/) (which includes npm)
*   Tauri CLI (installed via npm)

for execution details use [package.json](toolboxv2/package.json)
or run tb --help

---

## 🧪 CI/CD & Deployment

Automated processes are managed using GitHub Actions for:
*   🔁 **Build & Test**: Validating Python components and worker system.
*   🚀 **Release**: Publishing to PyPI, building Tauri applications, and potentially Docker images.

---

## 🐳 Docker

### Build ToolBoxV2 Image

Build the main ToolBoxV2 Docker image for deployment:

```bash
# Build as toolboxv2:latest
tb docker-image

# Build with specific tag
tb docker-image --tag v1.0.0

# Build and push to Docker Hub
tb docker-image --tag v1.0.0 --push

# Force rebuild without cache
tb docker-image --no-cache
```

### Run Container

```bash
# Run with default CLI interface
docker run -it --rm toolboxv2:latest

# Run with persistent data volume
docker run -it --rm -v tb_data:/data toolboxv2:latest

# Run with exposed ports (for web interfaces)
docker run -it --rm -p 8080:8080 -p 8501:8501 toolboxv2:latest
```

### Container Images

| Image | Description | Use Case |
|-------|-------------|----------|
| `toolboxv2:latest` | Main ToolBoxV2 image | Production deployments |
| `toolboxv2:dev` | Development build | Testing and development |
| Docksh | SSH-accessible containers | Remote CLI access with tmux persistence |

---

## 🌱 Example Projects & Ideas

ToolBoxV2 can be used to build a wide range of applications, including:
*   🔗 Link shortener
*   🧠 Live notes with versioning
*   🎨 Diffusion system for generating visual assets
*   📅 Calendar and scheduling tools
*   📝 Quote/Offer generation system
*   🎮 Multiplayer TicTacToe
*   🤖 Chat/Voice bots with P2P communication capabilities

---

## 📚 Learn More / Further Information

*   [📦 Current Installer (Web Demo/Entry)](https://simplecore.app/web/core0/Installer.html)
*   [📚 Documentation (WIP)](https://markinhaus.github.io/ToolBoxV2/)
*   [🐍 PyPI Package](https://pypi.org/project/ToolBoxV2)
*   [🐙 GitHub Repository](https://github.com/MarkinHaus/ToolBoxV2)
*   [⚙️ Worker System Documentation](toolboxv2/utils/workers/README.md)

---
## 📄 License

This project is distributed under a custom license. Please refer to the [LICENSE](./LICENSE) file in the repository for detailed terms and conditions.
---

© 2022–2025 Markin Hausmanns – All rights reserved.
