khoj 1.20.5.dev1__py3-none-any.whl → 1.20.5.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 (40) hide show
  1. khoj/interface/compiled/404/index.html +1 -1
  2. khoj/interface/compiled/_next/static/chunks/{webpack-61a553b6ff44f97c.js → webpack-95cfd7a1948cfeed.js} +1 -1
  3. khoj/interface/compiled/_next/static/css/{01e8624859fbf298.css → df6f4c34ec280d53.css} +1 -1
  4. khoj/interface/compiled/agents/index.html +1 -1
  5. khoj/interface/compiled/agents/index.txt +2 -2
  6. khoj/interface/compiled/automations/index.html +1 -1
  7. khoj/interface/compiled/automations/index.txt +1 -1
  8. khoj/interface/compiled/chat/index.html +1 -1
  9. khoj/interface/compiled/chat/index.txt +2 -2
  10. khoj/interface/compiled/factchecker/index.html +1 -1
  11. khoj/interface/compiled/factchecker/index.txt +2 -2
  12. khoj/interface/compiled/index.html +1 -1
  13. khoj/interface/compiled/index.txt +2 -2
  14. khoj/interface/compiled/search/index.html +1 -1
  15. khoj/interface/compiled/search/index.txt +2 -2
  16. khoj/interface/compiled/settings/index.html +1 -1
  17. khoj/interface/compiled/settings/index.txt +1 -1
  18. khoj/interface/compiled/share/chat/index.html +1 -1
  19. khoj/interface/compiled/share/chat/index.txt +2 -2
  20. khoj/processor/conversation/anthropic/anthropic_chat.py +6 -2
  21. khoj/processor/conversation/offline/chat_model.py +15 -3
  22. khoj/processor/conversation/openai/gpt.py +6 -3
  23. khoj/processor/conversation/openai/utils.py +1 -1
  24. khoj/processor/conversation/prompts.py +20 -0
  25. khoj/processor/tools/online_search.py +9 -3
  26. khoj/routers/api.py +3 -1
  27. khoj/routers/api_chat.py +2 -2
  28. khoj/routers/helpers.py +10 -2
  29. {khoj-1.20.5.dev1.dist-info → khoj-1.20.5.dev8.dist-info}/METADATA +1 -1
  30. {khoj-1.20.5.dev1.dist-info → khoj-1.20.5.dev8.dist-info}/RECORD +40 -40
  31. /khoj/interface/compiled/_next/static/{8Yn9jku-m5M_PAyjzwo15 → BOxv5Hrq5WDp-c117l6eC}/_buildManifest.js +0 -0
  32. /khoj/interface/compiled/_next/static/{8Yn9jku-m5M_PAyjzwo15 → BOxv5Hrq5WDp-c117l6eC}/_ssgManifest.js +0 -0
  33. /khoj/interface/compiled/_next/static/chunks/{8423-898d821eaab634af.js → 8423-132ea64eac83fd43.js} +0 -0
  34. /khoj/interface/compiled/_next/static/chunks/{9178-ef3257c08d8973c8.js → 9178-5a1fa2b9023249af.js} +0 -0
  35. /khoj/interface/compiled/_next/static/chunks/{9417-5d14ac74aaab2c66.js → 9417-2e54c6fd056982d8.js} +0 -0
  36. /khoj/interface/compiled/_next/static/chunks/app/agents/{page-989a824c640bc532.js → page-922694b75f1fb67b.js} +0 -0
  37. /khoj/interface/compiled/_next/static/chunks/app/{page-851860583273ab5d.js → page-ef4e7248d37fae41.js} +0 -0
  38. {khoj-1.20.5.dev1.dist-info → khoj-1.20.5.dev8.dist-info}/WHEEL +0 -0
  39. {khoj-1.20.5.dev1.dist-info → khoj-1.20.5.dev8.dist-info}/entry_points.txt +0 -0
  40. {khoj-1.20.5.dev1.dist-info → khoj-1.20.5.dev8.dist-info}/licenses/LICENSE +0 -0
@@ -7,7 +7,7 @@ from typing import Any, Iterator, List, Union
7
7
  from langchain.schema import ChatMessage
8
8
  from llama_cpp import Llama
9
9
 
10
- from khoj.database.models import Agent
10
+ from khoj.database.models import Agent, KhojUser
11
11
  from khoj.processor.conversation import prompts
12
12
  from khoj.processor.conversation.offline.utils import download_model
13
13
  from khoj.processor.conversation.utils import (
@@ -30,7 +30,9 @@ def extract_questions_offline(
30
30
  use_history: bool = True,
31
31
  should_extract_questions: bool = True,
32
32
  location_data: LocationData = None,
33
+ user: KhojUser = None,
33
34
  max_prompt_size: int = None,
35
+ temperature: float = 0.7,
34
36
  ) -> List[str]:
35
37
  """
36
38
  Infer search queries to retrieve relevant notes to answer user query
@@ -45,6 +47,7 @@ def extract_questions_offline(
45
47
  offline_chat_model = loaded_model or download_model(model, max_tokens=max_prompt_size)
46
48
 
47
49
  location = f"{location_data.city}, {location_data.region}, {location_data.country}" if location_data else "Unknown"
50
+ username = prompts.user_name.format(name=user.get_full_name()) if user and user.get_full_name() else ""
48
51
 
49
52
  # Extract Past User Message and Inferred Questions from Conversation Log
50
53
  chat_history = ""
@@ -64,10 +67,12 @@ def extract_questions_offline(
64
67
  chat_history=chat_history,
65
68
  current_date=today.strftime("%Y-%m-%d"),
66
69
  day_of_week=today.strftime("%A"),
70
+ current_month=today.strftime("%Y-%m"),
67
71
  yesterday_date=yesterday,
68
72
  last_year=last_year,
69
73
  this_year=today.year,
70
74
  location=location,
75
+ username=username,
71
76
  )
72
77
 
73
78
  messages = generate_chatml_messages_with_context(
@@ -77,7 +82,11 @@ def extract_questions_offline(
77
82
  state.chat_lock.acquire()
78
83
  try:
79
84
  response = send_message_to_model_offline(
80
- messages, loaded_model=offline_chat_model, model=model, max_prompt_size=max_prompt_size
85
+ messages,
86
+ loaded_model=offline_chat_model,
87
+ model=model,
88
+ max_prompt_size=max_prompt_size,
89
+ temperature=temperature,
81
90
  )
82
91
  finally:
83
92
  state.chat_lock.release()
@@ -229,6 +238,7 @@ def send_message_to_model_offline(
229
238
  messages: List[ChatMessage],
230
239
  loaded_model=None,
231
240
  model="NousResearch/Hermes-2-Pro-Mistral-7B-GGUF",
241
+ temperature: float = 0.2,
232
242
  streaming=False,
233
243
  stop=[],
234
244
  max_prompt_size: int = None,
@@ -236,7 +246,9 @@ def send_message_to_model_offline(
236
246
  assert loaded_model is None or isinstance(loaded_model, Llama), "loaded_model must be of type Llama, if configured"
237
247
  offline_chat_model = loaded_model or download_model(model, max_tokens=max_prompt_size)
238
248
  messages_dict = [{"role": message.role, "content": message.content} for message in messages]
239
- response = offline_chat_model.create_chat_completion(messages_dict, stop=stop, stream=streaming)
249
+ response = offline_chat_model.create_chat_completion(
250
+ messages_dict, stop=stop, stream=streaming, temperature=temperature
251
+ )
240
252
  if streaming:
241
253
  return response
242
254
  else:
@@ -5,7 +5,7 @@ from typing import Dict, Optional
5
5
 
6
6
  from langchain.schema import ChatMessage
7
7
 
8
- from khoj.database.models import Agent
8
+ from khoj.database.models import Agent, KhojUser
9
9
  from khoj.processor.conversation import prompts
10
10
  from khoj.processor.conversation.openai.utils import (
11
11
  chat_completion_with_backoff,
@@ -24,14 +24,15 @@ def extract_questions(
24
24
  conversation_log={},
25
25
  api_key=None,
26
26
  api_base_url=None,
27
- temperature=0,
28
- max_tokens=100,
27
+ temperature=0.7,
29
28
  location_data: LocationData = None,
29
+ user: KhojUser = None,
30
30
  ):
31
31
  """
32
32
  Infer search queries to retrieve relevant notes to answer user query
33
33
  """
34
34
  location = f"{location_data.city}, {location_data.region}, {location_data.country}" if location_data else "Unknown"
35
+ username = prompts.user_name.format(name=user.get_full_name()) if user and user.get_full_name() else ""
35
36
 
36
37
  # Extract Past User Message and Inferred Questions from Conversation Log
37
38
  chat_history = "".join(
@@ -50,6 +51,7 @@ def extract_questions(
50
51
  prompt = prompts.extract_questions.format(
51
52
  current_date=today.strftime("%Y-%m-%d"),
52
53
  day_of_week=today.strftime("%A"),
54
+ current_month=today.strftime("%Y-%m"),
53
55
  last_new_year=last_new_year.strftime("%Y"),
54
56
  last_new_year_date=last_new_year.strftime("%Y-%m-%d"),
55
57
  current_new_year_date=current_new_year.strftime("%Y-%m-%d"),
@@ -59,6 +61,7 @@ def extract_questions(
59
61
  text=text,
60
62
  yesterday_date=(today - timedelta(days=1)).strftime("%Y-%m-%d"),
61
63
  location=location,
64
+ username=username,
62
65
  )
63
66
  messages = [ChatMessage(content=prompt, role="user")]
64
67
 
@@ -36,7 +36,7 @@ def completion_with_backoff(
36
36
  messages, model, temperature=0, openai_api_key=None, api_base_url=None, model_kwargs=None
37
37
  ) -> str:
38
38
  client_key = f"{openai_api_key}--{api_base_url}"
39
- client: openai.OpenAI = openai_clients.get(client_key)
39
+ client: openai.OpenAI | None = openai_clients.get(client_key)
40
40
  if not client:
41
41
  client = openai.OpenAI(
42
42
  api_key=openai_api_key,
@@ -208,10 +208,12 @@ Construct search queries to retrieve relevant information to answer the user's q
208
208
  - Add as much context from the previous questions and answers as required into your search queries.
209
209
  - Break messages into multiple search queries when required to retrieve the relevant information.
210
210
  - Add date filters to your search queries from questions and answers when required to retrieve the relevant information.
211
+ - When asked a meta, vague or random questions, search for a variety of broad topics to answer the user's question.
211
212
  - Share relevant search queries as a JSON list of strings. Do not say anything else.
212
213
 
213
214
  Current Date: {day_of_week}, {current_date}
214
215
  User's Location: {location}
216
+ {username}
215
217
 
216
218
  Examples:
217
219
  Q: How was my trip to Cambodia?
@@ -238,6 +240,9 @@ Khoj: ["What kind of plants do I have?", "What issues do my plants have?"]
238
240
  Q: Who all did I meet here yesterday?
239
241
  Khoj: ["Met in {location} on {yesterday_date} dt>='{yesterday_date}' dt<'{current_date}'"]
240
242
 
243
+ Q: Share some random, interesting experiences from this month
244
+ Khoj: ["Exciting travel adventures from {current_month}", "Fun social events dt>='{current_month}-01' dt<'{current_date}'", "Intense emotional experiences in {current_month}"]
245
+
241
246
  Chat History:
242
247
  {chat_history}
243
248
  What searches will you perform to answer the following question, using the chat history as reference? Respond only with relevant search queries as a valid JSON list of strings.
@@ -254,10 +259,12 @@ Construct search queries to retrieve relevant information to answer the user's q
254
259
  - Add as much context from the previous questions and answers as required into your search queries.
255
260
  - Break messages into multiple search queries when required to retrieve the relevant information.
256
261
  - Add date filters to your search queries from questions and answers when required to retrieve the relevant information.
262
+ - When asked a meta, vague or random questions, search for a variety of broad topics to answer the user's question.
257
263
 
258
264
  What searches will you perform to answer the users question? Respond with search queries as list of strings in a JSON object.
259
265
  Current Date: {day_of_week}, {current_date}
260
266
  User's Location: {location}
267
+ {username}
261
268
 
262
269
  Q: How was my trip to Cambodia?
263
270
  Khoj: {{"queries": ["How was my trip to Cambodia?"]}}
@@ -279,6 +286,10 @@ Q: How many tennis balls fit in the back of a 2002 Honda Civic?
279
286
  Khoj: {{"queries": ["What is the size of a tennis ball?", "What is the trunk size of a 2002 Honda Civic?"]}}
280
287
  A: 1085 tennis balls will fit in the trunk of a Honda Civic
281
288
 
289
+ Q: Share some random, interesting experiences from this month
290
+ Khoj: {{"queries": ["Exciting travel adventures from {current_month}", "Fun social events dt>='{current_month}-01' dt<'{current_date}'", "Intense emotional experiences in {current_month}"]}}
291
+ A: You had a great time at the local beach with your friends, attended a music concert and had a deep conversation with your friend, Khalid.
292
+
282
293
  Q: Is Bob older than Tom?
283
294
  Khoj: {{"queries": ["When was Bob born?", "What is Tom's age?"]}}
284
295
  A: Yes, Bob is older than Tom. As Bob was born on 1984-01-01 and Tom is 30 years old.
@@ -305,11 +316,13 @@ Construct search queries to retrieve relevant information to answer the user's q
305
316
  - Add as much context from the previous questions and answers as required into your search queries.
306
317
  - Break messages into multiple search queries when required to retrieve the relevant information.
307
318
  - Add date filters to your search queries from questions and answers when required to retrieve the relevant information.
319
+ - When asked a meta, vague or random questions, search for a variety of broad topics to answer the user's question.
308
320
 
309
321
  What searches will you perform to answer the users question? Respond with a JSON object with the key "queries" mapping to a list of searches you would perform on the user's knowledge base. Just return the queries and nothing else.
310
322
 
311
323
  Current Date: {day_of_week}, {current_date}
312
324
  User's Location: {location}
325
+ {username}
313
326
 
314
327
  Here are some examples of how you can construct search queries to answer the user's question:
315
328
 
@@ -328,6 +341,11 @@ A: I can help you live healthier and happier across work and personal life
328
341
  User: Who all did I meet here yesterday?
329
342
  Assistant: {{"queries": ["Met in {location} on {yesterday_date} dt>='{yesterday_date}' dt<'{current_date}'"]}}
330
343
  A: Yesterday's note mentions your visit to your local beach with Ram and Shyam.
344
+
345
+ User: Share some random, interesting experiences from this month
346
+ Assistant: {{"queries": ["Exciting travel adventures from {current_month}", "Fun social events dt>='{current_month}-01' dt<'{current_date}'", "Intense emotional experiences in {current_month}"]}}
347
+ A: You had a great time at the local beach with your friends, attended a music concert and had a deep conversation with your friend, Khalid.
348
+
331
349
  """.strip()
332
350
  )
333
351
 
@@ -525,6 +543,7 @@ Which webpages will you need to read to answer the user's question?
525
543
  Provide web page links as a list of strings in a JSON object.
526
544
  Current Date: {current_date}
527
545
  User's Location: {location}
546
+ {username}
528
547
 
529
548
  Here are some examples:
530
549
  History:
@@ -571,6 +590,7 @@ What Google searches, if any, will you need to perform to answer the user's ques
571
590
  Provide search queries as a list of strings in a JSON object. Do not wrap the json in a codeblock.
572
591
  Current Date: {current_date}
573
592
  User's Location: {location}
593
+ {username}
574
594
 
575
595
  Here are some examples:
576
596
  History:
@@ -10,6 +10,7 @@ import aiohttp
10
10
  from bs4 import BeautifulSoup
11
11
  from markdownify import markdownify
12
12
 
13
+ from khoj.database.models import KhojUser
13
14
  from khoj.routers.helpers import (
14
15
  ChatEvent,
15
16
  extract_relevant_info,
@@ -51,6 +52,7 @@ async def search_online(
51
52
  query: str,
52
53
  conversation_history: dict,
53
54
  location: LocationData,
55
+ user: KhojUser,
54
56
  send_status_func: Optional[Callable] = None,
55
57
  custom_filters: List[str] = [],
56
58
  ):
@@ -61,7 +63,7 @@ async def search_online(
61
63
  return
62
64
 
63
65
  # Breakdown the query into subqueries to get the correct answer
64
- subqueries = await generate_online_subqueries(query, conversation_history, location)
66
+ subqueries = await generate_online_subqueries(query, conversation_history, location, user)
65
67
  response_dict = {}
66
68
 
67
69
  if subqueries:
@@ -126,14 +128,18 @@ async def search_with_google(query: str) -> Tuple[str, Dict[str, List[Dict]]]:
126
128
 
127
129
 
128
130
  async def read_webpages(
129
- query: str, conversation_history: dict, location: LocationData, send_status_func: Optional[Callable] = None
131
+ query: str,
132
+ conversation_history: dict,
133
+ location: LocationData,
134
+ user: KhojUser,
135
+ send_status_func: Optional[Callable] = None,
130
136
  ):
131
137
  "Infer web pages to read from the query and extract relevant information from them"
132
138
  logger.info(f"Inferring web pages to read")
133
139
  if send_status_func:
134
140
  async for event in send_status_func(f"**Inferring web pages to read**"):
135
141
  yield {ChatEvent.STATUS: event}
136
- urls = await infer_webpage_urls(query, conversation_history, location)
142
+ urls = await infer_webpage_urls(query, conversation_history, location, user)
137
143
 
138
144
  logger.info(f"Reading web pages at: {urls}")
139
145
  if send_status_func:
khoj/routers/api.py CHANGED
@@ -388,6 +388,7 @@ async def extract_references_and_questions(
388
388
  conversation_log=meta_log,
389
389
  should_extract_questions=True,
390
390
  location_data=location_data,
391
+ user=user,
391
392
  max_prompt_size=conversation_config.max_prompt_size,
392
393
  )
393
394
  elif conversation_config.model_type == ChatModelOptions.ModelType.OPENAI:
@@ -402,7 +403,7 @@ async def extract_references_and_questions(
402
403
  api_base_url=base_url,
403
404
  conversation_log=meta_log,
404
405
  location_data=location_data,
405
- max_tokens=conversation_config.max_prompt_size,
406
+ user=user,
406
407
  )
407
408
  elif conversation_config.model_type == ChatModelOptions.ModelType.ANTHROPIC:
408
409
  api_key = conversation_config.openai_config.api_key
@@ -413,6 +414,7 @@ async def extract_references_and_questions(
413
414
  api_key=api_key,
414
415
  conversation_log=meta_log,
415
416
  location_data=location_data,
417
+ user=user,
416
418
  )
417
419
 
418
420
  # Collate search results as context for GPT
khoj/routers/api_chat.py CHANGED
@@ -792,7 +792,7 @@ async def chat(
792
792
  if ConversationCommand.Online in conversation_commands:
793
793
  try:
794
794
  async for result in search_online(
795
- defiltered_query, meta_log, location, partial(send_event, ChatEvent.STATUS), custom_filters
795
+ defiltered_query, meta_log, location, user, partial(send_event, ChatEvent.STATUS), custom_filters
796
796
  ):
797
797
  if isinstance(result, dict) and ChatEvent.STATUS in result:
798
798
  yield result[ChatEvent.STATUS]
@@ -809,7 +809,7 @@ async def chat(
809
809
  if ConversationCommand.Webpage in conversation_commands:
810
810
  try:
811
811
  async for result in read_webpages(
812
- defiltered_query, meta_log, location, partial(send_event, ChatEvent.STATUS)
812
+ defiltered_query, meta_log, location, user, partial(send_event, ChatEvent.STATUS)
813
813
  ):
814
814
  if isinstance(result, dict) and ChatEvent.STATUS in result:
815
815
  yield result[ChatEvent.STATUS]
khoj/routers/helpers.py CHANGED
@@ -340,11 +340,14 @@ async def aget_relevant_output_modes(query: str, conversation_history: dict, is_
340
340
  return ConversationCommand.Text
341
341
 
342
342
 
343
- async def infer_webpage_urls(q: str, conversation_history: dict, location_data: LocationData) -> List[str]:
343
+ async def infer_webpage_urls(
344
+ q: str, conversation_history: dict, location_data: LocationData, user: KhojUser
345
+ ) -> List[str]:
344
346
  """
345
347
  Infer webpage links from the given query
346
348
  """
347
349
  location = f"{location_data.city}, {location_data.region}, {location_data.country}" if location_data else "Unknown"
350
+ username = prompts.user_name.format(name=user.get_full_name()) if user.get_full_name() else ""
348
351
  chat_history = construct_chat_history(conversation_history)
349
352
 
350
353
  utc_date = datetime.utcnow().strftime("%Y-%m-%d")
@@ -353,6 +356,7 @@ async def infer_webpage_urls(q: str, conversation_history: dict, location_data:
353
356
  query=q,
354
357
  chat_history=chat_history,
355
358
  location=location,
359
+ username=username,
356
360
  )
357
361
 
358
362
  with timer("Chat actor: Infer webpage urls to read", logger):
@@ -370,11 +374,14 @@ async def infer_webpage_urls(q: str, conversation_history: dict, location_data:
370
374
  raise ValueError(f"Invalid list of urls: {response}")
371
375
 
372
376
 
373
- async def generate_online_subqueries(q: str, conversation_history: dict, location_data: LocationData) -> List[str]:
377
+ async def generate_online_subqueries(
378
+ q: str, conversation_history: dict, location_data: LocationData, user: KhojUser
379
+ ) -> List[str]:
374
380
  """
375
381
  Generate subqueries from the given query
376
382
  """
377
383
  location = f"{location_data.city}, {location_data.region}, {location_data.country}" if location_data else "Unknown"
384
+ username = prompts.user_name.format(name=user.get_full_name()) if user.get_full_name() else ""
378
385
  chat_history = construct_chat_history(conversation_history)
379
386
 
380
387
  utc_date = datetime.utcnow().strftime("%Y-%m-%d")
@@ -383,6 +390,7 @@ async def generate_online_subqueries(q: str, conversation_history: dict, locatio
383
390
  query=q,
384
391
  chat_history=chat_history,
385
392
  location=location,
393
+ username=username,
386
394
  )
387
395
 
388
396
  with timer("Chat actor: Generate online search subqueries", logger):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.20.5.dev1
3
+ Version: 1.20.5.dev8
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -88,17 +88,17 @@ khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvt
88
88
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
89
89
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
90
90
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
91
- khoj/interface/compiled/index.html,sha256=ERauOMVBsMpvNLVxWeH5z8CrLILnW6ZH3rSIg76C8UU,11912
92
- khoj/interface/compiled/index.txt,sha256=r9mA3aGLHaQ0DYUc2FQsztVUYwtZ45gJKgr34kO-5qM,5515
91
+ khoj/interface/compiled/index.html,sha256=4F0w63YPSQvO0WJmbxY-Gr3ykT1h0-qTMsWWyLjGvsk,11912
92
+ khoj/interface/compiled/index.txt,sha256=3D3bWuj8_rGFq13dngrpRAgJVclby6DE5f-X1P-m26Q,5515
93
93
  khoj/interface/compiled/khoj.webmanifest,sha256=lsknYkvEdMbRTOUYKXPM_8krN2gamJmM4u3qj8u9lrU,1682
94
94
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
95
95
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
96
96
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
97
97
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
98
98
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
99
- khoj/interface/compiled/404/index.html,sha256=3qZtNLPN2pdDpfSd8PH3rb9p_50CN2fEkyjiVQRKF3E,11947
100
- khoj/interface/compiled/_next/static/8Yn9jku-m5M_PAyjzwo15/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
101
- khoj/interface/compiled/_next/static/8Yn9jku-m5M_PAyjzwo15/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
99
+ khoj/interface/compiled/404/index.html,sha256=pWUCe4gMdMFTVsdWl1DslnkWLChrJsDBGHDh-Fz60F4,11947
100
+ khoj/interface/compiled/_next/static/BOxv5Hrq5WDp-c117l6eC/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
101
+ khoj/interface/compiled/_next/static/BOxv5Hrq5WDp-c117l6eC/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
102
102
  khoj/interface/compiled/_next/static/chunks/1603-fb2d80ae73990df3.js,sha256=CCbOXifiixbhMf7lgTG96225tP1Pou72Wb0Zh6KC1Rs,71007
103
103
  khoj/interface/compiled/_next/static/chunks/2614-7cf01576d4457a75.js,sha256=aUjhjyxNPrZr4bLKzGkGgHH8K4J6g9dfiRjabnmvSDc,1104737
104
104
  khoj/interface/compiled/_next/static/chunks/3062-a42d847c919a9ea4.js,sha256=9UDsx_sY4b4x6jjR_A0AymC9rjBCoCcEpGR4U-0Ej3g,256170
@@ -109,11 +109,11 @@ khoj/interface/compiled/_next/static/chunks/6648-ff677e51f1b2bcf1.js,sha256=9bJl
109
109
  khoj/interface/compiled/_next/static/chunks/7023-52c1be60135eb057.js,sha256=CI8R2DdZNEt3nACmiXUG1NnKhnal1ImzXglW-xDuxcI,123657
110
110
  khoj/interface/compiled/_next/static/chunks/7071-b4711cecca6619a8.js,sha256=z-KSur3LbIFPg_90wN0EMhV0et9cJVfG_MR9POVmdCQ,7801
111
111
  khoj/interface/compiled/_next/static/chunks/743-1a64254447cda71f.js,sha256=YH4bEkjmttcOGzAzXKaDCJ-C68jk2qy1cQJP2ljjoAA,100834
112
- khoj/interface/compiled/_next/static/chunks/8423-898d821eaab634af.js,sha256=W8aFQibnAqcbhPYoD_WzHKoMwaWt3jXdan7n_LoY4t4,10327
112
+ khoj/interface/compiled/_next/static/chunks/8423-132ea64eac83fd43.js,sha256=W8aFQibnAqcbhPYoD_WzHKoMwaWt3jXdan7n_LoY4t4,10327
113
113
  khoj/interface/compiled/_next/static/chunks/9001-acbca3e19b1a5ddf.js,sha256=M2hBSe8WTnjEmUlOiOgt_zDJtv3sc4ghnubhkZyMvVA,35460
114
114
  khoj/interface/compiled/_next/static/chunks/9162-4a6d0d0dc5e27618.js,sha256=2csnvP4rJcL4oZlBAEkzeSxBJy4gwYxzAnqzeWbe9fw,149225
115
- khoj/interface/compiled/_next/static/chunks/9178-ef3257c08d8973c8.js,sha256=2wBw6-Bg4NGBNwXOEmfnlVh-lO29bg85b9sirLSxSic,17645
116
- khoj/interface/compiled/_next/static/chunks/9417-5d14ac74aaab2c66.js,sha256=FZ8xOLMdzrlVmwtcyuQSy8bBwd8_UZ1hH3FlL4DwXpA,17252
115
+ khoj/interface/compiled/_next/static/chunks/9178-5a1fa2b9023249af.js,sha256=2wBw6-Bg4NGBNwXOEmfnlVh-lO29bg85b9sirLSxSic,17645
116
+ khoj/interface/compiled/_next/static/chunks/9417-2e54c6fd056982d8.js,sha256=FZ8xOLMdzrlVmwtcyuQSy8bBwd8_UZ1hH3FlL4DwXpA,17252
117
117
  khoj/interface/compiled/_next/static/chunks/9693-91b03052c5cabded.js,sha256=htVs3WyaR5jF7tXL_VBwqtPcQ53T3s9jWRazqz7DU-c,28957
118
118
  khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js,sha256=wK1TsLdl56xtbQG6HMRDpylzTOYXQaAnnn2xobFnX40,267216
119
119
  khoj/interface/compiled/_next/static/chunks/fd9d1056-2b978342deb60015.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
@@ -121,12 +121,12 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
121
121
  khoj/interface/compiled/_next/static/chunks/main-175c164f5e0f026c.js,sha256=hlUnjERudON4V4kUKprrFz1e9JRtSp4A9i7vnM-1bzA,110324
122
122
  khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
123
123
  khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
124
- khoj/interface/compiled/_next/static/chunks/webpack-61a553b6ff44f97c.js,sha256=THBNP5Yn4efpgViSJfWSvtGt23oNEscZtUg-IIKMpGM,3721
124
+ khoj/interface/compiled/_next/static/chunks/webpack-95cfd7a1948cfeed.js,sha256=RT53Os4eeSrtNd6oq78iDSlIfVAu4RaGdrYjvSfckaU,3721
125
125
  khoj/interface/compiled/_next/static/chunks/app/layout-f3e40d346da53112.js,sha256=nekGSUVbvB81OfqGgJa2UoDmbxPhNwFwtc4o11O_1jI,442
126
- khoj/interface/compiled/_next/static/chunks/app/page-851860583273ab5d.js,sha256=Ocjky2Cm-ctmhs1r4oSRBYyMfkotM0ErcWVTVCGei6Y,28601
126
+ khoj/interface/compiled/_next/static/chunks/app/page-ef4e7248d37fae41.js,sha256=Ocjky2Cm-ctmhs1r4oSRBYyMfkotM0ErcWVTVCGei6Y,28601
127
127
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
128
128
  khoj/interface/compiled/_next/static/chunks/app/agents/layout-e71c8e913cccf792.js,sha256=VyIMrkvntFObMzXF-elNtngJ8mBdjg8XrOGfboJ2f_4,372
129
- khoj/interface/compiled/_next/static/chunks/app/agents/page-989a824c640bc532.js,sha256=3jU-Yi9AqZMAvWyGhiVjy9SofvHSUHSUV65CbBpu3Rc,18086
129
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-922694b75f1fb67b.js,sha256=3jU-Yi9AqZMAvWyGhiVjy9SofvHSUHSUV65CbBpu3Rc,18086
130
130
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js,sha256=d2vJ_lVB0pfeFXNUPzHAe1ca5NzdNowHPh___SPqugM,5143
131
131
  khoj/interface/compiled/_next/static/chunks/app/automations/page-d7972645ccb80df1.js,sha256=elAjqbgd_xrq2ABcEECldivUA3OCN4AxXZiNvOGmT9s,33990
132
132
  khoj/interface/compiled/_next/static/chunks/app/chat/layout-8102549127db3067.js,sha256=YIoA3fqOBt8nKWw5iQAwA_avg2t1Q5Afn65IA5PBOz4,374
@@ -141,7 +141,6 @@ khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-39f03f9e32399f
141
141
  khoj/interface/compiled/_next/static/chunks/app/share/chat/page-699b364dc6fbf139.js,sha256=O6iOKdiyqchmlABUse3WokkisoHsn8ZRWMFZ_nqNXP0,10146
142
142
  khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
143
143
  khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
144
- khoj/interface/compiled/_next/static/css/01e8624859fbf298.css,sha256=XpkJf-7D3ZuU05036yIBlRx8gu_nMqNDOkG9nsak6JY,7751
145
144
  khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css,sha256=-qLZhPN-wA3kcrVODVTaG1sN0pmuzRCqNH12gs5_qYc,2569
146
145
  khoj/interface/compiled/_next/static/css/2272c73fc7a3b571.css,sha256=1fHKFd8zLOHosAHx-kxv4b9lVSqHag_E71WkV3dXx2Y,26940
147
146
  khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css,sha256=3CjTMmtMrm_MYt1ywtUh2MHEjSLSl356SQLl4hdBuYw,534
@@ -150,6 +149,7 @@ khoj/interface/compiled/_next/static/css/9d5b867ec04494a6.css,sha256=X2BihvGWIRM
150
149
  khoj/interface/compiled/_next/static/css/a22d83f18a32957e.css,sha256=kgAD2DQYH2WF2wqL759i62nR093yU_UfFClMKkAue6U,17709
151
150
  khoj/interface/compiled/_next/static/css/a3530ec58b0b660f.css,sha256=2fpX695nzJ6sNaNZbX_3Z0o-IA5kRlyN0ByIIXRgmtg,1570
152
151
  khoj/interface/compiled/_next/static/css/b81e909d403fb2df.css,sha256=bbu108v2_T74MIyokVmUz0A_oFCIHJpzHdYExXFYgjs,1913
152
+ khoj/interface/compiled/_next/static/css/df6f4c34ec280d53.css,sha256=lAIK7HFwb0PaJpMfHmkUSValOSSCdbW-c_L7Lgn_ki8,7751
153
153
  khoj/interface/compiled/_next/static/media/0e790e04fd40ad16-s.p.woff2,sha256=41ewITd0G1ZAoB62BTHMW58a1q8Hl6vSbTQkkHP7EbI,39372
154
154
  khoj/interface/compiled/_next/static/media/4221e1667cd19c7d-s.woff2,sha256=_Y3g0keA8P6nZnFfm_VO5o2Sne1iST3v9xz4fBo3fwM,75532
155
155
  khoj/interface/compiled/_next/static/media/6c276159aa0eb14b-s.woff2,sha256=i9Ibzi_O7y5KpImujj2rEdOZf96lpNYxYzVvCryW5Uc,140408
@@ -222,8 +222,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
222
222
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
223
223
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
224
224
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
225
- khoj/interface/compiled/agents/index.html,sha256=kwf_EgdcrxAj-QJt1PRKu-3BogK9njbug6_QWAjaHHQ,12391
226
- khoj/interface/compiled/agents/index.txt,sha256=xqifrMWf5nEupcq0Rho9aJ5JR64qddVWTyUejJbbEb0,5942
225
+ khoj/interface/compiled/agents/index.html,sha256=FXbs0wGssZS_4HWQCQB4OMRLtB4Ud67n6EeLxet1BAA,12391
226
+ khoj/interface/compiled/agents/index.txt,sha256=SLmz2FnQ_0lJ89lGXQdo97-M87RDiPnRyCPZYwP7SQc,5942
227
227
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
228
228
  khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
229
229
  khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
@@ -234,18 +234,18 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
234
234
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
235
235
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
236
236
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
237
- khoj/interface/compiled/automations/index.html,sha256=afonTg9kFGip1QXrm8ePWcuxUmp7tksmSIyrlsSqNCc,30808
238
- khoj/interface/compiled/automations/index.txt,sha256=74FGMV5Vl_8Fvd3uM6L0oIT8Uua-o1apSb7zaQYHXRY,5580
239
- khoj/interface/compiled/chat/index.html,sha256=M9cJREAa864LNCwIvzCZ2P9xZjktn2IAMU_b2aBVDtU,13566
240
- khoj/interface/compiled/chat/index.txt,sha256=t981VEmxgB_TO2uP_ZPMNrJJ2foOI-VwdoXPqVQsQaA,6421
241
- khoj/interface/compiled/factchecker/index.html,sha256=PhWVXIpRbfjLQp7cY8Q3k-Mt7y1ivChMgdsZ98KMnQM,29839
242
- khoj/interface/compiled/factchecker/index.txt,sha256=RjNvDWELfRci16ad_gnGh-NPXuJFgtK8b18A22EREQI,5735
243
- khoj/interface/compiled/search/index.html,sha256=4gKxylvVIHHRtuoZjnqeinIqMMd_jCGfmZYfWfscUTc,30154
244
- khoj/interface/compiled/search/index.txt,sha256=i_dRpMHk72Xq7zGPrDquyxS7oyzbXKOdutJzlBbix_E,5249
245
- khoj/interface/compiled/settings/index.html,sha256=T1pLp-SQdy7jBWQKk6EYyyhrEUbGrxJnTzaPdAJ30Yg,12827
246
- khoj/interface/compiled/settings/index.txt,sha256=uS_sC7KkZL2t5XuNwXPfDOZgyF9JvB742i7AsvpPTnw,6073
247
- khoj/interface/compiled/share/chat/index.html,sha256=RTd0kJN8wSSLmYPc9ACvWn-l8piVI-AW9ZMIWOtqC2Q,14896
248
- khoj/interface/compiled/share/chat/index.txt,sha256=TihfdfyYUrGcIKYGea_3jXlJ8CapFqanOEvmHWqtj9Y,7239
237
+ khoj/interface/compiled/automations/index.html,sha256=x1T07X_56llv2z3UuADE06NvyEJl-5n5KiihrOcufFM,30808
238
+ khoj/interface/compiled/automations/index.txt,sha256=moBz7LfTiIF0zlCJOyjsjhUB83to5xrQxMy4Dk7tqKo,5580
239
+ khoj/interface/compiled/chat/index.html,sha256=1aUqVxDgT-qBh0zY09BBfue75a-8BEIU8R5y2ILGfAs,13566
240
+ khoj/interface/compiled/chat/index.txt,sha256=14W80zolt2NPQaxpKTLFRlaAcnjPpznCEd9IDOKvGbY,6421
241
+ khoj/interface/compiled/factchecker/index.html,sha256=guc03b_PV95owmPKQQukttLxclC6C9otHdc4nCpSHEU,29839
242
+ khoj/interface/compiled/factchecker/index.txt,sha256=reo32VJ2eQIugne3Ikcbog4zKvTdmSNi9c2cnbDgO1Y,5735
243
+ khoj/interface/compiled/search/index.html,sha256=-hZKktZNmsE8FT0Vak_hzEcRNGn2Fv6qtuiLou7f_zY,30154
244
+ khoj/interface/compiled/search/index.txt,sha256=94uPvUTajMQVEzkiARZU_BZDLdlDziX-PLrRNpTWwkA,5249
245
+ khoj/interface/compiled/settings/index.html,sha256=foqkTMfSCNTuinpgfSGIgFMhF0Z5yjATLpZcum-zC_M,12827
246
+ khoj/interface/compiled/settings/index.txt,sha256=TJMA3NnYsQU6vACJbFb37xcBq80fqkY3rCNoX64XPBg,6073
247
+ khoj/interface/compiled/share/chat/index.html,sha256=IULpI2Dt53SIjBPjgSHi2dwi_siksgHxziBWr-p2uPM,14896
248
+ khoj/interface/compiled/share/chat/index.txt,sha256=WXUcRhq2u7KJmF24VCQTAe7fTebZZ59Nmdxz_uLWrIM,7239
249
249
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
250
250
  khoj/interface/email/magic_link.html,sha256=jXY_2hD3o15Ns5UDzbjLT8FHBnZiS7jo38YkYXIS-4w,947
251
251
  khoj/interface/email/task.html,sha256=yXywzC-5P4nXbhqvgCmwcCpTRbD5eWuDXMpgYSotztM,3311
@@ -296,33 +296,33 @@ khoj/processor/content/pdf/pdf_to_entries.py,sha256=OE90osFchohih3RYvDmZepbtzWoG
296
296
  khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
297
297
  khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=97i7Cm0DTY7jW4iqKOT_oVc2ooa_XhQ8iImsljp1Kek,4994
298
298
  khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
299
- khoj/processor/conversation/prompts.py,sha256=8X0FzJ8iZR0lTdNtCv0WmGPTm4EyP-YZiKJsluZkC9g,32086
299
+ khoj/processor/conversation/prompts.py,sha256=TGMniRnekGkJ2h6k2eCMqrUR5CE8AW8hixMUyKrZY4I,33527
300
300
  khoj/processor/conversation/utils.py,sha256=_uWu1nxcY-Cv2ip-TBdyqepUkMYhijvzjnproumvzXk,10586
301
301
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
302
- khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=7yBlY26PNI4wzwHph4TTQ_tJlLmoNjiXyhzHPJeUVmI,7887
302
+ khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=fOT75wfC4r53M_tGDL6T7kvnRekZbdVM3jvvl3ohH9w,8108
303
303
  khoj/processor/conversation/anthropic/utils.py,sha256=uc9d_gIk4Ux2NRlkw3FP9L9KeLRoUI7nC_qb2Qp6d_4,3253
304
304
  khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
305
- khoj/processor/conversation/offline/chat_model.py,sha256=7OIexLDXfdyF2jk-JFMqojNW-grlc2jtCt1zxCO-VAY,9349
305
+ khoj/processor/conversation/offline/chat_model.py,sha256=twkCgnPGvPYxwvp1EWrS4F6k0zG6kigVfmqmfYrO26M,9741
306
306
  khoj/processor/conversation/offline/utils.py,sha256=n2T3vwAIZnSe9-UN1VORLPrLEUcamXXE9isL2ie-9R8,3033
307
307
  khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
308
308
  khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
309
- khoj/processor/conversation/openai/gpt.py,sha256=bbEyiOeRgko65bLsFHNlkMw1cvbiawQsjmDipCpy0E4,7111
310
- khoj/processor/conversation/openai/utils.py,sha256=_MCIE8NAomNllEvCp2qTifKxgLsTJyXF07KI2cSjimk,4124
309
+ khoj/processor/conversation/openai/gpt.py,sha256=KHkTVo8cpEhTc01HDSwQfQSoI81nmx14A-nYep50_do,7312
310
+ khoj/processor/conversation/openai/utils.py,sha256=ozEsdrfm12yoi7XqXIgzF3QpKz2LSkXJ_Q9tn5hV4TQ,4131
311
311
  khoj/processor/conversation/openai/whisper.py,sha256=RuwDtxSJrVWYdZz4aVnk0XiMQy9w8W9lFcVfE0hMiFY,432
312
312
  khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
313
313
  khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
314
314
  khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
315
- khoj/processor/tools/online_search.py,sha256=cQZ6Aw7Kg0QXCthK4Vdn3gtF2K9GtUZmCkbxWYC_hJw,9620
315
+ khoj/processor/tools/online_search.py,sha256=0FcUwGbD91bhfBgIbEvW-kRflisbG-cZyZlznlSYI5w,9727
316
316
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
317
- khoj/routers/api.py,sha256=UpKDOE9Z8KkedDmn3TWg6fb0zAUDiu_OUpY6JRTmEUs,25602
317
+ khoj/routers/api.py,sha256=I-mQ6FSXw99yIRGMNDB_YQbqN82YE69WImnKjdeRvpM,25619
318
318
  khoj/routers/api_agents.py,sha256=ks8QzjmZiio6j1QGi6xFtDmVxd9lvC6LPB-WcDPnF8o,1525
319
- khoj/routers/api_chat.py,sha256=tAYKTRR6r8gACIlAb46zZ2OfUKdV7j4mlCiZAHMqh9Y,35491
319
+ khoj/routers/api_chat.py,sha256=ii-eeS9vYvX2kc4_5Ss7F5hrH0JQD-UVO9Jg_2adF8Q,35503
320
320
  khoj/routers/api_content.py,sha256=OfY05ggRmg0FuVWzodBfV_5Gc6UbGCfchiIk8eqKA2o,17387
321
321
  khoj/routers/api_model.py,sha256=5m7JWwgd9jILiLivRu7NEyY2E-tUkqoEkGg6j6uM1g0,4646
322
322
  khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
323
323
  khoj/routers/auth.py,sha256=pCOLSRihJWcn097DRPxLjPdlejsjHJFRs9jHIzLujZU,6247
324
324
  khoj/routers/email.py,sha256=jA4jDTrYHUpY7mFHL4himeRlTBLRQmQKHqC91Dw1Zu0,3730
325
- khoj/routers/helpers.py,sha256=6AM2K9HzUCxs84HURbjR5O92T9EHm84WG1vzec7hrxQ,63011
325
+ khoj/routers/helpers.py,sha256=9N6Pgh1BPKBKsD_2Hnvdy_M7Z40e4_ci6lpnqo1cZKw,63307
326
326
  khoj/routers/notion.py,sha256=0iG_DPVjg8n_LBWGHA8M6eHnJJDL-isARSEHTYStz6c,2809
327
327
  khoj/routers/storage.py,sha256=9ZfBsr_omxdFV-Lcj6p30xTQcF_7wwCZ9XFJukzjITE,1429
328
328
  khoj/routers/subscription.py,sha256=qEyV7m7mrY6MGtaij8W3v61tpzX2a7ydm2B-E8h_R-M,4285
@@ -347,8 +347,8 @@ khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
347
347
  khoj/utils/rawconfig.py,sha256=luk7Vb_ODuoTdMd_IG-yVXGoyoU-RktyapBG5D1N_VI,3985
348
348
  khoj/utils/state.py,sha256=x4GTewP1YhOA6c_32N4wOjnV-3AA3xG_qbY1-wC2Uxc,1559
349
349
  khoj/utils/yaml.py,sha256=H0mfw0ZvBFUvFmCQn8pWkfxdmIebsrSykza7D8Wv6wQ,1430
350
- khoj-1.20.5.dev1.dist-info/METADATA,sha256=F0cZMF2OA2RllTwx1Hpi3K-3eklg-8XWc59UOsBnQ0M,6875
351
- khoj-1.20.5.dev1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
352
- khoj-1.20.5.dev1.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
353
- khoj-1.20.5.dev1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
354
- khoj-1.20.5.dev1.dist-info/RECORD,,
350
+ khoj-1.20.5.dev8.dist-info/METADATA,sha256=149XhdaOWHYuPsLOmPvUlyeQX_Z9o0L3LRmV3fSOvow,6875
351
+ khoj-1.20.5.dev8.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
352
+ khoj-1.20.5.dev8.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
353
+ khoj-1.20.5.dev8.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
354
+ khoj-1.20.5.dev8.dist-info/RECORD,,