Metadata-Version: 2.5
Name: promigence-openai-environments
Version: 0.1.0a1
Summary: Run codex exec-server for OpenAI Agents API self-hosted environments on Promigence sandboxes
Project-URL: Homepage, https://promigence.ai
Author-email: Promigence AI <support@promigence.ai>
License: Apache-2.0
Keywords: agents-api,codex,exec-server,openai,promigence,sandbox
Requires-Python: >=3.10
Requires-Dist: promigence>=0.1.0b7
Provides-Extra: dev
Requires-Dist: openai>=3.16.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Description-Content-Type: text/markdown

# promigence-openai-environments — OpenAI Agents API self-hosted environments on Promigence

Run codex exec-server for OpenAI Agents API self-hosted environments on Promigence sandboxes.

## Install

```bash
pip install promigence-openai-environments "openai>=3.16.0"  # Python >= 3.10
export PROMIGENCE_API_KEY=prom_api_...  PROMIGENCE_API_URL=https://api.promigence.ai/v1
npm i -g promigence  # the CLI, for the secrets line below
export OPENAI_EXECUTOR_API_KEY=sk-...  # the OpenAI key the executor uses
promigence secrets set CODEX_API_KEY --from-env OPENAI_EXECUTOR_API_KEY
```

## Use

```python
import asyncio
from openai import OpenAI
from promigence_openai_environments import ExecutorPool

client = OpenAI()                      # OPENAI_API_KEY — stays outside the sandbox
sessions = [
    client.beta.agents.sessions.create(
        agent={"model": "gpt-6-astra", "instructions": "..."},
        environment={"type": "self_hosted", "workspace_directory": "/workspace"},
    )
    for _ in range(8)
]

async def main() -> None:
    async with ExecutorPool(sessions, snapshot="codex-exec-server@1a2b3c4", spend_cap=5) as pool:
        for w in pool.workers:
            print(w.environment_id, w.sandbox_id)
        # Send input to the sessions and read their event streams from your own application.
        await asyncio.sleep(3600)

asyncio.run(main())
```

## Help

Every error carries a code, a message and what to do next; the codes are listed at
https://www.promigence.ai/docs/errors. Questions: support@promigence.ai.
