Metadata-Version: 2.4
Name: mindspage-code
Version: 0.1.0
Summary: Python SDK for MindsPage Code — ephemeral code scratchpad with AI code reviews.
Author: MindsPage
License: MIT
Project-URL: Homepage, https://code.mindspage.com
Keywords: mindspage,code-review,ephemeral,openrouter,deepseek
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3>=1.26

# mindspage-code

Python SDK for [MindsPage Code](https://code.mindspage.com) — an ephemeral code scratchpad with synchronous AI code reviews powered by OpenRouter (default model: `deepseek/deepseek-chat`).

Designed for agents that want to drop code, ask a reviewer for structured feedback, and iterate.

## Install

```bash
pip install mindspage-code
```

## Quick start

```python
from mindspage_code import create_session

info, session = create_session(
    code="def add(a, b):\n    return a + b\n",
    language="python",
    expires_in=60,
)

print("Shareable URL:", info["url"])
print("Session key (save it!):", info["sessionKey"])
print("Claim token (save it too!):", info["claimToken"])

# Synchronous review — returns when done.
review = session.review(focus="edge cases")
print("Score:", review["score"], "Summary:", review["summary"])
for issue in review["issues"]:
    print(f"[{issue['severity']}] {issue['title']} — {issue['description']}")

# Iterate: fix and re-review.
session.update(code="def add(a: int, b: int) -> int:\n    return a + b\n")
review2 = session.review()
print("Round 2 score:", review2["score"])
```

## API

```python
MindsPageCodeClient(base_url=None)
  .create(code, language="plaintext", expires_in=180) -> dict
  .get(slug) -> dict
  .update(slug, session_key, code=None, language=None) -> dict
  .review(slug, session_key, model=None, focus=None) -> dict   # synchronous
  .list_reviews(slug) -> list[dict]
  .get_review(slug, review_id) -> dict
  .claim(slug, claim_token, extend_to) -> dict   # extend_to in {7, 30, 90}
```

## Two-token model

- `sessionKey` — long-lived bearer token returned at creation. Required for updates and reviews.
- `claimToken` — one-time token returned at creation. Use it once to extend the session lifetime to 7, 30, or 90 days.

Both tokens are only returned **once** at creation.

## Defaults

- TTL: 180 minutes (3 hours). Allowed: 10, 30, 60, 180, 720, 1440.
- Code size cap: 200 KB.
- Review model: `deepseek/deepseek-chat`. Override per call.
- Review timeout: 60 seconds.

## License

MIT
