Metadata-Version: 2.4
Name: dtSpark
Version: 1.1.0a7
Summary: Secure Personal AI Research Kit - Multi-provider LLM CLI/Web interface with MCP tool integration
Home-page: https://github.com/digital-thought/dtSpark
Author: Matthew Westwood-Hill
Author-email: Matthew Westwood-Hill <matthew@digital-thought.org>
License: MIT
Project-URL: Homepage, https://github.com/digital-thought/dtSpark
Project-URL: Documentation, https://github.com/digital-thought/dtSpark#readme
Project-URL: Repository, https://github.com/digital-thought/dtSpark
Project-URL: Issues, https://github.com/digital-thought/dtSpark/issues
Keywords: llm,ai,chatbot,aws,bedrock,anthropic,claude,ollama,mcp,model-context-protocol,cli,web
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3>=1.28.0
Requires-Dist: botocore>=1.31.0
Requires-Dist: fastapi>=0.100.0
Requires-Dist: uvicorn>=0.22.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: sse-starlette>=1.6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: prompt_toolkit>=3.0.0
Requires-Dist: httpx>=0.24.0
Requires-Dist: aiohttp>=3.8.0
Requires-Dist: mcp>=0.9.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: dtPyAppFramework>=4.2.1
Requires-Dist: tiktoken>=0.5.0
Requires-Dist: ollama>=0.2.0
Requires-Dist: cryptography>=41.0.0
Requires-Dist: anthropic>=0.18.0
Requires-Dist: APScheduler>=3.10.0
Requires-Dist: markdown>=3.4.0
Requires-Dist: python-docx>=0.8.11
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: python-pptx>=0.6.21
Requires-Dist: pdfplumber>=0.10.0
Requires-Dist: python-magic-bin>=0.4.14; sys_platform == "win32"
Requires-Dist: python-magic>=0.4.27; sys_platform != "win32"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Provides-Extra: mysql
Requires-Dist: mysql-connector-python>=8.0.0; extra == "mysql"
Provides-Extra: postgresql
Requires-Dist: psycopg2-binary>=2.9.0; extra == "postgresql"
Provides-Extra: mssql
Requires-Dist: pyodbc>=4.0.0; extra == "mssql"
Provides-Extra: all-databases
Requires-Dist: mysql-connector-python>=8.0.0; extra == "all-databases"
Requires-Dist: psycopg2-binary>=2.9.0; extra == "all-databases"
Requires-Dist: pyodbc>=4.0.0; extra == "all-databases"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# Spark - Secure Personal AI Research Kit

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Digital-Thought_dtSpark&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Digital-Thought_dtSpark)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Digital-Thought_dtSpark&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=Digital-Thought_dtSpark)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Digital-Thought_dtSpark&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=Digital-Thought_dtSpark)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Digital-Thought_dtSpark&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=Digital-Thought_dtSpark)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=Digital-Thought_dtSpark&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=Digital-Thought_dtSpark)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=Digital-Thought_dtSpark&metric=bugs)](https://sonarcloud.io/summary/new_code?id=Digital-Thought_dtSpark)

**Spark** is a powerful, multi-provider LLM interface for conversational AI with integrated tool support. It supports AWS Bedrock, Anthropic Direct API, and Ollama local models through both CLI and Web interfaces.

## Key Features

- **Multi-Provider Support** - AWS Bedrock, Anthropic Direct API, and Ollama local models
- **Dual Interface** - Rich CLI terminal UI and modern Web browser interface
- **MCP Tool Integration** - Connect external tools via Model Context Protocol
- **Intelligent Context Management** - Automatic conversation compaction with model-aware limits
- **Security Features** - Prompt inspection, tool permissions, and audit logging
- **Multiple Database Backends** - SQLite, MySQL, PostgreSQL, and Microsoft SQL Server

## Quick Start

### Installation

```bash
pip install dtSpark
```

### First-Time Setup

Run the interactive setup wizard to configure Spark:

```bash
spark --setup
```

This guides you through:
- LLM provider selection and configuration
- Database setup
- Interface preferences
- Security settings

### Running Spark

```bash
# Start with CLI interface
spark

# Or use the alternative command
dtSpark
```

## Documentation

Comprehensive documentation is available in the [docs](docs/) folder:

- [Installation Guide](docs/installation.md) - Detailed installation instructions
- [Configuration Reference](docs/configuration.md) - Complete config.yaml documentation
- [Features Guide](docs/features.md) - Detailed feature documentation
- [CLI Reference](docs/cli-reference.md) - Command-line options and chat commands
- [Web Interface](docs/web-interface.md) - Web UI guide
- [MCP Integration](docs/mcp-integration.md) - Tool integration documentation
- [Security](docs/security.md) - Security features and best practices

## Architecture Overview

```mermaid
graph LR
    subgraph Interfaces
        CLI[CLI]
        WEB[Web]
    end

    subgraph Core
        CM[Conversation<br/>Manager]
    end

    subgraph Providers
        BEDROCK[AWS Bedrock]
        ANTHROPIC[Anthropic]
        OLLAMA[Ollama]
    end

    subgraph Tools
        MCP[MCP Servers]
        BUILTIN[Built-in Tools]
    end

    CLI --> CM
    WEB --> CM
    CM --> BEDROCK
    CM --> ANTHROPIC
    CM --> OLLAMA
    CM --> MCP
    CM --> BUILTIN
```

## Requirements

- Python 3.10 or higher
- AWS credentials (for Bedrock)
- Anthropic API key (for direct API)
- Ollama server (for local models)

## Licence

MIT Licence - see [LICENSE](LICENSE) for details.

## Author

Matthew Westwood-Hill
matthew@digital-thought.org

## Support

- **Documentation**: [docs/](docs/)
- **Issues**: [GitHub Issues](https://github.com/digital-thought/dtSpark/issues)
