Metadata-Version: 2.4
Name: epistom-agents
Version: 0.1.0
Summary: Drop-in Epistom SDK for LangGraph, AutoGen, and CrewAI agents
Author-email: "Pramiti Labs, Inc." <hello@getpramiti.com>
License-Expression: MIT
Project-URL: Homepage, https://getpramiti.com
Project-URL: Repository, https://github.com/pramiti-labs/epistom
Keywords: epistom,pramiti,agents,langgraph,autogen,crewai,sdk
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Requires-Python: <3.14,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx<1,>=0.27
Provides-Extra: langgraph
Requires-Dist: langchain-core<2,>=0.2; extra == "langgraph"
Requires-Dist: langgraph<2,>=0.1; extra == "langgraph"
Provides-Extra: autogen
Requires-Dist: pyautogen<1,>=0.2; extra == "autogen"
Provides-Extra: crewai
Requires-Dist: crewai<2,>=0.28; extra == "crewai"
Provides-Extra: all
Requires-Dist: epistom-agents[autogen,crewai,langgraph]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest<10,>=8; extra == "dev"
Requires-Dist: pytest-asyncio<2,>=0.23; extra == "dev"
Dynamic: license-file

# epistom-agents

Drop-in Epistom SDK for LangGraph, AutoGen, and CrewAI agents. Wraps the Epistom
MCP/REST surface so an agent framework can call the read plane (context) and the
Praxom write plane (action validation) through one client.

## Install
    pip install epistom-agents            # core
    pip install 'epistom-agents[langgraph]'   # + LangGraph binding
    pip install 'epistom-agents[all]'         # all framework bindings

## Usage
    import epistom_agents

    client = epistom_agents.Client(
        base_url="https://epistom.example.com",
        workspace_id="ws_...",
        api_key="ek_...",
        access_token="<session JWT>",
    )

The API key names the workspace. It is not an identity: a server with auth on
answers 401 to the key on its own. `access_token` is the session JWT of the
user or service account the calls run as, and the client sends it as
`Authorization: Bearer <token>` beside the key. That account's role in the
workspace decides what the calls may do (`evaluate` needs architect or above).
The client does not obtain or refresh the token; pass a new one to
`client.set_access_token(...)`. Against a server with auth disabled the token
can be left out.

When Praxom cannot be reached at evaluate time, guarded tools fail closed in
every framework integration (LangGraph, AutoGen, CrewAI): the tool does not
execute, and the guard returns a structured `praxom_unavailable` result
(`on_deny="return"`, the default) or re-raises the underlying
`EpistomClientError` (`on_deny="raise"`).

> **Import root changed 2026-07-13:** the package now imports as `epistom_agents`
> (was `epistom.agents`) to avoid colliding with the platform's internal
> package, then named `epistom` (renamed `pramiti` 2026-07-27).
> Update `from epistom.agents import ...` → `from epistom_agents import ...`.
