Metadata-Version: 2.4
Name: deepgoal
Version: 0.0.3
Summary: A pre-alpha AI Agent framework for goal-driven automatic programming.
Author-email: Yongfei Leon <yongfeileon@users.noreply.github.com>
License: MIT
Project-URL: Homepage, https://github.com/yongfeileon/DeepGoal
Project-URL: Repository, https://github.com/yongfeileon/DeepGoal
Project-URL: Issues, https://github.com/yongfeileon/DeepGoal/issues
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: claude-agent-sdk>=0.1.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: build>=1.0.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"

[![PyPI version](https://badge.fury.io/py/deepgoal.svg)](https://pypi.org/project/deepgoal/)

[中文版本](./README_CN.md)

# DeepGoal

DeepGoal is a pre-alpha AI Agent framework for goal-driven automatic programming. It models engineering workflows as composable pipelines: container nodes orchestrate the flow, while executors perform the leaf work.

## Status

DeepGoal is under active design and development. APIs may change before the first stable release.

## Requirements

- Python 3.11+

## Installation

```bash
pip install deepgoal
```

For local development:

```bash
pip install -e ".[dev]"
```

## Minimal Example

```python
from deepgoal.core.executor import Executor
from deepgoal.core.node import PipelineInput, PipelineOutput, PipelineResult
from deepgoal.core.pipeline.pipe import Pipe
from deepgoal.core.types import EngineOptions


class WriteSpecExecutor(Executor):
    async def execute(self, input: PipelineInput, options: EngineOptions) -> PipelineResult:
        return PipelineResult.ok(PipelineOutput(primary_path="workspace/spec.md"))


pipe = Pipe(items=[WriteSpecExecutor()])
result = await pipe.run(PipelineInput(primary_path="goal.md"))
print(result.output.primary_path)
```

## Core Idea

- `Node` / `Pipe` are containers that expose pipeline input and output boundaries.
- `Executor` is a leaf execution unit.
- Containers can compose child nodes and executors into serial, parallel, loop, or branch workflows.
