Sync requests-based SDK in clients/python/. Wraps /healthz, /run, /files, and /admin/tokens behind a Forge class with typed exceptions (ForgeError + Transport/API/Auth subclasses) and dataclass response shapes (RunResult, FileToken, AppToken). HTTP timeout = run timeout + 30s margin, matching the pattern cauldron has been running inline. No retries — caller's job since /run isn't idempotent. 24 unit tests via responses, all passing. Install with pip install -e clients/python/.
43 lines
1.1 KiB
TOML
43 lines
1.1 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "clawdforge"
|
|
version = "0.1.0"
|
|
description = "Python SDK for the clawdforge LAN-only HTTP service (claude -p subprocess wrapper)."
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
authors = [{ name = "Kayos", email = "kayos@sulkta.com" }]
|
|
keywords = ["clawdforge", "claude", "sulkta", "sdk"]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Intended Audience :: Developers",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
]
|
|
dependencies = [
|
|
"requests>=2.28",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
test = [
|
|
"responses>=0.23",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "http://192.168.0.5:3001/Sulkta-Coop/clawdforge"
|
|
Source = "http://192.168.0.5:3001/Sulkta-Coop/clawdforge"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/clawdforge"]
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
include = [
|
|
"src/clawdforge",
|
|
"README.md",
|
|
"pyproject.toml",
|
|
]
|