research-agent-ui 0.1.169 → 0.1.170
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.cjs +1 -1
- package/dist/api.mjs +2 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/settings/index.d.ts +2 -0
- package/dist/{src-CnNezsUY.js → src-Bt9uoPG1.js} +8 -4
- package/dist/{src-CIlJeaIT.cjs → src-CqXIkfBq.cjs} +2 -2
- package/dist/workspace.cjs +1 -1
- package/dist/workspace.mjs +1 -1
- package/package.json +11 -11
- package/src/settings/index.ts +26 -2
- package/src/settings/search.json +22 -0
package/dist/api.cjs
CHANGED
|
@@ -33,6 +33,6 @@ User question: ${i}
|
|
|
33
33
|
|
|
34
34
|
Please provide a helpful answer based on the article content above.`,{text:d}=await(0,t.generateText)({model:c,messages:[{role:`system`,content:`You are a helpful AI assistant that answers questions about articles.
|
|
35
35
|
Provide clear, concise, and accurate answers based on the article content provided.
|
|
36
|
-
If the answer is not in the article, say so.`},{role:`user`,content:u}]});return Response.json({content:d,success:!0})}catch(e){return console.error(`Error in article Q&A:`,e),Response.json({error:`An error occurred while generating the answer`,details:e instanceof Error?e.message:String(e)},{status:500})}}}function _(e){let{chats:t,messages:n}=e.schema;return{GET:async i=>{try{let i=e.getDB(),a=await e.requireUserId(),o=await i.select({id:t.id,title:t.title,createdAt:t.createdAt,focusMode:t.focusMode,userId:t.userId,files:t.files,messageCount:(0,r.count)(n.id),lastMessageAt:(0,r.max)(n.createdAt)}).from(t).leftJoin(n,(0,r.and)((0,r.eq)(n.chatId,t.id),(0,r.eq)(n.role,`user`))).where((0,r.eq)(t.userId,a)).groupBy(t.id,t.title,t.createdAt,t.focusMode,t.userId,t.files).orderBy(r.sql`${t.createdAt} DESC`);return Response.json({chats:o},{status:200})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error in getting chats: `,e),Response.json({message:`An error has occurred.`},{status:500}))}},DELETE:async i=>{try{let i=e.getDB(),a=await e.requireUserId(),o=await i.query.chats.findMany({where:(0,r.eq)(t.userId,a),columns:{id:!0}});if(o.length>0){let e=o.map(e=>e.id);await i.delete(n).where((0,r.inArray)(n.chatId,e)),await i.delete(t).where((0,r.eq)(t.userId,a))}return Response.json({message:`All chats deleted`},{status:200})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error in deleting all chats: `,e),Response.json({message:`An error has occurred.`},{status:500}))}}}}function v(e){let{chats:t,messages:n}=e.schema;return{GET:async(i,{params:a})=>{try{let i=e.getDB(),{id:o}=await a,s;try{s=await e.requireUserId()}catch{s=void 0}let c=await i.query.chats.findFirst({where:(0,r.eq)(t.id,o)});if(!c)return Response.json({message:`Chat not found`},{status:404});if(!(c.userId===s||c.isPublic))return Response.json({message:`Unauthorized - this chat is private`},{status:403});let l=await i.query.messages.findMany({where:(0,r.eq)(n.chatId,o)});return Response.json({chat:c,messages:l},{status:200})}catch(e){return console.error(`Error in getting chat by id: `,e),Response.json({message:`An error has occurred.`},{status:500})}},DELETE:async(i,{params:a})=>{try{let i=e.getDB(),{id:o}=await a,s=await e.requireUserId();return await i.query.chats.findFirst({where:(0,r.and)((0,r.eq)(t.id,o),(0,r.eq)(t.userId,s))})?(await i.delete(t).where((0,r.eq)(t.id,o)).execute(),await i.delete(n).where((0,r.eq)(n.chatId,o)).execute(),Response.json({message:`Chat deleted successfully`},{status:200})):Response.json({message:`Chat not found`},{status:404})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error in deleting chat by id: `,e),Response.json({message:`An error has occurred.`},{status:500}))}}}}function y(e){let{chats:t,messages:n}=e.schema;return{GET:async i=>{try{let a=e.getDB(),o=await e.requireUserId(),{searchParams:s}=new URL(i.url),c=s.get(`q`);if(!c||c.trim().length===0)return Response.json({chats:[]},{status:200});let l=`%${c.trim()}%`,u=await a.select({id:t.id,title:t.title,createdAt:t.createdAt,focusMode:t.focusMode,userId:t.userId,files:t.files}).from(t).where((0,r.and)((0,r.eq)(t.userId,o),(0,r.like)(t.title,l))).orderBy(r.sql`${t.createdAt} DESC`),d=await a.selectDistinct({id:t.id,title:t.title,createdAt:t.createdAt,focusMode:t.focusMode,userId:t.userId,files:t.files}).from(n).innerJoin(t,(0,r.eq)(n.chatId,t.id)).where((0,r.and)((0,r.eq)(t.userId,o),(0,r.or)((0,r.like)(n.content,l)))).orderBy(r.sql`${t.createdAt} DESC`),f=[...u,...d],p=Array.from(new Map(f.map(e=>[e.id,e])).values()),m=p.map(e=>e.id),h=m.length?await a.select({chatId:n.chatId,count:r.sql`count(*)`}).from(n).where((0,r.and)(r.sql`${n.chatId} IN (${r.sql.join(m.map(e=>r.sql`${e}`),r.sql`, `)})`,(0,r.eq)(n.role,`user`))).groupBy(n.chatId):[],g=new Map(h.map(e=>[e.chatId,Number(e.count)])),_=p.map(e=>({...e,messageCount:g.get(e.id)||0}));return Response.json({chats:_},{status:200})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error searching chats:`,e),Response.json({message:`An error has occurred.`},{status:500}))}}}}function b(e){let{chats:t}=e.schema;return{POST:async n=>{try{let i=e.getDB(),{chatId:a}=await n.json();if(!a)return Response.json({success:!1,error:`Chat ID is required`},{status:400});let o=await e.requireUserId(),s=await i.query.chats.findFirst({where:(0,r.eq)(t.id,a)});if(!s)return Response.json({success:!1,error:`Chat not found`},{status:404});if(s.userId!==o)return Response.json({success:!1,error:`Unauthorized`},{status:403});await i.update(t).set({isPublic:1}).where((0,r.eq)(t.id,a)).execute();let c=`${new URL(n.url).origin}/c/${a}`;return Response.json({success:!0,data:{chatId:a,shareUrl:c}})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({success:!1,error:`Authentication required`},{status:401}):(console.error(`Error in making chat public: `,e),Response.json({success:!1,error:`An error has occurred.`},{status:500}))}}}}function x(e){let{chats:t}=e.schema;return{POST:async a=>{try{let o=await a.json(),s=o.chatHistory.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({role:e.role,content:String(e.content??``)}));if(s.length===0)return Response.json({message:`No conversation content`},{status:400});let c=await new n.default().loadChatModel(o.chatModel.providerId,o.chatModel.key),l=await(0,i.default)({chat_history:s},c);if(!l)return Response.json({message:`Failed to generate title`},{status:500});let u=e.getUserId?await e.getUserId():null;if(u&&o.chatId)try{let n=e.getDB(),i=await n.query.chats.findFirst({where:(0,r.eq)(t.id,o.chatId)});i&&i.userId===u&&await n.update(t).set({title:l}).where((0,r.eq)(t.id,o.chatId)).execute()}catch(e){console.error(`Failed to persist chat title:`,e)}return Response.json({title:l},{status:200})}catch(e){return console.error(`Error generating chat title:`,e),Response.json({message:`Failed to generate title`},{status:500})}}}}var S=[`assistant`,`user`,`source`,`suggestion`];function C(e){let t=[],n=e;for(let e=0;n!=null&&e<5;e++)t.push(n instanceof Error?n.message:String(n)),n=n instanceof Error?n.cause:void 0;return t.join(` <- caused by: `)}function w(e){return{POST:async t=>{try{let n=e.getDB(),r=await e.requireUserId(),{chatId:i,messageId:a,role:o,suggestions:s,content:c,sources:l}=await t.json();return!i||!a||!o?Response.json({message:`Missing required fields`},{status:400}):S.includes(o)?(await n.insert(e.messagesSchema).values({chatId:i,userId:r,messageId:a,role:o,content:c||``,suggestions:s||[],sources:l||[],createdAt:new Date().toISOString()}),Response.json({message:`Message saved successfully`},{status:200})):Response.json({message:`Invalid role: ${o}`},{status:400})}catch(e){return console.error(`Error saving message:`,C(e)),Response.json({message:`Failed to save message`},{status:500})}}}}function T(e){return{GET:async t=>{try{let r=new n.default,i=new URL(t.url).searchParams.get(`guest`),a=i===`true`;i===null&&(a=!await e.getSession());let o=(await r.getActiveProviders(a)).filter(e=>!e.chatModels.some(e=>e.key===`error`));return o.length===0?Response.json({providers:[],error:a?`No guest-safe AI providers available. Please sign in for more options.`:`No AI providers configured. Please add OPENROUTER_API_KEY to your environment variables or configure your own API keys in Settings.`},{status:200}):Response.json({providers:o,isGuest:a},{status:200})}catch(e){return console.error(`An error occurred while fetching providers`,e),Response.json({message:`An error has occurred.`},{status:500})}},POST:async e=>{try{let{type:t,config:r}=await e.json();if(!t||!r)return Response.json({message:`Missing required fields.`},{status:400});let i=await new n.default().addProvider(t,r);return Response.json({provider:i},{status:200})}catch(e){return console.error(`An error occurred while creating provider`,e),Response.json({message:`An error has occurred.`},{status:500})}}}}function E(){return{DELETE:async(e,{params:t})=>{try{let{id:e}=await t;return e?(await new n.default().removeProvider(e),Response.json({message:`Provider deleted successfully.`},{status:200})):Response.json({message:`Provider ID is required.`},{status:400})}catch(e){return console.error(`An error occurred while deleting provider`,e.message),Response.json({message:`An error has occurred.`},{status:500})}},PATCH:async(e,{params:t})=>{try{let{config:r}=await e.json(),{id:i}=await t;if(!i||!r)return Response.json({message:`Missing required fields.`},{status:400});let a=await new n.default().updateProvider(i,r);return Response.json({provider:a},{status:200})}catch(e){return console.error(`An error occurred while updating provider`,e.message),Response.json({message:`An error has occurred.`},{status:500})}}}}function D(){return{POST:async(e,{params:t})=>{try{let{id:r}=await t,i=await e.json();return!i.key||!i.name?Response.json({message:`Key and name must be provided`},{status:400}):(await new n.default().addProviderModel(r,i.type,i),Response.json({message:`Model added successfully`},{status:200}))}catch(e){return console.error(`An error occurred while adding provider model`,e),Response.json({message:`An error has occurred.`},{status:500})}},DELETE:async(e,{params:t})=>{try{let{id:r}=await t,i=await e.json();return i.key?(await new n.default().removeProviderModel(r,i.type,i.key),Response.json({message:`Model added successfully`},{status:200})):Response.json({message:`Key and name must be provided`},{status:400})}catch(e){return console.error(`An error occurred while deleting provider model`,e),Response.json({message:`An error has occurred.`},{status:500})}}}}function O(e){return{GET:async t=>{try{let t=e.getConfiguredMCPServers();return Response.json({servers:t},{status:200})}catch(e){return console.error(`An error occurred while fetching MCP servers`,e),Response.json({message:`An error has occurred.`},{status:500})}},POST:async t=>{try{let{type:n,name:r,config:i}=await t.json();if(!n||!r||!i)return Response.json({message:`Missing required fields.`},{status:400});let a=e.configManager.addMCPServer(n,r,i);return Response.json({server:a},{status:200})}catch(e){return console.error(`An error occurred while creating MCP server`,e),Response.json({message:`An error has occurred.`},{status:500})}}}}function k(e){return{DELETE:async(t,{params:n})=>{try{let{id:t}=await n;return t?(e.configManager.removeMCPServer(t),Response.json({message:`MCP server deleted successfully.`},{status:200})):Response.json({message:`MCP Server ID is required.`},{status:400})}catch(e){return console.error(`An error occurred while deleting MCP server`,e.message),Response.json({message:`An error has occurred.`},{status:500})}},PATCH:async(t,{params:n})=>{try{let{name:r,config:i}=await t.json(),{id:a}=await n;if(!a||!r||!i)return Response.json({message:`Missing required fields.`},{status:400});let o=await e.configManager.updateMCPServer(a,r,i);return Response.json({server:o},{status:200})}catch(e){return console.error(`An error occurred while updating MCP server`,e.message),Response.json({message:`An error has occurred.`},{status:500})}}}}function A(e){return{POST:async(t,{params:n})=>{try{let{enabled:r}=await t.json(),{id:i}=await n;if(!i||typeof r!=`boolean`)return Response.json({message:`Missing required fields.`},{status:400});let a=e.configManager.toggleMCPServer(i,r);return Response.json({server:a},{status:200})}catch(e){return console.error(`An error occurred while toggling MCP server`,e.message),Response.json({message:`An error has occurred.`},{status:500})}}}}var j={tech:{query:[`technology news`,`latest tech`,`AI`,`science and innovation`],links:[`techcrunch.com`,`wired.com`,`theverge.com`]},finance:{query:[`finance news`,`economy`,`stock market`,`investing`],links:[`bloomberg.com`,`cnbc.com`,`marketwatch.com`]},art:{query:[`art news`,`culture`,`modern art`,`cultural events`],links:[`artnews.com`,`hyperallergic.com`,`theartnewspaper.com`]},sports:{query:[`sports news`,`latest sports`,`cricket football tennis`],links:[`espn.com`,`bbc.com/sport`,`skysports.com`]},entertainment:{query:[`entertainment news`,`movies`,`TV shows`,`celebrities`],links:[`hollywoodreporter.com`,`variety.com`,`deadline.com`]}};function M(e={}){let t=e.searxngDomain??`https://search.qwksearch.com`;return{GET:async e=>{let n=new URL(e.url).searchParams,r=n.get(`q`),i=n.get(`cat`)||`general`,o=parseInt(n.get(`page`)||`1`,10),s=Number.isFinite(o)&&o>0?o:1,c=n.get(`lang`)||`en-US`,l=n.get(`safesearch`)===`true`,u=n.get(`recency`)||void 0,d=n.get(`publicInstances`)===`true`;if(!r)return Response.json({error:`Query parameter is required`},{status:400});let f=Date.now();try{let e=await(0,a.searchWeb)(r,{category:i,recency:u,safesearch:l,maxRetries:6,privateSearxng:!d&&t,proxy:``,lang:c,page:s});e&&(Array.isArray(e)?e.length>0:e.results&&e.results.length>0)||(e=await(0,a.searchWeb)(r,{category:i,recency:u,safesearch:l,maxRetries:6,privateSearxng:!1,proxy:``,lang:c,page:s}));let n=Date.now()-f;return e?Array.isArray(e)?Response.json({results:e,elapsedTime:n}):Response.json({...e,elapsedTime:n}):Response.json({results:[],suggestions:[],elapsedTime:n})}catch(e){let t=e instanceof Error?e.message:String(e);return console.error(`Search error for q="${r}" cat="${i}" page=${s}: ${t}`,e instanceof Error?e.stack:void 0),Response.json({error:`Search failed`,results:[]},{status:500})}}}}function N(){return{GET:async e=>{try{let t=new URL(e.url).searchParams,n=t.get(`mode`)||`normal`,r=j[t.get(`topic`)||`tech`],i=[];if(n===`normal`){let e=new Set;i=(await Promise.all(r.links.flatMap(e=>r.query.map(async t=>(await(0,a.searchSearxng)(`site:${e} ${t}`,{engines:[`bing news`],pageno:1,language:`en`})).results)))).flat().filter(t=>{let n=t.url?.toLowerCase().trim();return!e.has(n)&&(e.add(n),!0)}).sort(()=>Math.random()-.5)}else i=(await(0,a.searchSearxng)(`site:${r.links[Math.floor(Math.random()*r.links.length)]} ${r.query[Math.floor(Math.random()*r.query.length)]}`,{engines:[`bing news`],pageno:1,language:`en`})).results;return Response.json({blogs:i},{status:200})}catch(e){return console.error(`An error occurred in discover route: ${e}`),Response.json({message:`An error has occurred`},{status:500})}}}}var P=[`google`,`duckduckgo`,`wikipedia`],F=3,I=3,L=Object.entries(l.default).map(([e,t])=>({domain:e,name:typeof t?.[0]==`string`?t[0]:``,rank:typeof t?.[1]==`number`?t[1]:2**53-1})),R=null;function z(){return R||=new s.default(L,{keys:[{name:`name`,weight:.6},{name:`domain`,weight:.4}],threshold:.1,ignoreLocation:!0,includeScore:!0,minMatchCharLength:3}),R}function B(e,t,n){return{domain:e,name:t,favicon:`https://www.google.com/s2/favicons?domain=${encodeURIComponent(e)}&sz=64`,rank:n}}function V(e){let t=(0,c.parse)(e);return t.domain&&t.isIcann?t.hostname:null}function H(e){let t=e.split(/\s+/).filter(Boolean),n=t[t.length-1]||``;if(n.length<3)return[];let r=z().search(n,{limit:12}).sort((e,t)=>Math.round((e.score??1)*10)-Math.round((t.score??1)*10)||e.item.rank-t.item.rank).map(({item:e})=>B(e.domain,e.name,e.rank)),i=V(n);return i&&!r.some(e=>e.domain===i)&&r.unshift(B(i,``,2**53-1)),r.slice(0,I)}async function U(e,t,n){let r=await(0,o.searchAutocompleteMulti)(e,t,n);if(r.length>0)return r;let i=t.split(/\s+/).filter(Boolean),a=Math.min(F,i.length-1);for(let r=a;r>=1;r--){let a=i.slice(-r).join(` `),s=i.slice(0,-r).join(` `),c=await(0,o.searchAutocompleteMulti)(e,a,n);if(c.length>0){let e=new Set;for(let n of c){let r=s?`${s} ${n}`:n;r.toLowerCase()!==t.toLowerCase()&&e.add(r)}if(e.size>0)return Array.from(e)}}return[]}function W(){return{GET:async e=>{let{searchParams:t}=new URL(e.url),n=t.get(`q`)?.trim(),r=t.get(`locale`)||`en-US`,i=t.get(`backends`),a=parseInt(t.get(`limit`)||`8`,10);if(!n)return Response.json({suggestions:[],domains:[]});let o=i?i.split(`,`).map(e=>e.trim()).filter(Boolean):P;try{let e=await U(o,n,r),t=H(n);return Response.json({suggestions:e.slice(0,a),domains:t})}catch(e){return console.error(`Autocomplete error:`,e),Response.json({suggestions:[],domains:[]},{status:500})}}}}function G(){return{POST:async e=>{let t=await e.json(),r=t.chatHistory.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({role:e.role,content:String(e.content??``)})),i=await new n.default().loadChatModel(t.chatModel.providerId,t.chatModel.key),a=(await(0,u.default)({chat_history:r,maxQuestions:t.maxQuestions},i)).flatMap(e=>(e.match(/\?/g)||[]).length>1?e.split(/\?/).map(e=>e.trim()).filter(e=>e.length>0).map(e=>e+`?`):[e]);return Response.json({suggestions:a},{status:200})}}}function K(e){return{POST:async t=>{let n;try{n=await t.json()}catch{return Response.json({error:`Invalid JSON input`},{status:500})}n.ip=t.headers?.get?.(`x-forwarded-for`)||t.headers?.get?.(`x-real-ip`)||`unknown`;let i=e.getDB(),a=await e.getUserId(),o=null;return a&&(o=await i.query.user.findFirst({where:(0,r.eq)(e.userSchema.id,a)})),o&&(n.apiKey=o.settings?.providerApiKeys?.find(e=>e.provider==n.provider)?.key),n.apiKey||(n.apiKey=n.provider==`groq`&&e.getEnv(`GROQ_API_KEY`)),n.apiKey?Response.json({error:`Language generation endpoint is deprecated. Please use /api/agent/chat instead.`},{status:501}):Response.json({error:`API key is required`},{status:500})}}}function q(e){return{POST:async t=>{try{let{text:n,prompt:r}=await t.json();if(!n||typeof n!=`string`)return Response.json({error:`Text is required and must be a string`},{status:400});let i=e.getEnv(`GROQ_API_KEY`);if(!i)return console.error(`GROQ_API_KEY is not configured`),Response.json({error:`AI service is not configured. Please contact the administrator.`},{status:500});let a=e.createGroq({apiKey:i})(`llama-3.3-70b-versatile`),o=r||`Rewrite the following text to improve clarity, grammar, and style while maintaining the original meaning and tone. Only return the rewritten text without any explanation or additional commentary:
|
|
36
|
+
If the answer is not in the article, say so.`},{role:`user`,content:u}]});return Response.json({content:d,success:!0})}catch(e){return console.error(`Error in article Q&A:`,e),Response.json({error:`An error occurred while generating the answer`,details:e instanceof Error?e.message:String(e)},{status:500})}}}function _(e){let{chats:t,messages:n}=e.schema;return{GET:async i=>{try{let i=e.getDB(),a=await e.requireUserId(),o=await i.select({id:t.id,title:t.title,createdAt:t.createdAt,focusMode:t.focusMode,userId:t.userId,files:t.files,messageCount:(0,r.count)(n.id),lastMessageAt:(0,r.max)(n.createdAt)}).from(t).leftJoin(n,(0,r.and)((0,r.eq)(n.chatId,t.id),(0,r.eq)(n.role,`user`))).where((0,r.eq)(t.userId,a)).groupBy(t.id,t.title,t.createdAt,t.focusMode,t.userId,t.files).orderBy(r.sql`${t.createdAt} DESC`);return Response.json({chats:o},{status:200})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error in getting chats: `,e),Response.json({message:`An error has occurred.`},{status:500}))}},DELETE:async i=>{try{let i=e.getDB(),a=await e.requireUserId(),o=await i.query.chats.findMany({where:(0,r.eq)(t.userId,a),columns:{id:!0}});if(o.length>0){let e=o.map(e=>e.id);await i.delete(n).where((0,r.inArray)(n.chatId,e)),await i.delete(t).where((0,r.eq)(t.userId,a))}return Response.json({message:`All chats deleted`},{status:200})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error in deleting all chats: `,e),Response.json({message:`An error has occurred.`},{status:500}))}}}}function v(e){let{chats:t,messages:n}=e.schema;return{GET:async(i,{params:a})=>{try{let i=e.getDB(),{id:o}=await a,s;try{s=await e.requireUserId()}catch{s=void 0}let c=await i.query.chats.findFirst({where:(0,r.eq)(t.id,o)});if(!c)return Response.json({message:`Chat not found`},{status:404});if(!(c.userId===s||c.isPublic))return Response.json({message:`Unauthorized - this chat is private`},{status:403});let l=await i.query.messages.findMany({where:(0,r.eq)(n.chatId,o)});return Response.json({chat:c,messages:l},{status:200})}catch(e){return console.error(`Error in getting chat by id: `,e),Response.json({message:`An error has occurred.`},{status:500})}},DELETE:async(i,{params:a})=>{try{let i=e.getDB(),{id:o}=await a,s=await e.requireUserId();return await i.query.chats.findFirst({where:(0,r.and)((0,r.eq)(t.id,o),(0,r.eq)(t.userId,s))})?(await i.delete(t).where((0,r.eq)(t.id,o)).execute(),await i.delete(n).where((0,r.eq)(n.chatId,o)).execute(),Response.json({message:`Chat deleted successfully`},{status:200})):Response.json({message:`Chat not found`},{status:404})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error in deleting chat by id: `,e),Response.json({message:`An error has occurred.`},{status:500}))}}}}function y(e){let{chats:t,messages:n}=e.schema;return{GET:async i=>{try{let a=e.getDB(),o=await e.requireUserId(),{searchParams:s}=new URL(i.url),c=s.get(`q`);if(!c||c.trim().length===0)return Response.json({chats:[]},{status:200});let l=`%${c.trim()}%`,u=await a.select({id:t.id,title:t.title,createdAt:t.createdAt,focusMode:t.focusMode,userId:t.userId,files:t.files}).from(t).where((0,r.and)((0,r.eq)(t.userId,o),(0,r.like)(t.title,l))).orderBy(r.sql`${t.createdAt} DESC`),d=await a.selectDistinct({id:t.id,title:t.title,createdAt:t.createdAt,focusMode:t.focusMode,userId:t.userId,files:t.files}).from(n).innerJoin(t,(0,r.eq)(n.chatId,t.id)).where((0,r.and)((0,r.eq)(t.userId,o),(0,r.or)((0,r.like)(n.content,l)))).orderBy(r.sql`${t.createdAt} DESC`),f=[...u,...d],p=Array.from(new Map(f.map(e=>[e.id,e])).values()),m=p.map(e=>e.id),h=m.length?await a.select({chatId:n.chatId,count:r.sql`count(*)`}).from(n).where((0,r.and)(r.sql`${n.chatId} IN (${r.sql.join(m.map(e=>r.sql`${e}`),r.sql`, `)})`,(0,r.eq)(n.role,`user`))).groupBy(n.chatId):[],g=new Map(h.map(e=>[e.chatId,Number(e.count)])),_=p.map(e=>({...e,messageCount:g.get(e.id)||0}));return Response.json({chats:_},{status:200})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({message:`Authentication required`},{status:401}):(console.error(`Error searching chats:`,e),Response.json({message:`An error has occurred.`},{status:500}))}}}}function b(e){let{chats:t}=e.schema;return{POST:async n=>{try{let i=e.getDB(),{chatId:a}=await n.json();if(!a)return Response.json({success:!1,error:`Chat ID is required`},{status:400});let o=await e.requireUserId(),s=await i.query.chats.findFirst({where:(0,r.eq)(t.id,a)});if(!s)return Response.json({success:!1,error:`Chat not found`},{status:404});if(s.userId!==o)return Response.json({success:!1,error:`Unauthorized`},{status:403});await i.update(t).set({isPublic:1}).where((0,r.eq)(t.id,a)).execute();let c=`${new URL(n.url).origin}/c/${a}`;return Response.json({success:!0,data:{chatId:a,shareUrl:c}})}catch(e){return e instanceof Error&&e.message===`Unauthorized`?Response.json({success:!1,error:`Authentication required`},{status:401}):(console.error(`Error in making chat public: `,e),Response.json({success:!1,error:`An error has occurred.`},{status:500}))}}}}function x(e){let{chats:t}=e.schema;return{POST:async a=>{try{let o=await a.json(),s=o.chatHistory.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({role:e.role,content:String(e.content??``)}));if(s.length===0)return Response.json({message:`No conversation content`},{status:400});let c=await new n.default().loadChatModel(o.chatModel.providerId,o.chatModel.key),l=await(0,i.default)({chat_history:s},c);if(!l)return Response.json({message:`Failed to generate title`},{status:500});let u=e.getUserId?await e.getUserId():null;if(u&&o.chatId)try{let n=e.getDB(),i=await n.query.chats.findFirst({where:(0,r.eq)(t.id,o.chatId)});i&&i.userId===u&&await n.update(t).set({title:l}).where((0,r.eq)(t.id,o.chatId)).execute()}catch(e){console.error(`Failed to persist chat title:`,e)}return Response.json({title:l},{status:200})}catch(e){return console.error(`Error generating chat title:`,e),Response.json({message:`Failed to generate title`},{status:500})}}}}var S=[`assistant`,`user`,`source`,`suggestion`];function C(e){let t=[],n=e;for(let e=0;n!=null&&e<5;e++)t.push(n instanceof Error?n.message:String(n)),n=n instanceof Error?n.cause:void 0;return t.join(` <- caused by: `)}function w(e){return{POST:async t=>{try{let n=e.getDB(),r=await e.requireUserId(),{chatId:i,messageId:a,role:o,suggestions:s,content:c,sources:l}=await t.json();return!i||!a||!o?Response.json({message:`Missing required fields`},{status:400}):S.includes(o)?(await n.insert(e.messagesSchema).values({chatId:i,userId:r,messageId:a,role:o,content:c||``,suggestions:s||[],sources:l||[],createdAt:new Date().toISOString()}),Response.json({message:`Message saved successfully`},{status:200})):Response.json({message:`Invalid role: ${o}`},{status:400})}catch(e){return console.error(`Error saving message:`,C(e)),Response.json({message:`Failed to save message`},{status:500})}}}}function T(e){return{GET:async t=>{try{let r=new n.default,i=new URL(t.url).searchParams.get(`guest`),a=i===`true`;i===null&&(a=!await e.getSession());let o=(await r.getActiveProviders(a)).filter(e=>!e.chatModels.some(e=>e.key===`error`));return o.length===0?Response.json({providers:[],error:a?`No guest-safe AI providers available. Please sign in for more options.`:`No AI providers configured. Please add OPENROUTER_API_KEY to your environment variables or configure your own API keys in Settings.`},{status:200}):Response.json({providers:o,isGuest:a},{status:200})}catch(e){return console.error(`An error occurred while fetching providers`,e),Response.json({message:`An error has occurred.`},{status:500})}},POST:async e=>{try{let{type:t,config:r}=await e.json();if(!t||!r)return Response.json({message:`Missing required fields.`},{status:400});let i=await new n.default().addProvider(t,r);return Response.json({provider:i},{status:200})}catch(e){return console.error(`An error occurred while creating provider`,e),Response.json({message:`An error has occurred.`},{status:500})}}}}function E(){return{DELETE:async(e,{params:t})=>{try{let{id:e}=await t;return e?(await new n.default().removeProvider(e),Response.json({message:`Provider deleted successfully.`},{status:200})):Response.json({message:`Provider ID is required.`},{status:400})}catch(e){return console.error(`An error occurred while deleting provider`,e.message),Response.json({message:`An error has occurred.`},{status:500})}},PATCH:async(e,{params:t})=>{try{let{config:r}=await e.json(),{id:i}=await t;if(!i||!r)return Response.json({message:`Missing required fields.`},{status:400});let a=await new n.default().updateProvider(i,r);return Response.json({provider:a},{status:200})}catch(e){return console.error(`An error occurred while updating provider`,e.message),Response.json({message:`An error has occurred.`},{status:500})}}}}function D(){return{POST:async(e,{params:t})=>{try{let{id:r}=await t,i=await e.json();return!i.key||!i.name?Response.json({message:`Key and name must be provided`},{status:400}):(await new n.default().addProviderModel(r,i.type,i),Response.json({message:`Model added successfully`},{status:200}))}catch(e){return console.error(`An error occurred while adding provider model`,e),Response.json({message:`An error has occurred.`},{status:500})}},DELETE:async(e,{params:t})=>{try{let{id:r}=await t,i=await e.json();return i.key?(await new n.default().removeProviderModel(r,i.type,i.key),Response.json({message:`Model added successfully`},{status:200})):Response.json({message:`Key and name must be provided`},{status:400})}catch(e){return console.error(`An error occurred while deleting provider model`,e),Response.json({message:`An error has occurred.`},{status:500})}}}}function O(e){return{GET:async t=>{try{let t=e.getConfiguredMCPServers();return Response.json({servers:t},{status:200})}catch(e){return console.error(`An error occurred while fetching MCP servers`,e),Response.json({message:`An error has occurred.`},{status:500})}},POST:async t=>{try{let{type:n,name:r,config:i}=await t.json();if(!n||!r||!i)return Response.json({message:`Missing required fields.`},{status:400});let a=e.configManager.addMCPServer(n,r,i);return Response.json({server:a},{status:200})}catch(e){return console.error(`An error occurred while creating MCP server`,e),Response.json({message:`An error has occurred.`},{status:500})}}}}function k(e){return{DELETE:async(t,{params:n})=>{try{let{id:t}=await n;return t?(e.configManager.removeMCPServer(t),Response.json({message:`MCP server deleted successfully.`},{status:200})):Response.json({message:`MCP Server ID is required.`},{status:400})}catch(e){return console.error(`An error occurred while deleting MCP server`,e.message),Response.json({message:`An error has occurred.`},{status:500})}},PATCH:async(t,{params:n})=>{try{let{name:r,config:i}=await t.json(),{id:a}=await n;if(!a||!r||!i)return Response.json({message:`Missing required fields.`},{status:400});let o=await e.configManager.updateMCPServer(a,r,i);return Response.json({server:o},{status:200})}catch(e){return console.error(`An error occurred while updating MCP server`,e.message),Response.json({message:`An error has occurred.`},{status:500})}}}}function A(e){return{POST:async(t,{params:n})=>{try{let{enabled:r}=await t.json(),{id:i}=await n;if(!i||typeof r!=`boolean`)return Response.json({message:`Missing required fields.`},{status:400});let a=e.configManager.toggleMCPServer(i,r);return Response.json({server:a},{status:200})}catch(e){return console.error(`An error occurred while toggling MCP server`,e.message),Response.json({message:`An error has occurred.`},{status:500})}}}}var j={tech:{query:[`technology news`,`latest tech`,`AI`,`science and innovation`],links:[`techcrunch.com`,`wired.com`,`theverge.com`]},finance:{query:[`finance news`,`economy`,`stock market`,`investing`],links:[`bloomberg.com`,`cnbc.com`,`marketwatch.com`]},art:{query:[`art news`,`culture`,`modern art`,`cultural events`],links:[`artnews.com`,`hyperallergic.com`,`theartnewspaper.com`]},sports:{query:[`sports news`,`latest sports`,`cricket football tennis`],links:[`espn.com`,`bbc.com/sport`,`skysports.com`]},entertainment:{query:[`entertainment news`,`movies`,`TV shows`,`celebrities`],links:[`hollywoodreporter.com`,`variety.com`,`deadline.com`]}};function M(e={}){let t=e.searxngDomain??`https://search.qwksearch.com`;return{GET:async e=>{let n=new URL(e.url).searchParams,r=n.get(`q`),i=n.get(`cat`)||`general`,o=parseInt(n.get(`page`)||`1`,10),s=Number.isFinite(o)&&o>0?o:1,c=n.get(`lang`)||`en-US`,l=n.get(`safesearch`)===`true`,u=n.get(`recency`)||void 0,d=n.get(`publicInstances`)===`true`;if(!r)return Response.json({error:`Query parameter is required`},{status:400});let f=Date.now();try{let e=await(0,a.searchWeb)(r,{category:i,recency:u,safesearch:l,maxRetries:6,privateSearxng:!d&&t,proxy:``,lang:c,page:s});e&&(Array.isArray(e)?e.length>0:e.results&&e.results.length>0)||(e=await(0,a.searchWeb)(r,{category:i,recency:u,safesearch:l,maxRetries:6,privateSearxng:!1,proxy:``,lang:c,page:s}));let n=Date.now()-f;return e?Array.isArray(e)?Response.json({results:e,elapsedTime:n}):Response.json({...e,elapsedTime:n}):Response.json({results:[],suggestions:[],elapsedTime:n})}catch(e){let t=e instanceof Error?e.message:String(e);return console.error(`Search error for q="${r}" cat="${i}" page=${s}: ${t}`,e instanceof Error?e.stack:void 0),Response.json({error:`Search failed`,results:[]},{status:500})}}}}function N(){return{GET:async e=>{try{let t=new URL(e.url).searchParams,n=t.get(`mode`)||`normal`,r=j[t.get(`topic`)||`tech`],i=[];if(n===`normal`){let e=new Set;i=(await Promise.all(r.links.flatMap(e=>r.query.map(async t=>(await(0,a.searchSearxng)(`site:${e} ${t}`,{engines:[`bing news`],pageno:1,language:`en`})).results)))).flat().filter(t=>{let n=t.url?.toLowerCase().trim();return!e.has(n)&&(e.add(n),!0)}).sort(()=>Math.random()-.5)}else i=(await(0,a.searchSearxng)(`site:${r.links[Math.floor(Math.random()*r.links.length)]} ${r.query[Math.floor(Math.random()*r.query.length)]}`,{engines:[`bing news`],pageno:1,language:`en`})).results;return Response.json({blogs:i},{status:200})}catch(e){return console.error(`An error occurred in discover route: ${e}`),Response.json({message:`An error has occurred`},{status:500})}}}}var P=[`google`,`duckduckgo`,`wikipedia`],F=3,I=3,L=Object.entries(l.default).map(([e,t])=>({domain:e,name:typeof t?.[0]==`string`?t[0]:``,rank:typeof t?.[1]==`number`?t[1]:2**53-1})),R=null;function z(){return R||=new s.default(L,{keys:[{name:`name`,weight:.6},{name:`domain`,weight:.4}],threshold:.1,ignoreLocation:!0,includeScore:!0,minMatchCharLength:3}),R}function B(e,t,n){return{domain:e,name:t,favicon:`https://www.google.com/s2/favicons?domain=${encodeURIComponent(e)}&sz=64`,rank:n}}function V(e){let t=(0,c.parse)(e);return t.domain&&t.isIcann?t.hostname:null}function H(e){let t=e.split(/\s+/).filter(Boolean),n=t[t.length-1]||``;if(n.length<3)return[];let r=z().search(n,{limit:12}).sort((e,t)=>Math.round((e.score??1)*10)-Math.round((t.score??1)*10)||e.item.rank-t.item.rank).map(({item:e})=>B(e.domain,e.name,e.rank)),i=V(n);return i&&!r.some(e=>e.domain===i)&&r.unshift(B(i,``,2**53-1)),r.slice(0,I)}async function U(e,t,n){let r=await(0,o.searchAutocompleteMulti)(e,t,n);if(r.length>0)return r;let i=t.split(/\s+/).filter(Boolean),a=Math.min(F,i.length-1);for(let r=a;r>=1;r--){let a=i.slice(-r).join(` `),s=i.slice(0,-r).join(` `),c=await(0,o.searchAutocompleteMulti)(e,a,n);if(c.length>0){let e=new Set;for(let n of c){let r=s?`${s} ${n}`:n;r.toLowerCase()!==t.toLowerCase()&&e.add(r)}if(e.size>0)return Array.from(e)}}return[]}function W(){return{GET:async e=>{let{searchParams:t}=new URL(e.url),n=t.get(`q`)?.trim(),r=t.get(`locale`)||`en-US`,i=t.get(`backends`),a=parseInt(t.get(`limit`)||`8`,10);if(!n)return Response.json({suggestions:[],domains:[]});let o=i?i.split(`,`).map(e=>e.trim()).filter(Boolean):P;try{let e=await U(o,n,r),t=H(n);return Response.json({suggestions:e.slice(0,a),domains:t})}catch(e){return console.error(`Autocomplete error:`,e),Response.json({suggestions:[],domains:[]},{status:500})}}}}function G(){return{POST:async e=>{let t=await e.json(),r=t.chatHistory.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({role:e.role,content:String(e.content??``)})),i=await new n.default().loadChatModel(t.chatModel.providerId,t.chatModel.key),a=(await(0,u.default)({chat_history:r,maxQuestions:t.maxQuestions,promptTemplate:t.promptTemplate},i)).flatMap(e=>(e.match(/\?/g)||[]).length>1?e.split(/\?/).map(e=>e.trim()).filter(e=>e.length>0).map(e=>e+`?`):[e]);return Response.json({suggestions:a},{status:200})}}}function K(e){return{POST:async t=>{let n;try{n=await t.json()}catch{return Response.json({error:`Invalid JSON input`},{status:500})}n.ip=t.headers?.get?.(`x-forwarded-for`)||t.headers?.get?.(`x-real-ip`)||`unknown`;let i=e.getDB(),a=await e.getUserId(),o=null;return a&&(o=await i.query.user.findFirst({where:(0,r.eq)(e.userSchema.id,a)})),o&&(n.apiKey=o.settings?.providerApiKeys?.find(e=>e.provider==n.provider)?.key),n.apiKey||(n.apiKey=n.provider==`groq`&&e.getEnv(`GROQ_API_KEY`)),n.apiKey?Response.json({error:`Language generation endpoint is deprecated. Please use /api/agent/chat instead.`},{status:501}):Response.json({error:`API key is required`},{status:500})}}}function q(e){return{POST:async t=>{try{let{text:n,prompt:r}=await t.json();if(!n||typeof n!=`string`)return Response.json({error:`Text is required and must be a string`},{status:400});let i=e.getEnv(`GROQ_API_KEY`);if(!i)return console.error(`GROQ_API_KEY is not configured`),Response.json({error:`AI service is not configured. Please contact the administrator.`},{status:500});let a=e.createGroq({apiKey:i})(`llama-3.3-70b-versatile`),o=r||`Rewrite the following text to improve clarity, grammar, and style while maintaining the original meaning and tone. Only return the rewritten text without any explanation or additional commentary:
|
|
37
37
|
|
|
38
38
|
${n}`,s=(await e.generateText({model:a,prompt:o,temperature:.7})).text.trim();return Response.json({rewrittenText:s})}catch(e){return console.error(`AI rewrite error:`,e),Response.json({error:`Failed to process AI request. Please try again.`},{status:500})}}}}function J(e){return{POST:async t=>{let n,r,i;try{let e=await t.json();n=e.text,r=e.voice||e.speaker||`af_heart`,i=e.provider||`kokoro`}catch{return Response.json({error:`Invalid request body`},{status:400})}if(!n||typeof n!=`string`||n.trim().length===0)return Response.json({error:`text is required`},{status:400});let a=await e.getUserId()??t.headers?.get?.(`x-forwarded-for`)?.split(`,`)[0]?.trim()??t.headers?.get?.(`x-real-ip`)??`unknown`,{allowed:o}=e.checkTTSRateLimit(a);if(!o)return Response.json({error:`Daily TTS limit reached (10/day)`,rateLimited:!0},{status:429});try{let t=await e.generateSpeech({text:n.slice(0,5e3),provider:i,voice:r});return new Response(t.audio,{headers:{"Content-Type":t.contentType,"Cache-Control":`public, max-age=86400`,"Content-Disposition":`inline; filename="speech.${t.contentType.includes(`wav`)?`wav`:`mp3`}"`}})}catch(e){console.error(`[TTS] Error:`,e);let t=e instanceof Error?e.message:`TTS generation failed`;return t.includes(`Cloudflare AI binding`)?Response.json({error:`Deepgram provider requires Cloudflare AI binding. Use 'kokoro' provider instead.`},{status:503}):Response.json({error:t},{status:500})}}}}function Y(e){return e===`small`||e===`fast`?`@cf/openai/whisper-tiny-en`:e===`medium`||e===`turbo`?`@cf/openai/whisper-large-v3-turbo`:e===`large`?`@cf/openai/whisper-large-v3`:`@cf/openai/whisper-large-v3-turbo`}function X(e){return{POST:async t=>{try{let n=await t.formData(),r=n.get(`file`);if(!r||!(r instanceof File))return Response.json({error:`file is required`},{status:400});let i=Y(n.get(`model`)),a;try{a=e.getCloudflareContext().env?.AI}catch{}if(!a)return Response.json({error:`Cloudflare AI binding not available`},{status:503});let o=await r.arrayBuffer(),{text:s}=await a.run(i,{audio:[...new Uint8Array(o)]});return Response.json({text:s,model:i})}catch(e){return console.error(`Transcript error:`,e),Response.json({error:`Failed to transcribe audio`},{status:500})}}}}function Z(){return{POST:async e=>{try{let{providerType:t,apiKey:n,onlyFree:r=!0}=await e.json();if(!t)return Response.json({error:`Provider type is required`},{status:400});if(!n)return Response.json({error:`API key is required`},{status:400});let i=f.LANGUAGE_MODELS.find(e=>e.provider.toLowerCase()===t.toLowerCase());if(!i)return Response.json({error:`Provider ${t} not found`},{status:404});let a=await(0,d.testProviderModels)(t,n,i.models,{onlyFree:r,concurrency:3,timeout:15e3});return Response.json(a)}catch(e){return console.error(`[test-models] Error:`,e),Response.json({error:e.message||`Failed to test models`},{status:500})}}}}var Q=864e5,$=null;function ee(e){return{GET:async t=>{try{let t=Date.now();if($&&t-$.timestamp<Q)return Response.json({...$.result,cached:!0,cacheAge:t-$.timestamp});let n=await e.validateOpenRouterModels();return $={result:n,timestamp:t},Response.json({...n,cached:!1})}catch(e){return console.error(`[validate-openrouter] GET error:`,e),Response.json({error:e.message||`Validation failed`},{status:500})}},POST:async t=>{try{let{concurrency:n=3,timeout:r=15e3}=await t.json().catch(()=>({})),i=await e.validateOpenRouterModels(n,r);return $={result:i,timestamp:Date.now()},Response.json({...i,cached:!1})}catch(e){return console.error(`[validate-openrouter] POST error:`,e),Response.json({error:e.message||`Validation failed`},{status:500})}}}}exports.createAgentsHandler=K,exports.createArticleFollowupsHandler=p,exports.createArticleQAHandler=g,exports.createAutocompleteHandler=W,exports.createChatByIdHandler=v,exports.createChatTitleHandler=x,exports.createChatsHandler=_,exports.createChatsSearchHandler=y,exports.createChatsShareHandler=b,exports.createDiscoverHandler=N,exports.createMCPServerByIdHandler=k,exports.createMCPServerToggleHandler=A,exports.createMCPServersHandler=O,exports.createMessagesHandler=w,exports.createPageTipsHandler=m,exports.createProviderByIdHandler=E,exports.createProviderModelsHandler=D,exports.createProvidersHandler=T,exports.createRewriteHandler=q,exports.createSearchHandler=M,exports.createSuggestionsHandler=G,exports.createTestModelsHandler=Z,exports.createTopicSearchesHandler=h,exports.createTranscriptHandler=X,exports.createValidateOpenRouterHandler=ee,exports.createVoiceHandler=J,exports.describeError=C;
|
package/dist/api.mjs
CHANGED
|
@@ -743,7 +743,8 @@ function X() {
|
|
|
743
743
|
content: String(e.content ?? "")
|
|
744
744
|
})), i = await new t().loadChatModel(n.chatModel.providerId, n.chatModel.key), a = (await _({
|
|
745
745
|
chat_history: r,
|
|
746
|
-
maxQuestions: n.maxQuestions
|
|
746
|
+
maxQuestions: n.maxQuestions,
|
|
747
|
+
promptTemplate: n.promptTemplate
|
|
747
748
|
}, i)).flatMap((e) => (e.match(/\?/g) || []).length > 1 ? e.split(/\?/).map((e) => e.trim()).filter((e) => e.length > 0).map((e) => e + "?") : [e]);
|
|
748
749
|
return Response.json({ suggestions: a }, { status: 200 });
|
|
749
750
|
} };
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./config.cjs"),t=require("./src-
|
|
1
|
+
"use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./config.cjs"),t=require("./src-CqXIkfBq.cjs");exports.ARTICLE_TOOLBAR_SHORTCUTS=t.S,exports.ArticleAIResponse=t.y,exports.ArticleActionButtons=t.C,exports.ArticleContent=t._,exports.ArticleFollowupQuestions=t.b,exports.ArticlePanelHeader=t.T,exports.ArticlePromptInput=t.x,exports.CategoryDock=t.o,exports.ChatInputBox=t.E,exports.ChatProvider=t.D,exports.ChatWindow=t.f,exports.CookieConsent=t.a,exports.ExtractPanelProvider=t.N,exports.HistoryDialogs=t.m,exports.HistoryDropdown=t.p,exports.KokoroVoiceSelector=t.u,exports.LexicalArticleViewer=t.v,exports.MainViewProvider=t.s,exports.QwkSearchApp=t.n,exports.QwkSearchProviders=t.r,exports.SessionProvider=t.O,exports.UnifiedMarkdown=t.g,exports.VoiceSettingsPanel=t.l,exports.cn=t.F,exports.configureResearchAgentUI=e.configureResearchAgentUI,exports.formatMessageTime=t.I,exports.formatTimeDifference=t.L,exports.formatToolbarShortcut=t.w,exports.researchAgentUIConfig=e.researchAgentUIConfig,exports.useChat=t.A,exports.useChatState=t.j,exports.useChatTabs=t.t,exports.useChunkErrorReload=t.i,exports.useExtractPanel=t.P,exports.useHistoryState=t.h,exports.useKokoroTTS=t.d,exports.useMainView=t.c,exports.useSession=t.k,exports.useTextToSpeech=t.M;
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import { configureResearchAgentUI as e, researchAgentUIConfig as t } from "./config.mjs";
|
|
4
|
-
import { A as n, C as r, D as i, E as a, F as o, I as s, L as c, M as l, N as u, O as d, P as f, S as p, T as m, _ as h, a as g, b as _, c as v, d as y, f as b, g as x, h as S, i as C, j as w, k as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R } from "./src-
|
|
4
|
+
import { A as n, C as r, D as i, E as a, F as o, I as s, L as c, M as l, N as u, O as d, P as f, S as p, T as m, _ as h, a as g, b as _, c as v, d as y, f as b, g as x, h as S, i as C, j as w, k as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R } from "./src-Bt9uoPG1.js";
|
|
5
5
|
export { p as ARTICLE_TOOLBAR_SHORTCUTS, R as ArticleAIResponse, r as ArticleActionButtons, h as ArticleContent, _ as ArticleFollowupQuestions, m as ArticlePanelHeader, L as ArticlePromptInput, k as CategoryDock, a as ChatInputBox, i as ChatProvider, b as ChatWindow, g as CookieConsent, u as ExtractPanelProvider, D as HistoryDialogs, A as HistoryDropdown, P as KokoroVoiceSelector, F as LexicalArticleViewer, M as MainViewProvider, O as QwkSearchApp, j as QwkSearchProviders, d as SessionProvider, x as UnifiedMarkdown, E as VoiceSettingsPanel, o as cn, e as configureResearchAgentUI, s as formatMessageTime, c as formatTimeDifference, I as formatToolbarShortcut, t as researchAgentUIConfig, n as useChat, w as useChatState, N as useChatTabs, C as useChunkErrorReload, f as useExtractPanel, S as useHistoryState, y as useKokoroTTS, v as useMainView, T as useSession, l as useTextToSpeech };
|
package/dist/settings/index.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export interface SettingsFieldSchema {
|
|
|
27
27
|
env?: string;
|
|
28
28
|
options?: SettingsFieldOption[];
|
|
29
29
|
links?: SettingsFieldLink[];
|
|
30
|
+
/** Visible row count for `textarea` fields. Defaults to 4. */
|
|
31
|
+
rows?: number;
|
|
30
32
|
}
|
|
31
33
|
/** Metadata describing one entry in the settings sidebar/menu. */
|
|
32
34
|
export interface SettingsSectionSchema {
|
|
@@ -1598,17 +1598,18 @@ var Kn = async (e, t, n, r, i, a, o, s, c) => {
|
|
|
1598
1598
|
}
|
|
1599
1599
|
}), t;
|
|
1600
1600
|
}, Jn = async (e) => {
|
|
1601
|
-
let t = localStorage.getItem("chatModelKey"), n = localStorage.getItem("chatModelProviderId"), r = parseInt(localStorage.getItem("maxFollowupQuestions") || "4"), i = e.filter((e) => e.role === "user" || e.role === "assistant");
|
|
1601
|
+
let t = localStorage.getItem("chatModelKey"), n = localStorage.getItem("chatModelProviderId"), r = parseInt(localStorage.getItem("maxFollowupQuestions") || "4"), i = localStorage.getItem("followUpQuestionsPrompt")?.trim() || void 0, a = e.filter((e) => e.role === "user" || e.role === "assistant");
|
|
1602
1602
|
try {
|
|
1603
1603
|
let e = await bt("agent/suggestions", {
|
|
1604
1604
|
method: "POST",
|
|
1605
1605
|
body: JSON.stringify({
|
|
1606
|
-
chatHistory:
|
|
1606
|
+
chatHistory: a,
|
|
1607
1607
|
chatModel: {
|
|
1608
1608
|
providerId: n,
|
|
1609
1609
|
key: t
|
|
1610
1610
|
},
|
|
1611
|
-
maxQuestions: r
|
|
1611
|
+
maxQuestions: r,
|
|
1612
|
+
promptTemplate: i
|
|
1612
1613
|
})
|
|
1613
1614
|
});
|
|
1614
1615
|
return Array.isArray(e.suggestions) ? e.suggestions : [];
|
|
@@ -1768,7 +1769,8 @@ async function er(e, n) {
|
|
|
1768
1769
|
},
|
|
1769
1770
|
sourceExtractionEnabled: w,
|
|
1770
1771
|
thinkingTimeLimit: T,
|
|
1771
|
-
systemInstructions: localStorage.getItem("systemInstructions") ?? void 0
|
|
1772
|
+
systemInstructions: localStorage.getItem("systemInstructions") ?? void 0,
|
|
1773
|
+
queryExpansionPrompt: localStorage.getItem("queryExpansionPrompt") ?? void 0
|
|
1772
1774
|
},
|
|
1773
1775
|
sseMaxRetryAttempts: 1,
|
|
1774
1776
|
onSseError: (e) => {
|
|
@@ -7300,6 +7302,7 @@ function uo() {
|
|
|
7300
7302
|
alt: "Docs",
|
|
7301
7303
|
width: 24,
|
|
7302
7304
|
height: 24,
|
|
7305
|
+
unoptimized: !0,
|
|
7303
7306
|
className: "w-full h-full"
|
|
7304
7307
|
})
|
|
7305
7308
|
}] : []], f = e === "/" || e.startsWith("/c"), p = ro(t.footerLinks, e), m = [
|
|
@@ -7332,6 +7335,7 @@ function uo() {
|
|
|
7332
7335
|
alt: "Settings",
|
|
7333
7336
|
width: 24,
|
|
7334
7337
|
height: 24,
|
|
7338
|
+
unoptimized: !0,
|
|
7335
7339
|
className: "w-full h-full"
|
|
7336
7340
|
}),
|
|
7337
7341
|
menu: { renderContent: () => /* @__PURE__ */ W(H, { children: [
|
|
@@ -13,7 +13,7 @@ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./config.cjs");let
|
|
|
13
13
|
#5a922c calc(50% / var(--repeating-conic-gradient-times)),
|
|
14
14
|
#4c7894 calc(75% / var(--repeating-conic-gradient-times)),
|
|
15
15
|
#dd7bbb calc(100% / var(--repeating-conic-gradient-times))
|
|
16
|
-
)`},className:F(`pointer-events-none absolute inset-0 rounded-[inherit] opacity-100 transition-opacity`,o&&`opacity-100`,e>0&&`blur-[var(--blur)] `,s,f&&`!hidden`),children:(0,d.jsx)(`div`,{className:F(`glow`,`rounded-[inherit]`,`after:content-[""] after:rounded-[inherit] after:absolute after:inset-[calc(-1*var(--glowingeffect-border-width))]`,`after:[border:var(--glowingeffect-border-width)_solid_transparent]`,`after:[background:var(--gradient)] after:[background-attachment:fixed]`,`after:opacity-[var(--active)] after:transition-opacity after:duration-300`,`after:[mask-clip:padding-box,border-box]`,`after:[mask-composite:intersect]`,`after:[mask-image:linear-gradient(#0000,#0000),conic-gradient(from_calc((var(--start)-var(--spread))*1deg),#00000000_0deg,#fff,#00000000_calc(var(--spread)*2deg))]`)})})]})});R.displayName=`GlowingEffect`;var z=(0,n.createContext)(void 0),ee=()=>{let e=(0,n.useContext)(z);if(!e)throw Error(`useExtractPanel must be used within an ExtractPanelProvider`);return e},te=({children:e})=>{let[t,r]=(0,n.useState)(!1),[i,a]=(0,n.useState)(``),[o,s]=(0,n.useState)(``),[c,l]=(0,n.useState)(600);return(0,d.jsx)(z.Provider,{value:{isOpen:t,url:i,searchText:o,panelWidth:c,setIsOpen:r,setUrl:a,setSearchText:s,setPanelWidth:l,openPanel:(e,t=``)=>{console.log(`[ExtractPanelContext] openPanel called with URL:`,e);try{let t=new URL(e);(t.pathname===`/`||t.pathname===``)&&console.error(`[ExtractPanelContext] URL is domain-only, missing article path:`,e)}catch(t){console.error(`[ExtractPanelContext] Invalid URL format:`,e,t)}if(a(e),s(t),r(!0),typeof window<`u`){let t=new URLSearchParams(window.location.search);t.set(`extract`,encodeURIComponent(e));let n=`${window.location.pathname}?${t.toString()}`;window.history.pushState({},``,n)}},closePanel:()=>{if(r(!1),typeof window<`u`){let e=new URLSearchParams(window.location.search);e.delete(`extract`);let t=e.toString()?`${window.location.pathname}?${e.toString()}`:window.location.pathname;window.history.pushState({},``,t)}}},children:e})};function ne(e){return(0,d.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 214.6279 198.1416`,...e,children:[(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{fill:`#5CB0FF`,d:`M171.748,142.3193c0-15.4375-12.5625-28-28-28s-28,12.5625-28,28s12.5625,28,28,28 S171.748,157.7568,171.748,142.3193z`}),(0,d.jsx)(`path`,{fill:`#1C71DA`,d:`M95.748,166.3193v-76h42.989c0.0146,0.7878,0.0696,1.5579,0.0696,2.3516c0,2.2109,1.7891,4,4,4 s4-1.7891,4-4c0-0.7937-0.0603-1.5632-0.0745-2.3516h25.0159h5.6484h2.3516c0-46.3164-37.6836-84-84-84h-8v0.4053 c-42.5754,4.0447-76,39.9785-76,83.5947c0,46.3164,37.6836,84,84,84c2.2109,0,4-1.7891,4-4S97.959,166.3193,95.748,166.3193z M87.748,164.9949c-19.9287-6.438-35.0586-36.3945-35.0586-72.324c0-0.7937,0.0549-1.5637,0.0696-2.3516h34.989V164.9949z M53.1655,82.3193C55.75,51.1135,69.7729,26.157,87.748,20.3506v61.9688H53.1655z M95.748,82.3193v-63.293 c21.6829,0,39.6248,27.5808,42.5825,63.293H95.748z M171.3181,82.3193h-24.9685c-2.3884-29.9812-14.96-54.8911-31.9993-65.6013 C144.7681,24.4146,167.9641,50.417,171.3181,82.3193z M77.1458,16.718C60.1064,27.4282,47.5349,52.3381,45.1465,82.3193H20.178 C23.532,50.417,46.728,24.4146,77.1458,16.718z M19.748,90.3193h25.0159c-0.0142,0.7883-0.0745,1.5579-0.0745,2.3516 c0,28.5327,9.217,53.6572,23.1233,68.2603C39.7031,149.769,19.748,122.3567,19.748,90.3193z`}),(0,d.jsx)(`path`,{fill:`#1C71DA`,d:`M191.5137,184.4287l-19.665-19.665c4.9307-6.1609,7.8994-13.9573,7.8994-22.4443 c0-19.8516-16.1484-36-36-36s-36,16.1484-36,36s16.1484,36,36,36c8.4871,0,16.2834-2.9688,22.4443-7.8994l19.665,19.665 L191.5137,184.4287z M115.748,142.3193c0-15.4375,12.5625-28,28-28s28,12.5625,28,28s-12.5625,28-28,28 S115.748,157.7568,115.748,142.3193z`})]}),(0,d.jsx)(`path`,{fill:`#FF5D5D`,d:`M4,22.1416c-1.0234,0-2.0479-0.3906-2.8281-1.1719c-1.5625-1.5615-1.5625-4.0947,0-5.6562L15.3145,1.1719 c1.5625-1.5625,4.0957-1.5625,5.6562,0c1.5625,1.5615,1.5625,4.0947,0,5.6562L6.8281,20.9697 C6.0469,21.751,5.0234,22.1416,4,22.1416z`}),(0,d.jsx)(`path`,{fill:`#FF5D5D`,d:`M18.1426,22.1416c-1.0234,0-2.0469-0.3906-2.8281-1.1719L1.1719,6.8281 c-1.5625-1.5615-1.5625-4.0947,0-5.6562c1.5605-1.5625,4.0938-1.5625,5.6562,0l14.1426,14.1416 c1.5625,1.5615,1.5625,4.0947,0,5.6562C20.1904,21.751,19.166,22.1416,18.1426,22.1416z`}),(0,d.jsx)(`path`,{fill:`#00D40B`,d:`M14,198.1416c-7.7197,0-14-6.2803-14-14s6.2803-14,14-14s14,6.2803,14,14S21.7197,198.1416,14,198.1416z M14,178.1416c-3.3086,0-6,2.6914-6,6s2.6914,6,6,6s6-2.6914,6-6S17.3086,178.1416,14,178.1416z`}),(0,d.jsx)(`path`,{fill:`#FFC504`,d:`M199.3145,56.7695c-1.0605,0-2.0781-0.4219-2.8281-1.1719l-11.3145-11.3145 c-0.75-0.75-1.1719-1.7676-1.1719-2.8281s0.4219-2.0781,1.1719-2.8281l11.3145-11.3135c1.5625-1.5625,4.0938-1.5625,5.6562,0 l11.3135,11.3135c1.5625,1.5615,1.5625,4.0947,0,5.6562l-11.3135,11.3145C201.3926,56.3477,200.375,56.7695,199.3145,56.7695z M193.6572,41.4551l5.6572,5.6572l5.6572-5.6572l-5.6572-5.6572L193.6572,41.4551z`})]})}function B(e){return(0,d.jsxs)(`svg`,{version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 508 508`,...e,children:[(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M316.1,353.2H191.9c13.2,60.9,37.8,102.2,62.1,102.2C278.3,455.4,302.9,414.1,316.1,353.2z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M78.2,353.2c26.2,46.5,69.8,80.1,120.6,94.5c-15.4-22.5-27.7-54.7-35.7-94.5H78.2z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M429.8,353.2h-84.9c-8,39.8-20.4,72-35.7,94.5C360,433.4,403.6,399.7,429.8,353.2z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M429.3,154.8c-26.3-46.4-69.6-80-120-94.4c15.3,22.4,27.7,54.7,35.6,94.4H429.3z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M163.1,154.8c8-39.7,20.3-71.9,35.7-94.4c-50.4,14.4-93.8,48-120,94.4H163.1z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M479.8,310.9V197.1c0-7.8-6.3-14.1-14.1-14.1H42.3c-7.8,0-14.1,6.3-14.1,14.1v113.8 c0,7.8,6.3,14.1,14.1,14.1h423.3C473.4,325,479.8,318.7,479.8,310.9z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M254,52.6c-24.3,0-48.9,41.3-62.1,102.2h124.2C302.9,93.9,278.3,52.6,254,52.6z`})]}),(0,d.jsx)(`path`,{style:{fill:`#56ACE0`},d:`M254,426.5c-95.3,0-172.9-77.5-172.9-172.9S158.7,80.8,254,80.8s172.9,77.5,172.9,172.9 S349.3,426.5,254,426.5z`}),(0,d.jsx)(`rect`,{x:`56.4`,y:`211.2`,style:{fill:`#FFC10D`},width:`395.1`,height:`85.6`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#194F82`},d:`M465.7,154.8H461C422.8,75.3,342.7,24.4,254,24.4S85.1,75.3,47,154.8h-4.7C19,154.8,0,173.7,0,197.1 v113.8c0,23.3,19,42.3,42.3,42.3h4.2c38,79.5,118.4,130.4,207.5,130.4c89.2,0,169.5-50.9,207.5-130.4h4.2c23.3,0,42.3-19,42.3-42.3 V197.1C508,173.7,489,154.8,465.7,154.8z M429.3,154.8h-84.4c-8-39.7-20.3-71.9-35.6-94.4C359.7,74.7,403,108.4,429.3,154.8z M254,52.6c24.3,0,48.9,41.3,62.1,102.2H191.9C205.1,93.9,229.7,52.6,254,52.6z M198.7,60.4c-15.3,22.4-27.7,54.7-35.7,94.4H78.7 C105,108.4,148.3,74.7,198.7,60.4z M78.2,353.2h84.9c8,39.8,20.4,72,35.7,94.5C148,433.4,104.4,399.7,78.2,353.2z M254,455.4 c-24.3,0-48.9-41.3-62.1-102.2h124.2C302.9,414.1,278.3,455.4,254,455.4z M309.2,447.7c15.4-22.5,27.7-54.7,35.7-94.5h84.9 C403.6,399.7,360,433.4,309.2,447.7z M479.8,310.9c0,7.8-6.3,14.1-14.1,14.1H42.3c-7.8,0-14.1-6.3-14.1-14.1V197.1 c0-7.8,6.3-14.1,14.1-14.1h423.3c7.8,0,14.1,6.3,14.1,14.1v113.8H479.8z`}),(0,d.jsx)(`polygon`,{style:{fill:`#194F82`},points:`146,265.7 109.1,215.3 93.4,215.3 93.4,293.6 110.2,293.6 110.2,244.5 146,293.6 162.7,293.6 162.7,215.3 146,215.3 `}),(0,d.jsx)(`polygon`,{style:{fill:`#194F82`},points:`197.9,261.9 231.6,261.9 231.6,247 197.9,247 197.9,230.9 235.3,230.9 235.3,215.3 181.2,215.3 181.2,293.6 236.5,293.6 236.5,278.1 197.9,278.1 `}),(0,d.jsx)(`polygon`,{style:{fill:`#194F82`},points:`318.9,260.3 305.7,215.3 288.1,215.3 274.8,260.3 260,215.3 241.9,215.3 268.1,293.6 280.5,293.6 296.8,239.2 313.3,293.6 325.7,293.6 351.9,215.3 333.8,215.3 `}),(0,d.jsx)(`path`,{style:{fill:`#194F82`},d:`M392,246.6c-8.2-1.9-16.5-3.8-16.6-10.2c0.5-5.4,3.9-7.5,9-7.6c6.9,0,13.7,2.6,20.2,7.7l8.5-12.8 c-8-6.2-17-10.4-28.1-10.3c-12.5-0.6-27,7.6-26.8,23.2c-1,15.4,10.4,21.4,25.2,24.8c9.2,2,14.5,5.1,13.9,9.8 c0.1,5.2-4.6,7.7-9.9,7.7c-6.9,0-14.3-3.7-22.4-11.1l-10,12.8c9.5,9.2,20.2,13.8,32.1,13.8c15.1,0.7,27.6-8.8,27.5-23.6 C414.8,257.3,406.3,250,392,246.6z`})]})]})}function re(e){return(0,d.jsxs)(`svg`,{version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 512 512`,...e,children:[(0,d.jsx)(`circle`,{style:{fill:`#8AD5DD`},cx:`256`,cy:`256`,r:`256`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_0`,x:`115`,y:`68`,style:{fill:`#FFFFFF`},width:`282`,height:`376`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_1`,x:`146.336`,y:`339.8`,style:{fill:`#2D2D2D`},width:`97.696`,height:`8`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_2`,x:`146.336`,y:`371.12`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_3`,x:`146.336`,y:`386.8`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_4`,x:`146.336`,y:`402.48`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`}),(0,d.jsx)(`path`,{id:`SVGCleanerId_5`,style:{fill:`#DB2B42`},d:`M355.872,316.384H156.128c-6.464,0-11.752-5.288-11.752-11.752v-144.92 c0-6.464,5.288-11.752,11.752-11.752H355.88c6.464,0,11.752,5.288,11.752,11.752v144.92 C367.624,311.096,362.336,316.384,355.872,316.384z`}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_0_1_`,x:`115`,y:`68`,style:{fill:`#FFFFFF`},width:`282`,height:`376`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_1_1_`,x:`146.336`,y:`339.8`,style:{fill:`#2D2D2D`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_2_1_`,x:`146.336`,y:`371.12`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_3_1_`,x:`146.336`,y:`386.8`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_4_1_`,x:`146.336`,y:`402.48`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`path`,{id:`SVGCleanerId_5_1_`,style:{fill:`#DB2B42`},d:`M355.872,316.384H156.128c-6.464,0-11.752-5.288-11.752-11.752v-144.92 c0-6.464,5.288-11.752,11.752-11.752H355.88c6.464,0,11.752,5.288,11.752,11.752v144.92 C367.624,311.096,362.336,316.384,355.872,316.384z`})}),(0,d.jsx)(`polygon`,{style:{fill:`#FFFFFF`},points:`232.496,191.472 303,232.176 232.496,272.88 `}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`rect`,{x:`269.928`,y:`339.04`,style:{fill:`#E0E0E0`},width:`97.696`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`365.624`,style:{fill:`#E0E0E0`},width:`97.696`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`392.24`,style:{fill:`#E0E0E0`},width:`97.696`,height:`19.016`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`rect`,{x:`269.928`,y:`392.24`,style:{fill:`#2D2D2D`},width:`20.304`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`365.624`,style:{fill:`#2D2D2D`},width:`20.304`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`339.04`,style:{fill:`#2D2D2D`},width:`20.304`,height:`19.016`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#E0E0E0`},d:`M365.664,100.072v19.616h-135.24v-19.616H365.664 M367.624,98.112h-139.16v23.536h139.16 L367.624,98.112L367.624,98.112z`}),(0,d.jsx)(`rect`,{x:`341.312`,y:`98.112`,style:{fill:`#E0E0E0`},width:`26.312`,height:`23.536`})]}),(0,d.jsx)(`path`,{style:{fill:`#DB2B42`},d:`M207.656,121.648H173.2c-1.312,0-2.384-1.072-2.384-2.384v-18.768c0-1.312,1.072-2.384,2.384-2.384 h34.456c1.312,0,2.384,1.072,2.384,2.384v18.768C210.04,120.576,208.96,121.648,207.656,121.648z`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M178.008,107.264h-2.784v-1.488h7.384v1.488h-2.816v8.28h-1.784L178.008,107.264L178.008,107.264z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M189.28,113.424c0,0.84,0.032,1.544,0.056,2.12h-1.568l-0.088-1.08h-0.024 c-0.304,0.504-1,1.232-2.264,1.232c-1.288,0-2.464-0.768-2.464-3.072v-4.144h1.784v3.84c0,1.176,0.384,1.936,1.32,1.936 c0.712,0,1.176-0.504,1.36-0.96c0.064-0.16,0.104-0.344,0.104-0.552v-4.264h1.784V113.424z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M191.144,115.544c0.032-0.48,0.064-1.264,0.064-1.984v-8.312h1.784v4.2h0.032 c0.432-0.672,1.2-1.128,2.256-1.128c1.728,0,2.96,1.432,2.944,3.584c0,2.536-1.608,3.8-3.208,3.8c-0.912,0-1.728-0.352-2.232-1.216 h-0.032l-0.088,1.056H191.144z M192.992,112.632c0,0.152,0.016,0.288,0.04,0.424c0.192,0.712,0.808,1.256,1.584,1.256 c1.12,0,1.8-0.904,1.8-2.32c0-1.256-0.592-2.264-1.784-2.264c-0.72,0-1.376,0.528-1.584,1.304 c-0.024,0.128-0.056,0.288-0.056,0.464V112.632z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M200.952,112.512c0.04,1.28,1.04,1.832,2.176,1.832c0.824,0,1.416-0.12,1.96-0.32l0.264,1.232 c-0.616,0.248-1.456,0.44-2.472,0.44c-2.288,0-3.64-1.408-3.64-3.576c0-1.952,1.192-3.8,3.448-3.8c2.296,0,3.048,1.888,3.048,3.44 c0,0.336-0.032,0.592-0.056,0.752C205.68,112.512,200.952,112.512,200.952,112.512z M204.056,111.264 c0.016-0.648-0.272-1.728-1.464-1.728c-1.104,0-1.568,1.008-1.64,1.728H204.056z`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M147.464,115.544v-4.072l-3.088-5.696h2.032l1.176,2.504c0.336,0.728,0.584,1.28,0.848,1.944h0.024 c0.248-0.624,0.52-1.232,0.856-1.944l1.176-2.504h2.016l-3.248,5.656v4.112H147.464z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M158.864,111.944c0,2.6-1.824,3.76-3.624,3.76c-2,0-3.536-1.376-3.536-3.632 c0-2.328,1.52-3.744,3.656-3.744C157.464,108.32,158.864,109.8,158.864,111.944z M153.544,112.024c0,1.36,0.664,2.392,1.752,2.392 c1.016,0,1.728-1,1.728-2.424c0-1.104-0.496-2.368-1.712-2.368C154.056,109.624,153.544,110.84,153.544,112.024z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M166.656,113.424c0,0.84,0.032,1.544,0.056,2.12h-1.568l-0.088-1.08h-0.024 c-0.304,0.504-1,1.232-2.264,1.232c-1.288,0-2.464-0.768-2.464-3.072v-4.144h1.784v3.84c0,1.176,0.384,1.936,1.32,1.936 c0.712,0,1.176-0.504,1.36-0.96c0.064-0.16,0.104-0.344,0.104-0.552v-4.264h1.784V113.424z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M353.936,113.776c-3.096,0-5.616-2.52-5.616-5.616s2.52-5.616,5.616-5.616s5.616,2.52,5.616,5.616 C359.552,111.256,357.032,113.776,353.936,113.776z M353.936,103.816c-2.392,0-4.344,1.952-4.344,4.344s1.952,4.344,4.344,4.344 s4.344-1.952,4.344-4.344S356.328,103.816,353.936,103.816z`}),(0,d.jsx)(`rect`,{x:`356.02`,y:`113.813`,transform:`matrix(-0.6044 -0.7967 0.7967 -0.6044 484.7665 469.5985)`,style:{fill:`#2D2D2D`},width:`5.896`,height:`1.272`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M240.088,113.168c0.48,0.296,1.184,0.544,1.92,0.544c1.096,0,1.736-0.576,1.736-1.416 c0-0.768-0.44-1.216-1.56-1.648c-1.352-0.48-2.192-1.184-2.192-2.352c0-1.296,1.072-2.248,2.68-2.248 c0.848,0,1.464,0.192,1.832,0.4l-0.296,0.872c-0.272-0.152-0.824-0.392-1.576-0.392c-1.136,0-1.56,0.672-1.56,1.24 c0,0.776,0.504,1.152,1.648,1.6c1.4,0.544,2.12,1.216,2.12,2.432c0,1.28-0.952,2.392-2.904,2.392c-0.8,0-1.68-0.24-2.12-0.528 L240.088,113.168z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M246.984,111.688c0.024,1.472,0.96,2.064,2.048,2.064c0.776,0,1.24-0.128,1.648-0.304l0.184,0.776 c-0.384,0.176-1.032,0.368-1.984,0.368c-1.832,0-2.928-1.208-2.928-3s1.056-3.216,2.792-3.216c1.952,0,2.464,1.704,2.464,2.808 c0,0.216-0.024,0.392-0.04,0.496h-4.184V111.688z M250.16,110.92c0.016-0.688-0.288-1.76-1.504-1.76 c-1.096,0-1.576,1.008-1.664,1.76H250.16z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M255.88,114.472l-0.088-0.752h-0.032c-0.336,0.472-0.968,0.888-1.824,0.888 c-1.208,0-1.824-0.848-1.824-1.704c0-1.448,1.28-2.232,3.584-2.216v-0.128c0-0.488-0.136-1.384-1.36-1.384 c-0.552,0-1.128,0.176-1.552,0.448l-0.248-0.72c0.488-0.312,1.208-0.528,1.96-0.528c1.824,0,2.264,1.24,2.264,2.432v2.232 c0,0.52,0.024,1.024,0.104,1.424h-0.984V114.472z M255.72,111.44c-1.184-0.024-2.528,0.184-2.528,1.336 c0,0.704,0.472,1.032,1.024,1.032c0.776,0,1.272-0.488,1.44-1c0.04-0.112,0.064-0.24,0.064-0.344V111.44z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M258.552,110.376c0-0.704-0.016-1.304-0.056-1.864h0.944l0.04,1.176h0.04 c0.272-0.8,0.928-1.304,1.656-1.304c0.12,0,0.2,0.008,0.304,0.032v1.024c-0.112-0.024-0.224-0.032-0.368-0.032 c-0.768,0-1.312,0.576-1.456,1.392c-0.024,0.144-0.056,0.312-0.056,0.496v3.176h-1.072v-4.096H258.552z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M266.72,114.256c-0.288,0.152-0.912,0.344-1.72,0.344c-1.792,0-2.968-1.216-2.968-3.04 c0-1.84,1.264-3.168,3.208-3.168c0.64,0,1.208,0.168,1.504,0.304l-0.248,0.84c-0.264-0.152-0.664-0.28-1.264-0.28 c-1.368,0-2.104,1.008-2.104,2.248c0,1.384,0.888,2.232,2.064,2.232c0.616,0,1.024-0.168,1.328-0.296L266.72,114.256z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M268.016,105.736h1.08v3.712h0.024c0.176-0.304,0.448-0.576,0.776-0.76 c0.312-0.184,0.704-0.304,1.104-0.304c0.808,0,2.08,0.488,2.08,2.544v3.544H272v-3.424c0-0.96-0.352-1.768-1.376-1.768 c-0.704,0-1.264,0.488-1.456,1.08c-0.064,0.152-0.08,0.304-0.08,0.52v3.6h-1.08v-8.744H268.016z`})]})]})}function ie(e){return(0,d.jsx)(`svg`,{width:`800px`,height:`800px`,viewBox:`0 0 73 73`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,...e,children:(0,d.jsx)(`g`,{id:`fundamentals/css/images`,stroke:`none`,strokeWidth:`1`,fill:`none`,fillRule:`evenodd`,children:(0,d.jsxs)(`g`,{id:`container`,transform:`translate(2.000000, 2.000000)`,fillRule:`nonzero`,children:[(0,d.jsx)(`rect`,{id:`mask`,stroke:`#000000`,strokeWidth:`2`,fill:`#424A60`,x:`-1`,y:`-1`,width:`71`,height:`71`,rx:`14`}),(0,d.jsx)(`circle`,{id:`Oval`,fill:`#EFCE4A`,cx:`21.069`,cy:`23.069`,r:`9.069`}),(0,d.jsx)(`polygon`,{id:`Shape`,fill:`#1A9172`,points:`69.5 56.7492553 68.1170213 55.212766 51.5212766 40 37 55.9042553 44.5828723 63.4871277 50.1382979 69.0425532 60.7455406 69.0425532 69.5 60.1780353`}),(0,d.jsx)(`polygon`,{id:`Shape`,fill:`#25AE88`,points:`47.8532188 64.0501875 33.8030313 50 12 69.1969687 53 69.1969687`}),(0,d.jsx)(`rect`,{id:`mask`,stroke:`#000000`,strokeWidth:`2`,x:`-1`,y:`-1`,width:`71`,height:`71`,rx:`14`})]})})})}function ae(e){return(0,d.jsxs)(`svg`,{width:`800px`,height:`800px`,viewBox:`0 0 32 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,d.jsx)(`path`,{d:`M23.3 8.40007L21.82 6.40008C21.7248 6.27314 21.6008 6.17066 21.4583 6.10111C21.3157 6.03156 21.1586 5.99693 21 6.00008H11.2C11.0555 6.00007 10.9128 6.03135 10.7816 6.09177C10.6504 6.15219 10.5339 6.24031 10.44 6.35007L8.71998 8.35008C8.57227 8.53401 8.49435 8.76424 8.49998 9.00008V16.2901C8.50262 18.0317 9.19567 19.7013 10.4272 20.9328C11.6588 22.1644 13.3283 22.8574 15.07 22.8601H16.93C18.6716 22.8574 20.3412 22.1644 21.5728 20.9328C22.8043 19.7013 23.4973 18.0317 23.5 16.2901V9.00008C23.5 8.7837 23.4298 8.57317 23.3 8.40007Z`,fill:`#FFCC80`}),(0,d.jsx)(`path`,{d:`M29.78 28.38L25.78 23.38C25.664 23.2321 25.5086 23.1198 25.3318 23.0562C25.1549 22.9925 24.9637 22.98 24.78 23.02L16 25L7.21999 23C7.03632 22.96 6.84507 22.9725 6.6682 23.0362C6.49133 23.0998 6.33598 23.2121 6.21999 23.36L2.21999 28.36C2.10392 28.5064 2.03116 28.6823 2.00995 28.8679C1.98874 29.0534 2.01993 29.2413 2.09999 29.41C2.17815 29.5839 2.3044 29.7319 2.46385 29.8364C2.62331 29.9409 2.80933 29.9977 2.99999 30H29C29.1885 29.9995 29.373 29.9457 29.5322 29.8448C29.6914 29.744 29.8189 29.6002 29.9 29.43C29.98 29.2613 30.0112 29.0734 29.99 28.8879C29.9688 28.7023 29.8961 28.5264 29.78 28.38Z`,fill:`#01579B`}),(0,d.jsx)(`path`,{d:`M29.29 6.00003L16.29 2.00003C16.0999 1.95002 15.9001 1.95002 15.71 2.00003L2.71 6.00003C2.49742 6.06422 2.31226 6.19735 2.1837 6.37841C2.05515 6.55947 1.99052 6.77817 2 7.00003C1.9917 7.22447 2.0592 7.44518 2.19163 7.62659C2.32405 7.80799 2.5137 7.93954 2.73 8.00003L15.73 11.6C15.906 11.6534 16.094 11.6534 16.27 11.6L29.27 8.00003C29.4863 7.93954 29.6759 7.80799 29.8084 7.62659C29.9408 7.44518 30.0083 7.22447 30 7.00003C30.0095 6.77817 29.9448 6.55947 29.8163 6.37841C29.6877 6.19735 29.5026 6.06422 29.29 6.00003Z`,fill:`#01579B`}),(0,d.jsx)(`path`,{d:`M11.22 6C11.0756 5.99999 10.9328 6.03127 10.8016 6.09169C10.6704 6.15211 10.5539 6.24023 10.46 6.35L8.74 8.35C8.58509 8.53114 8.49998 8.76166 8.5 9V16.29C8.50264 18.0317 9.19569 19.7012 10.4272 20.9328C11.6588 22.1643 13.3283 22.8574 15.07 22.86H16V6H11.22Z`,fill:`#FFE0B2`}),(0,d.jsx)(`path`,{d:`M7.21999 23C7.03632 22.96 6.84507 22.9725 6.6682 23.0362C6.49133 23.0998 6.33598 23.2121 6.21999 23.36L2.21999 28.36C2.10392 28.5064 2.03116 28.6823 2.00995 28.8679C1.98874 29.0534 2.01993 29.2413 2.09999 29.41C2.17815 29.5839 2.3044 29.7319 2.46385 29.8364C2.62331 29.9409 2.80933 29.9977 2.99999 30H16V25L7.21999 23Z`,fill:`#0277BD`}),(0,d.jsx)(`path`,{d:`M15.71 2.00002L2.71 6.00002C2.49742 6.06422 2.31226 6.19734 2.1837 6.3784C2.05515 6.55947 1.99052 6.77817 2 7.00002C1.9917 7.22447 2.0592 7.44518 2.19163 7.62658C2.32405 7.80799 2.5137 7.93954 2.73 8.00002L15.73 11.6C15.8194 11.6146 15.9106 11.6146 16 11.6V2.00002C15.9039 1.98469 15.8061 1.98469 15.71 2.00002Z`,fill:`#0277BD`}),(0,d.jsx)(`path`,{d:`M2.73 8.00003L8.5 9.56003V16.29C8.50264 18.0317 9.19569 19.7013 10.4272 20.9328C11.6588 22.1643 13.3283 22.8574 15.07 22.86H16.93C18.6717 22.8574 20.3412 22.1643 21.5728 20.9328C22.8043 19.7013 23.4974 18.0317 23.5 16.29V9.56003L29.27 8.00003C29.4863 7.93954 29.6759 7.80799 29.8084 7.62659C29.9408 7.44518 30.0083 7.22447 30 7.00003C30.0095 6.77817 29.9448 6.55947 29.8163 6.37841C29.6877 6.19735 29.5026 6.06422 29.29 6.00003L16.29 2.00003C16.0999 1.95002 15.9001 1.95002 15.71 2.00003L2.71 6.00003C2.49742 6.06422 2.31226 6.19735 2.1837 6.37841C2.05515 6.55947 1.99052 6.77817 2 7.00003C1.9917 7.22447 2.0592 7.44518 2.19163 7.62659C2.32405 7.80799 2.5137 7.93954 2.73 8.00003ZM21.5 16.29C21.4974 17.5013 21.015 18.6621 20.1586 19.5186C19.3021 20.3751 18.1412 20.8574 16.93 20.86H15.07C13.8588 20.8574 12.6979 20.3751 11.8414 19.5186C10.985 18.6621 10.5026 17.5013 10.5 16.29V10.11L15.73 11.56C15.906 11.6134 16.094 11.6134 16.27 11.56L21.5 10.11V16.29ZM16 4.05003L25.44 7.00003L16 9.56003L6.56 7.00003L16 4.05003Z`,fill:`#263238`}),(0,d.jsx)(`path`,{d:`M25.78 23.38C25.664 23.2321 25.5086 23.1198 25.3318 23.0562C25.1549 22.9925 24.9637 22.98 24.78 23.02L16 25L7.21999 23C7.03632 22.96 6.84507 22.9725 6.6682 23.0362C6.49133 23.0998 6.33598 23.2121 6.21999 23.36L2.21999 28.36C2.10392 28.5064 2.03116 28.6823 2.00995 28.8679C1.98874 29.0534 2.01993 29.2413 2.09999 29.41C2.17815 29.5839 2.3044 29.7319 2.46385 29.8364C2.62331 29.9409 2.80933 29.9977 2.99999 30H29C29.1885 29.9995 29.373 29.9457 29.5322 29.8448C29.6914 29.744 29.8189 29.6002 29.9 29.43C29.98 29.2613 30.0112 29.0734 29.99 28.8879C29.9688 28.7023 29.8961 28.5264 29.78 28.38L25.78 23.38ZM5.07999 28L7.38999 25.11L15.78 27C15.9251 27.0299 16.0748 27.0299 16.22 27L24.61 25.13L26.92 28H5.07999Z`,fill:`#263238`})]})}function V(e){return(0,d.jsxs)(`svg`,{height:`800px`,width:`800px`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 503.322 503.322`,...e,children:[(0,d.jsx)(`path`,{style:{fill:`#FBC176`},d:`M0,73.763v130.169c0,6.942,6.075,13.017,13.017,13.017h225.627c6.942,0,13.017-6.075,13.017-13.017 V73.763c0-6.942-6.075-13.017-13.017-13.017H13.017C6.075,60.746,0,66.82,0,73.763`}),(0,d.jsx)(`path`,{style:{fill:`#C39A6E`},d:`M225.627,60.746V39.051c0-6.942-6.075-13.017-13.017-13.017h-69.424L121.492,0H30.373 c-6.942,0-13.017,6.075-13.017,13.017v47.729H225.627z`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M86.78,104.136H34.712c-5.207,0-8.678-3.471-8.678-8.678c0-5.207,3.471-8.678,8.678-8.678H86.78 c5.207,0,8.678,3.471,8.678,8.678C95.458,100.664,91.986,104.136,86.78,104.136`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M86.78,138.847H34.712c-5.207,0-8.678-3.471-8.678-8.678s3.471-8.678,8.678-8.678H86.78 c5.207,0,8.678,3.471,8.678,8.678S91.986,138.847,86.78,138.847`})]}),(0,d.jsx)(`path`,{style:{fill:`#FBC176`},d:`M251.661,360.136v130.169c0,6.942,6.075,13.017,13.017,13.017h225.627 c6.942,0,13.017-6.075,13.017-13.017V360.136c0-6.942-6.075-13.017-13.017-13.017H264.678 C257.736,347.119,251.661,353.193,251.661,360.136`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M338.441,390.508h-52.068c-5.207,0-8.678-3.471-8.678-8.678s3.471-8.678,8.678-8.678h52.068 c5.207,0,8.678,3.471,8.678,8.678S343.647,390.508,338.441,390.508`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M338.441,425.22h-52.068c-5.207,0-8.678-3.471-8.678-8.678c0-5.207,3.471-8.678,8.678-8.678h52.068 c5.207,0,8.678,3.471,8.678,8.678C347.119,421.749,343.647,425.22,338.441,425.22`})]}),(0,d.jsx)(`path`,{style:{fill:`#F38774`},d:`M208.271,451.254H78.102c-5.207,0-8.678-3.471-8.678-8.678V260.339c0-5.207,3.471-8.678,8.678-8.678 c5.207,0,8.678,3.471,8.678,8.678v173.559h121.492c5.207,0,8.678,3.471,8.678,8.678 C216.949,447.783,213.478,451.254,208.271,451.254`}),(0,d.jsx)(`path`,{style:{fill:`#26B999`},d:`M433.898,277.695c-5.207,0-8.678-3.471-8.678-8.678V95.458H295.051c-5.207,0-8.678-3.471-8.678-8.678 c0-5.207,3.471-8.678,8.678-8.678h138.847c5.207,0,8.678,3.471,8.678,8.678v182.237 C442.576,274.224,439.105,277.695,433.898,277.695`}),(0,d.jsx)(`path`,{style:{fill:`#C39A6E`},d:`M477.288,347.119v-21.695c0-6.942-6.075-13.017-13.017-13.017h-69.424l-21.695-26.034h-91.119 c-6.942,0-13.017,6.075-13.017,13.017v47.729H477.288z`})]})}function oe(e){return(0,d.jsxs)(`svg`,{height:`800px`,width:`800px`,viewBox:`0 0 128 128`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,"aria-hidden":`true`,role:`img`,className:`iconify iconify--noto`,preserveAspectRatio:`xMidYMid meet`,...e,children:[(0,d.jsx)(`path`,{d:`M106 24.79H22.15c-1.92 0-3.48 1.56-3.48 3.48v57.59c0 1.92 1.56 3.48 3.48 3.48H106c1.92 0 3.48-1.56 3.48-3.48V28.27c0-1.92-1.55-3.48-3.48-3.48z`,fill:`#b7d5e5`}),(0,d.jsxs)(`radialGradient`,{id:`IconifyId17ecdb2904d178eab9910`,cx:`48.408`,cy:`13.024`,r:`75.465`,gradientTransform:`matrix(1 0 0 1.0843 0 -10.19)`,gradientUnits:`userSpaceOnUse`,children:[(0,d.jsx)(`stop`,{offset:`0`,stopColor:`#2f7889`}),(0,d.jsx)(`stop`,{offset:`1`,stopColor:`#424242`})]}),(0,d.jsx)(`path`,{fill:`url(#IconifyId17ecdb2904d178eab9910)`,d:`M104.75 83.2H23.4l.96-52.27h79.43z`}),(0,d.jsx)(`path`,{d:`M121.09 123.82H7.59c-.43 0-.83-.03-1.2-.09c-2.88-.44-4.21-4.18-2.5-6.74l.39-.59h119.59l.4.6c1.86 2.78.12 6.76-3.04 6.81c-.04.01-.09.01-.14.01z`,fill:`#2f7889`}),(0,d.jsx)(`path`,{d:`M106.84 90.41H20.6c-1.27 0-2.54.77-3.25 1.99l-14 25.48c-.59.88-.01 2.12.99 2.12H123.8c1 0 1.58-1.24.99-2.12l-14.71-25.63c-.7-1.08-1.97-1.84-3.24-1.84z`,fill:`#eee`}),(0,d.jsx)(`path`,{fill:`#b7d5e5`,d:`M86.36 115.52H41.8l2.85-7.98h39.07z`}),(0,d.jsxs)(`g`,{opacity:`0.57`,fill:`#69a1ba`,children:[(0,d.jsx)(`path`,{d:`M72.69 94.84l-.27-2.2h-3.44l.13 2.2z`}),(0,d.jsx)(`path`,{d:`M67.14 94.84l-.14-2.2h-3.45v2.2z`}),(0,d.jsx)(`path`,{d:`M93.61 94.84l-.81-2.2h-3.26l.68 2.2z`}),(0,d.jsx)(`path`,{d:`M88.36 94.84l-.68-2.2h-3.32l.54 2.2z`}),(0,d.jsx)(`path`,{d:`M83.18 94.84l-.54-2.2h-3.37l.41 2.2z`}),(0,d.jsx)(`path`,{d:`M102.11 94.84l-.95-2.2h-6.71l.82 2.2z`}),(0,d.jsx)(`path`,{d:`M77.61 94.84l-.41-2.2h-3.41l.28 2.2z`}),(0,d.jsx)(`path`,{d:`M33.76 94.84l.68-2.2h-3.26l-.81 2.2z`}),(0,d.jsx)(`path`,{d:`M50.51 94.84l.27-2.2h-3.41l-.4 2.2z`}),(0,d.jsx)(`path`,{d:`M39.35 94.84l.54-2.2h-3.32l-.67 2.2z`}),(0,d.jsx)(`path`,{d:`M28.17 94.84l.81-2.2H25.8l-.95 2.2z`}),(0,d.jsx)(`path`,{d:`M44.93 94.84l.41-2.2h-3.37l-.54 2.2z`}),(0,d.jsx)(`path`,{d:`M56.08 94.84l.14-2.2h-3.44l-.27 2.2z`}),(0,d.jsx)(`path`,{d:`M61.65 94.84v-2.2H58.2l-.14 2.2z`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{d:`M83.78 103.73H44.36l-.75 2.2h41.08z`}),(0,d.jsx)(`path`,{d:`M102.15 105.93l-1.21-2.2h6.54l.95 2.2z`}),(0,d.jsx)(`path`,{d:`M86.75 105.93l-.83-2.2h6.29l.96 2.2z`}),(0,d.jsx)(`path`,{d:`M95.39 105.93l-.96-2.2h4.31l1.1 2.2z`}),(0,d.jsx)(`path`,{d:`M25.67 105.93l1.21-2.2h-6.54l-.95 2.2z`}),(0,d.jsx)(`path`,{d:`M41.07 105.93l.83-2.2h-6.29l-.96 2.2z`}),(0,d.jsx)(`path`,{d:`M32.42 105.93l.97-2.2h-4.31l-1.11 2.2z`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{d:`M29.71 98.51l.82-2.19h-6.67l-.95 2.19z`}),(0,d.jsx)(`path`,{d:`M97.95 98.51l-.81-2.19h6.66l.95 2.19z`}),(0,d.jsx)(`path`,{d:`M96.25 98.51l-.96-2.19h-3.85l.82 2.19z`}),(0,d.jsx)(`path`,{d:`M86.23 98.51l-.65-2.19h3.85l.78 2.19z`}),(0,d.jsx)(`path`,{d:`M80.19 98.51l-.47-2.19h3.85l.6 2.19z`}),(0,d.jsx)(`path`,{d:`M74.15 98.51l-.28-2.19h3.84l.43 2.19z`}),(0,d.jsx)(`path`,{d:`M68.12 98.51l-.11-2.19h3.85l.24 2.19z`}),(0,d.jsx)(`path`,{d:`M62.08 98.51l.07-2.19H66l.06 2.19z`}),(0,d.jsx)(`path`,{d:`M56.04 98.51l.25-2.19h3.85l-.11 2.19z`}),(0,d.jsx)(`path`,{d:`M50.01 98.51l.42-2.19h3.85l-.29 2.19z`}),(0,d.jsx)(`path`,{d:`M43.97 98.51l.6-2.19h3.85l-.47 2.19z`}),(0,d.jsx)(`path`,{d:`M37.93 98.51l.78-2.19h3.85l-.64 2.19z`}),(0,d.jsx)(`path`,{d:`M31.9 98.51l.95-2.19h3.85l-.82 2.19z`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{d:`M29.7 102.22l.81-2.2h-8.75l-.95 2.2z`}),(0,d.jsx)(`path`,{d:`M95.87 102.22l-.77-2.2h-4.17l.64 2.2z`}),(0,d.jsx)(`path`,{d:`M84.93 102.22l-.48-2.2h4.16l.62 2.2z`}),(0,d.jsx)(`path`,{d:`M78.28 102.22l-.32-2.2h4.17l.45 2.2z`}),(0,d.jsx)(`path`,{d:`M71.64 102.22l-.17-2.2h4.17l.3 2.2z`}),(0,d.jsx)(`path`,{d:`M65 102.22l-.01-2.2h4.16l.15 2.2z`}),(0,d.jsx)(`path`,{d:`M58.36 102.22l.14-2.2h4.17l-.01 2.2z`}),(0,d.jsx)(`path`,{d:`M51.71 102.22l.3-2.2h4.17l-.17 2.2z`}),(0,d.jsx)(`path`,{d:`M45.07 102.22l.46-2.2h4.16l-.32 2.2z`}),(0,d.jsx)(`path`,{d:`M38.43 102.22l.61-2.2h4.17l-.48 2.2z`}),(0,d.jsx)(`path`,{d:`M31.78 102.22l.77-2.2h4.17l-.63 2.2z`}),(0,d.jsx)(`path`,{d:`M97.47 102.22l-.82-2.2h8.75l.95 2.2z`})]})]}),(0,d.jsx)(`path`,{d:`M124.73 117.88L110.39 92.4c-.71-1.07-1.98-1.84-3.25-1.84c0 0 1.22 1.1 1.59 1.63l12.59 23.59c.56 1.02-.18 2.26-1.34 2.26H7.96c-1.15 0-1.89-1.23-1.35-2.24l11.95-23.18c.35-.6 1.88-1.99 1.88-1.99h-.45c-1.27 0-2.54.77-3.25 1.99L3.28 117.88c-.59.88-.01 2.12.99 2.12h119.46c1.01 0 1.59-1.24 1-2.12z`,fill:`#b7d5e5`}),(0,d.jsx)(`path`,{fill:`none`,stroke:`#eee`,strokeWidth:`2.936`,strokeLinecap:`round`,strokeMiterlimit:`10`,d:`M25.97 28.02h13.21`}),(0,d.jsx)(`path`,{d:`M109.37 30.11c0-1.04-1.01-1.12-1.01.11v55.8c0 1.34-1.09 2.43-2.43 2.43H22.08c-1.34 0-2.43-1.09-2.43-2.43v-55.8c0-1.23-1.01-1.15-1.01-.11l-.95 55.91c0 2.42 1.24 4.39 4.39 4.39h83.85c2.73 0 4.39-1.97 4.39-4.39l-.95-55.91z`,fill:`#75a7bc`})]})}var H=[{code:`general`,icon:ne,name:`Web`},{code:`news`,icon:B,name:`News`},{code:`videos`,icon:re,name:`Videos`},{code:`images`,icon:ie,name:`Images`},{code:`science`,icon:ae,name:`Academic`},{code:`files`,icon:V,name:`Files`},{code:`it`,icon:oe,name:`Tech`}];function U({...e}){return(0,d.jsx)(f.Root,{"data-slot":`dialog`,...e})}function se({...e}){return(0,d.jsx)(f.Trigger,{"data-slot":`dialog-trigger`,...e})}function ce({...e}){return(0,d.jsx)(f.Portal,{"data-slot":`dialog-portal`,...e})}function le({className:e,...t}){return(0,d.jsx)(f.Overlay,{"data-slot":`dialog-overlay`,className:F(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 backdrop-blur-xs`,e),...t})}function ue({className:e,children:t,hideCloseButton:n=!1,...r}){return(0,d.jsxs)(ce,{"data-slot":`dialog-portal`,children:[(0,d.jsx)(le,{}),(0,d.jsxs)(f.Content,{"data-slot":`dialog-content`,"aria-describedby":r[`aria-describedby`]??void 0,className:F(`z-[9999] bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border p-6 shadow-lg duration-200`,e),...r,children:[t,!n&&(0,d.jsxs)(f.Close,{className:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,d.jsx)(s.XIcon,{}),(0,d.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function de({className:e,...t}){return(0,d.jsx)(f.Title,{"data-slot":`dialog-title`,className:F(`text-lg leading-none font-semibold`,e),...t})}function fe({className:e,...t}){return(0,d.jsx)(f.Description,{"data-slot":`dialog-description`,className:F(`text-muted-foreground text-sm`,e),...t})}function pe(e){try{let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`}catch{return!1}}function me(e){return e.iframe_src&&pe(e.iframe_src)?{type:`inline`,src:e.iframe_src}:{type:`external`,url:e.url||``}}function he(e){return{pageContent:e.snippet||e.content||``,metadata:{title:e.title||``,source:e.source||``,thumbnail:e.thumbnail||``,url:e.url||``,...e.img_src&&{img_src:e.img_src},...e.iframe_src&&{iframe_src:e.iframe_src}}}}var W=H.filter(e=>[`general`,`news`,`videos`,`images`,`science`,`files`].includes(e.code)),ge=({sources:e,query:t})=>{let[r,i]=(0,n.useState)(`general`),[a,o]=(0,n.useState)(e),[u,f]=(0,n.useState)(!1),[p,m]=(0,n.useState)(!1),[h,g]=(0,n.useState)(1),[_,v]=(0,n.useState)(!0),[y,b]=(0,n.useState)(!1),[x,S]=(0,n.useState)(!1),[C,w]=(0,n.useState)(null),T=(0,n.useRef)(null),E=(0,n.useRef)(!1),D=(0,n.useRef)(!1),{openPanel:O,isOpen:k}=ee();(0,n.useEffect)(()=>{let e=()=>{S(localStorage.getItem(`searchResultGlow`)===`true`)};return e(),window.addEventListener(`client-config-changed`,e),window.addEventListener(`storage`,e),()=>{window.removeEventListener(`client-config-changed`,e),window.removeEventListener(`storage`,e)}},[]);let[A,j]=(0,n.useState)({});(0,n.useEffect)(()=>{let e=()=>{b(window.innerWidth>=1024)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),(0,n.useEffect)(()=>{o(e),i(`general`),g(1),v(!0),j({}),M(e)},[e]);let M=(0,n.useCallback)(async e=>{let t=e.filter(e=>e.metadata.url&&e.metadata.url!==`File`&&!e.metadata.iframe_src);for(let e of t)try{let{data:t}=await(0,c.getArticle)({query:{url:e.metadata.url}});t?.cached&&t?.article?.html&&j(t=>({...t,[e.metadata.url]:`loaded`}))}catch{}},[]);(0,n.useEffect)(()=>{if(typeof window<`u`){let e=new URLSearchParams(window.location.search).get(`extract`);e&&(O(decodeURIComponent(e),``),D.current=!1)}},[O]),(0,n.useEffect)(()=>{D.current=!1},[e]),(0,n.useEffect)(()=>{E.current&&!k&&(D.current=!0),E.current=k},[k]),(0,n.useEffect)(()=>{if(y&&a&&a.length>0&&!k&&!D.current){let e=a[0];e?.metadata?.url&&O(e.metadata.url,``)}},[a,y]);let N=async(e,t)=>{e.preventDefault(),D.current=!1,j(e=>({...e,[t]:`loading`})),O(t,``);try{await(0,c.getArticle)({query:{url:t}}),j(e=>({...e,[t]:`loaded`}))}catch{j(e=>({...e,[t]:`loaded`}))}},P=(0,n.useCallback)(async()=>{if(!t||p||!_)return;m(!0);let e=h+1,{data:n}=await(0,c.agentSearch)({query:{q:t,cat:r,page:e}}),i=n?.results??[];if(i.length===0){v(!1),m(!1);return}let a=i.map(e=>{if(e.url)try{let t=new URL(e.url);(t.pathname===`/`||t.pathname===``)&&console.warn(`[MessageSources] Search result URL is domain-only:`,e.url,`Title:`,e.title)}catch{console.error(`[MessageSources] Invalid URL in search result:`,e.url)}return he(e)});o(e=>[...e,...a]),g(e),m(!1)},[t,r,h,p,_]),I=async e=>{if(e!==r&&t){i(e),f(!0),g(1),v(!0);try{let{data:n}=await(0,c.agentSearch)({query:{q:t,cat:e,page:1}}),r=(n?.results??[]).map(e=>{if(e.url)try{let t=new URL(e.url);(t.pathname===`/`||t.pathname===``)&&console.warn(`[MessageSources] Category search result URL is domain-only:`,e.url,`Title:`,e.title)}catch{console.error(`[MessageSources] Invalid URL in category search result:`,e.url)}return he(e)});o(r)}catch(e){console.error(`Error searching:`,e)}finally{f(!1)}}};(0,n.useEffect)(()=>{let e=T.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:n,clientHeight:r}=e;n-t-r<100&&P()};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[P]);let L=(e,t)=>{let n=r===`images`,i=r===`videos`,a=e.metadata.img_src||e.metadata.thumbnail;if(n&&a)return(0,d.jsx)(`div`,{className:`relative rounded-lg group`,children:(0,d.jsxs)(`a`,{className:`relative block overflow-hidden rounded-lg cursor-pointer`,href:e.metadata.url,onClick:t=>N(t,e.metadata.url),children:[(0,d.jsx)(`img`,{src:a,alt:e.metadata.title,className:`w-full h-auto object-cover rounded-lg hover:scale-105 transition-transform duration-200`,loading:`lazy`}),(0,d.jsxs)(`div`,{className:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/70 to-transparent p-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200`,children:[(0,d.jsx)(`p`,{className:`text-xs text-white line-clamp-2`,children:(0,l.convertURLSafeHTMLToHTML)(e.metadata.title)}),(0,d.jsx)(`p`,{className:`text-[10px] text-white/70 truncate mt-0.5`,children:e.metadata.source})]})]})},t);if(i&&a){let n=me(e.metadata),r=(0,d.jsxs)(`div`,{className:`relative`,children:[(0,d.jsx)(`img`,{src:a,alt:e.metadata.title,className:`w-full h-24 object-cover`}),(0,d.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,d.jsx)(`div`,{className:`w-10 h-10 bg-black/60 rounded-full flex items-center justify-center`,children:(0,d.jsx)(s.Video,{size:18,className:`text-white ml-0.5`})})})]}),i=(0,d.jsx)(`p`,{className:`text-xs line-clamp-2 p-2 text-muted-foreground`,children:(0,l.convertURLSafeHTMLToHTML)(e.metadata.title)});return(0,d.jsxs)(`div`,{className:`relative rounded-xl`,children:[(0,d.jsx)(R,{spread:40,glow:!0,disabled:!x,proximity:64,inactiveZone:.01,borderWidth:2}),n.type===`inline`?(0,d.jsxs)(`button`,{type:`button`,className:`relative w-full text-left bg-card text-card-foreground border border-border rounded-xl overflow-hidden flex flex-col cursor-pointer shadow-sm hover:shadow-md transition-all duration-200`,onClick:()=>w({src:n.src,title:e.metadata.title}),children:[r,i]}):(0,d.jsxs)(`a`,{className:`relative bg-card text-card-foreground border border-border rounded-xl overflow-hidden flex flex-col cursor-pointer shadow-sm hover:shadow-md transition-all duration-200`,href:n.url,target:`_blank`,rel:`noopener noreferrer`,children:[r,i]})]},t)}let o=A[e.metadata.url];return(0,d.jsxs)(`div`,{className:`relative rounded-xl group h-full`,children:[(0,d.jsx)(R,{spread:40,glow:!0,disabled:!x,proximity:64,inactiveZone:.01,borderWidth:2}),(0,d.jsxs)(`div`,{className:`relative bg-card text-card-foreground border border-border rounded-xl p-2.5 flex flex-col font-medium cursor-pointer shadow-sm hover:shadow-md transition-all duration-200 h-full`,onClick:t=>N(t,e.metadata.url),children:[o&&(0,d.jsx)(`div`,{className:`absolute top-1.5 left-1.5 p-1 rounded-md bg-background/80 backdrop-blur-sm z-[5]`,children:o===`loading`?(0,d.jsx)(s.Loader2,{size:14,className:`text-primary animate-spin`}):(0,d.jsx)(s.FileText,{size:14,className:`text-green-500`})}),(0,d.jsx)(`a`,{href:e.metadata.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),className:`absolute top-1.5 right-1.5 p-1 rounded-md bg-secondary/50 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-secondary z-10`,title:`Open in new tab`,children:(0,d.jsx)(s.ExternalLink,{size:12,className:`text-muted-foreground`})}),(0,d.jsxs)(`p`,{className:`text-xs line-clamp-4 text-muted-foreground`,children:[(0,d.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-semibold text-foreground/70 align-middle`,children:[e.metadata.url===`File`?(0,d.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded-full bg-secondary flex-shrink-0`,children:(0,d.jsx)(s.File,{size:10,className:`text-muted-foreground`})}):(0,d.jsx)(`img`,{src:`https://s2.googleusercontent.com/s2/favicons?domain_url=${e.metadata.url}`,width:20,height:20,alt:`favicon`,className:`inline rounded h-5 w-5 flex-shrink-0`}),e.metadata.source]}),` `,(0,d.jsx)(`span`,{className:`align-middle`,children:(0,l.convertURLSafeHTMLToHTML)(e.metadata.title)})]})]})]},t)};return(0,d.jsxs)(d.Fragment,{children:[t&&(0,d.jsx)(`div`,{className:`flex items-center gap-1 mb-3 overflow-x-auto pb-1`,children:W.map(e=>(0,d.jsxs)(`button`,{onClick:()=>I(e.code),disabled:u,className:F(`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 whitespace-nowrap`,r===e.code?`bg-primary text-primary-foreground`:`bg-secondary/50 text-muted-foreground hover:bg-secondary hover:text-foreground`),children:[(0,d.jsx)(e.icon,{className:`w-4 h-4 flex-shrink-0`}),(0,d.jsx)(`span`,{children:e.name})]},e.code))}),(0,d.jsx)(`div`,{ref:T,className:F(`overflow-y-auto pb-2 pr-1`,r===`images`?`max-h-[400px] lg:max-h-[500px]`:`max-h-[180px] lg:max-h-[280px]`),children:u?(0,d.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,d.jsx)(s.Loader2,{className:`w-6 h-6 animate-spin text-muted-foreground`})}):a.length>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{className:F(r===`images`?`columns-2 sm:columns-3 lg:columns-4 gap-2 [&>div]:mb-2 [&>div]:break-inside-avoid`:F(`grid gap-3 auto-rows-fr`,k&&y?`grid-cols-2`:`grid-cols-3`)),children:a.map((e,t)=>L(e,t))}),p&&(0,d.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,d.jsx)(s.Loader2,{className:`w-5 h-5 animate-spin text-muted-foreground`})}),!_&&a.length>0&&(0,d.jsx)(`div`,{className:`flex items-center justify-center py-4 text-muted-foreground text-xs`,children:`No more results`})]}):(0,d.jsx)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground text-sm`,children:`No results found`})}),(0,d.jsx)(U,{open:C!==null,onOpenChange:e=>!e&&w(null),children:(0,d.jsxs)(ue,{className:`max-w-3xl p-0 overflow-hidden gap-0`,children:[(0,d.jsx)(de,{className:`sr-only`,children:C?.title||`Video player`}),C&&(0,d.jsx)(`iframe`,{src:C.src,title:C.title||`Video player`,className:`w-full aspect-video`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:!0})]})})]})},_e={extract:`Extract`,arxiv:`ArXiv`,"google scholar":`Scholar`,pubmed:`PubMed`,wolframalpha:`Wolfram`,youtube:`YouTube`,Web:`Web`};function ve(e){return e?_e[e]??e:`Web`}function ye({queries:e,loading:t}){let n=e.filter(e=>e.status===`done`).length,r=e.length,i=t&&e.some(e=>e.status===`running`);return t?(0,d.jsxs)(`div`,{className:`rounded-xl border border-border bg-secondary/20 overflow-hidden text-sm`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border/50`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[i?(0,d.jsx)(s.Loader2,{className:`w-3.5 h-3.5 animate-spin`}):(0,d.jsx)(s.Search,{className:`w-3.5 h-3.5`}),(0,d.jsx)(`span`,{className:`font-medium text-foreground`,children:i?`Running analysis…`:`Analysis complete`})]}),r>0&&(0,d.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:[n,`/`,r,` searches`]})]}),e.length>0&&(0,d.jsx)(`div`,{className:`divide-y divide-border/40`,children:e.map((e,t)=>(0,d.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2`,children:[e.status===`running`?(0,d.jsx)(s.Loader2,{className:`w-3.5 h-3.5 text-muted-foreground animate-spin flex-shrink-0`}):(0,d.jsx)(s.Search,{className:F(`w-3.5 h-3.5 flex-shrink-0`,e.status===`done`?`text-muted-foreground`:`text-muted-foreground/40`)}),(0,d.jsxs)(`div`,{className:`flex items-baseline gap-1.5 min-w-0 flex-1`,children:[(0,d.jsxs)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap flex-shrink-0`,children:[ve(e.category),` ·`]}),(0,d.jsx)(`span`,{className:`text-foreground/80 truncate`,children:e.query})]})]},t))})]}):null}var be={device:`webgpu`,dtype:`fp32`},xe={device:`wasm`,dtype:`q8`},Se=`hexgrad/Kokoro-82M`,Ce=null,we=null;function Te(){return typeof navigator<`u`&&`gpu`in navigator}async function Ee(){if(!Te())return!1;try{return await navigator.gpu.requestAdapter()!=null}catch{return!1}}async function De(){let e=[];await Ee()&&e.push(be),e.push(xe);let{KokoroTTS:t}=await import(`kokoro-js`),n;for(let r of e)try{let e=await t.from_pretrained(Se,{device:r.device,dtype:r.dtype});return we=r.device,e}catch(e){n=e,console.warn(`Kokoro model failed to load on "${r.device}" backend:`,e)}throw n instanceof Error?n:Error(`Failed to load Kokoro model`)}async function Oe(){return Ce||=De().catch(e=>{throw Ce=null,e}),Ce}async function ke(){return Oe()}async function Ae(){let e=await ke();return Object.keys(e.voices)}function je(){return we}function Me(e,t){let[r,i]=(0,n.useState)(`stopped`),a=(0,n.useRef)(null),o=(0,n.useRef)(null),s=(0,n.useRef)(null),c=(0,n.useRef)(t);c.current=t;let l=(0,n.useCallback)(()=>{a.current&&=(a.current.pause(),a.current.src.startsWith(`blob:`)&&URL.revokeObjectURL(a.current.src),null),s.current?.abort(),s.current=null},[]),u=(0,n.useCallback)(()=>{if(!(`speechSynthesis`in window))return!1;try{window.speechSynthesis.cancel();let t=new SpeechSynthesisUtterance(e);return o.current=t,t.onend=()=>{o.current=null,i(`stopped`)},t.onerror=()=>{o.current=null,i(`stopped`)},window.speechSynthesis.speak(t),i(`started`),!0}catch{return!1}},[e]);return{speechStatus:r,start:(0,n.useCallback)(async()=>{if(!e?.trim())return;l(),window.speechSynthesis?.cancel(),o.current=null,i(`started`);let t=new AbortController;s.current=t;try{if(localStorage.getItem(`useTTSKokoro`)!==`false`)try{let t=await ke(),n=localStorage.getItem(`kokoroVoice`)||`af_heart`,r=(await t.generate(e.slice(0,5e3),{voice:n})).toWav(),o=new Blob([r],{type:`audio/wav`}),s=URL.createObjectURL(o),c=new Audio(s);a.current=c,c.onended=()=>{i(`stopped`),URL.revokeObjectURL(s),a.current=null},c.onerror=()=>{URL.revokeObjectURL(s),a.current=null,u()||i(`stopped`)},await c.play();return}catch(e){console.debug(`Kokoro TTS unavailable, using server-side TTS:`,e instanceof Error?e.message:String(e))}let n=await(0,p.default)(`agent/voice`,{method:`POST`,body:{text:e.slice(0,5e3),voice:localStorage.getItem(`kokoroVoice`)||`af_heart`},signal:t.signal}),r=typeof n.blob==`function`?await n.blob():n;if(!r||r.size===0){u()||i(`stopped`);return}let o=URL.createObjectURL(r),s=new Audio(o);a.current=s,s.onended=()=>{i(`stopped`),URL.revokeObjectURL(o),a.current=null},s.onerror=()=>{URL.revokeObjectURL(o),a.current=null,u()||i(`stopped`)},await s.play()}catch{u()||i(`stopped`)}},[e,l,u]),stop:(0,n.useCallback)(()=>{l(),o.current=null,window.speechSynthesis?.cancel(),i(`stopped`)},[l])}}var Ne=async(e,t,n)=>{try{let n=localStorage.getItem(`chatModelKey`),r=localStorage.getItem(`chatModelProviderId`),i=(await(0,p.default)(`agent/providers`))?.providers||[];if(!i||i.length===0){t(!0);return}let a=i.find(e=>e.id===r&&(e.chatModels?.length??0)>0);if(a||=i.find(e=>e.name.toLowerCase().includes(`openrouter`)&&(e.chatModels?.length??0)>0)||i.find(e=>e.name.toLowerCase().includes(`anyapi`)&&(e.chatModels?.length??0)>0)||i.find(e=>e.name.toLowerCase().includes(`nvidia`)&&(e.chatModels?.length??0)>0)||i.find(e=>(e.chatModels?.length??0)>0),!a){t(!0);return}r=a.id;let o=a.chatModels.find(e=>e.key===n);if(o||(a.name.toLowerCase().includes(`openrouter`)&&(o=a.chatModels.find(e=>e.key===`openrouter/free`)),!o&&a.name.toLowerCase().includes(`openrouter`)&&(o=a.chatModels.find(e=>e.key===`nvidia/nemotron-3-super-120b-a12b:free`)),!o&&a.name.toLowerCase().includes(`anyapi`)&&(o=a.chatModels.find(e=>e.key===`deepseek/deepseek-v3:free`)),o||=a.chatModels.find(e=>(e.key.toLowerCase().includes(`nemotron-3-super`)||e.name.toLowerCase().includes(`nemotron 3 super`))&&e.key.toLowerCase().includes(`120b`)),o||=a.chatModels.find(e=>e.key.toLowerCase().includes(`nemotron`)||e.name.toLowerCase().includes(`nemotron`)),o||=a.chatModels[0]),!o){t(!0);return}n=o.key,localStorage.setItem(`chatModelKey`,n),localStorage.setItem(`chatModelProviderId`,r),e({key:n,providerId:r}),t(!0)}catch(e){console.error(`An error occurred while checking the configuration:`,e),m.toast.error(`Could not load AI providers: ${e?.message??String(e)}`),t(!0)}},Pe=`qwksearch_guest_chats`,Fe=typeof window<`u`;function Ie(){if(!Fe)return[];try{let e=localStorage.getItem(Pe);return e?JSON.parse(e).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()):[]}catch(e){return console.error(`Failed to get guest chats:`,e),[]}}function Le(e){return Fe&&Ie().find(t=>t.id===e)||null}function Re(e){if(Fe)try{let t=Ie(),n=t.findIndex(t=>t.id===e.id);n>=0?t[n]=e:t.push(e),localStorage.setItem(Pe,JSON.stringify(t))}catch(e){console.error(`Failed to save guest chat:`,e)}}function ze(e){if(Fe)try{let t=Ie().filter(t=>t.id!==e);localStorage.setItem(Pe,JSON.stringify(t))}catch(e){console.error(`Failed to delete guest chat:`,e)}}function Be(){if(Fe)try{localStorage.removeItem(Pe)}catch(e){console.error(`Failed to clear guest chats:`,e)}}function Ve(e,t){if(!Fe)return;let n=Le(e);n&&(n.title=t,Re(n))}var He=async(e,t,n,r,i,a,o,s,l)=>{if(!t){let t=Le(e);if(t){n(t.messages);let e=t.messages.filter(e=>e.role===`user`||e.role===`assistant`),o=e.map(e=>[e.role,e.content]);e.length>0&&(document.title=e[0].content),s(t.files||[]),l((t.files||[]).map(e=>e.fileId)),i(o),a(t.focusMode),r(!0);return}try{let{data:t,error:u}=await(0,c.getChatById)({path:{id:e}});if(u){let e=u.status;if(e===404||e===403){o(!0),r(!0);return}throw Error(`Failed to load chat: ${u.message}`)}let{messages:d,chat:f}=t||{};if(!d||!f){o(!0),r(!0);return}n(d);let p=d.filter(e=>e.role===`user`||e.role===`assistant`),m=p.map(e=>[e.role,e.content]);p.length>0&&(document.title=p[0].content);let h=f.files.map(e=>({fileName:e.name,fileExtension:e.name.split(`.`).pop(),fileId:e.fileId}));s(h),l(h.map(e=>e.fileId)),i(m),a(f.focusMode),r(!0);return}catch(e){console.error(`[chatMessages] Failed to load public chat:`,e),o(!0),r(!0);return}}try{let{data:t,error:u}=await(0,c.getChatById)({path:{id:e}});if(u){let e=u.status;if(e===404||e===401||e===403){o(!0),r(!0);return}throw Error(`Failed to load chat: ${u.message}`)}let{messages:d,chat:f}=t||{};if(!d||!f){o(!0),r(!0);return}n(d);let p=d.filter(e=>e.role===`user`||e.role===`assistant`),m=p.map(e=>[e.role,e.content]);console.debug(new Date,`app:messages_loaded`),p.length>0&&(document.title=p[0].content);let h=f.files.map(e=>({fileName:e.name,fileExtension:e.name.split(`.`).pop(),fileId:e.fileId}));s(h),l(h.map(e=>e.fileId)),i(m),a(f.focusMode),r(!0)}catch(e){console.error(`[chatMessages] Failed to load chat:`,e),o(!0),r(!0)}},Ue=e=>{let t=[];return e.forEach((n,r)=>{if(n.role===`user`){let i=e.findIndex((e,t)=>t>r&&e.role===`user`),a=e.find((e,t)=>t>r&&e.role===`assistant`&&(i===-1||t<i)),o=e.find((e,t)=>t>r&&e.role===`source`&&e.sources&&(i===-1||t<i)),s=e.find((e,t)=>t>r&&e.role===`searching`&&(i===-1||t<i)),c=!1,l=a?.content??``,u=a?.content??``,d=[];if(a){let t=/\[([^\]]+)\]/g,n=/\[(\d+)\]/g;if(l.includes(`<think>`)){let e=l.match(/<think>/g)?.length||0,t=l.match(/<\/think>/g)?.length||0;e&&!t&&(l+=`</think> <a> </a>`)}a.content.includes(`</think>`)&&(c=!0),o&&o.sources&&o.sources.length>0?(l=l.replace(t,(e,t)=>t.split(`,`).map(e=>e.trim()).map(e=>{let t=parseInt(e);if(isNaN(t)||t<=0)return`[${e}]`;let n=(o.sources?.[t-1])?.metadata?.url;return n?`<citation href="${n}">${e}</citation>`:``}).join(``)),u=a.content.replace(n,``)):(l=l.replace(n,``),u=a.content.replace(n,``));let s=e.find((e,t)=>t>r&&e.role===`suggestion`&&(i===-1||t<i));s&&s.suggestions.length>0&&(d=s.suggestions)}t.push({userMessage:n,assistantMessage:a,sourceMessage:o,searchingMessage:s,parsedAssistantMessage:l,speechMessage:u,thinkingEnded:c,suggestions:d})}}),t},We=async e=>{let t=localStorage.getItem(`chatModelKey`),n=localStorage.getItem(`chatModelProviderId`),r=parseInt(localStorage.getItem(`maxFollowupQuestions`)||`4`),i=e.filter(e=>e.role===`user`||e.role===`assistant`);try{let e=await(0,p.default)(`agent/suggestions`,{method:`POST`,body:JSON.stringify({chatHistory:i,chatModel:{providerId:n,key:t},maxQuestions:r})});return Array.isArray(e.suggestions)?e.suggestions:[]}catch{return[]}},Ge=3,Ke=`Analyze the uploaded file(s) and summarize the key points.`,qe=()=>Array.from(crypto.getRandomValues(new Uint8Array(7)),e=>e.toString(16).padStart(2,`0`)).join(``),Je=`sourceExtractionEnabled`,Ye=`thinkingTimeLimit`;async function Xe(e,n){let{message:r,messageId:i,rewrite:a=!1}=e,{chatId:o,loading:s,messages:l,fileIds:u,files:d,focusMode:f,category:h,optimizationMode:g,chatHistory:_,chatModelProvider:v,isAuthenticated:y,messagesRef:b,abortControllerRef:x,setLoading:S,setMessageAppeared:C,setMessages:w,setChatHistory:T,setChatModelProvider:E}=n,D=typeof window<`u`&&localStorage.getItem(Je)===`true`,O=typeof window<`u`&&Number(localStorage.getItem(Ye)??`0`)||0;if(s)return;let k=r?.trim()??``,A=Array.isArray(u)&&u.length>0;if(!k&&!A)return;let j=k?r:Ke,M=new AbortController;if(x.current=M,S(!0),C(!1),l.length<=1&&!t.researchAgentUIConfig.onOpenChat){let e=new URL(window.location.href);e.searchParams.set(`chat`,o),window.history.replaceState(null,``,`${e.pathname}?${e.searchParams.toString()}${e.hash}`)}let N=``,P=!1,F=!1,I=[],L=Date.now(),R=O>0,z=``,ee=``,te=i??qe(),ne=Array.isArray(d)?[...d]:[];w(e=>[...e,{content:j,messageId:te,chatId:o,role:`user`,createdAt:new Date,...ne.length>0?{files:ne}:{}}]);let B=e=>{w(t=>[...t,{content:`⚠️ **The response failed:** ${e}`,messageId:qe(),chatId:o,role:`assistant`,createdAt:new Date}]),C(!0)},re=async e=>{if(e.type===`error`){let t=e.data;typeof t==`string`&&(t.includes(`no longer available`)||t.includes(`deprecated`)||t.includes(`410`))&&(localStorage.removeItem(`chatModelKey`),localStorage.removeItem(`chatModelProviderId`),E?.({key:``,providerId:``})),m.toast.error(t),B(t),S(!1);return}if(e.type===`searching`){let t=e.data;w(n=>{let r=n.findIndex(t=>t.messageId===e.messageId&&t.role===`searching`);return r===-1?[...n,{role:`searching`,messageId:e.messageId,chatId:o,createdAt:new Date,queries:[{query:t.query,category:t.category,status:t.status}]}]:n.map((e,n)=>{if(n!==r)return e;let i=e,a=i.queries.findIndex(e=>e.query===t.query);if(a===-1)return{...i,queries:[...i.queries,{query:t.query,category:t.category,status:t.status}]};let o=i.queries.map((e,n)=>n===a?{...e,status:t.status}:e);return{...i,queries:o}})})}if(e.type===`sources`&&(I=e.data||[],w(t=>[...t,{messageId:e.messageId,chatId:o,role:`source`,sources:I,createdAt:new Date}]),I.length>0&&(C(!0),I.slice(0,Ge).forEach(e=>{let t=e?.metadata?.url;t&&t!==`File`&&(0,p.default)(`doc/article?url=${encodeURIComponent(t)}`).catch(()=>{})}))),e.type===`message`&&(N+=e.data,R?(z+=e.data,ee||=e.messageId,P=!0):P?w(t=>t.map(t=>t.messageId===e.messageId&&t.role===`assistant`?{...t,content:t.content+e.data}:t)):(w(t=>[...t,{content:e.data,messageId:e.messageId,chatId:o,role:`assistant`,createdAt:new Date}]),P=!0,C(!0))),e.type===`messageEnd`){let e=async()=>{R&&z&&(w(e=>[...e,{content:z,messageId:ee,chatId:o,role:`assistant`,createdAt:new Date}]),C(!0)),T(e=>[...e,[`human`,j],[`assistant`,N]]),S(!1);let e=b.current[b.current.length-1];if(t.researchAgentUIConfig.getAutoMediaSearch()&&(document.getElementById(`search-images-${e.messageId}`)?.click(),document.getElementById(`search-videos-${e.messageId}`)?.click()),!F){F=!0;let e=await We(b.current),t=qe();if(w(n=>[...n,{role:`suggestion`,suggestions:e,chatId:o,createdAt:new Date,messageId:t}]),y&&e.length>0)try{await(0,c.saveMessage)({body:{chatId:o,messageId:t,role:`suggestion`,suggestions:e}})}catch(e){console.error(`Failed to save suggestions:`,e)}}};if(R){let e=Date.now()-L,t=O*1e3-e;t>0&&await new Promise(e=>setTimeout(e,t))}await e()}},ie=l.findIndex(e=>e.messageId===te);try{let{stream:e}=await(0,c.agentChat)({signal:M.signal,body:{message:{messageId:te,chatId:o,content:j},optimizationMode:g,focusMode:f,category:h,history:a?_.slice(0,ie===-1?void 0:ie):_,files:u,chatModel:{key:v.key,providerId:v.providerId},sourceExtractionEnabled:D,thinkingTimeLimit:O,systemInstructions:localStorage.getItem(`systemInstructions`)??void 0},sseMaxRetryAttempts:1,onSseError:e=>{let t=e instanceof Error?e.message:String(e);if(t.includes(`401`)&&y){m.toast.error(`Your session has expired. Please sign in again.`),S(!1),window.location.href=`/`;return}m.toast.error(`Failed to send message. Please try again.`),B(`${t}. Please try again.`),S(!1)}});for await(let t of e)await re(t)}catch(e){if(e.name===`AbortError`){R&&z&&(w(e=>[...e,{content:z,messageId:ee,chatId:o,role:`assistant`,createdAt:new Date}]),C(!0)),N&&T(e=>[...e,[`human`,j],[`assistant`,N]]),S(!1),x.current=null;return}throw e}x.current=null}function Ze(e){let[t,r]=(0,n.useState)(e),[i,a]=(0,n.useState)(!1),[o,s]=(0,n.useState)(!1),[c,l]=(0,n.useState)(!1),[u,d]=(0,n.useState)(!1),[f,p]=(0,n.useState)(!1),[m,h]=(0,n.useState)(!1),[g,_]=(0,n.useState)(!1),[v,y]=(0,n.useState)(!1),[b,x]=(0,n.useState)([]),[S,C]=(0,n.useState)([]),[w,T]=(0,n.useState)([]),[E,D]=(0,n.useState)([]),[O,k]=(0,n.useState)(`webSearch`),[A,j]=(0,n.useState)(`general`),[M,N]=(0,n.useState)(`speed`),[P,F]=(0,n.useState)({key:``,providerId:``}),I=(0,n.useRef)([]),L=(0,n.useMemo)(()=>S.filter(e=>e.role===`user`||e.role===`assistant`),[S]),R=(0,n.useMemo)(()=>Ue(S),[S]);return{state:{chatId:t,newChatCreated:i,loading:o,messageAppeared:c,chatHistory:b,messages:S,files:w,fileIds:E,focusMode:O,category:A,optimizationMode:M,isMessagesLoaded:u,notFound:v,chatModelProvider:P,isConfigReady:f,hasError:m,isReady:g},setters:{setChatId:r,setNewChatCreated:a,setLoading:s,setMessageAppeared:l,setChatHistory:x,setMessages:C,setFiles:T,setFileIds:D,setFocusMode:k,setCategory:j,setOptimizationMode:N,setIsMessagesLoaded:d,setNotFound:y,setChatModelProvider:F,setIsConfigReady:p,setHasError:h,setIsReady:_},messagesRef:I,chatTurns:L,sections:R}}var Qe=(0,n.createContext)({chatHistory:[],chatId:``,fileIds:[],files:[],focusMode:``,category:``,hasError:!1,isMessagesLoaded:!1,isReady:!1,loading:!1,messageAppeared:!1,messages:[],chatTurns:[],sections:[],notFound:!1,optimizationMode:``,chatModelProvider:{key:``,providerId:``},rewrite:()=>{},sendMessage:async()=>{},setFileIds:()=>{},setFiles:()=>{},deleteAttachedFile:async()=>{},setFocusMode:()=>{},setCategory:()=>{},setOptimizationMode:()=>{},setChatModelProvider:()=>{},stopStreaming:()=>{},newChat:()=>{},startNewChat:()=>{},switchToChat:()=>{},incognito:!1,setIncognito:()=>{}});function G(){return(0,n.useContext)(Qe)}var $e=async(e,t)=>{let n=localStorage.getItem(`chatModelKey`),r=localStorage.getItem(`chatModelProviderId`),i=t.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({role:e.role,content:e.content??``}));if(i.length===0)return``;try{let t=await(0,p.default)(`agent/chat-title`,{method:`POST`,body:JSON.stringify({chatId:e,chatHistory:i,chatModel:{providerId:r,key:n}})});return typeof t.title==`string`?t.title:``}catch{return``}},et=(0,n.createContext)({user:null,isLoading:!0,isAuthenticated:!1,signIn:()=>{},signOut:async()=>{}});function tt({children:e,authClient:t,enableGoogleOneTap:r=!0}){let[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{(async()=>{try{let{data:e}=await t.getSession();a(e?.user??null)}catch(e){console.error(`Failed to fetch session:`,e),a(null)}finally{s(!1)}})()},[]),(0,n.useEffect)(()=>{o||i||!r||t.oneTap({fetchOptions:{onSuccess:async()=>{let{data:e}=await t.getSession();a(e?.user??null)}}})},[o,i,r]),(0,d.jsx)(et.Provider,{value:{user:i,isLoading:o,isAuthenticated:!!i,signIn:()=>{t.signIn.social({provider:`google`,callbackURL:`/`})},signOut:async()=>{try{await t.signOut({fetchOptions:{onSuccess:()=>{a(null),window.location.href=`/`}}})}catch(e){console.error(`Sign out failed:`,e)}}},children:e})}function nt(){let e=(0,n.useContext)(et);if(!e)throw Error(`useSession must be used within SessionProvider`);return e}function rt({children:e}){let t=(0,r.useParams)(),i=(0,r.useSearchParams)(),a=(0,r.useRouter)(),o=i.get(`q`),{isAuthenticated:s,isLoading:l}=nt(),{state:u,setters:f,messagesRef:p,chatTurns:h,sections:g}=Ze(t.chatId),_=(0,n.useRef)(null),[v,y]=(0,n.useState)(!1),b=(0,n.useRef)({}),x=(0,n.useRef)(new Set);(0,n.useEffect)(()=>{Ne(f.setChatModelProvider,f.setIsConfigReady,f.setHasError)},[]),(0,n.useEffect)(()=>{t.chatId&&t.chatId!==u.chatId&&(f.setChatId(t.chatId),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setIsMessagesLoaded(!1),f.setNotFound(!1),f.setNewChatCreated(!1))},[t.chatId,u.chatId]),(0,n.useEffect)(()=>{if(u.chatId&&!u.newChatCreated&&!u.isMessagesLoaded&&u.messages.length===0){if(l)return;He(u.chatId,s,f.setMessages,f.setIsMessagesLoaded,f.setChatHistory,f.setFocusMode,f.setNotFound,f.setFiles,f.setFileIds)}else u.chatId||(f.setNewChatCreated(!0),f.setIsMessagesLoaded(!0),f.setChatId(crypto.randomUUID()))},[u.chatId,u.isMessagesLoaded,u.newChatCreated,u.messages.length,s,l]),(0,n.useEffect)(()=>{if(!v&&!s&&u.chatId&&u.messages.length>0){let e=u.messages.filter(e=>e.role===`user`||e.role===`assistant`);if(e.length>0){let t=b.current[u.chatId]??e[0].content.slice(0,50);Re({id:u.chatId,title:t,createdAt:new Date().toISOString(),focusMode:u.focusMode,files:u.files,messages:u.messages})}}},[u.messages,u.chatId,s,u.focusMode,u.files]),(0,n.useEffect)(()=>{if(v||!u.chatId||!u.isMessagesLoaded||!u.newChatCreated||u.loading||h.filter(e=>e.role===`user`).length<2)return;let e=u.chatId;x.current.has(e)||(x.current.add(e),(async()=>{let t=await $e(e,u.messages);if(!t){x.current.delete(e);return}b.current[e]=t,s||Ve(e,t)})())},[h,u.messages,u.chatId,u.loading,u.isMessagesLoaded,u.newChatCreated,v,s]),(0,n.useEffect)(()=>{p.current=u.messages},[u.messages]),(0,n.useEffect)(()=>{u.isMessagesLoaded&&u.isConfigReady?(f.setIsReady(!0),console.debug(new Date,`app:ready`)):f.setIsReady(!1)},[u.isMessagesLoaded,u.isConfigReady]),(0,n.useEffect)(()=>{u.isReady&&o&&u.isConfigReady&&S(o)},[u.isConfigReady,u.isReady,o]);let S=(0,n.useCallback)(async(e,t,n=!1)=>{u.chatId&&await Xe({message:e,messageId:t,rewrite:n},{chatId:u.chatId,loading:u.loading,messages:u.messages,fileIds:u.fileIds,files:u.files,focusMode:u.focusMode,category:u.category,optimizationMode:u.optimizationMode,chatHistory:u.chatHistory,chatModelProvider:u.chatModelProvider,isAuthenticated:s,messagesRef:p,abortControllerRef:_,setLoading:f.setLoading,setMessageAppeared:f.setMessageAppeared,setMessages:f.setMessages,setChatHistory:f.setChatHistory,setChatModelProvider:f.setChatModelProvider})},[u.chatId,u.loading,u.messages,u.fileIds,u.files,u.focusMode,u.category,u.optimizationMode,u.chatHistory,u.chatModelProvider,s,p]),C=(0,n.useCallback)(e=>{let t=u.messages.findIndex(t=>t.messageId===e),n=h.findIndex(t=>t.messageId===e);if(t===-1)return;let r=h[n-1];f.setMessages(e=>[...e.slice(0,u.messages.length>2?u.messages.indexOf(r):0)]),f.setChatHistory(e=>[...e.slice(0,h.length>2?n-1:0)]),S(r.content,r.messageId,!0)},[u.messages,h,S]),w=(0,n.useCallback)(async e=>{f.setFiles(u.files.filter(t=>t.fileId!==e)),f.setFileIds(u.fileIds.filter(t=>t!==e)),f.setMessages(t=>t.map(t=>{if(t.role!==`user`)return t;let n=t;return n.files?.some(t=>t.fileId===e)?{...n,files:n.files.filter(t=>t.fileId!==e)}:t}));try{let{error:t}=await(0,c.deleteUploadedFile)({query:{fileId:e}});if(t)throw Error(t.message??`Delete failed`)}catch(e){console.error(`[ChatProvider] Failed to delete uploaded file:`,e),m.toast.error(`Removed from the chat, but the file could not be deleted from storage.`)}},[u.files,u.fileIds]),T=(0,n.useCallback)(()=>{_.current&&=(_.current.abort(),null)},[]),E=(0,n.useCallback)(()=>{T(),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setChatId(void 0),f.setNewChatCreated(!1),f.setIsMessagesLoaded(!1),f.setNotFound(!1),a.push(`/`)},[T,a]),D=(0,n.useCallback)(e=>{T(),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setNotFound(!1),f.setNewChatCreated(!0),f.setIsMessagesLoaded(!0),f.setChatId(e)},[T]),O=(0,n.useCallback)(e=>{e!==u.chatId&&(T(),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setIsMessagesLoaded(!1),f.setNotFound(!1),f.setNewChatCreated(!1),f.setChatId(e))},[T,u.chatId]),k={messages:u.messages,chatTurns:h,sections:g,chatHistory:u.chatHistory,files:u.files,fileIds:u.fileIds,focusMode:u.focusMode,category:u.category,chatId:u.chatId,hasError:u.hasError,isMessagesLoaded:u.isMessagesLoaded,isReady:u.isReady,loading:u.loading,messageAppeared:u.messageAppeared,notFound:u.notFound,optimizationMode:u.optimizationMode,chatModelProvider:u.chatModelProvider,incognito:v,setFileIds:f.setFileIds,setFiles:f.setFiles,deleteAttachedFile:w,setFocusMode:f.setFocusMode,setCategory:f.setCategory,setOptimizationMode:f.setOptimizationMode,rewrite:C,sendMessage:S,setChatModelProvider:f.setChatModelProvider,stopStreaming:T,newChat:E,startNewChat:D,switchToChat:O,setIncognito:y};return(0,d.jsx)(Qe.Provider,{value:k,children:e})}function it({delayDuration:e=0,...t}){return(0,d.jsx)(h.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function K({...e}){return(0,d.jsx)(it,{children:(0,d.jsx)(h.Root,{"data-slot":`tooltip`,...e})})}function q({...e}){return(0,d.jsx)(h.Trigger,{"data-slot":`tooltip-trigger`,...e})}function J({className:e,sideOffset:t=0,children:n,...r}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":`tooltip-content`,sideOffset:t,className:F(`bg-popover text-popover-foreground border border-border shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-2xl px-3 py-1.5 text-xs text-balance`,e),...r,children:[n,(0,d.jsx)(h.Arrow,{className:`bg-popover fill-popover z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]`})]})})}var at=({href:e,children:t,sources:r})=>{let{openPanel:i}=ee(),a=(0,n.useMemo)(()=>!r||!e?null:r.find(t=>t.metadata?.url===e)??null,[r,e]),o=(0,n.useMemo)(()=>{try{return new URL(e).hostname.replace(`www.`,``)}catch{return a?.metadata?.source||``}},[e,a]),s=a?.metadata?.title||``,c=`https://s2.googleusercontent.com/s2/favicons?domain_url=${e}`;return(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`a`,{href:e,onClick:t=>{t.preventDefault(),i(e,``)},className:`bg-light-secondary dark:bg-dark-secondary px-1 rounded ml-1 no-underline text-xs text-black/70 dark:text-white/70 relative cursor-pointer hover:bg-black/10 dark:hover:bg-white/20 transition-colors`,children:t})}),(0,d.jsx)(J,{side:`top`,className:`max-w-72 p-2.5`,children:(0,d.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,d.jsx)(`img`,{src:c,alt:``,width:16,height:16,className:`rounded flex-shrink-0 mt-0.5`}),(0,d.jsxs)(`div`,{className:`min-w-0`,children:[(0,d.jsx)(`p`,{className:`text-xs font-medium leading-snug line-clamp-2`,children:s||o}),s&&(0,d.jsx)(`p`,{className:`text-[10px] opacity-70 truncate mt-0.5`,children:o})]})]})})]})},ot=({content:e,thinkingEnded:t})=>{let[r,i]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{i(!t)},[t]),(0,d.jsxs)(`div`,{className:`my-4 bg-secondary/50 rounded-xl border border-border overflow-hidden`,children:[(0,d.jsxs)(`button`,{onClick:()=>i(!r),className:`w-full flex items-center justify-between px-4 py-1 text-foreground/90 hover:bg-secondary transition duration-200`,children:[(0,d.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,d.jsx)(s.BrainCircuit,{size:20,className:`text-accent-foreground`}),(0,d.jsx)(`p`,{className:`font-medium text-sm`,children:`Thinking Process`})]}),r?(0,d.jsx)(s.ChevronUp,{size:18,className:`text-muted-foreground`}):(0,d.jsx)(s.ChevronDown,{size:18,className:`text-muted-foreground`})]}),r&&(0,d.jsx)(`div`,{className:`px-4 py-3 text-foreground/80 text-sm border-t border-border bg-muted/50 whitespace-pre-wrap`,children:e})]})},st=({children:e,thinkingEnded:t})=>(0,d.jsx)(ot,{content:e,thinkingEnded:t}),ct=[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`bmp`,`avif`],lt=e=>{let t=(e||``).toLowerCase();return ct.includes(t)?(0,d.jsx)(s.Image,{size:15}):t===`url`?(0,d.jsx)(s.Link2,{size:15}):(0,d.jsx)(s.FileText,{size:15})},ut=({file:e})=>{let{deleteAttachedFile:t}=G(),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`group inline-flex max-w-full items-center gap-2 rounded-lg border border-border bg-secondary/40 py-1.5 pl-2.5 pr-1.5 text-sm`,children:[(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:lt(e.fileExtension)}),(0,d.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground`,title:e.fileName,children:e.fileName}),e.fileExtension&&e.fileExtension!==`url`&&(0,d.jsx)(`span`,{className:`hidden shrink-0 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground sm:inline`,children:e.fileExtension}),(0,d.jsx)(`button`,{type:`button`,"aria-label":`Delete ${e.fileName}`,onClick:()=>i(!0),className:`shrink-0 rounded-md p-1 text-muted-foreground transition-colors hover:bg-red-500/10 hover:text-red-500`,children:(0,d.jsx)(s.Trash2,{size:14})})]}),(0,d.jsx)(U,{open:r,onOpenChange:e=>{a||i(e)},children:(0,d.jsxs)(ue,{className:`w-full max-w-md rounded-2xl`,children:[(0,d.jsx)(de,{className:`text-lg font-medium leading-6`,children:`Delete file`}),(0,d.jsxs)(fe,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,d.jsx)(`span`,{className:`font-medium text-foreground`,children:e.fileName}),`? This removes it from the conversation and permanently deletes the upload.`]}),(0,d.jsxs)(`div`,{className:`mt-6 flex flex-row items-center justify-end gap-4`,children:[(0,d.jsx)(`button`,{type:`button`,onClick:()=>!a&&i(!1),className:`text-sm text-muted-foreground transition-colors hover:text-foreground`,children:`Cancel`}),(0,d.jsxs)(`button`,{type:`button`,onClick:async()=>{o(!0);try{await t(e.fileId),i(!1)}finally{o(!1)}},disabled:a,className:`inline-flex items-center gap-1.5 text-sm text-red-500 transition-colors hover:text-red-600 disabled:opacity-60`,children:[a&&(0,d.jsx)(s.Loader2,{size:14,className:`animate-spin`}),`Delete`]})]})]})})]})},dt=({files:e})=>!e||e.length===0?null:(0,d.jsx)(`div`,{className:`ml-10 mt-2 flex flex-wrap gap-2`,children:e.map(e=>(0,d.jsx)(ut,{file:e},e.fileId))}),ft=({section:e,isExpanded:t,setIsExpanded:r,isEditing:i,setIsEditing:a,editText:o,setEditText:c,handleEditSubmit:l,copiedUserMsg:u,handleCopyUserMsg:f})=>{let p=(0,n.useRef)(null);return(0,d.jsxs)(`div`,{className:`w-full pt-8 break-words`,children:[(0,d.jsxs)(`button`,{onClick:()=>r(!t),className:`flex items-center gap-3 group text-left w-full`,children:[(0,d.jsx)(`div`,{className:`flex-shrink-0 p-1.5 rounded-lg bg-secondary/50 group-hover:bg-secondary transition-colors duration-200`,children:t?(0,d.jsx)(s.ChevronDown,{size:18,className:`text-muted-foreground group-hover:text-foreground transition-colors`}):(0,d.jsx)(s.ChevronRight,{size:18,className:`text-muted-foreground group-hover:text-foreground transition-colors`})}),(0,d.jsx)(`h2`,{className:`text-foreground font-medium text-lg lg:text-3xl lg:w-9/12 group-hover:text-foreground/80 transition-colors line-clamp-3 lg:line-clamp-none`,children:e.userMessage.content})]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-0.5 mt-1 ml-10`,children:[(()=>{let t=I(e.userMessage.createdAt);return t?(0,d.jsx)(`time`,{dateTime:new Date(e.userMessage.createdAt).toISOString(),className:`mr-1.5 text-xs text-muted-foreground tabular-nums select-none`,children:t}):null})(),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:f,className:`p-1.5 text-muted-foreground rounded-lg hover:bg-secondary transition-all duration-200 hover:text-foreground`,children:(0,d.jsx)(`span`,{className:F(`flex items-center transition-all duration-300`,u?`scale-110`:`scale-100`),children:u?(0,d.jsx)(s.Check,{size:14,className:`text-green-500`}):(0,d.jsx)(s.ClipboardList,{size:14})})})}),(0,d.jsx)(J,{side:`bottom`,children:u?`Copied!`:`Copy prompt`})]}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:()=>{c(e.userMessage.content),a(!0),setTimeout(()=>p.current?.focus(),50)},className:`p-1.5 text-muted-foreground rounded-lg hover:bg-secondary transition-all duration-200 hover:text-foreground`,children:(0,d.jsx)(s.Pencil,{size:14})})}),(0,d.jsx)(J,{side:`bottom`,children:`Edit & resubmit`})]})]}),(0,d.jsx)(dt,{files:e.userMessage.files}),i&&(0,d.jsxs)(`div`,{className:`mt-3 ml-10 flex flex-col gap-2`,children:[(0,d.jsx)(`textarea`,{ref:p,value:o,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),l()),e.key===`Escape`&&a(!1)},rows:3,className:`w-full rounded-xl border border-border bg-background p-3 text-sm resize-none focus:outline-none focus:ring-2 focus:ring-primary/30 transition-colors`}),(0,d.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,d.jsx)(`button`,{onClick:()=>a(!1),className:`px-3 py-1.5 text-sm text-muted-foreground rounded-lg hover:bg-secondary transition-colors duration-200`,children:`Cancel`}),(0,d.jsx)(`button`,{onClick:l,disabled:!o.trim(),className:`px-3 py-1.5 text-sm bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200`,children:`Resubmit`})]})]})]})};function pt({...e}){return(0,d.jsx)(g.Root,{"data-slot":`dropdown-menu`,...e})}function mt({...e}){return(0,d.jsx)(g.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function ht({className:e,sideOffset:t=4,...n}){return(0,d.jsx)(g.Portal,{children:(0,d.jsx)(g.Content,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:F(`bg-card text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-2xl border p-1 shadow-md`,e),...n})})}function Y({className:e,inset:t,variant:n=`default`,...r}){return(0,d.jsx)(g.Item,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:F(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-2xl px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r})}function gt({className:e,children:t,checked:n,...r}){return(0,d.jsxs)(g.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:F(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-2xl py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:n,...r,children:[(0,d.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,d.jsx)(g.ItemIndicator,{children:(0,d.jsx)(s.CheckIcon,{className:`size-4`})})}),t]})}function _t({className:e,inset:t,...n}){return(0,d.jsx)(g.Label,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:F(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...n})}function X({className:e,...t}){return(0,d.jsx)(g.Separator,{"data-slot":`dropdown-menu-separator`,className:F(`bg-border -mx-1 my-1 h-px`,e),...t})}function vt({...e}){return(0,d.jsx)(g.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function yt({className:e,inset:t,children:n,...r}){return(0,d.jsxs)(g.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":t,className:F(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-2xl px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8`,e),...r,children:[n,(0,d.jsx)(s.ChevronRightIcon,{className:`ml-auto size-4`})]})}function bt({className:e,...t}){return(0,d.jsx)(g.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:F(`bg-card text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-2xl border p-1 shadow-lg`,e),...t})}var xt=({section:e,initialMessage:t})=>{let[r,i]=(0,n.useState)(!1);return(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:()=>{let n=`${t}${e?.sourceMessage?.sources&&e.sourceMessage.sources.length>0&&`\n\nCitations:\n${e.sourceMessage.sources?.map((e,t)=>`[${t+1}] ${e.metadata.url}`).join(`
|
|
16
|
+
)`},className:F(`pointer-events-none absolute inset-0 rounded-[inherit] opacity-100 transition-opacity`,o&&`opacity-100`,e>0&&`blur-[var(--blur)] `,s,f&&`!hidden`),children:(0,d.jsx)(`div`,{className:F(`glow`,`rounded-[inherit]`,`after:content-[""] after:rounded-[inherit] after:absolute after:inset-[calc(-1*var(--glowingeffect-border-width))]`,`after:[border:var(--glowingeffect-border-width)_solid_transparent]`,`after:[background:var(--gradient)] after:[background-attachment:fixed]`,`after:opacity-[var(--active)] after:transition-opacity after:duration-300`,`after:[mask-clip:padding-box,border-box]`,`after:[mask-composite:intersect]`,`after:[mask-image:linear-gradient(#0000,#0000),conic-gradient(from_calc((var(--start)-var(--spread))*1deg),#00000000_0deg,#fff,#00000000_calc(var(--spread)*2deg))]`)})})]})});R.displayName=`GlowingEffect`;var z=(0,n.createContext)(void 0),ee=()=>{let e=(0,n.useContext)(z);if(!e)throw Error(`useExtractPanel must be used within an ExtractPanelProvider`);return e},te=({children:e})=>{let[t,r]=(0,n.useState)(!1),[i,a]=(0,n.useState)(``),[o,s]=(0,n.useState)(``),[c,l]=(0,n.useState)(600);return(0,d.jsx)(z.Provider,{value:{isOpen:t,url:i,searchText:o,panelWidth:c,setIsOpen:r,setUrl:a,setSearchText:s,setPanelWidth:l,openPanel:(e,t=``)=>{console.log(`[ExtractPanelContext] openPanel called with URL:`,e);try{let t=new URL(e);(t.pathname===`/`||t.pathname===``)&&console.error(`[ExtractPanelContext] URL is domain-only, missing article path:`,e)}catch(t){console.error(`[ExtractPanelContext] Invalid URL format:`,e,t)}if(a(e),s(t),r(!0),typeof window<`u`){let t=new URLSearchParams(window.location.search);t.set(`extract`,encodeURIComponent(e));let n=`${window.location.pathname}?${t.toString()}`;window.history.pushState({},``,n)}},closePanel:()=>{if(r(!1),typeof window<`u`){let e=new URLSearchParams(window.location.search);e.delete(`extract`);let t=e.toString()?`${window.location.pathname}?${e.toString()}`:window.location.pathname;window.history.pushState({},``,t)}}},children:e})};function ne(e){return(0,d.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 214.6279 198.1416`,...e,children:[(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{fill:`#5CB0FF`,d:`M171.748,142.3193c0-15.4375-12.5625-28-28-28s-28,12.5625-28,28s12.5625,28,28,28 S171.748,157.7568,171.748,142.3193z`}),(0,d.jsx)(`path`,{fill:`#1C71DA`,d:`M95.748,166.3193v-76h42.989c0.0146,0.7878,0.0696,1.5579,0.0696,2.3516c0,2.2109,1.7891,4,4,4 s4-1.7891,4-4c0-0.7937-0.0603-1.5632-0.0745-2.3516h25.0159h5.6484h2.3516c0-46.3164-37.6836-84-84-84h-8v0.4053 c-42.5754,4.0447-76,39.9785-76,83.5947c0,46.3164,37.6836,84,84,84c2.2109,0,4-1.7891,4-4S97.959,166.3193,95.748,166.3193z M87.748,164.9949c-19.9287-6.438-35.0586-36.3945-35.0586-72.324c0-0.7937,0.0549-1.5637,0.0696-2.3516h34.989V164.9949z M53.1655,82.3193C55.75,51.1135,69.7729,26.157,87.748,20.3506v61.9688H53.1655z M95.748,82.3193v-63.293 c21.6829,0,39.6248,27.5808,42.5825,63.293H95.748z M171.3181,82.3193h-24.9685c-2.3884-29.9812-14.96-54.8911-31.9993-65.6013 C144.7681,24.4146,167.9641,50.417,171.3181,82.3193z M77.1458,16.718C60.1064,27.4282,47.5349,52.3381,45.1465,82.3193H20.178 C23.532,50.417,46.728,24.4146,77.1458,16.718z M19.748,90.3193h25.0159c-0.0142,0.7883-0.0745,1.5579-0.0745,2.3516 c0,28.5327,9.217,53.6572,23.1233,68.2603C39.7031,149.769,19.748,122.3567,19.748,90.3193z`}),(0,d.jsx)(`path`,{fill:`#1C71DA`,d:`M191.5137,184.4287l-19.665-19.665c4.9307-6.1609,7.8994-13.9573,7.8994-22.4443 c0-19.8516-16.1484-36-36-36s-36,16.1484-36,36s16.1484,36,36,36c8.4871,0,16.2834-2.9688,22.4443-7.8994l19.665,19.665 L191.5137,184.4287z M115.748,142.3193c0-15.4375,12.5625-28,28-28s28,12.5625,28,28s-12.5625,28-28,28 S115.748,157.7568,115.748,142.3193z`})]}),(0,d.jsx)(`path`,{fill:`#FF5D5D`,d:`M4,22.1416c-1.0234,0-2.0479-0.3906-2.8281-1.1719c-1.5625-1.5615-1.5625-4.0947,0-5.6562L15.3145,1.1719 c1.5625-1.5625,4.0957-1.5625,5.6562,0c1.5625,1.5615,1.5625,4.0947,0,5.6562L6.8281,20.9697 C6.0469,21.751,5.0234,22.1416,4,22.1416z`}),(0,d.jsx)(`path`,{fill:`#FF5D5D`,d:`M18.1426,22.1416c-1.0234,0-2.0469-0.3906-2.8281-1.1719L1.1719,6.8281 c-1.5625-1.5615-1.5625-4.0947,0-5.6562c1.5605-1.5625,4.0938-1.5625,5.6562,0l14.1426,14.1416 c1.5625,1.5615,1.5625,4.0947,0,5.6562C20.1904,21.751,19.166,22.1416,18.1426,22.1416z`}),(0,d.jsx)(`path`,{fill:`#00D40B`,d:`M14,198.1416c-7.7197,0-14-6.2803-14-14s6.2803-14,14-14s14,6.2803,14,14S21.7197,198.1416,14,198.1416z M14,178.1416c-3.3086,0-6,2.6914-6,6s2.6914,6,6,6s6-2.6914,6-6S17.3086,178.1416,14,178.1416z`}),(0,d.jsx)(`path`,{fill:`#FFC504`,d:`M199.3145,56.7695c-1.0605,0-2.0781-0.4219-2.8281-1.1719l-11.3145-11.3145 c-0.75-0.75-1.1719-1.7676-1.1719-2.8281s0.4219-2.0781,1.1719-2.8281l11.3145-11.3135c1.5625-1.5625,4.0938-1.5625,5.6562,0 l11.3135,11.3135c1.5625,1.5615,1.5625,4.0947,0,5.6562l-11.3135,11.3145C201.3926,56.3477,200.375,56.7695,199.3145,56.7695z M193.6572,41.4551l5.6572,5.6572l5.6572-5.6572l-5.6572-5.6572L193.6572,41.4551z`})]})}function B(e){return(0,d.jsxs)(`svg`,{version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 508 508`,...e,children:[(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M316.1,353.2H191.9c13.2,60.9,37.8,102.2,62.1,102.2C278.3,455.4,302.9,414.1,316.1,353.2z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M78.2,353.2c26.2,46.5,69.8,80.1,120.6,94.5c-15.4-22.5-27.7-54.7-35.7-94.5H78.2z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M429.8,353.2h-84.9c-8,39.8-20.4,72-35.7,94.5C360,433.4,403.6,399.7,429.8,353.2z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M429.3,154.8c-26.3-46.4-69.6-80-120-94.4c15.3,22.4,27.7,54.7,35.6,94.4H429.3z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M163.1,154.8c8-39.7,20.3-71.9,35.7-94.4c-50.4,14.4-93.8,48-120,94.4H163.1z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M479.8,310.9V197.1c0-7.8-6.3-14.1-14.1-14.1H42.3c-7.8,0-14.1,6.3-14.1,14.1v113.8 c0,7.8,6.3,14.1,14.1,14.1h423.3C473.4,325,479.8,318.7,479.8,310.9z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M254,52.6c-24.3,0-48.9,41.3-62.1,102.2h124.2C302.9,93.9,278.3,52.6,254,52.6z`})]}),(0,d.jsx)(`path`,{style:{fill:`#56ACE0`},d:`M254,426.5c-95.3,0-172.9-77.5-172.9-172.9S158.7,80.8,254,80.8s172.9,77.5,172.9,172.9 S349.3,426.5,254,426.5z`}),(0,d.jsx)(`rect`,{x:`56.4`,y:`211.2`,style:{fill:`#FFC10D`},width:`395.1`,height:`85.6`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#194F82`},d:`M465.7,154.8H461C422.8,75.3,342.7,24.4,254,24.4S85.1,75.3,47,154.8h-4.7C19,154.8,0,173.7,0,197.1 v113.8c0,23.3,19,42.3,42.3,42.3h4.2c38,79.5,118.4,130.4,207.5,130.4c89.2,0,169.5-50.9,207.5-130.4h4.2c23.3,0,42.3-19,42.3-42.3 V197.1C508,173.7,489,154.8,465.7,154.8z M429.3,154.8h-84.4c-8-39.7-20.3-71.9-35.6-94.4C359.7,74.7,403,108.4,429.3,154.8z M254,52.6c24.3,0,48.9,41.3,62.1,102.2H191.9C205.1,93.9,229.7,52.6,254,52.6z M198.7,60.4c-15.3,22.4-27.7,54.7-35.7,94.4H78.7 C105,108.4,148.3,74.7,198.7,60.4z M78.2,353.2h84.9c8,39.8,20.4,72,35.7,94.5C148,433.4,104.4,399.7,78.2,353.2z M254,455.4 c-24.3,0-48.9-41.3-62.1-102.2h124.2C302.9,414.1,278.3,455.4,254,455.4z M309.2,447.7c15.4-22.5,27.7-54.7,35.7-94.5h84.9 C403.6,399.7,360,433.4,309.2,447.7z M479.8,310.9c0,7.8-6.3,14.1-14.1,14.1H42.3c-7.8,0-14.1-6.3-14.1-14.1V197.1 c0-7.8,6.3-14.1,14.1-14.1h423.3c7.8,0,14.1,6.3,14.1,14.1v113.8H479.8z`}),(0,d.jsx)(`polygon`,{style:{fill:`#194F82`},points:`146,265.7 109.1,215.3 93.4,215.3 93.4,293.6 110.2,293.6 110.2,244.5 146,293.6 162.7,293.6 162.7,215.3 146,215.3 `}),(0,d.jsx)(`polygon`,{style:{fill:`#194F82`},points:`197.9,261.9 231.6,261.9 231.6,247 197.9,247 197.9,230.9 235.3,230.9 235.3,215.3 181.2,215.3 181.2,293.6 236.5,293.6 236.5,278.1 197.9,278.1 `}),(0,d.jsx)(`polygon`,{style:{fill:`#194F82`},points:`318.9,260.3 305.7,215.3 288.1,215.3 274.8,260.3 260,215.3 241.9,215.3 268.1,293.6 280.5,293.6 296.8,239.2 313.3,293.6 325.7,293.6 351.9,215.3 333.8,215.3 `}),(0,d.jsx)(`path`,{style:{fill:`#194F82`},d:`M392,246.6c-8.2-1.9-16.5-3.8-16.6-10.2c0.5-5.4,3.9-7.5,9-7.6c6.9,0,13.7,2.6,20.2,7.7l8.5-12.8 c-8-6.2-17-10.4-28.1-10.3c-12.5-0.6-27,7.6-26.8,23.2c-1,15.4,10.4,21.4,25.2,24.8c9.2,2,14.5,5.1,13.9,9.8 c0.1,5.2-4.6,7.7-9.9,7.7c-6.9,0-14.3-3.7-22.4-11.1l-10,12.8c9.5,9.2,20.2,13.8,32.1,13.8c15.1,0.7,27.6-8.8,27.5-23.6 C414.8,257.3,406.3,250,392,246.6z`})]})]})}function re(e){return(0,d.jsxs)(`svg`,{version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 512 512`,...e,children:[(0,d.jsx)(`circle`,{style:{fill:`#8AD5DD`},cx:`256`,cy:`256`,r:`256`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_0`,x:`115`,y:`68`,style:{fill:`#FFFFFF`},width:`282`,height:`376`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_1`,x:`146.336`,y:`339.8`,style:{fill:`#2D2D2D`},width:`97.696`,height:`8`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_2`,x:`146.336`,y:`371.12`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_3`,x:`146.336`,y:`386.8`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`}),(0,d.jsx)(`rect`,{id:`SVGCleanerId_4`,x:`146.336`,y:`402.48`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`}),(0,d.jsx)(`path`,{id:`SVGCleanerId_5`,style:{fill:`#DB2B42`},d:`M355.872,316.384H156.128c-6.464,0-11.752-5.288-11.752-11.752v-144.92 c0-6.464,5.288-11.752,11.752-11.752H355.88c6.464,0,11.752,5.288,11.752,11.752v144.92 C367.624,311.096,362.336,316.384,355.872,316.384z`}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_0_1_`,x:`115`,y:`68`,style:{fill:`#FFFFFF`},width:`282`,height:`376`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_1_1_`,x:`146.336`,y:`339.8`,style:{fill:`#2D2D2D`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_2_1_`,x:`146.336`,y:`371.12`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_3_1_`,x:`146.336`,y:`386.8`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`rect`,{id:`SVGCleanerId_4_1_`,x:`146.336`,y:`402.48`,style:{fill:`#E0E0E0`},width:`97.696`,height:`8`})}),(0,d.jsx)(`g`,{children:(0,d.jsx)(`path`,{id:`SVGCleanerId_5_1_`,style:{fill:`#DB2B42`},d:`M355.872,316.384H156.128c-6.464,0-11.752-5.288-11.752-11.752v-144.92 c0-6.464,5.288-11.752,11.752-11.752H355.88c6.464,0,11.752,5.288,11.752,11.752v144.92 C367.624,311.096,362.336,316.384,355.872,316.384z`})}),(0,d.jsx)(`polygon`,{style:{fill:`#FFFFFF`},points:`232.496,191.472 303,232.176 232.496,272.88 `}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`rect`,{x:`269.928`,y:`339.04`,style:{fill:`#E0E0E0`},width:`97.696`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`365.624`,style:{fill:`#E0E0E0`},width:`97.696`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`392.24`,style:{fill:`#E0E0E0`},width:`97.696`,height:`19.016`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`rect`,{x:`269.928`,y:`392.24`,style:{fill:`#2D2D2D`},width:`20.304`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`365.624`,style:{fill:`#2D2D2D`},width:`20.304`,height:`19.016`}),(0,d.jsx)(`rect`,{x:`269.928`,y:`339.04`,style:{fill:`#2D2D2D`},width:`20.304`,height:`19.016`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#E0E0E0`},d:`M365.664,100.072v19.616h-135.24v-19.616H365.664 M367.624,98.112h-139.16v23.536h139.16 L367.624,98.112L367.624,98.112z`}),(0,d.jsx)(`rect`,{x:`341.312`,y:`98.112`,style:{fill:`#E0E0E0`},width:`26.312`,height:`23.536`})]}),(0,d.jsx)(`path`,{style:{fill:`#DB2B42`},d:`M207.656,121.648H173.2c-1.312,0-2.384-1.072-2.384-2.384v-18.768c0-1.312,1.072-2.384,2.384-2.384 h34.456c1.312,0,2.384,1.072,2.384,2.384v18.768C210.04,120.576,208.96,121.648,207.656,121.648z`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M178.008,107.264h-2.784v-1.488h7.384v1.488h-2.816v8.28h-1.784L178.008,107.264L178.008,107.264z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M189.28,113.424c0,0.84,0.032,1.544,0.056,2.12h-1.568l-0.088-1.08h-0.024 c-0.304,0.504-1,1.232-2.264,1.232c-1.288,0-2.464-0.768-2.464-3.072v-4.144h1.784v3.84c0,1.176,0.384,1.936,1.32,1.936 c0.712,0,1.176-0.504,1.36-0.96c0.064-0.16,0.104-0.344,0.104-0.552v-4.264h1.784V113.424z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M191.144,115.544c0.032-0.48,0.064-1.264,0.064-1.984v-8.312h1.784v4.2h0.032 c0.432-0.672,1.2-1.128,2.256-1.128c1.728,0,2.96,1.432,2.944,3.584c0,2.536-1.608,3.8-3.208,3.8c-0.912,0-1.728-0.352-2.232-1.216 h-0.032l-0.088,1.056H191.144z M192.992,112.632c0,0.152,0.016,0.288,0.04,0.424c0.192,0.712,0.808,1.256,1.584,1.256 c1.12,0,1.8-0.904,1.8-2.32c0-1.256-0.592-2.264-1.784-2.264c-0.72,0-1.376,0.528-1.584,1.304 c-0.024,0.128-0.056,0.288-0.056,0.464V112.632z`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M200.952,112.512c0.04,1.28,1.04,1.832,2.176,1.832c0.824,0,1.416-0.12,1.96-0.32l0.264,1.232 c-0.616,0.248-1.456,0.44-2.472,0.44c-2.288,0-3.64-1.408-3.64-3.576c0-1.952,1.192-3.8,3.448-3.8c2.296,0,3.048,1.888,3.048,3.44 c0,0.336-0.032,0.592-0.056,0.752C205.68,112.512,200.952,112.512,200.952,112.512z M204.056,111.264 c0.016-0.648-0.272-1.728-1.464-1.728c-1.104,0-1.568,1.008-1.64,1.728H204.056z`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M147.464,115.544v-4.072l-3.088-5.696h2.032l1.176,2.504c0.336,0.728,0.584,1.28,0.848,1.944h0.024 c0.248-0.624,0.52-1.232,0.856-1.944l1.176-2.504h2.016l-3.248,5.656v4.112H147.464z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M158.864,111.944c0,2.6-1.824,3.76-3.624,3.76c-2,0-3.536-1.376-3.536-3.632 c0-2.328,1.52-3.744,3.656-3.744C157.464,108.32,158.864,109.8,158.864,111.944z M153.544,112.024c0,1.36,0.664,2.392,1.752,2.392 c1.016,0,1.728-1,1.728-2.424c0-1.104-0.496-2.368-1.712-2.368C154.056,109.624,153.544,110.84,153.544,112.024z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M166.656,113.424c0,0.84,0.032,1.544,0.056,2.12h-1.568l-0.088-1.08h-0.024 c-0.304,0.504-1,1.232-2.264,1.232c-1.288,0-2.464-0.768-2.464-3.072v-4.144h1.784v3.84c0,1.176,0.384,1.936,1.32,1.936 c0.712,0,1.176-0.504,1.36-0.96c0.064-0.16,0.104-0.344,0.104-0.552v-4.264h1.784V113.424z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M353.936,113.776c-3.096,0-5.616-2.52-5.616-5.616s2.52-5.616,5.616-5.616s5.616,2.52,5.616,5.616 C359.552,111.256,357.032,113.776,353.936,113.776z M353.936,103.816c-2.392,0-4.344,1.952-4.344,4.344s1.952,4.344,4.344,4.344 s4.344-1.952,4.344-4.344S356.328,103.816,353.936,103.816z`}),(0,d.jsx)(`rect`,{x:`356.02`,y:`113.813`,transform:`matrix(-0.6044 -0.7967 0.7967 -0.6044 484.7665 469.5985)`,style:{fill:`#2D2D2D`},width:`5.896`,height:`1.272`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M240.088,113.168c0.48,0.296,1.184,0.544,1.92,0.544c1.096,0,1.736-0.576,1.736-1.416 c0-0.768-0.44-1.216-1.56-1.648c-1.352-0.48-2.192-1.184-2.192-2.352c0-1.296,1.072-2.248,2.68-2.248 c0.848,0,1.464,0.192,1.832,0.4l-0.296,0.872c-0.272-0.152-0.824-0.392-1.576-0.392c-1.136,0-1.56,0.672-1.56,1.24 c0,0.776,0.504,1.152,1.648,1.6c1.4,0.544,2.12,1.216,2.12,2.432c0,1.28-0.952,2.392-2.904,2.392c-0.8,0-1.68-0.24-2.12-0.528 L240.088,113.168z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M246.984,111.688c0.024,1.472,0.96,2.064,2.048,2.064c0.776,0,1.24-0.128,1.648-0.304l0.184,0.776 c-0.384,0.176-1.032,0.368-1.984,0.368c-1.832,0-2.928-1.208-2.928-3s1.056-3.216,2.792-3.216c1.952,0,2.464,1.704,2.464,2.808 c0,0.216-0.024,0.392-0.04,0.496h-4.184V111.688z M250.16,110.92c0.016-0.688-0.288-1.76-1.504-1.76 c-1.096,0-1.576,1.008-1.664,1.76H250.16z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M255.88,114.472l-0.088-0.752h-0.032c-0.336,0.472-0.968,0.888-1.824,0.888 c-1.208,0-1.824-0.848-1.824-1.704c0-1.448,1.28-2.232,3.584-2.216v-0.128c0-0.488-0.136-1.384-1.36-1.384 c-0.552,0-1.128,0.176-1.552,0.448l-0.248-0.72c0.488-0.312,1.208-0.528,1.96-0.528c1.824,0,2.264,1.24,2.264,2.432v2.232 c0,0.52,0.024,1.024,0.104,1.424h-0.984V114.472z M255.72,111.44c-1.184-0.024-2.528,0.184-2.528,1.336 c0,0.704,0.472,1.032,1.024,1.032c0.776,0,1.272-0.488,1.44-1c0.04-0.112,0.064-0.24,0.064-0.344V111.44z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M258.552,110.376c0-0.704-0.016-1.304-0.056-1.864h0.944l0.04,1.176h0.04 c0.272-0.8,0.928-1.304,1.656-1.304c0.12,0,0.2,0.008,0.304,0.032v1.024c-0.112-0.024-0.224-0.032-0.368-0.032 c-0.768,0-1.312,0.576-1.456,1.392c-0.024,0.144-0.056,0.312-0.056,0.496v3.176h-1.072v-4.096H258.552z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M266.72,114.256c-0.288,0.152-0.912,0.344-1.72,0.344c-1.792,0-2.968-1.216-2.968-3.04 c0-1.84,1.264-3.168,3.208-3.168c0.64,0,1.208,0.168,1.504,0.304l-0.248,0.84c-0.264-0.152-0.664-0.28-1.264-0.28 c-1.368,0-2.104,1.008-2.104,2.248c0,1.384,0.888,2.232,2.064,2.232c0.616,0,1.024-0.168,1.328-0.296L266.72,114.256z`}),(0,d.jsx)(`path`,{style:{fill:`#2D2D2D`},d:`M268.016,105.736h1.08v3.712h0.024c0.176-0.304,0.448-0.576,0.776-0.76 c0.312-0.184,0.704-0.304,1.104-0.304c0.808,0,2.08,0.488,2.08,2.544v3.544H272v-3.424c0-0.96-0.352-1.768-1.376-1.768 c-0.704,0-1.264,0.488-1.456,1.08c-0.064,0.152-0.08,0.304-0.08,0.52v3.6h-1.08v-8.744H268.016z`})]})]})}function ie(e){return(0,d.jsx)(`svg`,{width:`800px`,height:`800px`,viewBox:`0 0 73 73`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,...e,children:(0,d.jsx)(`g`,{id:`fundamentals/css/images`,stroke:`none`,strokeWidth:`1`,fill:`none`,fillRule:`evenodd`,children:(0,d.jsxs)(`g`,{id:`container`,transform:`translate(2.000000, 2.000000)`,fillRule:`nonzero`,children:[(0,d.jsx)(`rect`,{id:`mask`,stroke:`#000000`,strokeWidth:`2`,fill:`#424A60`,x:`-1`,y:`-1`,width:`71`,height:`71`,rx:`14`}),(0,d.jsx)(`circle`,{id:`Oval`,fill:`#EFCE4A`,cx:`21.069`,cy:`23.069`,r:`9.069`}),(0,d.jsx)(`polygon`,{id:`Shape`,fill:`#1A9172`,points:`69.5 56.7492553 68.1170213 55.212766 51.5212766 40 37 55.9042553 44.5828723 63.4871277 50.1382979 69.0425532 60.7455406 69.0425532 69.5 60.1780353`}),(0,d.jsx)(`polygon`,{id:`Shape`,fill:`#25AE88`,points:`47.8532188 64.0501875 33.8030313 50 12 69.1969687 53 69.1969687`}),(0,d.jsx)(`rect`,{id:`mask`,stroke:`#000000`,strokeWidth:`2`,x:`-1`,y:`-1`,width:`71`,height:`71`,rx:`14`})]})})})}function ae(e){return(0,d.jsxs)(`svg`,{width:`800px`,height:`800px`,viewBox:`0 0 32 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,d.jsx)(`path`,{d:`M23.3 8.40007L21.82 6.40008C21.7248 6.27314 21.6008 6.17066 21.4583 6.10111C21.3157 6.03156 21.1586 5.99693 21 6.00008H11.2C11.0555 6.00007 10.9128 6.03135 10.7816 6.09177C10.6504 6.15219 10.5339 6.24031 10.44 6.35007L8.71998 8.35008C8.57227 8.53401 8.49435 8.76424 8.49998 9.00008V16.2901C8.50262 18.0317 9.19567 19.7013 10.4272 20.9328C11.6588 22.1644 13.3283 22.8574 15.07 22.8601H16.93C18.6716 22.8574 20.3412 22.1644 21.5728 20.9328C22.8043 19.7013 23.4973 18.0317 23.5 16.2901V9.00008C23.5 8.7837 23.4298 8.57317 23.3 8.40007Z`,fill:`#FFCC80`}),(0,d.jsx)(`path`,{d:`M29.78 28.38L25.78 23.38C25.664 23.2321 25.5086 23.1198 25.3318 23.0562C25.1549 22.9925 24.9637 22.98 24.78 23.02L16 25L7.21999 23C7.03632 22.96 6.84507 22.9725 6.6682 23.0362C6.49133 23.0998 6.33598 23.2121 6.21999 23.36L2.21999 28.36C2.10392 28.5064 2.03116 28.6823 2.00995 28.8679C1.98874 29.0534 2.01993 29.2413 2.09999 29.41C2.17815 29.5839 2.3044 29.7319 2.46385 29.8364C2.62331 29.9409 2.80933 29.9977 2.99999 30H29C29.1885 29.9995 29.373 29.9457 29.5322 29.8448C29.6914 29.744 29.8189 29.6002 29.9 29.43C29.98 29.2613 30.0112 29.0734 29.99 28.8879C29.9688 28.7023 29.8961 28.5264 29.78 28.38Z`,fill:`#01579B`}),(0,d.jsx)(`path`,{d:`M29.29 6.00003L16.29 2.00003C16.0999 1.95002 15.9001 1.95002 15.71 2.00003L2.71 6.00003C2.49742 6.06422 2.31226 6.19735 2.1837 6.37841C2.05515 6.55947 1.99052 6.77817 2 7.00003C1.9917 7.22447 2.0592 7.44518 2.19163 7.62659C2.32405 7.80799 2.5137 7.93954 2.73 8.00003L15.73 11.6C15.906 11.6534 16.094 11.6534 16.27 11.6L29.27 8.00003C29.4863 7.93954 29.6759 7.80799 29.8084 7.62659C29.9408 7.44518 30.0083 7.22447 30 7.00003C30.0095 6.77817 29.9448 6.55947 29.8163 6.37841C29.6877 6.19735 29.5026 6.06422 29.29 6.00003Z`,fill:`#01579B`}),(0,d.jsx)(`path`,{d:`M11.22 6C11.0756 5.99999 10.9328 6.03127 10.8016 6.09169C10.6704 6.15211 10.5539 6.24023 10.46 6.35L8.74 8.35C8.58509 8.53114 8.49998 8.76166 8.5 9V16.29C8.50264 18.0317 9.19569 19.7012 10.4272 20.9328C11.6588 22.1643 13.3283 22.8574 15.07 22.86H16V6H11.22Z`,fill:`#FFE0B2`}),(0,d.jsx)(`path`,{d:`M7.21999 23C7.03632 22.96 6.84507 22.9725 6.6682 23.0362C6.49133 23.0998 6.33598 23.2121 6.21999 23.36L2.21999 28.36C2.10392 28.5064 2.03116 28.6823 2.00995 28.8679C1.98874 29.0534 2.01993 29.2413 2.09999 29.41C2.17815 29.5839 2.3044 29.7319 2.46385 29.8364C2.62331 29.9409 2.80933 29.9977 2.99999 30H16V25L7.21999 23Z`,fill:`#0277BD`}),(0,d.jsx)(`path`,{d:`M15.71 2.00002L2.71 6.00002C2.49742 6.06422 2.31226 6.19734 2.1837 6.3784C2.05515 6.55947 1.99052 6.77817 2 7.00002C1.9917 7.22447 2.0592 7.44518 2.19163 7.62658C2.32405 7.80799 2.5137 7.93954 2.73 8.00002L15.73 11.6C15.8194 11.6146 15.9106 11.6146 16 11.6V2.00002C15.9039 1.98469 15.8061 1.98469 15.71 2.00002Z`,fill:`#0277BD`}),(0,d.jsx)(`path`,{d:`M2.73 8.00003L8.5 9.56003V16.29C8.50264 18.0317 9.19569 19.7013 10.4272 20.9328C11.6588 22.1643 13.3283 22.8574 15.07 22.86H16.93C18.6717 22.8574 20.3412 22.1643 21.5728 20.9328C22.8043 19.7013 23.4974 18.0317 23.5 16.29V9.56003L29.27 8.00003C29.4863 7.93954 29.6759 7.80799 29.8084 7.62659C29.9408 7.44518 30.0083 7.22447 30 7.00003C30.0095 6.77817 29.9448 6.55947 29.8163 6.37841C29.6877 6.19735 29.5026 6.06422 29.29 6.00003L16.29 2.00003C16.0999 1.95002 15.9001 1.95002 15.71 2.00003L2.71 6.00003C2.49742 6.06422 2.31226 6.19735 2.1837 6.37841C2.05515 6.55947 1.99052 6.77817 2 7.00003C1.9917 7.22447 2.0592 7.44518 2.19163 7.62659C2.32405 7.80799 2.5137 7.93954 2.73 8.00003ZM21.5 16.29C21.4974 17.5013 21.015 18.6621 20.1586 19.5186C19.3021 20.3751 18.1412 20.8574 16.93 20.86H15.07C13.8588 20.8574 12.6979 20.3751 11.8414 19.5186C10.985 18.6621 10.5026 17.5013 10.5 16.29V10.11L15.73 11.56C15.906 11.6134 16.094 11.6134 16.27 11.56L21.5 10.11V16.29ZM16 4.05003L25.44 7.00003L16 9.56003L6.56 7.00003L16 4.05003Z`,fill:`#263238`}),(0,d.jsx)(`path`,{d:`M25.78 23.38C25.664 23.2321 25.5086 23.1198 25.3318 23.0562C25.1549 22.9925 24.9637 22.98 24.78 23.02L16 25L7.21999 23C7.03632 22.96 6.84507 22.9725 6.6682 23.0362C6.49133 23.0998 6.33598 23.2121 6.21999 23.36L2.21999 28.36C2.10392 28.5064 2.03116 28.6823 2.00995 28.8679C1.98874 29.0534 2.01993 29.2413 2.09999 29.41C2.17815 29.5839 2.3044 29.7319 2.46385 29.8364C2.62331 29.9409 2.80933 29.9977 2.99999 30H29C29.1885 29.9995 29.373 29.9457 29.5322 29.8448C29.6914 29.744 29.8189 29.6002 29.9 29.43C29.98 29.2613 30.0112 29.0734 29.99 28.8879C29.9688 28.7023 29.8961 28.5264 29.78 28.38L25.78 23.38ZM5.07999 28L7.38999 25.11L15.78 27C15.9251 27.0299 16.0748 27.0299 16.22 27L24.61 25.13L26.92 28H5.07999Z`,fill:`#263238`})]})}function V(e){return(0,d.jsxs)(`svg`,{height:`800px`,width:`800px`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,viewBox:`0 0 503.322 503.322`,...e,children:[(0,d.jsx)(`path`,{style:{fill:`#FBC176`},d:`M0,73.763v130.169c0,6.942,6.075,13.017,13.017,13.017h225.627c6.942,0,13.017-6.075,13.017-13.017 V73.763c0-6.942-6.075-13.017-13.017-13.017H13.017C6.075,60.746,0,66.82,0,73.763`}),(0,d.jsx)(`path`,{style:{fill:`#C39A6E`},d:`M225.627,60.746V39.051c0-6.942-6.075-13.017-13.017-13.017h-69.424L121.492,0H30.373 c-6.942,0-13.017,6.075-13.017,13.017v47.729H225.627z`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M86.78,104.136H34.712c-5.207,0-8.678-3.471-8.678-8.678c0-5.207,3.471-8.678,8.678-8.678H86.78 c5.207,0,8.678,3.471,8.678,8.678C95.458,100.664,91.986,104.136,86.78,104.136`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M86.78,138.847H34.712c-5.207,0-8.678-3.471-8.678-8.678s3.471-8.678,8.678-8.678H86.78 c5.207,0,8.678,3.471,8.678,8.678S91.986,138.847,86.78,138.847`})]}),(0,d.jsx)(`path`,{style:{fill:`#FBC176`},d:`M251.661,360.136v130.169c0,6.942,6.075,13.017,13.017,13.017h225.627 c6.942,0,13.017-6.075,13.017-13.017V360.136c0-6.942-6.075-13.017-13.017-13.017H264.678 C257.736,347.119,251.661,353.193,251.661,360.136`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M338.441,390.508h-52.068c-5.207,0-8.678-3.471-8.678-8.678s3.471-8.678,8.678-8.678h52.068 c5.207,0,8.678,3.471,8.678,8.678S343.647,390.508,338.441,390.508`}),(0,d.jsx)(`path`,{style:{fill:`#FFFFFF`},d:`M338.441,425.22h-52.068c-5.207,0-8.678-3.471-8.678-8.678c0-5.207,3.471-8.678,8.678-8.678h52.068 c5.207,0,8.678,3.471,8.678,8.678C347.119,421.749,343.647,425.22,338.441,425.22`})]}),(0,d.jsx)(`path`,{style:{fill:`#F38774`},d:`M208.271,451.254H78.102c-5.207,0-8.678-3.471-8.678-8.678V260.339c0-5.207,3.471-8.678,8.678-8.678 c5.207,0,8.678,3.471,8.678,8.678v173.559h121.492c5.207,0,8.678,3.471,8.678,8.678 C216.949,447.783,213.478,451.254,208.271,451.254`}),(0,d.jsx)(`path`,{style:{fill:`#26B999`},d:`M433.898,277.695c-5.207,0-8.678-3.471-8.678-8.678V95.458H295.051c-5.207,0-8.678-3.471-8.678-8.678 c0-5.207,3.471-8.678,8.678-8.678h138.847c5.207,0,8.678,3.471,8.678,8.678v182.237 C442.576,274.224,439.105,277.695,433.898,277.695`}),(0,d.jsx)(`path`,{style:{fill:`#C39A6E`},d:`M477.288,347.119v-21.695c0-6.942-6.075-13.017-13.017-13.017h-69.424l-21.695-26.034h-91.119 c-6.942,0-13.017,6.075-13.017,13.017v47.729H477.288z`})]})}function oe(e){return(0,d.jsxs)(`svg`,{height:`800px`,width:`800px`,viewBox:`0 0 128 128`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,"aria-hidden":`true`,role:`img`,className:`iconify iconify--noto`,preserveAspectRatio:`xMidYMid meet`,...e,children:[(0,d.jsx)(`path`,{d:`M106 24.79H22.15c-1.92 0-3.48 1.56-3.48 3.48v57.59c0 1.92 1.56 3.48 3.48 3.48H106c1.92 0 3.48-1.56 3.48-3.48V28.27c0-1.92-1.55-3.48-3.48-3.48z`,fill:`#b7d5e5`}),(0,d.jsxs)(`radialGradient`,{id:`IconifyId17ecdb2904d178eab9910`,cx:`48.408`,cy:`13.024`,r:`75.465`,gradientTransform:`matrix(1 0 0 1.0843 0 -10.19)`,gradientUnits:`userSpaceOnUse`,children:[(0,d.jsx)(`stop`,{offset:`0`,stopColor:`#2f7889`}),(0,d.jsx)(`stop`,{offset:`1`,stopColor:`#424242`})]}),(0,d.jsx)(`path`,{fill:`url(#IconifyId17ecdb2904d178eab9910)`,d:`M104.75 83.2H23.4l.96-52.27h79.43z`}),(0,d.jsx)(`path`,{d:`M121.09 123.82H7.59c-.43 0-.83-.03-1.2-.09c-2.88-.44-4.21-4.18-2.5-6.74l.39-.59h119.59l.4.6c1.86 2.78.12 6.76-3.04 6.81c-.04.01-.09.01-.14.01z`,fill:`#2f7889`}),(0,d.jsx)(`path`,{d:`M106.84 90.41H20.6c-1.27 0-2.54.77-3.25 1.99l-14 25.48c-.59.88-.01 2.12.99 2.12H123.8c1 0 1.58-1.24.99-2.12l-14.71-25.63c-.7-1.08-1.97-1.84-3.24-1.84z`,fill:`#eee`}),(0,d.jsx)(`path`,{fill:`#b7d5e5`,d:`M86.36 115.52H41.8l2.85-7.98h39.07z`}),(0,d.jsxs)(`g`,{opacity:`0.57`,fill:`#69a1ba`,children:[(0,d.jsx)(`path`,{d:`M72.69 94.84l-.27-2.2h-3.44l.13 2.2z`}),(0,d.jsx)(`path`,{d:`M67.14 94.84l-.14-2.2h-3.45v2.2z`}),(0,d.jsx)(`path`,{d:`M93.61 94.84l-.81-2.2h-3.26l.68 2.2z`}),(0,d.jsx)(`path`,{d:`M88.36 94.84l-.68-2.2h-3.32l.54 2.2z`}),(0,d.jsx)(`path`,{d:`M83.18 94.84l-.54-2.2h-3.37l.41 2.2z`}),(0,d.jsx)(`path`,{d:`M102.11 94.84l-.95-2.2h-6.71l.82 2.2z`}),(0,d.jsx)(`path`,{d:`M77.61 94.84l-.41-2.2h-3.41l.28 2.2z`}),(0,d.jsx)(`path`,{d:`M33.76 94.84l.68-2.2h-3.26l-.81 2.2z`}),(0,d.jsx)(`path`,{d:`M50.51 94.84l.27-2.2h-3.41l-.4 2.2z`}),(0,d.jsx)(`path`,{d:`M39.35 94.84l.54-2.2h-3.32l-.67 2.2z`}),(0,d.jsx)(`path`,{d:`M28.17 94.84l.81-2.2H25.8l-.95 2.2z`}),(0,d.jsx)(`path`,{d:`M44.93 94.84l.41-2.2h-3.37l-.54 2.2z`}),(0,d.jsx)(`path`,{d:`M56.08 94.84l.14-2.2h-3.44l-.27 2.2z`}),(0,d.jsx)(`path`,{d:`M61.65 94.84v-2.2H58.2l-.14 2.2z`}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{d:`M83.78 103.73H44.36l-.75 2.2h41.08z`}),(0,d.jsx)(`path`,{d:`M102.15 105.93l-1.21-2.2h6.54l.95 2.2z`}),(0,d.jsx)(`path`,{d:`M86.75 105.93l-.83-2.2h6.29l.96 2.2z`}),(0,d.jsx)(`path`,{d:`M95.39 105.93l-.96-2.2h4.31l1.1 2.2z`}),(0,d.jsx)(`path`,{d:`M25.67 105.93l1.21-2.2h-6.54l-.95 2.2z`}),(0,d.jsx)(`path`,{d:`M41.07 105.93l.83-2.2h-6.29l-.96 2.2z`}),(0,d.jsx)(`path`,{d:`M32.42 105.93l.97-2.2h-4.31l-1.11 2.2z`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{d:`M29.71 98.51l.82-2.19h-6.67l-.95 2.19z`}),(0,d.jsx)(`path`,{d:`M97.95 98.51l-.81-2.19h6.66l.95 2.19z`}),(0,d.jsx)(`path`,{d:`M96.25 98.51l-.96-2.19h-3.85l.82 2.19z`}),(0,d.jsx)(`path`,{d:`M86.23 98.51l-.65-2.19h3.85l.78 2.19z`}),(0,d.jsx)(`path`,{d:`M80.19 98.51l-.47-2.19h3.85l.6 2.19z`}),(0,d.jsx)(`path`,{d:`M74.15 98.51l-.28-2.19h3.84l.43 2.19z`}),(0,d.jsx)(`path`,{d:`M68.12 98.51l-.11-2.19h3.85l.24 2.19z`}),(0,d.jsx)(`path`,{d:`M62.08 98.51l.07-2.19H66l.06 2.19z`}),(0,d.jsx)(`path`,{d:`M56.04 98.51l.25-2.19h3.85l-.11 2.19z`}),(0,d.jsx)(`path`,{d:`M50.01 98.51l.42-2.19h3.85l-.29 2.19z`}),(0,d.jsx)(`path`,{d:`M43.97 98.51l.6-2.19h3.85l-.47 2.19z`}),(0,d.jsx)(`path`,{d:`M37.93 98.51l.78-2.19h3.85l-.64 2.19z`}),(0,d.jsx)(`path`,{d:`M31.9 98.51l.95-2.19h3.85l-.82 2.19z`})]}),(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`path`,{d:`M29.7 102.22l.81-2.2h-8.75l-.95 2.2z`}),(0,d.jsx)(`path`,{d:`M95.87 102.22l-.77-2.2h-4.17l.64 2.2z`}),(0,d.jsx)(`path`,{d:`M84.93 102.22l-.48-2.2h4.16l.62 2.2z`}),(0,d.jsx)(`path`,{d:`M78.28 102.22l-.32-2.2h4.17l.45 2.2z`}),(0,d.jsx)(`path`,{d:`M71.64 102.22l-.17-2.2h4.17l.3 2.2z`}),(0,d.jsx)(`path`,{d:`M65 102.22l-.01-2.2h4.16l.15 2.2z`}),(0,d.jsx)(`path`,{d:`M58.36 102.22l.14-2.2h4.17l-.01 2.2z`}),(0,d.jsx)(`path`,{d:`M51.71 102.22l.3-2.2h4.17l-.17 2.2z`}),(0,d.jsx)(`path`,{d:`M45.07 102.22l.46-2.2h4.16l-.32 2.2z`}),(0,d.jsx)(`path`,{d:`M38.43 102.22l.61-2.2h4.17l-.48 2.2z`}),(0,d.jsx)(`path`,{d:`M31.78 102.22l.77-2.2h4.17l-.63 2.2z`}),(0,d.jsx)(`path`,{d:`M97.47 102.22l-.82-2.2h8.75l.95 2.2z`})]})]}),(0,d.jsx)(`path`,{d:`M124.73 117.88L110.39 92.4c-.71-1.07-1.98-1.84-3.25-1.84c0 0 1.22 1.1 1.59 1.63l12.59 23.59c.56 1.02-.18 2.26-1.34 2.26H7.96c-1.15 0-1.89-1.23-1.35-2.24l11.95-23.18c.35-.6 1.88-1.99 1.88-1.99h-.45c-1.27 0-2.54.77-3.25 1.99L3.28 117.88c-.59.88-.01 2.12.99 2.12h119.46c1.01 0 1.59-1.24 1-2.12z`,fill:`#b7d5e5`}),(0,d.jsx)(`path`,{fill:`none`,stroke:`#eee`,strokeWidth:`2.936`,strokeLinecap:`round`,strokeMiterlimit:`10`,d:`M25.97 28.02h13.21`}),(0,d.jsx)(`path`,{d:`M109.37 30.11c0-1.04-1.01-1.12-1.01.11v55.8c0 1.34-1.09 2.43-2.43 2.43H22.08c-1.34 0-2.43-1.09-2.43-2.43v-55.8c0-1.23-1.01-1.15-1.01-.11l-.95 55.91c0 2.42 1.24 4.39 4.39 4.39h83.85c2.73 0 4.39-1.97 4.39-4.39l-.95-55.91z`,fill:`#75a7bc`})]})}var H=[{code:`general`,icon:ne,name:`Web`},{code:`news`,icon:B,name:`News`},{code:`videos`,icon:re,name:`Videos`},{code:`images`,icon:ie,name:`Images`},{code:`science`,icon:ae,name:`Academic`},{code:`files`,icon:V,name:`Files`},{code:`it`,icon:oe,name:`Tech`}];function U({...e}){return(0,d.jsx)(f.Root,{"data-slot":`dialog`,...e})}function se({...e}){return(0,d.jsx)(f.Trigger,{"data-slot":`dialog-trigger`,...e})}function ce({...e}){return(0,d.jsx)(f.Portal,{"data-slot":`dialog-portal`,...e})}function le({className:e,...t}){return(0,d.jsx)(f.Overlay,{"data-slot":`dialog-overlay`,className:F(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 backdrop-blur-xs`,e),...t})}function ue({className:e,children:t,hideCloseButton:n=!1,...r}){return(0,d.jsxs)(ce,{"data-slot":`dialog-portal`,children:[(0,d.jsx)(le,{}),(0,d.jsxs)(f.Content,{"data-slot":`dialog-content`,"aria-describedby":r[`aria-describedby`]??void 0,className:F(`z-[9999] bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border p-6 shadow-lg duration-200`,e),...r,children:[t,!n&&(0,d.jsxs)(f.Close,{className:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,d.jsx)(s.XIcon,{}),(0,d.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function de({className:e,...t}){return(0,d.jsx)(f.Title,{"data-slot":`dialog-title`,className:F(`text-lg leading-none font-semibold`,e),...t})}function fe({className:e,...t}){return(0,d.jsx)(f.Description,{"data-slot":`dialog-description`,className:F(`text-muted-foreground text-sm`,e),...t})}function pe(e){try{let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`}catch{return!1}}function me(e){return e.iframe_src&&pe(e.iframe_src)?{type:`inline`,src:e.iframe_src}:{type:`external`,url:e.url||``}}function he(e){return{pageContent:e.snippet||e.content||``,metadata:{title:e.title||``,source:e.source||``,thumbnail:e.thumbnail||``,url:e.url||``,...e.img_src&&{img_src:e.img_src},...e.iframe_src&&{iframe_src:e.iframe_src}}}}var W=H.filter(e=>[`general`,`news`,`videos`,`images`,`science`,`files`].includes(e.code)),ge=({sources:e,query:t})=>{let[r,i]=(0,n.useState)(`general`),[a,o]=(0,n.useState)(e),[u,f]=(0,n.useState)(!1),[p,m]=(0,n.useState)(!1),[h,g]=(0,n.useState)(1),[_,v]=(0,n.useState)(!0),[y,b]=(0,n.useState)(!1),[x,S]=(0,n.useState)(!1),[C,w]=(0,n.useState)(null),T=(0,n.useRef)(null),E=(0,n.useRef)(!1),D=(0,n.useRef)(!1),{openPanel:O,isOpen:k}=ee();(0,n.useEffect)(()=>{let e=()=>{S(localStorage.getItem(`searchResultGlow`)===`true`)};return e(),window.addEventListener(`client-config-changed`,e),window.addEventListener(`storage`,e),()=>{window.removeEventListener(`client-config-changed`,e),window.removeEventListener(`storage`,e)}},[]);let[A,j]=(0,n.useState)({});(0,n.useEffect)(()=>{let e=()=>{b(window.innerWidth>=1024)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),(0,n.useEffect)(()=>{o(e),i(`general`),g(1),v(!0),j({}),M(e)},[e]);let M=(0,n.useCallback)(async e=>{let t=e.filter(e=>e.metadata.url&&e.metadata.url!==`File`&&!e.metadata.iframe_src);for(let e of t)try{let{data:t}=await(0,c.getArticle)({query:{url:e.metadata.url}});t?.cached&&t?.article?.html&&j(t=>({...t,[e.metadata.url]:`loaded`}))}catch{}},[]);(0,n.useEffect)(()=>{if(typeof window<`u`){let e=new URLSearchParams(window.location.search).get(`extract`);e&&(O(decodeURIComponent(e),``),D.current=!1)}},[O]),(0,n.useEffect)(()=>{D.current=!1},[e]),(0,n.useEffect)(()=>{E.current&&!k&&(D.current=!0),E.current=k},[k]),(0,n.useEffect)(()=>{if(y&&a&&a.length>0&&!k&&!D.current){let e=a[0];e?.metadata?.url&&O(e.metadata.url,``)}},[a,y]);let N=async(e,t)=>{e.preventDefault(),D.current=!1,j(e=>({...e,[t]:`loading`})),O(t,``);try{await(0,c.getArticle)({query:{url:t}}),j(e=>({...e,[t]:`loaded`}))}catch{j(e=>({...e,[t]:`loaded`}))}},P=(0,n.useCallback)(async()=>{if(!t||p||!_)return;m(!0);let e=h+1,{data:n}=await(0,c.agentSearch)({query:{q:t,cat:r,page:e}}),i=n?.results??[];if(i.length===0){v(!1),m(!1);return}let a=i.map(e=>{if(e.url)try{let t=new URL(e.url);(t.pathname===`/`||t.pathname===``)&&console.warn(`[MessageSources] Search result URL is domain-only:`,e.url,`Title:`,e.title)}catch{console.error(`[MessageSources] Invalid URL in search result:`,e.url)}return he(e)});o(e=>[...e,...a]),g(e),m(!1)},[t,r,h,p,_]),I=async e=>{if(e!==r&&t){i(e),f(!0),g(1),v(!0);try{let{data:n}=await(0,c.agentSearch)({query:{q:t,cat:e,page:1}}),r=(n?.results??[]).map(e=>{if(e.url)try{let t=new URL(e.url);(t.pathname===`/`||t.pathname===``)&&console.warn(`[MessageSources] Category search result URL is domain-only:`,e.url,`Title:`,e.title)}catch{console.error(`[MessageSources] Invalid URL in category search result:`,e.url)}return he(e)});o(r)}catch(e){console.error(`Error searching:`,e)}finally{f(!1)}}};(0,n.useEffect)(()=>{let e=T.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:n,clientHeight:r}=e;n-t-r<100&&P()};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[P]);let L=(e,t)=>{let n=r===`images`,i=r===`videos`,a=e.metadata.img_src||e.metadata.thumbnail;if(n&&a)return(0,d.jsx)(`div`,{className:`relative rounded-lg group`,children:(0,d.jsxs)(`a`,{className:`relative block overflow-hidden rounded-lg cursor-pointer`,href:e.metadata.url,onClick:t=>N(t,e.metadata.url),children:[(0,d.jsx)(`img`,{src:a,alt:e.metadata.title,className:`w-full h-auto object-cover rounded-lg hover:scale-105 transition-transform duration-200`,loading:`lazy`}),(0,d.jsxs)(`div`,{className:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/70 to-transparent p-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200`,children:[(0,d.jsx)(`p`,{className:`text-xs text-white line-clamp-2`,children:(0,l.convertURLSafeHTMLToHTML)(e.metadata.title)}),(0,d.jsx)(`p`,{className:`text-[10px] text-white/70 truncate mt-0.5`,children:e.metadata.source})]})]})},t);if(i&&a){let n=me(e.metadata),r=(0,d.jsxs)(`div`,{className:`relative`,children:[(0,d.jsx)(`img`,{src:a,alt:e.metadata.title,className:`w-full h-24 object-cover`}),(0,d.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,d.jsx)(`div`,{className:`w-10 h-10 bg-black/60 rounded-full flex items-center justify-center`,children:(0,d.jsx)(s.Video,{size:18,className:`text-white ml-0.5`})})})]}),i=(0,d.jsx)(`p`,{className:`text-xs line-clamp-2 p-2 text-muted-foreground`,children:(0,l.convertURLSafeHTMLToHTML)(e.metadata.title)});return(0,d.jsxs)(`div`,{className:`relative rounded-xl`,children:[(0,d.jsx)(R,{spread:40,glow:!0,disabled:!x,proximity:64,inactiveZone:.01,borderWidth:2}),n.type===`inline`?(0,d.jsxs)(`button`,{type:`button`,className:`relative w-full text-left bg-card text-card-foreground border border-border rounded-xl overflow-hidden flex flex-col cursor-pointer shadow-sm hover:shadow-md transition-all duration-200`,onClick:()=>w({src:n.src,title:e.metadata.title}),children:[r,i]}):(0,d.jsxs)(`a`,{className:`relative bg-card text-card-foreground border border-border rounded-xl overflow-hidden flex flex-col cursor-pointer shadow-sm hover:shadow-md transition-all duration-200`,href:n.url,target:`_blank`,rel:`noopener noreferrer`,children:[r,i]})]},t)}let o=A[e.metadata.url];return(0,d.jsxs)(`div`,{className:`relative rounded-xl group h-full`,children:[(0,d.jsx)(R,{spread:40,glow:!0,disabled:!x,proximity:64,inactiveZone:.01,borderWidth:2}),(0,d.jsxs)(`div`,{className:`relative bg-card text-card-foreground border border-border rounded-xl p-2.5 flex flex-col font-medium cursor-pointer shadow-sm hover:shadow-md transition-all duration-200 h-full`,onClick:t=>N(t,e.metadata.url),children:[o&&(0,d.jsx)(`div`,{className:`absolute top-1.5 left-1.5 p-1 rounded-md bg-background/80 backdrop-blur-sm z-[5]`,children:o===`loading`?(0,d.jsx)(s.Loader2,{size:14,className:`text-primary animate-spin`}):(0,d.jsx)(s.FileText,{size:14,className:`text-green-500`})}),(0,d.jsx)(`a`,{href:e.metadata.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),className:`absolute top-1.5 right-1.5 p-1 rounded-md bg-secondary/50 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-secondary z-10`,title:`Open in new tab`,children:(0,d.jsx)(s.ExternalLink,{size:12,className:`text-muted-foreground`})}),(0,d.jsxs)(`p`,{className:`text-xs line-clamp-4 text-muted-foreground`,children:[(0,d.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-semibold text-foreground/70 align-middle`,children:[e.metadata.url===`File`?(0,d.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded-full bg-secondary flex-shrink-0`,children:(0,d.jsx)(s.File,{size:10,className:`text-muted-foreground`})}):(0,d.jsx)(`img`,{src:`https://s2.googleusercontent.com/s2/favicons?domain_url=${e.metadata.url}`,width:20,height:20,alt:`favicon`,className:`inline rounded h-5 w-5 flex-shrink-0`}),e.metadata.source]}),` `,(0,d.jsx)(`span`,{className:`align-middle`,children:(0,l.convertURLSafeHTMLToHTML)(e.metadata.title)})]})]})]},t)};return(0,d.jsxs)(d.Fragment,{children:[t&&(0,d.jsx)(`div`,{className:`flex items-center gap-1 mb-3 overflow-x-auto pb-1`,children:W.map(e=>(0,d.jsxs)(`button`,{onClick:()=>I(e.code),disabled:u,className:F(`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 whitespace-nowrap`,r===e.code?`bg-primary text-primary-foreground`:`bg-secondary/50 text-muted-foreground hover:bg-secondary hover:text-foreground`),children:[(0,d.jsx)(e.icon,{className:`w-4 h-4 flex-shrink-0`}),(0,d.jsx)(`span`,{children:e.name})]},e.code))}),(0,d.jsx)(`div`,{ref:T,className:F(`overflow-y-auto pb-2 pr-1`,r===`images`?`max-h-[400px] lg:max-h-[500px]`:`max-h-[180px] lg:max-h-[280px]`),children:u?(0,d.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,d.jsx)(s.Loader2,{className:`w-6 h-6 animate-spin text-muted-foreground`})}):a.length>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{className:F(r===`images`?`columns-2 sm:columns-3 lg:columns-4 gap-2 [&>div]:mb-2 [&>div]:break-inside-avoid`:F(`grid gap-3 auto-rows-fr`,k&&y?`grid-cols-2`:`grid-cols-3`)),children:a.map((e,t)=>L(e,t))}),p&&(0,d.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,d.jsx)(s.Loader2,{className:`w-5 h-5 animate-spin text-muted-foreground`})}),!_&&a.length>0&&(0,d.jsx)(`div`,{className:`flex items-center justify-center py-4 text-muted-foreground text-xs`,children:`No more results`})]}):(0,d.jsx)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground text-sm`,children:`No results found`})}),(0,d.jsx)(U,{open:C!==null,onOpenChange:e=>!e&&w(null),children:(0,d.jsxs)(ue,{className:`max-w-3xl p-0 overflow-hidden gap-0`,children:[(0,d.jsx)(de,{className:`sr-only`,children:C?.title||`Video player`}),C&&(0,d.jsx)(`iframe`,{src:C.src,title:C.title||`Video player`,className:`w-full aspect-video`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:!0})]})})]})},_e={extract:`Extract`,arxiv:`ArXiv`,"google scholar":`Scholar`,pubmed:`PubMed`,wolframalpha:`Wolfram`,youtube:`YouTube`,Web:`Web`};function ve(e){return e?_e[e]??e:`Web`}function ye({queries:e,loading:t}){let n=e.filter(e=>e.status===`done`).length,r=e.length,i=t&&e.some(e=>e.status===`running`);return t?(0,d.jsxs)(`div`,{className:`rounded-xl border border-border bg-secondary/20 overflow-hidden text-sm`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border/50`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[i?(0,d.jsx)(s.Loader2,{className:`w-3.5 h-3.5 animate-spin`}):(0,d.jsx)(s.Search,{className:`w-3.5 h-3.5`}),(0,d.jsx)(`span`,{className:`font-medium text-foreground`,children:i?`Running analysis…`:`Analysis complete`})]}),r>0&&(0,d.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:[n,`/`,r,` searches`]})]}),e.length>0&&(0,d.jsx)(`div`,{className:`divide-y divide-border/40`,children:e.map((e,t)=>(0,d.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2`,children:[e.status===`running`?(0,d.jsx)(s.Loader2,{className:`w-3.5 h-3.5 text-muted-foreground animate-spin flex-shrink-0`}):(0,d.jsx)(s.Search,{className:F(`w-3.5 h-3.5 flex-shrink-0`,e.status===`done`?`text-muted-foreground`:`text-muted-foreground/40`)}),(0,d.jsxs)(`div`,{className:`flex items-baseline gap-1.5 min-w-0 flex-1`,children:[(0,d.jsxs)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap flex-shrink-0`,children:[ve(e.category),` ·`]}),(0,d.jsx)(`span`,{className:`text-foreground/80 truncate`,children:e.query})]})]},t))})]}):null}var be={device:`webgpu`,dtype:`fp32`},xe={device:`wasm`,dtype:`q8`},Se=`hexgrad/Kokoro-82M`,Ce=null,we=null;function Te(){return typeof navigator<`u`&&`gpu`in navigator}async function Ee(){if(!Te())return!1;try{return await navigator.gpu.requestAdapter()!=null}catch{return!1}}async function De(){let e=[];await Ee()&&e.push(be),e.push(xe);let{KokoroTTS:t}=await import(`kokoro-js`),n;for(let r of e)try{let e=await t.from_pretrained(Se,{device:r.device,dtype:r.dtype});return we=r.device,e}catch(e){n=e,console.warn(`Kokoro model failed to load on "${r.device}" backend:`,e)}throw n instanceof Error?n:Error(`Failed to load Kokoro model`)}async function Oe(){return Ce||=De().catch(e=>{throw Ce=null,e}),Ce}async function ke(){return Oe()}async function Ae(){let e=await ke();return Object.keys(e.voices)}function je(){return we}function Me(e,t){let[r,i]=(0,n.useState)(`stopped`),a=(0,n.useRef)(null),o=(0,n.useRef)(null),s=(0,n.useRef)(null),c=(0,n.useRef)(t);c.current=t;let l=(0,n.useCallback)(()=>{a.current&&=(a.current.pause(),a.current.src.startsWith(`blob:`)&&URL.revokeObjectURL(a.current.src),null),s.current?.abort(),s.current=null},[]),u=(0,n.useCallback)(()=>{if(!(`speechSynthesis`in window))return!1;try{window.speechSynthesis.cancel();let t=new SpeechSynthesisUtterance(e);return o.current=t,t.onend=()=>{o.current=null,i(`stopped`)},t.onerror=()=>{o.current=null,i(`stopped`)},window.speechSynthesis.speak(t),i(`started`),!0}catch{return!1}},[e]);return{speechStatus:r,start:(0,n.useCallback)(async()=>{if(!e?.trim())return;l(),window.speechSynthesis?.cancel(),o.current=null,i(`started`);let t=new AbortController;s.current=t;try{if(localStorage.getItem(`useTTSKokoro`)!==`false`)try{let t=await ke(),n=localStorage.getItem(`kokoroVoice`)||`af_heart`,r=(await t.generate(e.slice(0,5e3),{voice:n})).toWav(),o=new Blob([r],{type:`audio/wav`}),s=URL.createObjectURL(o),c=new Audio(s);a.current=c,c.onended=()=>{i(`stopped`),URL.revokeObjectURL(s),a.current=null},c.onerror=()=>{URL.revokeObjectURL(s),a.current=null,u()||i(`stopped`)},await c.play();return}catch(e){console.debug(`Kokoro TTS unavailable, using server-side TTS:`,e instanceof Error?e.message:String(e))}let n=await(0,p.default)(`agent/voice`,{method:`POST`,body:{text:e.slice(0,5e3),voice:localStorage.getItem(`kokoroVoice`)||`af_heart`},signal:t.signal}),r=typeof n.blob==`function`?await n.blob():n;if(!r||r.size===0){u()||i(`stopped`);return}let o=URL.createObjectURL(r),s=new Audio(o);a.current=s,s.onended=()=>{i(`stopped`),URL.revokeObjectURL(o),a.current=null},s.onerror=()=>{URL.revokeObjectURL(o),a.current=null,u()||i(`stopped`)},await s.play()}catch{u()||i(`stopped`)}},[e,l,u]),stop:(0,n.useCallback)(()=>{l(),o.current=null,window.speechSynthesis?.cancel(),i(`stopped`)},[l])}}var Ne=async(e,t,n)=>{try{let n=localStorage.getItem(`chatModelKey`),r=localStorage.getItem(`chatModelProviderId`),i=(await(0,p.default)(`agent/providers`))?.providers||[];if(!i||i.length===0){t(!0);return}let a=i.find(e=>e.id===r&&(e.chatModels?.length??0)>0);if(a||=i.find(e=>e.name.toLowerCase().includes(`openrouter`)&&(e.chatModels?.length??0)>0)||i.find(e=>e.name.toLowerCase().includes(`anyapi`)&&(e.chatModels?.length??0)>0)||i.find(e=>e.name.toLowerCase().includes(`nvidia`)&&(e.chatModels?.length??0)>0)||i.find(e=>(e.chatModels?.length??0)>0),!a){t(!0);return}r=a.id;let o=a.chatModels.find(e=>e.key===n);if(o||(a.name.toLowerCase().includes(`openrouter`)&&(o=a.chatModels.find(e=>e.key===`openrouter/free`)),!o&&a.name.toLowerCase().includes(`openrouter`)&&(o=a.chatModels.find(e=>e.key===`nvidia/nemotron-3-super-120b-a12b:free`)),!o&&a.name.toLowerCase().includes(`anyapi`)&&(o=a.chatModels.find(e=>e.key===`deepseek/deepseek-v3:free`)),o||=a.chatModels.find(e=>(e.key.toLowerCase().includes(`nemotron-3-super`)||e.name.toLowerCase().includes(`nemotron 3 super`))&&e.key.toLowerCase().includes(`120b`)),o||=a.chatModels.find(e=>e.key.toLowerCase().includes(`nemotron`)||e.name.toLowerCase().includes(`nemotron`)),o||=a.chatModels[0]),!o){t(!0);return}n=o.key,localStorage.setItem(`chatModelKey`,n),localStorage.setItem(`chatModelProviderId`,r),e({key:n,providerId:r}),t(!0)}catch(e){console.error(`An error occurred while checking the configuration:`,e),m.toast.error(`Could not load AI providers: ${e?.message??String(e)}`),t(!0)}},Pe=`qwksearch_guest_chats`,Fe=typeof window<`u`;function Ie(){if(!Fe)return[];try{let e=localStorage.getItem(Pe);return e?JSON.parse(e).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()):[]}catch(e){return console.error(`Failed to get guest chats:`,e),[]}}function Le(e){return Fe&&Ie().find(t=>t.id===e)||null}function Re(e){if(Fe)try{let t=Ie(),n=t.findIndex(t=>t.id===e.id);n>=0?t[n]=e:t.push(e),localStorage.setItem(Pe,JSON.stringify(t))}catch(e){console.error(`Failed to save guest chat:`,e)}}function ze(e){if(Fe)try{let t=Ie().filter(t=>t.id!==e);localStorage.setItem(Pe,JSON.stringify(t))}catch(e){console.error(`Failed to delete guest chat:`,e)}}function Be(){if(Fe)try{localStorage.removeItem(Pe)}catch(e){console.error(`Failed to clear guest chats:`,e)}}function Ve(e,t){if(!Fe)return;let n=Le(e);n&&(n.title=t,Re(n))}var He=async(e,t,n,r,i,a,o,s,l)=>{if(!t){let t=Le(e);if(t){n(t.messages);let e=t.messages.filter(e=>e.role===`user`||e.role===`assistant`),o=e.map(e=>[e.role,e.content]);e.length>0&&(document.title=e[0].content),s(t.files||[]),l((t.files||[]).map(e=>e.fileId)),i(o),a(t.focusMode),r(!0);return}try{let{data:t,error:u}=await(0,c.getChatById)({path:{id:e}});if(u){let e=u.status;if(e===404||e===403){o(!0),r(!0);return}throw Error(`Failed to load chat: ${u.message}`)}let{messages:d,chat:f}=t||{};if(!d||!f){o(!0),r(!0);return}n(d);let p=d.filter(e=>e.role===`user`||e.role===`assistant`),m=p.map(e=>[e.role,e.content]);p.length>0&&(document.title=p[0].content);let h=f.files.map(e=>({fileName:e.name,fileExtension:e.name.split(`.`).pop(),fileId:e.fileId}));s(h),l(h.map(e=>e.fileId)),i(m),a(f.focusMode),r(!0);return}catch(e){console.error(`[chatMessages] Failed to load public chat:`,e),o(!0),r(!0);return}}try{let{data:t,error:u}=await(0,c.getChatById)({path:{id:e}});if(u){let e=u.status;if(e===404||e===401||e===403){o(!0),r(!0);return}throw Error(`Failed to load chat: ${u.message}`)}let{messages:d,chat:f}=t||{};if(!d||!f){o(!0),r(!0);return}n(d);let p=d.filter(e=>e.role===`user`||e.role===`assistant`),m=p.map(e=>[e.role,e.content]);console.debug(new Date,`app:messages_loaded`),p.length>0&&(document.title=p[0].content);let h=f.files.map(e=>({fileName:e.name,fileExtension:e.name.split(`.`).pop(),fileId:e.fileId}));s(h),l(h.map(e=>e.fileId)),i(m),a(f.focusMode),r(!0)}catch(e){console.error(`[chatMessages] Failed to load chat:`,e),o(!0),r(!0)}},Ue=e=>{let t=[];return e.forEach((n,r)=>{if(n.role===`user`){let i=e.findIndex((e,t)=>t>r&&e.role===`user`),a=e.find((e,t)=>t>r&&e.role===`assistant`&&(i===-1||t<i)),o=e.find((e,t)=>t>r&&e.role===`source`&&e.sources&&(i===-1||t<i)),s=e.find((e,t)=>t>r&&e.role===`searching`&&(i===-1||t<i)),c=!1,l=a?.content??``,u=a?.content??``,d=[];if(a){let t=/\[([^\]]+)\]/g,n=/\[(\d+)\]/g;if(l.includes(`<think>`)){let e=l.match(/<think>/g)?.length||0,t=l.match(/<\/think>/g)?.length||0;e&&!t&&(l+=`</think> <a> </a>`)}a.content.includes(`</think>`)&&(c=!0),o&&o.sources&&o.sources.length>0?(l=l.replace(t,(e,t)=>t.split(`,`).map(e=>e.trim()).map(e=>{let t=parseInt(e);if(isNaN(t)||t<=0)return`[${e}]`;let n=(o.sources?.[t-1])?.metadata?.url;return n?`<citation href="${n}">${e}</citation>`:``}).join(``)),u=a.content.replace(n,``)):(l=l.replace(n,``),u=a.content.replace(n,``));let s=e.find((e,t)=>t>r&&e.role===`suggestion`&&(i===-1||t<i));s&&s.suggestions.length>0&&(d=s.suggestions)}t.push({userMessage:n,assistantMessage:a,sourceMessage:o,searchingMessage:s,parsedAssistantMessage:l,speechMessage:u,thinkingEnded:c,suggestions:d})}}),t},We=async e=>{let t=localStorage.getItem(`chatModelKey`),n=localStorage.getItem(`chatModelProviderId`),r=parseInt(localStorage.getItem(`maxFollowupQuestions`)||`4`),i=localStorage.getItem(`followUpQuestionsPrompt`)?.trim()||void 0,a=e.filter(e=>e.role===`user`||e.role===`assistant`);try{let e=await(0,p.default)(`agent/suggestions`,{method:`POST`,body:JSON.stringify({chatHistory:a,chatModel:{providerId:n,key:t},maxQuestions:r,promptTemplate:i})});return Array.isArray(e.suggestions)?e.suggestions:[]}catch{return[]}},Ge=3,Ke=`Analyze the uploaded file(s) and summarize the key points.`,qe=()=>Array.from(crypto.getRandomValues(new Uint8Array(7)),e=>e.toString(16).padStart(2,`0`)).join(``),Je=`sourceExtractionEnabled`,Ye=`thinkingTimeLimit`;async function Xe(e,n){let{message:r,messageId:i,rewrite:a=!1}=e,{chatId:o,loading:s,messages:l,fileIds:u,files:d,focusMode:f,category:h,optimizationMode:g,chatHistory:_,chatModelProvider:v,isAuthenticated:y,messagesRef:b,abortControllerRef:x,setLoading:S,setMessageAppeared:C,setMessages:w,setChatHistory:T,setChatModelProvider:E}=n,D=typeof window<`u`&&localStorage.getItem(Je)===`true`,O=typeof window<`u`&&Number(localStorage.getItem(Ye)??`0`)||0;if(s)return;let k=r?.trim()??``,A=Array.isArray(u)&&u.length>0;if(!k&&!A)return;let j=k?r:Ke,M=new AbortController;if(x.current=M,S(!0),C(!1),l.length<=1&&!t.researchAgentUIConfig.onOpenChat){let e=new URL(window.location.href);e.searchParams.set(`chat`,o),window.history.replaceState(null,``,`${e.pathname}?${e.searchParams.toString()}${e.hash}`)}let N=``,P=!1,F=!1,I=[],L=Date.now(),R=O>0,z=``,ee=``,te=i??qe(),ne=Array.isArray(d)?[...d]:[];w(e=>[...e,{content:j,messageId:te,chatId:o,role:`user`,createdAt:new Date,...ne.length>0?{files:ne}:{}}]);let B=e=>{w(t=>[...t,{content:`⚠️ **The response failed:** ${e}`,messageId:qe(),chatId:o,role:`assistant`,createdAt:new Date}]),C(!0)},re=async e=>{if(e.type===`error`){let t=e.data;typeof t==`string`&&(t.includes(`no longer available`)||t.includes(`deprecated`)||t.includes(`410`))&&(localStorage.removeItem(`chatModelKey`),localStorage.removeItem(`chatModelProviderId`),E?.({key:``,providerId:``})),m.toast.error(t),B(t),S(!1);return}if(e.type===`searching`){let t=e.data;w(n=>{let r=n.findIndex(t=>t.messageId===e.messageId&&t.role===`searching`);return r===-1?[...n,{role:`searching`,messageId:e.messageId,chatId:o,createdAt:new Date,queries:[{query:t.query,category:t.category,status:t.status}]}]:n.map((e,n)=>{if(n!==r)return e;let i=e,a=i.queries.findIndex(e=>e.query===t.query);if(a===-1)return{...i,queries:[...i.queries,{query:t.query,category:t.category,status:t.status}]};let o=i.queries.map((e,n)=>n===a?{...e,status:t.status}:e);return{...i,queries:o}})})}if(e.type===`sources`&&(I=e.data||[],w(t=>[...t,{messageId:e.messageId,chatId:o,role:`source`,sources:I,createdAt:new Date}]),I.length>0&&(C(!0),I.slice(0,Ge).forEach(e=>{let t=e?.metadata?.url;t&&t!==`File`&&(0,p.default)(`doc/article?url=${encodeURIComponent(t)}`).catch(()=>{})}))),e.type===`message`&&(N+=e.data,R?(z+=e.data,ee||=e.messageId,P=!0):P?w(t=>t.map(t=>t.messageId===e.messageId&&t.role===`assistant`?{...t,content:t.content+e.data}:t)):(w(t=>[...t,{content:e.data,messageId:e.messageId,chatId:o,role:`assistant`,createdAt:new Date}]),P=!0,C(!0))),e.type===`messageEnd`){let e=async()=>{R&&z&&(w(e=>[...e,{content:z,messageId:ee,chatId:o,role:`assistant`,createdAt:new Date}]),C(!0)),T(e=>[...e,[`human`,j],[`assistant`,N]]),S(!1);let e=b.current[b.current.length-1];if(t.researchAgentUIConfig.getAutoMediaSearch()&&(document.getElementById(`search-images-${e.messageId}`)?.click(),document.getElementById(`search-videos-${e.messageId}`)?.click()),!F){F=!0;let e=await We(b.current),t=qe();if(w(n=>[...n,{role:`suggestion`,suggestions:e,chatId:o,createdAt:new Date,messageId:t}]),y&&e.length>0)try{await(0,c.saveMessage)({body:{chatId:o,messageId:t,role:`suggestion`,suggestions:e}})}catch(e){console.error(`Failed to save suggestions:`,e)}}};if(R){let e=Date.now()-L,t=O*1e3-e;t>0&&await new Promise(e=>setTimeout(e,t))}await e()}},ie=l.findIndex(e=>e.messageId===te);try{let{stream:e}=await(0,c.agentChat)({signal:M.signal,body:{message:{messageId:te,chatId:o,content:j},optimizationMode:g,focusMode:f,category:h,history:a?_.slice(0,ie===-1?void 0:ie):_,files:u,chatModel:{key:v.key,providerId:v.providerId},sourceExtractionEnabled:D,thinkingTimeLimit:O,systemInstructions:localStorage.getItem(`systemInstructions`)??void 0,queryExpansionPrompt:localStorage.getItem(`queryExpansionPrompt`)??void 0},sseMaxRetryAttempts:1,onSseError:e=>{let t=e instanceof Error?e.message:String(e);if(t.includes(`401`)&&y){m.toast.error(`Your session has expired. Please sign in again.`),S(!1),window.location.href=`/`;return}m.toast.error(`Failed to send message. Please try again.`),B(`${t}. Please try again.`),S(!1)}});for await(let t of e)await re(t)}catch(e){if(e.name===`AbortError`){R&&z&&(w(e=>[...e,{content:z,messageId:ee,chatId:o,role:`assistant`,createdAt:new Date}]),C(!0)),N&&T(e=>[...e,[`human`,j],[`assistant`,N]]),S(!1),x.current=null;return}throw e}x.current=null}function Ze(e){let[t,r]=(0,n.useState)(e),[i,a]=(0,n.useState)(!1),[o,s]=(0,n.useState)(!1),[c,l]=(0,n.useState)(!1),[u,d]=(0,n.useState)(!1),[f,p]=(0,n.useState)(!1),[m,h]=(0,n.useState)(!1),[g,_]=(0,n.useState)(!1),[v,y]=(0,n.useState)(!1),[b,x]=(0,n.useState)([]),[S,C]=(0,n.useState)([]),[w,T]=(0,n.useState)([]),[E,D]=(0,n.useState)([]),[O,k]=(0,n.useState)(`webSearch`),[A,j]=(0,n.useState)(`general`),[M,N]=(0,n.useState)(`speed`),[P,F]=(0,n.useState)({key:``,providerId:``}),I=(0,n.useRef)([]),L=(0,n.useMemo)(()=>S.filter(e=>e.role===`user`||e.role===`assistant`),[S]),R=(0,n.useMemo)(()=>Ue(S),[S]);return{state:{chatId:t,newChatCreated:i,loading:o,messageAppeared:c,chatHistory:b,messages:S,files:w,fileIds:E,focusMode:O,category:A,optimizationMode:M,isMessagesLoaded:u,notFound:v,chatModelProvider:P,isConfigReady:f,hasError:m,isReady:g},setters:{setChatId:r,setNewChatCreated:a,setLoading:s,setMessageAppeared:l,setChatHistory:x,setMessages:C,setFiles:T,setFileIds:D,setFocusMode:k,setCategory:j,setOptimizationMode:N,setIsMessagesLoaded:d,setNotFound:y,setChatModelProvider:F,setIsConfigReady:p,setHasError:h,setIsReady:_},messagesRef:I,chatTurns:L,sections:R}}var Qe=(0,n.createContext)({chatHistory:[],chatId:``,fileIds:[],files:[],focusMode:``,category:``,hasError:!1,isMessagesLoaded:!1,isReady:!1,loading:!1,messageAppeared:!1,messages:[],chatTurns:[],sections:[],notFound:!1,optimizationMode:``,chatModelProvider:{key:``,providerId:``},rewrite:()=>{},sendMessage:async()=>{},setFileIds:()=>{},setFiles:()=>{},deleteAttachedFile:async()=>{},setFocusMode:()=>{},setCategory:()=>{},setOptimizationMode:()=>{},setChatModelProvider:()=>{},stopStreaming:()=>{},newChat:()=>{},startNewChat:()=>{},switchToChat:()=>{},incognito:!1,setIncognito:()=>{}});function G(){return(0,n.useContext)(Qe)}var $e=async(e,t)=>{let n=localStorage.getItem(`chatModelKey`),r=localStorage.getItem(`chatModelProviderId`),i=t.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({role:e.role,content:e.content??``}));if(i.length===0)return``;try{let t=await(0,p.default)(`agent/chat-title`,{method:`POST`,body:JSON.stringify({chatId:e,chatHistory:i,chatModel:{providerId:r,key:n}})});return typeof t.title==`string`?t.title:``}catch{return``}},et=(0,n.createContext)({user:null,isLoading:!0,isAuthenticated:!1,signIn:()=>{},signOut:async()=>{}});function tt({children:e,authClient:t,enableGoogleOneTap:r=!0}){let[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{(async()=>{try{let{data:e}=await t.getSession();a(e?.user??null)}catch(e){console.error(`Failed to fetch session:`,e),a(null)}finally{s(!1)}})()},[]),(0,n.useEffect)(()=>{o||i||!r||t.oneTap({fetchOptions:{onSuccess:async()=>{let{data:e}=await t.getSession();a(e?.user??null)}}})},[o,i,r]),(0,d.jsx)(et.Provider,{value:{user:i,isLoading:o,isAuthenticated:!!i,signIn:()=>{t.signIn.social({provider:`google`,callbackURL:`/`})},signOut:async()=>{try{await t.signOut({fetchOptions:{onSuccess:()=>{a(null),window.location.href=`/`}}})}catch(e){console.error(`Sign out failed:`,e)}}},children:e})}function nt(){let e=(0,n.useContext)(et);if(!e)throw Error(`useSession must be used within SessionProvider`);return e}function rt({children:e}){let t=(0,r.useParams)(),i=(0,r.useSearchParams)(),a=(0,r.useRouter)(),o=i.get(`q`),{isAuthenticated:s,isLoading:l}=nt(),{state:u,setters:f,messagesRef:p,chatTurns:h,sections:g}=Ze(t.chatId),_=(0,n.useRef)(null),[v,y]=(0,n.useState)(!1),b=(0,n.useRef)({}),x=(0,n.useRef)(new Set);(0,n.useEffect)(()=>{Ne(f.setChatModelProvider,f.setIsConfigReady,f.setHasError)},[]),(0,n.useEffect)(()=>{t.chatId&&t.chatId!==u.chatId&&(f.setChatId(t.chatId),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setIsMessagesLoaded(!1),f.setNotFound(!1),f.setNewChatCreated(!1))},[t.chatId,u.chatId]),(0,n.useEffect)(()=>{if(u.chatId&&!u.newChatCreated&&!u.isMessagesLoaded&&u.messages.length===0){if(l)return;He(u.chatId,s,f.setMessages,f.setIsMessagesLoaded,f.setChatHistory,f.setFocusMode,f.setNotFound,f.setFiles,f.setFileIds)}else u.chatId||(f.setNewChatCreated(!0),f.setIsMessagesLoaded(!0),f.setChatId(crypto.randomUUID()))},[u.chatId,u.isMessagesLoaded,u.newChatCreated,u.messages.length,s,l]),(0,n.useEffect)(()=>{if(!v&&!s&&u.chatId&&u.messages.length>0){let e=u.messages.filter(e=>e.role===`user`||e.role===`assistant`);if(e.length>0){let t=b.current[u.chatId]??e[0].content.slice(0,50);Re({id:u.chatId,title:t,createdAt:new Date().toISOString(),focusMode:u.focusMode,files:u.files,messages:u.messages})}}},[u.messages,u.chatId,s,u.focusMode,u.files]),(0,n.useEffect)(()=>{if(v||!u.chatId||!u.isMessagesLoaded||!u.newChatCreated||u.loading||h.filter(e=>e.role===`user`).length<2)return;let e=u.chatId;x.current.has(e)||(x.current.add(e),(async()=>{let t=await $e(e,u.messages);if(!t){x.current.delete(e);return}b.current[e]=t,s||Ve(e,t)})())},[h,u.messages,u.chatId,u.loading,u.isMessagesLoaded,u.newChatCreated,v,s]),(0,n.useEffect)(()=>{p.current=u.messages},[u.messages]),(0,n.useEffect)(()=>{u.isMessagesLoaded&&u.isConfigReady?(f.setIsReady(!0),console.debug(new Date,`app:ready`)):f.setIsReady(!1)},[u.isMessagesLoaded,u.isConfigReady]),(0,n.useEffect)(()=>{u.isReady&&o&&u.isConfigReady&&S(o)},[u.isConfigReady,u.isReady,o]);let S=(0,n.useCallback)(async(e,t,n=!1)=>{u.chatId&&await Xe({message:e,messageId:t,rewrite:n},{chatId:u.chatId,loading:u.loading,messages:u.messages,fileIds:u.fileIds,files:u.files,focusMode:u.focusMode,category:u.category,optimizationMode:u.optimizationMode,chatHistory:u.chatHistory,chatModelProvider:u.chatModelProvider,isAuthenticated:s,messagesRef:p,abortControllerRef:_,setLoading:f.setLoading,setMessageAppeared:f.setMessageAppeared,setMessages:f.setMessages,setChatHistory:f.setChatHistory,setChatModelProvider:f.setChatModelProvider})},[u.chatId,u.loading,u.messages,u.fileIds,u.files,u.focusMode,u.category,u.optimizationMode,u.chatHistory,u.chatModelProvider,s,p]),C=(0,n.useCallback)(e=>{let t=u.messages.findIndex(t=>t.messageId===e),n=h.findIndex(t=>t.messageId===e);if(t===-1)return;let r=h[n-1];f.setMessages(e=>[...e.slice(0,u.messages.length>2?u.messages.indexOf(r):0)]),f.setChatHistory(e=>[...e.slice(0,h.length>2?n-1:0)]),S(r.content,r.messageId,!0)},[u.messages,h,S]),w=(0,n.useCallback)(async e=>{f.setFiles(u.files.filter(t=>t.fileId!==e)),f.setFileIds(u.fileIds.filter(t=>t!==e)),f.setMessages(t=>t.map(t=>{if(t.role!==`user`)return t;let n=t;return n.files?.some(t=>t.fileId===e)?{...n,files:n.files.filter(t=>t.fileId!==e)}:t}));try{let{error:t}=await(0,c.deleteUploadedFile)({query:{fileId:e}});if(t)throw Error(t.message??`Delete failed`)}catch(e){console.error(`[ChatProvider] Failed to delete uploaded file:`,e),m.toast.error(`Removed from the chat, but the file could not be deleted from storage.`)}},[u.files,u.fileIds]),T=(0,n.useCallback)(()=>{_.current&&=(_.current.abort(),null)},[]),E=(0,n.useCallback)(()=>{T(),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setChatId(void 0),f.setNewChatCreated(!1),f.setIsMessagesLoaded(!1),f.setNotFound(!1),a.push(`/`)},[T,a]),D=(0,n.useCallback)(e=>{T(),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setNotFound(!1),f.setNewChatCreated(!0),f.setIsMessagesLoaded(!0),f.setChatId(e)},[T]),O=(0,n.useCallback)(e=>{e!==u.chatId&&(T(),f.setMessages([]),f.setChatHistory([]),f.setFiles([]),f.setFileIds([]),f.setIsMessagesLoaded(!1),f.setNotFound(!1),f.setNewChatCreated(!1),f.setChatId(e))},[T,u.chatId]),k={messages:u.messages,chatTurns:h,sections:g,chatHistory:u.chatHistory,files:u.files,fileIds:u.fileIds,focusMode:u.focusMode,category:u.category,chatId:u.chatId,hasError:u.hasError,isMessagesLoaded:u.isMessagesLoaded,isReady:u.isReady,loading:u.loading,messageAppeared:u.messageAppeared,notFound:u.notFound,optimizationMode:u.optimizationMode,chatModelProvider:u.chatModelProvider,incognito:v,setFileIds:f.setFileIds,setFiles:f.setFiles,deleteAttachedFile:w,setFocusMode:f.setFocusMode,setCategory:f.setCategory,setOptimizationMode:f.setOptimizationMode,rewrite:C,sendMessage:S,setChatModelProvider:f.setChatModelProvider,stopStreaming:T,newChat:E,startNewChat:D,switchToChat:O,setIncognito:y};return(0,d.jsx)(Qe.Provider,{value:k,children:e})}function it({delayDuration:e=0,...t}){return(0,d.jsx)(h.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function K({...e}){return(0,d.jsx)(it,{children:(0,d.jsx)(h.Root,{"data-slot":`tooltip`,...e})})}function q({...e}){return(0,d.jsx)(h.Trigger,{"data-slot":`tooltip-trigger`,...e})}function J({className:e,sideOffset:t=0,children:n,...r}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":`tooltip-content`,sideOffset:t,className:F(`bg-popover text-popover-foreground border border-border shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-2xl px-3 py-1.5 text-xs text-balance`,e),...r,children:[n,(0,d.jsx)(h.Arrow,{className:`bg-popover fill-popover z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]`})]})})}var at=({href:e,children:t,sources:r})=>{let{openPanel:i}=ee(),a=(0,n.useMemo)(()=>!r||!e?null:r.find(t=>t.metadata?.url===e)??null,[r,e]),o=(0,n.useMemo)(()=>{try{return new URL(e).hostname.replace(`www.`,``)}catch{return a?.metadata?.source||``}},[e,a]),s=a?.metadata?.title||``,c=`https://s2.googleusercontent.com/s2/favicons?domain_url=${e}`;return(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`a`,{href:e,onClick:t=>{t.preventDefault(),i(e,``)},className:`bg-light-secondary dark:bg-dark-secondary px-1 rounded ml-1 no-underline text-xs text-black/70 dark:text-white/70 relative cursor-pointer hover:bg-black/10 dark:hover:bg-white/20 transition-colors`,children:t})}),(0,d.jsx)(J,{side:`top`,className:`max-w-72 p-2.5`,children:(0,d.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,d.jsx)(`img`,{src:c,alt:``,width:16,height:16,className:`rounded flex-shrink-0 mt-0.5`}),(0,d.jsxs)(`div`,{className:`min-w-0`,children:[(0,d.jsx)(`p`,{className:`text-xs font-medium leading-snug line-clamp-2`,children:s||o}),s&&(0,d.jsx)(`p`,{className:`text-[10px] opacity-70 truncate mt-0.5`,children:o})]})]})})]})},ot=({content:e,thinkingEnded:t})=>{let[r,i]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{i(!t)},[t]),(0,d.jsxs)(`div`,{className:`my-4 bg-secondary/50 rounded-xl border border-border overflow-hidden`,children:[(0,d.jsxs)(`button`,{onClick:()=>i(!r),className:`w-full flex items-center justify-between px-4 py-1 text-foreground/90 hover:bg-secondary transition duration-200`,children:[(0,d.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,d.jsx)(s.BrainCircuit,{size:20,className:`text-accent-foreground`}),(0,d.jsx)(`p`,{className:`font-medium text-sm`,children:`Thinking Process`})]}),r?(0,d.jsx)(s.ChevronUp,{size:18,className:`text-muted-foreground`}):(0,d.jsx)(s.ChevronDown,{size:18,className:`text-muted-foreground`})]}),r&&(0,d.jsx)(`div`,{className:`px-4 py-3 text-foreground/80 text-sm border-t border-border bg-muted/50 whitespace-pre-wrap`,children:e})]})},st=({children:e,thinkingEnded:t})=>(0,d.jsx)(ot,{content:e,thinkingEnded:t}),ct=[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`bmp`,`avif`],lt=e=>{let t=(e||``).toLowerCase();return ct.includes(t)?(0,d.jsx)(s.Image,{size:15}):t===`url`?(0,d.jsx)(s.Link2,{size:15}):(0,d.jsx)(s.FileText,{size:15})},ut=({file:e})=>{let{deleteAttachedFile:t}=G(),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`group inline-flex max-w-full items-center gap-2 rounded-lg border border-border bg-secondary/40 py-1.5 pl-2.5 pr-1.5 text-sm`,children:[(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:lt(e.fileExtension)}),(0,d.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground`,title:e.fileName,children:e.fileName}),e.fileExtension&&e.fileExtension!==`url`&&(0,d.jsx)(`span`,{className:`hidden shrink-0 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground sm:inline`,children:e.fileExtension}),(0,d.jsx)(`button`,{type:`button`,"aria-label":`Delete ${e.fileName}`,onClick:()=>i(!0),className:`shrink-0 rounded-md p-1 text-muted-foreground transition-colors hover:bg-red-500/10 hover:text-red-500`,children:(0,d.jsx)(s.Trash2,{size:14})})]}),(0,d.jsx)(U,{open:r,onOpenChange:e=>{a||i(e)},children:(0,d.jsxs)(ue,{className:`w-full max-w-md rounded-2xl`,children:[(0,d.jsx)(de,{className:`text-lg font-medium leading-6`,children:`Delete file`}),(0,d.jsxs)(fe,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,d.jsx)(`span`,{className:`font-medium text-foreground`,children:e.fileName}),`? This removes it from the conversation and permanently deletes the upload.`]}),(0,d.jsxs)(`div`,{className:`mt-6 flex flex-row items-center justify-end gap-4`,children:[(0,d.jsx)(`button`,{type:`button`,onClick:()=>!a&&i(!1),className:`text-sm text-muted-foreground transition-colors hover:text-foreground`,children:`Cancel`}),(0,d.jsxs)(`button`,{type:`button`,onClick:async()=>{o(!0);try{await t(e.fileId),i(!1)}finally{o(!1)}},disabled:a,className:`inline-flex items-center gap-1.5 text-sm text-red-500 transition-colors hover:text-red-600 disabled:opacity-60`,children:[a&&(0,d.jsx)(s.Loader2,{size:14,className:`animate-spin`}),`Delete`]})]})]})})]})},dt=({files:e})=>!e||e.length===0?null:(0,d.jsx)(`div`,{className:`ml-10 mt-2 flex flex-wrap gap-2`,children:e.map(e=>(0,d.jsx)(ut,{file:e},e.fileId))}),ft=({section:e,isExpanded:t,setIsExpanded:r,isEditing:i,setIsEditing:a,editText:o,setEditText:c,handleEditSubmit:l,copiedUserMsg:u,handleCopyUserMsg:f})=>{let p=(0,n.useRef)(null);return(0,d.jsxs)(`div`,{className:`w-full pt-8 break-words`,children:[(0,d.jsxs)(`button`,{onClick:()=>r(!t),className:`flex items-center gap-3 group text-left w-full`,children:[(0,d.jsx)(`div`,{className:`flex-shrink-0 p-1.5 rounded-lg bg-secondary/50 group-hover:bg-secondary transition-colors duration-200`,children:t?(0,d.jsx)(s.ChevronDown,{size:18,className:`text-muted-foreground group-hover:text-foreground transition-colors`}):(0,d.jsx)(s.ChevronRight,{size:18,className:`text-muted-foreground group-hover:text-foreground transition-colors`})}),(0,d.jsx)(`h2`,{className:`text-foreground font-medium text-lg lg:text-3xl lg:w-9/12 group-hover:text-foreground/80 transition-colors line-clamp-3 lg:line-clamp-none`,children:e.userMessage.content})]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-0.5 mt-1 ml-10`,children:[(()=>{let t=I(e.userMessage.createdAt);return t?(0,d.jsx)(`time`,{dateTime:new Date(e.userMessage.createdAt).toISOString(),className:`mr-1.5 text-xs text-muted-foreground tabular-nums select-none`,children:t}):null})(),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:f,className:`p-1.5 text-muted-foreground rounded-lg hover:bg-secondary transition-all duration-200 hover:text-foreground`,children:(0,d.jsx)(`span`,{className:F(`flex items-center transition-all duration-300`,u?`scale-110`:`scale-100`),children:u?(0,d.jsx)(s.Check,{size:14,className:`text-green-500`}):(0,d.jsx)(s.ClipboardList,{size:14})})})}),(0,d.jsx)(J,{side:`bottom`,children:u?`Copied!`:`Copy prompt`})]}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:()=>{c(e.userMessage.content),a(!0),setTimeout(()=>p.current?.focus(),50)},className:`p-1.5 text-muted-foreground rounded-lg hover:bg-secondary transition-all duration-200 hover:text-foreground`,children:(0,d.jsx)(s.Pencil,{size:14})})}),(0,d.jsx)(J,{side:`bottom`,children:`Edit & resubmit`})]})]}),(0,d.jsx)(dt,{files:e.userMessage.files}),i&&(0,d.jsxs)(`div`,{className:`mt-3 ml-10 flex flex-col gap-2`,children:[(0,d.jsx)(`textarea`,{ref:p,value:o,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),l()),e.key===`Escape`&&a(!1)},rows:3,className:`w-full rounded-xl border border-border bg-background p-3 text-sm resize-none focus:outline-none focus:ring-2 focus:ring-primary/30 transition-colors`}),(0,d.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,d.jsx)(`button`,{onClick:()=>a(!1),className:`px-3 py-1.5 text-sm text-muted-foreground rounded-lg hover:bg-secondary transition-colors duration-200`,children:`Cancel`}),(0,d.jsx)(`button`,{onClick:l,disabled:!o.trim(),className:`px-3 py-1.5 text-sm bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200`,children:`Resubmit`})]})]})]})};function pt({...e}){return(0,d.jsx)(g.Root,{"data-slot":`dropdown-menu`,...e})}function mt({...e}){return(0,d.jsx)(g.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function ht({className:e,sideOffset:t=4,...n}){return(0,d.jsx)(g.Portal,{children:(0,d.jsx)(g.Content,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:F(`bg-card text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-2xl border p-1 shadow-md`,e),...n})})}function Y({className:e,inset:t,variant:n=`default`,...r}){return(0,d.jsx)(g.Item,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:F(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-2xl px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r})}function gt({className:e,children:t,checked:n,...r}){return(0,d.jsxs)(g.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:F(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-2xl py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:n,...r,children:[(0,d.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,d.jsx)(g.ItemIndicator,{children:(0,d.jsx)(s.CheckIcon,{className:`size-4`})})}),t]})}function _t({className:e,inset:t,...n}){return(0,d.jsx)(g.Label,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:F(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...n})}function X({className:e,...t}){return(0,d.jsx)(g.Separator,{"data-slot":`dropdown-menu-separator`,className:F(`bg-border -mx-1 my-1 h-px`,e),...t})}function vt({...e}){return(0,d.jsx)(g.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function yt({className:e,inset:t,children:n,...r}){return(0,d.jsxs)(g.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":t,className:F(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-2xl px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8`,e),...r,children:[n,(0,d.jsx)(s.ChevronRightIcon,{className:`ml-auto size-4`})]})}function bt({className:e,...t}){return(0,d.jsx)(g.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:F(`bg-card text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-2xl border p-1 shadow-lg`,e),...t})}var xt=({section:e,initialMessage:t})=>{let[r,i]=(0,n.useState)(!1);return(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:()=>{let n=`${t}${e?.sourceMessage?.sources&&e.sourceMessage.sources.length>0&&`\n\nCitations:\n${e.sourceMessage.sources?.map((e,t)=>`[${t+1}] ${e.metadata.url}`).join(`
|
|
17
17
|
`)}`}`;navigator.clipboard.writeText(n),i(!0),setTimeout(()=>i(!1),1e3)},className:`p-2 text-muted-foreground rounded-full backdrop-blur-md bg-white/10 dark:bg-black/10 hover:bg-white/20 dark:hover:bg-black/20 transition duration-200 hover:text-foreground`,children:r?(0,d.jsx)(s.Check,{size:18}):(0,d.jsx)(s.ClipboardList,{size:18})})}),(0,d.jsx)(J,{side:`bottom`,children:r?`Copied!`:`Copy`})]})};function St({...e}){return(0,d.jsx)(_.Root,{"data-slot":`popover`,...e})}function Ct({...e}){return(0,d.jsx)(_.Trigger,{"data-slot":`popover-trigger`,...e})}function wt({className:e,align:t=`center`,sideOffset:n=4,container:r,...i}){return(0,d.jsx)(_.Portal,{container:r,children:(0,d.jsx)(_.Content,{"data-slot":`popover-content`,align:t,sideOffset:n,className:F(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-2xl border p-4 shadow-md outline-hidden`,e),...i})})}var Z={Plus:s.Plus,Paperclip:s.Paperclip,Cloud:s.Cloud,Upload:s.Upload,File:s.File,SquarePen:s.SquarePen,Thinking:e=>(0,d.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,d.jsx)(`path`,{d:`M10.3857 2.50977C14.3486 2.71054 17.5 5.98724 17.5 10C17.5 14.1421 14.1421 17.5 10 17.5C5.85786 17.5 2.5 14.1421 2.5 10C2.5 9.72386 2.72386 9.5 3 9.5C3.27614 9.5 3.5 9.72386 3.5 10C3.5 13.5899 6.41015 16.5 10 16.5C13.5899 16.5 16.5 13.5899 16.5 10C16.5 6.5225 13.7691 3.68312 10.335 3.50879L10 3.5L9.89941 3.49023C9.67145 3.44371 9.5 3.24171 9.5 3C9.5 2.72386 9.72386 2.5 10 2.5L10.3857 2.50977ZM10 5.5C10.2761 5.5 10.5 5.72386 10.5 6V9.69043L13.2236 11.0527C13.4706 11.1762 13.5708 11.4766 13.4473 11.7236C13.3392 11.9397 13.0957 12.0435 12.8711 11.9834L12.7764 11.9473L9.77637 10.4473C9.60698 10.3626 9.5 10.1894 9.5 10V6C9.5 5.72386 9.72386 5.5 10 5.5ZM3.66211 6.94141C4.0273 6.94159 4.32303 7.23735 4.32324 7.60254C4.32324 7.96791 4.02743 8.26446 3.66211 8.26465C3.29663 8.26465 3 7.96802 3 7.60254C3.00021 7.23723 3.29676 6.94141 3.66211 6.94141ZM4.95605 4.29395C5.32146 4.29404 5.61719 4.59063 5.61719 4.95605C5.6171 5.3214 5.3214 5.61709 4.95605 5.61719C4.59063 5.61719 4.29403 5.32146 4.29395 4.95605C4.29395 4.59057 4.59057 4.29395 4.95605 4.29395ZM7.60254 3C7.96802 3 8.26465 3.29663 8.26465 3.66211C8.26446 4.02743 7.96791 4.32324 7.60254 4.32324C7.23736 4.32302 6.94159 4.0273 6.94141 3.66211C6.94141 3.29676 7.23724 3.00022 7.60254 3Z`})}),SelectArrow:s.ChevronDown,ArrowUp:s.ArrowUp,X:s.X,FileText:s.FileText,Loader2:s.Loader2,Check:s.Check,Archive:s.Archive,Mic:s.Mic,Stop:s.Square,Clock:e=>(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`currentColor`,...e,children:(0,d.jsx)(`path`,{d:`M10.3857 2.50977C14.3486 2.71054 17.5 5.98724 17.5 10C17.5 14.1421 14.1421 17.5 10 17.5C5.85786 17.5 2.5 14.1421 2.5 10C2.5 9.72386 2.72386 9.5 3 9.5C3.27614 9.5 3.5 9.72386 3.5 10C3.5 13.5899 6.41015 16.5 10 16.5C13.5899 16.5 16.5 13.5899 16.5 10C16.5 6.5225 13.7691 3.68312 10.335 3.50879L10 3.5L9.89941 3.49023C9.67145 3.44371 9.5 3.24171 9.5 3C9.5 2.72386 9.72386 2.5 10 2.5L10.3857 2.50977ZM10 5.5C10.2761 5.5 10.5 5.72386 10.5 6V9.69043L13.2236 11.0527C13.4706 11.1762 13.5708 11.4766 13.4473 11.7236C13.3392 11.9397 13.0957 12.0435 12.8711 11.9834L12.7764 11.9473L9.77637 10.4473C9.60698 10.3626 9.5 10.1894 9.5 10V6C9.5 5.72386 9.72386 5.5 10 5.5ZM3.66211 6.94141C4.0273 6.94159 4.32303 7.23735 4.32324 7.60254C4.32324 7.96791 4.02743 8.26446 3.66211 8.26465C3.29663 8.26465 3 7.96802 3 7.60254C3.00021 7.23723 3.29676 6.94141 3.66211 6.94141ZM4.95605 4.29395C5.32146 4.29404 5.61719 4.59063 5.61719 4.95605C5.6171 5.3214 5.3214 5.61709 4.95605 5.61719C4.59063 5.61719 4.29403 5.32146 4.29395 4.95605C4.29395 4.59057 4.59057 4.29395 4.95605 4.29395ZM7.60254 3C7.96802 3 8.26465 3.29663 8.26465 3.66211C8.26446 4.02743 7.96791 4.32324 7.60254 4.32324C7.23736 4.32302 6.94159 4.0273 6.94141 3.66211C6.94141 3.29676 7.23724 3.00022 7.60254 3Z`})})},Tt=({messageId:e})=>{let{rewrite:t,chatModelProvider:r,setChatModelProvider:i}=G(),[a,o]=(0,n.useState)([]),[l,u]=(0,n.useState)(!0),[f,p]=(0,n.useState)(``),[m,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{m&&(async()=>{try{u(!0);let{data:e}=await(0,c.listProviders)();o(e?.providers??[])}catch(e){console.error(`Error loading providers:`,e)}finally{u(!1)}})()},[m]);let g=(0,n.useMemo)(()=>{if(!r?.providerId)return a;let e=a.findIndex(e=>e.id===r.providerId);return e===-1?a:[a[e],...a.filter((t,n)=>n!==e)]},[a,r]).map(e=>({...e,chatModels:(e.chatModels??[]).filter(t=>t.name.toLowerCase().includes(f.toLowerCase())||e.name.toLowerCase().includes(f.toLowerCase()))})).filter(e=>e.chatModels.length>0),_=(0,n.useMemo)(()=>{if(!r.key)return`Rewrite`;for(let e of a){let t=e.chatModels.find(e=>e.key===r.key);if(t)return t.name}return r.key},[a,r.key]),v=(n,r)=>{i({providerId:n,key:r}),localStorage.setItem(`chatModelProviderId`,n),localStorage.setItem(`chatModelKey`,r),h(!1),t(e)};return(0,d.jsxs)(St,{open:m,onOpenChange:h,children:[(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(Ct,{asChild:!0,children:(0,d.jsx)(`button`,{className:`p-2 text-muted-foreground rounded-full backdrop-blur-md bg-white/10 dark:bg-black/10 hover:bg-white/20 dark:hover:bg-black/20 transition duration-200 hover:text-foreground`,children:(0,d.jsx)(s.ArrowLeftRight,{size:18})})})}),(0,d.jsxs)(J,{side:`bottom`,children:[`Rewrite with `,_]})]}),(0,d.jsx)(wt,{className:`w-[280px] p-0`,align:`start`,side:`top`,sideOffset:8,children:(0,d.jsxs)(`div`,{className:`bg-white dark:bg-[#212121] max-h-[400px] border rounded-2xl border-[#DDDDDD] dark:border-[#30302E] w-full flex flex-col shadow-2xl overflow-hidden`,children:[(0,d.jsx)(`div`,{className:`p-3 border-b border-[#EEEEEE] dark:border-[#30302E]`,children:(0,d.jsxs)(`div`,{className:`relative`,children:[(0,d.jsx)(s.Search,{size:14,className:`absolute left-3 top-1/2 -translate-y-1/2 text-text-400 dark:text-[#999999]`}),(0,d.jsx)(`input`,{type:`text`,placeholder:`Search models...`,value:f,onChange:e=>p(e.target.value),className:`w-full pl-9 pr-3 py-2 text-[13px] bg-bg-100 dark:bg-[#30302E] border border-bg-300 dark:border-[#404040] rounded-lg text-text-100 dark:text-[#ECECEC] placeholder:text-text-400 dark:placeholder:text-[#999999] focus:outline-none focus:ring-2 focus:ring-sky-500/20 focus:border-sky-500/30 transition-all`})]})}),(0,d.jsx)(`div`,{className:`max-h-[320px] overflow-y-auto`,children:l?(0,d.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,d.jsx)(Z.Loader2,{className:`animate-spin text-text-400 dark:text-[#999999]`,size:20})}):g.length===0?(0,d.jsx)(`div`,{className:`text-center py-12 px-4 text-text-400 dark:text-[#999999] text-sm`,children:f?`No models found`:`No chat models configured`}):(0,d.jsx)(`div`,{className:`flex flex-col`,children:g.map((e,t)=>(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`px-4 py-2 sticky top-0 bg-white dark:bg-[#212121] border-b border-[#EEEEEE]/50 dark:border-[#30302E]/50`,children:(0,d.jsx)(`p`,{className:`text-[11px] text-text-400 dark:text-[#999999] uppercase tracking-wider font-medium`,children:e.name})}),(0,d.jsx)(`div`,{className:`flex flex-col px-1.5 py-1.5 space-y-0.5`,children:e.chatModels.map(t=>(0,d.jsxs)(`button`,{onClick:()=>v(e.id,t.key),type:`button`,className:F(`px-3 py-2 flex items-center justify-between text-start duration-200 cursor-pointer transition rounded-xl group`,r?.providerId===e.id&&r?.key===t.key?`bg-sky-50 dark:bg-sky-500/10`:`hover:bg-bg-100 dark:hover:bg-[#30302E]`),children:[(0,d.jsxs)(`div`,{className:`flex items-center space-x-2.5 min-w-0 flex-1`,children:[(0,d.jsx)(s.Cpu,{size:14,className:F(`shrink-0`,r?.providerId===e.id&&r?.key===t.key?`text-sky-500`:`text-text-400 dark:text-[#999999] group-hover:text-text-300 dark:group-hover:text-[#B4B4B4]`)}),(0,d.jsx)(`p`,{className:F(`text-[13px] truncate`,r?.providerId===e.id&&r?.key===t.key?`text-sky-600 dark:text-sky-400 font-medium`:`text-text-200 dark:text-[#ECECEC] group-hover:text-text-100 dark:group-hover:text-white`),children:t.name})]}),r?.providerId===e.id&&r?.key===t.key&&(0,d.jsx)(Z.Check,{className:`w-4 h-4 text-sky-500 shrink-0`})]},t.key))}),t<g.length-1&&(0,d.jsx)(`div`,{className:`h-px bg-[#EEEEEE] dark:bg-[#30302E] mx-2`})]},e.id))})})]})})]})},Et=new Map;function Dt(e){if(typeof window>`u`)return Promise.reject(Error(`CDN scripts require a browser environment`));let t=Et.get(e);if(t)return t;let n=new Promise((t,n)=>{let r=document.querySelector(`script[data-cdn-loader="${e}"]`);if(r){r.dataset.loaded===`true`?t():(r.addEventListener(`load`,()=>t(),{once:!0}),r.addEventListener(`error`,()=>n(Error(`Failed to load ${e}`)),{once:!0}));return}let i=document.createElement(`script`);i.src=e,i.async=!0,i.dataset.cdnLoader=e,i.onload=()=>{i.dataset.loaded=`true`,t()},i.onerror=()=>{Et.delete(e),n(Error(`Failed to load ${e}`))},document.head.appendChild(i)});return Et.set(e,n),n}var Ot=`https://cdn.jsdelivr.net/npm/jspdf@2.5.2/dist/jspdf.umd.min.js`,kt=`https://cdn.jsdelivr.net/npm/docx@9.5.1/build/index.umd.min.js`;async function At(){await Dt(Ot);let e=window.jspdf?.jsPDF;if(!e)throw Error(`jsPDF global not found after CDN load`);return e}async function jt(){await Dt(kt);let e=window.docx;if(!e)throw Error(`docx global not found after CDN load`);return e}async function Mt(e,t){It(`# ${e}\n\n${new y.default({headingStyle:`atx`,codeBlockStyle:`fenced`}).turndown(t)}`,`${e}.md`,`text/markdown`)}async function Nt(e,t){let{Document:n,Paragraph:r,TextRun:i,HeadingLevel:a,Packer:o}=await jt(),s=new DOMParser().parseFromString(t,`text/html`),c=[];c.push(new r({text:e,heading:a.HEADING_1,spacing:{after:200}}));let l=e=>{if(e.nodeType===Node.TEXT_NODE){let t=e.textContent?.trim();t&&c.push(new r({children:[new i(t)]}))}else if(e.nodeType===Node.ELEMENT_NODE){let t=e,n=t.tagName.toLowerCase();switch(n){case`h1`:c.push(new r({text:t.textContent||``,heading:a.HEADING_1}));break;case`h2`:c.push(new r({text:t.textContent||``,heading:a.HEADING_2}));break;case`h3`:c.push(new r({text:t.textContent||``,heading:a.HEADING_3}));break;case`p`:let e=[];t.childNodes.forEach(t=>{if(t.nodeType===Node.TEXT_NODE)e.push(new i(t.textContent||``));else if(t.nodeType===Node.ELEMENT_NODE){let n=t,r={text:n.textContent||``};(n.tagName===`STRONG`||n.tagName===`B`)&&(r.bold=!0),(n.tagName===`EM`||n.tagName===`I`)&&(r.italics=!0),n.tagName===`U`&&(r.underline={}),n.tagName===`CODE`&&(r.font=`Courier New`),e.push(new i(r))}}),e.length>0?c.push(new r({children:e})):c.push(new r({text:t.textContent||``}));break;case`ul`:case`ol`:t.querySelectorAll(`li`).forEach(e=>{c.push(new r({text:e.textContent||``,bullet:n===`ul`?{level:0}:void 0,numbering:n===`ol`?{reference:`default`,level:0}:void 0}))});break;case`blockquote`:c.push(new r({children:[new i({text:t.textContent||``,italics:!0})],indent:{left:720}}));break;default:t.childNodes.forEach(l)}}};s.body.childNodes.forEach(l);let u=new n({sections:[{properties:{},children:c}]}),d=await o.toBlob(u),f=URL.createObjectURL(d),p=document.createElement(`a`);p.href=f,p.download=`${e}.docx`,p.click(),URL.revokeObjectURL(f)}async function Pt(e,t){let n=document.createElement(`div`);n.style.position=`absolute`,n.style.left=`-9999px`,n.style.width=`210mm`,n.style.padding=`20mm`,n.style.backgroundColor=`white`,n.style.fontFamily=`Arial, sans-serif`,n.style.fontSize=`12pt`,n.style.lineHeight=`1.6`,n.innerHTML=`
|
|
18
18
|
<h1 style="font-size: 24pt; margin-bottom: 20px;">${e}</h1>
|
|
19
19
|
${t}
|
|
@@ -48,4 +48,4 @@ OPENAI_API_KEY=sk-your_key_here
|
|
|
48
48
|
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
49
49
|
|
|
50
50
|
# Or Anthropic
|
|
51
|
-
ANTHROPIC_API_KEY=sk-ant-your_key_here`})]}),(0,d.jsxs)(`div`,{className:`bg-black/5 dark:bg-white/5 rounded p-4`,children:[(0,d.jsx)(`p`,{className:`font-medium text-black dark:text-white mb-2`,children:`3. Restart the server`}),(0,d.jsx)(`code`,{className:`block bg-black/10 dark:bg-white/10 rounded p-2 text-xs`,children:`Ctrl+C, then: npm run dev`})]})]}),(0,d.jsxs)(`div`,{className:`pt-4 border-t border-black/10 dark:border-white/10`,children:[(0,d.jsx)(`h3`,{className:`font-medium text-black dark:text-white mb-2`,children:`Get API Keys:`}),(0,d.jsxs)(`ul`,{className:`space-y-2 text-sm text-black/70 dark:text-white/70`,children:[(0,d.jsxs)(`li`,{children:[(0,d.jsx)(`strong`,{children:`Groq`}),` (FREE): `,(0,d.jsx)(`a`,{href:`https://console.groq.com/keys`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:`console.groq.com/keys`})]}),(0,d.jsxs)(`li`,{children:[(0,d.jsx)(`strong`,{children:`OpenAI`}),`: `,(0,d.jsx)(`a`,{href:`https://platform.openai.com/api-keys`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:`platform.openai.com/api-keys`})]}),(0,d.jsxs)(`li`,{children:[(0,d.jsx)(`strong`,{children:`Anthropic`}),`: `,(0,d.jsx)(`a`,{href:`https://console.anthropic.com/settings/keys`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:`console.anthropic.com`})]})]})]})]}),(0,d.jsxs)(`div`,{className:`text-xs text-black/50 dark:text-white/50 pt-4 border-t border-black/10 dark:border-white/10`,children:[`See `,(0,d.jsx)(`code`,{children:`SETUP_INSTRUCTIONS.md`}),` in the project root for full details.`]})]})})}var Gr=()=>{let e=(0,r.useRouter)(),{hasError:t,isReady:i,notFound:a,messages:o}=G(),{isAuthenticated:s}=nt();return(0,n.useEffect)(()=>{i&&a&&!s&&e.replace(`/`)},[i,a,s,e]),t?(0,d.jsx)(Wr,{}):i&&a&&!s?(0,d.jsx)(`div`,{className:`flex flex-row items-center justify-center min-h-screen`,children:(0,d.jsx)(Ur,{})}):i?a?(0,d.jsxs)(`div`,{className:`flex min-h-screen flex-col items-center justify-center gap-3 px-4 text-center`,children:[(0,d.jsx)(`p`,{className:`text-sm text-black/70 dark:text-white/70`,children:`This chat could not be found.`}),(0,d.jsx)(`button`,{type:`button`,onClick:()=>e.push(`/`),className:`rounded-md border border-black/15 px-3 py-1.5 text-sm hover:bg-black/5 dark:border-white/20 dark:hover:bg-white/10`,children:`Go Home`})]}):(0,d.jsx)(`div`,{children:o.length>0?(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(vr,{})}):(0,d.jsx)(Hr,{})}):(0,d.jsx)(`div`,{className:`flex flex-row items-center justify-center min-h-screen`,children:(0,d.jsx)(Ur,{})})};function Kr(e,t){let[r,i]=(0,n.useState)(`idle`),[a,o]=(0,n.useState)(!1),[s,c]=(0,n.useState)([]),[l,u]=(0,n.useState)(`af_heart`),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(null),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{t?.autoPreload&&!a&&g()},[t?.autoPreload,a]),(0,n.useEffect)(()=>{let e=localStorage.getItem(`kokoroVoice`);e&&u(e)},[]),(0,n.useEffect)(()=>()=>{p.current&&p.current.pause(),m.current?.abort()},[]);let h=(0,n.useCallback)(()=>{p.current&&=(p.current.pause(),p.current.src.startsWith(`blob:`)&&URL.revokeObjectURL(p.current.src),null),m.current?.abort(),m.current=null},[]),g=(0,n.useCallback)(async()=>{try{i(`loading`),f(null),await Oe();let e=await Ae();c(e),e.length&&!e.includes(l)&&u(e[0]),o(!0),i(`idle`)}catch(e){let t=e instanceof Error?e.message:`Failed to load model`;f(t),i(`error`),console.error(`Failed to load Kokoro model:`,e)}},[l]);return{status:r,modelReady:a,voices:s,selectedVoice:l,error:d,warmupModel:g,speak:(0,n.useCallback)(async()=>{if(e?.trim()){if(!a){f(`Model not loaded. Click "Preload Model" first.`);return}try{h(),i(`generating`),f(null);let t=new AbortController;m.current=t;let n=(await(await ke()).generate(e.slice(0,5e3),{voice:l})).toWav(),r=new Blob([n],{type:`audio/wav`}),a=URL.createObjectURL(r),o=new Audio(a);p.current=o,o.onended=()=>{i(`idle`),URL.revokeObjectURL(a),p.current=null},o.onerror=()=>{i(`error`),f(`Failed to play audio`),URL.revokeObjectURL(a),p.current=null},i(`playing`),await o.play()}catch(e){if(e?.name!==`AbortError`){let t=e instanceof Error?e.message:`Speech generation failed`;f(t),i(`error`),console.error(`Kokoro TTS error:`,e)}}}},[e,l,a,h]),stop:(0,n.useCallback)(()=>{h(),i(`idle`),f(null)},[h]),changeVoice:(0,n.useCallback)(e=>{u(e),localStorage.setItem(`kokoroVoice`,e)},[]),backend:je()}}var qr={af_heart:`American Female - Heart`,af_bella:`American Female - Bella`,af_nicole:`American Female - Nicole`,af_sarah:`American Female - Sarah`,am_adam:`American Male - Adam`,am_michael:`American Male - Michael`,am_tony:`American Male - Tony`,bf_emma:`British Female - Emma`,bm_george:`British Male - George`,bm_thomas:`British Male - Thomas`};function Jr({preloadOnMount:e=!1}){let{status:t,modelReady:r,voices:i,selectedVoice:a,error:o,warmupModel:c,changeVoice:l,backend:u}=Kr(``,{autoPreload:e}),[f,p]=(0,n.useState)(!1),m=t===`loading`,h=t===`error`;return(0,d.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:c,disabled:m||r,className:F(`p-2 rounded-full transition duration-200`,r?`bg-green-500/10 text-green-600 dark:text-green-400`:`bg-white/10 dark:bg-black/10 text-muted-foreground hover:bg-white/20 dark:hover:bg-black/20`,m&&`opacity-70 cursor-not-allowed`),children:m?(0,d.jsx)(s.Loader2,{size:18,className:`animate-spin`}):(0,d.jsx)(s.Download,{size:18})})}),(0,d.jsx)(J,{side:`bottom`,children:m?`Loading Kokoro model...`:r?`Model ready`:`Preload Kokoro.js model`})]}),r&&u&&(0,d.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[u,` • `,i.length,` voices`]}),h&&(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(s.AlertCircle,{size:18,className:`text-red-500`})}),(0,d.jsx)(J,{side:`bottom`,className:`max-w-xs`,children:o})]})]}),r&&(0,d.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,d.jsx)(`button`,{onClick:()=>p(!f),className:`w-full text-left px-3 py-2 rounded-md bg-white/5 dark:bg-black/5 hover:bg-white/10 dark:hover:bg-black/10 transition text-sm font-medium`,children:(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(s.Volume2,{size:16}),qr[a]||a]})}),f&&(0,d.jsx)(`div`,{className:`grid grid-cols-2 gap-2 p-2 bg-white/5 dark:bg-black/5 rounded-md max-h-64 overflow-y-auto`,children:i.map(e=>(0,d.jsx)(`button`,{onClick:()=>{l(e),p(!1)},className:F(`p-2 text-left text-sm rounded transition duration-200`,a===e?`bg-blue-500/20 text-blue-600 dark:text-blue-400 font-medium`:`bg-white/5 dark:bg-black/5 text-foreground hover:bg-white/10 dark:hover:bg-black/10`),children:qr[e]||e},e))})]})]})}function Yr(){let[e,t]=(0,n.useState)(!1),[r,i]=(0,n.useState)(()=>localStorage.getItem(`useTTSKokoro`)!==`false`),[a,o]=(0,n.useState)(()=>localStorage.getItem(`ttsSpeaker`)||`angus`),[c,l]=(0,n.useState)(()=>pn()),{start:u,speechStatus:f}=Me(`This is a preview of the selected voice.`,{enableInterrupt:!1}),p=e=>{i(e),localStorage.setItem(`useTTSKokoro`,String(e))},m=e=>{o(e),localStorage.setItem(`ttsSpeaker`,e)},h=e=>{l(e),mn(e)};return(0,d.jsxs)(`div`,{className:`space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(s.Settings2,{size:18}),(0,d.jsx)(`h3`,{className:`font-semibold`,children:`Voice Settings`})]}),(0,d.jsx)(`button`,{onClick:()=>t(!e),className:`text-xs px-3 py-1 rounded-md bg-white/10 dark:bg-black/10 hover:bg-white/20 dark:hover:bg-black/20 transition`,children:e?`Collapse`:`Expand`})]}),e&&(0,d.jsxs)(`div`,{className:`space-y-4 p-4 rounded-lg bg-white/5 dark:bg-black/5 border border-white/10 dark:border-black/10`,children:[(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:r,onChange:e=>p(e.target.checked),className:`rounded`}),(0,d.jsx)(`span`,{className:`font-medium text-sm`,children:`Use Kokoro.js (Local TTS)`}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,children:`ⓘ`})}),(0,d.jsx)(J,{side:`right`,className:`max-w-xs`,children:`Runs locally in your browser. No server requests, lower latency, and multiple voice options.`})]})]}),r&&(0,d.jsx)(Jr,{preloadOnMount:!1})]}),(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:!r,onChange:e=>p(!e.target.checked),className:`rounded`}),(0,d.jsx)(`span`,{className:`font-medium text-sm`,children:`Use Cloudflare TTS (Fallback)`}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,children:`ⓘ`})}),(0,d.jsx)(J,{side:`right`,className:`max-w-xs`,children:`Uses Cloudflare Workers AI. Slightly higher latency but can be a fallback.`})]})]}),!r&&(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsxs)(`select`,{value:a,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 rounded-md bg-white/10 dark:bg-black/10 border border-white/20 dark:border-black/20 text-sm`,children:[(0,d.jsx)(`option`,{value:`angus`,children:`Angus`}),(0,d.jsx)(`option`,{value:`flora`,children:`Flora`}),(0,d.jsx)(`option`,{value:`james`,children:`James`}),(0,d.jsx)(`option`,{value:`natalie`,children:`Natalie`})]}),(0,d.jsxs)(`button`,{onClick:()=>u(),disabled:f===`started`,className:F(`w-full flex items-center justify-center gap-2 px-3 py-2 rounded-md text-sm font-medium transition`,f===`started`?`bg-gray-500/20 text-gray-600 dark:text-gray-400 cursor-not-allowed`:`bg-blue-500/20 text-blue-600 dark:text-blue-400 hover:bg-blue-500/30`),children:[(0,d.jsx)(s.Volume2,{size:16}),f===`started`?`Playing...`:`Preview`]})]})]}),(0,d.jsx)(`div`,{className:`space-y-2 pt-2 border-t border-white/10 dark:border-black/10`,children:(0,d.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>h(e.target.checked),className:`rounded`}),(0,d.jsx)(`span`,{className:`font-medium text-sm`,children:`Start talking automatically on first visit`}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,children:`ⓘ`})}),(0,d.jsx)(J,{side:`right`,className:`max-w-xs`,children:`Opens the mic the first time you load the chat composer in this browser, so you can start talking right away instead of clicking the mic button.`})]})]})}),(0,d.jsx)(`div`,{className:`text-xs text-muted-foreground pt-2 border-t border-white/10 dark:border-black/10`,children:(0,d.jsxs)(`p`,{children:[(0,d.jsx)(`strong`,{children:`Tip:`}),` Kokoro.js loads once and runs locally. The first model load may take a few seconds, but subsequent TTS generation is very fast.`]})})]})]})}function Xr(e,t){if(!e.startsWith(`/`)||e.includes(`#`)||e.includes(`?`))return!1;let n=e.replace(/\/+$/,``)||`/`,r=t.replace(/\/+$/,``)||`/`;return n===`/`?r===`/`:r===n||r.startsWith(`${n}/`)}function Zr(e,t){return t?e.filter(e=>!Xr(e.url,t)):e}var Qr=(0,n.createContext)(null),$r=`qwksearch-main-view`;function ei({children:e,docsEnabled:t=!0}){let[r,i]=(0,n.useState)(`research`),[a,o]=(0,n.useState)(0),s=(0,n.useCallback)(e=>i(t?e:`research`),[t]);(0,n.useEffect)(()=>{if(typeof window>`u`||!t)return;let e=window.localStorage.getItem($r);(e===`research`||e===`docs`)&&i(e)},[t]),(0,n.useEffect)(()=>{typeof window<`u`&&t&&window.localStorage.setItem($r,r)},[r,t]);let c=(0,n.useMemo)(()=>({activeView:r,setActiveView:s,docsEnabled:t,toggleToDocs:()=>s(`docs`),toggleToResearch:()=>s(`research`),filesSidebarRequestId:a,requestFilesSidebar:()=>o(e=>e+1)}),[r,s,t,a]);return(0,d.jsx)(Qr.Provider,{value:c,children:e})}function ti(){let e=(0,n.useContext)(Qr);if(!e)throw Error(`useMainView must be used within a MainViewProvider`);return e}var ni=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3csvg%20height='800px'%20width='800px'%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20512%20512'%20xml:space='preserve'%3e%3cpath%20style='fill:%23FE5022;'%20d='M438.802,390.609V278.595h55.174c9.938,0,18.023,8.085,18.023,18.023v75.967%20c0,9.938-8.086,18.024-18.023,18.024L438.802,390.609L438.802,390.609z'/%3e%3cpath%20style='fill:%23ECE5DD;'%20d='M28.107,511.637C12.609,511.637,0,499.027,0,483.529V134.326c0-1.441,0-12.123,0-12.123%20L121.715,0.363c0,0,10.8,0,12.248,0h271.569c15.498,0,28.107,12.609,28.107,28.106v455.059c0,15.499-12.609,28.108-28.107,28.108%20H28.107V511.637z'/%3e%3cpath%20style='fill:%23D9CBBD;'%20d='M405.533,0.363h-31.991c15.498,0,28.107,12.609,28.107,28.107v455.059%20c0,15.499-12.609,28.108-28.107,28.108h31.991c15.498,0,28.107-12.609,28.107-28.108V28.469%20C433.64,12.972,421.031,0.363,405.533,0.363z'/%3e%3cg%3e%3cpath%20style='fill:%23BABABA;'%20d='M167.639,132.2h133.086c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318H167.639%20c-4.594,0-8.318,3.723-8.318,8.318C159.321,128.477,163.045,132.2,167.639,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M356.178,132.2h22.181c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318h-22.181%20c-4.594,0-8.318,3.723-8.318,8.318C347.86,128.477,351.584,132.2,356.178,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M242.5,212.606c0-4.595-3.724-8.318-8.318-8.318H56.734c-4.594,0-8.318,3.723-8.318,8.318%20s3.724,8.318,8.318,8.318h177.449C238.776,220.924,242.5,217.201,242.5,212.606z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M378.359,204.288h-99.815c-4.594,0-8.318,3.723-8.318,8.318s3.724,8.318,8.318,8.318h99.815%20c4.594,0,8.318-3.723,8.318-8.318S382.953,204.288,378.359,204.288z'/%3e%3c/g%3e%3cpath%20style='fill:%23D9CBBD;'%20d='M0.726,123.171L122.442,1.331l1.39,105.939c0,9.465-7.7,17.166-17.166,17.166L0.726,123.171z'/%3e%3cpath%20style='fill:%23FFB656;'%20d='M270.226,401.7V267.504H456.87c5.938,0,10.768,4.83,10.768,10.768v112.659%20c0,5.938-4.83,10.769-10.768,10.769H270.226z'/%3e%3cpath%20style='fill:%23D9CBBD;'%20d='M367.785,335.156c-12.822,0-23.252-10.431-23.252-23.254v-44.399h89.833v44.399%20c0,12.823-10.431,23.254-23.252,23.254H367.785z'/%3e%3cg%3e%3cpath%20style='fill:%23BABABA;'%20d='M167.639,132.2h133.086c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318H167.639%20c-4.594,0-8.318,3.723-8.318,8.318C159.321,128.477,163.045,132.2,167.639,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M356.178,132.2h22.181c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318h-22.181%20c-4.594,0-8.318,3.723-8.318,8.318C347.86,128.477,351.584,132.2,356.178,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M242.5,212.606c0-4.595-3.724-8.318-8.318-8.318H56.734c-4.594,0-8.318,3.723-8.318,8.318%20s3.724,8.318,8.318,8.318h177.449C238.776,220.924,242.5,217.201,242.5,212.606z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M378.359,204.288h-99.815c-4.594,0-8.318,3.723-8.318,8.318s3.724,8.318,8.318,8.318h99.815%20c4.594,0,8.318-3.723,8.318-8.318S382.953,204.288,378.359,204.288z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M345.087,448.28H101.096c-4.594,0-8.318,3.723-8.318,8.318c0,4.595,3.724,8.318,8.318,8.318h243.992%20c4.594,0,8.318-3.723,8.318-8.318C353.405,452.003,349.681,448.28,345.087,448.28z'/%3e%3c/g%3e%3cpath%20style='fill:%23FE5022;'%20d='M163.689,357.337c-3.692,0-6.094-3.886-4.443-7.189l16.225-32.451%20c1.799-3.597,5.416-5.833,9.438-5.833h44.282v45.471h-65.503V357.337z'/%3e%3cpolygon%20style='fill:%23FFB656;'%20points='256.918,278.252%20211.447,300.988%20211.447,368.216%20256.918,390.953%20284.321,390.953%20284.321,278.214%20'/%3e%3cg%3e%3cpath%20style='fill:%23FE5022;'%20d='M268.64,401.7c-7.075,0-12.832-5.756-12.832-12.832V280.336c0-7.075,5.756-12.831,12.832-12.831%20h19.808c7.075,0,12.832,5.756,12.832,12.831v108.532c0,7.076-5.756,12.832-12.832,12.832H268.64z'/%3e%3cpath%20style='fill:%23FE5022;'%20d='M104.156,379.377H26.143V301.33h91.398c8.546,0,14.88,7.936,12.986,16.27l-11.313,49.758%20C117.615,374.388,111.366,379.377,104.156,379.377z'/%3e%3c/g%3e%3c/svg%3e`,ri=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20height='800px'%20width='800px'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%2064%2064'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%2376C2AF;}%20.st1{fill:%234F5D73;}%20.st2{opacity:0.2;}%20.st3{fill:%23231F20;}%20.st4{fill:%23FFFFFF;}%20%3c/style%3e%3cg%20id='Layer_1'%3e%3cg%3e%3ccircle%20class='st0'%20cx='32'%20cy='32'%20r='32'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st1'%20d='M32,52c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.9,2,2v32C34,51.1,33.1,52,32,52L32,52z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st1'%20d='M46,52c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.9,2,2v32C48,51.1,47.1,52,46,52L46,52z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st1'%20d='M18,52c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.9,2,2v32C20,51.1,19.1,52,18,52L18,52z'/%3e%3c/g%3e%3cg%20class='st2'%3e%3ccircle%20class='st3'%20cx='45.9'%20cy='38'%20r='4'/%3e%3c/g%3e%3cg%20class='st2'%3e%3ccircle%20class='st3'%20cx='32'%20cy='27'%20r='4'/%3e%3c/g%3e%3cg%20class='st2'%3e%3ccircle%20class='st3'%20cx='18'%20cy='44'%20r='4'/%3e%3c/g%3e%3cg%3e%3ccircle%20class='st4'%20cx='45.9'%20cy='36'%20r='4'/%3e%3c/g%3e%3cg%3e%3ccircle%20class='st4'%20cx='32'%20cy='25'%20r='4'/%3e%3c/g%3e%3cg%3e%3ccircle%20class='st4'%20cx='18'%20cy='42'%20r='4'/%3e%3c/g%3e%3c/g%3e%3cg%20id='Layer_2'%3e%3c/g%3e%3c/svg%3e`;function ii(){let e=(0,r.usePathname)(),n=(0,r.useRouter)(),{isAuthenticated:i,signIn:a,signOut:o}=nt(),{newChat:c}=G(),{activeView:l,setActiveView:u,docsEnabled:f,requestFilesSidebar:p}=ti(),m=[{href:`/`,label:`Research`,icon:t.researchAgentUIConfig.appIconUrl},...f?[{href:`/workspace`,label:`Docs`,icon:(0,d.jsx)(P.default,{src:ni,alt:`Docs`,width:24,height:24,className:`w-full h-full`})}]:[]],h=e===`/`||e.startsWith(`/c`),g=Zr(t.researchAgentUIConfig.footerLinks,e),_=[...m.map(({href:e,label:t,icon:n})=>({key:e,label:t,icon:n,active:e===`/`?l===`research`:l===`docs`,onClick:()=>{if(e===`/`){u(`research`),h&&c();return}u(`docs`)}})),...f?[{key:`files`,label:`Files`,icon:(0,d.jsx)(s.FileText,{className:`w-full h-full p-1`}),onClick:()=>{u(`docs`),p()}}]:[],{key:`settings`,label:`Settings`,icon:(0,d.jsx)(P.default,{src:ri,alt:`Settings`,width:24,height:24,className:`w-full h-full`}),menu:{renderContent:()=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(N.DropdownMenuItem,{onClick:()=>{t.researchAgentUIConfig.onOpenSettings?.()||n.push(`/settings`)},className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.Settings,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Settings`})]}),(0,d.jsxs)(N.DropdownMenuSub,{children:[(0,d.jsxs)(N.DropdownMenuSubTrigger,{className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.Link2,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Site Links`})]}),(0,d.jsx)(N.DropdownMenuSubContent,{children:g.map(({url:e,text:t,icon:n})=>{let r=n?s[n]:null,i=e.startsWith(`http`);return(0,d.jsx)(N.DropdownMenuItem,{asChild:!0,className:`cursor-pointer py-1 h-7`,children:i?(0,d.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,children:[r&&(0,d.jsx)(r,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:t})]}):(0,d.jsxs)(D.default,{href:e,children:[r&&(0,d.jsx)(r,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:t})]})},e)})})]}),i?(0,d.jsxs)(N.DropdownMenuItem,{onClick:()=>o(),className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.LogOut,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Logout`})]}):(0,d.jsxs)(N.DropdownMenuItem,{onClick:()=>a(),className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.LogIn,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Login`})]}),(0,d.jsx)(N.DropdownMenuSeparator,{}),(0,d.jsx)(N.ThemeMenu,{})]})}}],v=_.filter(e=>e.key!==`files`),y=(e,t,n)=>(0,d.jsx)(P.default,{src:e,alt:t,width:n,height:n,unoptimized:!0,className:`w-full h-full`});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(N.CategoryDock,{items:v,enableKeyboardShortcuts:!0,placements:{desktop:!0,mobile:!1},renderImage:y}),(0,d.jsx)(N.CategoryDock,{items:_,placements:{desktop:!1,mobile:!0},mobileAlign:l===`docs`?`end`:`center`,renderImage:y})]})}function ai(){let[e,r]=(0,n.useState)(!1),i=(0,n.useRef)(null);return(0,n.useEffect)(()=>{localStorage.getItem(`cookie-consent`)||r(!0)},[]),(0,n.useEffect)(()=>{let t=document.documentElement,n=i.current;if(!e||!n){t.style.removeProperty(`--qs-bottom-right-inset`);return}let r=()=>t.style.setProperty(`--qs-bottom-right-inset`,`${Math.ceil(n.getBoundingClientRect().height)+16}px`);r();let a=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return a?.observe(n),()=>{a?.disconnect(),t.style.removeProperty(`--qs-bottom-right-inset`)}},[e]),e?(0,d.jsx)(`div`,{className:`fixed bottom-0 right-0 m-4 max-w-sm z-50`,children:(0,d.jsxs)(`div`,{ref:i,className:`bg-light-secondary dark:bg-dark-secondary rounded-lg shadow-lg border border-light-tertiary dark:border-dark-tertiary p-4 space-y-3`,children:[(0,d.jsxs)(`div`,{className:`flex justify-between items-start gap-3`,children:[(0,d.jsxs)(`div`,{className:`flex-1`,children:[(0,d.jsx)(`h3`,{className:`font-semibold text-sm text-black dark:text-white mb-2`,children:`Cookies & Privacy`}),(0,d.jsxs)(`p`,{className:`text-xs text-black/70 dark:text-white/70 mb-3`,children:[t.researchAgentUIConfig.appName,` uses cookies to enhance your research experience, analyze usage patterns, and improve our service. We respect your privacy and only use essential cookies by default.`]}),(0,d.jsx)(`div`,{className:`flex flex-wrap gap-2 text-xs mb-3`,children:t.researchAgentUIConfig.footerLinks.map(e=>(0,d.jsx)(`a`,{href:e.url,target:e.url.startsWith(`/`)?void 0:`_blank`,rel:e.url.startsWith(`/`)?void 0:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:e.text},e.url))})]}),(0,d.jsx)(`button`,{onClick:()=>{r(!1)},className:`text-black/50 dark:text-white/50 hover:text-black dark:hover:text-white transition-colors`,"aria-label":`Close`,children:(0,d.jsx)(s.X,{className:`w-4 h-4`})})]}),(0,d.jsxs)(`div`,{className:`flex gap-2`,children:[(0,d.jsx)(Q,{onClick:()=>{localStorage.setItem(`cookie-consent`,JSON.stringify({analytics:!0,marketing:!0,functional:!0,timestamp:new Date().toISOString()})),r(!1)},size:`sm`,className:`flex-1 bg-blue-600 hover:bg-blue-700 text-white`,children:`Accept All`}),(0,d.jsx)(Q,{onClick:()=>{localStorage.setItem(`cookie-consent`,JSON.stringify({analytics:!1,marketing:!1,functional:!0,timestamp:new Date().toISOString()})),r(!1)},size:`sm`,variant:`outline`,className:`flex-1 bg-light-tertiary dark:bg-dark-tertiary text-black dark:text-white border-0 hover:bg-light-tertiary/80 dark:hover:bg-dark-tertiary/80`,children:`Reject`})]})]})}):null}var oi=`qwk:chunk-error-reload`,si=e=>typeof e==`string`&&/Loading (chunk|CSS chunk)|ChunkLoadError/i.test(e);function ci(){(0,n.useEffect)(()=>{let e=e=>{si(e)&&(sessionStorage.getItem(oi)||(sessionStorage.setItem(oi,`1`),window.location.reload()))},t=t=>e(t.message),n=t=>e(t.reason?.message??t.reason);return window.addEventListener(`error`,t),window.addEventListener(`unhandledrejection`,n),()=>{window.removeEventListener(`error`,t),window.removeEventListener(`unhandledrejection`,n)}},[])}var li=({children:e})=>(0,d.jsx)(d.Fragment,{children:e});function ui(e){let[t,r]=(0,n.useState)(e===!0);return(0,n.useEffect)(()=>{if(e!==`auto`){r(e);return}let t=!1;return(0,p.default)(`auth/providers`).then(e=>{t||r(!!e.providers?.includes(`google`))}).catch(()=>{t||r(!1)}),()=>{t=!0}},[e]),t}function di({children:e,authClient:n,config:r,googleOneTap:i=`auto`,docsEnabled:a=!0,ChromeProvider:o=li,showDock:s=!0,showCookieConsent:c=!0,showToaster:l=!0}){r&&t.configureResearchAgentUI(r);let u=ui(i);return ci(),(0,d.jsx)(M.ThemeProvider,{attribute:`class`,defaultTheme:`system`,enableSystem:!0,disableTransitionOnChange:!0,children:(0,d.jsx)(tt,{authClient:n,enableGoogleOneTap:u,children:(0,d.jsx)(te,{children:(0,d.jsxs)(rt,{children:[(0,d.jsx)(N.CategoryDockProvider,{children:(0,d.jsx)(o,{children:(0,d.jsx)(ei,{docsEnabled:a,children:(0,d.jsxs)(`div`,{id:`app-scroll-root`,className:`w-screen h-screen overflow-y-auto overflow-x-hidden pb-[calc(60px+env(safe-area-inset-bottom,0px))] md:pb-0`,children:[s&&(0,d.jsx)(ii,{}),(0,d.jsx)(`main`,{className:`bg-light-primary dark:bg-dark-primary min-h-screen`,children:e})]})})})}),l&&(0,d.jsx)(m.Toaster,{toastOptions:{unstyled:!0,classNames:{toast:`bg-light-secondary dark:bg-dark-secondary dark:text-white/70 text-black-70 rounded-lg p-4 flex flex-row items-center space-x-2`}}}),c&&(0,d.jsx)(ai,{})]})})})})}function fi(e){return(0,d.jsx)(di,{...e,docsEnabled:!1,children:(0,d.jsx)(Gr,{})})}var pi=`qwksearch-open-chat-tabs`,mi=50;function hi(){if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(pi);return e?JSON.parse(e):[]}catch{return[]}}function gi(){let{chatId:e,chatTurns:t,startNewChat:r,switchToChat:i}=G(),[a,o]=(0,n.useState)(hi);(0,n.useEffect)(()=>{window.localStorage.setItem(pi,JSON.stringify(a))},[a]),(0,n.useEffect)(()=>{if(!e)return;let n=t[0]?.content?.slice(0,mi),r=t.length>0;o(t=>{let i=t.find(t=>t.id===e);return i?n&&i.title!==n||i.hasMessages!==r?t.map(t=>t.id===e?{...t,title:n||t.title,hasMessages:r}:t):t:[...t,{id:e,title:n||`New Chat`,hasMessages:r}]})},[e,t]);let s=(0,n.useCallback)((e,t)=>{let n=t.find(t=>t.id===e);n&&!n.hasMessages?r(e):i(e)},[r,i]),c=(0,n.useCallback)(e=>{s(e,a)},[s,a]),l=(0,n.useCallback)(()=>{let e=crypto.randomUUID();return o(t=>[...t,{id:e,title:`New Chat`}]),r(e),e},[r]),u=(0,n.useCallback)(t=>{let n=new Set(t),r=a.filter(e=>!n.has(e.id));o(r);let i=e!=null&&n.has(e);if(!i)return{closedWasActive:!1,nextActiveId:null};if(r.length===0)return{closedWasActive:i,nextActiveId:null};let c=a.findIndex(t=>t.id===e),l=e=>e!=null&&!n.has(e.id),u;for(let e=c-1;e>=0&&!u;e--)l(a[e])&&(u=a[e]);for(let e=c+1;e<a.length&&!u;e++)l(a[e])&&(u=a[e]);let d=(u??r[0]).id;return s(d,r),{closedWasActive:i,nextActiveId:d}},[a,e,s]),d=(0,n.useCallback)(e=>u([e]),[u]);return{chatTabs:a,activeChatId:e??null,openChat:c,newChat:l,closeChat:d,closeChats:u}}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return Gn}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return ai}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return tr}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return ti}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Kr}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Gr}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return mr}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Or}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ci}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Yr}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Mr}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return fi}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return ii}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return di}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return ei}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return gi}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Jr}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return er}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return nr}});
|
|
51
|
+
ANTHROPIC_API_KEY=sk-ant-your_key_here`})]}),(0,d.jsxs)(`div`,{className:`bg-black/5 dark:bg-white/5 rounded p-4`,children:[(0,d.jsx)(`p`,{className:`font-medium text-black dark:text-white mb-2`,children:`3. Restart the server`}),(0,d.jsx)(`code`,{className:`block bg-black/10 dark:bg-white/10 rounded p-2 text-xs`,children:`Ctrl+C, then: npm run dev`})]})]}),(0,d.jsxs)(`div`,{className:`pt-4 border-t border-black/10 dark:border-white/10`,children:[(0,d.jsx)(`h3`,{className:`font-medium text-black dark:text-white mb-2`,children:`Get API Keys:`}),(0,d.jsxs)(`ul`,{className:`space-y-2 text-sm text-black/70 dark:text-white/70`,children:[(0,d.jsxs)(`li`,{children:[(0,d.jsx)(`strong`,{children:`Groq`}),` (FREE): `,(0,d.jsx)(`a`,{href:`https://console.groq.com/keys`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:`console.groq.com/keys`})]}),(0,d.jsxs)(`li`,{children:[(0,d.jsx)(`strong`,{children:`OpenAI`}),`: `,(0,d.jsx)(`a`,{href:`https://platform.openai.com/api-keys`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:`platform.openai.com/api-keys`})]}),(0,d.jsxs)(`li`,{children:[(0,d.jsx)(`strong`,{children:`Anthropic`}),`: `,(0,d.jsx)(`a`,{href:`https://console.anthropic.com/settings/keys`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:`console.anthropic.com`})]})]})]})]}),(0,d.jsxs)(`div`,{className:`text-xs text-black/50 dark:text-white/50 pt-4 border-t border-black/10 dark:border-white/10`,children:[`See `,(0,d.jsx)(`code`,{children:`SETUP_INSTRUCTIONS.md`}),` in the project root for full details.`]})]})})}var Gr=()=>{let e=(0,r.useRouter)(),{hasError:t,isReady:i,notFound:a,messages:o}=G(),{isAuthenticated:s}=nt();return(0,n.useEffect)(()=>{i&&a&&!s&&e.replace(`/`)},[i,a,s,e]),t?(0,d.jsx)(Wr,{}):i&&a&&!s?(0,d.jsx)(`div`,{className:`flex flex-row items-center justify-center min-h-screen`,children:(0,d.jsx)(Ur,{})}):i?a?(0,d.jsxs)(`div`,{className:`flex min-h-screen flex-col items-center justify-center gap-3 px-4 text-center`,children:[(0,d.jsx)(`p`,{className:`text-sm text-black/70 dark:text-white/70`,children:`This chat could not be found.`}),(0,d.jsx)(`button`,{type:`button`,onClick:()=>e.push(`/`),className:`rounded-md border border-black/15 px-3 py-1.5 text-sm hover:bg-black/5 dark:border-white/20 dark:hover:bg-white/10`,children:`Go Home`})]}):(0,d.jsx)(`div`,{children:o.length>0?(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(vr,{})}):(0,d.jsx)(Hr,{})}):(0,d.jsx)(`div`,{className:`flex flex-row items-center justify-center min-h-screen`,children:(0,d.jsx)(Ur,{})})};function Kr(e,t){let[r,i]=(0,n.useState)(`idle`),[a,o]=(0,n.useState)(!1),[s,c]=(0,n.useState)([]),[l,u]=(0,n.useState)(`af_heart`),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(null),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{t?.autoPreload&&!a&&g()},[t?.autoPreload,a]),(0,n.useEffect)(()=>{let e=localStorage.getItem(`kokoroVoice`);e&&u(e)},[]),(0,n.useEffect)(()=>()=>{p.current&&p.current.pause(),m.current?.abort()},[]);let h=(0,n.useCallback)(()=>{p.current&&=(p.current.pause(),p.current.src.startsWith(`blob:`)&&URL.revokeObjectURL(p.current.src),null),m.current?.abort(),m.current=null},[]),g=(0,n.useCallback)(async()=>{try{i(`loading`),f(null),await Oe();let e=await Ae();c(e),e.length&&!e.includes(l)&&u(e[0]),o(!0),i(`idle`)}catch(e){let t=e instanceof Error?e.message:`Failed to load model`;f(t),i(`error`),console.error(`Failed to load Kokoro model:`,e)}},[l]);return{status:r,modelReady:a,voices:s,selectedVoice:l,error:d,warmupModel:g,speak:(0,n.useCallback)(async()=>{if(e?.trim()){if(!a){f(`Model not loaded. Click "Preload Model" first.`);return}try{h(),i(`generating`),f(null);let t=new AbortController;m.current=t;let n=(await(await ke()).generate(e.slice(0,5e3),{voice:l})).toWav(),r=new Blob([n],{type:`audio/wav`}),a=URL.createObjectURL(r),o=new Audio(a);p.current=o,o.onended=()=>{i(`idle`),URL.revokeObjectURL(a),p.current=null},o.onerror=()=>{i(`error`),f(`Failed to play audio`),URL.revokeObjectURL(a),p.current=null},i(`playing`),await o.play()}catch(e){if(e?.name!==`AbortError`){let t=e instanceof Error?e.message:`Speech generation failed`;f(t),i(`error`),console.error(`Kokoro TTS error:`,e)}}}},[e,l,a,h]),stop:(0,n.useCallback)(()=>{h(),i(`idle`),f(null)},[h]),changeVoice:(0,n.useCallback)(e=>{u(e),localStorage.setItem(`kokoroVoice`,e)},[]),backend:je()}}var qr={af_heart:`American Female - Heart`,af_bella:`American Female - Bella`,af_nicole:`American Female - Nicole`,af_sarah:`American Female - Sarah`,am_adam:`American Male - Adam`,am_michael:`American Male - Michael`,am_tony:`American Male - Tony`,bf_emma:`British Female - Emma`,bm_george:`British Male - George`,bm_thomas:`British Male - Thomas`};function Jr({preloadOnMount:e=!1}){let{status:t,modelReady:r,voices:i,selectedVoice:a,error:o,warmupModel:c,changeVoice:l,backend:u}=Kr(``,{autoPreload:e}),[f,p]=(0,n.useState)(!1),m=t===`loading`,h=t===`error`;return(0,d.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`button`,{onClick:c,disabled:m||r,className:F(`p-2 rounded-full transition duration-200`,r?`bg-green-500/10 text-green-600 dark:text-green-400`:`bg-white/10 dark:bg-black/10 text-muted-foreground hover:bg-white/20 dark:hover:bg-black/20`,m&&`opacity-70 cursor-not-allowed`),children:m?(0,d.jsx)(s.Loader2,{size:18,className:`animate-spin`}):(0,d.jsx)(s.Download,{size:18})})}),(0,d.jsx)(J,{side:`bottom`,children:m?`Loading Kokoro model...`:r?`Model ready`:`Preload Kokoro.js model`})]}),r&&u&&(0,d.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[u,` • `,i.length,` voices`]}),h&&(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(s.AlertCircle,{size:18,className:`text-red-500`})}),(0,d.jsx)(J,{side:`bottom`,className:`max-w-xs`,children:o})]})]}),r&&(0,d.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,d.jsx)(`button`,{onClick:()=>p(!f),className:`w-full text-left px-3 py-2 rounded-md bg-white/5 dark:bg-black/5 hover:bg-white/10 dark:hover:bg-black/10 transition text-sm font-medium`,children:(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(s.Volume2,{size:16}),qr[a]||a]})}),f&&(0,d.jsx)(`div`,{className:`grid grid-cols-2 gap-2 p-2 bg-white/5 dark:bg-black/5 rounded-md max-h-64 overflow-y-auto`,children:i.map(e=>(0,d.jsx)(`button`,{onClick:()=>{l(e),p(!1)},className:F(`p-2 text-left text-sm rounded transition duration-200`,a===e?`bg-blue-500/20 text-blue-600 dark:text-blue-400 font-medium`:`bg-white/5 dark:bg-black/5 text-foreground hover:bg-white/10 dark:hover:bg-black/10`),children:qr[e]||e},e))})]})]})}function Yr(){let[e,t]=(0,n.useState)(!1),[r,i]=(0,n.useState)(()=>localStorage.getItem(`useTTSKokoro`)!==`false`),[a,o]=(0,n.useState)(()=>localStorage.getItem(`ttsSpeaker`)||`angus`),[c,l]=(0,n.useState)(()=>pn()),{start:u,speechStatus:f}=Me(`This is a preview of the selected voice.`,{enableInterrupt:!1}),p=e=>{i(e),localStorage.setItem(`useTTSKokoro`,String(e))},m=e=>{o(e),localStorage.setItem(`ttsSpeaker`,e)},h=e=>{l(e),mn(e)};return(0,d.jsxs)(`div`,{className:`space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(s.Settings2,{size:18}),(0,d.jsx)(`h3`,{className:`font-semibold`,children:`Voice Settings`})]}),(0,d.jsx)(`button`,{onClick:()=>t(!e),className:`text-xs px-3 py-1 rounded-md bg-white/10 dark:bg-black/10 hover:bg-white/20 dark:hover:bg-black/20 transition`,children:e?`Collapse`:`Expand`})]}),e&&(0,d.jsxs)(`div`,{className:`space-y-4 p-4 rounded-lg bg-white/5 dark:bg-black/5 border border-white/10 dark:border-black/10`,children:[(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:r,onChange:e=>p(e.target.checked),className:`rounded`}),(0,d.jsx)(`span`,{className:`font-medium text-sm`,children:`Use Kokoro.js (Local TTS)`}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,children:`ⓘ`})}),(0,d.jsx)(J,{side:`right`,className:`max-w-xs`,children:`Runs locally in your browser. No server requests, lower latency, and multiple voice options.`})]})]}),r&&(0,d.jsx)(Jr,{preloadOnMount:!1})]}),(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:!r,onChange:e=>p(!e.target.checked),className:`rounded`}),(0,d.jsx)(`span`,{className:`font-medium text-sm`,children:`Use Cloudflare TTS (Fallback)`}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,children:`ⓘ`})}),(0,d.jsx)(J,{side:`right`,className:`max-w-xs`,children:`Uses Cloudflare Workers AI. Slightly higher latency but can be a fallback.`})]})]}),!r&&(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsxs)(`select`,{value:a,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 rounded-md bg-white/10 dark:bg-black/10 border border-white/20 dark:border-black/20 text-sm`,children:[(0,d.jsx)(`option`,{value:`angus`,children:`Angus`}),(0,d.jsx)(`option`,{value:`flora`,children:`Flora`}),(0,d.jsx)(`option`,{value:`james`,children:`James`}),(0,d.jsx)(`option`,{value:`natalie`,children:`Natalie`})]}),(0,d.jsxs)(`button`,{onClick:()=>u(),disabled:f===`started`,className:F(`w-full flex items-center justify-center gap-2 px-3 py-2 rounded-md text-sm font-medium transition`,f===`started`?`bg-gray-500/20 text-gray-600 dark:text-gray-400 cursor-not-allowed`:`bg-blue-500/20 text-blue-600 dark:text-blue-400 hover:bg-blue-500/30`),children:[(0,d.jsx)(s.Volume2,{size:16}),f===`started`?`Playing...`:`Preview`]})]})]}),(0,d.jsx)(`div`,{className:`space-y-2 pt-2 border-t border-white/10 dark:border-black/10`,children:(0,d.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>h(e.target.checked),className:`rounded`}),(0,d.jsx)(`span`,{className:`font-medium text-sm`,children:`Start talking automatically on first visit`}),(0,d.jsxs)(K,{children:[(0,d.jsx)(q,{asChild:!0,children:(0,d.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,children:`ⓘ`})}),(0,d.jsx)(J,{side:`right`,className:`max-w-xs`,children:`Opens the mic the first time you load the chat composer in this browser, so you can start talking right away instead of clicking the mic button.`})]})]})}),(0,d.jsx)(`div`,{className:`text-xs text-muted-foreground pt-2 border-t border-white/10 dark:border-black/10`,children:(0,d.jsxs)(`p`,{children:[(0,d.jsx)(`strong`,{children:`Tip:`}),` Kokoro.js loads once and runs locally. The first model load may take a few seconds, but subsequent TTS generation is very fast.`]})})]})]})}function Xr(e,t){if(!e.startsWith(`/`)||e.includes(`#`)||e.includes(`?`))return!1;let n=e.replace(/\/+$/,``)||`/`,r=t.replace(/\/+$/,``)||`/`;return n===`/`?r===`/`:r===n||r.startsWith(`${n}/`)}function Zr(e,t){return t?e.filter(e=>!Xr(e.url,t)):e}var Qr=(0,n.createContext)(null),$r=`qwksearch-main-view`;function ei({children:e,docsEnabled:t=!0}){let[r,i]=(0,n.useState)(`research`),[a,o]=(0,n.useState)(0),s=(0,n.useCallback)(e=>i(t?e:`research`),[t]);(0,n.useEffect)(()=>{if(typeof window>`u`||!t)return;let e=window.localStorage.getItem($r);(e===`research`||e===`docs`)&&i(e)},[t]),(0,n.useEffect)(()=>{typeof window<`u`&&t&&window.localStorage.setItem($r,r)},[r,t]);let c=(0,n.useMemo)(()=>({activeView:r,setActiveView:s,docsEnabled:t,toggleToDocs:()=>s(`docs`),toggleToResearch:()=>s(`research`),filesSidebarRequestId:a,requestFilesSidebar:()=>o(e=>e+1)}),[r,s,t,a]);return(0,d.jsx)(Qr.Provider,{value:c,children:e})}function ti(){let e=(0,n.useContext)(Qr);if(!e)throw Error(`useMainView must be used within a MainViewProvider`);return e}var ni=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3csvg%20height='800px'%20width='800px'%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20512%20512'%20xml:space='preserve'%3e%3cpath%20style='fill:%23FE5022;'%20d='M438.802,390.609V278.595h55.174c9.938,0,18.023,8.085,18.023,18.023v75.967%20c0,9.938-8.086,18.024-18.023,18.024L438.802,390.609L438.802,390.609z'/%3e%3cpath%20style='fill:%23ECE5DD;'%20d='M28.107,511.637C12.609,511.637,0,499.027,0,483.529V134.326c0-1.441,0-12.123,0-12.123%20L121.715,0.363c0,0,10.8,0,12.248,0h271.569c15.498,0,28.107,12.609,28.107,28.106v455.059c0,15.499-12.609,28.108-28.107,28.108%20H28.107V511.637z'/%3e%3cpath%20style='fill:%23D9CBBD;'%20d='M405.533,0.363h-31.991c15.498,0,28.107,12.609,28.107,28.107v455.059%20c0,15.499-12.609,28.108-28.107,28.108h31.991c15.498,0,28.107-12.609,28.107-28.108V28.469%20C433.64,12.972,421.031,0.363,405.533,0.363z'/%3e%3cg%3e%3cpath%20style='fill:%23BABABA;'%20d='M167.639,132.2h133.086c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318H167.639%20c-4.594,0-8.318,3.723-8.318,8.318C159.321,128.477,163.045,132.2,167.639,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M356.178,132.2h22.181c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318h-22.181%20c-4.594,0-8.318,3.723-8.318,8.318C347.86,128.477,351.584,132.2,356.178,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M242.5,212.606c0-4.595-3.724-8.318-8.318-8.318H56.734c-4.594,0-8.318,3.723-8.318,8.318%20s3.724,8.318,8.318,8.318h177.449C238.776,220.924,242.5,217.201,242.5,212.606z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M378.359,204.288h-99.815c-4.594,0-8.318,3.723-8.318,8.318s3.724,8.318,8.318,8.318h99.815%20c4.594,0,8.318-3.723,8.318-8.318S382.953,204.288,378.359,204.288z'/%3e%3c/g%3e%3cpath%20style='fill:%23D9CBBD;'%20d='M0.726,123.171L122.442,1.331l1.39,105.939c0,9.465-7.7,17.166-17.166,17.166L0.726,123.171z'/%3e%3cpath%20style='fill:%23FFB656;'%20d='M270.226,401.7V267.504H456.87c5.938,0,10.768,4.83,10.768,10.768v112.659%20c0,5.938-4.83,10.769-10.768,10.769H270.226z'/%3e%3cpath%20style='fill:%23D9CBBD;'%20d='M367.785,335.156c-12.822,0-23.252-10.431-23.252-23.254v-44.399h89.833v44.399%20c0,12.823-10.431,23.254-23.252,23.254H367.785z'/%3e%3cg%3e%3cpath%20style='fill:%23BABABA;'%20d='M167.639,132.2h133.086c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318H167.639%20c-4.594,0-8.318,3.723-8.318,8.318C159.321,128.477,163.045,132.2,167.639,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M356.178,132.2h22.181c4.594,0,8.318-3.723,8.318-8.318c0-4.595-3.724-8.318-8.318-8.318h-22.181%20c-4.594,0-8.318,3.723-8.318,8.318C347.86,128.477,351.584,132.2,356.178,132.2z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M242.5,212.606c0-4.595-3.724-8.318-8.318-8.318H56.734c-4.594,0-8.318,3.723-8.318,8.318%20s3.724,8.318,8.318,8.318h177.449C238.776,220.924,242.5,217.201,242.5,212.606z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M378.359,204.288h-99.815c-4.594,0-8.318,3.723-8.318,8.318s3.724,8.318,8.318,8.318h99.815%20c4.594,0,8.318-3.723,8.318-8.318S382.953,204.288,378.359,204.288z'/%3e%3cpath%20style='fill:%23BABABA;'%20d='M345.087,448.28H101.096c-4.594,0-8.318,3.723-8.318,8.318c0,4.595,3.724,8.318,8.318,8.318h243.992%20c4.594,0,8.318-3.723,8.318-8.318C353.405,452.003,349.681,448.28,345.087,448.28z'/%3e%3c/g%3e%3cpath%20style='fill:%23FE5022;'%20d='M163.689,357.337c-3.692,0-6.094-3.886-4.443-7.189l16.225-32.451%20c1.799-3.597,5.416-5.833,9.438-5.833h44.282v45.471h-65.503V357.337z'/%3e%3cpolygon%20style='fill:%23FFB656;'%20points='256.918,278.252%20211.447,300.988%20211.447,368.216%20256.918,390.953%20284.321,390.953%20284.321,278.214%20'/%3e%3cg%3e%3cpath%20style='fill:%23FE5022;'%20d='M268.64,401.7c-7.075,0-12.832-5.756-12.832-12.832V280.336c0-7.075,5.756-12.831,12.832-12.831%20h19.808c7.075,0,12.832,5.756,12.832,12.831v108.532c0,7.076-5.756,12.832-12.832,12.832H268.64z'/%3e%3cpath%20style='fill:%23FE5022;'%20d='M104.156,379.377H26.143V301.33h91.398c8.546,0,14.88,7.936,12.986,16.27l-11.313,49.758%20C117.615,374.388,111.366,379.377,104.156,379.377z'/%3e%3c/g%3e%3c/svg%3e`,ri=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20height='800px'%20width='800px'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%2064%2064'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%2376C2AF;}%20.st1{fill:%234F5D73;}%20.st2{opacity:0.2;}%20.st3{fill:%23231F20;}%20.st4{fill:%23FFFFFF;}%20%3c/style%3e%3cg%20id='Layer_1'%3e%3cg%3e%3ccircle%20class='st0'%20cx='32'%20cy='32'%20r='32'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st1'%20d='M32,52c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.9,2,2v32C34,51.1,33.1,52,32,52L32,52z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st1'%20d='M46,52c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.9,2,2v32C48,51.1,47.1,52,46,52L46,52z'/%3e%3c/g%3e%3cg%3e%3cpath%20class='st1'%20d='M18,52c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.9,2,2v32C20,51.1,19.1,52,18,52L18,52z'/%3e%3c/g%3e%3cg%20class='st2'%3e%3ccircle%20class='st3'%20cx='45.9'%20cy='38'%20r='4'/%3e%3c/g%3e%3cg%20class='st2'%3e%3ccircle%20class='st3'%20cx='32'%20cy='27'%20r='4'/%3e%3c/g%3e%3cg%20class='st2'%3e%3ccircle%20class='st3'%20cx='18'%20cy='44'%20r='4'/%3e%3c/g%3e%3cg%3e%3ccircle%20class='st4'%20cx='45.9'%20cy='36'%20r='4'/%3e%3c/g%3e%3cg%3e%3ccircle%20class='st4'%20cx='32'%20cy='25'%20r='4'/%3e%3c/g%3e%3cg%3e%3ccircle%20class='st4'%20cx='18'%20cy='42'%20r='4'/%3e%3c/g%3e%3c/g%3e%3cg%20id='Layer_2'%3e%3c/g%3e%3c/svg%3e`;function ii(){let e=(0,r.usePathname)(),n=(0,r.useRouter)(),{isAuthenticated:i,signIn:a,signOut:o}=nt(),{newChat:c}=G(),{activeView:l,setActiveView:u,docsEnabled:f,requestFilesSidebar:p}=ti(),m=[{href:`/`,label:`Research`,icon:t.researchAgentUIConfig.appIconUrl},...f?[{href:`/workspace`,label:`Docs`,icon:(0,d.jsx)(P.default,{src:ni,alt:`Docs`,width:24,height:24,unoptimized:!0,className:`w-full h-full`})}]:[]],h=e===`/`||e.startsWith(`/c`),g=Zr(t.researchAgentUIConfig.footerLinks,e),_=[...m.map(({href:e,label:t,icon:n})=>({key:e,label:t,icon:n,active:e===`/`?l===`research`:l===`docs`,onClick:()=>{if(e===`/`){u(`research`),h&&c();return}u(`docs`)}})),...f?[{key:`files`,label:`Files`,icon:(0,d.jsx)(s.FileText,{className:`w-full h-full p-1`}),onClick:()=>{u(`docs`),p()}}]:[],{key:`settings`,label:`Settings`,icon:(0,d.jsx)(P.default,{src:ri,alt:`Settings`,width:24,height:24,unoptimized:!0,className:`w-full h-full`}),menu:{renderContent:()=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(N.DropdownMenuItem,{onClick:()=>{t.researchAgentUIConfig.onOpenSettings?.()||n.push(`/settings`)},className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.Settings,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Settings`})]}),(0,d.jsxs)(N.DropdownMenuSub,{children:[(0,d.jsxs)(N.DropdownMenuSubTrigger,{className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.Link2,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Site Links`})]}),(0,d.jsx)(N.DropdownMenuSubContent,{children:g.map(({url:e,text:t,icon:n})=>{let r=n?s[n]:null,i=e.startsWith(`http`);return(0,d.jsx)(N.DropdownMenuItem,{asChild:!0,className:`cursor-pointer py-1 h-7`,children:i?(0,d.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,children:[r&&(0,d.jsx)(r,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:t})]}):(0,d.jsxs)(D.default,{href:e,children:[r&&(0,d.jsx)(r,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:t})]})},e)})})]}),i?(0,d.jsxs)(N.DropdownMenuItem,{onClick:()=>o(),className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.LogOut,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Logout`})]}):(0,d.jsxs)(N.DropdownMenuItem,{onClick:()=>a(),className:`cursor-pointer py-1 h-7`,children:[(0,d.jsx)(s.LogIn,{className:`mr-2 h-3.5 w-3.5`}),(0,d.jsx)(`span`,{className:`text-sm`,children:`Login`})]}),(0,d.jsx)(N.DropdownMenuSeparator,{}),(0,d.jsx)(N.ThemeMenu,{})]})}}],v=_.filter(e=>e.key!==`files`),y=(e,t,n)=>(0,d.jsx)(P.default,{src:e,alt:t,width:n,height:n,unoptimized:!0,className:`w-full h-full`});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(N.CategoryDock,{items:v,enableKeyboardShortcuts:!0,placements:{desktop:!0,mobile:!1},renderImage:y}),(0,d.jsx)(N.CategoryDock,{items:_,placements:{desktop:!1,mobile:!0},mobileAlign:l===`docs`?`end`:`center`,renderImage:y})]})}function ai(){let[e,r]=(0,n.useState)(!1),i=(0,n.useRef)(null);return(0,n.useEffect)(()=>{localStorage.getItem(`cookie-consent`)||r(!0)},[]),(0,n.useEffect)(()=>{let t=document.documentElement,n=i.current;if(!e||!n){t.style.removeProperty(`--qs-bottom-right-inset`);return}let r=()=>t.style.setProperty(`--qs-bottom-right-inset`,`${Math.ceil(n.getBoundingClientRect().height)+16}px`);r();let a=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return a?.observe(n),()=>{a?.disconnect(),t.style.removeProperty(`--qs-bottom-right-inset`)}},[e]),e?(0,d.jsx)(`div`,{className:`fixed bottom-0 right-0 m-4 max-w-sm z-50`,children:(0,d.jsxs)(`div`,{ref:i,className:`bg-light-secondary dark:bg-dark-secondary rounded-lg shadow-lg border border-light-tertiary dark:border-dark-tertiary p-4 space-y-3`,children:[(0,d.jsxs)(`div`,{className:`flex justify-between items-start gap-3`,children:[(0,d.jsxs)(`div`,{className:`flex-1`,children:[(0,d.jsx)(`h3`,{className:`font-semibold text-sm text-black dark:text-white mb-2`,children:`Cookies & Privacy`}),(0,d.jsxs)(`p`,{className:`text-xs text-black/70 dark:text-white/70 mb-3`,children:[t.researchAgentUIConfig.appName,` uses cookies to enhance your research experience, analyze usage patterns, and improve our service. We respect your privacy and only use essential cookies by default.`]}),(0,d.jsx)(`div`,{className:`flex flex-wrap gap-2 text-xs mb-3`,children:t.researchAgentUIConfig.footerLinks.map(e=>(0,d.jsx)(`a`,{href:e.url,target:e.url.startsWith(`/`)?void 0:`_blank`,rel:e.url.startsWith(`/`)?void 0:`noopener noreferrer`,className:`text-blue-600 dark:text-blue-400 hover:underline`,children:e.text},e.url))})]}),(0,d.jsx)(`button`,{onClick:()=>{r(!1)},className:`text-black/50 dark:text-white/50 hover:text-black dark:hover:text-white transition-colors`,"aria-label":`Close`,children:(0,d.jsx)(s.X,{className:`w-4 h-4`})})]}),(0,d.jsxs)(`div`,{className:`flex gap-2`,children:[(0,d.jsx)(Q,{onClick:()=>{localStorage.setItem(`cookie-consent`,JSON.stringify({analytics:!0,marketing:!0,functional:!0,timestamp:new Date().toISOString()})),r(!1)},size:`sm`,className:`flex-1 bg-blue-600 hover:bg-blue-700 text-white`,children:`Accept All`}),(0,d.jsx)(Q,{onClick:()=>{localStorage.setItem(`cookie-consent`,JSON.stringify({analytics:!1,marketing:!1,functional:!0,timestamp:new Date().toISOString()})),r(!1)},size:`sm`,variant:`outline`,className:`flex-1 bg-light-tertiary dark:bg-dark-tertiary text-black dark:text-white border-0 hover:bg-light-tertiary/80 dark:hover:bg-dark-tertiary/80`,children:`Reject`})]})]})}):null}var oi=`qwk:chunk-error-reload`,si=e=>typeof e==`string`&&/Loading (chunk|CSS chunk)|ChunkLoadError/i.test(e);function ci(){(0,n.useEffect)(()=>{let e=e=>{si(e)&&(sessionStorage.getItem(oi)||(sessionStorage.setItem(oi,`1`),window.location.reload()))},t=t=>e(t.message),n=t=>e(t.reason?.message??t.reason);return window.addEventListener(`error`,t),window.addEventListener(`unhandledrejection`,n),()=>{window.removeEventListener(`error`,t),window.removeEventListener(`unhandledrejection`,n)}},[])}var li=({children:e})=>(0,d.jsx)(d.Fragment,{children:e});function ui(e){let[t,r]=(0,n.useState)(e===!0);return(0,n.useEffect)(()=>{if(e!==`auto`){r(e);return}let t=!1;return(0,p.default)(`auth/providers`).then(e=>{t||r(!!e.providers?.includes(`google`))}).catch(()=>{t||r(!1)}),()=>{t=!0}},[e]),t}function di({children:e,authClient:n,config:r,googleOneTap:i=`auto`,docsEnabled:a=!0,ChromeProvider:o=li,showDock:s=!0,showCookieConsent:c=!0,showToaster:l=!0}){r&&t.configureResearchAgentUI(r);let u=ui(i);return ci(),(0,d.jsx)(M.ThemeProvider,{attribute:`class`,defaultTheme:`system`,enableSystem:!0,disableTransitionOnChange:!0,children:(0,d.jsx)(tt,{authClient:n,enableGoogleOneTap:u,children:(0,d.jsx)(te,{children:(0,d.jsxs)(rt,{children:[(0,d.jsx)(N.CategoryDockProvider,{children:(0,d.jsx)(o,{children:(0,d.jsx)(ei,{docsEnabled:a,children:(0,d.jsxs)(`div`,{id:`app-scroll-root`,className:`w-screen h-screen overflow-y-auto overflow-x-hidden pb-[calc(60px+env(safe-area-inset-bottom,0px))] md:pb-0`,children:[s&&(0,d.jsx)(ii,{}),(0,d.jsx)(`main`,{className:`bg-light-primary dark:bg-dark-primary min-h-screen`,children:e})]})})})}),l&&(0,d.jsx)(m.Toaster,{toastOptions:{unstyled:!0,classNames:{toast:`bg-light-secondary dark:bg-dark-secondary dark:text-white/70 text-black-70 rounded-lg p-4 flex flex-row items-center space-x-2`}}}),c&&(0,d.jsx)(ai,{})]})})})})}function fi(e){return(0,d.jsx)(di,{...e,docsEnabled:!1,children:(0,d.jsx)(Gr,{})})}var pi=`qwksearch-open-chat-tabs`,mi=50;function hi(){if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(pi);return e?JSON.parse(e):[]}catch{return[]}}function gi(){let{chatId:e,chatTurns:t,startNewChat:r,switchToChat:i}=G(),[a,o]=(0,n.useState)(hi);(0,n.useEffect)(()=>{window.localStorage.setItem(pi,JSON.stringify(a))},[a]),(0,n.useEffect)(()=>{if(!e)return;let n=t[0]?.content?.slice(0,mi),r=t.length>0;o(t=>{let i=t.find(t=>t.id===e);return i?n&&i.title!==n||i.hasMessages!==r?t.map(t=>t.id===e?{...t,title:n||t.title,hasMessages:r}:t):t:[...t,{id:e,title:n||`New Chat`,hasMessages:r}]})},[e,t]);let s=(0,n.useCallback)((e,t)=>{let n=t.find(t=>t.id===e);n&&!n.hasMessages?r(e):i(e)},[r,i]),c=(0,n.useCallback)(e=>{s(e,a)},[s,a]),l=(0,n.useCallback)(()=>{let e=crypto.randomUUID();return o(t=>[...t,{id:e,title:`New Chat`}]),r(e),e},[r]),u=(0,n.useCallback)(t=>{let n=new Set(t),r=a.filter(e=>!n.has(e.id));o(r);let i=e!=null&&n.has(e);if(!i)return{closedWasActive:!1,nextActiveId:null};if(r.length===0)return{closedWasActive:i,nextActiveId:null};let c=a.findIndex(t=>t.id===e),l=e=>e!=null&&!n.has(e.id),u;for(let e=c-1;e>=0&&!u;e--)l(a[e])&&(u=a[e]);for(let e=c+1;e<a.length&&!u;e++)l(a[e])&&(u=a[e]);let d=(u??r[0]).id;return s(d,r),{closedWasActive:i,nextActiveId:d}},[a,e,s]),d=(0,n.useCallback)(e=>u([e]),[u]);return{chatTabs:a,activeChatId:e??null,openChat:c,newChat:l,closeChat:d,closeChats:u}}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return Gn}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return ai}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return tr}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return ti}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Kr}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Gr}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return mr}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Or}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ci}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Yr}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Mr}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return fi}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return ii}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return di}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return ei}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return gi}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Jr}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return er}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return nr}});
|
package/dist/workspace.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./config.cjs"),n=require("./src-
|
|
1
|
+
"use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./config.cjs"),n=require("./src-CqXIkfBq.cjs");let r=require("react"),i=require("next/navigation"),a=require("react/jsx-runtime"),o=require("grab-url");o=e.t(o,1);let s=require("react-reason-editor/reason-docs"),c=require("react-reason-editor/theme"),l=require("react-reason-editor/locale-bundle"),u=require("react-reason-editor-sidebar");require("katex/dist/katex.min.css"),require("easydrawer/styles.css"),require("katex/contrib/mhchem");function d(e){return e.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/gi,` `).replace(/<[^>]+>/g,` `).replace(/ /g,` `).replace(/\s+/g,` `).trim()}var f=async(e,t)=>{try{let n=await(0,o.default)(`agent/page-tips`,{method:`POST`,body:JSON.stringify({title:e,content:t})});return Array.isArray(n.tips)?n.tips:[]}catch{return[]}},p=async(e,t)=>{try{let n=await(0,o.default)(`agent/topic-searches`,{method:`POST`,body:JSON.stringify({title:e,content:t})});return Array.isArray(n.topics)?n.topics:[]}catch{return[]}};function m(){let{activeView:e,toggleToDocs:o,toggleToResearch:m,filesSidebarRequestId:h}=n.c(),{chatTabs:g,activeChatId:_,openChat:v,newChat:y,closeChat:b,closeChats:x}=n.t(),{sendMessage:S}=n.A(),{signIn:C}=n.k(),w=(0,i.useSearchParams)(),[T,E]=(0,r.useState)(null),[D,O]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),[j,M]=(0,r.useState)(null);(0,r.useEffect)(()=>{l.localeActions.setLang(`en`),c.themeActions.setColor(`default`)},[]);let N=(0,r.useRef)(!1);(0,r.useEffect)(()=>{if(N.current)return;N.current=!0;let e=w.get(`docs`),t=w.get(`chat`);e?(O(e),o()):t&&(v(t),m()),A(!0)},[]),(0,r.useEffect)(()=>{if(typeof window>`u`||!k)return;let t=new URL(window.location.href);t.searchParams.set(`chat`,e===`research`?_??``:``),t.searchParams.set(`docs`,e===`docs`?T??``:``);let n=`${t.pathname}?${t.searchParams.toString()}${t.hash}`;n!==`${window.location.pathname}${window.location.search}${window.location.hash}`&&window.history.replaceState(null,``,n)},[e,_,T,k]);let P=g.map(e=>({id:e.id,title:e.title,kind:`chat`})),F=e=>{v(e),m()},I=e=>{let{closedWasActive:t,nextActiveId:n}=b(e);t&&!n&&o()},L=e=>{let{closedWasActive:t,nextActiveId:n}=x(e);t&&!n&&o()},R=()=>{y(),m()},z=(0,r.useCallback)(e=>(v(e),m(),!0),[v,m]);(0,r.useEffect)(()=>(t.configureResearchAgentUI({onOpenChat:z}),()=>t.configureResearchAgentUI({onOpenChat:void 0})),[z]);let B=async(e,t)=>f(e,d(t)),V=async(e,t)=>p(e,d(t)),H=(0,r.useCallback)(e=>{y(),m(),M(e)},[y,m]);(0,r.useEffect)(()=>{j&&_&&(S(j),M(null))},[j,_,S]);let U={extraTabs:P,activeExtraTabId:e===`research`?_??void 0:void 0,onExtraTabSelect:F,onExtraTabClose:I,onExtraTabsClose:L,onExtraTabAdd:R,onFileTabSelect:o,initialDocId:D,onActiveDocumentChange:E,onGenerateTips:B,onGenerateTopics:V,onSearchTopic:H,onSignIn:C};return e===`docs`?(0,a.jsx)(s.ReasonDocs,{SidebarComponent:u.Sidebar,SidebarContentComponent:u.SidebarContent,belowMainContent:(0,a.jsx)(n.E,{}),openFilesSidebarSignal:h,...U}):(0,a.jsx)(s.ReasonDocs,{SidebarComponent:u.Sidebar,SidebarContentComponent:u.SidebarContent,mainContent:(0,a.jsx)(n.f,{}),openFilesSidebarSignal:h,...U})}function h(e){return(0,a.jsx)(n.r,{...e,docsEnabled:!0,children:(0,a.jsx)(m,{})})}exports.ARTICLE_TOOLBAR_SHORTCUTS=n.S,exports.ArticleAIResponse=n.y,exports.ArticleActionButtons=n.C,exports.ArticleContent=n._,exports.ArticleFollowupQuestions=n.b,exports.ArticlePanelHeader=n.T,exports.ArticlePromptInput=n.x,exports.CategoryDock=n.o,exports.ChatInputBox=n.E,exports.ChatProvider=n.D,exports.ChatWindow=n.f,exports.CookieConsent=n.a,exports.ExtractPanelProvider=n.N,exports.HistoryDialogs=n.m,exports.HistoryDropdown=n.p,exports.KokoroVoiceSelector=n.u,exports.LexicalArticleViewer=n.v,exports.MainViewProvider=n.s,exports.QwkSearchApp=n.n,exports.QwkSearchProviders=n.r,exports.QwkSearchWorkspaceApp=h,exports.ResearchWorkspaceView=m,exports.SessionProvider=n.O,exports.UnifiedMarkdown=n.g,exports.VoiceSettingsPanel=n.l,exports.cn=n.F,exports.configureResearchAgentUI=t.configureResearchAgentUI,exports.formatMessageTime=n.I,exports.formatTimeDifference=n.L,exports.formatToolbarShortcut=n.w,exports.getPageTips=f,exports.getTopicSearches=p,exports.htmlToPlainText=d,exports.researchAgentUIConfig=t.researchAgentUIConfig,exports.useChat=n.A,exports.useChatState=n.j,exports.useChatTabs=n.t,exports.useChunkErrorReload=n.i,exports.useExtractPanel=n.P,exports.useHistoryState=n.h,exports.useKokoroTTS=n.d,exports.useMainView=n.c,exports.useSession=n.k,exports.useTextToSpeech=n.M;
|
package/dist/workspace.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import { configureResearchAgentUI as e, researchAgentUIConfig as t } from "./config.mjs";
|
|
4
|
-
import { A as n, C as r, D as i, E as a, F as o, I as s, L as c, M as l, N as u, O as d, P as f, S as p, T as m, _ as h, a as g, b as _, c as v, d as y, f as b, g as x, h as S, i as C, j as w, k as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R } from "./src-
|
|
4
|
+
import { A as n, C as r, D as i, E as a, F as o, I as s, L as c, M as l, N as u, O as d, P as f, S as p, T as m, _ as h, a as g, b as _, c as v, d as y, f as b, g as x, h as S, i as C, j as w, k as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R } from "./src-Bt9uoPG1.js";
|
|
5
5
|
import { useCallback as z, useEffect as B, useRef as V, useState as H } from "react";
|
|
6
6
|
import { useSearchParams as U } from "next/navigation";
|
|
7
7
|
import { jsx as W } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "research-agent-ui",
|
|
3
3
|
"description": "The QwkSearch app UI: conversation window, article reader, search config, file uploads, chat history, and the app shell — exported both with and without the REASON editor and its sidebar",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.170",
|
|
5
5
|
"author": "vtempest",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -90,13 +90,13 @@
|
|
|
90
90
|
"@radix-ui/react-tooltip": "^1.2.16",
|
|
91
91
|
"@ricky0123/vad-web": "^0.0.30",
|
|
92
92
|
"ai": "^7.0.94",
|
|
93
|
-
"chat-agent-toolkit": "^1.2.
|
|
93
|
+
"chat-agent-toolkit": "^1.2.301",
|
|
94
94
|
"class-variance-authority": "^0.7.1",
|
|
95
95
|
"clsx": "^2.1.1",
|
|
96
|
-
"domain-rank": "^0.1.
|
|
96
|
+
"domain-rank": "^0.1.291",
|
|
97
97
|
"dompurify": "^3.4.15",
|
|
98
98
|
"drizzle-orm": "^0.45.2",
|
|
99
|
-
"extract-webpage": "^1.2.
|
|
99
|
+
"extract-webpage": "^1.2.296",
|
|
100
100
|
"framer-motion": "^13.2.0",
|
|
101
101
|
"fuse.js": "^7.5.0",
|
|
102
102
|
"grab-url": "^1.6.22",
|
|
@@ -106,21 +106,21 @@
|
|
|
106
106
|
"markdown-to-jsx": "^9.10.2",
|
|
107
107
|
"motion": "^13.2.0",
|
|
108
108
|
"quantum-sphere-loading-icon": "^1.0.3",
|
|
109
|
-
"qwksearch-api-client": "^0.9.
|
|
109
|
+
"qwksearch-api-client": "^0.9.243",
|
|
110
110
|
"react-icons": "^5.7.0",
|
|
111
111
|
"react-native-app-buttons": "^0.1.4",
|
|
112
112
|
"react-textarea-autosize": "^8.5.9",
|
|
113
|
-
"search-web-api": "^1.0.
|
|
114
|
-
"shadcn-app-dock": "^0.1.
|
|
113
|
+
"search-web-api": "^1.0.153",
|
|
114
|
+
"shadcn-app-dock": "^0.1.151",
|
|
115
115
|
"shadcn-theme-menu": "^1.1.47",
|
|
116
116
|
"sonner": "^2.0.8",
|
|
117
117
|
"streamdown": "^2.6.0",
|
|
118
118
|
"tailwind-merge": "^3.6.0",
|
|
119
119
|
"tldts": "^7.4.12",
|
|
120
|
-
"trending-news-api": "^0.1.
|
|
120
|
+
"trending-news-api": "^0.1.29",
|
|
121
121
|
"turndown": "^7.2.4",
|
|
122
122
|
"use-voice-control": "^0.1.95",
|
|
123
|
-
"use-weather-forecast": "^0.1.
|
|
123
|
+
"use-weather-forecast": "^0.1.115"
|
|
124
124
|
},
|
|
125
125
|
"devDependencies": {
|
|
126
126
|
"@cloudflare/workers-types": "^5.20260908.1",
|
|
@@ -139,8 +139,8 @@
|
|
|
139
139
|
"next": "^16.3.4",
|
|
140
140
|
"react": "^19.2.8",
|
|
141
141
|
"react-dom": "^19.2.8",
|
|
142
|
-
"react-reason-editor": "^1.0.
|
|
143
|
-
"react-reason-editor-sidebar": "^0.1.
|
|
142
|
+
"react-reason-editor": "^1.0.103",
|
|
143
|
+
"react-reason-editor-sidebar": "^0.1.20",
|
|
144
144
|
"storybook": "^10.6.0",
|
|
145
145
|
"tailwindcss": "^4.3.3",
|
|
146
146
|
"typescript": "^7.0.2",
|
package/src/settings/index.ts
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
* reads/writes the values and the components that render them — means the list
|
|
11
11
|
* of settings can change without touching rendering or persistence code.
|
|
12
12
|
*/
|
|
13
|
+
import {
|
|
14
|
+
followUpSuggestionsPrompt,
|
|
15
|
+
webSearchRetrieverPrompt,
|
|
16
|
+
} from "chat-agent-toolkit/prompts/search-prompts";
|
|
13
17
|
import sectionsJson from "./sections.json";
|
|
14
18
|
import searchJson from "./search.json";
|
|
15
19
|
|
|
@@ -52,6 +56,8 @@ export interface SettingsFieldSchema {
|
|
|
52
56
|
env?: string;
|
|
53
57
|
options?: SettingsFieldOption[];
|
|
54
58
|
links?: SettingsFieldLink[];
|
|
59
|
+
/** Visible row count for `textarea` fields. Defaults to 4. */
|
|
60
|
+
rows?: number;
|
|
55
61
|
}
|
|
56
62
|
|
|
57
63
|
/** Metadata describing one entry in the settings sidebar/menu. */
|
|
@@ -72,9 +78,27 @@ export interface SettingsSectionSchema {
|
|
|
72
78
|
export const settingsSections: SettingsSectionSchema[] =
|
|
73
79
|
sectionsJson as unknown as SettingsSectionSchema[];
|
|
74
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Prompt-editing fields ship with an empty `default` in `search.json` so the
|
|
83
|
+
* prompt text itself has exactly one home: the toolkit's prompt module. The
|
|
84
|
+
* live template is spliced in here, which means the settings textarea shows
|
|
85
|
+
* the real prompt the agent runs, pre-filled and ready to edit. Clearing the
|
|
86
|
+
* box stores an empty string, and every consumer treats blank as "use the
|
|
87
|
+
* built-in template" — so the prompts stay in sync as the toolkit evolves.
|
|
88
|
+
*/
|
|
89
|
+
const PROMPT_FIELD_DEFAULTS: Record<string, string> = {
|
|
90
|
+
followUpQuestionsPrompt: followUpSuggestionsPrompt,
|
|
91
|
+
queryExpansionPrompt: webSearchRetrieverPrompt,
|
|
92
|
+
};
|
|
93
|
+
|
|
75
94
|
/** Field declarations for the "Search Settings" section. */
|
|
76
|
-
export const searchSettingsFields: SettingsFieldSchema[] =
|
|
77
|
-
searchJson as unknown as SettingsFieldSchema[]
|
|
95
|
+
export const searchSettingsFields: SettingsFieldSchema[] = (
|
|
96
|
+
searchJson as unknown as SettingsFieldSchema[]
|
|
97
|
+
).map((field) =>
|
|
98
|
+
field.key in PROMPT_FIELD_DEFAULTS
|
|
99
|
+
? { ...field, default: PROMPT_FIELD_DEFAULTS[field.key] }
|
|
100
|
+
: field,
|
|
101
|
+
);
|
|
78
102
|
|
|
79
103
|
/** Every field group keyed by the section `dataAdd` it belongs to. */
|
|
80
104
|
export const settingsFieldsBySection: Record<string, SettingsFieldSchema[]> = {
|
package/src/settings/search.json
CHANGED
|
@@ -83,6 +83,28 @@
|
|
|
83
83
|
"default": "4",
|
|
84
84
|
"scope": "client"
|
|
85
85
|
},
|
|
86
|
+
{
|
|
87
|
+
"name": "Follow-up Questions Prompt",
|
|
88
|
+
"key": "followUpQuestionsPrompt",
|
|
89
|
+
"type": "textarea",
|
|
90
|
+
"required": false,
|
|
91
|
+
"description": "Prompt used to generate the follow-up question suggestions shown after each answer. Use {maxQuestions} for the count set above and {chat_history} for the conversation. Clear the box to restore the built-in prompt.",
|
|
92
|
+
"placeholder": "Leave blank to use the built-in follow-up prompt.",
|
|
93
|
+
"default": "",
|
|
94
|
+
"rows": 14,
|
|
95
|
+
"scope": "client"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "Query Expansion Prompt",
|
|
99
|
+
"key": "queryExpansionPrompt",
|
|
100
|
+
"type": "textarea",
|
|
101
|
+
"required": false,
|
|
102
|
+
"description": "Prompt that rewrites your message into a standalone web-search query before sources are fetched. Keep returning the query inside a <question> block, and any URLs inside a <links> block. Clear the box to restore the built-in prompt.",
|
|
103
|
+
"placeholder": "Leave blank to use the built-in query expansion prompt.",
|
|
104
|
+
"default": "",
|
|
105
|
+
"rows": 14,
|
|
106
|
+
"scope": "client"
|
|
107
|
+
},
|
|
86
108
|
{
|
|
87
109
|
"name": "SearXNG URL",
|
|
88
110
|
"key": "searxngURL",
|