php-agentic/Services
darbs-claude a352f697a9
Some checks failed
CI / PHP 8.4 (pull_request) Failing after 1m23s
CI / PHP 8.3 (pull_request) Failing after 1m27s
perf: cache permitted tools per API key (closes #24)
Cache the list of permitted tool names in `AgentToolRegistry::forApiKey()`
using a 1-hour TTL to avoid O(n) filtering on every request (PERF-002).

- Add `Cache::remember()` in `forApiKey()` storing tool names keyed by API
  key ID (`agent_tool_registry:api_key:{id}`)
- Add `flushCacheForApiKey(int|string $id)` for explicit invalidation
- Add `CACHE_TTL` constant (3600 s) for easy tuning
- Invalidate cache in `AgentApiKeyService::updatePermissions()` and `revoke()`
  so permission changes take effect immediately
- Add `tests/Unit/AgentToolRegistryTest.php` covering cache hit/miss,
  per-key isolation, scope filtering, TTL constant, and flush behaviour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 10:54:12 +00:00
..
Concerns chore: fix pint code style and add test config 2026-02-23 03:50:09 +00:00
AgentApiKeyService.php perf: cache permitted tools per API key (closes #24) 2026-02-23 10:54:12 +00:00
AgentDetection.php refactor: rename namespace Core\Agentic to Core\Mod\Agentic 2026-01-27 16:12:58 +00:00
AgenticManager.php refactor: rename namespace Core\Agentic to Core\Mod\Agentic 2026-01-27 16:12:58 +00:00
AgenticProviderInterface.php refactor: rename namespace Core\Agentic to Core\Mod\Agentic 2026-01-27 16:12:58 +00:00
AgenticResponse.php refactor: rename namespace Core\Agentic to Core\Mod\Agentic 2026-01-27 16:12:58 +00:00
AgentSessionService.php chore: fix pint code style and add test config 2026-02-23 03:50:09 +00:00
AgentToolRegistry.php perf: cache permitted tools per API key (closes #24) 2026-02-23 10:54:12 +00:00
ClaudeService.php chore: fix pint code style and add test config 2026-02-23 03:50:09 +00:00
ContentService.php chore: fix pint code style and add test config 2026-02-23 03:50:09 +00:00
GeminiService.php chore: fix pint code style and add test config 2026-02-23 03:50:09 +00:00
IpRestrictionService.php refactor: rename namespace Core\Agentic to Core\Mod\Agentic 2026-01-27 16:12:58 +00:00
OpenAIService.php chore: fix pint code style and add test config 2026-02-23 03:50:09 +00:00
PlanTemplateService.php refactor: update namespaces for L1/L2 package convention 2026-01-27 17:34:46 +00:00