Metadata-Version: 2.5
Name: pytracer-registry
Version: 0.1.0
Summary: pyTracer collaboration registry - versioned, forkable, access-controlled test collections.
Author: pyTracer
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: pydantic>=2.6
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# pytracer-registry

Layer 5 of pyTracer: turns test collections into shareable, forkable artifacts —
the role Postman's collections played for API testing. Collections are
versioned (content-addressed history), forkable with lineage, mergeable with
conflict detection, access-controlled (private / team / public), and
discoverable by framework and use case.

```python
from pytracer_registry import Registry, Visibility, CollectionArtifact

reg = Registry()  # in-memory; pass a FilesystemStore for on-disk JSON
col = reg.create_collection(
    "alice", CollectionArtifact(name="crewai-rag-tests", framework="crewai"),
    visibility=Visibility.PUBLIC,
)
fork = reg.fork("bob", col.id)                 # independent copy with lineage
reg.commit("bob", fork.id, updated_artifact, "tweak assertions")
pr = reg.open_pull_request("bob", fork.id, col.id, "improve RAG coverage")
reg.merge_pull_request("alice", pr.id)         # 3-way merge, raises on conflict
reg.discover(viewer="carol", framework="crewai")
```

Storage is behind a `Store` interface (`InMemoryStore`, `FilesystemStore`); a
production deployment can back it with a git repo per collection and serve the
same API to a web UI.
