clawdforge/clients/php/composer.json
Kayos 1cff9b89d2 clients/php: initial PHP SDK for clawdforge
PHP 8.2+ Guzzle-based client mirroring the Python SDK surface:

- Client::healthz / run / uploadFile / createToken / listTokens / revokeToken
- Readonly value objects: RunRequest, RunResult, FileToken, AppToken
- Exception hierarchy: ForgeException (abstract) -> ApiException ->
  AuthException, plus TransportException
- camelCase PHP <-> snake_case wire conversion at the boundary
- Streamed multipart uploads via fopen($path, 'r')
- Injectable GuzzleHttp\ClientInterface (MockHandler-friendly)
- HTTP timeout = subprocess timeout + 30s margin
- 15 PHPUnit tests, 61 assertions, no live network
- README with Laravel + WordPress integration snippets
- MIT license, no Sulkta-specific assumptions
2026-04-28 22:41:02 -07:00

47 lines
1.1 KiB
JSON

{
"name": "clawdforge/clawdforge",
"description": "PHP SDK for the clawdforge LAN-only HTTP service (claude -p subprocess wrapper).",
"type": "library",
"license": "MIT",
"keywords": [
"clawdforge",
"claude",
"anthropic",
"sdk",
"http-client"
],
"homepage": "http://192.168.0.5:3001/Sulkta-Coop/clawdforge",
"authors": [
{
"name": "Kayos",
"email": "kayos@sulkta.com"
}
],
"require": {
"php": "^8.2",
"ext-json": "*",
"guzzlehttp/guzzle": "^7.5"
},
"require-dev": {
"phpunit/phpunit": "^10.5"
},
"autoload": {
"psr-4": {
"Clawdforge\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Clawdforge\\Tests\\": "tests/"
}
},
"scripts": {
"test": "phpunit",
"lint": "find src -name '*.php' -exec php -l {} \\;"
},
"config": {
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "stable"
}