diff --git a/lib/Capabilities.php b/lib/Capabilities.php index c2ecc80e..a6227ba0 100644 --- a/lib/Capabilities.php +++ b/lib/Capabilities.php @@ -7,6 +7,7 @@ use OCA\Assistant\AppInfo\Application; use OCP\App\IAppManager; use OCP\Capabilities\IPublicCapability; +use OCP\IAppConfig; use OCP\IConfig; class Capabilities implements IPublicCapability { @@ -14,6 +15,7 @@ class Capabilities implements IPublicCapability { public function __construct( private IAppManager $appManager, private IConfig $config, + private IAppConfig $appConfig, private ?string $userId, ) { } @@ -34,7 +36,7 @@ public function getCapabilities(): array { ], ]; if ($this->userId !== null) { - $adminAssistantEnabled = $this->config->getAppValue(Application::APP_ID, 'assistant_enabled', '1') === '1'; + $adminAssistantEnabled = $this->appConfig->getValueString(Application::APP_ID, 'assistant_enabled', '1') === '1'; $userAssistantEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'assistant_enabled', '1') === '1'; $assistantEnabled = $adminAssistantEnabled && $userAssistantEnabled; $capability[Application::APP_ID]['enabled'] = $assistantEnabled; diff --git a/lib/Controller/ChattyLLMController.php b/lib/Controller/ChattyLLMController.php index 6138255e..32183246 100644 --- a/lib/Controller/ChattyLLMController.php +++ b/lib/Controller/ChattyLLMController.php @@ -14,7 +14,7 @@ use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\Attribute\OpenAPI; use OCP\AppFramework\Http\JSONResponse; -use OCP\IConfig; +use OCP\IAppConfig; use OCP\IL10N; use OCP\IRequest; use OCP\IUserManager; @@ -39,7 +39,7 @@ public function __construct( private IL10N $l10n, private LoggerInterface $logger, private ITaskProcessingManager $taskProcessingManager, - private IConfig $config, + private IAppConfig $appConfig, private IUserManager $userManager, private ?string $userId, ) { @@ -64,7 +64,7 @@ public function newSession(int $timestamp, ?string $title = null): JSONResponse return new JSONResponse(['error' => $this->l10n->t('User not found')], Http::STATUS_UNAUTHORIZED); } - $userInstructions = $this->config->getAppValue( + $userInstructions = $this->appConfig->getValueString( Application::APP_ID, 'chat_user_instructions', Application::CHAT_USER_INSTRUCTIONS, @@ -419,7 +419,7 @@ public function generateTitle(int $sessionId): JSONResponse { } try { - $userInstructions = $this->config->getAppValue( + $userInstructions = $this->appConfig->getValueString( Application::APP_ID, 'chat_user_instructions_title', Application::CHAT_USER_INSTRUCTIONS_TITLE, @@ -465,7 +465,7 @@ public function checkTitleGenerationTask(int $taskId, int $sessionId): JSONRespo if ($task->getStatus() === Task::STATUS_SUCCESSFUL) { try { $taskOutput = trim($task->getOutput()['output'] ?? ''); - $userInstructions = $this->config->getAppValue( + $userInstructions = $this->appConfig->getValueString( Application::APP_ID, 'chat_user_instructions_title', Application::CHAT_USER_INSTRUCTIONS_TITLE, @@ -510,7 +510,7 @@ private function getStichedMessages(int $sessionId): string { $stichedPrompt = $firstMessage->getContent() . PHP_EOL; } - $lastNMessages = intval($this->config->getAppValue(Application::APP_ID, 'chat_last_n_messages', '10')); + $lastNMessages = intval($this->appConfig->getValueString(Application::APP_ID, 'chat_last_n_messages', '10')); $messages = $this->messageMapper->getMessages($sessionId, 0, $lastNMessages); if ($messages[0]->getRole() === 'system') { diff --git a/lib/Controller/ConfigController.php b/lib/Controller/ConfigController.php index ade35f00..69b8f175 100644 --- a/lib/Controller/ConfigController.php +++ b/lib/Controller/ConfigController.php @@ -7,6 +7,7 @@ use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\Attribute\OpenAPI; use OCP\AppFramework\Http\DataResponse; +use OCP\IAppConfig; use OCP\IConfig; use OCP\IRequest; @@ -19,6 +20,7 @@ public function __construct( string $appName, IRequest $request, private IConfig $config, + private IAppConfig $appConfig, private ?string $userId ) { parent::__construct($appName, $request); @@ -57,7 +59,7 @@ public function getConfigValue(string $key): DataResponse { */ public function setAdminConfig(array $values): DataResponse { foreach ($values as $key => $value) { - $this->config->setAppValue(Application::APP_ID, $key, $value); + $this->appConfig->setValueString(Application::APP_ID, $key, $value); } return new DataResponse(1); } diff --git a/lib/Listener/BeforeTemplateRenderedListener.php b/lib/Listener/BeforeTemplateRenderedListener.php index ba3c872c..3f2714c6 100644 --- a/lib/Listener/BeforeTemplateRenderedListener.php +++ b/lib/Listener/BeforeTemplateRenderedListener.php @@ -12,6 +12,7 @@ use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventListener; +use OCP\IAppConfig; use OCP\IConfig; use OCP\IUser; use OCP\IUserSession; @@ -25,6 +26,7 @@ class BeforeTemplateRenderedListener implements IEventListener { public function __construct( private IUserSession $userSession, private IConfig $config, + private IAppConfig $appConfig, private IInitialState $initialStateService, private IEventDispatcher $eventDispatcher, private ?string $userId, @@ -47,7 +49,7 @@ public function handle(Event $event): void { $this->eventDispatcher->dispatchTyped(new RenderReferenceEvent()); - $adminAssistantEnabled = $this->config->getAppValue(Application::APP_ID, 'assistant_enabled', '1') === '1'; + $adminAssistantEnabled = $this->appConfig->getValueString(Application::APP_ID, 'assistant_enabled', '1') === '1'; $userAssistantEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'assistant_enabled', '1') === '1'; $assistantEnabled = $adminAssistantEnabled && $userAssistantEnabled; $this->initialStateService->provideInitialState('assistant-enabled', $assistantEnabled); diff --git a/lib/Listener/FreePrompt/FreePromptReferenceListener.php b/lib/Listener/FreePrompt/FreePromptReferenceListener.php index 81b3b099..0b577909 100644 --- a/lib/Listener/FreePrompt/FreePromptReferenceListener.php +++ b/lib/Listener/FreePrompt/FreePromptReferenceListener.php @@ -9,6 +9,7 @@ use OCP\Collaboration\Reference\RenderReferenceEvent; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use OCP\IAppConfig; use OCP\IConfig; use OCP\TaskProcessing\IManager as ITaskProcessingManager; use OCP\TaskProcessing\TaskTypes\TextToText; @@ -20,6 +21,7 @@ class FreePromptReferenceListener implements IEventListener { public function __construct( private IConfig $config, + private IAppConfig $appConfig, private ?string $userId, private ITaskProcessingManager $taskProcessingManager, ) { @@ -32,8 +34,8 @@ public function handle(Event $event): void { return; } - if ($this->config->getAppValue(Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1' && - $this->config->getUserValue($this->userId, Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1') { + if ($this->appConfig->getValueString(Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1' + && $this->config->getUserValue($this->userId, Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1') { // Double check that at least one provider is registered $availableTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); diff --git a/lib/Listener/SpeechToText/SpeechToTextReferenceListener.php b/lib/Listener/SpeechToText/SpeechToTextReferenceListener.php index a2707c4d..aed2c6a1 100644 --- a/lib/Listener/SpeechToText/SpeechToTextReferenceListener.php +++ b/lib/Listener/SpeechToText/SpeechToTextReferenceListener.php @@ -27,6 +27,7 @@ use OCP\Collaboration\Reference\RenderReferenceEvent; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use OCP\IAppConfig; use OCP\IConfig; use OCP\TaskProcessing\IManager as ITaskProcessingManager; use OCP\TaskProcessing\TaskTypes\AudioToText; @@ -38,6 +39,7 @@ class SpeechToTextReferenceListener implements IEventListener { public function __construct( private IConfig $config, + private IAppConfig $appConfig, private ?string $userId, private ITaskProcessingManager $taskProcessingManager, ) { @@ -47,8 +49,8 @@ public function handle(Event $event): void { if (!$event instanceof RenderReferenceEvent) { return; } - if ($this->config->getAppValue(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1' && - ($this->userId === null || $this->config->getUserValue($this->userId, Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1')) { + if ($this->appConfig->getValueString(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1' + && ($this->userId === null || $this->config->getUserValue($this->userId, Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1')) { // Double check that at least one provider is registered $availableTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); diff --git a/lib/Listener/Text2Image/Text2ImageReferenceListener.php b/lib/Listener/Text2Image/Text2ImageReferenceListener.php index 6fd113c9..e9cb3446 100644 --- a/lib/Listener/Text2Image/Text2ImageReferenceListener.php +++ b/lib/Listener/Text2Image/Text2ImageReferenceListener.php @@ -9,6 +9,7 @@ use OCP\Collaboration\Reference\RenderReferenceEvent; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use OCP\IAppConfig; use OCP\IConfig; use OCP\TaskProcessing\IManager as ITaskProcessingManager; use OCP\TaskProcessing\TaskTypes\TextToImage; @@ -20,6 +21,7 @@ class Text2ImageReferenceListener implements IEventListener { public function __construct( private IConfig $config, + private IAppConfig $appConfig, private ?string $userId, private ITaskProcessingManager $taskProcessingManager, ) { @@ -31,8 +33,8 @@ public function handle(Event $event): void { return; } - if ($this->config->getAppValue(Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1' && - $this->config->getUserValue($this->userId, Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1') { + if ($this->appConfig->getValueString(Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1' + && $this->config->getUserValue($this->userId, Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1') { // Double check that atleast one provider is registered $availableTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 5705e767..8aaaabd7 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -5,7 +5,7 @@ use OCA\Assistant\AppInfo\Application; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; -use OCP\IConfig; +use OCP\IAppConfig; use OCP\Settings\ISettings; use OCP\TaskProcessing\IManager as ITaskProcessingManager; use OCP\TaskProcessing\TaskTypes\AudioToText; @@ -15,7 +15,7 @@ class Admin implements ISettings { public function __construct( - private IConfig $config, + private IAppConfig $appConfig, private IInitialState $initialStateService, private ITaskProcessingManager $taskProcessingManager, ) { @@ -33,15 +33,15 @@ public function getForm(): TemplateResponse { $speechToTextAvailable = array_key_exists(AudioToText::ID, $availableTaskTypes); $textToImageAvailable = array_key_exists(TextToImage::ID, $availableTaskTypes); - $assistantEnabled = $this->config->getAppValue(Application::APP_ID, 'assistant_enabled', '1') === '1'; + $assistantEnabled = $this->appConfig->getValueString(Application::APP_ID, 'assistant_enabled', '1') === '1'; - $freePromptPickerEnabled = $this->config->getAppValue(Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1'; - $textToImagePickerEnabled = $this->config->getAppValue(Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1'; + $freePromptPickerEnabled = $this->appConfig->getValueString(Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1'; + $textToImagePickerEnabled = $this->appConfig->getValueString(Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1'; - $speechToTextEnabled = $this->config->getAppValue(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1'; - $chattyLLMUserInstructions = $this->config->getAppValue(Application::APP_ID, 'chat_user_instructions', Application::CHAT_USER_INSTRUCTIONS); - $chattyLLMUserInstructionsTitle = $this->config->getAppValue(Application::APP_ID, 'chat_user_instructions_title', Application::CHAT_USER_INSTRUCTIONS_TITLE); - $chattyLLMLastNMessages = (int) $this->config->getAppValue(Application::APP_ID, 'chat_last_n_messages', '10'); + $speechToTextEnabled = $this->appConfig->getValueString(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1'; + $chattyLLMUserInstructions = $this->appConfig->getValueString(Application::APP_ID, 'chat_user_instructions', Application::CHAT_USER_INSTRUCTIONS); + $chattyLLMUserInstructionsTitle = $this->appConfig->getValueString(Application::APP_ID, 'chat_user_instructions_title', Application::CHAT_USER_INSTRUCTIONS_TITLE); + $chattyLLMLastNMessages = (int) $this->appConfig->getValueString(Application::APP_ID, 'chat_last_n_messages', '10'); $adminConfig = [ 'text_processing_available' => $taskProcessingAvailable, diff --git a/lib/Settings/Personal.php b/lib/Settings/Personal.php index e848d668..074b385b 100644 --- a/lib/Settings/Personal.php +++ b/lib/Settings/Personal.php @@ -5,6 +5,7 @@ use OCA\Assistant\AppInfo\Application; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; +use OCP\IAppConfig; use OCP\IConfig; use OCP\Settings\ISettings; use OCP\TaskProcessing\Exception\Exception; @@ -17,6 +18,7 @@ class Personal implements ISettings { public function __construct( private IConfig $config, + private IAppConfig $appConfig, private IInitialState $initialStateService, private ?string $userId, private ITaskProcessingManager $taskProcessingManager, @@ -35,16 +37,16 @@ public function getForm(): TemplateResponse { $speechToTextAvailable = in_array(AudioToText::ID, $availableTaskTypes); $textToImageAvailable = in_array(TextToImage::ID, $availableTaskTypes); - $assistantAvailable = $taskProcessingAvailable && $this->config->getAppValue(Application::APP_ID, 'assistant_enabled', '1') === '1'; + $assistantAvailable = $taskProcessingAvailable && $this->appConfig->getValueString(Application::APP_ID, 'assistant_enabled', '1') === '1'; $assistantEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'assistant_enabled', '1') === '1'; - $textToImagePickerAvailable = $textToImageAvailable && $this->config->getAppValue(Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1'; + $textToImagePickerAvailable = $textToImageAvailable && $this->appConfig->getValueString(Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1'; $textToImagePickerEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'text_to_image_picker_enabled', '1') === '1'; - $freePromptPickerAvailable = $freePromptTaskTypeAvailable && $this->config->getAppValue(Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1'; + $freePromptPickerAvailable = $freePromptTaskTypeAvailable && $this->appConfig->getValueString(Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1'; $freePromptPickerEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'free_prompt_picker_enabled', '1') === '1'; - $speechToTextPickerAvailable = $speechToTextAvailable && $this->config->getAppValue(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1'; + $speechToTextPickerAvailable = $speechToTextAvailable && $this->appConfig->getValueString(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1'; $speechToTextPickerEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1'; $userConfig = [