khoj 1.29.2.dev26__py3-none-any.whl → 1.30.1.dev3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. khoj/database/adapters/__init__.py +2 -0
  2. khoj/interface/compiled/404/index.html +1 -1
  3. khoj/interface/compiled/_next/static/chunks/5538-b87b60ecc0c27ceb.js +1 -0
  4. khoj/interface/compiled/_next/static/chunks/796-68f9e87f9cdfda1d.js +3 -0
  5. khoj/interface/compiled/_next/static/chunks/app/agents/{page-4353b1a532795ad1.js → page-ee4f0da14df15091.js} +1 -1
  6. khoj/interface/compiled/_next/static/chunks/app/automations/{page-c9f13c865e739607.js → page-da59a2b9ec07da16.js} +1 -1
  7. khoj/interface/compiled/_next/static/chunks/app/chat/{page-1a23760147c678ba.js → page-e60a55d029b6216a.js} +1 -1
  8. khoj/interface/compiled/_next/static/chunks/app/{page-e83f8a77f5c3caef.js → page-fcf7411ff80b6bf5.js} +1 -1
  9. khoj/interface/compiled/_next/static/chunks/app/search/{page-8e28deacb61f75aa.js → page-4f44549ba3807021.js} +1 -1
  10. khoj/interface/compiled/_next/static/chunks/app/settings/{page-610d33158b233b34.js → page-5591490850437232.js} +1 -1
  11. khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-a0a8dd453394b651.js → page-4a4c0f199b89bd80.js} +1 -1
  12. khoj/interface/compiled/_next/static/chunks/{webpack-63a7b969d34e6698.js → webpack-d3a4ebfc304496fb.js} +1 -1
  13. khoj/interface/compiled/_next/static/css/2ff098d0815fdbc1.css +1 -0
  14. khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css +1 -0
  15. khoj/interface/compiled/agents/index.html +1 -1
  16. khoj/interface/compiled/agents/index.txt +2 -2
  17. khoj/interface/compiled/automations/index.html +1 -1
  18. khoj/interface/compiled/automations/index.txt +2 -2
  19. khoj/interface/compiled/chat/index.html +1 -1
  20. khoj/interface/compiled/chat/index.txt +2 -2
  21. khoj/interface/compiled/index.html +1 -1
  22. khoj/interface/compiled/index.txt +2 -2
  23. khoj/interface/compiled/search/index.html +1 -1
  24. khoj/interface/compiled/search/index.txt +2 -2
  25. khoj/interface/compiled/settings/index.html +1 -1
  26. khoj/interface/compiled/settings/index.txt +2 -2
  27. khoj/interface/compiled/share/chat/index.html +1 -1
  28. khoj/interface/compiled/share/chat/index.txt +2 -2
  29. khoj/processor/conversation/prompts.py +16 -70
  30. khoj/routers/api_chat.py +23 -15
  31. khoj/routers/helpers.py +38 -80
  32. khoj/utils/helpers.py +5 -6
  33. {khoj-1.29.2.dev26.dist-info → khoj-1.30.1.dev3.dist-info}/METADATA +1 -1
  34. {khoj-1.29.2.dev26.dist-info → khoj-1.30.1.dev3.dist-info}/RECORD +39 -39
  35. khoj/interface/compiled/_next/static/chunks/5538-32bd787d106700dc.js +0 -1
  36. khoj/interface/compiled/_next/static/chunks/5961-3c104d9736b7902b.js +0 -3
  37. khoj/interface/compiled/_next/static/css/23f801d22927d568.css +0 -1
  38. khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -1
  39. /khoj/interface/compiled/_next/static/{8GHdsBD3CrRSB--Guybv_ → wjSO2ckeClcVcMhOwfAVy}/_buildManifest.js +0 -0
  40. /khoj/interface/compiled/_next/static/{8GHdsBD3CrRSB--Guybv_ → wjSO2ckeClcVcMhOwfAVy}/_ssgManifest.js +0 -0
  41. {khoj-1.29.2.dev26.dist-info → khoj-1.30.1.dev3.dist-info}/WHEEL +0 -0
  42. {khoj-1.29.2.dev26.dist-info → khoj-1.30.1.dev3.dist-info}/entry_points.txt +0 -0
  43. {khoj-1.29.2.dev26.dist-info → khoj-1.30.1.dev3.dist-info}/licenses/LICENSE +0 -0
@@ -565,59 +565,6 @@ Here's some additional context about you:
565
565
  """
566
566
  )
567
567
 
568
- pick_relevant_output_mode = PromptTemplate.from_template(
569
- """
570
- You are Khoj, an excellent analyst for selecting the correct way to respond to a user's query.
571
- {personality_context}
572
- You have access to a limited set of modes for your response.
573
- You can only use one of these modes.
574
-
575
- {modes}
576
-
577
- Here are some examples:
578
-
579
- Example:
580
- Chat History:
581
- User: I just visited Jerusalem for the first time. Pull up my notes from the trip.
582
- AI: You mention visiting Masjid Al-Aqsa and the Western Wall. You also mention trying the local cuisine and visiting the Dead Sea.
583
-
584
- Q: Draw a picture of my trip to Jerusalem.
585
- Khoj: {{"output": "image"}}
586
-
587
- Example:
588
- Chat History:
589
- User: I'm having trouble deciding which laptop to get. I want something with at least 16 GB of RAM and a 1 TB SSD.
590
- AI: I can help with that. I see online that there is a new model of the Dell XPS 15 that meets your requirements.
591
-
592
- Q: What are the specs of the new Dell XPS 15?
593
- Khoj: {{"output": "text"}}
594
-
595
- Example:
596
- Chat History:
597
- User: Where did I go on my last vacation?
598
- AI: You went to Jordan and visited Petra, the Dead Sea, and Wadi Rum.
599
-
600
- Q: Remind me who did I go with on that trip?
601
- Khoj: {{"output": "text"}}
602
-
603
- Example:
604
- Chat History:
605
- User: How's the weather outside? Current Location: Bali, Indonesia
606
- AI: It's currently 28°C and partly cloudy in Bali.
607
-
608
- Q: Share a painting using the weather for Bali every morning.
609
- Khoj: {{"output": "automation"}}
610
-
611
- Now it's your turn to pick the mode you would like to use to answer the user's question. Provide your response as a JSON. Do not say anything else.
612
-
613
- Chat History:
614
- {chat_history}
615
-
616
- Q: {query}
617
- Khoj:
618
- """.strip()
619
- )
620
-
621
568
  plan_function_execution = PromptTemplate.from_template(
622
569
  """
623
570
  You are Khoj, a smart, creative and methodical researcher. Use the provided tool AIs to investigate information to answer query.
@@ -679,18 +626,24 @@ previous_iteration = PromptTemplate.from_template(
679
626
  """
680
627
  )
681
628
 
682
- pick_relevant_information_collection_tools = PromptTemplate.from_template(
629
+ pick_relevant_tools = PromptTemplate.from_template(
683
630
  """
684
631
  You are Khoj, an extremely smart and helpful search assistant.
685
632
  {personality_context}
686
633
  - You have access to a variety of data sources to help you answer the user's question
687
634
  - You can use the data sources listed below to collect more relevant information
688
- - You can use any combination of these data sources to answer the user's question
635
+ - You can select certain types of output to respond to the user's question. Select just one output type to answer the user's question
636
+ - You can use any combination of these data sources and output types to answer the user's question
637
+ - You can only select one output type to answer the user's question
689
638
 
690
- Which of the data sources listed below you would use to answer the user's question? You **only** have access to the following data sources:
639
+ Which of the tools listed below you would use to answer the user's question? You **only** have access to the following:
691
640
 
641
+ Inputs:
692
642
  {tools}
693
643
 
644
+ Outputs:
645
+ {outputs}
646
+
694
647
  Here are some examples:
695
648
 
696
649
  Example:
@@ -699,7 +652,7 @@ User: I'm thinking of moving to a new city. I'm trying to decide between New Yor
699
652
  AI: Moving to a new city can be challenging. Both New York and San Francisco are great cities to live in. New York is known for its diverse culture and San Francisco is known for its tech scene.
700
653
 
701
654
  Q: What is the population of each of those cities?
702
- Khoj: {{"source": ["online"]}}
655
+ Khoj: {{"source": ["online"], "output": ["text"]}}
703
656
 
704
657
  Example:
705
658
  Chat History:
@@ -707,14 +660,7 @@ User: I'm thinking of my next vacation idea. Ideally, I want to see something ne
707
660
  AI: Excellent! Taking a vacation is a great way to relax and recharge.
708
661
 
709
662
  Q: Where did Grandma grow up?
710
- Khoj: {{"source": ["notes"]}}
711
-
712
- Example:
713
- Chat History:
714
-
715
-
716
- Q: What can you do for me?
717
- Khoj: {{"source": ["notes", "online"]}}
663
+ Khoj: {{"source": ["notes"], "output": ["text"]}}
718
664
 
719
665
  Example:
720
666
  Chat History:
@@ -722,7 +668,7 @@ User: Good morning
722
668
  AI: Good morning! How can I help you today?
723
669
 
724
670
  Q: How can I share my files with Khoj?
725
- Khoj: {{"source": ["default", "online"]}}
671
+ Khoj: {{"source": ["default", "online"], "output": ["text"]}}
726
672
 
727
673
  Example:
728
674
  Chat History:
@@ -730,17 +676,17 @@ User: What is the first element in the periodic table?
730
676
  AI: The first element in the periodic table is Hydrogen.
731
677
 
732
678
  Q: Summarize this article https://en.wikipedia.org/wiki/Hydrogen
733
- Khoj: {{"source": ["webpage"]}}
679
+ Khoj: {{"source": ["webpage"], "output": ["text"]}}
734
680
 
735
681
  Example:
736
682
  Chat History:
737
683
  User: I want to start a new hobby. I'm thinking of learning to play the guitar.
738
684
  AI: Learning to play the guitar is a great hobby. It can be a lot of fun and a great way to express yourself.
739
685
 
740
- Q: What is the first element of the periodic table?
741
- Khoj: {{"source": ["general"]}}
686
+ Q: Draw a painting of a guitar.
687
+ Khoj: {{"source": ["general"], "output": ["image"]}}
742
688
 
743
- Now it's your turn to pick the data sources you would like to use to answer the user's question. Provide the data sources as a list of strings in a JSON object. Do not say anything else.
689
+ Now it's your turn to pick the sources and output to answer the user's query. Respond with a JSON object, including both `source` and `output`. The values should be a list of strings. Do not say anything else.
744
690
 
745
691
  Chat History:
746
692
  {chat_history}
khoj/routers/api_chat.py CHANGED
@@ -46,8 +46,7 @@ from khoj.routers.helpers import (
46
46
  FeedbackData,
47
47
  acreate_title_from_history,
48
48
  agenerate_chat_response,
49
- aget_relevant_information_sources,
50
- aget_relevant_output_modes,
49
+ aget_relevant_tools_to_execute,
51
50
  construct_automation_created_message,
52
51
  create_automation,
53
52
  gather_raw_query_files,
@@ -753,7 +752,7 @@ async def chat(
753
752
  attached_file_context = gather_raw_query_files(query_files)
754
753
 
755
754
  if conversation_commands == [ConversationCommand.Default] or is_automated_task:
756
- conversation_commands = await aget_relevant_information_sources(
755
+ conversation_commands = await aget_relevant_tools_to_execute(
757
756
  q,
758
757
  meta_log,
759
758
  is_automated_task,
@@ -769,19 +768,9 @@ async def chat(
769
768
  conversation_commands = [ConversationCommand.Research]
770
769
 
771
770
  conversation_commands_str = ", ".join([cmd.value for cmd in conversation_commands])
772
- async for result in send_event(
773
- ChatEvent.STATUS, f"**Chose Data Sources to Search:** {conversation_commands_str}"
774
- ):
771
+ async for result in send_event(ChatEvent.STATUS, f"**Selected Tools:** {conversation_commands_str}"):
775
772
  yield result
776
773
 
777
- mode = await aget_relevant_output_modes(
778
- q, meta_log, is_automated_task, user, uploaded_images, agent, tracer=tracer
779
- )
780
- async for result in send_event(ChatEvent.STATUS, f"**Decided Response Mode:** {mode.value}"):
781
- yield result
782
- if mode not in conversation_commands:
783
- conversation_commands.append(mode)
784
-
785
774
  for cmd in conversation_commands:
786
775
  try:
787
776
  await conversation_command_rate_limiter.update_and_check_if_valid(request, cmd)
@@ -1175,8 +1164,27 @@ async def chat(
1175
1164
  inferred_queries.append(better_diagram_description_prompt)
1176
1165
  diagram_description = excalidraw_diagram_description
1177
1166
  else:
1178
- async for result in send_llm_response(f"Failed to generate diagram. Please try again later."):
1167
+ error_message = "Failed to generate diagram. Please try again later."
1168
+ async for result in send_llm_response(error_message):
1179
1169
  yield result
1170
+
1171
+ await sync_to_async(save_to_conversation_log)(
1172
+ q,
1173
+ error_message,
1174
+ user,
1175
+ meta_log,
1176
+ user_message_time,
1177
+ inferred_queries=[better_diagram_description_prompt],
1178
+ client_application=request.user.client_app,
1179
+ conversation_id=conversation_id,
1180
+ compiled_references=compiled_references,
1181
+ online_results=online_results,
1182
+ code_results=code_results,
1183
+ query_images=uploaded_images,
1184
+ train_of_thought=train_of_thought,
1185
+ raw_query_files=raw_query_files,
1186
+ tracer=tracer,
1187
+ )
1180
1188
  return
1181
1189
 
1182
1190
  content_obj = {
khoj/routers/helpers.py CHANGED
@@ -336,7 +336,7 @@ async def acheck_if_safe_prompt(system_prompt: str, user: KhojUser = None, lax:
336
336
  return is_safe, reason
337
337
 
338
338
 
339
- async def aget_relevant_information_sources(
339
+ async def aget_relevant_tools_to_execute(
340
340
  query: str,
341
341
  conversation_history: dict,
342
342
  is_task: bool,
@@ -360,6 +360,19 @@ async def aget_relevant_information_sources(
360
360
  if len(agent_tools) == 0 or tool.value in agent_tools:
361
361
  tool_options_str += f'- "{tool.value}": "{description}"\n'
362
362
 
363
+ mode_options = dict()
364
+ mode_options_str = ""
365
+
366
+ output_modes = agent.output_modes if agent else []
367
+
368
+ for mode, description in mode_descriptions_for_llm.items():
369
+ # Do not allow tasks to schedule another task
370
+ if is_task and mode == ConversationCommand.Automation:
371
+ continue
372
+ mode_options[mode.value] = description
373
+ if len(output_modes) == 0 or mode.value in output_modes:
374
+ mode_options_str += f'- "{mode.value}": "{description}"\n'
375
+
363
376
  chat_history = construct_chat_history(conversation_history)
364
377
 
365
378
  if query_images:
@@ -369,9 +382,10 @@ async def aget_relevant_information_sources(
369
382
  prompts.personality_context.format(personality=agent.personality) if agent and agent.personality else ""
370
383
  )
371
384
 
372
- relevant_tools_prompt = prompts.pick_relevant_information_collection_tools.format(
385
+ relevant_tools_prompt = prompts.pick_relevant_tools.format(
373
386
  query=query,
374
387
  tools=tool_options_str,
388
+ outputs=mode_options_str,
375
389
  chat_history=chat_history,
376
390
  personality_context=personality_context,
377
391
  )
@@ -388,13 +402,17 @@ async def aget_relevant_information_sources(
388
402
  try:
389
403
  response = clean_json(response)
390
404
  response = json.loads(response)
391
- response = [q.strip() for q in response["source"] if q.strip()]
392
- if not isinstance(response, list) or not response or len(response) == 0:
393
- logger.error(f"Invalid response for determining relevant tools: {response}")
394
- return tool_options
405
+
406
+ input_tools = [q.strip() for q in response.get("source", []) if q.strip()]
407
+ output_modes = [q.strip() for q in response.get("output", ["text"]) if q.strip()] # Default to text output
408
+
409
+ if not isinstance(input_tools, list) or not input_tools or len(input_tools) == 0:
410
+ raise ValueError(
411
+ f"Invalid response for determining relevant tools: {input_tools}. Raw Response: {response}"
412
+ )
395
413
 
396
414
  final_response = [] if not is_task else [ConversationCommand.AutomatedTask]
397
- for llm_suggested_tool in response:
415
+ for llm_suggested_tool in input_tools:
398
416
  # Add a double check to verify it's in the agent list, because the LLM sometimes gets confused by the tool options.
399
417
  if llm_suggested_tool in tool_options.keys() and (
400
418
  len(agent_tools) == 0 or llm_suggested_tool in agent_tools
@@ -402,88 +420,28 @@ async def aget_relevant_information_sources(
402
420
  # Check whether the tool exists as a valid ConversationCommand
403
421
  final_response.append(ConversationCommand(llm_suggested_tool))
404
422
 
423
+ for llm_suggested_output in output_modes:
424
+ # Add a double check to verify it's in the agent list, because the LLM sometimes gets confused by the tool options.
425
+ if llm_suggested_output in mode_options.keys() and (
426
+ len(output_modes) == 0 or llm_suggested_output in output_modes
427
+ ):
428
+ # Check whether the tool exists as a valid ConversationCommand
429
+ final_response.append(ConversationCommand(llm_suggested_output))
430
+
405
431
  if is_none_or_empty(final_response):
406
432
  if len(agent_tools) == 0:
407
- final_response = [ConversationCommand.Default]
433
+ final_response = [ConversationCommand.Default, ConversationCommand.Text]
408
434
  else:
409
- final_response = [ConversationCommand.General]
410
- except Exception:
411
- logger.error(f"Invalid response for determining relevant tools: {response}")
435
+ final_response = [ConversationCommand.General, ConversationCommand.Text]
436
+ except Exception as e:
437
+ logger.error(f"Invalid response for determining relevant tools: {response}. Error: {e}", exc_info=True)
412
438
  if len(agent_tools) == 0:
413
- final_response = [ConversationCommand.Default]
439
+ final_response = [ConversationCommand.Default, ConversationCommand.Text]
414
440
  else:
415
441
  final_response = agent_tools
416
442
  return final_response
417
443
 
418
444
 
419
- async def aget_relevant_output_modes(
420
- query: str,
421
- conversation_history: dict,
422
- is_task: bool = False,
423
- user: KhojUser = None,
424
- query_images: List[str] = None,
425
- agent: Agent = None,
426
- tracer: dict = {},
427
- ):
428
- """
429
- Given a query, determine which of the available tools the agent should use in order to answer appropriately.
430
- """
431
-
432
- mode_options = dict()
433
- mode_options_str = ""
434
-
435
- output_modes = agent.output_modes if agent else []
436
-
437
- for mode, description in mode_descriptions_for_llm.items():
438
- # Do not allow tasks to schedule another task
439
- if is_task and mode == ConversationCommand.Automation:
440
- continue
441
- mode_options[mode.value] = description
442
- if len(output_modes) == 0 or mode.value in output_modes:
443
- mode_options_str += f'- "{mode.value}": "{description}"\n'
444
-
445
- chat_history = construct_chat_history(conversation_history)
446
-
447
- if query_images:
448
- query = f"[placeholder for {len(query_images)} user attached images]\n{query}"
449
-
450
- personality_context = (
451
- prompts.personality_context.format(personality=agent.personality) if agent and agent.personality else ""
452
- )
453
-
454
- relevant_mode_prompt = prompts.pick_relevant_output_mode.format(
455
- query=query,
456
- modes=mode_options_str,
457
- chat_history=chat_history,
458
- personality_context=personality_context,
459
- )
460
-
461
- with timer("Chat actor: Infer output mode for chat response", logger):
462
- response = await send_message_to_model_wrapper(
463
- relevant_mode_prompt, response_type="json_object", user=user, tracer=tracer
464
- )
465
-
466
- try:
467
- response = clean_json(response)
468
- response = json.loads(response)
469
-
470
- if is_none_or_empty(response):
471
- return ConversationCommand.Text
472
-
473
- output_mode = response["output"]
474
-
475
- # Add a double check to verify it's in the agent list, because the LLM sometimes gets confused by the tool options.
476
- if output_mode in mode_options.keys() and (len(output_modes) == 0 or output_mode in output_modes):
477
- # Check whether the tool exists as a valid ConversationCommand
478
- return ConversationCommand(output_mode)
479
-
480
- logger.error(f"Invalid output mode selected: {output_mode}. Defaulting to text.")
481
- return ConversationCommand.Text
482
- except Exception:
483
- logger.error(f"Invalid response for determining output mode: {response}")
484
- return ConversationCommand.Text
485
-
486
-
487
445
  async def infer_webpage_urls(
488
446
  q: str,
489
447
  conversation_history: dict,
khoj/utils/helpers.py CHANGED
@@ -365,7 +365,7 @@ tool_descriptions_for_llm = {
365
365
  ConversationCommand.Notes: "To search the user's personal knowledge base. Especially helpful if the question expects context from the user's notes or documents.",
366
366
  ConversationCommand.Online: "To search for the latest, up-to-date information from the internet. Note: **Questions about Khoj should always use this data source**",
367
367
  ConversationCommand.Webpage: "To use if the user has directly provided the webpage urls or you are certain of the webpage urls to read.",
368
- ConversationCommand.Code: "To run Python code in a Pyodide sandbox with no network access. Helpful when need to parse information, run complex calculations, create documents and charts for user. Matplotlib, bs4, pandas, numpy, etc. are available.",
368
+ ConversationCommand.Code: "To run Python code in a Pyodide sandbox with no network access. Helpful when need to parse information, run complex calculations, create plaintext documents, and create charts with quantitative data. Matplotlib, bs4, pandas, numpy, etc. are available.",
369
369
  ConversationCommand.Summarize: "To retrieve an answer that depends on the entire document or a large text.",
370
370
  }
371
371
 
@@ -373,14 +373,13 @@ function_calling_description_for_llm = {
373
373
  ConversationCommand.Notes: "To search the user's personal knowledge base. Especially helpful if the question expects context from the user's notes or documents.",
374
374
  ConversationCommand.Online: "To search the internet for information. Useful to get a quick, broad overview from the internet. Provide all relevant context to ensure new searches, not in previous iterations, are performed.",
375
375
  ConversationCommand.Webpage: "To extract information from webpages. Useful for more detailed research from the internet. Usually used when you know the webpage links to refer to. Share the webpage links and information to extract in your query.",
376
- ConversationCommand.Code: "To run Python code in a Pyodide sandbox with no network access. Helpful when need to parse information, run complex calculations, create charts for user. Matplotlib, bs4, pandas, numpy, etc. are available.",
376
+ ConversationCommand.Code: "To run Python code in a Pyodide sandbox with no network access. Helpful when need to parse information, run complex calculations, create plaintext documents, and create charts with quantitative data. Matplotlib, bs4, pandas, numpy, etc. are available.",
377
377
  }
378
378
 
379
379
  mode_descriptions_for_llm = {
380
- ConversationCommand.Image: "Use this if you are confident the user is requesting you to create a new picture based on their description. This does not support generating charts or graphs.",
381
- ConversationCommand.Automation: "Use this if you are confident the user is requesting a response at a scheduled date, time and frequency",
382
- ConversationCommand.Text: "Use this if a normal text response would be sufficient for accurately responding to the query.",
383
- ConversationCommand.Diagram: "Use this if the user is requesting a diagram or visual representation that requires primitives like lines, rectangles, and text.",
380
+ ConversationCommand.Image: "Use this if you are confident the user is requesting you to create a new picture based on their description. This DOES NOT support generating charts or graphs. It is for creative images.",
381
+ ConversationCommand.Text: "Use this if a normal text response would be sufficient for accurately responding to the query or you don't feel strongly about the other modes.",
382
+ ConversationCommand.Diagram: "Use this if the user is requesting a diagram or visual representation that requires primitives like lines, rectangles, and text. This does not work for charts, graphs, or quantitative data. It is for mind mapping, flowcharts, etc.",
384
383
  }
385
384
 
386
385
  mode_descriptions_for_agent = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.29.2.dev26
3
+ Version: 1.30.1.dev3
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -11,7 +11,7 @@ khoj/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  khoj/database/admin.py,sha256=9xVVQ91gjLW4_ZpN1Ojp6zHynZBjMpJ_F_mEd1eyDA0,10718
12
12
  khoj/database/apps.py,sha256=pM4tkX5Odw4YW_hLLKK8Nd5kqGddf1en0oMCea44RZw,153
13
13
  khoj/database/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
14
- khoj/database/adapters/__init__.py,sha256=gv2SNrTpJvW1cPzFwSSY7qF7DYYXY1bWWxi-A141nkM,69020
14
+ khoj/database/adapters/__init__.py,sha256=KxGzqtDpbDPJdy-CZFXOM7sLqogzJXYyp_NDHgXttEg,69084
15
15
  khoj/database/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  khoj/database/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  khoj/database/management/commands/change_default_model.py,sha256=HkFQOI-2rFjlu7YiulyRcTrITzSzXmY4WiV2hBmml0w,5209
@@ -111,17 +111,15 @@ khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvt
111
111
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
112
112
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
113
113
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
114
- khoj/interface/compiled/index.html,sha256=YZfqiQij0BSok50L93feI8gv8HnRMA1F4-_r5xnsy1I,12156
115
- khoj/interface/compiled/index.txt,sha256=EIV_r21d5yD7dx6L3K1b5-uWFvRZTnTEr82Gfb6eIbM,5611
114
+ khoj/interface/compiled/index.html,sha256=RokRtIfIoiqMjLh3qWHTENMLVXgiQ5vdloZdP22Cexc,12156
115
+ khoj/interface/compiled/index.txt,sha256=o8pR_BnMjmsYgdMIFb1Fn6pZFltUgy3wk2LXGCx9MrE,5611
116
116
  khoj/interface/compiled/khoj.webmanifest,sha256=lsknYkvEdMbRTOUYKXPM_8krN2gamJmM4u3qj8u9lrU,1682
117
117
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
118
118
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
119
119
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
120
120
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
121
121
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
122
- khoj/interface/compiled/404/index.html,sha256=1GIrezJGh8KE2Ype4oIfdL4u3wuZMCL0lkTdy2s3690,12023
123
- khoj/interface/compiled/_next/static/8GHdsBD3CrRSB--Guybv_/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
124
- khoj/interface/compiled/_next/static/8GHdsBD3CrRSB--Guybv_/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
122
+ khoj/interface/compiled/404/index.html,sha256=Mw4lZ-sgRw5wwHrJmlQS8ZEOvGL8hzO1j4mhU3-tKLo,12023
125
123
  khoj/interface/compiled/_next/static/chunks/1210.132a7e1910006bbb.js,sha256=2dJueIfOg5qlQdanOM9HrgwcfrUXCD57bfd8Iv7iJcU,2104
126
124
  khoj/interface/compiled/_next/static/chunks/1279-f37ee4a388ebf544.js,sha256=U_1WaocOdgJ4HZB8tRx_izzYGD1EZlCohC1uLCffCWc,45582
127
125
  khoj/interface/compiled/_next/static/chunks/1459.690bf20e7d7b7090.js,sha256=z-ruZPxF_Z3ef_WOThd9Ox36AMhxaW3znizVivNnA34,34239
@@ -134,11 +132,11 @@ khoj/interface/compiled/_next/static/chunks/3803-d74118a2d0182c52.js,sha256=Elqf
134
132
  khoj/interface/compiled/_next/static/chunks/4504-1629487c8bc82203.js,sha256=z6NvJ2KOjYPbMNsYQKyX9PV4DeURUoP6LKoNb4kZXg0,11637
135
133
  khoj/interface/compiled/_next/static/chunks/4602-8eeb4b76385ad159.js,sha256=pz2lEr0JOrMdrddv2R2vej4e9uxpOr5KFX966ClLbOU,29928
136
134
  khoj/interface/compiled/_next/static/chunks/5512-94c7c2bbcf58c19d.js,sha256=ySpWRBlOMbttpBPr-j6_y9FmVrWfeRdardPkVnYAXzw,103730
137
- khoj/interface/compiled/_next/static/chunks/5538-32bd787d106700dc.js,sha256=aZZKwp3YRs4ff6gzG5PGSlyeCPvrzYB9Rw5dsdfdZpU,34191
138
- khoj/interface/compiled/_next/static/chunks/5961-3c104d9736b7902b.js,sha256=qss4GGVTNo_Rp3x8bU1I_l-SZCa-XAoVaxbLYOOcDTU,1089568
135
+ khoj/interface/compiled/_next/static/chunks/5538-b87b60ecc0c27ceb.js,sha256=_gYTfk_4_QokG8JC41SvGJmxgCjViwHflNNTX2rlzXI,34236
139
136
  khoj/interface/compiled/_next/static/chunks/6297-d1c842ed3f714ab0.js,sha256=4nzZ2umR-q6wQ-8L4RSivWXKV_SE1dWoN9qA1I9lCRI,25675
140
137
  khoj/interface/compiled/_next/static/chunks/7023-a5bf5744d19b3bd3.js,sha256=TBJA7dTnI8nymtbljKuZzo2hbStXWR-P8Qkl57k2Tw8,123898
141
138
  khoj/interface/compiled/_next/static/chunks/7883-b1305ec254213afe.js,sha256=dDbERTNiKRIIdC7idybjZq03gnxQtudMawrekye0zH8,241134
139
+ khoj/interface/compiled/_next/static/chunks/796-68f9e87f9cdfda1d.js,sha256=sGuaWffm4HXr8jrS3_HpLzmiGSrZ9TJV1l0btptfPLA,1092974
142
140
  khoj/interface/compiled/_next/static/chunks/8423-c0123d454681e03a.js,sha256=ZMV9-K9UbK23ldDrwnYVox4UU9vqxvbcwSgAPlqoeR8,15303
143
141
  khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js,sha256=ran2mMGTO2kiAJebRGMyfyAu4Sdjw-WobS_m6g-qjz8,34223
144
142
  khoj/interface/compiled/_next/static/chunks/9417-32c4db52ca42e681.js,sha256=9r3lV-DxmhmQnYjroVbjAXPyX6rvSmhZKfUguE0dENw,15039
@@ -150,29 +148,29 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
150
148
  khoj/interface/compiled/_next/static/chunks/main-1ea5c2e0fdef4626.js,sha256=8_u87PGI3PahFbDfGWGvpD-a18J7X7ChUqWIeqxVq7g,111061
151
149
  khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
152
150
  khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
153
- khoj/interface/compiled/_next/static/chunks/webpack-63a7b969d34e6698.js,sha256=YXsRBGMWN01ciOv4OadI11jh51dox7cDDgR34p6NGfs,4054
151
+ khoj/interface/compiled/_next/static/chunks/webpack-d3a4ebfc304496fb.js,sha256=4W8e6VbNih5VrlG4t7jslX1H1vt8uOvpe-W04JxNFXs,4054
154
152
  khoj/interface/compiled/_next/static/chunks/app/layout-86561d2fac35a91a.js,sha256=2EWsyKE2kcC5uDvsOtgG5OP0hHCX8sCph4NqhUU2rCg,442
155
- khoj/interface/compiled/_next/static/chunks/app/page-e83f8a77f5c3caef.js,sha256=u72hDk0g6SFJNe-2B0yCF5BaI5PJa9Yr4aG9ZfseQW0,33220
153
+ khoj/interface/compiled/_next/static/chunks/app/page-fcf7411ff80b6bf5.js,sha256=VlOR_tnA5EULQXzWNDUPbUDTbsKCTxJAGPmWz6iXXig,33220
156
154
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
157
155
  khoj/interface/compiled/_next/static/chunks/app/agents/layout-e9838b642913a071.js,sha256=w3vWDf7m2_VG7q98_KGAWbCO06RI7iqFYsb4nDqGUDw,372
158
- khoj/interface/compiled/_next/static/chunks/app/agents/page-4353b1a532795ad1.js,sha256=VYSOSTRUsJQxg-C2ntEbHW5Fwm_a5k1e79bUYlcZBa0,11755
156
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-ee4f0da14df15091.js,sha256=uqFdU7KMW0ZqRQySoGhRNXTHvodXxMC34a1zhr47vVs,11750
159
157
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js,sha256=d2vJ_lVB0pfeFXNUPzHAe1ca5NzdNowHPh___SPqugM,5143
160
- khoj/interface/compiled/_next/static/chunks/app/automations/page-c9f13c865e739607.js,sha256=hkZk61Vrde0LIL4KPqnm_u2pd_LPzvt-f6Z0hkq8FCs,35344
158
+ khoj/interface/compiled/_next/static/chunks/app/automations/page-da59a2b9ec07da16.js,sha256=R7auC6hEUsXt6aysFhuyAEcGGUaZ4QOnLxxc8XdDSbc,35349
161
159
  khoj/interface/compiled/_next/static/chunks/app/chat/layout-b0e7ff4baa3b5265.js,sha256=a-Qv2nHUrCa1gIs4Qo5txnOlhhQessAdcnAhhjaN3ag,374
162
- khoj/interface/compiled/_next/static/chunks/app/chat/page-1a23760147c678ba.js,sha256=Tf7_jIOE97TnfJmZyLXkBZfqWYTYqZMt4kPpbPprMEo,7071
160
+ khoj/interface/compiled/_next/static/chunks/app/chat/page-e60a55d029b6216a.js,sha256=qdjCIEOXvtnxAyZp9gjxODNq-WHzDOk-kI1UtEgmOU8,7070
163
161
  khoj/interface/compiled/_next/static/chunks/app/search/layout-ea6b73fdaf9b24ca.js,sha256=mBgNUjaTBNgIKOpZj722mh1ojg1CNIYRBPiupStSS6s,165
164
- khoj/interface/compiled/_next/static/chunks/app/search/page-8e28deacb61f75aa.js,sha256=A3klMSdb4sxIAuHZ8NdbYgzc_WXhzIPFACF-D4CRino,6958
162
+ khoj/interface/compiled/_next/static/chunks/app/search/page-4f44549ba3807021.js,sha256=3O3gUM_ALtxAqNVAwQ9X_FDedXFYEcNWEqndayZeTBY,6958
165
163
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-254eaaf916449a60.js,sha256=kHAKleDbNFfhNM3e1WLJm3OFw6PDtGcjyj5toO24vps,5347
166
- khoj/interface/compiled/_next/static/chunks/app/settings/page-610d33158b233b34.js,sha256=gvcwqYV9CrC5M3KBpyn0b88m8u34brimEEYC0Z8ExiI,32149
164
+ khoj/interface/compiled/_next/static/chunks/app/settings/page-5591490850437232.js,sha256=p0kRFoAYcSHSxG2y8JOaUBU-Xc__jwCIbYrUs_NEJu8,32149
167
165
  khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-cf7445cf0326bda3.js,sha256=W3axh1K4y-pLSXcXogLl4qLKXr5BZLY1uA7JfSWp5TU,373
168
- khoj/interface/compiled/_next/static/chunks/app/share/chat/page-a0a8dd453394b651.js,sha256=HknoLJgT71zQp4OivbU6CDtl3Yk4PABbu39aHmK8hYE,4376
166
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/page-4a4c0f199b89bd80.js,sha256=lj2nwWtCd_NUCCTc9jmBBBvO5U5m2VVEUGkdnnpSRu8,4375
169
167
  khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
170
168
  khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
171
169
  khoj/interface/compiled/_next/static/css/0e9d53dcd7f11342.css,sha256=52_LSJ59Vwm1p2UpcDXEvq99pTjz2sW4EjF5iKf-dzs,2622
172
170
  khoj/interface/compiled/_next/static/css/1f293605f2871853.css,sha256=G2b3Wx4e0DRBWSdNU20ivCChZI5HBzvPYUVVIdTRjLc,26590
173
- khoj/interface/compiled/_next/static/css/23f801d22927d568.css,sha256=vVeNg0xTNJbdrtpZNuFCvNJPW5An06hr7i2M6yDXjK4,8449
171
+ khoj/interface/compiled/_next/static/css/2ff098d0815fdbc1.css,sha256=F-uRnbKKlMZq5eMcvFZtUOCTgC6n_uNE6fuaHU4CBak,8829
174
172
  khoj/interface/compiled/_next/static/css/3cf13271869a4aeb.css,sha256=sGjJTeMeN6wbQF4OCPgWYgJmSLLSHyzIH2rSVstWx7k,1857
175
- khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css,sha256=BSqRkeb9vBh0phx5GkAlZirTFZintbyggGaUkuOBfaU,914
173
+ khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css,sha256=3CjTMmtMrm_MYt1ywtUh2MHEjSLSl356SQLl4hdBuYw,534
176
174
  khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css,sha256=ojDUPJ9fJpEo9DzTAsEa-k1cg7Bef-nSTfpszMiqknQ,17711
177
175
  khoj/interface/compiled/_next/static/css/80bd6301fc657983.css,sha256=T7_aQHcWpQBQLKadauHNzjYGw713FtRNTlUqmJjsL6I,1634
178
176
  khoj/interface/compiled/_next/static/css/ed437164d77aa600.css,sha256=l7axYkpTLwbVjhTCUNh8BWdkBom06sG-JrpDX5vSPUU,3056024
@@ -248,8 +246,10 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
248
246
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
249
247
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
250
248
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
251
- khoj/interface/compiled/agents/index.html,sha256=cmQnbvmxvnHHkQG5caNV2z94JZn9zxJLoh9sZuOFFxA,12966
252
- khoj/interface/compiled/agents/index.txt,sha256=WvqmqLlwhMAf_2DFiemHQBjVG11miTkwjrj0_pGZQLc,6178
249
+ khoj/interface/compiled/_next/static/wjSO2ckeClcVcMhOwfAVy/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
250
+ khoj/interface/compiled/_next/static/wjSO2ckeClcVcMhOwfAVy/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
251
+ khoj/interface/compiled/agents/index.html,sha256=tNuIDzmYmqaQ35EHZMgahRlFn4zNd9smYsgBdm5dZn8,12658
252
+ khoj/interface/compiled/agents/index.txt,sha256=wkY2wTcUUg3vPw7g04M9_jM2QODp7NhpIHN5fq8AH4E,6045
253
253
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
254
254
  khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
255
255
  khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
@@ -260,16 +260,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
260
260
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
261
261
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
262
262
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
263
- khoj/interface/compiled/automations/index.html,sha256=RvafdSO_4Zpp-_siLFSmF8bcuHXyDI55ZJ5ENxCWf5c,30633
264
- khoj/interface/compiled/automations/index.txt,sha256=1tPRf8Y853eHdr_nXMuLzQc7qVHqvmloDX05q86WGVE,5500
265
- khoj/interface/compiled/chat/index.html,sha256=qR8fCiGjN5v7D2NlG0GAKqp94quuDcH7Qb7DZRE1MK8,13860
266
- khoj/interface/compiled/chat/index.txt,sha256=8SNIBP-cpYA4CstG12Yc4bVMLxh11AQiH9lzHKFvknw,6590
267
- khoj/interface/compiled/search/index.html,sha256=3kyNgJg1ShDj1xj4O9mBg06_kKrsrBb0pIDZ7WO_oEI,30161
268
- khoj/interface/compiled/search/index.txt,sha256=kiLomYPGDB_BKVPg5ZfYSdlaAWPuboDSD3Kl8y9A2_w,5256
269
- khoj/interface/compiled/settings/index.html,sha256=bU3bfjkxsXLWUAwFbmceQcLOgw-tf9J4yNgrAustW8M,12831
270
- khoj/interface/compiled/settings/index.txt,sha256=APYcaOD6Mh6HAWAeaEvW7_7RlzxAq8MGlGAco4OwBWg,6078
271
- khoj/interface/compiled/share/chat/index.html,sha256=_X_nH0uwB-PVlR0hj249KFxY4MwO3fARHgj_qw51Yqg,15157
272
- khoj/interface/compiled/share/chat/index.txt,sha256=zdJIpdAWh9-6dVrlZFiUg297uYWVWuvPLaWNmI90-RE,7387
263
+ khoj/interface/compiled/automations/index.html,sha256=tkyygK9lJZEyPpcopl4AAgIcYG6g4ceQl5Y-0F3bETc,30941
264
+ khoj/interface/compiled/automations/index.txt,sha256=XDEAaYXIaxa-8extvoLAJDVw_mAhDv_wiJSRqh5d6uY,5633
265
+ khoj/interface/compiled/chat/index.html,sha256=0YKqUlBMYT48_RygmpFpK9-hUw73KEtKef-nQPW_vq8,13857
266
+ khoj/interface/compiled/chat/index.txt,sha256=eXMXA45qulYAij8YvtQFKAUAIioK4ljTxj5uiFCrCxg,6588
267
+ khoj/interface/compiled/search/index.html,sha256=SqI56JBJ7v-incSpU9KnNgVx1dSP3TyRPiZmcqMDUYs,30161
268
+ khoj/interface/compiled/search/index.txt,sha256=1K1mIE4svN8VYseqmrynDa_pYGe7LGh_SXVbKQcCkYw,5256
269
+ khoj/interface/compiled/settings/index.html,sha256=Ee1gCgn77h43GT7YNu0_IwOR4JMjhl_h8MOFPxsKqfA,12831
270
+ khoj/interface/compiled/settings/index.txt,sha256=UBEpB2qwRiLw7YePvjK78DHrMjKSfpCenY9Rad3ERwE,6078
271
+ khoj/interface/compiled/share/chat/index.html,sha256=8J5CbMwKuLiQnGwsXKhrSb0I0VknbUkofnLi3z5yLAs,15154
272
+ khoj/interface/compiled/share/chat/index.txt,sha256=tKdd3Ez-dbJ7KV1a_l1VfOwhLXXIgZvn5j4kN1ZKgQo,7385
273
273
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
274
274
  khoj/interface/email/magic_link.html,sha256=EoGKQucfPj3xQrWXhSZAzPFOYCHF_ZX94TWCd1XHl1M,941
275
275
  khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
@@ -320,7 +320,7 @@ khoj/processor/content/pdf/pdf_to_entries.py,sha256=GQUvab61okhV9_DK0g2MCrMq8wKp
320
320
  khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
321
  khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=wFZwK_zIc7gWbRtO9sOHo9KvfhGAzL9psX_nKWYFduo,4975
322
322
  khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
323
- khoj/processor/conversation/prompts.py,sha256=jXVxeFYHBP6LBSAmdykYH6in297VTgVdEJ5IDsYlQnI,50319
323
+ khoj/processor/conversation/prompts.py,sha256=MwJLoX2xlLYw4MtyLMq9Lo7p4vOHih3bcXDmIiDPCHM,48922
324
324
  khoj/processor/conversation/utils.py,sha256=2gbglhzKMEuldL0P9Y6miCF8BNooiEgFFNdgc8lvneQ,27870
325
325
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
326
326
  khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=8w7oSTBIxcZa6y03Zo2nuQFa2WMiazwK_qfO2q_O-6c,8618
@@ -345,14 +345,14 @@ khoj/processor/tools/run_code.py,sha256=i9ce53dw0y5ZNhPorRNYJieIKw6eyrZQX0ABDrWi
345
345
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
346
  khoj/routers/api.py,sha256=_AI1pnQMQM75L6WVZSAVfvrk04pLEdLbHA0fkyxnUbo,28489
347
347
  khoj/routers/api_agents.py,sha256=vHPruCjlQxGBdm0lcmymEb9-aAELqbOplqh21WwD0DQ,9699
348
- khoj/routers/api_chat.py,sha256=83jqlGex6K3bry9_Pq4Ti8pEGHhENsjtlW4EgWbL-88,48704
348
+ khoj/routers/api_chat.py,sha256=QQA2hg_TL_kShFHWPdCXmauftLNkvknwWyDJMtXLDkE,49193
349
349
  khoj/routers/api_content.py,sha256=WNlB6lVwRW8hHDthO2HypbpPvqrqt9rTU5oMRNknpMU,21070
350
350
  khoj/routers/api_model.py,sha256=KDsxNwHspC94eTcv6l3ehr773EOvgc670UnZLE1WZ4o,3642
351
351
  khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
352
352
  khoj/routers/api_subscription.py,sha256=J6xZNZDdOA71vCfethlPfAyfvRBq4HGCBpbsOZ9CWj0,5333
353
353
  khoj/routers/auth.py,sha256=HO54PR-BkWA_iJIktEobUrObcXVYG-00jpnIcEVdR5s,6564
354
354
  khoj/routers/email.py,sha256=SGYNPQvfcvYeHf70F0YqpY0FLMRElF2ZekROXdwGI18,3821
355
- khoj/routers/helpers.py,sha256=v-dnh2AwuXQNCWGHYLacGnq-8bNSluU2Ym8z7JG4ek0,82672
355
+ khoj/routers/helpers.py,sha256=6WWUxNyUJQFkovdSVh-0vFLB-qGpG5HwOBeI58OU-NE,81487
356
356
  khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
357
357
  khoj/routers/research.py,sha256=SczFMS9a8_Wxhh3n_Zt9CJ-zZugBDAd_WmiZGFa6RR8,16117
358
358
  khoj/routers/storage.py,sha256=tJrwhFRVWv0MHv7V7huMc1Diwm-putZSwnZXJ3tqT_c,2338
@@ -370,15 +370,15 @@ khoj/utils/cli.py,sha256=EA7IvWAInUIll8YFTOpQtqLtCQXwphfHi5rJ2TKAdSQ,3757
370
370
  khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
371
371
  khoj/utils/constants.py,sha256=DNts_NN4ZL9nRCA9KH3ZD_6PBK9VVggtun79pQxzNnU,1219
372
372
  khoj/utils/fs_syncer.py,sha256=5nqwAZqRk3Nwhkwd8y4IomTPZQmW32GwAqyMzal5KyY,9996
373
- khoj/utils/helpers.py,sha256=JMCxQKEmz9ktZrSLQQh3cpm97dVsHT5J0rKY3bTrNco,20126
373
+ khoj/utils/helpers.py,sha256=tdwRlkI5IqOr07cxw4zKindR3hSn6cGthPYHSXs2BcU,20239
374
374
  khoj/utils/initialization.py,sha256=nJtqPUv52SPA6sPHn0_vs1uSBdDihX25Dvvagu81Xbs,13490
375
375
  khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
376
376
  khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
377
377
  khoj/utils/rawconfig.py,sha256=bQ_MGbBzYt6ZUIsHUwZjaHKDLh6GQ7h-sENkv3fyVbQ,5028
378
378
  khoj/utils/state.py,sha256=KtUEIKAZdGGN_Qr58RS1pgcywgSafun8YIXx-YEclAY,1645
379
379
  khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
380
- khoj-1.29.2.dev26.dist-info/METADATA,sha256=JwsOcDhNsddYesiVpxjmDt0UTF4qF3Xvwh62C_mNs-M,7120
381
- khoj-1.29.2.dev26.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
382
- khoj-1.29.2.dev26.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
383
- khoj-1.29.2.dev26.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
384
- khoj-1.29.2.dev26.dist-info/RECORD,,
380
+ khoj-1.30.1.dev3.dist-info/METADATA,sha256=LPiIpAfOMAASEAzRFOHt7VCdmqvn_fXIVmBKZ83tctY,7119
381
+ khoj-1.30.1.dev3.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
382
+ khoj-1.30.1.dev3.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
383
+ khoj-1.30.1.dev3.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
384
+ khoj-1.30.1.dev3.dist-info/RECORD,,