Metadata-Version: 2.4
Name: memoflow-openai
Version: 0.1.0
Summary: Durable OpenAI Responses adapter for the MemoFlow Python SDK
License-Expression: MIT
Project-URL: Homepage, https://memoflow.io
Project-URL: Repository, https://github.com/evigasoft/memoflow
Project-URL: Changelog, https://github.com/evigasoft/memoflow/blob/main/packages/memoflow-openai-py/CHANGELOG.md
Project-URL: Issues, https://github.com/evigasoft/memoflow/issues
Keywords: durable-execution,workflows,agents,openai
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: memoflow-sdk<0.2,>=0.1.0
Provides-Extra: dev
Requires-Dist: mypy<3,>=1.19; extra == "dev"
Requires-Dist: pytest<10,>=9; extra == "dev"
Requires-Dist: ruff<1,>=0.14; extra == "dev"

# MemoFlow OpenAI adapter for Python

This optional package connects an injected asynchronous OpenAI Responses client
to MemoFlow's durable AI invocation, budget, tool-effect, and recorded-replay
contracts. It deliberately does not install or pin the OpenAI package.

```python
from memoflow_openai import OpenAIResponsesAdapter, OpenAIResponsesRun

adapter = OpenAIResponsesAdapter(openai_client)
response = await adapter.run(OpenAIResponsesRun(
    request={"model": "your-approved-model", "input": "hello"},
    budget=estimate,
    recorded_replay_key="primary-model-turn",
))
```

Call the adapter only inside a server-backed MemoFlow activity. Provider
exceptions or cancellation after request dispatch are recorded as uncertain
outcomes and retain budget liability for reconciliation.
Completed replay envelopes are bound to the complete initial Responses request
and registered executor names/versions. Reusing a logical key for changed
inputs fails before budget admission or provider dispatch.
