Metadata-Version: 2.4
Name: darnit-core
Version: 0.1.0
Summary: Generic compliance audit framework with plugin architecture
Project-URL: Homepage, https://github.com/kusari-oss/darnit
Project-URL: Repository, https://github.com/kusari-oss/darnit
Project-URL: Issues, https://github.com/kusari-oss/darnit/issues
Author-email: Kusari <info@kusari.dev>
License-Expression: Apache-2.0
Keywords: audit,compliance,framework,mcp,security
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Requires-Dist: cel-python>=0.5.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: mcp<2,>=1.23.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pydantic[email]>=2.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: ruamel-yaml>=0.18.0
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
Requires-Dist: tomllib-stubs>=0.1.0; python_version < '3.11'
Provides-Extra: attestation
Requires-Dist: cryptography<48,>=46.0.6; extra == 'attestation'
Requires-Dist: in-toto-attestation>=0.9.0; extra == 'attestation'
Requires-Dist: sigstore>=3.0.0; extra == 'attestation'
Requires-Dist: urllib3<3,>=2.6.3; extra == 'attestation'
Description-Content-Type: text/markdown

# darnit

Generic compliance audit framework with plugin architecture.

## Overview

**darnit** is the core framework that provides:

- **Plugin System**: Discover and load compliance implementations via Python entry points
- **Configuration Management**: `.project.yaml` for project metadata and file locations
- **Progressive Verification**: "Sieve" model for efficient compliance checking
- **Remediation Framework**: Auto-fix infrastructure for compliance gaps
- **MCP Server Tools**: Ready-to-use tools for AI assistant integration

## Installation

```bash
pip install darnit
```

## Usage

### Discover Implementations

```python
from darnit.core.discovery import get_implementation

# Get a compliance implementation by name
impl = get_implementation("openssf-baseline")
if impl:
    controls = impl.get_all_controls()
```

### Configuration Management

```python
from darnit.config.loader import load_project_config, save_project_config
from darnit.config.discovery import discover_files

# Discover existing documentation files
discovered = discover_files("/path/to/repo")

# Load project configuration
config = load_project_config("/path/to/repo")
```

## Creating Implementations

To create a new compliance implementation:

1. Create a package with entry point `darnit.implementations`
2. Implement the `ComplianceImplementation` protocol
3. Register controls and checks

```toml
# pyproject.toml
[project.entry-points."darnit.implementations"]
my-standard = "my_package:register"
```

```python
# my_package/__init__.py
def register():
    from .implementation import MyImplementation
    return MyImplementation()
```

See [darnit-baseline](../darnit-baseline) for a complete example.

## Package Structure

```
darnit/
├── core/           # Plugin system, models, discovery
├── config/         # Project configuration (.project.yaml)
├── sieve/          # Progressive verification pipeline
├── remediation/    # Auto-fix framework
├── server/         # MCP server tool implementations
└── tools/          # MCP tool helpers and utilities
```

## License

Apache-2.0
