khoj 1.37.1.dev6__py3-none-any.whl → 1.37.1.dev12__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 (58) hide show
  1. khoj/database/migrations/0087_alter_aimodelapi_api_key.py +17 -0
  2. khoj/database/models/__init__.py +1 -1
  3. khoj/interface/compiled/404/index.html +2 -2
  4. khoj/interface/compiled/_next/static/chunks/{2327-0bbe3ee35f80659f.js → 2327-b21ecded25471e6c.js} +1 -1
  5. khoj/interface/compiled/_next/static/chunks/{8515-f305779d95dd5780.js → 8515-010dd769c584b672.js} +1 -1
  6. khoj/interface/compiled/_next/static/chunks/app/agents/{layout-5961c3717e1d8813.js → layout-948ca256650845ce.js} +1 -1
  7. khoj/interface/compiled/_next/static/chunks/app/agents/{page-0d31f76257d6ec11.js → page-df5446aa4fb82e1a.js} +1 -1
  8. khoj/interface/compiled/_next/static/chunks/app/automations/{page-c6180af69fc9c766.js → page-0a44416f9183aec0.js} +1 -1
  9. khoj/interface/compiled/_next/static/chunks/app/chat/{layout-3e25af7224d678a0.js → layout-603285e3b1400e74.js} +1 -1
  10. khoj/interface/compiled/_next/static/chunks/app/chat/{page-926ee054e844236a.js → page-50cb9b62b10b5f3d.js} +1 -1
  11. khoj/interface/compiled/_next/static/chunks/app/{page-df51e61295c4a9b5.js → page-aad371f66ac52191.js} +1 -1
  12. khoj/interface/compiled/_next/static/chunks/app/search/{layout-9ccd090dcc2aa58a.js → layout-d7f7528ff387fba5.js} +1 -1
  13. khoj/interface/compiled/_next/static/chunks/app/search/{page-098017fa7f6ba0bf.js → page-1df7b236b30620f7.js} +1 -1
  14. khoj/interface/compiled/_next/static/chunks/app/settings/{page-1ff027f4e0a5c468.js → page-3473bab693ef81b2.js} +1 -1
  15. khoj/interface/compiled/_next/static/chunks/app/share/chat/{layout-9cc742afcea0b421.js → layout-246d0e8125219fff.js} +1 -1
  16. khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-ea29a4633737cb59.js → page-6f26fe7f2f7edc56.js} +1 -1
  17. khoj/interface/compiled/_next/static/chunks/{webpack-449ea2835ec65e75.js → webpack-1169ca6e9e7e6247.js} +1 -1
  18. khoj/interface/compiled/_next/static/css/37a73b87f02df402.css +1 -0
  19. khoj/interface/compiled/_next/static/css/f29752d6e1be7624.css +1 -0
  20. khoj/interface/compiled/_next/static/css/{0db53bacf81896f5.css → fca983d49c3dd1a3.css} +1 -1
  21. khoj/interface/compiled/agents/index.html +2 -2
  22. khoj/interface/compiled/agents/index.txt +3 -3
  23. khoj/interface/compiled/automations/index.html +2 -2
  24. khoj/interface/compiled/automations/index.txt +3 -3
  25. khoj/interface/compiled/chat/index.html +2 -2
  26. khoj/interface/compiled/chat/index.txt +3 -3
  27. khoj/interface/compiled/index.html +2 -2
  28. khoj/interface/compiled/index.txt +2 -2
  29. khoj/interface/compiled/search/index.html +2 -2
  30. khoj/interface/compiled/search/index.txt +3 -3
  31. khoj/interface/compiled/settings/index.html +2 -2
  32. khoj/interface/compiled/settings/index.txt +5 -5
  33. khoj/interface/compiled/share/chat/index.html +2 -2
  34. khoj/interface/compiled/share/chat/index.txt +3 -3
  35. khoj/processor/conversation/anthropic/anthropic_chat.py +8 -1
  36. khoj/processor/conversation/anthropic/utils.py +25 -10
  37. khoj/processor/conversation/google/gemini_chat.py +12 -1
  38. khoj/processor/conversation/google/utils.py +36 -5
  39. khoj/processor/conversation/openai/utils.py +3 -4
  40. khoj/routers/api.py +4 -0
  41. khoj/routers/helpers.py +13 -3
  42. khoj/utils/constants.py +2 -0
  43. khoj/utils/helpers.py +58 -2
  44. {khoj-1.37.1.dev6.dist-info → khoj-1.37.1.dev12.dist-info}/METADATA +1 -1
  45. {khoj-1.37.1.dev6.dist-info → khoj-1.37.1.dev12.dist-info}/RECORD +56 -55
  46. khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css +0 -1
  47. khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css +0 -1
  48. /khoj/interface/compiled/_next/static/chunks/{1915-1943ee8a628b893c.js → 1915-ab4353eaca76f690.js} +0 -0
  49. /khoj/interface/compiled/_next/static/chunks/{2117-ce1f0a4598f5e4fe.js → 2117-f99825f0a867a42d.js} +0 -0
  50. /khoj/interface/compiled/_next/static/chunks/{4363-e6ac2203564d1a3b.js → 4363-4efaf12abe696251.js} +0 -0
  51. /khoj/interface/compiled/_next/static/chunks/{4447-e038b251d626c340.js → 4447-5d44807c40355b1a.js} +0 -0
  52. /khoj/interface/compiled/_next/static/chunks/{8667-8136f74e9a086fca.js → 8667-adbe6017a66cef10.js} +0 -0
  53. /khoj/interface/compiled/_next/static/chunks/{9259-640fdd77408475df.js → 9259-d8bcd9da9e80c81e.js} +0 -0
  54. /khoj/interface/compiled/_next/static/{dWV1ok4ndbQQtpEVqLZAh → mnJxv49O8dzkwTygquq43}/_buildManifest.js +0 -0
  55. /khoj/interface/compiled/_next/static/{dWV1ok4ndbQQtpEVqLZAh → mnJxv49O8dzkwTygquq43}/_ssgManifest.js +0 -0
  56. {khoj-1.37.1.dev6.dist-info → khoj-1.37.1.dev12.dist-info}/WHEEL +0 -0
  57. {khoj-1.37.1.dev6.dist-info → khoj-1.37.1.dev12.dist-info}/entry_points.txt +0 -0
  58. {khoj-1.37.1.dev6.dist-info → khoj-1.37.1.dev12.dist-info}/licenses/LICENSE +0 -0
@@ -3,6 +3,7 @@ import os
3
3
  import random
4
4
  from copy import deepcopy
5
5
  from threading import Thread
6
+ from typing import Dict
6
7
 
7
8
  from google import genai
8
9
  from google.genai import errors as gerrors
@@ -23,6 +24,7 @@ from khoj.processor.conversation.utils import (
23
24
  get_image_from_url,
24
25
  )
25
26
  from khoj.utils.helpers import (
27
+ get_ai_api_info,
26
28
  get_chat_usage_metrics,
27
29
  is_none_or_empty,
28
30
  is_promptrace_enabled,
@@ -30,6 +32,7 @@ from khoj.utils.helpers import (
30
32
 
31
33
  logger = logging.getLogger(__name__)
32
34
 
35
+ gemini_clients: Dict[str, genai.Client] = {}
33
36
 
34
37
  MAX_OUTPUT_TOKENS_GEMINI = 8192
35
38
  SAFETY_SETTINGS = [
@@ -52,6 +55,17 @@ SAFETY_SETTINGS = [
52
55
  ]
53
56
 
54
57
 
58
+ def get_gemini_client(api_key, api_base_url=None) -> genai.Client:
59
+ api_info = get_ai_api_info(api_key, api_base_url)
60
+ return genai.Client(
61
+ location=api_info.region,
62
+ project=api_info.project,
63
+ credentials=api_info.credentials,
64
+ api_key=api_info.api_key,
65
+ vertexai=api_info.api_key is None,
66
+ )
67
+
68
+
55
69
  @retry(
56
70
  wait=wait_random_exponential(min=1, max=10),
57
71
  stop=stop_after_attempt(2),
@@ -59,9 +73,13 @@ SAFETY_SETTINGS = [
59
73
  reraise=True,
60
74
  )
61
75
  def gemini_completion_with_backoff(
62
- messages, system_prompt, model_name, temperature=0, api_key=None, model_kwargs=None, tracer={}
76
+ messages, system_prompt, model_name, temperature=0, api_key=None, api_base_url=None, model_kwargs=None, tracer={}
63
77
  ) -> str:
64
- client = genai.Client(api_key=api_key)
78
+ client = gemini_clients.get(api_key)
79
+ if not client:
80
+ client = get_gemini_client(api_key, api_base_url)
81
+ gemini_clients[api_key] = client
82
+
65
83
  seed = int(os.getenv("KHOJ_LLM_SEED")) if os.getenv("KHOJ_LLM_SEED") else None
66
84
  config = gtypes.GenerateContentConfig(
67
85
  system_instruction=system_prompt,
@@ -115,6 +133,7 @@ def gemini_chat_completion_with_backoff(
115
133
  model_name,
116
134
  temperature,
117
135
  api_key,
136
+ api_base_url,
118
137
  system_prompt,
119
138
  completion_func=None,
120
139
  model_kwargs=None,
@@ -123,17 +142,29 @@ def gemini_chat_completion_with_backoff(
123
142
  g = ThreadedGenerator(compiled_references, online_results, completion_func=completion_func)
124
143
  t = Thread(
125
144
  target=gemini_llm_thread,
126
- args=(g, messages, system_prompt, model_name, temperature, api_key, model_kwargs, tracer),
145
+ args=(g, messages, system_prompt, model_name, temperature, api_key, api_base_url, model_kwargs, tracer),
127
146
  )
128
147
  t.start()
129
148
  return g
130
149
 
131
150
 
132
151
  def gemini_llm_thread(
133
- g, messages, system_prompt, model_name, temperature, api_key, model_kwargs=None, tracer: dict = {}
152
+ g,
153
+ messages,
154
+ system_prompt,
155
+ model_name,
156
+ temperature,
157
+ api_key,
158
+ api_base_url=None,
159
+ model_kwargs=None,
160
+ tracer: dict = {},
134
161
  ):
135
162
  try:
136
- client = genai.Client(api_key=api_key)
163
+ client = gemini_clients.get(api_key)
164
+ if not client:
165
+ client = get_gemini_client(api_key, api_base_url)
166
+ gemini_clients[api_key] = client
167
+
137
168
  seed = int(os.getenv("KHOJ_LLM_SEED")) if os.getenv("KHOJ_LLM_SEED") else None
138
169
  config = gtypes.GenerateContentConfig(
139
170
  system_instruction=system_prompt,
@@ -55,7 +55,7 @@ def completion_with_backoff(
55
55
  tracer: dict = {},
56
56
  ) -> str:
57
57
  client_key = f"{openai_api_key}--{api_base_url}"
58
- client: openai.OpenAI | None = openai_clients.get(client_key)
58
+ client = openai_clients.get(client_key)
59
59
  if not client:
60
60
  client = get_openai_client(openai_api_key, api_base_url)
61
61
  openai_clients[client_key] = client
@@ -150,9 +150,8 @@ def llm_thread(
150
150
  ):
151
151
  try:
152
152
  client_key = f"{openai_api_key}--{api_base_url}"
153
- if client_key in openai_clients:
154
- client = openai_clients[client_key]
155
- else:
153
+ client = openai_clients.get(client_key)
154
+ if not client:
156
155
  client = get_openai_client(openai_api_key, api_base_url)
157
156
  openai_clients[client_key] = client
158
157
 
khoj/routers/api.py CHANGED
@@ -463,12 +463,14 @@ async def extract_references_and_questions(
463
463
  )
464
464
  elif chat_model.model_type == ChatModel.ModelType.ANTHROPIC:
465
465
  api_key = chat_model.ai_model_api.api_key
466
+ api_base_url = chat_model.ai_model_api.api_base_url
466
467
  chat_model_name = chat_model.name
467
468
  inferred_queries = extract_questions_anthropic(
468
469
  defiltered_query,
469
470
  query_images=query_images,
470
471
  model=chat_model_name,
471
472
  api_key=api_key,
473
+ api_base_url=api_base_url,
472
474
  conversation_log=meta_log,
473
475
  location_data=location_data,
474
476
  user=user,
@@ -479,12 +481,14 @@ async def extract_references_and_questions(
479
481
  )
480
482
  elif chat_model.model_type == ChatModel.ModelType.GOOGLE:
481
483
  api_key = chat_model.ai_model_api.api_key
484
+ api_base_url = chat_model.ai_model_api.api_base_url
482
485
  chat_model_name = chat_model.name
483
486
  inferred_queries = extract_questions_gemini(
484
487
  defiltered_query,
485
488
  query_images=query_images,
486
489
  model=chat_model_name,
487
490
  api_key=api_key,
491
+ api_base_url=api_base_url,
488
492
  conversation_log=meta_log,
489
493
  location_data=location_data,
490
494
  max_tokens=chat_model.max_prompt_size,
khoj/routers/helpers.py CHANGED
@@ -1220,6 +1220,7 @@ async def send_message_to_model_wrapper(
1220
1220
  )
1221
1221
  elif model_type == ChatModel.ModelType.ANTHROPIC:
1222
1222
  api_key = chat_model.ai_model_api.api_key
1223
+ api_base_url = chat_model.ai_model_api.api_base_url
1223
1224
  truncated_messages = generate_chatml_messages_with_context(
1224
1225
  user_message=query,
1225
1226
  context_message=context,
@@ -1239,10 +1240,12 @@ async def send_message_to_model_wrapper(
1239
1240
  model=chat_model_name,
1240
1241
  response_type=response_type,
1241
1242
  deepthought=deepthought,
1243
+ api_base_url=api_base_url,
1242
1244
  tracer=tracer,
1243
1245
  )
1244
1246
  elif model_type == ChatModel.ModelType.GOOGLE:
1245
1247
  api_key = chat_model.ai_model_api.api_key
1248
+ api_base_url = chat_model.ai_model_api.api_base_url
1246
1249
  truncated_messages = generate_chatml_messages_with_context(
1247
1250
  user_message=query,
1248
1251
  context_message=context,
@@ -1262,6 +1265,7 @@ async def send_message_to_model_wrapper(
1262
1265
  model=chat_model_name,
1263
1266
  response_type=response_type,
1264
1267
  response_schema=response_schema,
1268
+ api_base_url=api_base_url,
1265
1269
  tracer=tracer,
1266
1270
  )
1267
1271
  else:
@@ -1328,7 +1332,7 @@ def send_message_to_model_wrapper_sync(
1328
1332
  query_files=query_files,
1329
1333
  )
1330
1334
 
1331
- openai_response = send_message_to_model(
1335
+ return send_message_to_model(
1332
1336
  messages=truncated_messages,
1333
1337
  api_key=api_key,
1334
1338
  api_base_url=api_base_url,
@@ -1338,10 +1342,9 @@ def send_message_to_model_wrapper_sync(
1338
1342
  tracer=tracer,
1339
1343
  )
1340
1344
 
1341
- return openai_response
1342
-
1343
1345
  elif chat_model.model_type == ChatModel.ModelType.ANTHROPIC:
1344
1346
  api_key = chat_model.ai_model_api.api_key
1347
+ api_base_url = chat_model.ai_model_api.api_base_url
1345
1348
  truncated_messages = generate_chatml_messages_with_context(
1346
1349
  user_message=message,
1347
1350
  system_message=system_message,
@@ -1356,6 +1359,7 @@ def send_message_to_model_wrapper_sync(
1356
1359
  return anthropic_send_message_to_model(
1357
1360
  messages=truncated_messages,
1358
1361
  api_key=api_key,
1362
+ api_base_url=api_base_url,
1359
1363
  model=chat_model_name,
1360
1364
  response_type=response_type,
1361
1365
  tracer=tracer,
@@ -1363,6 +1367,7 @@ def send_message_to_model_wrapper_sync(
1363
1367
 
1364
1368
  elif chat_model.model_type == ChatModel.ModelType.GOOGLE:
1365
1369
  api_key = chat_model.ai_model_api.api_key
1370
+ api_base_url = chat_model.ai_model_api.api_base_url
1366
1371
  truncated_messages = generate_chatml_messages_with_context(
1367
1372
  user_message=message,
1368
1373
  system_message=system_message,
@@ -1377,6 +1382,7 @@ def send_message_to_model_wrapper_sync(
1377
1382
  return gemini_send_message_to_model(
1378
1383
  messages=truncated_messages,
1379
1384
  api_key=api_key,
1385
+ api_base_url=api_base_url,
1380
1386
  model=chat_model_name,
1381
1387
  response_type=response_type,
1382
1388
  response_schema=response_schema,
@@ -1510,6 +1516,7 @@ def generate_chat_response(
1510
1516
 
1511
1517
  elif chat_model.model_type == ChatModel.ModelType.ANTHROPIC:
1512
1518
  api_key = chat_model.ai_model_api.api_key
1519
+ api_base_url = chat_model.ai_model_api.api_base_url
1513
1520
  chat_response = converse_anthropic(
1514
1521
  compiled_references,
1515
1522
  query_to_run,
@@ -1519,6 +1526,7 @@ def generate_chat_response(
1519
1526
  conversation_log=meta_log,
1520
1527
  model=chat_model.name,
1521
1528
  api_key=api_key,
1529
+ api_base_url=api_base_url,
1522
1530
  completion_func=partial_completion,
1523
1531
  conversation_commands=conversation_commands,
1524
1532
  max_prompt_size=chat_model.max_prompt_size,
@@ -1536,6 +1544,7 @@ def generate_chat_response(
1536
1544
  )
1537
1545
  elif chat_model.model_type == ChatModel.ModelType.GOOGLE:
1538
1546
  api_key = chat_model.ai_model_api.api_key
1547
+ api_base_url = chat_model.ai_model_api.api_base_url
1539
1548
  chat_response = converse_gemini(
1540
1549
  compiled_references,
1541
1550
  query_to_run,
@@ -1544,6 +1553,7 @@ def generate_chat_response(
1544
1553
  meta_log,
1545
1554
  model=chat_model.name,
1546
1555
  api_key=api_key,
1556
+ api_base_url=api_base_url,
1547
1557
  completion_func=partial_completion,
1548
1558
  conversation_commands=conversation_commands,
1549
1559
  max_prompt_size=chat_model.max_prompt_size,
khoj/utils/constants.py CHANGED
@@ -49,8 +49,10 @@ model_to_cost: Dict[str, Dict[str, float]] = {
49
49
  "gemini-2.0-flash": {"input": 0.10, "output": 0.40},
50
50
  # Anthropic Pricing: https://www.anthropic.com/pricing#anthropic-api_
51
51
  "claude-3-5-haiku-20241022": {"input": 1.0, "output": 5.0},
52
+ "claude-3-5-haiku@20241022": {"input": 1.0, "output": 5.0},
52
53
  "claude-3-5-sonnet-20241022": {"input": 3.0, "output": 15.0},
53
54
  "claude-3-5-sonnet-latest": {"input": 3.0, "output": 15.0},
54
55
  "claude-3-7-sonnet-20250219": {"input": 3.0, "output": 15.0},
56
+ "claude-3-7-sonnet@20250219": {"input": 3.0, "output": 15.0},
55
57
  "claude-3-7-sonnet-latest": {"input": 3.0, "output": 15.0},
56
58
  }
khoj/utils/helpers.py CHANGED
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations # to avoid quoting type hints
2
2
 
3
+ import base64
3
4
  import copy
4
5
  import datetime
5
6
  import io
@@ -19,15 +20,18 @@ from itertools import islice
19
20
  from os import path
20
21
  from pathlib import Path
21
22
  from time import perf_counter
22
- from typing import TYPE_CHECKING, Any, Optional, Union
23
- from urllib.parse import urlparse
23
+ from typing import TYPE_CHECKING, Any, NamedTuple, Optional, Tuple, Union
24
+ from urllib.parse import ParseResult, urlparse
24
25
 
25
26
  import openai
26
27
  import psutil
28
+ import pyjson5
27
29
  import requests
28
30
  import torch
29
31
  from asgiref.sync import sync_to_async
30
32
  from email_validator import EmailNotValidError, EmailUndeliverableError, validate_email
33
+ from google.auth.credentials import Credentials
34
+ from google.oauth2 import service_account
31
35
  from magika import Magika
32
36
  from PIL import Image
33
37
  from pytz import country_names, country_timezones
@@ -618,6 +622,58 @@ def get_chat_usage_metrics(
618
622
  }
619
623
 
620
624
 
625
+ class AiApiInfo(NamedTuple):
626
+ region: str
627
+ project: str
628
+ credentials: Credentials
629
+ api_key: str
630
+
631
+
632
+ def get_gcp_credentials(credentials_b64: str) -> Optional[Credentials]:
633
+ """
634
+ Get GCP credentials from base64 encoded service account credentials json keyfile
635
+ """
636
+ credentials_json = base64.b64decode(credentials_b64).decode("utf-8")
637
+ credentials_dict = pyjson5.loads(credentials_json)
638
+ credentials = service_account.Credentials.from_service_account_info(credentials_dict)
639
+ return credentials.with_scopes(scopes=["https://www.googleapis.com/auth/cloud-platform"])
640
+
641
+
642
+ def get_gcp_project_info(parsed_api_url: ParseResult) -> Tuple[str, str]:
643
+ """
644
+ Extract region, project id from GCP API url
645
+ API url is of form https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}...
646
+ """
647
+ # Extract region from hostname
648
+ hostname = parsed_api_url.netloc
649
+ region = hostname.split("-aiplatform")[0] if "-aiplatform" in hostname else ""
650
+
651
+ # Extract project ID from path (e.g., "/v1/projects/my-project/...")
652
+ path_parts = parsed_api_url.path.split("/")
653
+ project_id = ""
654
+ for i, part in enumerate(path_parts):
655
+ if part == "projects" and i + 1 < len(path_parts):
656
+ project_id = path_parts[i + 1]
657
+ break
658
+
659
+ return region, project_id
660
+
661
+
662
+ def get_ai_api_info(api_key, api_base_url: str = None) -> AiApiInfo:
663
+ """
664
+ Get the GCP Vertex or default AI API client info based on the API key and URL.
665
+ """
666
+ region, project_id, credentials = None, None, None
667
+ # Check if AI model to be used via GCP Vertex API
668
+ parsed_api_url = urlparse(api_base_url)
669
+ if parsed_api_url.hostname and parsed_api_url.hostname.endswith(".googleapis.com"):
670
+ region, project_id = get_gcp_project_info(parsed_api_url)
671
+ credentials = get_gcp_credentials(api_key)
672
+ if credentials:
673
+ api_key = None
674
+ return AiApiInfo(region=region, project=project_id, credentials=credentials, api_key=api_key)
675
+
676
+
621
677
  def get_openai_client(api_key: str, api_base_url: str) -> Union[openai.OpenAI, openai.AzureOpenAI]:
622
678
  """Get OpenAI or AzureOpenAI client based on the API Base URL"""
623
679
  parsed_url = urlparse(api_base_url)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: khoj
3
- Version: 1.37.1.dev6
3
+ Version: 1.37.1.dev12
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -118,32 +118,33 @@ khoj/database/migrations/0083_alter_agent_output_modes_alter_agent_personality_a
118
118
  khoj/database/migrations/0084_alter_agent_input_tools.py,sha256=rXFC7fXSjV8n_x7HZnF-Jr8vCiE9NLSd6q2UevIdVuU,986
119
119
  khoj/database/migrations/0085_alter_agent_output_modes.py,sha256=qgW7jbPhJkU37iZ-yzgI46-fker3zLeoBTuijS5_gro,687
120
120
  khoj/database/migrations/0086_alter_texttoimagemodelconfig_model_type.py,sha256=OGbA88CObHsSTXS78_3igKqE9dtCkZ2Hb5W4qBabYwk,709
121
+ khoj/database/migrations/0087_alter_aimodelapi_api_key.py,sha256=CqZ3iqt3CwiCwkD7oAEhdYYgM8Diyz2WW0hEJeaHGjg,415
121
122
  khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
- khoj/database/models/__init__.py,sha256=YUt_QSKLF6JAWRAbEGBnF2D13g5TkkSRCecY5S3YWu0,29501
123
+ khoj/database/models/__init__.py,sha256=hOh7gbEj-VqKdO5HE9gEXnWQ_kFJjIhQeJP150RsTC4,29502
123
124
  khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
124
125
  khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
125
126
  khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
126
127
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
127
128
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
128
129
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
129
- khoj/interface/compiled/index.html,sha256=2N44uffnJ_8JhKHdLEhRMsT_cNXk0WRUFO2cfHKVpAk,53319
130
- khoj/interface/compiled/index.txt,sha256=5jNjCXwcG0bedO0c5sZL20fv3r9-9FomRy051FLMqhI,7717
130
+ khoj/interface/compiled/index.html,sha256=qr5moCZxjxhbs-jI8X4s-VTTpzhH4fr4Hb7bTGHJ0ko,53009
131
+ khoj/interface/compiled/index.txt,sha256=-UPCDzuG8K_G1AGIT9WsJZUfJaP3l5-NyJJXCN3xJOY,7584
131
132
  khoj/interface/compiled/khoj.webmanifest,sha256=9wOK2BMS6xH5NKd2eaUgTLg9WepIxB2K2U33KU89LD8,2543
132
133
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
133
134
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
134
135
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
135
136
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
136
137
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
137
- khoj/interface/compiled/404/index.html,sha256=kBBEXh_VJEPPOzwXp9XQby49yD2RLLkLdLUJ1duSF8A,17063
138
+ khoj/interface/compiled/404/index.html,sha256=siufMhBBPaipuOT6bgRhc-yUuzE8lRs_JCYMMCOZrVo,17063
138
139
  khoj/interface/compiled/_next/static/chunks/1160-8e7e42e77145b712.js,sha256=-QFyQbKtlBEXOxl_xK246z8WERbIc88SU1RehiTjcaI,317731
139
140
  khoj/interface/compiled/_next/static/chunks/1243.ea2826fb35adb15a.js,sha256=Y6ceAwyTH4HSGDvBRoBB-RVXRCzGGr8NSPcspYF5OM8,182
140
141
  khoj/interface/compiled/_next/static/chunks/133.392ae90c3b2a67f2.js,sha256=IK-mb9ZlF6uJUdU8AuXsppc99tFL8svJvZtKNZGNtcY,411
141
142
  khoj/interface/compiled/_next/static/chunks/1592.b069bdb7aaddd2eb.js,sha256=VUaP2gjX3W9tA9pOH_VIPG_2BIg7Wk1AICrfU5iHgrk,71096
142
- khoj/interface/compiled/_next/static/chunks/1915-1943ee8a628b893c.js,sha256=qArqL3leavWRcZkX4ZuWgemtKnmV6c-_yrNtMu_8SeY,11277
143
+ khoj/interface/compiled/_next/static/chunks/1915-ab4353eaca76f690.js,sha256=qArqL3leavWRcZkX4ZuWgemtKnmV6c-_yrNtMu_8SeY,11277
143
144
  khoj/interface/compiled/_next/static/chunks/2069.f060659791c0c484.js,sha256=C_oat_BkZcLOHsyJlNN_5I55fB7ee1zkkZ9FT5zOzn4,186
144
- khoj/interface/compiled/_next/static/chunks/2117-ce1f0a4598f5e4fe.js,sha256=vLJikd2wJoZNWopR64Y4ccsOU2TNfdkBxVyfrgTHk10,123994
145
+ khoj/interface/compiled/_next/static/chunks/2117-f99825f0a867a42d.js,sha256=vLJikd2wJoZNWopR64Y4ccsOU2TNfdkBxVyfrgTHk10,123994
145
146
  khoj/interface/compiled/_next/static/chunks/2170.45431769330fa5b7.js,sha256=C7Puu9x18DhdR5Sh8XXvTzPdP_HTK6WhsJDNW-NoB7o,24019
146
- khoj/interface/compiled/_next/static/chunks/2327-0bbe3ee35f80659f.js,sha256=8yNIQilcj1QOr7dEYHN0zCYS46ckF5KuvrckvgEPEEk,127377
147
+ khoj/interface/compiled/_next/static/chunks/2327-b21ecded25471e6c.js,sha256=BFM9odS4wSUfVJSBaqUqhE0D79Dxe9fDRyg-H50WNdY,127377
147
148
  khoj/interface/compiled/_next/static/chunks/3237.c4754f02f1a388cb.js,sha256=Z5iOEX0mPj-5tuoU4Bq_IjpAlyc4MURKlBoaExsULTk,177
148
149
  khoj/interface/compiled/_next/static/chunks/3305.1fc7297ba154ee95.js,sha256=mfrpv-asuYmBmbqIh1p3UnPMAxg2pKlxE3Rzmth8O6s,37266
149
150
  khoj/interface/compiled/_next/static/chunks/3332.6313db5217bb1b67.js,sha256=4lNF9JhPQdTX2xDojGOvvanM0Y0VScwM3kmF4p0RHFg,3776
@@ -152,9 +153,9 @@ khoj/interface/compiled/_next/static/chunks/3460.39c2b9b6a3898384.js,sha256=gehY
152
153
  khoj/interface/compiled/_next/static/chunks/4299.2aaa569416cfc208.js,sha256=3HJ8OvB9BDJW0-qCBd1eUmChoBAxaCX6R81ftWZ1CHw,21659
153
154
  khoj/interface/compiled/_next/static/chunks/4327.238d15c09a039b8b.js,sha256=mZa4Oyltc9JrokqnalRTjzcvWgX4S3i3REXiHzRYH1o,296536
154
155
  khoj/interface/compiled/_next/static/chunks/4357-d86d3401f6f6f802.js,sha256=KDM1m01Fz-vcAMfxQfYPO6SEZJVK7z4241JOCEvou6Y,45442
155
- khoj/interface/compiled/_next/static/chunks/4363-e6ac2203564d1a3b.js,sha256=YFO-i3X2LrX9c4MgYY1kPsoRBaqVUkmfAKI62Rz2BVI,468054
156
+ khoj/interface/compiled/_next/static/chunks/4363-4efaf12abe696251.js,sha256=YFO-i3X2LrX9c4MgYY1kPsoRBaqVUkmfAKI62Rz2BVI,468054
156
157
  khoj/interface/compiled/_next/static/chunks/4415.e0c0da5eedae4dd7.js,sha256=DEf8HPEstDFvBflOU0j0ilYHlVJilGcGsLgUx524FZQ,25544
157
- khoj/interface/compiled/_next/static/chunks/4447-e038b251d626c340.js,sha256=Uw8IrcKmVR3wba-FB9maP9i9l_kAYg59r8PN1T_ipQE,19621
158
+ khoj/interface/compiled/_next/static/chunks/4447-5d44807c40355b1a.js,sha256=Uw8IrcKmVR3wba-FB9maP9i9l_kAYg59r8PN1T_ipQE,19621
158
159
  khoj/interface/compiled/_next/static/chunks/4609-33aa487dff03a9fd.js,sha256=1M6QAfVZa2g2Q4jXRdSI1wjrZ4G9yKjINJt8qyTKm1A,24698
159
160
  khoj/interface/compiled/_next/static/chunks/4610.a1e7f40a759ed2aa.js,sha256=b5JDRPyQv2MsibYoK2TDT76LMAoDTRzFM-fa81mJxow,14102
160
161
  khoj/interface/compiled/_next/static/chunks/4650.41f041da0ad365ad.js,sha256=EZeckNrMc3ZUX_LexPgaeusEq-dGBNEPm7nc5nvb4OM,33902
@@ -181,13 +182,13 @@ khoj/interface/compiled/_next/static/chunks/7890.f681eb1d1f83bea2.js,sha256=xd1q
181
182
  khoj/interface/compiled/_next/static/chunks/7953.f6fc335a23efb959.js,sha256=8XInVs3uzJAMGBndN2k4BeJNHmgZOembNuoyPe9Z7Oo,412
182
183
  khoj/interface/compiled/_next/static/chunks/8254.3145a4fbdcfdca46.js,sha256=sur8InabGfvh1HqNQhwBssc1tCPae_WKQ-efoYU1Q8A,412
183
184
  khoj/interface/compiled/_next/static/chunks/8400.c95e4e79bcd79a56.js,sha256=3SlFozKtF4DYQYPT3hB5M7VEm3e_W71kC19JgADz-3k,19864
184
- khoj/interface/compiled/_next/static/chunks/8515-f305779d95dd5780.js,sha256=QyTarawMADcAup6ipG9JMVnvkbkoYh0Ury2EWkflZ3o,1619194
185
- khoj/interface/compiled/_next/static/chunks/8667-8136f74e9a086fca.js,sha256=kyiAVJTylsiOPFTb63uZn_pMlk4pYhDYt_N7xL76PTM,7214
185
+ khoj/interface/compiled/_next/static/chunks/8515-010dd769c584b672.js,sha256=ZVTZ8aIgkQ-S2wAYrBKYmRhkzJzLqRMgzeGpfkOknDs,1619194
186
+ khoj/interface/compiled/_next/static/chunks/8667-adbe6017a66cef10.js,sha256=kyiAVJTylsiOPFTb63uZn_pMlk4pYhDYt_N7xL76PTM,7214
186
187
  khoj/interface/compiled/_next/static/chunks/8673.be44c4d9e4f1d084.js,sha256=jiE4xU-TbkVC4R60SIgxwdo31T9mbdVBVuhP4H60i94,18629
187
188
  khoj/interface/compiled/_next/static/chunks/8698.a088118fef40d302.js,sha256=mrK-3ZahVSF7sZij3l-PyXKxp-ccXU9orykXDc7YzsM,180
188
189
  khoj/interface/compiled/_next/static/chunks/9022.33974a513a281fd2.js,sha256=6NmDzRbI0NyTisUT04sq9M0czUqvlwZoV4E7Onp-55Q,57192
189
190
  khoj/interface/compiled/_next/static/chunks/90542734.9e6e44b1b45b30fe.js,sha256=5Ivye3p3HC-Ekf-bIPdnvmg_JtYLkCqyRPWtciOmuuo,413716
190
- khoj/interface/compiled/_next/static/chunks/9259-640fdd77408475df.js,sha256=lZJF9qq4_MeSRsHeNPNcxkqh2vhBfag5iAxg6krHA9g,34848
191
+ khoj/interface/compiled/_next/static/chunks/9259-d8bcd9da9e80c81e.js,sha256=lZJF9qq4_MeSRsHeNPNcxkqh2vhBfag5iAxg6krHA9g,34848
191
192
  khoj/interface/compiled/_next/static/chunks/9334-b22127fe2d39bc60.js,sha256=_TPWqSCbf86Ig1vIEDRLXzloZujDoxpoEWhRPUf6b5U,29065
192
193
  khoj/interface/compiled/_next/static/chunks/9433.b1b5f5d050c43e3c.js,sha256=kMVC0Gg95UqjfQXpGvi-WUSg_kYp0SN7CTPTHxHxDBk,144858
193
194
  khoj/interface/compiled/_next/static/chunks/94ca1967.1b3402358e0e1255.js,sha256=WJXEIy24FD6PNQePg-uahendJMNc03GgnVveitFeshI,1174524
@@ -200,34 +201,32 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
200
201
  khoj/interface/compiled/_next/static/chunks/main-98eb5932d6b2e3fa.js,sha256=AawaSgw7Q3CVsGFBX7BuL4bBqqXkJ4DJdGs-2cif97I,111273
201
202
  khoj/interface/compiled/_next/static/chunks/main-app-de1f09df97a3cfc7.js,sha256=bqnztujKItXfFBzQlaBmDZyfJpQt_M93CXOuchJfpD0,471
202
203
  khoj/interface/compiled/_next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
203
- khoj/interface/compiled/_next/static/chunks/webpack-449ea2835ec65e75.js,sha256=q5eV3ZaR-EYNga-QehWlJJC2XZe_z15cWkrDWyB2hdw,4891
204
+ khoj/interface/compiled/_next/static/chunks/webpack-1169ca6e9e7e6247.js,sha256=eK6LuYVr9XwNIkuaEpEyigJUhcXcx_iOdEnQzpvgG6c,4891
204
205
  khoj/interface/compiled/_next/static/chunks/app/layout-bd8210ff1de491d7.js,sha256=8gTcL8-sV5oa7vJRTxlgOpZvhNrsKomsu75DpVpqfE0,3983
205
- 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
206
207
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-0ec97c4970898f2d.js,sha256=zElhiTkdu2JqrEvJ8Lrxh4HCyfLmPllBHHWOuDtrVlw,1755
207
- khoj/interface/compiled/_next/static/chunks/app/agents/layout-5961c3717e1d8813.js,sha256=aZPuT0zAh0R0UEEYnuECRlf7jwbRPWGNDOalN9hOYZ8,3455
208
- 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-948ca256650845ce.js,sha256=90UW-xl1JYse_51fviRzfAE7LpAwkMxCymL-V2vJ6v4,3455
209
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-df5446aa4fb82e1a.js,sha256=I_L7ZSMnaB2S_8G4GqkbnjSZH8IPvZV6j9b-3Afr8e8,18314
209
210
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f5c33a70e46b3af.js,sha256=s2wHeQ-ai9rKyU9EjOGY1Yo51L4ZEkjLtML85BqN3Zc,5143
210
- khoj/interface/compiled/_next/static/chunks/app/automations/page-c6180af69fc9c766.js,sha256=5UqvUzxfTu8XqS1o9enSFi3jFZ6OmpCIW-Vzvhbb8Pc,34836
211
- khoj/interface/compiled/_next/static/chunks/app/chat/layout-3e25af7224d678a0.js,sha256=GdLRvoYSJiXx3limcAoEnq5fOiuDey_7d23CZ9b6c1A,3455
212
- khoj/interface/compiled/_next/static/chunks/app/chat/page-926ee054e844236a.js,sha256=YgxOe-lQsomVqIflMsdH6ciSq1r1mvZQGkg3PeBKTlM,28294
213
- khoj/interface/compiled/_next/static/chunks/app/search/layout-9ccd090dcc2aa58a.js,sha256=YpMcmZ-rIm4KgkDJr9jncqcoVZodRdiiTNx1iBdN51w,3455
214
- 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-603285e3b1400e74.js,sha256=jbpQcSbkDmThEkwRrkjoPtYprnltiMeVRA4Mr5XXz6g,3455
213
+ khoj/interface/compiled/_next/static/chunks/app/chat/page-50cb9b62b10b5f3d.js,sha256=DSJfNfKSKDk9hf_RKBJdqOW_Mqu9NnL6DD1nGAxFbkQ,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
215
216
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-a7262b2bb8c7ae64.js,sha256=lvyfWVLYyJsxhQvh5UWUVUBM71nmq9DdsmmnVfFXCgk,9401
216
- khoj/interface/compiled/_next/static/chunks/app/settings/page-1ff027f4e0a5c468.js,sha256=srmYMIrDRYeZ9Md98V-WHuNUoVQMETpD4zt5OEEdpAU,30575
217
- khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-9cc742afcea0b421.js,sha256=Xuq31gs_tCtfympW0yXKmxvY9rJ-dLv7LoS2NolWuY8,3455
218
- khoj/interface/compiled/_next/static/chunks/app/share/chat/page-ea29a4633737cb59.js,sha256=waXEJeDL9C3NYJuVH5_TqoNiLAionagcJBwhh0QwG5o,4831
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-246d0e8125219fff.js,sha256=T-U3NCxwKqNYQ0Y40U0zFgL-fHEZu30sQbK4lalDNrE,3455
219
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/page-6f26fe7f2f7edc56.js,sha256=e6wQT-yRzXBuJXjT7CobubWPIVed2NbvP1VxTC186HU,4826
219
220
  khoj/interface/compiled/_next/static/chunks/pages/_app-3c9ca398d360b709.js,sha256=UqtikLsCsOWtDUJOW6Tuk9P-bV1V3MhYd3ghrQuEmfs,286
220
221
  khoj/interface/compiled/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js,sha256=w_It3VzKT8O1M3CrJ_hZHsaU7M7dq3EAaVG8KvJ-fhU,253
221
- khoj/interface/compiled/_next/static/css/0db53bacf81896f5.css,sha256=7Kq40hXKsqTnQEz4otvA49gEDms7a0XAFCB0rwrnXQo,30547
222
+ khoj/interface/compiled/_next/static/css/37a73b87f02df402.css,sha256=hp0vlekKu0K2eITR5YIqFmLHQPqV3JETFnRd_-Uh0mk,165
222
223
  khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css,sha256=IUkZhkx4GpYOIhN-EJw9T1DqGMO3Wa3mNpUwaOBuZoY,7204
223
224
  khoj/interface/compiled/_next/static/css/b061a6aedf367349.css,sha256=TBw0S55aM8UbisYpvbVjM9Ch7bUG16L5WlNXd6KTs1g,3075676
224
225
  khoj/interface/compiled/_next/static/css/b15666ef52060cd0.css,sha256=JMH_WAG7ZoebkDxeKdDq1L4liB_nAh3ayim8JT6r1Js,1737
225
- khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css,sha256=PBwues3rUFWl02xEnWqKbRFK59SkQUCqYuV45ZedG4U,3318
226
226
  khoj/interface/compiled/_next/static/css/e4eb883b5265d372.css,sha256=6LaW-lQ_ZpgOJNWYwU1Q1egXZ1aqJDEuRj66oRCIU_E,17748
227
227
  khoj/interface/compiled/_next/static/css/ea5485b3f3859a5a.css,sha256=tn6qi2xSLTWhtzDUE8UlC8iipH9QGV6A9oGj1ap-Sk4,1659
228
- khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css,sha256=3JbJLrnwlX_IHdvjmS3l9y3Vgp5_V0XbfFI44ekLh9E,3106
229
- khoj/interface/compiled/_next/static/dWV1ok4ndbQQtpEVqLZAh/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
230
- khoj/interface/compiled/_next/static/dWV1ok4ndbQQtpEVqLZAh/_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
231
230
  khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2,sha256=IzKBwB_bpSGvO7C9aRv29Js-jAbZPRDI-D-P4H2P918,14508
232
231
  khoj/interface/compiled/_next/static/media/2aa11a72f7f24b58-s.woff2,sha256=QjuuSKmViymmy-itXLB1UbSARxFNHWuMiPpCrYqClFI,22728
233
232
  khoj/interface/compiled/_next/static/media/383a65b63658737d-s.woff2,sha256=VH1XkI87HdFVhsurH5D5ekEjG_ZORTVBVg6xz7p87C8,16704
@@ -305,8 +304,10 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
305
304
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
306
305
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
307
306
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
308
- khoj/interface/compiled/agents/index.html,sha256=H0uBR05ShAAvcwiA_xDWgcaC3C0eJoEjYS-tHHig5yk,19567
309
- khoj/interface/compiled/agents/index.txt,sha256=27-q63Y8EY3-TDNHVPcOgnOoeEmYdDB-eGun2oGCzdw,8839
307
+ khoj/interface/compiled/_next/static/mnJxv49O8dzkwTygquq43/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
308
+ khoj/interface/compiled/_next/static/mnJxv49O8dzkwTygquq43/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
309
+ khoj/interface/compiled/agents/index.html,sha256=NhVdm6O0ZXvUuXzJ5Q01_AZ-ODjuk66VGCoVnCFUMN8,19256
310
+ khoj/interface/compiled/agents/index.txt,sha256=HOdjjjC5-EsFwvjG1KDnrj2cYzuej0vwu6d8Shex4Qw,8706
310
311
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
311
312
  khoj/interface/compiled/assets/icons/khoj_lantern.svg,sha256=I_8XP5X84gEOoCRhCRKOQn_GKZrz3SUBXct7WxHvY7c,8767
312
313
  khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png,sha256=xDx0bbD-WMflgg8zck9oPIIuTIvywtuED2k7CjSQS4w,66194
@@ -321,16 +322,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
321
322
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
322
323
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
323
324
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
324
- khoj/interface/compiled/automations/index.html,sha256=EeSQduhFy0t7zwKThGJ_WPBcbxwvtUQpsK0SdMD2cVU,56234
325
- khoj/interface/compiled/automations/index.txt,sha256=0IE5-YKVO0QoFTIP3rWFrqUFtfxuB2PXjFlWSqq8nAI,8436
326
- khoj/interface/compiled/chat/index.html,sha256=gQsHE9CRG8xbYE3l541L25h35xA8gnSPnLF6H4yV5pA,56561
327
- khoj/interface/compiled/chat/index.txt,sha256=leKhmyn281KW2Q9d8n-4017oCEsDHI38Ib-6L5_mvFQ,9475
328
- khoj/interface/compiled/search/index.html,sha256=QA05abV2nVopjrjUioKo0Pt_0dmWVgpSJ4KXPftkQ4M,58213
329
- khoj/interface/compiled/search/index.txt,sha256=LRwT9y_Bp1Vl5dK0bHfKSo3BuTVirI5HzvrjXztYcQ4,7990
330
- khoj/interface/compiled/settings/index.html,sha256=hL77Uc505eA-cNz82VMoe2qs2l6W8hSIhhs2nNHcdqc,56257
331
- khoj/interface/compiled/settings/index.txt,sha256=Mi8VODY01sRy75YXcQA8XtZvstlsMaJg0BsmwxTfoLg,9564
332
- khoj/interface/compiled/share/chat/index.html,sha256=cZ6aqk3zQ6F-Rh2fgXszIPtc1oMD10Ufgn4M8v5l0lU,57153
333
- khoj/interface/compiled/share/chat/index.txt,sha256=Qm0Pf0rmZvTLfk9Z7M_3v0sgwaDH3AKx0fQgivUej3U,9943
325
+ khoj/interface/compiled/automations/index.html,sha256=_ffrFDgLtTZsHxYOyjAXj9M1nwUFz58JNummEwJazQY,55923
326
+ khoj/interface/compiled/automations/index.txt,sha256=STd3XT6L7Gl0G-YPsBv-Ky8UxkflhYM_S8nqNLaiue4,8303
327
+ khoj/interface/compiled/chat/index.html,sha256=4lOH3-ypIz-L6I3ULDQZBHGNF06OnitwJZ_EFMR_CTE,56251
328
+ khoj/interface/compiled/chat/index.txt,sha256=ndIX57RL5FJ2VYGwXXD9dtLzFfXY4_3YeEiBN2p_LuE,9342
329
+ khoj/interface/compiled/search/index.html,sha256=UnqDztMpAS8oLPWzaKI05ayUeQlpasgdBFkYdAKHdc4,58213
330
+ khoj/interface/compiled/search/index.txt,sha256=4ClHkC4SB48xfvG8hdw0oDdy6TFzDNF3dTRu80vhpUE,7990
331
+ khoj/interface/compiled/settings/index.html,sha256=4sdx6nwf1Zc-LQNJyHVJCD79jZak1R2_YTBSRZnUYsY,55947
332
+ khoj/interface/compiled/settings/index.txt,sha256=mrBYQlJJsRCqfkYSRLdJeIr6hmod-rpq5sjtBpGlVrs,9431
333
+ khoj/interface/compiled/share/chat/index.html,sha256=DQJbZmA0Vnp9UjmS6yYz7biuARGz2Yf5vYHXmQUrSJM,56843
334
+ khoj/interface/compiled/share/chat/index.txt,sha256=_1IHSgSwd70zUnyEOlWd3o7GxwTdKFvUhLzeVnVXL8o,9810
334
335
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
335
336
  khoj/interface/email/magic_link.html,sha256=372ESbTPKM9acekuZcOIKOw6kBl-KikFg_L9MOHqJkg,2094
336
337
  khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
@@ -385,18 +386,18 @@ khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
385
386
  khoj/processor/conversation/prompts.py,sha256=wM7XmOztzFdHN4xXe340bahVt9rb96SSE4WtYdJDr98,57159
386
387
  khoj/processor/conversation/utils.py,sha256=TYASt3HV3Rm0s2oc9yBZu7H52O7D2kpPiRJhBpouiJE,33942
387
388
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
388
- khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=64NJ2l0ejFzJCNhH5zxgcXAw13w-sdwcpYsmBiZFfTc,9092
389
- khoj/processor/conversation/anthropic/utils.py,sha256=5w2_BS3gj_-LhcgFWuPzYYAI0iSgur5nOOJZjImhFCE,8572
389
+ khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=Nag3NECOfpREPPdjJ7adqYzboE2-ialdq0YsGdfoSnI,9280
390
+ khoj/processor/conversation/anthropic/utils.py,sha256=oSDJl2cNW1_QdyPo_yUKI_wgIhrQ15NsjEQCVwdVags,9054
390
391
  khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
391
- khoj/processor/conversation/google/gemini_chat.py,sha256=GcsMHPLiDf-NJ1qZNZe-VRIRkxjIpOSmqB1bMRcRsg4,9331
392
- khoj/processor/conversation/google/utils.py,sha256=H08OwS6mHivpErKjQWcN6nD7Sk7vdJTbD_EnYE8niNk,11081
392
+ khoj/processor/conversation/google/gemini_chat.py,sha256=3Chruq2qiPmorr4seXJ3nwLkfyakHMCt9PFPMOAXAyI,9563
393
+ khoj/processor/conversation/google/utils.py,sha256=NZf1FwvWjMdln6pRSjZsL_isdWxpzkNUMV74yB8s83E,11861
393
394
  khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
394
395
  khoj/processor/conversation/offline/chat_model.py,sha256=Sr0VpCipeWdEnuOQjgBo89uPZzQkQRSdTo5fm0EZTpI,11326
395
396
  khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
396
397
  khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
397
398
  khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
398
399
  khoj/processor/conversation/openai/gpt.py,sha256=rGumVo0kuNWe9TwNcvwCaOGr6YMNo12eFl1Ipu--TYw,8942
399
- khoj/processor/conversation/openai/utils.py,sha256=TUe4e1ZGK9fkR-li6d4pjlfeyUW54v2rSHyivzkG7fU,9368
400
+ khoj/processor/conversation/openai/utils.py,sha256=8dVvaZ-JVMFnDOjuqu0s9Q8_4x_61jitrnlBD2L5MUM,9314
400
401
  khoj/processor/conversation/openai/whisper.py,sha256=zoEeK1LNCg_tzP4xzYi5vRPzNPGuDGzpkrkG7d1LUn4,447
401
402
  khoj/processor/image/generate.py,sha256=FAIIsr8TIHxWxK-INNK4jJOOswBxQFyi_G4tI8NNEI8,10571
402
403
  khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -405,7 +406,7 @@ khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
405
406
  khoj/processor/tools/online_search.py,sha256=2cK6e-AlHyrxDzXwEkEMOfe9BwdHf6FoB19O_uX59bA,21458
406
407
  khoj/processor/tools/run_code.py,sha256=KkC22mMDW14RMLSniR1SAiBuANqQXXAP_8IyhDuNeXY,12024
407
408
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
408
- khoj/routers/api.py,sha256=HLmlmBadznyLeKN9fyTDFMsdWObQWwQ-e1cLdv1lOzk,29277
409
+ khoj/routers/api.py,sha256=1sAJN5KvssFph7AcoFSJmQDlveOgyy530E9Bb-rJUTk,29491
409
410
  khoj/routers/api_agents.py,sha256=Z0Ska8_KaE1N5Qx8L-Hdp-LctCl7e_yxkadF1d-BYKI,15291
410
411
  khoj/routers/api_chat.py,sha256=UcXWuX_JBGz038WXH29T1erf0fl541kdIg8Y9gUuXF4,51496
411
412
  khoj/routers/api_content.py,sha256=uLO3eir36rERkhhKU1HOdEv8KTi_z_edT9cHMCZP1W8,24578
@@ -414,7 +415,7 @@ khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,220
414
415
  khoj/routers/api_subscription.py,sha256=qnbKwA6N1TWK8Aiu1FFLka_JhbPOuwqT262NSHGZDiQ,5569
415
416
  khoj/routers/auth.py,sha256=W6iKUDdZ4rUwl-LAjiunTjvKJtEupVRIOSKXBseMXMY,10659
416
417
  khoj/routers/email.py,sha256=wvr6_fpk0RuKcTPC6suI8JDZPLYzJ9hAhz_G41yZytc,3923
417
- khoj/routers/helpers.py,sha256=ZJrOhVIVM7vgBsbB2B2YLaRRdeMHewdZjJDZec5wWZI,96086
418
+ khoj/routers/helpers.py,sha256=dK-aXWkzzBBdsywDYj8umMRturEzQSQG-A4Qvqj59mU,96653
418
419
  khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
419
420
  khoj/routers/research.py,sha256=3v4obl7RHJaSz6Sv1ZXEZreHvlPG8-VyFYT9Qlnsy14,17976
420
421
  khoj/routers/storage.py,sha256=lao0DvsF49QleZvOdjKM98RU2cGfCJDBb7WeoI7Rr3I,2172
@@ -430,17 +431,17 @@ khoj/search_type/text_search.py,sha256=PZzJVCXpeBM795SIqiAKXAxgnCp1NIRiVikm040r1
430
431
  khoj/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
431
432
  khoj/utils/cli.py,sha256=IIZ2qH0v7Jmqw3JRH1K5EMp9TRze6en3GYsASnglMEM,3916
432
433
  khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
433
- khoj/utils/constants.py,sha256=gZ6CtlTbRSdqyd98Li874klP5FzV-4XJhN2lUbLfFyw,2439
434
+ khoj/utils/constants.py,sha256=AyvaB18DPuMHP1jx4xbE51l-mHaWduWVFzGLMs-1-to,2569
434
435
  khoj/utils/fs_syncer.py,sha256=5nqwAZqRk3Nwhkwd8y4IomTPZQmW32GwAqyMzal5KyY,9996
435
- khoj/utils/helpers.py,sha256=LA06VDh8CJIXzjBbJA1hQ4jxvUmEtWKU2Yt4EnoeQE0,24367
436
+ khoj/utils/helpers.py,sha256=IZAcGkNu_HVxO0dv04Tf6gAqRdqb_R4LvsvsW6lCRH4,26508
436
437
  khoj/utils/initialization.py,sha256=wDBlLAmKWKYEpZKEyxbOo0Cos9_CrUoVLkiy9SwqzfY,14723
437
438
  khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
438
439
  khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
439
440
  khoj/utils/rawconfig.py,sha256=wfZTk-Aifb-_q9Yh-NPfh9LlLTioYG-yBqrasgvo4pc,5045
440
441
  khoj/utils/state.py,sha256=axjZhnby8L3bY-N1VVoWgBH1RpFGK6U3_ZeNo1Kt7hs,1679
441
442
  khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
442
- khoj-1.37.1.dev6.dist-info/METADATA,sha256=4X8rLwYzPrUrcnawTWdpKs0Su_ZRp7DGdMSF1YU1_k4,7720
443
- khoj-1.37.1.dev6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
444
- khoj-1.37.1.dev6.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
445
- khoj-1.37.1.dev6.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
446
- khoj-1.37.1.dev6.dist-info/RECORD,,
443
+ khoj-1.37.1.dev12.dist-info/METADATA,sha256=15nqc7DpV3icMafK1mNA6YyoHOv2mw9Dv8xX4OYDxyI,7721
444
+ khoj-1.37.1.dev12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
445
+ khoj-1.37.1.dev12.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
446
+ khoj-1.37.1.dev12.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
447
+ khoj-1.37.1.dev12.dist-info/RECORD,,
@@ -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}