t('Astrolabe Administration')); ?>

t('Monitor and configure the semantic search service for your Nextcloud instance.')); ?>

t('Configuration')); ?>

t('Service URL')); ?> t('Not configured')); ?>
t('API Key')); ?> t('Configured')); ?> t('Not configured')); ?>
t('OAuth Client ID')); ?> t('Configured')); ?> t('Not configured - OAuth will not work')); ?>
t('OAuth Client Secret')); ?> t('Configured')); ?> t('Optional - Uses PKCE fallback')); ?>

t('Configuration Required')); ?>

t('Add the following to your config.php:')); ?>

'mcp_server_url' => 'http://localhost:8000',
'mcp_server_api_key' => 'your-secret-api-key',
'astrolabe_client_id' => 'your-oauth-client-id',

t('See documentation for details')); ?>

t('Optional: Confidential OAuth Client')); ?>

t('To use refresh tokens for long-lived sessions, generate a client secret:')); ?>

openssl rand -hex 32

t('Then add it to your config.php:')); ?>

'astrolabe_client_secret' => 'your-generated-secret',

t('Without a client secret, the system will use PKCE (public client) authentication. Both methods work, but confidential clients provide better security for long-lived sessions.')); ?>

t('Service Status')); ?>

t('Version')); ?>
t('Uptime')); ?> t('Unknown')); ?>
t('Semantic Search')); ?> t('Enabled')); ?> t('Disabled')); ?>

t('Indexing Metrics')); ?>

t('Status')); ?>
t('Indexed Documents')); ?>
t('Pending Documents')); ?>
t('Last Sync')); ?>
t('Processing Rate')); ?>
t('Errors (24h)')); ?> 0): ?>

t('Metrics are updated in real-time. Refresh the page to see latest values.')); ?>

t('Indexing Metrics')); ?>

t('Failed to retrieve indexing status:')); ?>

t('AI Search Provider Settings')); ?>

t('Configure the default search parameters for the AI Search provider in Nextcloud unified search.')); ?>

t('Hybrid combines semantic understanding with keyword matching. Semantic finds conceptually similar content. BM25 matches exact keywords.')); ?>

t('Only applies to hybrid search. RRF balances results well for most queries. DBSF may work better when keyword matches are over/under-weighted.')); ?>

t('Filter out results below this relevance score. Set to 0 to show all results.')); ?>

t('Maximum number of results to return per search query (5-100).')); ?>

t('Webhook Management')); ?>

t('Configure real-time synchronization for Nextcloud apps using webhooks. Webhooks provide instant updates to the MCP server when content changes.')); ?>

t('Loading webhook presets...')); ?>

t('How Webhooks Work')); ?>

  • t('Enable a preset to register webhooks for that app with the MCP server')); ?>
  • t('When content changes in Nextcloud, webhooks notify the MCP server instantly')); ?>
  • t('The MCP server updates its vector index in real-time for semantic search')); ?>
  • t('Disable a preset to stop receiving updates for that app')); ?>

t('Requirements')); ?>

  • t('The webhook_listeners app must be installed and enabled in Nextcloud')); ?>
  • t('The MCP server must be reachable from your Nextcloud instance')); ?>
  • t('You must have authorized Astrolabe with the MCP server (see Personal Settings)')); ?>

t('Capabilities')); ?>

t('Documentation')); ?>