agent/php/Controllers/Api/SubscriptionController.php
Virgil 6c69005aff feat(agent): implement fleet and sync RFC surfaces
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 07:27:15 +00:00

48 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Core\Mod\Agentic\Controllers\Api;
use Core\Front\Controller;
use Core\Mod\Agentic\Actions\Subscription\DetectCapabilities;
use Core\Mod\Agentic\Actions\Subscription\GetNodeBudget;
use Core\Mod\Agentic\Actions\Subscription\UpdateBudget;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class SubscriptionController extends Controller
{
public function detect(Request $request): JsonResponse
{
$validated = $request->validate([
'api_keys' => 'nullable|array',
]);
$capabilities = DetectCapabilities::run($validated['api_keys'] ?? []);
return response()->json(['data' => $capabilities]);
}
public function budget(Request $request, string $agentId): JsonResponse
{
$budget = GetNodeBudget::run((int) $request->attributes->get('workspace_id'), $agentId);
return response()->json(['data' => $budget]);
}
public function updateBudget(Request $request, string $agentId): JsonResponse
{
$validated = $request->validate([
'limits' => 'required|array',
]);
$budget = UpdateBudget::run(
(int) $request->attributes->get('workspace_id'),
$agentId,
$validated['limits'],
);
return response()->json(['data' => $budget]);
}
}