Metadata-Version: 2.5
Name: soigia-agent
Version: 0.1.3
Summary: Soi Gia agent package — scaffolding + publish workflow, published to PyPI
Author-email: Soi Gia <sojgja@gmail.com>
License-Expression: BSD-3-Clause
License-File: LICENSE
Keywords: agent,pip,soigia
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Provides-Extra: server
Requires-Dist: fastapi>=0.110; extra == 'server'
Requires-Dist: httpx>=0.27; extra == 'server'
Requires-Dist: pydantic>=2.6; extra == 'server'
Requires-Dist: uvicorn[standard]>=0.27; extra == 'server'
Description-Content-Type: text/markdown

# soigia-agent

Soi Gia agent pip package — zero dependencies, published to PyPI.

## Install

```bash
pip install soigia-agent
```

## Subpackages — một lần cài, dùng được tất cả

| Subpackage | Nội dung |
|---|---|
| `soigia_agent.harness` | Agent harness thuần stdlib: loop, tools, permissions, subagents |
| `soigia_agent.harness.adapters` | Adapter model (Ollama, Anthropic, OpenAI-compat) + CLI |
| `soigia_agent.harness.project_tools` | Bộ tool dự án (list_dir, read_many, search_context, apply_patch...) |
| `soigia_agent.harness.server` | FastAPI server cho web UI — cần extras: `pip install "soigia-agent[server]"` |
| `soigia_agent.hermes` | Plugin Hermes Agent bọc harness (subprocess bridge, 7 tools) |
| `soigia_agent.desktop` / `soigia_agent.tui` | Placeholder — đang xây dựng |

## Usage

```bash
soigia-agent --name SoiGia
# Hello, SoiGia! 👋 from soigia-agent

python -c "from soigia_agent.harness import Agent, OllamaModel"
```

Or from Python:

```python
from soigia_agent import hello
print(hello("Soi Gia"))
```

## Publish workflow (same as soigia-sdk)

```bash
uv sync              # install package + dev tools into .venv
make test            # run pytest
make publish         # clean → test → bump patch → build → check → delete old versions → upload
make publish-test    # same, but upload to TestPyPI
make publish-minor   # bump minor instead of patch
```

`scripts/release.py` handles everything: version bump (pyproject.toml +
`soigia_agent/__init__.py` kept in sync), build, twine check, upload, and
**rollback** of the version on failure. Credentials are auto-loaded from
`.secret/pypi.yaml` (checked at repo root, repo parent, and `~/.secret`),
falling back to `~/.pypirc` / interactive prompt.
