Metadata-Version: 2.5
Name: jevgraph
Version: 0.2.0a1
Summary: Browser capture, workspace search, and reusable evidence graphs.
Author: JEVGRAPH contributors
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Provides-Extra: dev
Requires-Dist: build<2,>=1; extra == 'dev'
Requires-Dist: httpx<1,>=0.28; extra == 'dev'
Requires-Dist: pytest<9,>=8; extra == 'dev'
Requires-Dist: ruff<1,>=0.11; extra == 'dev'
Provides-Extra: server
Requires-Dist: fastapi<1,>=0.115; extra == 'server'
Requires-Dist: uvicorn<1,>=0.34; extra == 'server'
Description-Content-Type: text/markdown

# JEVGRAPH

**Capture in the browser. Search in one workspace. Follow the evidence.**

JEVGRAPH is an MIT-licensed Python graph engine with an optional local workplace search app and a bundled Chrome extension. It connects browser capture and agent ingestion to a searchable source library, with optional JEV relationship evaluation and bounded graph traversal.

Version **0.2.0a1 is an alpha release** for local evaluation. Python 3.11 or newer is required. This is an independent project; other projects also use the JevGraph name.

## Install and run

```bash
python -m pip install 'jevgraph[server]==0.2.0a1'
jevgraph serve
```

Open `http://127.0.0.1:8765`. The server creates an owner-readable `.jevgraph/access.json` file in your current directory. Copy its token into the workspace connection dialog. The server listens on loopback; it is not a production hosted service.

Choose **Get Chrome capture**, download and unzip the extension, and load that folder using **Load unpacked** at `chrome://extensions`. Open the extension's toolbar icon and connect it to the same workspace URL and token. Capture the current page or select up to 20 open tabs. Captures are private by default.

For just the dependency-free graph engine:

```bash
python -m pip install 'jevgraph==0.2.0a1'
jevgraph demo
```

The demo uses scripted fixture judgments and makes no network requests. It demonstrates traversal and caching, not live model accuracy.

## Ingest browser-agent records or JSON dumps

Use the workspace import dialog, `jevgraph ingest records.json`, or the Python client:

```python
import os
from jevgraph import IngestionClient

client = IngestionClient(
    "http://127.0.0.1:8765",
    os.environ["JEVGRAPH_ACCESS_TOKEN"],
)
receipt = client.ingest([{
    "external_id": "project-42/handoff",
    "title": "Project handoff",
    "url": "https://example.com/projects/42",
    "text": "The payment service depends on the identity service.",
    "source_type": "agent",
    "visibility": "private",
}])
print(receipt)
```

Stable external IDs update existing records instead of creating duplicates. Each batch accepts up to 50 records and 2 MB. The HTTP endpoint is `POST /api/ingest`, with a bearer token and a JSON object containing `records`.

## What it provides

- Local SQLite storage, scoped private/shared records, source previews, and import activity.
- Chrome page capture, selected-tab collection, persistent upload queues, explicit retries, JSON export, and workspace search.
- Keyword retrieval in the workspace; the engine also accepts caller-provided vectors.
- Optional JEV evaluation of explicit relationships, cached judgments tied to source revisions, bounded traversal, and inspectable evidence traces.

The central idea is to retain useful relationship judgments across searches instead of evaluating the same unchanged evidence repeatedly. Accuracy and cost improvements must be measured on your own workload; this release claims no benchmark advantage.

## Optional JEV exploration

Set `TYPESAFE_API_KEY` in the server environment and run `jevgraph serve --live`. Relationship exploration sends selected authorized evidence to TypeSafe. JEV is a separate API service; its model and service usage are not included in this package. Ordinary local ingestion and keyword search do not require that key.

## Current boundaries

Browser capture reads text loaded in the main frame. It is not a full export of paginated applications, PDFs, or canvas editors. It excludes form controls and editable/hidden regions and does not read browser cookies or browsing history.

Stored copies have local workspace permissions. They do not automatically inherit upstream permission changes or deletions. Managed hosting, native connectors, automatic source synchronization, workspace embedding jobs, generated answers, SSO, and billing are not included yet. Live JEV quality has not been validated for this release.

The source distribution includes `README.md`, `PRODUCT.md`, `DESIGN.md`, examples, and tests for further development. Licensed under MIT.
