khoj 1.30.2.dev23__py3-none-any.whl → 1.30.2.dev28__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 (48) hide show
  1. khoj/interface/compiled/404/index.html +1 -1
  2. khoj/interface/compiled/_next/static/chunks/app/agents/{page-b086c9b0aa5a3833.js → page-5f6e0dacc34e33ad.js} +1 -1
  3. khoj/interface/compiled/_next/static/chunks/app/automations/{page-697a2d415e11a872.js → page-60bc7454bc3ea881.js} +1 -1
  4. khoj/interface/compiled/_next/static/chunks/app/chat/{page-461e26fcb7578d39.js → page-ac366c9111374312.js} +1 -1
  5. khoj/interface/compiled/_next/static/chunks/app/{page-4a3c49c5e996cc40.js → page-358154a4436ef316.js} +1 -1
  6. khoj/interface/compiled/_next/static/chunks/app/search/{page-9013658bebfc3d17.js → page-64ea1717528979af.js} +1 -1
  7. khoj/interface/compiled/_next/static/chunks/app/settings/{page-41eb536497bb544a.js → page-17a538580c65e7fe.js} +1 -1
  8. khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-6a68ac7e227b34e7.js → page-47641b3691fb0856.js} +1 -1
  9. khoj/interface/compiled/_next/static/chunks/{webpack-9b0a570f15d6209d.js → webpack-53ab241a813a122a.js} +1 -1
  10. khoj/interface/compiled/_next/static/css/2ff098d0815fdbc1.css +1 -0
  11. khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css +1 -0
  12. khoj/interface/compiled/agents/index.html +1 -1
  13. khoj/interface/compiled/agents/index.txt +2 -2
  14. khoj/interface/compiled/automations/index.html +1 -1
  15. khoj/interface/compiled/automations/index.txt +2 -2
  16. khoj/interface/compiled/chat/index.html +1 -1
  17. khoj/interface/compiled/chat/index.txt +2 -2
  18. khoj/interface/compiled/index.html +1 -1
  19. khoj/interface/compiled/index.txt +2 -2
  20. khoj/interface/compiled/search/index.html +1 -1
  21. khoj/interface/compiled/search/index.txt +2 -2
  22. khoj/interface/compiled/settings/index.html +1 -1
  23. khoj/interface/compiled/settings/index.txt +2 -2
  24. khoj/interface/compiled/share/chat/index.html +1 -1
  25. khoj/interface/compiled/share/chat/index.txt +2 -2
  26. khoj/main.py +4 -0
  27. khoj/processor/conversation/anthropic/anthropic_chat.py +8 -2
  28. khoj/processor/conversation/anthropic/utils.py +8 -3
  29. khoj/processor/conversation/google/gemini_chat.py +8 -2
  30. khoj/processor/conversation/google/utils.py +8 -3
  31. khoj/processor/conversation/offline/chat_model.py +12 -4
  32. khoj/processor/conversation/openai/gpt.py +9 -2
  33. khoj/processor/conversation/openai/utils.py +7 -3
  34. khoj/processor/conversation/utils.py +7 -4
  35. khoj/processor/tools/run_code.py +1 -25
  36. khoj/routers/research.py +2 -1
  37. khoj/utils/cli.py +2 -0
  38. khoj/utils/helpers.py +31 -1
  39. khoj/utils/state.py +1 -0
  40. {khoj-1.30.2.dev23.dist-info → khoj-1.30.2.dev28.dist-info}/METADATA +1 -1
  41. {khoj-1.30.2.dev23.dist-info → khoj-1.30.2.dev28.dist-info}/RECORD +46 -46
  42. khoj/interface/compiled/_next/static/css/23f801d22927d568.css +0 -1
  43. khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -1
  44. /khoj/interface/compiled/_next/static/{07uMbO07BRIyOEFvL9ncb → NgH-G9_Vv1P_eRtKrSh9k}/_buildManifest.js +0 -0
  45. /khoj/interface/compiled/_next/static/{07uMbO07BRIyOEFvL9ncb → NgH-G9_Vv1P_eRtKrSh9k}/_ssgManifest.js +0 -0
  46. {khoj-1.30.2.dev23.dist-info → khoj-1.30.2.dev28.dist-info}/WHEEL +0 -0
  47. {khoj-1.30.2.dev23.dist-info → khoj-1.30.2.dev28.dist-info}/entry_points.txt +0 -0
  48. {khoj-1.30.2.dev23.dist-info → khoj-1.30.2.dev28.dist-info}/licenses/LICENSE +0 -0
@@ -18,7 +18,12 @@ from khoj.processor.conversation.utils import (
18
18
  get_image_from_url,
19
19
  )
20
20
  from khoj.utils import state
21
- from khoj.utils.helpers import get_chat_usage_metrics, in_debug_mode, is_none_or_empty
21
+ from khoj.utils.helpers import (
22
+ get_chat_usage_metrics,
23
+ in_debug_mode,
24
+ is_none_or_empty,
25
+ is_promptrace_enabled,
26
+ )
22
27
 
23
28
  logger = logging.getLogger(__name__)
24
29
 
@@ -84,7 +89,7 @@ def anthropic_completion_with_backoff(
84
89
  # Save conversation trace
85
90
  tracer["chat_model"] = model_name
86
91
  tracer["temperature"] = temperature
87
- if in_debug_mode() or state.verbose > 1:
92
+ if is_promptrace_enabled():
88
93
  commit_conversation_trace(messages, aggregated_response, tracer)
89
94
 
90
95
  return aggregated_response
@@ -156,7 +161,7 @@ def anthropic_llm_thread(
156
161
  # Save conversation trace
157
162
  tracer["chat_model"] = model_name
158
163
  tracer["temperature"] = temperature
159
- if in_debug_mode() or state.verbose > 1:
164
+ if is_promptrace_enabled():
160
165
  commit_conversation_trace(messages, aggregated_response, tracer)
161
166
  except Exception as e:
162
167
  logger.error(f"Error in anthropic_llm_thread: {e}", exc_info=True)
@@ -19,7 +19,11 @@ from khoj.processor.conversation.utils import (
19
19
  generate_chatml_messages_with_context,
20
20
  messages_to_print,
21
21
  )
22
- from khoj.utils.helpers import ConversationCommand, is_none_or_empty
22
+ from khoj.utils.helpers import (
23
+ ConversationCommand,
24
+ is_none_or_empty,
25
+ truncate_code_context,
26
+ )
23
27
  from khoj.utils.rawconfig import LocationData
24
28
  from khoj.utils.yaml import yaml_dump
25
29
 
@@ -208,7 +212,9 @@ def converse_gemini(
208
212
  if ConversationCommand.Online in conversation_commands or ConversationCommand.Webpage in conversation_commands:
209
213
  context_message += f"{prompts.online_search_conversation.format(online_results=yaml_dump(online_results))}\n\n"
210
214
  if ConversationCommand.Code in conversation_commands and not is_none_or_empty(code_results):
211
- context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
215
+ context_message += (
216
+ f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
217
+ )
212
218
  context_message = context_message.strip()
213
219
 
214
220
  # Setup Prompt with Primer or Conversation History
@@ -25,7 +25,12 @@ from khoj.processor.conversation.utils import (
25
25
  get_image_from_url,
26
26
  )
27
27
  from khoj.utils import state
28
- from khoj.utils.helpers import get_chat_usage_metrics, in_debug_mode, is_none_or_empty
28
+ from khoj.utils.helpers import (
29
+ get_chat_usage_metrics,
30
+ in_debug_mode,
31
+ is_none_or_empty,
32
+ is_promptrace_enabled,
33
+ )
29
34
 
30
35
  logger = logging.getLogger(__name__)
31
36
 
@@ -84,7 +89,7 @@ def gemini_completion_with_backoff(
84
89
  # Save conversation trace
85
90
  tracer["chat_model"] = model_name
86
91
  tracer["temperature"] = temperature
87
- if in_debug_mode() or state.verbose > 1:
92
+ if is_promptrace_enabled():
88
93
  commit_conversation_trace(messages, response_text, tracer)
89
94
 
90
95
  return response_text
@@ -160,7 +165,7 @@ def gemini_llm_thread(
160
165
  # Save conversation trace
161
166
  tracer["chat_model"] = model_name
162
167
  tracer["temperature"] = temperature
163
- if in_debug_mode() or state.verbose > 1:
168
+ if is_promptrace_enabled():
164
169
  commit_conversation_trace(messages, aggregated_response, tracer)
165
170
  except StopCandidateException as e:
166
171
  logger.warning(
@@ -19,7 +19,13 @@ from khoj.processor.conversation.utils import (
19
19
  )
20
20
  from khoj.utils import state
21
21
  from khoj.utils.constants import empty_escape_sequences
22
- from khoj.utils.helpers import ConversationCommand, in_debug_mode, is_none_or_empty
22
+ from khoj.utils.helpers import (
23
+ ConversationCommand,
24
+ in_debug_mode,
25
+ is_none_or_empty,
26
+ is_promptrace_enabled,
27
+ truncate_code_context,
28
+ )
23
29
  from khoj.utils.rawconfig import LocationData
24
30
  from khoj.utils.yaml import yaml_dump
25
31
 
@@ -206,7 +212,9 @@ def converse_offline(
206
212
 
207
213
  context_message += f"{prompts.online_search_conversation_offline.format(online_results=yaml_dump(simplified_online_results))}\n\n"
208
214
  if ConversationCommand.Code in conversation_commands and not is_none_or_empty(code_results):
209
- context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
215
+ context_message += (
216
+ f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
217
+ )
210
218
  context_message = context_message.strip()
211
219
 
212
220
  # Setup Prompt with Primer or Conversation History
@@ -246,7 +254,7 @@ def llm_thread(g, messages: List[ChatMessage], model: Any, max_prompt_size: int
246
254
  g.send(response_delta)
247
255
 
248
256
  # Save conversation trace
249
- if in_debug_mode() or state.verbose > 1:
257
+ if is_promptrace_enabled():
250
258
  commit_conversation_trace(messages, aggregated_response, tracer)
251
259
 
252
260
  finally:
@@ -287,7 +295,7 @@ def send_message_to_model_offline(
287
295
  # Streamed responses need to be saved by the calling function
288
296
  tracer["chat_model"] = model
289
297
  tracer["temperature"] = temperature
290
- if in_debug_mode() or state.verbose > 1:
298
+ if is_promptrace_enabled():
291
299
  commit_conversation_trace(messages, response_text, tracer)
292
300
 
293
301
  return response_text
@@ -17,7 +17,11 @@ from khoj.processor.conversation.utils import (
17
17
  generate_chatml_messages_with_context,
18
18
  messages_to_print,
19
19
  )
20
- from khoj.utils.helpers import ConversationCommand, is_none_or_empty
20
+ from khoj.utils.helpers import (
21
+ ConversationCommand,
22
+ is_none_or_empty,
23
+ truncate_code_context,
24
+ )
21
25
  from khoj.utils.rawconfig import LocationData
22
26
  from khoj.utils.yaml import yaml_dump
23
27
 
@@ -196,7 +200,10 @@ def converse(
196
200
  if not is_none_or_empty(online_results):
197
201
  context_message += f"{prompts.online_search_conversation.format(online_results=yaml_dump(online_results))}\n\n"
198
202
  if not is_none_or_empty(code_results):
199
- context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
203
+ context_message += (
204
+ f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
205
+ )
206
+
200
207
  context_message = context_message.strip()
201
208
 
202
209
  # Setup Prompt with Primer or Conversation History
@@ -20,7 +20,11 @@ from khoj.processor.conversation.utils import (
20
20
  commit_conversation_trace,
21
21
  )
22
22
  from khoj.utils import state
23
- from khoj.utils.helpers import get_chat_usage_metrics, in_debug_mode
23
+ from khoj.utils.helpers import (
24
+ get_chat_usage_metrics,
25
+ in_debug_mode,
26
+ is_promptrace_enabled,
27
+ )
24
28
 
25
29
  logger = logging.getLogger(__name__)
26
30
 
@@ -97,7 +101,7 @@ def completion_with_backoff(
97
101
  # Save conversation trace
98
102
  tracer["chat_model"] = model
99
103
  tracer["temperature"] = temperature
100
- if in_debug_mode() or state.verbose > 1:
104
+ if is_promptrace_enabled():
101
105
  commit_conversation_trace(messages, aggregated_response, tracer)
102
106
 
103
107
  return aggregated_response
@@ -208,7 +212,7 @@ def llm_thread(
208
212
  # Save conversation trace
209
213
  tracer["chat_model"] = model_name
210
214
  tracer["temperature"] = temperature
211
- if in_debug_mode() or state.verbose > 1:
215
+ if is_promptrace_enabled():
212
216
  commit_conversation_trace(messages, aggregated_response, tracer)
213
217
  except Exception as e:
214
218
  logger.error(f"Error in llm_thread: {e}", exc_info=True)
@@ -34,6 +34,7 @@ from khoj.utils.helpers import (
34
34
  ConversationCommand,
35
35
  in_debug_mode,
36
36
  is_none_or_empty,
37
+ is_promptrace_enabled,
37
38
  merge_dicts,
38
39
  )
39
40
  from khoj.utils.rawconfig import FileAttachment
@@ -292,7 +293,7 @@ def save_to_conversation_log(
292
293
  user_message=q,
293
294
  )
294
295
 
295
- if os.getenv("PROMPTRACE_DIR"):
296
+ if is_promptrace_enabled():
296
297
  merge_message_into_conversation_trace(q, chat_response, tracer)
297
298
 
298
299
  logger.info(
@@ -591,7 +592,7 @@ def commit_conversation_trace(
591
592
  return None
592
593
 
593
594
  # Infer repository path from environment variable or provided path
594
- repo_path = repo_path or os.getenv("PROMPTRACE_DIR")
595
+ repo_path = repo_path if not is_none_or_empty(repo_path) else os.getenv("PROMPTRACE_DIR")
595
596
  if not repo_path:
596
597
  return None
597
598
 
@@ -686,7 +687,7 @@ Metadata
686
687
  return None
687
688
 
688
689
 
689
- def merge_message_into_conversation_trace(query: str, response: str, tracer: dict, repo_path="/tmp/promptrace") -> bool:
690
+ def merge_message_into_conversation_trace(query: str, response: str, tracer: dict, repo_path=None) -> bool:
690
691
  """
691
692
  Merge the message branch into its parent conversation branch.
692
693
 
@@ -709,7 +710,9 @@ def merge_message_into_conversation_trace(query: str, response: str, tracer: dic
709
710
  conv_branch = f"c_{tracer['cid']}"
710
711
 
711
712
  # Infer repository path from environment variable or provided path
712
- repo_path = os.getenv("PROMPTRACE_DIR", repo_path)
713
+ repo_path = repo_path if not is_none_or_empty(repo_path) else os.getenv("PROMPTRACE_DIR")
714
+ if not repo_path:
715
+ return None
713
716
  repo = Repo(repo_path)
714
717
 
715
718
  # Checkout conversation branch
@@ -1,5 +1,4 @@
1
1
  import base64
2
- import copy
3
2
  import datetime
4
3
  import json
5
4
  import logging
@@ -20,7 +19,7 @@ from khoj.processor.conversation.utils import (
20
19
  construct_chat_history,
21
20
  )
22
21
  from khoj.routers.helpers import send_message_to_model_wrapper
23
- from khoj.utils.helpers import is_none_or_empty, timer
22
+ from khoj.utils.helpers import is_none_or_empty, timer, truncate_code_context
24
23
  from khoj.utils.rawconfig import LocationData
25
24
 
26
25
  logger = logging.getLogger(__name__)
@@ -180,26 +179,3 @@ async def execute_sandboxed_python(code: str, input_data: list[dict], sandbox_ur
180
179
  "std_err": f"Failed to execute code with {response.status}",
181
180
  "output_files": [],
182
181
  }
183
-
184
-
185
- def truncate_code_context(original_code_results: dict[str, Any], max_chars=10000) -> dict[str, Any]:
186
- """
187
- Truncate large output files and drop image file data from code results.
188
- """
189
- # Create a deep copy of the code results to avoid modifying the original data
190
- code_results = copy.deepcopy(original_code_results)
191
- for code_result in code_results.values():
192
- for idx, output_file in enumerate(code_result["results"]["output_files"]):
193
- # Drop image files from code results
194
- if Path(output_file["filename"]).suffix in {".png", ".jpg", ".jpeg", ".webp"}:
195
- code_result["results"]["output_files"][idx] = {
196
- "filename": output_file["filename"],
197
- "b64_data": "[placeholder for generated image data for brevity]",
198
- }
199
- # Truncate large output files
200
- elif len(output_file["b64_data"]) > max_chars:
201
- code_result["results"]["output_files"][idx] = {
202
- "filename": output_file["filename"],
203
- "b64_data": output_file["b64_data"][:max_chars] + "...",
204
- }
205
- return code_results
khoj/routers/research.py CHANGED
@@ -16,7 +16,7 @@ from khoj.processor.conversation.utils import (
16
16
  construct_tool_chat_history,
17
17
  )
18
18
  from khoj.processor.tools.online_search import read_webpages, search_online
19
- from khoj.processor.tools.run_code import run_code, truncate_code_context
19
+ from khoj.processor.tools.run_code import run_code
20
20
  from khoj.routers.api import extract_references_and_questions
21
21
  from khoj.routers.helpers import (
22
22
  ChatEvent,
@@ -28,6 +28,7 @@ from khoj.utils.helpers import (
28
28
  function_calling_description_for_llm,
29
29
  is_none_or_empty,
30
30
  timer,
31
+ truncate_code_context,
31
32
  )
32
33
  from khoj.utils.rawconfig import LocationData
33
34
 
khoj/utils/cli.py CHANGED
@@ -40,6 +40,8 @@ def cli(args=None):
40
40
  type=pathlib.Path,
41
41
  help="Path to UNIX socket for server. Use to run server behind reverse proxy. Default: /tmp/uvicorn.sock",
42
42
  )
43
+ parser.add_argument("--sslcert", type=str, help="Path to SSL certificate file")
44
+ parser.add_argument("--sslkey", type=str, help="Path to SSL key file")
43
45
  parser.add_argument("--version", "-V", action="store_true", help="Print the installed Khoj version and exit")
44
46
  parser.add_argument(
45
47
  "--disable-chat-on-gpu", action="store_true", default=False, help="Disable using GPU for the offline chat model"
khoj/utils/helpers.py CHANGED
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations # to avoid quoting type hints
2
2
 
3
+ import copy
3
4
  import datetime
4
5
  import io
5
6
  import ipaddress
@@ -18,7 +19,7 @@ from itertools import islice
18
19
  from os import path
19
20
  from pathlib import Path
20
21
  from time import perf_counter
21
- from typing import TYPE_CHECKING, Optional, Union
22
+ from typing import TYPE_CHECKING, Any, Optional, Union
22
23
  from urllib.parse import urlparse
23
24
 
24
25
  import psutil
@@ -451,6 +452,12 @@ def in_debug_mode():
451
452
  return is_env_var_true("KHOJ_DEBUG")
452
453
 
453
454
 
455
+ def is_promptrace_enabled():
456
+ """Check if Khoj is running with prompt tracing enabled.
457
+ Set PROMPTRACE_DIR environment variable to prompt tracing path to enable it."""
458
+ return not is_none_or_empty(os.getenv("PROMPTRACE_DIR"))
459
+
460
+
454
461
  def is_valid_url(url: str) -> bool:
455
462
  """Check if a string is a valid URL"""
456
463
  try:
@@ -521,6 +528,29 @@ def convert_image_to_webp(image_bytes):
521
528
  return webp_image_bytes
522
529
 
523
530
 
531
+ def truncate_code_context(original_code_results: dict[str, Any], max_chars=10000) -> dict[str, Any]:
532
+ """
533
+ Truncate large output files and drop image file data from code results.
534
+ """
535
+ # Create a deep copy of the code results to avoid modifying the original data
536
+ code_results = copy.deepcopy(original_code_results)
537
+ for code_result in code_results.values():
538
+ for idx, output_file in enumerate(code_result["results"]["output_files"]):
539
+ # Drop image files from code results
540
+ if Path(output_file["filename"]).suffix in {".png", ".jpg", ".jpeg", ".webp"}:
541
+ code_result["results"]["output_files"][idx] = {
542
+ "filename": output_file["filename"],
543
+ "b64_data": "[placeholder for generated image data for brevity]",
544
+ }
545
+ # Truncate large output files
546
+ elif len(output_file["b64_data"]) > max_chars:
547
+ code_result["results"]["output_files"][idx] = {
548
+ "filename": output_file["filename"],
549
+ "b64_data": output_file["b64_data"][:max_chars] + "...",
550
+ }
551
+ return code_results
552
+
553
+
524
554
  @lru_cache
525
555
  def tz_to_cc_map() -> dict[str, str]:
526
556
  """Create a mapping of timezone to country code"""
khoj/utils/state.py CHANGED
@@ -27,6 +27,7 @@ config_file: Path = None
27
27
  verbose: int = 0
28
28
  host: str = None
29
29
  port: int = None
30
+ ssl_config: Dict[str, str] = None
30
31
  cli_args: List[str] = None
31
32
  query_cache: Dict[str, LRU] = defaultdict(LRU)
32
33
  chat_lock = threading.Lock()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.30.2.dev23
3
+ Version: 1.30.2.dev28
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -1,6 +1,6 @@
1
1
  khoj/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  khoj/configure.py,sha256=gJmEdBIXNje3tlCYgWG_t6KLv_fw2BxNSB7Aebao-Ck,17962
3
- khoj/main.py,sha256=WaV3muJXT-2MOBOm80kwvx76beUv2njJKRlbxs7jYvA,8300
3
+ khoj/main.py,sha256=YrLz-X7ipbZpt2goVG5h7vFEl96nEs0iQEJiN9bhF4Q,8500
4
4
  khoj/manage.py,sha256=njo6uLxGaMamTPesHjFEOIBJbpIUrz39e1V59zKj544,664
5
5
  khoj/app/README.md,sha256=PSQjKCdpU2hgszLVF8yEhV7TWhbEEb-1aYLTRuuAsKI,2832
6
6
  khoj/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -111,17 +111,17 @@ 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=9gfNesrTeNDyw-wcgEgiRhZcERcPFY73kecjU73X-4E,12153
115
- khoj/interface/compiled/index.txt,sha256=zPny9Hc2NvdgX2cx-kYK41We86OZzoBpCPXYwP5aRT8,5609
114
+ khoj/interface/compiled/index.html,sha256=46WLlkIzbNHFvoTPzMmEzsxBvKq_-r1XwCMs7ZQ0Rj4,12153
115
+ khoj/interface/compiled/index.txt,sha256=EFdYE1MIbTQRjO_7J07cpXXnUqv64H48xUmbV8c1_yU,5609
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=Ipwdiki45NAx2oa8JBv-Gp-l7izrwsRp26RVy2kjsGs,12023
123
- khoj/interface/compiled/_next/static/07uMbO07BRIyOEFvL9ncb/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
124
- khoj/interface/compiled/_next/static/07uMbO07BRIyOEFvL9ncb/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
122
+ khoj/interface/compiled/404/index.html,sha256=fF7CRCftXRETjH5x3o8IsXsKeK2MUYn0KKef3I9mIxk,12023
123
+ khoj/interface/compiled/_next/static/NgH-G9_Vv1P_eRtKrSh9k/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
124
+ khoj/interface/compiled/_next/static/NgH-G9_Vv1P_eRtKrSh9k/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
125
125
  khoj/interface/compiled/_next/static/chunks/1210.ef7a0f9a7e43da1d.js,sha256=yOh1qtmNHPpDd6vR7CJOXSbq8M_slPujdTR_OXxaEYU,2121
126
126
  khoj/interface/compiled/_next/static/chunks/1279-4cb23143aa2c0228.js,sha256=zHMz-ixoNkLNUjN2-C48RGEyMs2mI9wsNRCczXnzIvQ,45616
127
127
  khoj/interface/compiled/_next/static/chunks/1459.690bf20e7d7b7090.js,sha256=z-ruZPxF_Z3ef_WOThd9Ox36AMhxaW3znizVivNnA34,34239
@@ -150,30 +150,30 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
150
150
  khoj/interface/compiled/_next/static/chunks/main-1ea5c2e0fdef4626.js,sha256=8_u87PGI3PahFbDfGWGvpD-a18J7X7ChUqWIeqxVq7g,111061
151
151
  khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
152
152
  khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
153
- khoj/interface/compiled/_next/static/chunks/webpack-9b0a570f15d6209d.js,sha256=0q5Kl3gmbKelQEDpXGs_wib8RQMF-UAuHKQCY2Oxkdo,4039
153
+ khoj/interface/compiled/_next/static/chunks/webpack-53ab241a813a122a.js,sha256=qxIsKjH0cLGtGUq6Ha2OUINo6CZlV71FRX9Jx1nHQvE,4039
154
154
  khoj/interface/compiled/_next/static/chunks/app/layout-86561d2fac35a91a.js,sha256=2EWsyKE2kcC5uDvsOtgG5OP0hHCX8sCph4NqhUU2rCg,442
155
- khoj/interface/compiled/_next/static/chunks/app/page-4a3c49c5e996cc40.js,sha256=6yWpNUFJZtRQ1D8KEtiFHUX6nSnyw_5j5RCLEJykpd4,33219
155
+ khoj/interface/compiled/_next/static/chunks/app/page-358154a4436ef316.js,sha256=Ga97xvtlKVsfcv4-sRDynIRzYn2de8xACgQTvdlRhgM,33219
156
156
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-cfba071f5a657256.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
157
157
  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-b086c9b0aa5a3833.js,sha256=HgQImDHRNqLWrd1N5uzBcZVu5owQKwvpO-aNoaARpH4,11754
158
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-5f6e0dacc34e33ad.js,sha256=uCUHiD3mUgkGFTW-18qaz8TVRMZkv2elE39HVjOZN7g,11749
159
159
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f1b79a2c67af0b4.js,sha256=MvPp1IfxmpfRaT4XDDpj-l6F4CV-loeGqi315QYXKZw,5143
160
- khoj/interface/compiled/_next/static/chunks/app/automations/page-697a2d415e11a872.js,sha256=dXCTbZkLZaI12_YIWMgmvjr8kIBvI9GFKe95XC9C4-I,35343
160
+ khoj/interface/compiled/_next/static/chunks/app/automations/page-60bc7454bc3ea881.js,sha256=sCUP_kTOLS7gP8Sodmk5qNbe7LbmQ1uzDBaBJLqZM0I,35348
161
161
  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-461e26fcb7578d39.js,sha256=EDvD-AFs_OBDRGefTi08x9G6WuVsaaM57fn1FQknsz0,7069
162
+ khoj/interface/compiled/_next/static/chunks/app/chat/page-ac366c9111374312.js,sha256=qc4PooY23sDkGFgUfY-q0E15NVgjRHxQDyCjuD1EPbg,7069
163
163
  khoj/interface/compiled/_next/static/chunks/app/search/layout-ea6b73fdaf9b24ca.js,sha256=mBgNUjaTBNgIKOpZj722mh1ojg1CNIYRBPiupStSS6s,165
164
- khoj/interface/compiled/_next/static/chunks/app/search/page-9013658bebfc3d17.js,sha256=ufxcLuHLFf2IoGpU1sBp64ldmX_otBE2HJ22LULJJW8,6957
164
+ khoj/interface/compiled/_next/static/chunks/app/search/page-64ea1717528979af.js,sha256=t24n4skHil9A2UZ6UTIBpYgWiUDHCxsR9bLj2FylWRQ,6957
165
165
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-1f4d76a8b09517b1.js,sha256=gmAaWa1vNym-LKxvESq4b4PRxJ2zi7slSXVTv3aadhE,5347
166
- khoj/interface/compiled/_next/static/chunks/app/settings/page-41eb536497bb544a.js,sha256=JjNA0NKuJ2QiMgKlFOPlfGCvggPl7DzPduRyQrDAqDg,32243
166
+ khoj/interface/compiled/_next/static/chunks/app/settings/page-17a538580c65e7fe.js,sha256=GNQ_niH5sctETn4oZIeA_WcvQOf5PYnu9I7hGXdUXNI,32243
167
167
  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-6a68ac7e227b34e7.js,sha256=4mT5YSFDEsfOZzC2A1l9K19DkAQJUv_gc_is0sgb6so,4374
168
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/page-47641b3691fb0856.js,sha256=OA49tyg5-g7R0ZhPaX1GOBfi8QQW3cGr4-dZN_ADN7Q,4374
169
169
  khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
170
170
  khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
171
171
  khoj/interface/compiled/_next/static/css/0e9d53dcd7f11342.css,sha256=52_LSJ59Vwm1p2UpcDXEvq99pTjz2sW4EjF5iKf-dzs,2622
172
172
  khoj/interface/compiled/_next/static/css/1a4038cc4acc8ee4.css,sha256=-DxhDuhlUAQ3m_90PhhOWP5xHO-6ET5j0IhlK7_3cR4,3058882
173
173
  khoj/interface/compiled/_next/static/css/1f293605f2871853.css,sha256=G2b3Wx4e0DRBWSdNU20ivCChZI5HBzvPYUVVIdTRjLc,26590
174
- khoj/interface/compiled/_next/static/css/23f801d22927d568.css,sha256=vVeNg0xTNJbdrtpZNuFCvNJPW5An06hr7i2M6yDXjK4,8449
174
+ khoj/interface/compiled/_next/static/css/2ff098d0815fdbc1.css,sha256=F-uRnbKKlMZq5eMcvFZtUOCTgC6n_uNE6fuaHU4CBak,8829
175
175
  khoj/interface/compiled/_next/static/css/3cf13271869a4aeb.css,sha256=sGjJTeMeN6wbQF4OCPgWYgJmSLLSHyzIH2rSVstWx7k,1857
176
- khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css,sha256=BSqRkeb9vBh0phx5GkAlZirTFZintbyggGaUkuOBfaU,914
176
+ khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css,sha256=3CjTMmtMrm_MYt1ywtUh2MHEjSLSl356SQLl4hdBuYw,534
177
177
  khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css,sha256=ojDUPJ9fJpEo9DzTAsEa-k1cg7Bef-nSTfpszMiqknQ,17711
178
178
  khoj/interface/compiled/_next/static/css/80bd6301fc657983.css,sha256=T7_aQHcWpQBQLKadauHNzjYGw713FtRNTlUqmJjsL6I,1634
179
179
  khoj/interface/compiled/_next/static/media/5455839c73f146e7-s.p.woff2,sha256=BUeNjYxyX7Bu76aNlJrZtW3PwYgcH-kp8syFdODZoyc,35788
@@ -248,8 +248,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
248
248
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
249
249
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
250
250
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
251
- khoj/interface/compiled/agents/index.html,sha256=yPuSdTDUqXOVj91_xkbVgYWgqdr-dmqdusx_mBTTmPc,12963
252
- khoj/interface/compiled/agents/index.txt,sha256=wlinf5XmQqD8kiazIKRghhks2ThgtrMe_MPnXC0KLFU,6176
251
+ khoj/interface/compiled/agents/index.html,sha256=AHF0_MvspLSln5yPrrBo7JVu7GGm5hyWdrhoC44MLUQ,12655
252
+ khoj/interface/compiled/agents/index.txt,sha256=cdukHL_Za7djh6c3d1wdbmGCAfkLfWGGABHJ2A_efTU,6043
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=ke_vR0UYtR8ui9NrWqGnKk-SH37Dpuxpdiud9qRKWLc,30630
264
- khoj/interface/compiled/automations/index.txt,sha256=mBT8uekJv5tuwjuKpNqVTFM-CF8MBUn9k2XwVzUc8qc,5498
265
- khoj/interface/compiled/chat/index.html,sha256=X73fysqnFCq9NMXeQu-Y8AEjpZhkXkag0vWyNXQGVgc,13854
266
- khoj/interface/compiled/chat/index.txt,sha256=-q3U1WoD9Ja2Mkokg39Z_UK9ngbq2TYqNGJVC9hMRlA,6586
267
- khoj/interface/compiled/search/index.html,sha256=WkO_0giS6j3tBZut6Gg_xSAamf00bovJc7FgT8iDkRQ,30158
268
- khoj/interface/compiled/search/index.txt,sha256=mJAMC36jd5-0xO4NglzISRSXo4YytT4PkhuX2daGzOs,5254
269
- khoj/interface/compiled/settings/index.html,sha256=9-zYgpjXV0sdfCjbWnVG4rh4Ye-FQN9KqOwXnP24jcQ,12828
270
- khoj/interface/compiled/settings/index.txt,sha256=e7YF2_Nbh0fvN3xGGqxeNoHabCJ0GkOz4YEwQ9pIvu4,6076
271
- khoj/interface/compiled/share/chat/index.html,sha256=HeQc3b6JOQCnSWKevTFgDS8MnpuzIkQvS8wiJt5_c_Q,15151
272
- khoj/interface/compiled/share/chat/index.txt,sha256=t30ubg79nmQieFCKXrIbxsymD6imPVe04Oi2SjI92e0,7383
263
+ khoj/interface/compiled/automations/index.html,sha256=aOihH_M-18GnQ6nZ5nZZQtFSJOltloXjo_HvOLKDd-c,30938
264
+ khoj/interface/compiled/automations/index.txt,sha256=314RC-LE3uzDq_TOiHuy6Xxb0dRHOkAkCw0lJ1TszEk,5631
265
+ khoj/interface/compiled/chat/index.html,sha256=ivQHPk-vIdPWnlprrz4Bs11w9an6vdgehpRrPGiMMqc,13854
266
+ khoj/interface/compiled/chat/index.txt,sha256=xjHy3jwG7TVDWHpnGedfXjFKPhPPysn-n7-liOZIMZ0,6586
267
+ khoj/interface/compiled/search/index.html,sha256=0krPMHZIfdozirP0tGdfhjFulzlB-6Ptt0aWvhG_ZZ8,30158
268
+ khoj/interface/compiled/search/index.txt,sha256=cd3Rpxch17Vq50YttIMLeLUhhtSmur6bGuPNIBQrCl0,5254
269
+ khoj/interface/compiled/settings/index.html,sha256=48iY9xOBFMWkMHYcV6A30g1EiAWzvoMem06ujrFQh-8,12828
270
+ khoj/interface/compiled/settings/index.txt,sha256=BZuy8FKyspz_eK4csglCtwkNC2SQAz0EB6EGDyS3BgI,6076
271
+ khoj/interface/compiled/share/chat/index.html,sha256=Uqs6SfBeJzPN7OYLs7sZFRF-iOD0Oqqf5bA3E6qmJkM,15151
272
+ khoj/interface/compiled/share/chat/index.txt,sha256=dGTqaj4ig9uxMJPts5VLBBdQb4O_Yy8Rpalj15A7H4I,7383
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
@@ -321,27 +321,27 @@ khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
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
323
  khoj/processor/conversation/prompts.py,sha256=nSaaXWNCGk7x3gL2aJrT2N-E640l7te_xfoEUQI3WqE,50150
324
- khoj/processor/conversation/utils.py,sha256=ZbWD43lgEhiWRo9uDmghkR1VHvMNVhk6RXZ5fKzfl2o,28545
324
+ khoj/processor/conversation/utils.py,sha256=ReKdCp1zBW4_zBTkIcokTOe0oO2R6Mxwrzuei3sIvzA,28681
325
325
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
326
- khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=8w7oSTBIxcZa6y03Zo2nuQFa2WMiazwK_qfO2q_O-6c,8618
327
- khoj/processor/conversation/anthropic/utils.py,sha256=dMhtKzzPv2-PkuxLpaqKlejrFA0zz_mtin4c12m1jF4,7309
326
+ khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=FTt--y2lDosdCd52TAp2ZshONSNHyPeTQ68NfExfQG0,8700
327
+ khoj/processor/conversation/anthropic/utils.py,sha256=En5uBBsxDBWb6QTs5g8nH_f2FVBX1uYK40i13fDRAhc,7327
328
328
  khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
- khoj/processor/conversation/google/gemini_chat.py,sha256=MABG3OAqfz-DDp6sHbkHcyM3VTevPOUV6x3iCB__mcc,8819
330
- khoj/processor/conversation/google/utils.py,sha256=HOgnd5JY4lr9dUdYX0_IvUs_c1EY7RxV93CyRoiyJ8k,10833
329
+ khoj/processor/conversation/google/gemini_chat.py,sha256=6_lAJ8HUYSfAs_Efs2UahqeD1GEKeCF25UFwX5WdnHM,8901
330
+ khoj/processor/conversation/google/utils.py,sha256=2vV7MNXFhJqBut5iMmQwcfvsqL_AkGoEd4XiViCk51s,10851
331
331
  khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
- khoj/processor/conversation/offline/chat_model.py,sha256=SCkloMOcQlC01yE-mYOU_hF5efpq_sDpaOYK6aYxN_c,10941
332
+ khoj/processor/conversation/offline/chat_model.py,sha256=daVM5a7uSGXEpOZ_DZ8uxrqPysPDT5041Kks6gn_CUM,11028
333
333
  khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
334
334
  khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
335
335
  khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
- khoj/processor/conversation/openai/gpt.py,sha256=IYv1PAiO1KaD5hCxWKQfzfSBRYR7seMP_kfofuLrexQ,8104
337
- khoj/processor/conversation/openai/utils.py,sha256=tCg5I3EiQofxbg-V5Zmqz8HGlVFLGxI046Fl77n_aRE,7576
336
+ khoj/processor/conversation/openai/gpt.py,sha256=l9SnUdSWHn-lKmqUSgTdMYTHLFhl-xYTz-MpDHWk7dE,8187
337
+ khoj/processor/conversation/openai/utils.py,sha256=7EjpsqqU_Y47q8hXm-9GSkVhukBzMJpTiz9o47UrDLk,7590
338
338
  khoj/processor/conversation/openai/whisper.py,sha256=zoEeK1LNCg_tzP4xzYi5vRPzNPGuDGzpkrkG7d1LUn4,447
339
339
  khoj/processor/image/generate.py,sha256=i5J51AwlMZbdlHHov-_MAw9bYgdVYmGgFjCYWDfx02s,9120
340
340
  khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
341
341
  khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
342
342
  khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
343
  khoj/processor/tools/online_search.py,sha256=X8D3ClKpg34r_LMol28GdBqZ--YVGGVBPc9lUSgb2mg,17128
344
- khoj/processor/tools/run_code.py,sha256=i9ce53dw0y5ZNhPorRNYJieIKw6eyrZQX0ABDrWiW8M,7738
344
+ khoj/processor/tools/run_code.py,sha256=orPypKNllLb_iNTVJgmAKhMT8TaabYrA9tsCUe_6g5w,6581
345
345
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
346
  khoj/routers/api.py,sha256=Z-0MqhlbhxR-palz_Kl3CqsC8O91n-xmgj8JNqQ8lv0,28495
347
347
  khoj/routers/api_agents.py,sha256=vHPruCjlQxGBdm0lcmymEb9-aAELqbOplqh21WwD0DQ,9699
@@ -354,7 +354,7 @@ khoj/routers/auth.py,sha256=kWPB2McwT6z4rGF6mWl92Q7ToRX-XezBPFefdxqQUk4,6579
354
354
  khoj/routers/email.py,sha256=SGYNPQvfcvYeHf70F0YqpY0FLMRElF2ZekROXdwGI18,3821
355
355
  khoj/routers/helpers.py,sha256=PY14ukbc7pzl_8p2j2xySRRg755Ll_QHb2iV64dOlBQ,82368
356
356
  khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
357
- khoj/routers/research.py,sha256=SczFMS9a8_Wxhh3n_Zt9CJ-zZugBDAd_WmiZGFa6RR8,16117
357
+ khoj/routers/research.py,sha256=8jA6i5nkyuW_DSJA1DIYgnIiB1yNC6fMm4HvaQ8RhQQ,16121
358
358
  khoj/routers/storage.py,sha256=tJrwhFRVWv0MHv7V7huMc1Diwm-putZSwnZXJ3tqT_c,2338
359
359
  khoj/routers/twilio.py,sha256=MLsuCm4--ETvr3sLxbF0CL_ehlg_l2rKBSLR2Qh2Xls,1081
360
360
  khoj/routers/web_client.py,sha256=frH03Sh0AR7c2MvRyc5a3tOFyxyVak3d1pl1sLcLLD4,4212
@@ -366,19 +366,19 @@ khoj/search_filter/word_filter.py,sha256=5Yx95aSiqGke9kEIbp8T-Ak4dS9cTd3VxI1SaJo
366
366
  khoj/search_type/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
367
367
  khoj/search_type/text_search.py,sha256=PZzJVCXpeBM795SIqiAKXAxgnCp1NIRiVikm040r1b0,9443
368
368
  khoj/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
369
- khoj/utils/cli.py,sha256=EA7IvWAInUIll8YFTOpQtqLtCQXwphfHi5rJ2TKAdSQ,3757
369
+ khoj/utils/cli.py,sha256=IIZ2qH0v7Jmqw3JRH1K5EMp9TRze6en3GYsASnglMEM,3916
370
370
  khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
371
371
  khoj/utils/constants.py,sha256=Icw4vD_d0rlk2IXi5oqbLVlUtFQYw8BtV7LEIerimjU,2074
372
372
  khoj/utils/fs_syncer.py,sha256=5nqwAZqRk3Nwhkwd8y4IomTPZQmW32GwAqyMzal5KyY,9996
373
- khoj/utils/helpers.py,sha256=8Z20fl7EVOHyGCInQzt8DPV-K5dwv-fCogm0u03XOEI,21322
373
+ khoj/utils/helpers.py,sha256=0rcdtBTVr7weUVKAIPgMow-wpwEMP0KkZtV7xQxiBGg,22744
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
- khoj/utils/state.py,sha256=KtUEIKAZdGGN_Qr58RS1pgcywgSafun8YIXx-YEclAY,1645
378
+ khoj/utils/state.py,sha256=axjZhnby8L3bY-N1VVoWgBH1RpFGK6U3_ZeNo1Kt7hs,1679
379
379
  khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
380
- khoj-1.30.2.dev23.dist-info/METADATA,sha256=KMNKXnvhOg_T6qM9ptCnndUZ2HfWHg5DMqkLd_q3P1Y,7120
381
- khoj-1.30.2.dev23.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
382
- khoj-1.30.2.dev23.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
383
- khoj-1.30.2.dev23.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
384
- khoj-1.30.2.dev23.dist-info/RECORD,,
380
+ khoj-1.30.2.dev28.dist-info/METADATA,sha256=TkDqU7S9YApvTQ9niHoCpwkGzIVd5gVJUkY8AjjdcCk,7120
381
+ khoj-1.30.2.dev28.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
382
+ khoj-1.30.2.dev28.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
383
+ khoj-1.30.2.dev28.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
384
+ khoj-1.30.2.dev28.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- 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}div.automations_sidePanel__MPciO{position:fixed;height:100%;z-index:1}@media screen and (max-width:768px){div.automations_automationsLayout__Atoh_{grid-template-columns:1fr}div.automations_pageLayout__OaoYA{max-width:90vw}div.automations_sidePanel__MPciO{position:relative;height:100%}}div.sidePanel_session__R9wgH{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__YBPtM{grid-template-columns:minmax(12rem,100%) 1fr 1fr}div.sidePanel_sessionHover__iwfo8,div.sidePanel_session__R9wgH:hover{background-color:hsla(var(--popover))}div.sidePanel_session__R9wgH:hover{color:hsla(var(--popover-foreground))}div.sidePanel_session__R9wgH a{text-decoration:none}button.sidePanel_button__ihOfG{border:none;outline:none;background-color:transparent;cursor:pointer;color:var(--main-text-color);width:24px}button.sidePanel_showMoreButton__dt9Zw{border-radius:.5rem;padding:8px}div.sidePanel_panel__VZ8ye{display:flex;flex-direction:column;padding:1rem;overflow-y:auto;max-width:auto;transition:background-color .5s}div.sidePanel_expanded__ZjTHo{gap:1rem;background-color:hsla(var(--muted));height:100%}div.sidePanel_collapsed__OjVmG{display:grid;grid-template-columns:1fr;height:-moz-fit-content;height:fit-content;padding:1rem 0 0 1rem}p.sidePanel_session__R9wgH{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:left;font-size:small}div.sidePanel_header__d5cGA{display:grid;grid-template-columns:1fr auto}div.sidePanel_profile__x0w58{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;margin-top:auto}div.sidePanel_panelWrapper__k_lal{display:grid;grid-template-rows:1fr auto auto;height:100%}div.sidePanel_modalSessionsList__nKe2n{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__nKe2n div.sidePanel_content__Wq20_{max-width:80%;max-height:80%;background-color:hsla(var(--frosted-background-color));overflow:auto;padding:20px;border-radius:10px}div.sidePanel_modalSessionsList__nKe2n div.sidePanel_session__R9wgH{max-width:100%;text-overflow:ellipsis}@media screen and (max-width:768px){div.sidePanel_panel__VZ8ye{padding:.25rem;width:100%}div.sidePanel_expanded__ZjTHo{z-index:1}div.sidePanel_singleReference__r9z1n{padding:4px}div.sidePanel_panelWrapper__k_lal{width:100%;padding:0 1rem}div.sidePanel_session__R9wgH.sidePanel_compressed__YBPtM{max-width:100%;display:grid;grid-template-columns:70vw auto;justify-content:space-between}div.sidePanel_session__R9wgH{max-width:100%;grid-template-columns:minmax(auto,70vw) 1fr}}menu.navMenu_menu__fqlFF a{text-decoration:none;font-size:medium;font-weight:400;padding:0 4px;border-radius:4px;display:flex;justify-self:center;margin:0;align-items:center;gap:4px}a.navMenu_selected__A__aP{background-color:hsl(var(--accent))}div.navMenu_titleBar__HJoio{display:flex;justify-content:space-between;align-content:space-evenly;align-items:start}div.navMenu_titleBar__HJoio menu{padding:0;margin:0;border-radius:.5rem;display:grid;grid-auto-flow:column;gap:32px}div.navMenu_settingsMenuProfile__3npiK img{border-radius:50%;width:32px;height:32px;margin:0}div.navMenu_settingsMenu__X2i2U{padding:0 4px;border-radius:4px;display:flex;justify-self:center;margin:0;align-items:center}div.navMenu_settingsMenuOptions__KWnLv{display:block;grid-auto-flow:row;position:absolute;background-color:var(--background-color);box-shadow:0 8px 16px 0 rgba(0,0,0,.2);top:64px;text-align:left;padding:8px;border-radius:8px}@media screen and (max-width:600px){menu.navMenu_menu__fqlFF span{display:none}div.navMenu_settingsMenuOptions__KWnLv{right:4px}div.navMenu_titleBar__HJoio{padding:8px}}div.chatHistory_chatHistory__CoaVT{display:flex;flex-direction:column;height:100%;margin:auto}div.chatHistory_agentIndicator__wOU1f a{display:flex;text-align:center;align-content:center;align-items:center}div.chatHistory_trainOfThought__mMWSR{border:1px solid var(--border-color);border-radius:16px;padding:8px 16px;margin:12px}div.chatMessage_chatMessageContainer__sAivf{display:flex;flex-direction:column;margin:12px;border-radius:16px;padding:8px 16px 0;word-break:break-word}div.chatMessage_chatMessageWrapper__u5m8A{padding-left:1rem;padding-bottom:1rem;max-width:80vw}div.chatMessage_chatMessageWrapper__u5m8A ol,div.chatMessage_chatMessageWrapper__u5m8A p:not(:last-child),div.chatMessage_chatMessageWrapper__u5m8A ul{margin-bottom:16px}div.chatMessage_chatMessageWrapper__u5m8A a span{display:revert!important}div.chatMessage_khojfullHistory__NPu2l{border-width:1px;padding-left:4px}div.chatMessage_youfullHistory__ioyfH{max-width:100%}div.chatMessage_chatMessageContainer__sAivf.chatMessage_youfullHistory__ioyfH{padding-left:0}div.chatMessage_you__6GUC4{background-color:hsla(var(--secondary));align-self:flex-end;border-radius:16px}div.chatMessage_khoj__cjWON{background-color:transparent;color:hsl(var(--accent-foreground));align-self:flex-start}div.chatMessage_khojChatMessage__BabQz{padding-top:8px;padding-left:16px}div.chatMessage_emptyChatMessage__J9JRn{display:none}div.chatMessage_imagesContainer__HTRjT{display:flex;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}div.chatMessage_imageWrapper__DF92M{flex:0 0 auto;margin-right:8px}div.chatMessage_imageWrapper__DF92M img{width:auto;height:128px;-o-object-fit:cover;object-fit:cover;border-radius:8px}div.chatMessage_chatMessageContainer__sAivf>img{width:auto;height:auto;max-width:100%;max-height:80vh;-o-object-fit:contain;object-fit:contain;display:block;margin-top:.25rem;margin-right:auto}div.chatMessage_chatMessageContainer__sAivf h3 img{width:24px}div.chatMessage_you__6GUC4{color:hsla(var(--secondary-foreground))}div.chatMessage_author__muRtC{font-size:.75rem;color:grey;text-align:right}div.chatMessage_chatFooter__0vR8s{display:flex;justify-content:space-between;min-height:28px}div.chatMessage_chatButtons__Lbk8T{display:flex;justify-content:flex-end;width:-moz-min-content;width:min-content;border:1px solid var(--border-color);border-radius:16px;position:relative;bottom:-12px;background-color:hsla(var(--secondary))}div.chatMessage_chatFooter__0vR8s button{cursor:pointer;color:hsl(var(--muted-foreground));border:none;border-radius:16px;padding:4px;margin-left:4px;margin-right:4px}div.chatMessage_chatFooter__0vR8s button:hover{background-color:hsla(var(--frosted-background-color))}button.chatMessage_codeCopyButton__Y_Ujv{cursor:pointer;float:right;border-radius:8px}button.chatMessage_codeCopyButton__Y_Ujv:hover{color:hsla(var(--frosted-background-color))}button.chatMessage_codeCopyButton__Y_Ujv img,button.chatMessage_copyButton__jd7q7 img,div.chatMessage_feedbackButtons___Brdy img{width:24px}div.chatMessage_trainOfThought__mR2Gg strong{font-weight:500}div.chatMessage_trainOfThought__mR2Gg.chatMessage_primary__WYPEb strong{font-weight:500;color:hsla(var(--secondary-foreground))}div.chatMessage_trainOfThought__mR2Gg.chatMessage_primary__WYPEb p{color:inherit}div.chatMessage_trainOfThoughtElement__le_bC{display:grid;grid-template-columns:auto 1fr;align-items:start}div.chatMessage_trainOfThoughtElement__le_bC ol,div.chatMessage_trainOfThoughtElement__le_bC ul{margin:auto;word-break:break-word}@media screen and (max-width:768px){div.chatMessage_youfullHistory__ioyfH{max-width:90%}}div.chatInputArea_actualInputArea__Ha6cN{display:grid;grid-template-columns:auto 1fr auto auto}.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}div.search_searchLayout__fP3m0{display:grid;grid-template-columns:1fr;gap:1rem;height:100vh}div.search_sidePanel__myfc9{position:fixed;height:100%;z-index:1}@media screen and (max-width:768px){div.search_searchLayout__fP3m0{gap:0}div.search_sidePanel__myfc9{position:relative;height:100%}}
@@ -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}div.agents_sidePanel__wGVGc{position:fixed;height:100%;z-index:1}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}div.agents_sidePanel__wGVGc{position:relative;height:100%}}