diff --git a/dashcaddy-api/routes/ai-intent.js b/dashcaddy-api/routes/ai-intent.js index 8d23316..f39be3a 100644 --- a/dashcaddy-api/routes/ai-intent.js +++ b/dashcaddy-api/routes/ai-intent.js @@ -53,11 +53,14 @@ const INTENT_PATTERNS = [ message: 'For media streaming, I recommend:', recommendations: [ { app: 'plex', reason: 'Stream movies and TV shows to any device' }, + { app: 'jellyfin', reason: 'Free open-source alternative to Plex, no premium features locked' }, + { app: 'emby', reason: 'Media server with live TV and parental controls' }, { app: 'sonarr', reason: 'Automatically download TV shows' }, { app: 'radarr', reason: 'Automatically download movies' }, { app: 'qbittorrent', reason: 'Download client for media files' }, ], question: 'Would you like me to deploy any of these?', + disclaimer: 'DashCaddy provides deployment tools only. Users are responsible for complying with all applicable copyright and intellectual property laws. Always stream content you own or have rights to access.', }), }, @@ -334,4 +337,4 @@ module.exports = function({ asyncHandler }) { return router; }; -module.exports.routeIntent = routeIntent; +module.exports.routeIntent = routeIntent; \ No newline at end of file diff --git a/status/js/ai-chat.js b/status/js/ai-chat.js index aeb078c..3e7ef44 100644 --- a/status/js/ai-chat.js +++ b/status/js/ai-chat.js @@ -71,6 +71,12 @@ if (extra) { const extraDiv = document.createElement('div'); extraDiv.style.cssText = 'align-self:flex-start; max-width:85%; margin-top:4px;'; + if (extra.disclaimer) { + const disc = document.createElement('div'); + disc.style.cssText = 'font-size:0.7rem; color:var(--text-muted,#666); padding:6px 8px; line-height:1.4; margin-top:4px;'; + disc.textContent = '⚠️ ' + extra.disclaimer; + extraDiv.appendChild(disc); + } if (extra.recommendations) { extra.recommendations.forEach(rec => { const btn = document.createElement('button');