Metadata-Version: 2.4
Name: todomat
Version: 0.2.5
Summary: Todomat — TODO orchestration with NLP2DSL, ITERUN, and curllm pipelines
License-Expression: Apache-2.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.26.0
Requires-Dist: pydantic>=2.0
Requires-Dist: beautifulsoup4>=4.12
Provides-Extra: mcp
Requires-Dist: mcp>=1.0.0; extra == "mcp"
Provides-Extra: services
Requires-Dist: fastapi>=0.115; extra == "services"
Requires-Dist: uvicorn[standard]>=0.32; extra == "services"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: goal>=2.1.0; extra == "dev"
Requires-Dist: costs>=0.1.20; extra == "dev"
Requires-Dist: pfix>=0.1.60; extra == "dev"

# Todomat


## AI Cost Tracking

![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.2.5-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
![AI Cost](https://img.shields.io/badge/AI%20Cost-$0.64-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-2.2h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)

- 🤖 **LLM usage:** $0.6359 (4 commits)
- 👤 **Human dev:** ~$225 (2.2h @ $100/h, 30min dedup)

Generated on 2026-06-07 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)

---

Stack testowy strony www dla klientów wdrażających automatyzację przez prompty.

Łączy **Open WebUI** z **curllm** (dane online), **NLP2DSL** (procesy biznesowe) i **ITERUN** (usługi/API/stacki) przez OpenAI-compatible router.

## Szybki start

```bash
cp .env.example .env
make bootstrap          # lub: ./scripts/bootstrap.sh
make test-local         # lub: ./scripts/test-local.sh
```

`make help` — lista celów (install, MCP, testy). `make goal-a` — goal z załadowanym `.env` (OpenRouter dla pfix).

## Endpointy

| Usługa | URL |
|--------|-----|
| Open WebUI | http://localhost:3000 |
| Pipeline Router | http://localhost:9099/v1 |
| Trigger Gateway | http://localhost:8084/trigger |
| curllm API (opcjonalnie) | http://localhost:8810 |

## curllm — dane z internetu

```bash
./scripts/start-curllm.sh   # opcjonalnie, pełny browser+LLM
```

Domyślnie adapter używa lekkiego HTTP fetch (`CURLLM_LIGHT_FETCH=1`). Pełny curllm: `CURLLM_LIGHT_FETCH=0` + uruchomiony API na :8810.

## Open WebUI — połączenie

Admin → Settings → Connections:

```
Base URL: http://pipeline-router:9099/v1   # gdy Open WebUI w sieci todomat
API Key:  dev-key
```

Jeśli Open WebUI działa poza compose: `http://host.docker.internal:9099/v1`.
Po `./scripts/bootstrap.sh` kontener `openwebui` jest automatycznie podłączany do sieci `todomat_todomat-net`.

## Przykładowe prompty

Zob. `examples/prompts/` — w tym [orchestration.md](examples/prompts/orchestration.md) (usługi, getv, desktop, workflow).

## MCP (Cursor / agenty)

Jeden router MCP routuje do curllm, nlp2dsl, iterun i nlp2uri:

```bash
make install-mcp          # pip install -e ".[mcp]" — wymagane dla todomat-mcp
make start-mcp            # lub: ./scripts/start-mcp.sh
```

Pełny stack (nlp2uri, getv, sibling MCP):

```bash
make install-mcp-stack    # ./scripts/install-mcp-stack.sh
```

> `pip install -e .` instaluje tylko zależności bazowe (`httpx`, `pydantic`, `beautifulsoup4`).
> SDK MCP (`mcp>=1.0`) jest w extrasie `[mcp]` — bez niego `todomat-mcp` kończy się błędem `ModuleNotFoundError: No module named 'mcp'`.

Dokumentacja: [docs/MCP.md](docs/MCP.md) · Cursor: `make install-cursor-mcp` (pełna) lub `make install-cursor-mcp ARGS=--minimal` (todomat + koru)

## Orchestracja (URI, MCP, wiele usług)

Przewodnik uruchomienia i kontroli usług, artefaktów, zmiennych getv i zadań:

- **[docs/ORCHESTRATION.md](docs/ORCHESTRATION.md)** — trigger-gateway, MCP, scenariusze
- [docs/MCP.md](docs/MCP.md) — router `todomat-mcp`
- [docs/INTEGRATION.md](docs/INTEGRATION.md) — Open WebUI
- [nlp2uri orchestration](https://github.com/semcod/nlp2uri/blob/main/docs/orchestration.md) — schematy URI

```bash
./scripts/sync-env-from-getv.sh llm/groq   # zmienne → .env
./scripts/install-mcp-stack.sh             # MCP + nlp2uri + getv
```

## Dokumentacja

- [docs/ORCHESTRATION.md](docs/ORCHESTRATION.md)
- [docs/INTEGRATION.md](docs/INTEGRATION.md)


## License

Licensed under Apache-2.0.
