Metadata-Version: 2.4
Name: synapse-context-sdk
Version: 0.1.0
Summary: Shared models, secret scanner, and client SDK for Synapse services.
Project-URL: Homepage, https://synapse.abhinavaditya.com
Project-URL: Repository, https://github.com/abhinav162/synapse
Author-email: Abhinav Aditya <abhinav.aditya@hirequotient.com>
License: MIT
Keywords: mcp,models,secret-scanner,synapse
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic>=2.0
Provides-Extra: dev
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Description-Content-Type: text/markdown

# synapse-sdk

Shared Python building blocks for [Synapse](https://synapse.abhinavaditya.com) —
a Universal Memory Layer for AI coding tools.

This package is the dependency surface that the Synapse API server, the
Temporal workers, and the developer CLI all share:

- **`synapse_sdk.models`** — pydantic models for `Chunk`, `SearchRequest`,
  `SearchResult`, `TokenPayload`, `SecretScanResult`.
- **`synapse_sdk.scanner`** — pre-flight secret scanner. Files containing
  AWS keys, GitHub tokens, private keys, etc. are rejected wholesale before
  embedding. 0% leak rate is a non-negotiable Synapse KPI.
- **`synapse_sdk.exceptions`** — shared exception types.

## Install

```bash
pip install synapse-context-sdk
```

The Python import name stays `synapse_sdk`:

```python
from synapse_sdk.scanner import scan_for_secrets
from synapse_sdk.models import SearchRequest
```

## Usage — secret scanner

```python
from synapse_sdk.scanner import scan_for_secrets

result = scan_for_secrets(file_text, file_path="src/auth.py")
if result.is_rejected:
    print(f"Skipped: secret of type {result.secret_type}")
```

## Usage — models

```python
from synapse_sdk.models import SearchRequest

req = SearchRequest(query="how does JWT auth work", limit=10)
```

See [the main repo](https://github.com/abhinav162/synapse) for the full
service architecture.
