Metadata-Version: 2.4
Name: copass-hermes-agents
Version: 1.0.4
Summary: Copass agent primitives for the Hermes API server (NousResearch hermes-agent), routed to LLMs via OpenRouter
Project-URL: Homepage, https://github.com/olane-labs/copass
Project-URL: Repository, https://github.com/olane-labs/copass.git
Author: Olane Inc.
License: MIT
Keywords: agents,copass,hermes,knowledge-graph,openrouter
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: copass-context-agents>=0.1.0
Requires-Dist: copass-core-agents>=0.1.0
Requires-Dist: httpx>=0.27
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Description-Content-Type: text/markdown

# copass-hermes-agents

Copass agent primitives for the Hermes API server (NousResearch hermes-agent),
routed to LLMs via OpenRouter.

This package owns the Hermes-specific backend and the
`CopassHermesAgent(BaseAgent)` convenience subclass. Hermes itself runs
inside a per-(user, sandbox) Daytona sandbox; this client speaks
HTTP/SSE to the sandbox endpoint via `httpx.AsyncClient`.

## Spike-locked posture (ADR 0008 Phase 1b)

- Stateless `/v1/chat/completions` only. The full conversation history
  is sent in `messages[]` on every turn — Hermes' on-disk session DB
  is unused.
- `Authorization: Bearer <API_SERVER_KEY>` on every call. The bearer
  is the per-sandbox caller-side key minted at provision time; it is
  NOT an LLM key.
- Single OpenRouter credential-pool entry per sandbox (no rotation).
  Hermes resolves the OpenRouter key from process env at agent
  construction time.
- Model strings use the `hermes/<openrouter-model-id>` shape; the
  backend strips the `hermes/` prefix before forwarding to Hermes.
