khoj 1.38.0__py3-none-any.whl → 1.38.1.dev8__py3-none-any.whl

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.
Files changed (43) hide show
  1. khoj/interface/compiled/404/index.html +2 -2
  2. khoj/interface/compiled/_next/static/chunks/app/agents/{layout-5961c3717e1d8813.js → layout-47a59a404205b142.js} +1 -1
  3. khoj/interface/compiled/_next/static/chunks/app/agents/{page-0d31f76257d6ec11.js → page-df5446aa4fb82e1a.js} +1 -1
  4. khoj/interface/compiled/_next/static/chunks/app/automations/{page-c6180af69fc9c766.js → page-0a44416f9183aec0.js} +1 -1
  5. khoj/interface/compiled/_next/static/chunks/app/chat/{layout-3e25af7224d678a0.js → layout-904fbbb3974588da.js} +1 -1
  6. khoj/interface/compiled/_next/static/chunks/app/chat/{page-926ee054e844236a.js → page-d273748c128b0103.js} +1 -1
  7. khoj/interface/compiled/_next/static/chunks/app/{page-df51e61295c4a9b5.js → page-aad371f66ac52191.js} +1 -1
  8. khoj/interface/compiled/_next/static/chunks/app/search/{layout-9ccd090dcc2aa58a.js → layout-d7f7528ff387fba5.js} +1 -1
  9. khoj/interface/compiled/_next/static/chunks/app/search/{page-098017fa7f6ba0bf.js → page-1df7b236b30620f7.js} +1 -1
  10. khoj/interface/compiled/_next/static/chunks/app/settings/{page-1ff027f4e0a5c468.js → page-3473bab693ef81b2.js} +1 -1
  11. khoj/interface/compiled/_next/static/chunks/app/share/chat/{layout-9cc742afcea0b421.js → layout-d090bd23befd0207.js} +1 -1
  12. khoj/interface/compiled/_next/static/chunks/app/share/chat/page-33d056fbcb8ec85d.js +1 -0
  13. khoj/interface/compiled/_next/static/chunks/{webpack-449ea2835ec65e75.js → webpack-a77851fd9ac3f61e.js} +1 -1
  14. khoj/interface/compiled/_next/static/css/37a73b87f02df402.css +1 -0
  15. khoj/interface/compiled/_next/static/css/f29752d6e1be7624.css +1 -0
  16. khoj/interface/compiled/_next/static/css/{0db53bacf81896f5.css → fca983d49c3dd1a3.css} +1 -1
  17. khoj/interface/compiled/agents/index.html +2 -2
  18. khoj/interface/compiled/agents/index.txt +3 -3
  19. khoj/interface/compiled/automations/index.html +2 -2
  20. khoj/interface/compiled/automations/index.txt +2 -2
  21. khoj/interface/compiled/chat/index.html +2 -2
  22. khoj/interface/compiled/chat/index.txt +3 -3
  23. khoj/interface/compiled/index.html +2 -2
  24. khoj/interface/compiled/index.txt +2 -2
  25. khoj/interface/compiled/search/index.html +2 -2
  26. khoj/interface/compiled/search/index.txt +3 -3
  27. khoj/interface/compiled/settings/index.html +2 -2
  28. khoj/interface/compiled/settings/index.txt +2 -2
  29. khoj/interface/compiled/share/chat/index.html +2 -2
  30. khoj/interface/compiled/share/chat/index.txt +3 -3
  31. khoj/processor/conversation/prompts.py +6 -5
  32. khoj/processor/tools/online_search.py +105 -25
  33. khoj/processor/tools/run_code.py +3 -1
  34. {khoj-1.38.0.dist-info → khoj-1.38.1.dev8.dist-info}/METADATA +1 -1
  35. {khoj-1.38.0.dist-info → khoj-1.38.1.dev8.dist-info}/RECORD +40 -40
  36. khoj/interface/compiled/_next/static/chunks/app/share/chat/page-1cd2b85467ff5e13.js +0 -1
  37. khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css +0 -1
  38. khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css +0 -1
  39. /khoj/interface/compiled/_next/static/{eDBLPimVV9NX04eZPClo_ → uk8qKhIhC6cA4CuzyEzuD}/_buildManifest.js +0 -0
  40. /khoj/interface/compiled/_next/static/{eDBLPimVV9NX04eZPClo_ → uk8qKhIhC6cA4CuzyEzuD}/_ssgManifest.js +0 -0
  41. {khoj-1.38.0.dist-info → khoj-1.38.1.dev8.dist-info}/WHEEL +0 -0
  42. {khoj-1.38.0.dist-info → khoj-1.38.1.dev8.dist-info}/entry_points.txt +0 -0
  43. {khoj-1.38.0.dist-info → khoj-1.38.1.dev8.dist-info}/licenses/LICENSE +0 -0
@@ -38,6 +38,7 @@ SERPER_DEV_URL = "https://google.serper.dev/search"
38
38
  JINA_SEARCH_API_URL = "https://s.jina.ai/"
39
39
  JINA_API_KEY = os.getenv("JINA_API_KEY")
40
40
 
41
+ FIRECRAWL_API_KEY = os.getenv("FIRECRAWL_API_KEY")
41
42
  FIRECRAWL_USE_LLM_EXTRACT = is_env_var_true("FIRECRAWL_USE_LLM_EXTRACT")
42
43
 
43
44
  OLOSTEP_QUERY_PARAMS = {
@@ -95,29 +96,40 @@ async def search_online(
95
96
  yield response_dict
96
97
  return
97
98
 
99
+ search_engines = []
100
+ if SERPER_DEV_API_KEY:
101
+ search_engine = "Serper"
102
+ search_engines.append((search_engine, search_with_serper))
98
103
  if GOOGLE_SEARCH_API_KEY and GOOGLE_SEARCH_ENGINE_ID:
99
104
  search_engine = "Google"
100
- search_func = search_with_google
101
- elif SERPER_DEV_API_KEY:
102
- search_engine = "Serper"
103
- search_func = search_with_serper
104
- elif JINA_API_KEY:
105
+ search_engines.append((search_engine, search_with_google))
106
+ if FIRECRAWL_API_KEY:
107
+ search_engine = "Firecrawl"
108
+ search_engines.append((search_engine, search_with_firecrawl))
109
+ if JINA_API_KEY:
105
110
  search_engine = "Jina"
106
- search_func = search_with_jina
107
- else:
108
- search_engine = "Searxng"
109
- search_func = search_with_searxng
111
+ search_engines.append((search_engine, search_with_jina))
112
+ search_engine = "Searxng"
113
+ search_engines.append((search_engine, search_with_searxng))
110
114
 
111
- logger.info(f"🌐 Searching the Internet with {search_engine} for {subqueries}")
115
+ logger.info(f"🌐 Searching the Internet for {subqueries}")
112
116
  if send_status_func:
113
117
  subqueries_str = "\n- " + "\n- ".join(subqueries)
114
118
  async for event in send_status_func(f"**Searching the Internet for**: {subqueries_str}"):
115
119
  yield {ChatEvent.STATUS: event}
116
120
 
117
- with timer(f"Internet searches for {subqueries} took", logger):
118
- search_tasks = [search_func(subquery, location) for subquery in subqueries]
119
- search_results = await asyncio.gather(*search_tasks)
120
- response_dict = {subquery: search_result for subquery, search_result in search_results}
121
+ response_dict = {}
122
+ for search_engine, search_func in search_engines:
123
+ with timer(f"Internet searches with {search_engine} for {subqueries} took", logger):
124
+ try:
125
+ search_tasks = [search_func(subquery, location) for subquery in subqueries]
126
+ search_results = await asyncio.gather(*search_tasks)
127
+ response_dict = {subquery: search_result for subquery, search_result in search_results if search_result}
128
+ if not is_none_or_empty(response_dict):
129
+ break
130
+ except Exception as e:
131
+ logger.error(f"Error searching with {search_engine}: {e}")
132
+ response_dict = {}
121
133
 
122
134
  # Gather distinct web pages from organic results for subqueries without an instant answer.
123
135
  webpages: Dict[str, Dict] = {}
@@ -159,6 +171,69 @@ async def search_online(
159
171
  yield response_dict
160
172
 
161
173
 
174
+ async def search_with_firecrawl(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
175
+ """
176
+ Search using Firecrawl API.
177
+
178
+ Args:
179
+ query: The search query string
180
+ location: Location data for geolocation-based search
181
+
182
+ Returns:
183
+ Tuple containing the original query and a dictionary of search results
184
+ """
185
+ # Set up API endpoint and headers
186
+ firecrawl_api_url = "https://api.firecrawl.dev/v1/search"
187
+ headers = {"Content-Type": "application/json", "Authorization": f"Bearer {FIRECRAWL_API_KEY}"}
188
+
189
+ # Prepare request payload
190
+ country_code = location.country_code.lower() if location and location.country_code else "us"
191
+ payload = {
192
+ "query": query,
193
+ "limit": 10, # Maximum number of results
194
+ "country": country_code,
195
+ "lang": "en",
196
+ "timeout": 10000,
197
+ "scrapeOptions": {},
198
+ }
199
+
200
+ # Add location parameter if available
201
+ if location and location.city:
202
+ payload["location"] = f"{location.city}, {location.region}, {location.country}"
203
+
204
+ async with aiohttp.ClientSession() as session:
205
+ try:
206
+ async with session.post(firecrawl_api_url, headers=headers, json=payload) as response:
207
+ if response.status != 200:
208
+ error_text = await response.text()
209
+ logger.error(f"Firecrawl search failed: {error_text}")
210
+ return query, {}
211
+
212
+ response_json = await response.json()
213
+
214
+ if not response_json.get("success", False):
215
+ logger.error(f"Firecrawl search failed: {response_json.get('warning', 'Unknown error')}")
216
+ return query, {}
217
+
218
+ # Transform Firecrawl response to match the expected format
219
+ organic_results = []
220
+ for item in response_json.get("data", []):
221
+ organic_results.append(
222
+ {
223
+ "title": item["title"],
224
+ "link": item["url"],
225
+ "snippet": item["description"],
226
+ "content": item.get("markdown", None),
227
+ }
228
+ )
229
+
230
+ return query, {"organic": organic_results}
231
+
232
+ except Exception as e:
233
+ logger.error(f"Error searching with Firecrawl: {str(e)}")
234
+ return query, {}
235
+
236
+
162
237
  async def search_with_searxng(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
163
238
  """Search using local SearXNG instance."""
164
239
  # Use environment variable or default to localhost
@@ -251,9 +326,16 @@ async def search_with_google(query: str, location: LocationData) -> Tuple[str, D
251
326
 
252
327
 
253
328
  async def search_with_serper(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
329
+ headers = {"X-API-KEY": SERPER_DEV_API_KEY, "Content-Type": "application/json"}
254
330
  country_code = location.country_code.lower() if location and location.country_code else "us"
331
+ max_query_length = 2048
332
+ if len(query) > max_query_length:
333
+ logger.warning(
334
+ f"Truncate online query. Query length {len(query)} exceeds {max_query_length} supported by Serper. Query: {query}"
335
+ )
336
+ query = query[:max_query_length]
337
+
255
338
  payload = json.dumps({"q": query, "gl": country_code})
256
- headers = {"X-API-KEY": SERPER_DEV_API_KEY, "Content-Type": "application/json"}
257
339
 
258
340
  async with aiohttp.ClientSession() as session:
259
341
  async with session.post(SERPER_DEV_URL, headers=headers, data=payload) as response:
@@ -398,16 +480,16 @@ async def read_webpage_with_olostep(web_url: str, api_key: str, api_url: str) ->
398
480
 
399
481
 
400
482
  async def read_webpage_with_jina(web_url: str, api_key: str, api_url: str) -> str:
401
- jina_reader_api_url = f"{api_url}/{web_url}"
402
- headers = {"Accept": "application/json", "X-Timeout": "30"}
483
+ headers = {"Accept": "application/json", "X-Timeout": "30", "X-With-Generated-Alt": "true"}
484
+ data = {"url": web_url}
403
485
  if api_key:
404
486
  headers["Authorization"] = f"Bearer {api_key}"
405
487
 
406
488
  async with aiohttp.ClientSession() as session:
407
- async with session.get(jina_reader_api_url, headers=headers) as response:
489
+ async with session.post(api_url, json=data, headers=headers) as response:
408
490
  response.raise_for_status()
409
- response_json = await response.json()
410
- return response_json["data"]["content"]
491
+ content = await response.text()
492
+ return content
411
493
 
412
494
 
413
495
  async def read_webpage_with_firecrawl(web_url: str, api_key: str, api_url: str) -> str:
@@ -459,10 +541,6 @@ Collate only relevant information from the website to answer the target query an
459
541
 
460
542
 
461
543
  async def search_with_jina(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
462
- encoded_query = urllib.parse.quote(query)
463
- jina_search_api_url = f"{JINA_SEARCH_API_URL}/{encoded_query}"
464
- headers = {"Accept": "application/json"}
465
-
466
544
  # First check for jina scraper configuration in database
467
545
  default_jina_scraper = (
468
546
  await ServerChatSettings.objects.filter()
@@ -477,13 +555,15 @@ async def search_with_jina(query: str, location: LocationData) -> Tuple[str, Dic
477
555
  jina_scraper = await WebScraper.objects.filter(type=WebScraper.WebScraperType.JINA).afirst()
478
556
 
479
557
  # Get API key from DB scraper config or environment variable
558
+ data = {"q": query}
559
+ headers = {"Accept": "application/json", "X-Respond-With": "no-content"}
480
560
  api_key = jina_scraper.api_key if jina_scraper and jina_scraper.api_key else JINA_API_KEY
481
561
 
482
562
  if api_key:
483
563
  headers["Authorization"] = f"Bearer {api_key}"
484
564
 
485
565
  async with aiohttp.ClientSession() as session:
486
- async with session.get(jina_search_api_url, headers=headers) as response:
566
+ async with session.post(JINA_SEARCH_API_URL, json=data, headers=headers) as response:
487
567
  if response.status != 200:
488
568
  error_text = await response.text()
489
569
  logger.error(f"Jina search failed: {error_text}")
@@ -139,12 +139,14 @@ async def generate_python_code(
139
139
  prompts.e2b_sandbox_context if is_e2b_code_sandbox_enabled() else prompts.terrarium_sandbox_context
140
140
  )
141
141
  personality_context = f"{sandbox_context}\n{personality_context}"
142
+ network_access_context = "**NO** " if not is_e2b_code_sandbox_enabled() else ""
142
143
 
143
144
  code_generation_prompt = prompts.python_code_generation_prompt.format(
144
- current_date=utc_date,
145
145
  query=q,
146
146
  chat_history=chat_history,
147
147
  context=context,
148
+ has_network_access=network_access_context,
149
+ current_date=utc_date,
148
150
  location=location,
149
151
  username=username,
150
152
  personality_context=personality_context,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: khoj
3
- Version: 1.38.0
3
+ Version: 1.38.1.dev8
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -127,15 +127,15 @@ khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvt
127
127
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
128
128
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
129
129
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
130
- khoj/interface/compiled/index.html,sha256=tkgusBAyf5-mw66dcc7UEkxSSFW5ybhGTGDfhAD7VtI,53319
131
- khoj/interface/compiled/index.txt,sha256=MT3-b_u2sAZcCruZPOTgfs3XMwXa1CyfTNWnbBP2OxE,7717
130
+ khoj/interface/compiled/index.html,sha256=svq-HlzWkXMS4v1dXj3Za9-oWNo5sTUc2g_fCPT4Kgw,53009
131
+ khoj/interface/compiled/index.txt,sha256=buZLsuaalOgtr_OerPYAPSJJi9hZMnXLPcFLrXG-4cg,7584
132
132
  khoj/interface/compiled/khoj.webmanifest,sha256=9wOK2BMS6xH5NKd2eaUgTLg9WepIxB2K2U33KU89LD8,2543
133
133
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
134
134
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
135
135
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
136
136
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
137
137
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
138
- khoj/interface/compiled/404/index.html,sha256=nRZQxFxZDMj_BMo0drr4DtKeVKfdPi2fs7mZfRMdJ5Q,17063
138
+ khoj/interface/compiled/404/index.html,sha256=8XIZCRGzYoflEUXliG9LPie-OZDcYZnd2LA7k-zqzSk,17063
139
139
  khoj/interface/compiled/_next/static/chunks/1160-8e7e42e77145b712.js,sha256=-QFyQbKtlBEXOxl_xK246z8WERbIc88SU1RehiTjcaI,317731
140
140
  khoj/interface/compiled/_next/static/chunks/1243.ea2826fb35adb15a.js,sha256=Y6ceAwyTH4HSGDvBRoBB-RVXRCzGGr8NSPcspYF5OM8,182
141
141
  khoj/interface/compiled/_next/static/chunks/133.392ae90c3b2a67f2.js,sha256=IK-mb9ZlF6uJUdU8AuXsppc99tFL8svJvZtKNZGNtcY,411
@@ -201,34 +201,32 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
201
201
  khoj/interface/compiled/_next/static/chunks/main-876327ac335776ab.js,sha256=JkQUmA9vh1B4VVGF5dbZ8Kun0AnIVUbZr5IBK90T4Zs,111290
202
202
  khoj/interface/compiled/_next/static/chunks/main-app-de1f09df97a3cfc7.js,sha256=bqnztujKItXfFBzQlaBmDZyfJpQt_M93CXOuchJfpD0,471
203
203
  khoj/interface/compiled/_next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
204
- khoj/interface/compiled/_next/static/chunks/webpack-449ea2835ec65e75.js,sha256=q5eV3ZaR-EYNga-QehWlJJC2XZe_z15cWkrDWyB2hdw,4891
204
+ khoj/interface/compiled/_next/static/chunks/webpack-a77851fd9ac3f61e.js,sha256=Fp10ipK2JntI9zdQsfYfOO_McWXNMD8YkYjgirRJEug,4891
205
205
  khoj/interface/compiled/_next/static/chunks/app/layout-bd8210ff1de491d7.js,sha256=8gTcL8-sV5oa7vJRTxlgOpZvhNrsKomsu75DpVpqfE0,3983
206
- khoj/interface/compiled/_next/static/chunks/app/page-df51e61295c4a9b5.js,sha256=Jtm6XRwe69g_JpU_0cs4VCFWhPWhUagFKfBGZX0I4bo,31223
206
+ khoj/interface/compiled/_next/static/chunks/app/page-aad371f66ac52191.js,sha256=WYybaSmeeef9dlJmJZNPM0FYBKrtKu0cNT8ZO9sWYnc,31218
207
207
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-0ec97c4970898f2d.js,sha256=zElhiTkdu2JqrEvJ8Lrxh4HCyfLmPllBHHWOuDtrVlw,1755
208
- khoj/interface/compiled/_next/static/chunks/app/agents/layout-5961c3717e1d8813.js,sha256=aZPuT0zAh0R0UEEYnuECRlf7jwbRPWGNDOalN9hOYZ8,3455
209
- khoj/interface/compiled/_next/static/chunks/app/agents/page-0d31f76257d6ec11.js,sha256=oWl_zLRFvxZp60jGau8Vi6dvr83y68yyBtEBRjEaF58,18319
208
+ khoj/interface/compiled/_next/static/chunks/app/agents/layout-47a59a404205b142.js,sha256=JlTz_lpdcTWxbXJ5STs1iOFOXBwSwkWyrUkczyUr0mI,3455
209
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-df5446aa4fb82e1a.js,sha256=I_L7ZSMnaB2S_8G4GqkbnjSZH8IPvZV6j9b-3Afr8e8,18314
210
210
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f5c33a70e46b3af.js,sha256=s2wHeQ-ai9rKyU9EjOGY1Yo51L4ZEkjLtML85BqN3Zc,5143
211
- khoj/interface/compiled/_next/static/chunks/app/automations/page-c6180af69fc9c766.js,sha256=5UqvUzxfTu8XqS1o9enSFi3jFZ6OmpCIW-Vzvhbb8Pc,34836
212
- khoj/interface/compiled/_next/static/chunks/app/chat/layout-3e25af7224d678a0.js,sha256=GdLRvoYSJiXx3limcAoEnq5fOiuDey_7d23CZ9b6c1A,3455
213
- khoj/interface/compiled/_next/static/chunks/app/chat/page-926ee054e844236a.js,sha256=YgxOe-lQsomVqIflMsdH6ciSq1r1mvZQGkg3PeBKTlM,28294
214
- khoj/interface/compiled/_next/static/chunks/app/search/layout-9ccd090dcc2aa58a.js,sha256=YpMcmZ-rIm4KgkDJr9jncqcoVZodRdiiTNx1iBdN51w,3455
215
- khoj/interface/compiled/_next/static/chunks/app/search/page-098017fa7f6ba0bf.js,sha256=uP1wUboLrSP3hT2XxW98YvLjmcJnBV26vv0SBkV9dmk,32714
211
+ khoj/interface/compiled/_next/static/chunks/app/automations/page-0a44416f9183aec0.js,sha256=kNkQ123aqeoAe5yTaHWdSUMGaK_JJYHYASI3tYTiNbI,34831
212
+ khoj/interface/compiled/_next/static/chunks/app/chat/layout-904fbbb3974588da.js,sha256=QNx6UorqNpWPXrNjy7bk0G0WECLHuQhhTiY6ud-p950,3455
213
+ khoj/interface/compiled/_next/static/chunks/app/chat/page-d273748c128b0103.js,sha256=dmvRZosKH-SUZ4K8yVQjpzFiVtS3COnSa4oWqWmh76o,28289
214
+ khoj/interface/compiled/_next/static/chunks/app/search/layout-d7f7528ff387fba5.js,sha256=gqFAh3XbMePX_EKoABr5uOnxwNLGa-cl5G84h0cGcnM,3455
215
+ khoj/interface/compiled/_next/static/chunks/app/search/page-1df7b236b30620f7.js,sha256=pMegRbrl32l9jxn1EvT9u-o877tSZ9jzOq7keoNxeDQ,32714
216
216
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-a7262b2bb8c7ae64.js,sha256=lvyfWVLYyJsxhQvh5UWUVUBM71nmq9DdsmmnVfFXCgk,9401
217
- khoj/interface/compiled/_next/static/chunks/app/settings/page-1ff027f4e0a5c468.js,sha256=srmYMIrDRYeZ9Md98V-WHuNUoVQMETpD4zt5OEEdpAU,30575
218
- khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-9cc742afcea0b421.js,sha256=Xuq31gs_tCtfympW0yXKmxvY9rJ-dLv7LoS2NolWuY8,3455
219
- khoj/interface/compiled/_next/static/chunks/app/share/chat/page-1cd2b85467ff5e13.js,sha256=0Sq7YAnRTpfQGXd-X0fu57w9Qsbu8KzGIiiU2zkBmyo,5539
217
+ khoj/interface/compiled/_next/static/chunks/app/settings/page-3473bab693ef81b2.js,sha256=NJ-y_h09m915fni0dLftBeDlzkWKP50XbtXbFU-tJZM,30570
218
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-d090bd23befd0207.js,sha256=YhBDJH985TnoOYRDbSi79kr7TovwVi6oxYa8JexlsBk,3455
219
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/page-33d056fbcb8ec85d.js,sha256=sIZLtgk12BydOeBKLY7MkfLPJgQ_wILvcjln3B79JIg,5563
220
220
  khoj/interface/compiled/_next/static/chunks/pages/_app-3c9ca398d360b709.js,sha256=UqtikLsCsOWtDUJOW6Tuk9P-bV1V3MhYd3ghrQuEmfs,286
221
221
  khoj/interface/compiled/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js,sha256=w_It3VzKT8O1M3CrJ_hZHsaU7M7dq3EAaVG8KvJ-fhU,253
222
- khoj/interface/compiled/_next/static/css/0db53bacf81896f5.css,sha256=7Kq40hXKsqTnQEz4otvA49gEDms7a0XAFCB0rwrnXQo,30547
223
222
  khoj/interface/compiled/_next/static/css/0ddca54f48cc6850.css,sha256=3ewc3-WlnLVSDnoVwktQjsS7OS1F8GMBKVQM6Anexx0,3075770
223
+ khoj/interface/compiled/_next/static/css/37a73b87f02df402.css,sha256=hp0vlekKu0K2eITR5YIqFmLHQPqV3JETFnRd_-Uh0mk,165
224
224
  khoj/interface/compiled/_next/static/css/76c658ee459140a9.css,sha256=7tI24VB66ZUsAPUxRdQhboopun0AXLUnF64uv9RkC08,1833
225
225
  khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css,sha256=IUkZhkx4GpYOIhN-EJw9T1DqGMO3Wa3mNpUwaOBuZoY,7204
226
- khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css,sha256=PBwues3rUFWl02xEnWqKbRFK59SkQUCqYuV45ZedG4U,3318
227
226
  khoj/interface/compiled/_next/static/css/e4eb883b5265d372.css,sha256=6LaW-lQ_ZpgOJNWYwU1Q1egXZ1aqJDEuRj66oRCIU_E,17748
228
227
  khoj/interface/compiled/_next/static/css/ea5485b3f3859a5a.css,sha256=tn6qi2xSLTWhtzDUE8UlC8iipH9QGV6A9oGj1ap-Sk4,1659
229
- khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css,sha256=3JbJLrnwlX_IHdvjmS3l9y3Vgp5_V0XbfFI44ekLh9E,3106
230
- khoj/interface/compiled/_next/static/eDBLPimVV9NX04eZPClo_/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
231
- khoj/interface/compiled/_next/static/eDBLPimVV9NX04eZPClo_/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
228
+ khoj/interface/compiled/_next/static/css/f29752d6e1be7624.css,sha256=mLPRnYpBFaVhTMJ3CFou5_lrwLJs2mhBlAjNY2lrRYs,6354
229
+ khoj/interface/compiled/_next/static/css/fca983d49c3dd1a3.css,sha256=3F1qPtz6PQG-gIpo8h3rAfxreAc2Uvxy8F_G2e78EsM,30452
232
230
  khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2,sha256=IzKBwB_bpSGvO7C9aRv29Js-jAbZPRDI-D-P4H2P918,14508
233
231
  khoj/interface/compiled/_next/static/media/2aa11a72f7f24b58-s.woff2,sha256=QjuuSKmViymmy-itXLB1UbSARxFNHWuMiPpCrYqClFI,22728
234
232
  khoj/interface/compiled/_next/static/media/383a65b63658737d-s.woff2,sha256=VH1XkI87HdFVhsurH5D5ekEjG_ZORTVBVg6xz7p87C8,16704
@@ -306,8 +304,10 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
306
304
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
307
305
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
308
306
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
309
- khoj/interface/compiled/agents/index.html,sha256=atCPzJElZ61ql4SS6i1r-OAQoWnbdQiPv2tzCpXNWTQ,19567
310
- khoj/interface/compiled/agents/index.txt,sha256=fwOSgkBGLAd2_veQY1b1u4BHhQLSINAnmA-IpFxeAY8,8839
307
+ khoj/interface/compiled/_next/static/uk8qKhIhC6cA4CuzyEzuD/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
308
+ khoj/interface/compiled/_next/static/uk8qKhIhC6cA4CuzyEzuD/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
309
+ khoj/interface/compiled/agents/index.html,sha256=6IYZ9RoyOGpuHHh__l0OFPe01_-lpD5G9nduO698_Xk,19256
310
+ khoj/interface/compiled/agents/index.txt,sha256=C2ui7B2ZmmTC9UJXFTPZbqld1GimW06dYVezGtNW0QA,8706
311
311
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
312
312
  khoj/interface/compiled/assets/icons/khoj_lantern.svg,sha256=I_8XP5X84gEOoCRhCRKOQn_GKZrz3SUBXct7WxHvY7c,8767
313
313
  khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png,sha256=xDx0bbD-WMflgg8zck9oPIIuTIvywtuED2k7CjSQS4w,66194
@@ -322,16 +322,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
322
322
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
323
323
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
324
324
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
325
- khoj/interface/compiled/automations/index.html,sha256=5ZvDZgkrmPglGyQEGxrDzy5eZA-4103tjwwFv1GAod0,56234
326
- khoj/interface/compiled/automations/index.txt,sha256=iDweHNlz-QYpNSBbT0sKchOTgMJhU4Wyz7Hv91zSA4U,8436
327
- khoj/interface/compiled/chat/index.html,sha256=Y92Kftfat_-A7mFN2vmAkOXeiBqL0gyU-b68OIrR87A,56561
328
- khoj/interface/compiled/chat/index.txt,sha256=P3LpQQwEjtTPweozjFkuM9ChKky_ls8b-ty8GQUqYEo,9475
329
- khoj/interface/compiled/search/index.html,sha256=iALaXzFXzdMU2IuylJxiLt0V1S1n7tWfDOGBiIlnpBg,58213
330
- khoj/interface/compiled/search/index.txt,sha256=9XFtQ6rdSGDL5S-BPZ6uXMw9qrtwRXpt8ZVhSGa4e3I,7990
331
- khoj/interface/compiled/settings/index.html,sha256=X0eAVnPP_AcLxRb_GdP9X-PsFyCSSoPKI5dFtvWSl6U,56257
332
- khoj/interface/compiled/settings/index.txt,sha256=lOgmD5HQT2luzYx-Z_YxqjaT6LFWn-73J10UtIZF8WA,9564
333
- khoj/interface/compiled/share/chat/index.html,sha256=1_T-FgpsbEP0XCsMcW9SF2pH6lEChwqHUvJ2Nj9A-ao,57153
334
- khoj/interface/compiled/share/chat/index.txt,sha256=IpKAsBlgLdwBSnTaIHrdxpTMEH1KSnokNPNXkz4ILFM,9943
325
+ khoj/interface/compiled/automations/index.html,sha256=XJSQW7gRS1NsfF47kmDPOLJkXSe6wyq1Y2jjdd_3u2A,55923
326
+ khoj/interface/compiled/automations/index.txt,sha256=cUoPeYu7ZFZfSDZeQegaF9_BZeUcfMd5J_1_R2JGbqY,8303
327
+ khoj/interface/compiled/chat/index.html,sha256=JoRW5seYd6lT7os9wMqI9CU0E6FdKo0VHZOTqVC9a44,56251
328
+ khoj/interface/compiled/chat/index.txt,sha256=t0ArseLxNsNi0g_D5c2srogGB4z_6RbGEUX802kdkTg,9342
329
+ khoj/interface/compiled/search/index.html,sha256=iLrpurmA9TaeKsk-hVU1KTPsO9oclzSBqICw5dxFZGI,58213
330
+ khoj/interface/compiled/search/index.txt,sha256=-fvdeLlH32Z0WDhhRVKXYfiMtlHh_5SqdK1nhoRWK94,7990
331
+ khoj/interface/compiled/settings/index.html,sha256=hbL67t-R7YiACZzilcNlY__CBvdDnvB-5y90OttWnV0,55947
332
+ khoj/interface/compiled/settings/index.txt,sha256=gJKnsr3lHq5z8XTEkGEANT4lvz8sfaEN5NlNd3sokSc,9431
333
+ khoj/interface/compiled/share/chat/index.html,sha256=ETdph3o_E3Fm1FnF84i13Eo41M2rPAy4L3FhpwJaTWk,56843
334
+ khoj/interface/compiled/share/chat/index.txt,sha256=TTAuGFzJPDUlzVSPeDCg1G0X9vEYXI6ztFThL9G1waY,9810
335
335
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
336
336
  khoj/interface/email/magic_link.html,sha256=372ESbTPKM9acekuZcOIKOw6kBl-KikFg_L9MOHqJkg,2094
337
337
  khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
@@ -383,7 +383,7 @@ khoj/processor/content/pdf/pdf_to_entries.py,sha256=GQUvab61okhV9_DK0g2MCrMq8wKp
383
383
  khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
384
384
  khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=wFZwK_zIc7gWbRtO9sOHo9KvfhGAzL9psX_nKWYFduo,4975
385
385
  khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
386
- khoj/processor/conversation/prompts.py,sha256=FnaIvwCUxAjC5vR4gjef_NbNaJwjJxuvlDO5XlNMbao,57168
386
+ khoj/processor/conversation/prompts.py,sha256=AHzJCHMWVytwv7rIaqmGW7_NoGNBZEzEEKLSdTbh0bc,57266
387
387
  khoj/processor/conversation/utils.py,sha256=TYASt3HV3Rm0s2oc9yBZu7H52O7D2kpPiRJhBpouiJE,33942
388
388
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
389
389
  khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=b38Lzv-TemziLPTgvTKC8VGTMx_zUkcPKPA3IRbz4m8,8954
@@ -403,8 +403,8 @@ khoj/processor/image/generate.py,sha256=FAIIsr8TIHxWxK-INNK4jJOOswBxQFyi_G4tI8NN
403
403
  khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
404
404
  khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
405
405
  khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
406
- khoj/processor/tools/online_search.py,sha256=FZ6uUfzXG9fIKjk2FXQGBG0F7qp7hiaFZVxAa2z--Mg,21294
407
- khoj/processor/tools/run_code.py,sha256=KkC22mMDW14RMLSniR1SAiBuANqQXXAP_8IyhDuNeXY,12024
406
+ khoj/processor/tools/online_search.py,sha256=D7fIbvy0hEr7O1mc1-bY4AIQRaAzuf9pInUTlf9PuH0,24558
407
+ khoj/processor/tools/run_code.py,sha256=TuGSp-WYUas0dSK19a96SPfC423F2vvkZDwwPJm67IY,12159
408
408
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
409
409
  khoj/routers/api.py,sha256=1sAJN5KvssFph7AcoFSJmQDlveOgyy530E9Bb-rJUTk,29491
410
410
  khoj/routers/api_agents.py,sha256=McM3YfT5Og8hoVIE3_hdJK87YPXUsxGK_e2o82QEp2I,15379
@@ -440,8 +440,8 @@ khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
440
440
  khoj/utils/rawconfig.py,sha256=wfZTk-Aifb-_q9Yh-NPfh9LlLTioYG-yBqrasgvo4pc,5045
441
441
  khoj/utils/state.py,sha256=axjZhnby8L3bY-N1VVoWgBH1RpFGK6U3_ZeNo1Kt7hs,1679
442
442
  khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
443
- khoj-1.38.0.dist-info/METADATA,sha256=4qWD7RI3qTPkGFQrPj9HxWte8KHspoVzR9D06Ej1jaI,7833
444
- khoj-1.38.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
445
- khoj-1.38.0.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
446
- khoj-1.38.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
447
- khoj-1.38.0.dist-info/RECORD,,
443
+ khoj-1.38.1.dev8.dist-info/METADATA,sha256=yZut95CLNmZZsqRICYsLRtOgjZcl51ePlMOze3nha8E,7838
444
+ khoj-1.38.1.dev8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
445
+ khoj-1.38.1.dev8.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
446
+ khoj-1.38.1.dev8.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
447
+ khoj-1.38.1.dev8.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3111],{91955:function(e,t,s){Promise.resolve().then(s.bind(s,41694))},41694:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return j}});var a=s(57437),o=s(22515),n=s.n(o),i=s(2265),r=s(74986),l=s(14308);s(2446);var c=s(7436),d=s(56937),h=s(5477),u=s(60729),m=s(34124),g=s(6512),x=s(37104),p=s(62869),f=s(19841);function _(e){let{slug:t,className:s}=e,o=async()=>{try{(await fetch("/api/chat/share?public_conversation_slug=".concat(t),{method:"DELETE"})).redirected?window.location.reload():console.error("Failed to unshare conversation")}catch(e){console.error("Error unsharing conversation:",e)}};return(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsx)(p.z,{className:"p-0 text-sm h-auto text-rose-500 hover:text-rose-600",variant:"ghost",onClick:o,children:(0,a.jsx)(f.r,{className:"".concat(s)})})})}function v(e){let[t,s]=(0,i.useState)(""),[o,l]=(0,i.useState)([]),[c,d]=(0,i.useState)(!1),[u,m]=(0,i.useState)(null),g=(0,i.useRef)(null),x=e.setQueryToProcess,p=e.streamedMessages,f=e.isMobileWidth?"w-full":"w-4/6";return((0,i.useEffect)(()=>{if(o.length>0){let t=o.map(e=>encodeURIComponent(e));e.setImages(t)}},[o,e.setImages]),(0,i.useEffect)(()=>{t&&(d(!0),x(t))},[t,x]),(0,i.useEffect)(()=>{p&&p.length>0&&p[p.length-1].completed?d(!1):s("")},[p]),e.publicConversationSlug||e.conversationId)?(0,a.jsx)("div",{className:"flex flex-row h-full w-full",children:(0,a.jsxs)("div",{className:"flex flex-col h-full w-full",children:[(0,a.jsx)("div",{className:n().chatBodyFull,children:(0,a.jsx)(r.Z,{publicConversationSlug:e.publicConversationSlug,conversationId:e.conversationId||"",setAgent:m,setTitle:e.setTitle,setIsOwner:e.setIsOwner,pendingMessage:c?t:"",incomingMessages:e.streamedMessages,customClassName:f})}),(0,a.jsx)("div",{className:"".concat(n().inputBox," p-1 md:px-2 shadow-md bg-background align-middle items-center justify-center dark:bg-neutral-700 dark:border-0 dark:shadow-sm rounded-2xl md:rounded-xl h-fit ").concat(f," mr-auto ml-auto mt-auto"),children:(0,a.jsx)(h.a,{isLoggedIn:e.isLoggedIn,sendMessage:e=>s(e),sendImage:e=>l(t=>[...t,e]),sendDisabled:c,chatOptionsData:e.chatOptionsData,conversationId:e.conversationId,agentColor:null==u?void 0:u.color,isMobileWidth:e.isMobileWidth,setUploadedFiles:e.setUploadedFiles,setTriggeredAbort:()=>{},ref:g})})]})}):(0,a.jsx)("div",{className:n().suggestions,children:"Whoops, nothing to see here!"})}function j(){let[e,t]=(0,i.useState)(null),[s,o]=(0,i.useState)(!0),[r,h]=(0,i.useState)("Khoj AI - Chat"),[p,f]=(0,i.useState)(void 0),[j,w]=(0,i.useState)([]),[N,I]=(0,i.useState)(""),[S,C]=(0,i.useState)(null),[b,y]=(0,i.useState)(void 0),[B,O]=(0,i.useState)([]),[k,E]=(0,i.useState)(!1),{data:T,error:M,isLoading:W}=(0,d.GW)(),F=(0,c.IC)();return((0,i.useEffect)(()=>{fetch("/api/chat/options").then(e=>e.json()).then(e=>{o(!1),e&&t(e)}).catch(e=>{console.error(e)}),(0,c.EK)(),y(window.location.pathname.split("/").pop()||"")},[]),(0,i.useEffect)(()=>{S&&localStorage.setItem("uploadedFiles",JSON.stringify(S))},[S]),(0,i.useEffect)(()=>{if(N&&!p){fetch("/api/chat/share/fork?public_conversation_slug=".concat(b),{method:"POST",headers:{"Content-Type":"application/json"}}).then(e=>e.json()).then(e=>{f(e.conversation_id),localStorage.setItem("message",N),B.length>0&&localStorage.setItem("images",JSON.stringify(B)),window.location.href="/chat?conversationId=".concat(e.conversation_id)}).catch(e=>{console.error(e)});return}},[N,p,b]),s)?(0,a.jsx)(l.Z,{}):b?(0,a.jsxs)(u.Hn,{children:[(0,a.jsx)(m.S,{conversationId:p||""}),(0,a.jsxs)(u.kV,{children:[(0,a.jsxs)("header",{className:"flex h-16 shrink-0 items-center gap-2 border-b px-4",children:[(0,a.jsx)(u.vP,{className:"-ml-1"}),(0,a.jsx)(g.Z,{orientation:"vertical",className:"mr-2 h-4"}),b&&(0,a.jsx)("div",{className:"".concat(n().chatTitleWrapper," text-nowrap text-ellipsis overflow-hidden max-w-screen-md grid items-top font-bold mx-2 md:mr-8 col-auto h-fit"),children:F?(0,a.jsx)("a",{className:"p-0 no-underline",href:"/",children:(0,a.jsx)(x.VO,{className:"h-auto w-16"})}):r&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h2",{className:"text-lg text-ellipsis whitespace-nowrap overflow-x-hidden mr-4",children:r}),k&&T&&(0,a.jsx)(_,{slug:b,className:"h-4 w-4 mt-1"})]})})]}),(0,a.jsxs)("div",{className:"".concat(n().main," ").concat(n().chatLayout),children:[(0,a.jsx)("title",{children:r}),(0,a.jsx)("div",{className:n().chatBox,children:(0,a.jsx)("div",{className:n().chatBoxBody,children:(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)(l.Z,{}),children:(0,a.jsx)(v,{conversationId:p,streamedMessages:j,setQueryToProcess:I,isLoggedIn:!!T,publicConversationSlug:b,chatOptionsData:e,setTitle:h,setUploadedFiles:C,isMobileWidth:F,setImages:O,setIsOwner:E})})})})]})]})]}):(0,a.jsx)("div",{className:n().suggestions,children:"Whoops, nothing to see here!"})}},22515:function(e){e.exports={main:"sharedChat_main__7Nayy",suggestions:"sharedChat_suggestions__V8kr_",inputBox:"sharedChat_inputBox__wRW5A",chatBodyFull:"sharedChat_chatBodyFull__O1MOv",chatBody:"sharedChat_chatBody__OnHDL",chatLayout:"sharedChat_chatLayout__gutlc",chatBox:"sharedChat_chatBox__PmAPg",titleBar:"sharedChat_titleBar__vOHp_",chatBoxBody:"sharedChat_chatBoxBody__ef2Nl",agentIndicator:"sharedChat_agentIndicator__ORCl4",chatTitleWrapper:"sharedChat_chatTitleWrapper__rVdYj"}}},function(e){e.O(0,[9346,8255,9853,8221,3954,1919,7200,9259,8667,4363,4357,8515,2327,5477,4986,2971,2117,1744],function(){return e(e.s=91955)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- div.agents_titleBar__FzYbY{padding:16px 0;text-align:left}.agents_agentPersonality__o0Ysz p{white-space:inherit;overflow:hidden;height:77px;line-height:1.5}div.agents_agentPersonality__o0Ysz{text-align:left;grid-column:span 3;overflow:hidden}div.agents_pageLayout__gR3S3{max-width:60vw;margin:auto auto 2rem}button.agents_infoButton__NqI7E{border:none;background-color:transparent!important;text-align:left;font-family:inherit;font-size:medium}div.agents_agentList__XVx4A{display:grid;gap:20px;padding-top:30px;margin-right:auto;grid-auto-flow:row;grid-template-columns:1fr 1fr;margin-left:auto}@media only screen and (max-width:768px){div.agents_agentList__XVx4A{width:100%;padding:0;margin-right:auto;margin-left:auto;grid-template-columns:1fr}div.agents_pageLayout__gR3S3{max-width:90vw}}.loginPrompt_gsiMaterialButton__8QVFH{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-appearance:none;background-image:none;border-radius:20px;box-sizing:border-box;color:#1f1f1f;cursor:pointer;font-family:Roboto,arial,sans-serif;font-size:14px;height:40px;letter-spacing:.25px;outline:none;overflow:hidden;padding:0;position:relative;text-align:center;transition:background-color .218s,border-color .218s,box-shadow .218s;vertical-align:middle;white-space:nowrap;width:40px;max-width:400px;min-width:-moz-min-content;min-width:min-content}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonIcon__6TSC5{height:100%;min-width:20px;width:100%;margin:0;padding:9px}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonContentWrapper__9tahB{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;justify-content:space-between;position:relative;width:100%}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonContents__3_YcB{flex-grow:1;font-family:Roboto,arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonState__CDGQm{transition:opacity .218s;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.loginPrompt_gsiMaterialButton__8QVFH:disabled{cursor:default;background-color:#ffffff61;border-color:#1f1f1f1f}.loginPrompt_gsiMaterialButton__8QVFH:disabled .loginPrompt_gsiMaterialButtonContents__3_YcB,.loginPrompt_gsiMaterialButton__8QVFH:disabled .loginPrompt_gsiMaterialButtonIcon__6TSC5{opacity:38%}.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):active .loginPrompt_gsiMaterialButton-State__mAfCZ,.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):focus .loginPrompt_gsiMaterialButtonState__CDGQm{background-color:#303030;opacity:12%}.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):hover{box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15)}.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):hover .loginPrompt_gsiMaterialButtonState__CDGQm{background-color:#303030;opacity:8%}div.automations_automationsLayout__Atoh_{display:grid;grid-template-columns:1fr 1fr;gap:1rem}div.automations_automationCard__BKidA{display:grid;grid-template-rows:auto 1fr auto}div.automations_pageLayout__OaoYA{max-width:60vw;margin:auto auto 2rem}@media screen and (max-width:768px){div.automations_automationsLayout__Atoh_{grid-template-columns:1fr}div.automations_pageLayout__OaoYA{max-width:90vw}}
@@ -1 +0,0 @@
1
- div.search_searchLayout__fP3m0{display:grid;grid-template-columns:1fr;gap:1rem;height:100%}@media screen and (max-width:768px){div.search_searchLayout__fP3m0{gap:0}}div.sidePanel_session__EeNjH{padding:.5rem;margin-bottom:.25rem;border-radius:.5rem;cursor:pointer;max-width:14rem;font-size:medium;display:grid;grid-template-columns:minmax(auto,400px) 1fr;gap:0}div.sidePanel_compressed__CUgIn{grid-template-columns:minmax(12rem,100%) 1fr 1fr}div.sidePanel_sessionHover__cf_VO,div.sidePanel_session__EeNjH:hover{background-color:hsla(var(--popover))}div.sidePanel_session__EeNjH:hover{color:hsla(var(--popover-foreground))}div.sidePanel_session__EeNjH a{text-decoration:none}button.sidePanel_button__NzdN_{border:none;outline:none;background-color:transparent;cursor:pointer;color:var(--main-text-color);width:24px}button.sidePanel_showMoreButton__nDt4Z{border-radius:.5rem;padding:8px}div.sidePanel_panel__9offQ{display:flex;flex-direction:column;padding:1rem;overflow-y:auto;max-width:auto;transition:background-color .5s}div.sidePanel_expanded__aHnYV{gap:1rem;background-color:hsla(var(--muted));height:100%}div.sidePanel_collapsed__ewO3e{display:grid;grid-template-columns:1fr;height:-moz-fit-content;height:fit-content;padding:1rem 0 0 1rem}p.sidePanel_session__EeNjH{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:left;font-size:small}p.sidePanel_compressed__CUgIn{width:11rem}p.sidePanel_expanded__aHnYV{max-width:20rem}div.sidePanel_header__NCT_v{display:grid;grid-template-columns:1fr auto}div.sidePanel_profile__pfAJU{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;margin-top:auto}div.sidePanel_panelWrapper__cDMvb{display:grid;grid-template-rows:1fr auto auto;height:100%}div.sidePanel_modalSessionsList___u3aa{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(var(--frosted-background-color));z-index:1;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}div.sidePanel_modalSessionsList___u3aa div.sidePanel_content__z60YO{max-width:80%;max-height:80%;background-color:hsla(var(--frosted-background-color));overflow:auto;padding:20px;border-radius:10px}div.sidePanel_modalSessionsList___u3aa div.sidePanel_session__EeNjH{max-width:100%;text-overflow:ellipsis}@media screen and (max-width:768px){div.sidePanel_panel__9offQ{padding:.25rem;width:100%}div.sidePanel_expanded__aHnYV{z-index:1}div.sidePanel_singleReference__vmXZr{padding:4px}div.sidePanel_panelWrapper__cDMvb{width:100%;padding:0 1rem}div.sidePanel_session__EeNjH.sidePanel_compressed__CUgIn{max-width:100%;display:grid;grid-template-columns:70vw auto;justify-content:space-between}div.sidePanel_session__EeNjH{max-width:100%;grid-template-columns:minmax(auto,70vw) 1fr}}.agentCard_agentPersonality__MmRlN p{white-space:inherit;overflow:hidden;height:77px;line-height:1.5}div.agentCard_agentPersonality__MmRlN{text-align:left;grid-column:span 3;overflow:hidden}button.agentCard_infoButton__heh_w{border:none;background-color:transparent!important;text-align:left;font-family:inherit;font-size:medium}