Metadata-Version: 2.4
Name: opensymbolicai-core
Version: 0.8.0
Summary: Build LLM-powered systems as typed, testable Python software — not prompt strings
Author-email: OpenSymbolicAI <founder@opensymbolic.ai>
License-Expression: MIT
Project-URL: Homepage, https://github.com/OpenSymbolicAI/core-py
Project-URL: Documentation, https://opensymbolicai.github.io/core-py
Project-URL: Repository, https://github.com/OpenSymbolicAI/core-py
Project-URL: Issues, https://github.com/OpenSymbolicAI/core-py/issues
Project-URL: Changelog, https://github.com/OpenSymbolicAI/core-py/releases
Keywords: llm,ai-agents,structured-output,pydantic,prompt-engineering,symbolic-ai,ai-framework,opensymbolicai,type-safe,function-calling
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Classifier: Framework :: Pydantic
Classifier: Framework :: Pydantic :: 2
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.0
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: tqdm>=4.67.1
Dynamic: license-file

# OpenSymbolicAI Core

**Build LLM-powered systems as typed, testable Python software — not prompt strings.**

The LLM plans once over your primitive signatures; execution is deterministic Python with no model in the loop. Inputs and outputs are typed variables.

## Install

```bash
pip install opensymbolicai-core
```

## Example

```python
from opensymbolicai import PlanExecute, primitive, decomposition

class Calculator(PlanExecute):
    @primitive(read_only=True)
    def add(self, a: float, b: float) -> float:
        """Add two numbers."""
        return a + b

    @decomposition(intent="What is 2 + 3?")
    def _example(self) -> float:
        return self.add(a=2, b=3)
```

## Documentation

Full docs, examples, benchmarks, and architecture: **https://github.com/OpenSymbolicAI/core-py**

## License

MIT
