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
47 lines
1.1 KiB
JSON
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"
|
|
}
|